rc4加密演算法

2022-05-21 09:06:16 字數 2159 閱讀 4488

rc4演算法,詳情可以看下這個文件

/**

* rc4加密演算法

* 加密原理:

* 先了解一下流密碼的結構:

* 金鑰輸入到乙個偽隨機數(位元)發生器中,輸出一串8位元的隨機數,稱為金鑰流;金鑰流通過與同一時刻的明文進行異或運算產生密文;

* 1 , 通過金鑰排程演算法ksa初始化狀態向量s(s就是乙個隨機數發生器,稱為s-box)

* 2 , 再通過偽隨機數生成演算法prga得到金鑰流keystream

* 3 , 金鑰流keystream 與明文進行xor運算得到密文)

* 解密用 金鑰流與密文xor

* wiki:

*/ #include static void swapnotemp(unsigned char* x, unsigned char* y)

static void printtext(unsigned char* text, int length)

{ int i ;

for(i=0;i再附上乙個彙編**:(不是我寫的,在看雪學院上看到的)comment *

algorithm : rc4 ( stream cipher )

usage : invoke rc4_setkey,addr ptrinkey,addr ptrinkey_length

invoke rc4_crypt,addr ptrindata,addr ptrindata_length ( encrypt & decrypt )

coded by x3chun (2003.11.22)

([email protected] or [email protected]) ( )

comment *

rc4_setkey proto :dword, :dword

rc4_crypt proto :dword, :dword

.data?

rc4keytable db 256 dup(?)

.code

rc4_setkey proc ptrinkey:dword, ptrinkey_length:dword

xor ebx,ebx

@_r1:

mov [rc4keytable+ebx],bl

inc ebx

cmp ebx,256

jnz @_r1

mov esi,ptrinkey

xor eax,eax

xor ebx,ebx

xor ecx,ecx

xor edi,edi

@_r3:

mov al,[rc4keytable+ecx]

add bl,byte ptr [esi+edi]

add bl,al

mov dl,[rc4keytable+ebx]

mov [rc4keytable+ecx],dl

mov [rc4keytable+ebx],al

inc edi

cmp edi,ptrinkey_length

jl @_r2

xor edi,edi

@_r2:

inc ecx

cmp ecx,256

jnz @_r3

retrc4_setkey endp

rc4_crypt proc ptrindata:dword, ptrindata_length:dword

xor eax,eax

xor ebx,ebx

xor edi,edi

xor edx,edx

mov esi,ptrindata

@_r1:

mov cl,[rc4keytable+1+eax]

add dl,cl

mov bl,[rc4keytable+edx]

mov [rc4keytable+edx],cl

add bl,cl

mov bl,[rc4keytable+ebx]

xor [esi+edi],bl

inc eax

inc edi

cmp ptrindata_length,edi

jnz @_r1

retrc4_crypt endp

RC4加密演算法

rc4於1987年提出,和des演算法一樣,是一種對稱加密演算法,也就是說使用的金鑰為單鑰 或稱為私鑰 但不同於des的是,rc4不是對明文進行分組處理,而是位元組流的方式依次加密明文中的每乙個位元組,解密的時候也是依次對密文中的每乙個位元組進行解密。rc4演算法的特點是演算法簡單,執行速度快,而且...

RC4加密演算法

簡介 包括初始化演算法 ksa 和加密演算法兩大部分 主要 初始化部分 這個基本上是固定的 void rc4 init unsigned char s,unsigned char key,unsigned long len s最開始是傳入的長度為256的char型空陣列,用來存放初始化後的s key...

RC4加密演算法

rc4於1987年提出,和des演算法一樣,是一種對稱加密演算法,也就是說使用的金鑰為單鑰 或稱為私鑰 但不同於des的是,rc4不是對明文進行分組處理,而是位元組流的方式依次加密明文中的每乙個位元組,解密的時候也是依次對密文中的每乙個位元組進行解密。rc4演算法的特點是演算法簡單,執行速度快,而且...