通常一个密码体制可以有如下几个部分:
五元组{ M,C,K,E,D }就称为一个密码系统。
从数学的角度来讲,一个密码系统就是一组映射,它在密钥的控制下将明文空间中的某一个元素映射到密文空间上的某个元素。这组映射由密码方案确定,具体使用哪一个映射由密钥决定。
1、即使密码系统中的算法为密码分析者所知,也难以从截获的密文推导出明文或密钥。
2、也就是说,密码体制的安全性仅应依赖于对密钥的保密,而不应依赖于对算法的保密。
3、只有在假设攻击者对密码算法有充分的研究,并且拥有足够的计算资源的情况下仍然安全的密码才是安全的密码系统。
一句话: “一切秘密寓于密钥之中”
对密码体制的分类方法有多种,常用的分类方法有以下三种。
对称密码体制(Symmetric cipher,也称为单钥密码体制、对称密钥密码体制或常规密码体制)。如果一个密码系统,它的加密密钥和解密密钥相同,或者虽然不相同,但由其中的任意—个可以很容易地导出另外一个,那么该系统所采用的就是对称密码体制。
非对称密码体制(Asymmetric cipher,也称为公开密钥密码体制、非对称密钥密码体制)。如果一个密码系统,其加密算法和解密算法分别用两个不同的密钥实现,并且由加密密钥不能推导出解密密钥,则该系统所采用的就是非对称密码体制。
采用非对称密钥密码体制的每个用户都有一对选定的密钥。其中一个是可以公开的,称为公开密钥(Public key),简称公钥;另一个由用户自己秘密保存,称为私有密钥(Private key),简称私钥。
对称密码体制的主要优势是:
加密、解密运算的处理速度块,效率高,算法安全性高。
对称密码体制存在的局限性或不足:
(1)对称密码算法的密钥分发过程复杂,所花代价高;
(2)密钥管理困难;
(3)保密通信系统的开放性差;
(4)存在数字签名的困难性。
非对称密码体制的主要优势是:
(1)密钥分配简单。
(2)系统密钥量少,便于管理。
(3)系统开放性好。
(4)可以实现数字签名。
非对称密码体制存在的局限性是加密、解密运算效率较低,处理速度较慢,同等安全强度下,非对称密码体制的密钥位数较多。
根据密码算法对明文信息的处理方式,可将对称密码体制分为:
分组密码(Block cipher)
序列密码(Stream cipher,也称为流密码)。
***分组密码***是将消息进行分组,一次处理一个数据块(分组)元素的输入,对每个输入块产生一个输出块。在用分组密码加密时,一个明文分组被当做一个整体来产生一个等长的密文分组输出。分组密码通常使用的分组大小是64比特或128比特。
***序列密码***则是连续地处理输入元素,并随着处理过程的进行,一次产生一个元素的输出,在用序列密码加密时,一次加密一个比特或一个字节。
根据密码算法是否能进行可逆的加密变换,可以将密码体制分为:
单向函数密码体制
双向变换密码体制
单向函数密码体制是一类特殊的密码体制,其性质是可以很容易地把明文转换成密文,但再把密文转换成正确的明文却是不可行的,有时甚至是不可能的。单向函数只适用于某种特殊的、不需要解密的应用场合,如用户口令的存储和信息的完整性保护与鉴别等。
双向变换密码体制是指能够进行可逆的加密、解密变换,绝大多数加密算法都属于这一类,它要求所使用的密码算法能够进行可逆的双向加解密变换,否则接收者就无法把密文还原成明文。
加密变换过程就是将明文中的每一个字母替换为密文字母表的一个字母。
明文空间M 和密文空间C 都是26个英文字母的集合,密钥空间
K={π:Z26→Z26|π是置换},是所有可能置换的集合。
对任意π∈K,定义:
加密变换:eπ(m)=π(m)=c
解密变换:dπ© = π-1©=m, π-1是π的逆置换。
例题:
一般单表替代密码算法特点:
密钥π不便记忆。
针对一般替换密码密钥π不便记忆的问题,又衍生出了各种形式单表替代密码。
简单的来说,其实就是将字母表编号成1-26,然后如果移位1,则1号位改为z,2号位改为a,其他等同移动
当移位密码的 密钥k=3时,就是历史上著名的***凯撒密码(Caesar)***。根据其加密函数特 点,移位密码也称为加法密码。
加密函数的形式为:
K={(k1,k2)| k1,k2∈Z26,gcd(k1,26)=1}
例题如下:
设明文消息为china,密钥k=(k1,k1)=(9,2)试用仿射密码对其进行加密,然后再进行解密。
选用一个英文短语或单词串作为密钥,去掉其中重复的字母得到一个无重复字母的字符串,然后再将字母表中的其它字母依次写于此字母串后,就可构造出一个字母替代表。
下图演示密码为keyeyk时的情况:
从对密码的角度来分析,多表代替密码的产生原因如下:
维吉尼亚密码与位移密码体制相似,但维吉尼亚密码的密钥是动态周期变化的。
例题如下:
典型举例如下:
栅栏密码:
所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。
至于会是几栏密码,就得靠自己尝试了
列置换密码
把消息一行一行的写出,然后按列读取,但把列的次序打乱,列的次序就是密钥,例子如下:
复习时发现PPT和书上都没怎么详细说明,简要查了相关资料,这是一种很老的加密技术了,链接在这里,点此。有兴趣的自行了解~