본문 바로가기
728x90

학부20

RSA RSA는 공개 키 암호 알고리즘의 하나로써 암호화뿐만 아니라 디지털 서명에 사용할 수도 있다 RSA는 세 사람의 개발자 이름, Ron Rivest, Adi Shamir, Leonard Adleman의 각각 첫글자를 따서 붙여졌다. RSA에 의한 암호화 RSA에서는 평문, 키, 암호문 모두 숫자이다. 암호문 = (평문)^E mod N (RSA 암호화) 평문 = (암호문)^D mod N (RSA 복호화) 공개 키 (E, N) 개인 키 (D, N) 위의 식을 풀기 위해서는 E, D, N을 알아야 한다. 순서는 다음과 같다. (1) N을 구한다 (2) L을 구한다 (L은 키 쌍을 생성할 때만 등장하는 수이다.) (3) E를 구한다 (4) D를 구한다 예를 들어 p = 17, q = 19를 골라서 계산을 해보자... 2019. 4. 20.
키 배송문제(Key Distribution Problem) A 송신자가 B 수신자에게 메시지를 전달할 때 A 송신자는 C 도청자가 자신의 메시지를 보는 것을 원치 않기 때문에 대칭암호를 이용하여 암호화를 진행한다고 가정하자. A는 메시지를 암호화해서 암호문을 작성하였고 B에게 전송했다. 하지만 B는 A가 메시지를 암호화할 떄 사용한 키를 알지 못하기 때문에 암호화된 메시지를 복호화 할 수 없다. 그렇기 때문에 A는 암호화된 메시지와 함께 암호화에 사용된 키를 같이 전송해줘야 한다. 하지만 암호문과 함께 암호화에 사용된 키를 같이 전송하게 된다면 C는 전송된 암호문뿐만 아니라 암호화에 사용된 키까지 알게 될 수도 있다. 그렇게 되면 B뿐만 아니라 C까지도 암호문을 복호화하여 메시지를 알아낼 수 있다. 위와 같이 대칭암호로 암호화된 메시지를 복호화하기 위해서는 암호.. 2019. 4. 20.
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.
728x90
반응형

`