信息安全三要素CIA( 三 )


40,08,48,16,56,24,64,32,
39,07,47,15,55,23,63,31,
38,06,46,14,54,22,62,30,
37,05,45,13,53,21,61,29,
36,04,44,12,52,20,60,28,
35,03,43,11,51,19,59,27,
34,02,42,10,50,18,58 26,
33,01,41,09,49,17,57,25,
解密
DES解密过程与加密过程本质上一致
加密和解密使用同一个算法,使用相同的步骤和相同的密钥
主要不同点是将密文作为算法的输入,逆序使用子密钥ki,即第1轮使用子密钥k16,第2轮使用子密钥k15,最后一轮使用子密钥k1
三重DES
密钥长度168位
第四章 公开密钥
存在即合理,公钥密码技术的出现就是为了解决以下两个问题:
它安全吗?
公钥密码系统依赖三种数学难题:
大整数因子分解问题离散对数问题椭圆曲线上的离散对数问题
公钥密码的优点:加密密钥可以公开传播;
公钥密码的缺点:运算速度较慢,不适合大量数据加密
RSA公钥密码体制的安全性基于大整数的素分解问题的安全性;
公钥密码体制的安全性基于有限域上的离散对数问题的困难性;
Rabin公钥加密方案是第一个被证明了的安全公钥加密方案 。
加密用公钥加密,私钥解密
签名用私钥签名,用公钥验证
超递增背包问题
一般背包问题求解困难,不考 。如果是超递增背包问题就能求解了
超递增序列
如果一个序列{a},ai >=ai-1 +ai-2 + … + a1 , i>=2,则这个序列是超递增序列
超递增序列的解是容易找到的 。将总质量与序列中最大的数比较,如果总质量小于这个数,则它不在背包中;如果总质量大于这个数,则它在背包中,用背包质量减去这个数,转向考查序列下一个最大的数,重复这个过程直到结束 。
【例】考查总质量为70kg的一个背包,质量序列为2,3,6,13,27,52 。
可以看出(2,3,6,13,27,52)是超递增序列,按照超递增序列解法:
an=-52kg=18kg,an-1=27kg>18kg
所以27kg不在背包 。重复步骤得出解为:加密实现
选一组正整数a1,a2,…,an作为公钥予以公布,m= m1m2…mn是n位0,1明文符号串 。利用公钥加密如下 :
c=a1m1+a2m2+…anmn
从已知密文c求解明文m=m1m2…mn等价于解背包问题 。
【例】 已知 a1=12,a2=20,a3=25,a4=28,a5=31,a6=38,a7=55,a8=77
明文是 m1=,m2=
分别加密得密文
c1=12+20+25+31+55+77=220
c2=20+28+31+38+55+77=249
由密文和已知的密钥a1,a2,…,an可以用求解背包问题的方法获得明文 。
公钥选取
背包公钥系统选的背包序列a1,a2,…,an是由超递增序列进行变换得到的 。设b1,b2,…,bn是超递增序列,即
bi >∑bi-1 ,i=2,3,…,n
选取模数m>2bn和乘数w,w和m互素,w-1满足ww-1≡1(mod m)
需要注意的几个条件:
(1)模数m需要比序列中所有数的和还要大
(2)乘数w应与序列中的任何一个数没有公因子
作-变换:
ak ≡ wbk(mod m),k=1,2,…,n
于是从超递增序列b1b2…,bn得到序列a1a2…,an 。
结论:超递增背包序列{b}就是私钥,而得到的背包序列{a}就是公钥 。
解密过程
RSA 密钥的产生 随机选择两个大素数 p, q计算 n=p×q计算秘密的欧拉函数 f(n)=(p-1)(q-1)选择 e使得1解下列方程求出 d
e*d ≡1 mod f(n),且 0≤d≤n公开公钥: PU={e, n}保存私钥:PR={d, n} 加密
加密时明文以分组为单位进行加密,每个分组m的二进制值均小于n,对明文分组m作加密运算:
c=me mod n, 且0≤m 解密
密文解密m=cd mod n
例子
d咋来的呢?
一步一步试出来
d=7,
加密密钥(公钥)为:KU =(e, n)=(3,33),
解密密钥(私钥)为:KR =(d, n)=(7,33)