• evo真人(中国)

    文章橫幅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工作原理 下一篇:量子密碼學原理