计算机安全与保密_002优质PPT.ppt
《计算机安全与保密_002优质PPT.ppt》由会员分享,可在线阅读,更多相关《计算机安全与保密_002优质PPT.ppt(35页珍藏版)》请在冰豆网上搜索。
n得到的序列作为公开密钥:
62,93,81,88,102,37。
n加密:
将明文分成长度与背包序列相同的块,计算背包总重量。
n例如:
背包62,93,81,88,102,37,明文011000,密文为:
93+81=174n解密:
n先计算n-1,为n关于模m的乘法逆元。
n将密文的值与n-1模m相乘n用秘密的背包求解,得到明文n例:
n=31,m=105,n-1=61,174*61mod105=9=3+6,明文为011000n实际实现n安全性5.3RSA算法n第一个成熟的公开密钥算法,可以用作加密和数字签名n算法描述:
nRSA的安全性基于大整数的因数分解的困难性n首先随机选择两个大素数p和q,计算n=pqn然后随机选择加密密钥e,满足e与(p-1)(q-1)互素。
用扩展的Euclid算法计算解密密钥d,使得ed1mod(p-1)(q-1)n公开密钥:
e和nn秘密密钥:
dn加密:
C=Memodnn解密:
M=CdmodnnRSA算法用于数字签名:
(见148页7.1.6)n签名:
S=Mdmodnn验证签名:
M=SemodnnRSA的安全性n对RSA的选择密文的攻击nE监听A的通信,收集由A的公开密钥加密的密文c。
E想知道消息的明文m:
n随机数r,rn。
计算x=remodn,y=xcmodn,t=r-1modnnE让A对y签名:
u=ydmodnnE计算:
tumodn=r-1ydmodn=r-1xdcdmodn=cdmodn=mnM想让T(公证员)给一个假消息m签名:
nM选择一个任意值x,计算y=xemodnnM计算m=ymmodn,让T给m签名:
mdmodnnM计算(mdmodn)x-1modn=mdmodnnE想让A对m3签名:
n产生两个消息m1和m2,使m3m1m2(modn)nE让A分别对m1和m2签名n计算:
m3dmodn=(m1dmodn)(m2dmodn)n注意:
不要对陌生人送来的随机文件签名,签名前应使用一个单向哈希函数。
n对RSA的公共模攻击n对RSA的小加密指数攻击n对RSA的小解密指数攻击n结论5.6身份验证体制nFeige-Fiat-ShamirFeige-Fiat-Shamirn简化的Feige-Fiat-Shamir身份验证体制:
n仲裁人选择一个随机模n,为两个大素数的乘积n产生密钥:
仲裁人选择一个数v,令v为模n的一个二次剩余,且v-1也存在。
v为甲的公开密钥。
计算s=sqrt(v-1)modn的最小的s,为甲的秘密密钥。
n协议:
1.甲方随机选取一个r,使rn。
然后计算x=r2modn,将x发送给乙方;
2.乙方向甲方发送一个随机位b;
3.如果b=0,则甲向乙发送r。
如果b=1,则甲向乙发送y=r*smodn;
4.如果b=0,则乙验证x=r2modn,表明甲知道sqrt(x)。
如果b=1,则乙验证x=y2*vmodn,表明甲知道sqrt(v-1)。
n以上为一次鉴定。
该协议重复t次,直到乙相信甲知道s为止。
n甲能欺骗乙一次的机会为50%,能欺骗乙t次的机会为1/2t。
n甲永远不能重复使用一个r值。
nFeige-Fiat-Shamir身份验证体制:
n产生模n,为两个大素数的乘积。
n产生密钥:
选择k个不同的数v1,v2,vk,其中各个vi为一个模n的二次剩余,且vi-1存在。
这串v1,v2,vk为公开密钥。
计算满足si=sqrt(vi-1)modn的最小的si,这一串s1,s2,sk为秘密密钥。
1.甲选择一个随机数r,rn。
计算x=r2modn,将x发送给乙;
2.乙向甲发送一个随机的k位串:
b1,b2,bk;
3.甲计算y=r*(s1b1*s2b2*skbk)modn,将y发送给乙;
4.乙验证是否有x=y2*(v1b1*v2b2*vkbk)modn。
n甲乙将这个协议重复t次,直到乙相信甲知道s1,s2,sk为止。
n甲能欺骗乙的机会为1/2kt。
n建议至少取k=5和t=4。
n举例:
n设模n=35,k=4。
n公开密钥:
4,11,16,29,秘密密钥:
3,4,9,8。
n协议的一圈:
1.甲选择一个随机数r=16,计算x=162mod35=11,将11发送给乙;
2.乙向甲发送一个随机的二进制串:
1,1,0,1;
3.甲计算y=16*(31*41*90*81)mod35=31,将31发送给乙;
4.乙验证是否有312*(41*111*160*291)mod35=11。
5.7密钥交换算法nDiffie-Hellmann点对点协议nShamir的三次通过协议Diffie-Hellmann用于分配密钥,但不能用于加密和解密n甲乙约定一个大素数n和一个数g,g为模n的生成元。
g,n公开,可以共享。
n甲选择一个随机大整数x,并向乙发送:
X=gxmodnn乙选择一个随机大整数y,并向甲发送:
Y=gymodn3)甲计算:
k=Yxmodn4)乙计算:
k=Xymodnnk=k=gxymodn,为秘密的密钥n三方或多方的Diffie-Hellman体制点对点协议n甲产生一个随机数x,将它发送给乙;
n乙产生一个随机数y,用Diffie-Hellman协议计算基于x和y的共享密钥k。
乙对x和y签名,并用k加密签名。
然后将签名和y一起发送给甲:
y,Ek(SB(x,y);
n甲也计算k。
将乙的消息的后面部分解密,并验证乙的签名。
然后对一个由x,y组成的消息签名,并用共享密钥对签名进行加密,再发送给乙:
Ek(SA(x,y);
n乙解密消息,并验证甲的签名。
Shamir的三次通过协议n甲乙双方不用交换任何秘密密钥或公开密钥就可安全通信n一个可交换的对称密码:
EA(EB(M)=EB(EA(M)n协议:
n甲向乙发送C1=EA(M);
n乙向甲发送C2=EB(EA(M);
n甲对C2解密,发送给乙:
C3=DA(EB(EA(M)=DA(EA(EB(M)=EB(M);
n乙解密C3,恢复M。
1.已知RSA密码体制的公开密钥为n=51,e=11,试加密明文M1=3。
通过分解n破译该密码,并对密文C2=6解密。
答案:
C1=24,M2=1251317(p-1)(q-1)21632e=11,d=11-1mod32=3C1=311mod51=24M2=63mod51=12练习2.设n=35,公开密钥为9,4,11,29,秘密密钥为2,3,4,8,补充用Feige-Fiat-Shamir协议进行一圈身份验证的过程。
(1)甲选择一个随机数r=11,计算,并发送给乙;
(2)乙向甲发送一个随机的二进制串:
1,0,1,0;
(3)甲计算发送给乙;
(4)乙验证是否有。
112mod35=1611*21*30*41*80mod35=18182*91*40*111*290mod35=163.设n=11,g=2,x=3,y=2,写出甲乙双方用Diffie-Hellman算法约定密钥的过程。
甲计算:
X=23mod11=8,发送给乙;
乙计算:
Y=22mod11=4,发送给甲;
k=43mod11=9;
k=82mod11=96序列密码6.1线性同余产生器6.2线性反馈移位寄存器6.3序列密码的设计与分析6.4进位反馈移位寄存器6.5非线性反馈移位寄存器6.6设计序列密码的方法6.1线性同余产生器n线性同余产生器:
伪随机序列产生器nXn=(aXn-1+b)modmnXn为序列中第n个数,Xn-1为序列中第n-1个数n变量a,b和m为常数nX0为密钥或种子n最大周期:
m-1n不能用于密码学6.2线性反馈移位寄存器n移位寄存器:
一个二进制位序列。
需要1位时,所有位都向右移动一位,空出的最左边一位由寄存器中其他位的一个函数来计算。
n移位寄存器的输出为1位,通常是最低位。
n周期为输出序列开始重复之前的长度。
n反馈移位寄存器:
由一个移位寄存器和一个反馈函数组成。
n线性反馈移位寄存器(LFSR):
反馈函数为寄存器中特定位的异或。
n这些位的列表称为一个选择序列。
n具有特定选择序列的LFSR会遍历所有的2n-1个内部状态,为最大周期的LFSR。
bnbn-1b4b3b2b1反馈函数反馈移位寄存器bnbn-1b4b3b2b1线性反馈移位寄存器输出位b4b3b2b14位的LFSR输出位n用1111对4位的LFSR初始化n重复之前的内部状态:
1111,0111,1011,0101,1010,1101,0110,0011,1001,0100,0010,0001,1000,1100,1110n输出序列:
1111010110010001nm序列:
最大周期的LFSR产生的输出序列。
n最大周期的LFSR的选择序列构成的多项式加上常数1为模2的本原多项式,多项式的阶为移位寄存器的长度。
nn阶本原多项式:
一个不可约多项式,能整除x2n-1+1,但对任意整数d,满足d整除2n-1,多项式不能整除xd+1。
n用本原多项式x32+x7+x5+x3+x2+x+1构造最大周期的LFSR:
b32b7b6b5b4b3b2b132位的最长周期的LFSR输出位6.3序列密码的设计与分析n线性复杂度:
能够模拟产生器输出的最短的LFSR的长度n。
n低线性复杂度的产生器肯定是不安全的n高线性复杂度也不一定安全n相关免疫函数6.6进位反馈移位寄存器n进位反馈移位寄存器(FCSR):
包括一个移位寄存器,一个反馈函数和一个进位寄存器。
n进位寄存器:
将选择序列的各位相加,并加上进位寄存器的内容,结果模2成为新位,结果除以2成为进位寄存器的新内容。
bnbn-1b4b3b2b1和进位反馈移位寄存器和除以2和模2输出位b3b2b1和和除以2和模2输出位3位FCSRn例:
3位FCSRn移位寄存器的初值为001,进位寄存器的初值为0。
n如下图所示:
移位寄存器001100010101110111011101010001000100进位寄存器000000111110n周期为10n最大周期:
q-1nq=2q1+22q2+23q3+2nqn-1,qi对应于各选择位,q只能是素数,2为其原根n并非所有状态都能给出最大周期6.7非线性反馈移位寄存器n反馈函数可以是任意的n问题:
n可能会有倾向性n最大周期可能很低n开始值不同,可能周期不同n序列可能退化6.8设计序列密码的方法n系统理论方法:
尽量保证每次设计都为攻击者设置一个未知且难以解决的问题,使用一套基本的设计原则和标准。
n信息论方法:
尽量让攻击者对明文一无所知。
n复杂性理论方法:
尽量让密码系统基于或等价于一些已知的数学难题。
n随机化方法:
尽量通过迫使攻击者在密码分析中去检查大量无用的数据的方式来产生一个难以处理的大问题。
n由多项式x3+x+1构造一个LFSR,用序列101对其初始化,并求其周期和重复前的输出序列。
b3b2b1状态:
101,010,001,100,110,111,011,101,.输出:
101