One Time Pad도 OTP이고, One Time Password도 OTP이다.

그렇다면 이 둘의 차이점은 무엇인지 알아야 하고, 적재적소에 사용할 줄 알아야 한다.

 

One Time Pad

어떤 평문이 있을 때, 평문과 길이가 같은 임의의 Key(seed)를 XOR 연산으로 암호문을 생성하는 암호 체계이다.

 

OTP(One Time Pad) example

OTP(One Time Pad, 이하 OTPad)를 설명하자면 위와 같다.

어떤 평문(plain text)가 있고 그 길이와 동일한 임의의 키(key)를 생성한다.

 └ 이때 키는 일회용이며, 무작위로 생성한다.

그 후 평문과 키를 XOR 연산하여 암호문(cipher text)을 생성하는 전체의 과정을 말한다.

 

OTPad는 수학적인 원리에 기반한 것도 아니고, 키도 난수이기 때문에 깨뜨리는 것은 사실상 불가능하다.

하지만 키 배송 문제, 키 보존 문제, 키 재사용 문제, 키 동기화 문제, 키 생성 문제 때문에 쓰이지는 않는다.

 └ 키 배송 문제 : 송/수신자가 상호 암/복호화를 위해서는 동일한 키가 필요하다. 안전하게 키를 보낼 수 있다면 평문 자체도 안전하게 전송 가능하다.

 └ 키 보존 문제 : 복호화를 위해 키는 보존되어야 한다. 평문과 같은 길이의 키를 안전하게 보존한다면 평문 자제도 안전하게 보관 가능하다.

 └ 키 재사용 문제 : 과거에 사용한 키를 재사용해서는 안 된다.

 └ 키 동기화 문제 : 큰 평문이라면 그만큼 키가 길어진다. 이때 1비트라도 어긋난다면 복호화가 불가능하다.

 └ 키 생성 문제 : 재현 불가능한 난수를 대량 생산하기 어렵다.

OTPad는 실용적이지는 않지만 스트림 암호(Stream Cipher)에서 사용한다.

 

One Time Password

암호화 알고리즘과 Key(seed)는 고정이고, 평문에 따라 암호문을 생성하는 암호 체계이다.

 

OTP(One Time Password) exmaple

OTP(One Time Password, OTPassword)를 설명하자면 위와 같다.

어떤 평문(plain text)에 대해서 정해진 암호화 알고리즘과 키를 통해 암호문(cipher text)을 생성한다.

이때 암호문은 말그대로 한 번만 사용가능하다.

 

이때 암호화 알고리즘과 키가 정해져있다(고정)는 이야기는 언제나 같은 평문에 대해 같은 암호문을 뱉는다는 뜻이 아니다.

일회용 비밀번호를 생성하는 알고리즘과 키를 생성하는 방법이 있다는 이야기이다.

 └ 자세한 알고리즘 종류와 키 생성 방식, 장단점은 위키백과 참고 https://wiki.wikisecurity.net/wiki:otp

 

OTPassword는 비밀번호만 1회용이고, 알고리즘 및 키값(시드값)은 계속 사용한다.

그렇기에 그 값이 노출되면 얼마든지 복제할 수 있는 기술이기도 하다.

 

 

'Computer Science > 보안(Security)' 카테고리의 다른 글

컴퓨터 바이러스 분류  (0) 2023.05.20
[정리] 정보 보호 개요  (1) 2022.09.20

+ Recent posts