1 / 31

Algorithm Types and Modes

Algorithm Types and Modes. Electronic Codebook Mode Block Replay Cipher Block Chaining Mode Stream Ciphers Self-Synchronizing Stream Ciphers Cipher-Feedback Mode Synchronous Stream Ciphers. Algorithm Types and Modes. Output-Feedback Mode Counter Mode Other Block-Cipher Modes

Download Presentation

Algorithm Types and Modes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algorithm Types and Modes • Electronic Codebook Mode • Block Replay • Cipher Block Chaining Mode • Stream Ciphers • Self-Synchronizing Stream Ciphers • Cipher-Feedback Mode • Synchronous Stream Ciphers

  2. Algorithm Types and Modes • Output-Feedback Mode • Counter Mode • Other Block-Cipher Modes • Choosing A Cipher Mode • Interleaving • Block Ciphers VS Stream Cipher

  3. Electronic Codebook Mode(1/2) • Block cipher를 사용하는데 가장 명확한 방법 • Plaintexts와 CipherTexts의 관계에서 CodeBook을 생성(키마다 다른 codebook을 가진다.) • 파일을 linear하게 암호화 할 필요는 없다. • 여러 암호 processor를 가지고 있다면 병렬처리 • 단점: • key를 모르는 상태에서 codebook을 구성 가능하다.(해독자가 여러 평문과 암호문을 가지고 있다면) • Stereotyped beginnings and Stereotyped endings

  4. Electronic Codebook Mode(2/2) • Padding 대부분의 msg가 64bit로 나누어 떨어지지 않는다. 마지막 block에 일정한 패턴을 집어 넣는다. Ciphertext stealing

  5. Block Replay • Key나 알고리즘을 모르는 상대가 암호화된 msg를 변경할 수 있다. • Communication line에서 암호화된 msg를 record. A pair of identical msg을 찾는다. • 자신의 communication에서 msg를 insert한다. • Timestamp로 막을 수 있다.(not complete) • fundamental problem이다. • Solution은 chaining기법을 이용

  6. Cipher Block Chaining Mode(1/6) • Chaining : 블록 암호에 feedback을 도입 • 평문 블록을 이전 암호 블록과 XOR시킨다. • 각 블록의 암호는 모든 이전 블록에 의존한다. • Ci=Ek(Pi xor Ci-1) • Pi= Ci-1 xor Dk(Ci)

  7. Cipher Block Chaining Mode(2/6)

  8. Cipher Block Chaining Mode(3/6) • Initialization Vector 동일한 header는 어떤 유용한 정보를 가진다.이것은 해독자에게 유용한 정보를 줄 수가 있다. 첫 번째 블록을 임의의 data로 암호화해서 방지한다. 이 임의의 data블록을 IV라 한다. 동일한 평문 msg는 다른 암호문 msg로 암호화(code book만들기가 어려워진다.)

  9. Cipher Block Chaining Mode(4/6) • Padding ECB mode와 같이 동작하지만, 어떤 application에서는 암호문과 평문의 사이즈가 같아야 한다.

  10. Cipher Block Chaining Mode(5/6) • Error Propagation 평문에서 1-bit error는 암호화 해서 해독된 평문에서도 1-bit error를 가진다.(암호화된 연속 block에 영향) 암호문에서의 error가 더 일반적. 통신상의 noisy와 중간 저장장치에서 malfunction. In CBCmode, 암호문의 1-biterror는 한 블록과 재생된 평문의 1-bit에 영향을 미친다.(연속되는 한 블록도 같은 위치에 1-bit error를 가진다.) • Error extension

  11. Cipher Block Chaining Mode(6/6) • Security Problems CBC의 구조에 의해서 발생 암호블록은 다음 블록에 영향을 미친다. 암호화된 msg의 끝에 블록을 더할 수 있다. 쓰레기 data로 해독될 것이지만 바람직 하지 않다. 1. 평문을 구성할 때 msg를 끝나는 곳을 알 수 있게 해서 추가가 블록을 찾을 낼 수 있게 한다. 2. 전체 평문 msg는 controlled redundancy or authentication을 가진다. 3. 매우 긴 msg의 경우 pattern을 가진다.

  12. Stream Ciphers • 평문을 1bit씩 암호문으로 바꾼다. ci=pi xor ki pi = ci xor ki pi xor ki xor ki = pi

  13. Self-Synchronizing Stream Ciphers (1/2) 각 keystream bit는 이전 ciphertext bit의 고정된 수의 함수이다. Internal state는 이전 암호 n-bit의 함수이다. 각 msg는 임의의 n-bit 길이의 header를 가진다.

  14. Self-Synchronizing Stream Ciphers(2/2) • Security Problems playback attack에 약하다. Mallory가 암호bit를 기록하고, 나중에 current traffic으로 recording으로 대체한다. 초기 garbage후에 받는 쪽이 resynch하는 동안 예전의 암호문은 보통값으로 해독된다. 받는 쪽은 이것이 current data라는 것을 알 수 없고 예전 data는 replay된다. 따라서 resynch가 자주 발생하는 문제

  15. Cipher-Feedback Mode(1/3) CBC mode와 같이 data의 완전한 block을 받을 때까지 encryption을 하지 않는다. Data는 block size보다 작은 units로 암호화된다. n-bit CFB를 사용한다.(블록size보다는 같거나 작은 크기)

  16. Cipher-Feedback Mode(2/3) • Initialization Vector block알고리즘에 input은 IV로 초기화 CBC mode의 IV와 유사(need not be secret) Unique해야 한다.(CBC mode의 IV와의 차이점) Unique하지 않으면 해독자가 plaintext를 recover가능 Msg마다 바뀌어야 한다.

  17. Cipher-Feedback Mode (3/3) • Error Propagation 평문에서 error는 모든 다음 암호문에 영향을 미친다. 암호문에서 1bit error는 plaintext에서 1bit 에러를 발생시킨다. error가 Shift register에 들어 있다면, register의 다른 끝까지 갈 때까지 garbled된다. m/(n-1)블록에 영향(m은 블록 size,n은 n-bit CFB mode)

  18. Synchronous Stream Ciphers(1/3) • Keystream은 Msg의 stream에 독립적으로 발생 • synchronous ciphers는 transmission error를 propagate하지 않는다. • Keystream generator는 long period를 가져야 한다. • Insertion과 deletion을 막을 수 있다.

  19. Synchronous Stream Ciphers(2/3) • Insertion Attack Mallory ciphertext stream을 기록했지만, plaintext와 암호화 하는데 사용한keystream은 모르고 있다. Original plaintext : p1 p2 p3 p4 … Original keystream: k1 k2 k3 k4 … Original ciphertext: c1 c2 c3 c4 .. P`를 p1뒤에 넣는다.새로운 암호문을 기록 New plaintext : p1 p` p3 p4 … Original keystream: k1 k2 k3 k4 … Updated ciphertext: c1 c`2 c`3 c`4 ...

  20. Synchronous Stream Ciphers(3/3) P`의 값을 알고 있다면, 원래의 암호문과 새로운 암호문 후에 전체적인 plaintext를 결정 k2=c`2 xor p`, and then p2 = c2 xor k2 k3=c`3 xor p2, and then p3 = c3 xor k3 k4=c`4 xor p3, and then p4 = c4 xor k4 Bit가 삽입된 위치를 정확히 알지 못해도 2개의 암호문을 비교해서 달라지기 시작한 부분을 알아낸다. 해결방안: 2개의 다른 msg를 암호화 할 때 같은 keystream을 사용하지 않는다.

  21. Output-Feedback Mode(1/2) • CFB mode와 유사(이전의 output block의 n-bit가 큐의 가장 오른쪽 위치로 이동한다는 것만 제외) n-bit OFB(n은 블록 size, Si는 state) Ci=Pi xor Si; Si=Ek(Si-1) Pi=Ci xor Si; Si=Ek(Si-1) 대부분의 작업이 offline으로 이루어질 수 있다.

  22. Output-Feedback Mode(2/2) • Error Propagation no error extension ciphertext에서 1bit error는 재생된 plaintext에서 1bit error를 일으킨다. (digitized analog transmission) a loss of synchronization 는 치명적 • Security Problems with OFB feedback size가 block size와 같아야 한다. • Stream Ciphers in OFB key가 next-state function에 영향 Complexity는 next-state function에 있다.

  23. Counter Mode Counter mode에서 block cipher는 input으로서 sequence number를 사용한다. Register에 대한 input으로 counter를 사용 synchronization와 error propagation은 OFB와 동일 • Stream Ciphers in Counter Mode simple next-state function을 가지고, key에 의존하는 복잡한 output function을 가진다. 먼저 모든 이전 key bit을 생성하기 전에 i번째 key bit을 생성 가능하다. 특정 블록의 decryption이 가능하다.

  24. Other Block-cipher Modes(1/5) • Block Chaining Mode Ci=Ek(Pi xor Fi); Fi+1=Fi xor Ci Pi=Fi xor Dk(Ci); Fi+1=Fi xor Ci 문제점 : decryptionof ciphertext block은 모든 이전 ciphertext block에 의존 • Propagating Cipher Block Chaining Mode CBC와 유사 (encryption하기 전에 이전 plaintext block과 이전 ciphertext block이 현재의 plaintext블록과 XOR한다.)

  25. Other Block-cipher Modes(2/5) Propagating cipher block chaining mode

  26. Other Block-cipher Modes (3/5) Ci=Ek(Pi xor Ci-1 xor Pi-1) Pi= Ci-1 xor Pi-1 xor Dk(Ci) ciphertext에 error는 뒤따르는 모든 block이 잘못된 decryption을 하게 한다. msg의 끝에 block을 checking은 전체 msg의 integrity를 확신 시켜준다. • Cipher Block Chaining with Checksum CBC의 변종 모든 plaintext block의 XOR을 유지, 마지막 plaintext block과 그것을 XOR시킨다.

  27. Other Block-cipher Modes (4/5) 마지막 block이 integrity check나 constant를 포함한다면 해독된 plaintext의 integrity는 적은 추가 overhead로 check가 가능. • Output Feedback with a Nonlinear Fucntion OFB와 ECB의 변종 Ci=Eki(Pi); Ki=Ek(Ki-1) Pi=Dkj(Ci); Ki=Ek(Ki-1) ciphertext에서 한 bit error 는 단지 하나의 plaintext block에 propagate된다. 그러나 추가되거나 없어지면 infinite error extension이 된다.

  28. Other Block-cipher Modes (5/5) • More Mode Plaintext block chaining(PBC) Plaintext feedback (PFB) cipher block chaining of plaintext difference(CBCPD)

  29. Choosing A Cipher Mode • ECB speed, simplicity, easy, fast, weakness • CBC encrypting files, security, bit errors in stored data, almost never synch error. Best choice in software-based app. • CFB encrypting a streams of character(host-terminal), high speed synch system, • OFB in error prone environment(no error extension)

  30. Interleaving Parallel encryption을 가능하게 한다. 각 stream은 자신의 IV를 필요로 한다.

  31. Block Ciphers VS Stream Ciphers • Block Ciphers Operate on data with a fixed transformation on large blocks of plain-text data. More general easier to implement in software • Stream Ciphers Operate with a time-varying transformation on individual plaintext digits easier to analyze mathematically suitable for hardware implementation

More Related