Programming

보안_ ECB, CBC, CFB, OFB, CTR.

steloflute 2016. 3. 31. 23:30

http://egloos.zum.com/sunshell/v/1655832


1) ECB (Eelectronic Code Book)
    : "ECB, 전자코드북 모드는 가장 단순하다. 동일한 key로 각각 암호함."

    :  ECB는 암호키와 같이 짧은 데이터에 적당하다. 따라서 DES나 AES의 키를 
       보안상 안전하게 전송하려 할 때 ECB를 사용한다. 
    :  ECB의 가장 중요한 성질은 평문의 동일한 b비트 블럭이 두번 이상 나올 경우, 항상 동일한 
       암호문이 생성된다. 그래서 메세지가 길면 보안이 안좋으니까 짧은 메세지만 ECB를 이용할 것.

2) CBC (Cipher Block Chaining)
    : "ECB의 보안상 문제를 아주 간단히 보안한 것."

    : 앞의 C1이 뒤의 C2...의 값에 영향을 미친다. (= chaining(연쇄적 반응))
    : 선행암호문 64비트를 XOR 하는 방식.
    : 일반적인 블럭전송과 인증에 주로 사용한다

3) CFB (Cipher Feedback)
    : "ECB의 chainning."

    : 왼쪽에 있는 sbit만큼만 꺼내서 shift -> 나머지 sbit는 XOR 
        -> IV(초기값)을 두번째 부터는 sbit만큼 shift 시키고 남은 공간에는 C1를 집어넣는다. 
    : 일반적인 스트림형 전송과 인증에 사용
      Output으로 나오는 C1이 sbit이기 때문에 bit로 관리하면 쉽다. 

4) OFB (Output Feedback)
    : "CFB와 유사하지만 몇가지 차이가 있다. 
    
    : CFB에서는 암호함수의 출력이 이동 레지스터에 의해 피드백 되지만, 
      OFB는 S비트의 부분집합이 아닌 평문과 암호문의 꽉찬 블럭으로 운용된다.
    : CFB와 다르게, OFB는 잡음이 발생하더라도 문제가 생기지 않는다. 
      OFB의 C1은 하나의 영향만 받지만, CFB은 C1이 P2를 생성할 때도 영향을 미치기
      때문에 줄줄이 망한다. 
    : 잡음이 있는 채널상의 스트림형 전송에 쓰임. ex) 위성통신 

5) CTR (Counter)
    : "속도가 가장 빠른 장점."
    
    : 말 그대로 Counter를 집어넣는다.
    : key값이 고정되어 있기 때문에, P1이 아직 생성되지 않았어도 미리 encryption을 
      다 만들어 놓을 수 있어서 P1이 생성되면 XOR만 하면 끝!
      즉, 전처리(=병렬처리)가 가능하여 속도가 빠르다.
    : 일반적인 블럭형 전송과 고속의 요구 사항에 유용.
      인크립션, 디크립션하는 시간이 짧아서 고속의 요구사항에 용이하다. 

'Programming' 카테고리의 다른 글

Ms Windows Global Context Menu  (0) 2016.04.05
OpenSSL AES 암복호화  (0) 2016.04.04
openssl AES 모드 : ECB,CBC,CFB...  (0) 2016.03.31
Comparison of programming languages  (0) 2016.03.29
ARIA 소스코드 보급  (0) 2016.03.28