ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Stream Cipher
    Security/Cipher 2022. 10. 27. 17:12

    Stream Cipher란 Block 단위로 묶지 않고 데이터들에 순차적으로 암호화를 적용해주는 방식이다.

    위 그림과 같이 유사난수를 1비트 단위로 생성하고, 암호화 하려는 데이터와 XOR 연산을 진행하여
    1비트의 암호문을 얻는 식으로 많이 사용된다. 

    스트림 암호는 블록 암호에 비해서 더 빠르고 간단하다는 특징이 장점이다.

     

    RC4 

    RC4는 Stream Cipher에 한 종류이며, TLS나 WEP등의 여러 프로토콜에 사용되어왔다.
    현재는 취약점이 발견되어 권장하는 프로토콜은 아니라고 한다.

     

    RC4는 평문과 XOR 연산할 pseudoramdom stream을 만들어낸다.

    RC4는 State개념을 사용한다. ex.) S[0],S[1],S[2],S[3]....S[255] + 초기화 using KSA

    KSA: Key-Scheduling Algorithm

     

    Key 배열 또한 생성이 되는데 키의 길이에 따라서 복사를 하게 된다.
    이 경우에서 Key 배열의 길이보다 Key가 짧다면  배열이 다 찰때까지 반복하여 Key를 집어넣는다.

     

    위의 상태배열과 키배열이 준비가 됐는데, 키배열을 이용하여 상태 배열을 Swap해준다고한다. 

    using PRGA(Pseudo-random generation algorithm)

     

    위와 같이 생성된 같은 길이의 두 배열을 XOR연산을 진행하는 방식으로 RC4 알고리즘이 전개된다.

     

    RC4는 과거에 많은 분야에서 사용이 됐다. 하지만 최근 여러 안전성 문제 때문에 사용이 권장되지 않는다.

     

    다음은 RC4 알고리즘의 취약점이다.

     

    1. RC4로 생성된 키스트림 일부 값이 편향되게 나온다.

    2. 의사난수가 완벽한 난수가 아니므로 안정성 문제가 있다.

     

    공공장소에서 WIFI등을 사용하는 환경에서 MITM 환경에 놓일 수 있고, 공격자가 미리 Javascript등을 통해 특정 사이트로 통신을 요청하게 만들고 해당 통신을 캡처하여 암호화 된 패킷을 복호화, cookie등의 정보를 복원하여 계정 탈취등의 공격을 진행할 수 있다.  

     

Designed by Tistory.