김 컴퓨터


OTP암호화

One Time Pad 암호화는 해독이 거의 불가능합니다.
이 암호화의 키는 한번만 사용됩니다. 이로인해 최고의 무결성과 기밀성을 보장합니다.
OTP의 키는 랜덤으로 생성되며 평문의 크기와 동일합니다.

OTP의 핵심은 안전한 키 교환에 있습니다.

2000년대에 홈뱅킹이 시작되던 시점에 은행에서 나눠주는 OTP를 생각해보면 작은 기기를 은행에 가서 받아와야 했습니다.
직접 만나서 신원을 확인하고 전달하는것이 가장 안전하다는 뜻 입니다.

안전한 통신의 예시

이러한 특징은 군사적 목적에 잘 부합합니다.
예시로 앨리스는 사단장이고 밥과 캐롤은 대대장입니다. (앨리스가 가장 계급이 높음) 앨리스는 대대장들로부터 최고로 안전하게 통신을 하고 싶어합니다.

1. 사전 키전달

2. 통신

취약점

이 방식은 키가 탈취당하면 암호화가 풀립니다. 따라서 키는 네트워크가 연결되어있지 않은 환경에 놓는것이 좋습니다.

은행에서 받아온 OTP는 서랍에 넣어두고 위의 예시에서는 컴퓨터를 분리하여 네트워크가 없는 컴퓨터에서 작업하고 네트워크가 연결된 컴퓨터에서는 전송만 하는 역할로 분리를 할 수 있습니다.

숫자로보기

앨리스는 밥의 성과에 만족하였습니다.

따라서 “A”라는 문자를 보안통신으로 보내고 싶습니다.

  1. A는 아스키코드 로 십진수 65 이며 65는 이진수로 0100 0001 입니다.
  2. 이제 앨리스는 랜덤으로 생성해놓은 키를 조회합니다. 사용하지 않은 키 중 첫번째 부분은 1010 0011 같이 생겼습니다.
  3. 이제 키를 해석하기를 0은 해당위치의 숫자를 바꾸지 않음. 1은 해당위치의 숫자를 바꿈 이라고 해석하기로 합의했습니다.
  4. 앨리스는 이 규칙으로 1110 0010 이라는 암호문을 얻었습니다.

놀라운 점은 평문을 키가 지시하는대로 바꾸는것과 키를 평문으로 생각하고 평문의 지시로 바꾸는것이 같은 결과를 낸다는 점 입니다.

평문 0 1 0 0 0 0 0 1
1 0 1 0 0 0 1 1
암호문 1 1 1 0 0 0 1 0

밥이 해독을 하는 과정

  1. 밥은 일반 네트워크로 1110 0010이라는 숫자를 받습니다.
  2. 밥이 자신의 키에서 앨리스와 같은위치의 키를 읽었더니 키는 1010 0011을 찾았습니다.
  3. 앨리스와 합의한 위의 규칙을 동일하게 적용합니다.
  4. 밥은 0100 0001 이라는 결과를 얻었고 이를 아스키코드로 찾아본 결과 A라는 평문을 얻게 되었습니다.
  5. 따라서 밥은 안전한 통신으로 앨리스가 자신에게 A라고 보냈다는것을 알게 되었습니다.
암호문 1 1 1 0 0 0 1 0
1 0 1 0 0 0 1 1
평문 0 1 0 0 0 0 0 1

XOR연산

이러한 연산은 XOR연산이라고 합니다. XOR연산은 더하기와 유사한 기호로 나타내는 만큼 더하기로 해석을 하여도 됩니다. 단 이때 1+1 =2 가 아닌 1+1=0 으로 해석하여야 합니다. 이진수에서는 2를 나타낼 수 없기 때문입니다. 그리고 2가 나왔다고 이진수 덧셈을 하는 방식으로 다른 자릿수에 1을 더해주면 안됩니다. 각각의 자릿수에서 연산을 하여야 합니다.

입력 1 입력 2 결과
0 0 0
0 1 1
1 0 1
1 1 0