본문 바로가기
보안/암호화 방식

[보안] RC4 암호화 알고리즘

by 꾸적꾸적 2022. 9. 12.

1 바이트 단위로 받아서 실행한다.

(블록처럼 한 블록씩 나누지않고 바이트 단위로 계속 실행한다.)

따라서 속도가 블록 암호에 비해서 빠르다.

통신 보안분야에 많이 사용한다.

 

SSL(Secure Sockets Layer) -> TLS(Transport Layer Security)

 

WEP(Wired Equivalent Privacy) / WPA(WiFi Protected Access)에서 사용한다.

 

1. 초기화 단계 (KSA) ( 1번 실행함 )

256바이트의 state vector0,1,2,...255로 초기화.

=> 키배열 K[0],K[1],K[2],...K[255] 생성됨. 이곳에 키가 복사됨.

키의 값이 256바이트보다 짧다면 꽉 찰때 까지 반복적으로 복사.

 

2. The Pseudo-Random Generation Algorithm (PRGA) ( 1번 실행함 )

상태배열은 두개의 독립변수 i,j를 기반으로 swap.

i,j 번째 두 상태원소의 값은 키를 생성하기위한 상태배열의 인덱스를 정하기 위해 사용된다.

초기 j = 0

j = j + S[i] + T[i] (mod 256)

 

3. Stream Generation ( n번 실행함 )

i = j = 0

i = ( i + 1 ) (mod 256)

j = ( j + S[i] ) (mod 256)

swap( S[i], S[j] )

t = ( S[i] + S[j] ) (mod 256)

Ci = Mi XOR S[t]

댓글