보안/암호화 방식
[보안] RC4 암호화 알고리즘
꾸적꾸적
2022. 9. 12. 15:41
1 바이트 단위로 받아서 실행한다.
(블록처럼 한 블록씩 나누지않고 바이트 단위로 계속 실행한다.)
따라서 속도가 블록 암호에 비해서 빠르다.
통신 보안분야에 많이 사용한다.
SSL(Secure Sockets Layer) -> TLS(Transport Layer Security)
WEP(Wired Equivalent Privacy) / WPA(WiFi Protected Access)에서 사용한다.
1. 초기화 단계 (KSA) ( 1번 실행함 )
256바이트의 state vector를 0,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]