密码学基础知识
密码学思考题
1.为了实现信息的安全,古典密码体制和现代密码体制所依赖的要素有何不同?
 答: 在古典密码体制中,信息安全依赖于算法的保密;
 而在现代密码体制中,信息安全依赖于密钥的保密。
2.密码学发展分为哪几个阶段?各自的特点是什么?
 答:三个阶段:
 1949年之前古典密码学阶段,密码学是一门艺术。数据的安全基于算法的保密。
 1949~1975年密码学成为科学计算机使得基于复杂计算的密码成为可能
 标志:1949年Shannon的“The Communication Theory of Secret Systems”
 主要技术:单密钥的对称密钥加密算法
 主要特点:数据的安全基于密钥而不是算法的保密
 1976年以后密码学的新方向——公钥密码学
 1976年:Diffie & Hellman 的 “New Directions in Cryptography” 提出了不对称密钥;
 主要特点:开创了公钥密码学的新纪元。
 公钥密码使得发送端和接收端无密钥传输的保密通信成为可能
3.密码算法的分类?
 答 :(1)按照功能分类:
 加密算法:用于机密性解决方案
 杂凑函数:用于完整性解决方案
 数字签名:用于认证和不可否认性
 (2) 按按照密钥的使用方式不同分类:
 对称密钥密码 : 加密密钥与解密密钥相同,如:分组密码,流密码
 非对称密钥密码体制:加密密钥与解密密钥不同,如:公钥加密,数字签名
4.当k=5,b=3时,用仿射密码加密这些字符:WO SHI XUESHENG(mod26)
 答:加密后为JV PMR OZXPMXQH。
5.设计分组密码的主要指导原则是什么?实现的手段主要是什么?
 答:a.为了保证密码的安全性,Shannon提出的混乱原则和扩散原则。
 b. 针对实现的设计原则,分组密码可以用软件和硬件来实现。基于软件和硬件的不同性质,分组密码的设计原则可根据预定的实现方法来考虑。
 软件实现的设计原则:使用子块和简单的运算。密码运算在子块上进行,要求子块的长度能自然地适应软件编程,比如8、16、32比特等。在软件实现中,按比特置换是难于实现的,因此我们应尽量避免使用它。子块上所进行的一些密码运算应该是一些易于软件实现的运算,最好是用一些标准处理器所具有的一些基本指令,比如加法、乘法和移位等。
 硬件实现的设计原则:加密和解密可用同样的器件来实现。尽量使用规则结构,因为密码应有一个标准的组件结构以便其能适应于用超大规模集成电路实现。
 另外,简单性原则,必要条件,可扩展性也是要考虑的。
 c.多数分组密码算法的思想采用了Feistel密码结构,用代替和置换的手段实现混淆和扩散的功能。
6.DES的密码组件之一是S盒。根据S盒表计算的值,并说明S函数在DES算法中的作用。
 令101101的第1位和最后1位表示的二进制数为i,则=
 令101101的中间4位表示的二进制数为j,则
 查S3盒的第3行第6列的交叉处即为8,从而输出为1000
 S函数的作用是将6位的输入变为4位的输出,它是非线性的,决定了DES算法的安全性。
7.试证明DES算法中,下列密钥为弱密钥:
 01 01 01 01 01 01 01 01
 1F 1F 1F 1F 0E 0E 0E 0E
 E0 E0 E0 E0 F1 F1 F1 F1
 FE FE FE FE FE FE FE FE
 (其中01代表00000001 ,1F代表00011111 ,E0代表11100000,FE代表11111110)
 答:在 DES 的计算中,56bit 的密钥最终会被处理为 16 个轮密钥,每一个轮密钥用于 16 轮计算中的一轮,DES 弱密钥会使这 16 个轮密钥完全一致。
Rijndael算法中,需要将数字转换为2进制数,然后得到对应的表达式,笛卡尔积是保留双方都有的表达式。
 
 10. HASH函数定义?HASH函数满足的安全条件?
 答:1)定义:Hash函数将任意长的消息M映射为较短的、固定长度的一个值H(M)。
 Hash函数也称为哈希函数、散列函数、压缩函数、杂凑函数、指纹函数等。其函数值H(M)为哈希值、散列值、杂凑码、指纹、消息摘要等。
 2)单向性、抗弱碰撞性、抗强碰撞性

 12.从计算安全的角度考虑,构建公钥密码体制的数学难题常见的有哪些?
 答:大整数分解问题
 离散对数问题
 椭圆曲线上离散对数问题
13.按使用密钥数量,可将密码体制分为几类?
 答:对称密码体制(单钥密码体制)和非对称密码体制(公钥密码体制)。
14 . 分组加密算法安全设计原则是?
 答: 混淆和扩散
15.信息安全的基本属性主要表现在哪几个方面?
 答:(1)完整性(Integrity)
 (2)保密性(Confidentiality)
 (3)可用性(Availability)
 (4)不可否认性(Non-repudiation)
 (5)可控性(Controllability)
16.简述DES算法明文长度,种子密钥长度,16轮迭代密钥长度,轮函数结构?S盒基本原理? DES采用的festel结构图
 答:分组长度64,有效种子密钥56位,16轮迭代密钥48位
 每个S-盒将6位输入变成4位的输出。它是不可逆的非线性的,决定了DES算法的安全性。
 
17.AES算法数学理论基础?轮函数结构?S盒设计原理?AES分组长度,密钥长度?
 答:1)数学基础:(1)有限域及其元素的多项式表示法 (2)有限域GF(2^8)上的代数运算
 2)轮函数结构: 字节代换 BS ( ByteSub ),非线性层(S盒)
 行移位 SR ( ShiftRow ),线性层
 列混合 MC ( MixColumn ),线性层
 密钥加ARK( AddRoundKey ),线性层
 3)AES的 S-盒是可逆的非线性的,8位输入,产生8位输出。由以下两个变换的合成得到:
 首先,将字节看作 GF(2^8) 上的元素,映射到自己的乘法逆元, ‘00’ 映射到自己。
 其次,对字节做仿射变换
 4) AES 是一个迭代型分组密码,其分组长度和密钥长度都可变,各自可以独立地指定为 128 比特,192 比特,256 比特。
18.主动攻击与被动攻击的区别?
 
 
推广的欧几里得算法
其实原理和高代里的辗转相除法并无区别,带着算一遍就会了。是大整数分解问题,不断分解,直到余数为1停止,然后再一个个的回带,最后得到逆元。
 
 
多表替代加密
多表替代加密是出大题的料子。下面来说说他的步骤:
 ①首先计算矩阵特征值,如果与mod n 中的n互素,说明存在逆矩阵。
 ②将得到的特征值mod n 得到m,再求m的乘法逆元。
 ③计算出矩阵的逆矩阵,2×2的矩阵可以通过交换主对角线元素位置,另外一条对角线换位并加负号,同时将特征值作为分母乘在外面快速得到,如果是更高阶的矩阵就按初等变换法去做吧。
 ④将得到的乘法逆元乘上得到的乘法逆矩阵,再对里面的元素mod n,这样就能得到解密函数啦。
 










