1. 시저암호란?
줄리어스 시저(Julius Caesar, 기원전 100년 경)라는 로마에서 활약했던 장군으로서 그 당시에 사용했으며, 이 사람의 이름을 본떠서 만든 시저암호를 알아보자. 암호학에서는 시저암호 또는 카이사르 암호(Caesar Cipher)라고도 부르기도 한다.
시저암호는 대칭키 암호 방식이며, 평문에 키 값을 이용하여 치환시키는 일종의 치환 암호방식이라고도 생각할 수 있다. 키 값의 크기만큼 알파벳을 다른 알파벳으로 치환시키는 역할을 해준다. 그러므로 키 값은 영어 알파벳이 26자이므로 26보다 큰 키 값을 사용 시에 0~25사이로 정해질 수 밖에 없다.
그림을 통해 살펴보자
1) 평문 → 암호문
평문: water, 키 값: 3
2) 암호문 → 평문
암호문 : OOOOO, 키 값 : 3
그림을 통해 알아보니 평문을 Key 값을 통해서 몇 번째 위치시키는지 결정해주는 방식이다.
- 암호화 : 평문 + Key만큼 대칭이동
- 복호화 : 암호문 -Key만큼 대칭이동
만약 Key 값이 26을 주어진다면 Key 값은 0 이나 다름이 없다. 알파벳은 26자 이므로, 원래 평문값으로 되돌아오는 규칙을 주의해야 한다.
예를들어 key 값이 27인 경우 27 % 26 = 1으로 key 값이 1인 경우와 같은 결과가 나온다.
시저암호(Caesar Cipher) 알고리즘 구현
실행결과
1) 암호화
2)복호화
댓글 없음:
댓글 쓰기