고대 암호의 한 종류인 카이사르 암호를 알아보도록 하겠습니다.
카이사르 암호(Caesar cipher) 또는 시저 암호는 간단한 치환암호의 일종이다.
암호화하고자 하는 내용을 알파벳별로 일정한 거리만큼 밀어서 다른 알파벳으로 변경해서 사용하는 방식입니다.
예를 들어 have a good time 이라는 글은 1자씩 밀어서 암호화 하면 IBWF B HPPE UJNF 가 됩니다.
A 가 B로 대체(변경)된 것을 보면 바로 이해 할 수 있을 겁니다. )
이제 우리가 만들 앱의 기능을 살펴보도록 하겠습니다.
앱에 평문(일반문장)을 입력하고 이동할 문자의 숫자를 입력한 후 암호화 버튼을 누르면 암호문이 생성됩니다.
이렇게 암호화된 문자를 다시 해독(평문전환)하고 싶다면 복호화 버튼을 누르면 됩니다.
이제 앱인벤터를 이용해서 화면 UI 를 만들어 보겠습니다.
평문을 입력할 textbox 와 이용할 숫자를 입력할 textbox 를 배치합니다.
또한 암호화 버튼과 복호화 버튼을 올려 놓고 아래를 참고해서 UI를 배치 합니다.
이제 블록 프로그램을 해보겠습니다.
먼저 알파벳의 26자를 입력한 ALPHABET 변수를 선언합니다. 이 변수는 일정한 거리로 알파벳을 밀어서 저장할 것입니다.
PLAIN_ALPHABET과 PLAIN_NUMER와 특수 문자를 입력한 SPECIAL_CHAR과 공백 문자를 입력한 SPACE_CHAR을 선언합니다.
암호화 버튼을 누르면 프로시져 make_encrypt_key_string 이 실행됩니다. make_encrypt_key_string 은 이동할 숫자만큼 이동한 알파벳 나열을 만들어 줍니다.
a에서 z까지 리스트에 넣는다.
shift 값만큼 더한 값의 리스트의 값을 가져 온다.
알파벳의 최대 수를 넘으면 x-26값의 문자를 가져온다.
첨부파일 :
- 소스파일 : cryptograph
- 실행파일 : cryptograph
Leave a Reply