본문 바로가기
728x90

학부/Network Security14

CTR(CounTeR)모드 CTR모드는 1씩 증가하는 카운터를 암호화해서 키 스트림을 생성해내는 스트림암호이다. 즉, 카운터를 암호화한 비트열과 평문블록과의 XOR연산을 취한 결과가 암호문블록이 되는 것이다. 카운터의 초기값은 암호화 때마다 다른 값을 기초로 해서 만든다. 블록길이가 128비트(16바이트)인 경우 카운터의 초기값은 예를 들면, | 66 1F 98 CD 37 A3 8B 4B 00 | 00 00 00 00 00 00 01 | 비표 블록번호 를 사용한다고 하자. 앞부분 8바이트는 비표로 암호화 때마다 다른 값을 사용해야 한다. 뒷부분 8비트는 블록번호로 이 부분을 1씩 증가시켜가면 된다. 66 1F 98 CD 37 A3 8B 4B 00 00 00 00 00 00 00 01 (초기값) 66 1F 98 CD 37 A3 8B.. 2019. 4. 20.
OFB(Output-FeedBack)모드 OFB모드는 암호알고리즘의 출력을 암호할고리즘의 입력으로 피드백한다. OFB모드에서도 평문블록을 직접 암호알고리즘으로 암호화 하지 않는다. 암호알고리즘의 출력과 평문블록을 XOR연산하여 암호문 블록을 만들어낸다. OFB모드에서도 초기화벡터(IV)가 사용된다. CFB모드와 OFB모드는 유사하다. 암호알고리즘의 입력으로 들어가는 것이 무엇인지의 차이이다. CFB모드에서는 "한 단계 이전의 암호문블록"이 암호알고리즘의 입력으로 들어가고 OFB모드에서는 "한 단계 이전의 암호알고리즘의 출력"이 암호알고리즘의 입력으로 들어간다. 또 CFB모드는 최초의 평문블록부터 순서대로 암호화를 진행해야 하지만 OFB모드에서는 평문블록에 상관없이 암호알고리즘을 미리 수행하여 키스트림을 생성해 둘 수 있다. 키 스트림을 미리 생.. 2019. 4. 20.
CFB(Cipher-FeedBack)모드 CFB모드에서는 한 단계 앞의 암호문블록을 암호 알고리즘의 입력으로 사용한다. 앞서 살펴본 ECB모드나 CBC모드에서는 암호알고리즘을 이용하여 평문블록을 암호화 하였다. 이번에 공부할 CFB모드에서는 평문블록을 직접 암호화하지 않는다. CFB모드에서는 한 단계 앞의 암호문블록을 암호화하여 키 스트림을 생성해내고 생성된 키 스트림과 평문블록을 XOR하여 암호문블록을 생성해낸다. 이것이 ECB모드, CBC모드와의 차이점이다. 위의 그림을 보면 CFB모드에서도 초기화벡터(IV)를 사용하고 있는 것을 알 수 있다. CFB모드의 최초 암호문블록을 만들어낼 때도 "한 단계 앞의 출력"이 존재하지 않기 때문이다. 2019. 4. 20.
CBC(Cipher Block Chaining)모드 CBC(Cipher Block Chaining)모드는 암호문 블록을 마치 체인처럼 연결시키기 때문에 붙여진 이름이다. CBC모드에서는 "한 단계 앞에서 수행되어 결과로 출력된 암호문 블록"에 평문 블록을 XOR하고 나서 암호화를 수행한다. 글로만 봐서는 이해가 쉽게 되지 않는다. 아래의 그림을 보자. 위의 그림에 IV라는 용어가 등장한다. 그렇다. 위의 그림을 이해하기 위해서는 IV(Initialization Vector)의 개념을 알아야 한다는 의미다. IV(Initialization Vector)란 초기화벡터라고 하며 최초의 평문블록을 암호화 할 때는 "한 단계 앞의 암호문블록"이 존재하지 않기 때문에 "한 단계 앞의 암호문블록"을 대신할 비트열을 말하는 것이다. 초기화벡터(IV)는 키와 마찬가지로 .. 2019. 4. 20.
728x90
반응형

`