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演算法的特點是演算法簡單,執行速度快,而且...