1.密码体质的基本组成
(1)明文空间M:全体明文的集合
(2)密文空间C:全体密文的集合
(3)密钥空间K:全体密钥的集合,k=<Ke,Kd>,Ke加密,Kd解密
(4)加密算法E:一簇由M—>C的加密变换
(5)解密算法D:一簇由C—>M的解密变换
2.密码体制的分类
1.从加密钥与解密钥是否相等划分
(1)传统密码(Ke=kd):DES、AES、SMS4、RC4
(2)公开密钥密码(Ke != Kd)
Ke != kd,且由于Ke不能计算出Kd,于是可以将Ke公开,这样也不会危害Kd
典型密码:RSA、EIGaMAL、ECC
2.从密钥的使用方式划分
(1)序列密码
明文、密文、密钥以位(字符)位单位加密解密
核心密码的主流
典型的密码:RC4,祖冲之密码
(2)分组密码
密文、密文、密钥以组为单位加密解密
商用密码为主流
典型密码:DES、AES、SMS4
3.密码算法是否变化划分
密码在工作过程中算法固定不变,密钥可变
迄今为止的绝大多数密码都是固定算法
典型密码:AES、DES、SMS4、RC4、RSA、EIGAMAL、ECC
3.密码分析的分类
1.基于数学的分析
所谓数学分析是指密码分析者针对加密算法的数学一句通过数学分析的方式来破译密码
统计分析攻击:通过分析密文和明文的统计规律来破译密码
2.基于非数学的分析
所谓基于非数学的分析是指密码分析者获取并分析面芯片的物理参数(如功率、电流、声音、执行时间等)来破译密码。这种攻击又被称作侧信道攻击。
侧信道攻击的原理在于
(1)密码芯片在执行不同的指令时所消耗的功率、电流、时间、发的声音是不同的
(2)密码芯片在处理不同的数据时所消耗的功率、电流、时间、发的声音是不同的
3.根据占有的数据资源分类
(1)攻击者总能获得密文
(2)攻击者总能知道密码算法,但不知道密钥
(3)攻击者有足够的计算资源
4.解决不同问题所用的算法有哪些
伪装以隐蔽信息,使未授权者不能理解它的真实含义。
解决机密性用:对称密钥加密(流密码、分组密码)、公钥及加密
解决完整性:杂凑函数、消息摘要函数
解决认证:数字签名、身份认证协议
解决不可否认性:数字签名
5.对称加密、非对称加密、Hash引入
1.对称密钥加密算法
对称密钥加密算法的特点:加密和解密密钥相同、加解密的速度快
常见的算法:祖冲之算法(ZUC)、DES、AES、SM4等
2.非对称密钥加密算法(公开密钥密码体质)
非对称加密的特点:加密和解密的密钥不同,加解密速度慢
应用:短消息加密、数字签名、身份认证
常见算法:RSA、ECC、SM2
3.Hash算法
特点:①任意长输入映射为定长输出;②当输入发生变化,输出发生不可预测的变化;③输出也无法推导出输入;
应用:完整性校验
常见算法:MD5,SM3
四、密码学发的时间轴
古代密码学:从由人类以来到1800年,以前被当做一门艺术,没有推理证明全凭直觉来来设计和分析。有500B.C(公元500年前)的古斯巴达“天书”密码(置换密码)、205-123BC古希腊人棋密码(代替密码);50BC,古罗马凯撒加密(代替密码);16世纪,维吉尼亚密码(代替密码)
五、古典密码学
5.1置换密码
1.把明文中的字母重新排列,字母本身不变,但其位置发生了改变,这样编排成的密码称为置换密码。
2.把明文按某一顺序排列成一个矩阵,然后按另一个顺序选出矩阵中的字母形成密文,最后截成固定长度的字母组作为密文。
理论上置换密码的加密密钥是置换矩阵P,解密钥是置换举证p逆
置换密码经不起已知明文攻击
5.2 代替密码
首先构造一个或多个密文字母表,然后用秘闻字母表中的字母或者字母组来代替明文字母或字母组,各字母或字母组的相对位置不变,但其本身 改变了。
5.2.1单表替换:主要在英文字母中出现
1.单表代替的概念:使用固定信息,将原文替换成密文。例如: bee ,将b替换成w, e替换p,单词就变成wpp
2.单表代替密码的分类:加法密码、乘法密码、仿射密码
3.经不起穷举攻击
5.2.1.1加法密码
1、凯撒加密:知道解密规则,Caesar加密就是一种加密方法(k=3)
原理:把26个字母进行位移、往左边或者往右边移动,在移动时注意最多只能移动25位
5.2.1.2乘法密码(k有12种选择)
要求k之间是互为素数
5.2.1.3仿射密码(k有12种选择,b有26种选择)
5.2.2多表替换
表示有多张表,原文和密文进行对比,典型密码为维吉尼亚密码(Vigenere)
5.3代数密码
Vernam密码:明文、密文、密钥都表示二进制位
M=m1,m2,m3,m4…mn
K=k1,k2,k3,k4…kn
C=C1,C2,C3,C4…Cn
加密解密都是模2运算
Vernam密码经不起已知明文攻击,如果密钥序列有重复,则Vernam密码是不安全的。
极端情况下是一次一密,但是并不实用
5.3 破解方法:频率分析法,在不知道破解规则的情况下
频率分析法:概率论,在不知道破解规则的情况下,按频率的顺序排序
六、近代密码学
1.恩尼格马密码机
核心也是移位和替换法,被图灵破解
2.祖冲之序列密码算法
含义:ZUC算法是一个基于字设计的同步序列密码算法,种子密钥SK和初始向量IV的长度均为128比特。
ZUC算法结构
第一层:线性反馈移位寄存器层
第二层:比特存储层
第三层:线性函数
2.1祖冲之密码的符号含义
2.2祖冲之密码的算法结构
七、现代密码学
1.散列函数
散列函数也叫做哈希函数
常见的加密方式:MD5、SHA-1、SHA256
MD5 可以将任意长度的原文生成一个128位(16字节)的哈希值
SHA-1可以将任意长度的原文生成一个160位(20字节)的哈希值
2.对称加密
对称加密 在加密和解密方式 使用的是同一把密钥
3.非对称加密
①非对称加密:又称为现代加密算法
②非对称加密算法需要两个秘钥,一个公钥、一个私钥
③公钥和私钥是一对,叫做秘钥对;如果使用公钥加密,必须使用私钥解密;如果使用私钥加密,必须使用公钥解密
(非对称加密,有两把秘钥,使用公钥加密,必须使用私钥解密;或者私钥加密必须使用公钥解密)
常见的非对称加密算法:RSA算法
4.如何设置密码才安全
1.密码不要太常见
2.各个应用软件里面的密码设置不一样,否则可能出现撞库
3.在设置密码的时候加上一些特殊标记,某应用+密码
5.Byte和bit的关系
1.如果使用UTF-8编码格式,一个中文对应3个字节
2.如果使用的是GBK编码格式,一个中文对应的是2个字节
3.如果对应的是英文的格式,则没有编码概念,全部对应的是一个字节