一、我国得密码政策
密码分级
核心密码(保护党政军得核心机密)、普通密码(保护国家和事企业单位低于核心机密高于商用得机密信息)、商用密码(保护国家和事企业单位得非机密得敏感信息)、个人密码(保护个人隐私信息)-前三种由国家密码管理局同意管理
商用密码政策:统一领导(国家管理局)、集中管理(国家管理局)、定点研制(定点单位研制)、专控经营(许可单位经营)、满足使用(各单位可申请使用)
密码得基本思想:伪装以隐蔽信息,使未授权者不能理解其真实含义(伪装:信息进行可逆数学变换明文与密文、加密和解密、加密算法与解密算法)
密码体制得构成<M,C,K,E,D><明文、密文、密钥空间K=<Ke加密钥,Kd解密钥>、加密算法、解密算法>
密钥是一种参数,算法是一种变换函数
二、密码分类
传统密码:Ke=Kd加密=解密 典型密码:DES\AES\SMS4\RC4
公开密钥密码:Ke≠Kd且相互不能计算出公开加密不会危害解密 典型密码:RSA\ELGAMAL\ECC
序列密码:明文、密文、密钥以位(字符)为单位加解密、核心密码得主流 典型密码:RC4、祖冲之密码
分组密码:明文、密文、密钥以分组为单位加解密 商用密码 典型密码:DES\AES\SMS4
固定算法密码:算法不变密钥可变 所有密码
演变密码:借鉴生物进化,将密码学与演化计算结合、实现密码社会及与密码分析自动化得一种方法
基于数学得密码:前面所有密码
分析:密码分析者针对加解密算法得数学依据通过数学分析得方法来破译密码-统计分析攻击(通过分析密文和明文得统计规律来破译密码)最大受害者公钥密码是基于数学看困难问题得密码——需要选用具有坚实数学基础和足够复杂的加解密算法
基于非数学得密码:
基于非数学得密码分析即密码分析者获得并分析密码芯片得物理参数(功率、电流、声音、执行时间等)来破译密码-侧信道攻击(原理:密码芯片在执行不同指令和处理数据时候消耗得功率、电流、时间声音不同)以获得密钥为目的得侧信道攻击-芯片物理解剖/侧信道分析与数学分析结合
量子密码:在唯密文攻击下无条件安全得密码/基于量子得保密物理属性/利用量子力学产生真随机数做密钥,利用量子通信得保密性传输密钥,利用模2加进行加密而且按一次一密方式工作/ / / // )
DNA密码:基于生物学中得困难问题/无计算所以与DNA密码无关/尚不成熟缺少理论技术实现复杂
研究密码编制得科学称为密码编制学
。。。。破译。。。。。密码分析学(密码破译)
密码编制学和密码分析学共同组成密码学
根据密文或者明文-密文系统得确定明文或者密钥,则说这个密码是可破译得;理论上绝对不可破译得密码是存在的“一次一密”任何可实用得密码都是可破译得
穷举攻击:依次试遍所有可能密钥或者依次用一个确定得密钥对所有可能得明文进行加密获得相应得明文或者密文;理论上对于任何可实用密码只要有足够得资源都可以穷举攻击将其改破
占有资源进行分类
仅知密文攻击(对密码分析者不利)/已知明文攻击-已经知道的某些明文-密文来破译密码(对加密易受到攻击)/选择明文攻击-能够选择明文并获得相应得密文(对攻击者有利)
密码学的理论基础
信息论-信道传输受攻击/以扩散、混淆和乘积等基本方法设计密码/阐明密码体制、完善保密、理论保密和实际保密等概念
计算复杂性理论:密码的安全性以计算复杂度来度量
密码设计的基本方法:
公开设计原则(密码的安全应依赖于对密钥的保密而非算法的保密)
扩散和混淆:扩散(明文和密钥的每一位的影响散布到尽量多的密文位中,以达到完备性);混淆(明文、密钥和密文的关系复杂化)
迭代与乘积:迭代(设计一个轮函数然后迭代);乘积(将几种密码联合应用)
三、古典密码(置换、代替、模2加法)
2代替密码:构造多个密文字母表,用密文字母表代替明文字母,相对位置不变本身改变
单表代替密码:明文A={a1,a2,a3...}密文B={b1,b2,b3....}映射f(ai)=bi AB均为N个字母
1) 加法密码:f(ai)=bi=aj j=i+k mod n 其中k=3是著名的凯撒密码——K有n-1种可能,密钥空间小,经不起穷举攻击,以英文为例共有25种密钥
2) 乘法密码:f(ai)=bi=aj j=ik mod n 其中(n,k)=1当且仅当(n,k)=1才能正确解密——k有β(n)种可能密钥空间更小,对于英文字母表n=26则k=1,3,5,7,9..21,23,25去掉1共有11这种更弱,经不起穷举攻击
3) 密钥词语代替密码:随机选择一个词语,去掉重复字母,写道矩阵的第一行,从明文字母表中去掉第一行的字母,其余字母顺序写入矩阵,然后按列去除字母构成密文字母表——密钥词语随机密文字母表可完全穷尽明文字母表的全排列,英文为例n=26共有26!即~4*10的26次方,可用统计分析攻破
多表代替密码:一个名文字母有多种代替
Vigenere密码:用明文字母在Vigenere方阵中的列和行的交点处的字母来代替名文字母
3代数密码:
4移位密码:
模26的算术运算:任意整数a,若a=26s+r,sr均为整数且0<=r<26,则称a模26等于r记amod26=r或者a=rmod26如-3mod26=23,3mod26=3
加密,y=(x+k)mod26,其中的k为密钥
解密,x=(y-k)mod26
一个密码的安全性是指攻击者分析截获的密文以得到对应明文的复杂度
柯克霍夫(Kerchhoff)假设:假设攻击者知道密码算法。即一个密码体制的安全应仅依赖于对密钥的保密,而不应依赖于对算法的保密。
密钥空间(key space)是一个密码的所有可能的密钥的集合。显然,移位密码的密钥空间中有26个密钥,密钥空间比较小。所以移位密码不能抵抗密钥的搜索攻击(search attack),它的安全性比较差。显然,它也不能抵抗已知明文攻击(known plaintext attack)。
5仿射密码
模26的逆运算:对整数a,b若成立ab=1mod26,则称b为a在模26下的逆记b=a逆mod26即ab乘积除以26余1
并非任意一个整数在模26下都有逆。a逆存在的充要条件是与26存在的充要条件是与26互素。
加密算法:y=(ax+b)mod26,其中a与26互素(a,b)为密钥
解密算法:x=a逆(y-b)mod26
在仿射密码的加密算法中,a有12个取法,b有26个取法,所以,仿射密码的密钥空间中有312个密钥,密钥空间比较小,现在的计算机在n分之一秒内就可以搜到仿射密码的密钥。仿射密码不能抵抗密钥搜索攻击和已知明文攻击。
6替换密码
替换密码的密钥空间里有26!~2的88次个密钥,面对如此巨大的密钥空间,即使使用上万台的PC机搜索密钥也要耗费几十年的时间。因此,它对密钥的搜索攻击是安全的。但是,它不能抵抗字母频率的统计分析攻击。因为替换密码是一种单码密码(monoalphabetic cipher),即明文字母与密文字母是一一对应的,同样的明文字母永远被加密成唯一确定的密文字母。这时,只要统计一下密文中各字母出现的频率,就可以推测对应的明文字母。这种分析法利用了26个字母在自然英文中出现的频率具有一定的统计规律这一事实。
以上密码是单码密码,不能抵抗字母频率的统计分析攻击
多码密码
维吉尼亚密码算法-自行百度维吉尼亚密码表格
加密算法:(y1,y2,L,ym)=(x1+k1,x2+k2,L,xm+km)
解密算法:(x1,x2,L,xm)=(y1-k1,y2-k2,L,ym-km)
K=(k1,k2,L,km)是密钥
明文-关键词-根据表格2-1转换为数字,然后和重复的关键词相应求和模26再在对应的表格2-1种寻找对应的字母即所求密文
分析维吉尼亚的第一步是确定分组长度m,也就是密钥的长度,这可以采用Kasiski test的方法。然后,再结合密文中字母的频率确定密钥。当然,维吉尼亚密码不能抵抗已知明文攻击。
希尔密码
加密算法(y1,y2,L,ym)=(x1+k1,x2+k2,L,xm+km)A
解密算法:(x1,x2,L,xm)=(y1-k1,y2-k2,L,ym-km)A逆
虽然希尔密码的密钥空间会很大,但希尔密码不能抵抗已知明文攻击
1置换密码:明文字母本身不变重新排列位置改变各种转换顺序改变等形式如下
理论上:置换密码的加密密钥是置换矩阵P解密钥是置换矩阵P逆-经不起已知明文攻击
加密方式不同的密码:序列密码(一位一位的加密)和分组密码(将明文二元串分成固定长度的组再一组一组的加密)
一次一密密码——理论上唯一牢不可破的密码,困难在于完全随机的密钥串的产生和传输
x1 x2 x3 x4 x5 x6L xn 明文 是一个n位的二元串(序列)
⊕k1 k2 k3 k4 k5 k6L kn 一个n位的密钥二元串(完全随机) 对应位进行模2加
-------------------------------------------
c1 c2 c3 c4 c5 c6L cn密文二元串
伪随机序列