1,单表与多表密码体制的概念是?
单表密码体制:在一个密码体制中,如果明文字母对应的密文字母在密文中始终保持不变
多表密码体制:在一个密码体制中,如果明文中不同位置的同一明文字母在密文中对应的密文字母不同
2,密码体制中的5个有限集合,分组密码是什么?
- 明文空间M
- 密文空间C
- 密钥空间K
- 加密算法E
- 解密算法D
分组密码:又称密钥密码,对称密码,它的加密密钥与解密密钥相同。利用分组密码对明文加密时首先对明文进行分组,每组长度相同,然后对每组明文分别加密得到等长密文。
3,Playfair密码体制的使用
(由秘钥——》生成密钥矩阵——》按照加密规则得到密文)
内容介绍:
4,理解Vigenere密码体制
Ci=(Mi+Ki)%26——》密文字母的下标=(明文字母的下标+秘钥字母的下标)%26
例题解读:
在表中找到第一个明文字母T的位置,和第一个密文字母c的位置,我们知道c的下标是2
(从0开始标记),所以字母T向后移动2个单位得到密文字母V。同理我们知道第二个密
文字母的i的下标是8,将明文字母h向后移动8个单位得到密文字母P
-----------------------------------------------------------------------------------------------------------------
5,Hill密码体制(如何进行加密,解密,证明其相关的题)
概念:
6,仿射古典密码
加密变换公式:C=(K1*M+K2)mod26
解密变换公式:M=(K1逆)*(C-K2)mod26
H——》(5*7+7)%26=16——》Q
E——》(5*4+7)%26=1——》B
L——》(5*11+7)%26=10——》K
P——》(5*15+7)%26=4——》E
M——》(5*12+7)%26=15——》P
E——》(5*4+7)%26=1——》B
代码实现:
package cn.itcast.util;
import java.util.Scanner;
public class communicate {
public char []letters={'A','B','C','D','E','F','G','H','I','J','K','L','M',
'N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
public char []input=new char [20];
public int getNum(char letter){
for (int i=0;i<letters.length;i++){
if (letter==letters[i])
return i;
}
return -1;
}
public static void main(String[] args) {
communicate test=new communicate();
Scanner input=new Scanner(System.in);
while (true){
System.out.println("请输入要加密的字符串");
int m1=test.getNum(input.next().charAt(0));
int c=(m1*5+7)%26;
System.out.println(test.letters[c]);
}
}
}
7,DES的基本加密步骤是什么?
8,给DES的一个S盒的6bit输入数据,求出它的4bit输出数据
如:输入101010,取出收尾的两位数字10做为行标2,中间的4位数字0101作为列标5,得到坐标(2,5)查下表得到结果6
——》0110作为输出数据
9,IDEA的基本加密过程是什么?
10,MA结构
11,分组密码的两种结构是什么?
- Feistel网络
- SP网络
--------------------------------------------------------------------------------
12,公钥密码体制是什么?
在公钥密码体制中,加密密钥和解密密钥是不一样的,加密密钥简称公钥,解密密钥简称私钥,加密密钥可以公开,解密密钥必须保密,从加密密钥计算解密密钥是难解的。
13,了解Merkle-Hellman背包算法(由明文求密文,由密文求明文)
14,了解RSA公钥密码(中国剩余定理)
- 由题目中的p,q,e利用Euclid算法求解密钥d
- 由明文M,求密文C(C=M的e次方modN)
利用欧几里得算法计算解密密钥d=147
220=3*73+1
3=1*3+0
a1
73
b 1 73
所以因为a是1奇数个,所以d=220-73=147
15,EIGamal公钥密码体制
证明其解密变换是加密变换的逆变换
16,证明:U属于Zn,并且U的逆对N的模运算是存在——》god(u,n)=1——》U属于Z*n
P94,定理5.7的证明