사용자 도구

사이트 도구


kb:streamcipher

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

kb:streamcipher [2014/11/07 11:32] (현재)
줄 1: 줄 1:
 +====== Stream Cipher ======
 + from http://​www.rsasecurity.com/​rsalabs/​faq/​2-1-5.html
 +
 +  * StreamCipher(이하,​ SC)는 대칭형(symmetric) 암호화 알고리즘의 일종이다. ​
 +  * BlockCipher(이하,​ BC)가 커다란 데이터의 뭉치를 다루는 데 비해, SC는 비트나 바이트를 다룬다. 이는 SC가 실시간 암호화를 염두에 두고 만들어진다는 의미다. 그래서 SC는 일반적으로 BC보다 속도가 빠르다. ​
 +  * BC에서는 임의의 텍스트를 같은 키를 사용해 암호화했을 때 항상 똑같은 결과가 나온다. 하지만 SC를 사용했을 때에는 이전에 어떤 작업을 했었느냐에 따라 결과값이 달라진다.
 +  * SC는 키스트림(keystream,​ 키로서 사용되는 비트의 배열)을 생성한다. 암호화는 보통 입력된 텍스트를 키스트림과 XOR함으로서 이루어진다. 키스트림의 생성은 입력되는 텍스트나 암호화된 텍스트와는 아무 관계가 없을 수도 있고, 있을 수도 있다. 아무 관계 없는 경우에는 Synchronous Stream Cipher라 불리고, 관계 있는 경우에는 Self-Synchronizing Stream Cipher라 불린다. 대부분의 SC는 Synchronous Stream Cipher다.
 +  * 아직까지는 어떤 SC 방법도 표준이 되지는 않았다. 제일 많이 쓰이는 것은 RC4 이다. 흥미롭게도 BC의 어떤 모드는 그것을 SC로서도 활용할 수 있게 만든다. CFB 또는 OFB 모드의 DES가 이런 예이다.
 +
 +
 +====== 알고리즘 ======
 +  * [[ArcfourAlgorithm]]
 +  * [[ScopAlgorithm]]
 +  * [[RabbitAlgorithm]]
 +  * [[Rc4Algorithm]]
 +  * [[SoberAlgorithm]]
 +  * [[W7Algorithm]]
 +
 +
 +====== 벤치마크 ======
 +Visual C++ v8.0, No SIMD, Pentium 4 3.00GHz 상에서의 벤치마크
 +
 +^ Algorithm ^ Throughput ^ **Note** ^
 +| [[ArcfourAlgorithm]] | 178M/s | 1바이트 단위로 동작 |
 +| [[ScopAlgorithm]] | 385M/s | 4바이트 단위로 동작 |
 +| [[RabbitAlgorithm]] | 137M/s | 16바이트 단위로 동작. SIMD를 사용하면 좀 더 빨라진다. |
 +
 + ​구현 방법/​시스템 구성에 따라 달라지는 수치므로 큰 의미를 둘 수는 없다. 다만 어느 정도의 상대적인 비교는 가능하다.
 +
 +----
 +  * see also [[Cryptography]]
  
kb/streamcipher.txt · 마지막으로 수정됨: 2014/11/07 11:32 (바깥 편집)