文章横幅PC版
文章横幅iPad版
文章横幅手机版

流密码算法 有哪些

TIME:2019-03-21 14:24  click: 563 次 来源: 未知

典型流密码算法有RC4和A5/1两种。

RC4是密钥长度能变面向8位字节的流密码,它是一种得到广泛应用的流密码体制,特别是在用安全套接字层SSL协议的Internet通信和无线通信领域的信息安全方面。为确保安全强度,RC4最小用128位的密钥。

RC4的一个明文字节与一个密钥字节相异或产生一个密文字节。算法很简单,n位长的字,会有N=2n个可能的内部置换状态矢量S,它们是保密的。密钥流中的密钥K由S中256个元素按一定方式选出一个元素来充当,每生成一个K值,S中的元素就被重新置换一次。

RC4有密钥调度算法(KSA)和伪随机数生成算法(PRGA)两个主要的算法。

1.密钥调度算法KSA

密钥调度算法是把随机密钥变换成初始置换,即等同于初始化状态矢量S,之后PRGA用该置换生成伪随机输出序列。

初始化时,S中元素的值被设置为0~255,即S[0]=0,S[1]=1…,S[255]=255。密钥Key的长度为L个字节,从S[0]至S[255],对每个S[i](i=0,1,…,255),由密钥K[i]确定将S[i]置换位S中的另一个字节。因为对S的操作只是交换,所以S中仍含从0~255的全部元素。

2.随机数生成算法PRGA

伪随机数生成算法主要实现生成密钥流。密钥K在密钥流中被一个个地生成,即从S[0]至S[255]。

3.加密与解密

加密时,把K值和下一个明文字节异或;解密时,把K值和下一个密文字节异或。

A5/1是A5密码族中用LFSR生成位流的流密码,主要用在全球移动通信系统中。

1.密铜的生成

A5/1用了19、22和23位3个LFSR生成密钥流,它们用到的多项式分别为:f1(x)=x19+x5+x2+x+1,f2(x)=x22+x+1和f3(x)=x23+x15+x2+x+1。产生的每位被送入228位大小的缓存器暂存,用于加密或解密。

(1)“尊重多数位”函数

A5/1进行初始化时涉及一个“尊重多数位”函数f(b1,b2,b3)=b1b2+b2b3++b3b1的使用,此函数的值与其输入的多数位一致,即如果函数的输入位多数为1,则函数值为如果函数的输入位多数为0,则函数值为0,如f(1,0,1)=1,f(0,0,1)=0。

“尊重多数位”函数的3个输入位称为时钟位,如果以最右边位作计数起始位(第0位),3个LFSR的时钟位分别为: LFSR1[10]、LFSR2[11]和LFSR3[11]。

(2)初始化

对每个帧进行加密或解密前需初始化,要用一个64位密钥和相应帧数的22位来实现。

(3)密钥流位

每个时钟内密钥流生成器生成密钥流的一位,在密钥流位被生成之前先计算“尊重多数位”函数的值,如果某个LFSR的时钟位与“尊重多数位”函数的值相等,它将被时钟触发(即进行移位操作),否则,它不被触发。

2.加密和解密

缓存的密钥位流可得228位的密钥帧,它与明文帧按位异或获得密文帧。加密和解密的相逆的过程,它们每一次都操作一帧。

 

上一篇:VPN工作原理 下一篇:量子密码学原理