If you're seeing this message, it means we're having trouble loading external resources on our website.

웹 필터가 올바르게 작동하지 않으면 도메인 *. kastatic.org*.kasandbox.org이 차단되어 있는지 확인하세요.

주요 내용

시프트 암호

모듈로 연산과 시프트 암호

카이사르 암호는 시프트 암호의 하나입니다. 시프트 암호는 모듈로 연산을 이용해 메시지를 암호화하고 해독하는 방식으로 작동합니다. 시프트 암호는 0부터 25까지의 정수키 K를 가집니다. 메시지를 볼 사람에게만 그 키 값을 공유합니다.

암호화 방법

메시지 안의 모든 글자 M 에 대해:
1. 글자를 알파벳 순서대로 0부터 시작하여 숫자로 바꿉니다. 이를 숫자 X라고 합니다.
(A=0, B=1, C=2, ..., Y=24, Z=25)
2. 계산합니다: Y = (X + K) mod 26
3. 다시 0부터 시작하는 순서에 따라 Y를 알파벳으로 변환합니다.
(A=0, B=1, C=2, ...,Y=24, Z=25)
예시: 메시지 암호화에 키 값 K=19인 시프트 암호를 사용하기로 했습니다. 
메시지 "KHAN"을 암호화하면 다음과 같습니다:​
키 값 K=19인 시프트 암호를 적용하고 나면, 원래 메시지인 "KHAN"은 암호 텍스트 "DATG"가 됩니다.
메시지를 "DATG"라고 보냅니다.

해독하는 방법

암호 텍스트 안의 모든 글자 C 에 대해:
1. 글자를 알파벳 순서대로 0부터 시작하여 숫자로 바꿉니다. 이를 숫자 Y라고 합니다.
(A=0, B=1, C=2, ..., Y=24, Z=25)
2. 계산합니다: X= (Y - K) mod 26
3. 숫자 X를 0부터 알파벳 순서에 따라 글자로 바꿉니다.
(A=0, B=1, C=2, ...,Y=24, Z=25)
앞서 공유한 키 값 K=19를 이용하여 메시지를 해독하면 다음과 같습니다:
따라서, 키 값 K=19를 이용하여 암호 텍스트 "DATG"를 "KHAN"으로 해독했습니다.

시프트 암호가 안전하지 않은 이유

암호는 암호 텍스트의 복사본은 있지만, 키 값을 모르는 공격자로부터 메시지의 내용을 알아내지 못하도록 해야합니다. 하지만 가능한 키 값이 26개 밖에 없기 때문에, 누구든 메시지를 복구할 때까지 26개의 키를 모두 시도해볼 수 있습니다. 이러한 공격을 brute force attack이라고 합니다.