IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 网络安全原理--密码学 -> 正文阅读

[网络协议]网络安全原理--密码学

网络安全原理–密码学

信息安全概述
  • 信息是当今社会的一种重要资源(数据和信息的对比,信息应用的例子)

  • 信息安全的目标:保密性,完整性和不可否认性

  • 现代信息系统必须具备有信息安全技术措施

  • 信息加密是信息安全的措施之一

  • 加密相关术语:

    明文 也叫明码(plaintext)
    密文(ciphertext)
    算法(algorithm)
    密钥(key)
    加密(encryption)
    解密(decryption)
    公钥(public key)
    私钥(private key)
    数字签名(digital signature)
    证书(digitial signature)
    PKI(Public Key Infrastructure)
    HASH HMAC
    
密码学发展
  • 密码学发展阶段:

    • 1949年之前:密码学是一门艺术
    • 1949~1975年:密码学成为科学
    • 1976年以后:密码学的新方向——公钥密码学
  • 第一阶段:古典密码学

    • 密码学还不是科学,而是艺术
    • 出现一些密码算法和加密设备
    • 密码算法的基本手段出现,针对的是字符
    • 简单的密码分析手段出现
    • 主要特点:数据的安全基于算法的保密
    • 1883年Kerchoffs第一次明确提出了编码的原则:加密算法应该建立在算法的公开不影响明文和密钥的安全。这一原则已得到普遍承认,成为判定密码强度的衡量标准,实际上也成为传统密码和现代密码的分界线。
  • 第二阶段:1945年~1975年

    • 计算机使得基于复杂计算的密码成为可能
    • 相关技术的发展
      • 1949年Shannon(香农)的 “The Communication Theory of Secret Systems”
      • 1967年David Kahn的《The Codebreakers》
      • 1971~1973年IBM Watson实验室的Horst Feistel等几篇技术报告
    • 主要特点:数据的安全基于密钥而不是算法的保密
  • 第三阶段:1976年~至今

    • 1976年:Diffie&Hellman的”New Directions in Cryptography“提出了不对称密钥算法
    • 1977年Rivest,Shamir&Adleman提出了RSA公钥算法
    • 90年代逐步出现椭圆曲线等其他公钥算法
    • 主要特点:公钥密码使得发送端和接收端无密钥传输的保密通信成为可能
    • 1977年DES正式成为标准
    • 80年代出现”过渡性“的”Post DES“算法,如IDEA,RCx,CAST等
    • 90年代对称密钥密码进一步成熟。Rijndael,RC6,MARS,Twofish,Serpent等出现
    • 2001年Rijndael成为DES的替代者
历史上那些经典的密码
  • 藏头诗

  • 不可见墨水

    • 优点:可以应用于通信双方宁愿他们的秘密信息被发现而不愿其中的重要内容丢失的情况
    • 缺点:它需要大量额外的开销来隐藏相对较少的信息
  • 凯撒密码:单表代替密码

    • ”凯撒“密码 古罗马军队用
    • 由Julius Caesar发明
    • 明文: A B C D E F G H I K L M N O P Q R S T V X Y Z
    • 密文:D E F G H I K L M N O P Q R S T V X Y Z A B C
    • 注:拉丁文不用 J,U,W
    • 明文:meet me after the toga party
    • 密文:PHHW PH DIWHU WKH WRJD SDUWB
    • 单表代替密码不能掩盖明文语言的所有统计特性!
  • 多表替换密码:Playfair Cipher和Hill

    • Playfair Cipher
    • 第一次世界大战中英军就使用它作为陆军的标准加密体制,在第二次世界大战中,美军及其他一些盟军用它来进行加密
    • Hill密码是由数学家Lester S Hill1929年研制的。
    • 在第二次世界大战中,该密码被用来对无线电呼叫信号进行加密,加密和解密均通过机械设备(而非电子设备)来完成
    • 较易被已知明文破解。
  • 转子机

    • 转轮机密码系统(多层加密原理)
    • 多桶系统中,操作员每按一次输入键,最后一个转轮就旋转一个引脚的位置
    • 转轮机由一系列独立转动的圆柱体组成,每个圆柱体具有26个输入引脚和26个输出引脚,单个圆柱体定义了一个单字母替代。
    • 通过多个加密阶段的组合,能使密码分析变得极为困难。
    • 对置换和替代都适合。
  • 二战中的经典密码

    • 德国人恩格玛密码机(Enigma)

    • 图灵三大贡献(计算机/人工智能/密码学)

    • 计算机最高奖项—图灵奖

    • 日本人紫码/紫密(PURPLE)

      在德国恩格玛机基础上改进

    • 美国人 无敌密码

      也叫纳瓦霍密码(Navajo Code)

      用印第安语言制作的密码

密码基础:进制与计量
  • 进制 一种计数方法
    • 用有限的数字符号来表示无限的数值,例如阿拉伯数字10进制(0-9)
    • 可使用的技术符号数目决定了进位制,简称进制
    • 2进制(0,1)计算机机器语言唯一能明白的
    • 10进制(0-9)普通人计算常用的
    • 16进制(0-9,ABCDEF)每一个16进制的字符代表4个二进制组合数字
  • 计算机为什么不用十进制而用二进制?
  • 计量术语
    • 位(bit)最小的数据单位
    • 字节(Byte)8个bit组成,存储空间的最小单位
    • K-Klilo,网络/计算里面 表示千 1024(2^10次方) 存储里面表示1000
      • KB=1024B
    • M-Million,表示百万(2^20次方)
      • MB=1024KB
    • G-Giga,表示10亿(2^30次方)
      • G=1024MB
    • T-Tera,表示10 000亿(2^40次方)
      • TG=1024GB
    • P-Peta 表示10 000 000亿(2^50次方) 比特币挖矿算力8359 PH/s
      • PG=1024T
  • 你要大概知道当今计算机的能力上限。也就是说哪些是可以很快算出来的,哪些是不现实的。拿分解质因数来说。你要知道什么样的数是当今计算机分解不了的。个人认为就今天的计算机来说(2015.10.31):
    • 2的40次方次运算是容易。
    • 2的56次方次元算是可做。2100万比特币=2^53
    • 2的64次方此运算是勉强能做
    • 2的80次方次运算是不能做
    • 2的128次方次运算是绝壁不能做
加解密基础操作:移位 置换 编码

加解密基本操作

image-20220922114413946
  • 置换:按照规则替换明文信息
  • 移位:打乱字母的排列顺序
  • 移位和置换都是可逆的操作,容易恢复信息
  • 移位,置换应用于现代密码算法中
  • 加密的实现,不只是依赖以上这些基本的思想,同时也依赖于很多巧妙的设计
  • 如军事应用中的加密电报,除了安全性很高的编码规则以外,解密还涉及到收发报文双方的约定
  • 常见的编码规则:ASCII码表,BASE64编码表,BASE58编码
置换
  • 置换是一个特定的值替换另一个特定值的过程
  • 置换需要通信双方事先通知置换的方法
  • 置换比较简单,频繁使用会找到规律
  • image-20220922121900101
  • 上例中置换基本原则为:奇数位ASCII码值加1,偶数位ASCII码值加2
移位
  • 移位:把某个字母以其前或其后几位的某个特定的字母替代

  • 移位具有规律,容易被攻破

    image-20220922122135441
  • 你能分析出以上例子中移位的规律吗?首尾颠倒

  • 在计算机中,怎样才能自动实现大量复杂数据的加密和解密?

  • 这依赖于好的,可被计算机识别的,被验证为有效的加密算法。

加密算法分类

  • 密码设计的基本公理和前提是算法公开
  • 系统的安全性仅依赖于密钥的保密性
  • 加密算法分类
    • 对称密钥密码算法(又称私有密钥算法)
    • 非对称密钥密码算法(又称公钥密码算法)

加密强度对比

image-20220922122703120
对称加密算法
对称加密算法原理
  • 对称加密:使用同一密钥进行加密和解密

    • 传统密码加密
    • 私钥算法加密
  • 优势:加解密速度快,密文是紧凑的,安全

    image-20220922192047720
对称加密算法 加解密过程
  • image-20220922192427044
  • image-20220922192456523
  • 对称加密算法缺点:密钥分发,密钥存储和管理。缺乏对数字签名/不可否认的支持。
  • 著名对称加密算法:
    • 对称加密的密钥长度从40bits到168bits
    • 著名加密算法
      • DES 3DES
      • AES
      • RC系列(RC2,RC4,RC5)
      • IDEA
      • CAST
      • Blowfish
DES
  • DES(Data Encryption Standard)

    • DES是一种块或分组加密算法
    • 20世纪70年代,由IBM公司发展
    • 1976年11月纳为美国国家标准
    • DES密钥是固定的56bit,不安全
    • DES以块模式对64bit的密文块进行操作
  • DES算法框架图

    image-20220922204350821
  • DES密码分组公式

    image-20220922204500336 image-20220922205752267
  • DES两种方式:

    image-20220922210704261
    • 问题:相同的明文会得到相同密文
    • 三种攻击:统计学,尝试,部分解密
  • DES总结:

    • 56bit的DES太短,不安全,需要经常修改密钥,防止暴力破解
      • 没有漏洞,只能暴力破解 2^55
      • WEP有108位密钥,但有漏洞,很快算出
    • 需要在一个安全的信道交换DES密钥
    • 使用DES的CBC模式
3DES
  • 3DES安全,但会增加延时,语音视频不适用

    • 3DES(Triple DES)密钥长度放大三倍,168位
    • 暴力破解几乎不能实现
    • 底层基于一个很好的算法
    • 安全,但会增加延时,语音视频不适用
    image-20220922212315260
AES(Advanced Encryption Standard)
  • 1997年被颁布,取代DES的加密算法
  • 比利时的Joan Daemen和Vincent Rijmen发明,“Rain Doll”
  • 适合于高速网络,适合在硬件上实现
  • 使用128位,192位或256位的密钥块(还能以32bit扩展)
  • 3DES的替代加密技术,软硬件运行效率高,可用于无线/语音视频加密
RC系列加密算法
  • RC2
    • Ronald Rivest设计
    • 密钥长度可变
    • RC2的运算速度比DES快
    • 软件实现的RC2比DES快三倍
    • RC2是否比DES安全取决于其所使用的密钥长度
  • RC4
    • Rivest设计
    • 密钥长度可变
    • 流模式加密算法,面向bit操作
    • 算法基于随机置换
    • RC4应用范围广(https/WEP/WPA)WPA2-AES
  • RC5
    • Rivest设计
    • 分组长,密钥长和迭代轮数都可变
    • 面向字结构,便于软件和硬件快速实现
    • 数据相倚旋转技术
IDEA
  • IDEA,国际数据加密算法
  • 分组长度为64位,密钥长度为128位
  • 设计原则:来自不同代数群的混合运算
    • 异或
    • 模216加
    • 模216+1乘
  • 64位数据首先分成4个16位子分组作为第一轮的输入
  • 总共8轮计算
  • 每轮中,4个子分组相互之间相异或,相加,相乘,且与6个16位子密钥相异或,相加,相乘
  • 轮与轮之间,第二个和第三个子分组交换。最后在输出变换中4个子分组与4个子密钥进行运算。
  • IDEA共使用52个子密钥
  • 软件实现的IDEA比DES快两倍
Blowfish
  • Bruce Schneier设计
  • 密钥长度可变
  • 易于软件快速实现,所需存储空间不到5kb
  • 安全性可以通过改变密钥长度进行调整
  • 适用于密钥不经常改变的加密
  • 不适用于需要经常变换密钥的情况
国密算法

电子政务里面SM1,SM2不能出口

非对称/公钥加密算法
  • 公钥加密技术(非对称加密技术)

    • 公钥加密比私钥加密出现晚

    • 私钥加密使用同一个密钥来加密和解密信息

    • 公钥加密使用两个密钥,一个密钥用于加密信息,一个密钥用于解密信息

      • 公钥加密,私钥解密
      • 私钥签名,公钥验证
      • 公钥加密,公钥不能解
      • 私钥加密,私钥不能解
    • 应用:公钥加密,保密性 私钥签名:数字签名

      image-20220923074355044
    • 私钥需要安全保存(不通过网络传送)

    • 公钥公开

    • 加密速度慢,密文非紧凑

    • 可以与对称加密相结合

      image-20220923074706124
    • 其实私钥可以推出公钥,但是公钥推不出私钥,只能单向推导

  • 经典非对称加密算法

    • RSA
    • DH(Diffie-Hellman)
    • DSA
    • ECC
  • 公钥密码系统的应用

    • 三种用途:

      • 加密/解密
      • 数字签名:发送方用自己的私钥签署报文,接收方用对方的公钥验证对方的签名
      • 密钥交换:双方协商会话密钥
      image-20220923075244162
Diffie-Hellman密钥交换
  • 1976年,Whitfield Diffie 和Martin Hellman发明

  • 解决对称加密系统中密钥的发布问题

  • 无需使用代价高昂即可对私钥达成共识

  • 安全性来源于很难计算出很大的离散对数

  • 在现代密钥管理中提供其他算法的密钥管理

  • 密钥生成算法AGen输出一个公钥和私钥对(apk,ask),ask需要秘密地保存,apk可以公开发送给对方。

  • 密钥协商算法Agree以一方的公钥apk和自己的私钥ask作为输入,计算出一个密钥K

    image-20220923075937205
  • image-20220923080419988
  • Diffie-Hellman可行之处:

    • 产生共享密钥需要一个保密值,外人无法得到
    • 计算大数的离散对数很难
RSA
  • 1977年由Ron Rivest,Adi Shamie和Len Adelman开发

  • 专利于2000年9月到期

  • 密钥长度在512~4096bit之间

  • 安全性基于大素数因子分解的困难性

  • RSA比用软件实现的DES慢100倍

  • RSA比用硬件实现的DES慢1000倍

  • RSA的主要功能:加密,数字签名和密钥交换(加密散列,密钥)

    image-20220923081436964
其他公钥算法
  • Elgamal
    • Taher Elgamal开发
    • Diffie-Hellman的一种变形
    • 可以加密和提供认证
    • 安全性取决于计算离散对数的难度
  • 数字签名算法
    • 由美国政府开发
    • 数字签名的标准算法
    • 算法基于Elgamal
    • 只允许认证,不提供保密性
  • 椭圆曲线加密
    • 1985年提出
    • 原理:给定椭圆曲线上的两点A和B,如A=kb,要找到证书k非常困难
    • 密钥更小:与1024位RSA密钥具有同样安全性的ECC密钥只有160位
数字签名
  • RSA提供认证和抗抵赖(私钥签名)

    image-20220923082355572
数字签名(Digital Signature)
image-20220923082857527
数字证书与CA
  • image-20220923083659446
  • image-20220923083809298
  • 数字证书(Digital Certificate,类似身份证的作用)
  • CA(Certificate Authority,电子商务认证授权机构)
  • image-20220923083943475
  • 公钥证书的种类与用途
    • CA
    • Personal
    • Code Signing
    • Server
  • 证书回收列表(CRL)
哈希与HMAC
  • 哈希(Hash),也叫散列函数。MD5 SHA

    • 将一段数据(任意长度)经过一道计算,转换为一段定长的数据

      • http://www.fileformat.info/tool/hash.htm
    • 不可逆性 几乎无法通过Hash结果推导出原文,即无法通过x的Hash值推导出x

    • 无碰撞性 几乎没有可能找到一个y,使得y的Hash值等于x的Hash值

    • 雪崩效应 输入轻微变化,Hash输出值产生巨大变化

    • 单向 不可能从散列值推出原始数据

    • 使用场景:

      • 发布文件的完整性验证,如炒股软件+MD5

        http://download.cs.ecitic.com MD5:608756CEA9639AD5514E3E6014B643B1

      • 服务器中保存用户的密码

      • 数字签名

  • 哈希用例 用户密码的存储

    image-20220923090203876
  • image-20220923091634150
  • HMAC

    • 增加一个key做哈希。HMAC=Hash(文件+key)
    • 需要双方预先知道这个key
    • HMAC:消除中间人攻击,源认证+完整性校验(数字签名也能实现)
    • image-20220923091830156
对称加密与非对称加密完美融合
  • 对称加密算法的问题:密钥分发,密钥存储和管理。缺乏对数字签名的支持。

  • 非对称加密算法的问题:

    • 优点:
      • 无需私钥传送,天然防窃听
      • 每个人2个密钥,不会随着人数增加倍数增长
      • 支持数字签名,抗抵赖性/认证
    • 缺点:加密速度慢,密文非紧凑
  • 对称加密算法与非对称加密算法完美结合:对称加密算法对大文件进行加密,非对称加密算法对密钥加密

  • 两全其美的加解密解决方案 发送方操作123:

    image-20220923093013074
  • 两全其美的加解密解决方案 接收方操作321

    image-20220923093808616
密码学原理总结
  • 对称加密:
    • 用相同的密钥对原文进行加密和解密
    • 加密过程:密钥+原文——>密文
    • 解密过程:密文-密钥——>原文
    • 缺点:无法确保密钥倍安全传递
  • 非对称加密:
    • 公钥用于加密,私钥用于解密
    • 公钥由私钥生成,私钥可以推到出公钥
    • 从公钥无法推导出私钥
    • 优点:解决了密钥传输中的安全性问题
    • 解决了信息传送的问题,如何验证是“确定是发送方发送的,信件没有被篡改?”
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 01:21:54  更:2022-09-30 01:22:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:34:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码