일상

Scratch - 카이사르 암/복호화

볼케인 2017. 7. 4. 12:00

치환 암복호화의 고대 유물인 카이사르 암호화를 스크래치로 구현해봅시다.



변수 설명:

 - Password: 입력 받은 암호/평문을 담을 변수입니다.

 - alphabets: 알파벳 26글자를 담을 변수입니다.

 - i,j: n번째 문자를 확인하기 위한 변수입니다.

 - result: 암/복호화 결과문입니다.


먼저 카이사르 암호의 암/복호화 방법은

 - 암호화 시 3글자 만큼 뒤로 이동한다. (volcano → yrofdqr)

 - 복호화 시 3글자 만큼 앞으로 이동한다. (yrofdqr → volcano)

로 이루어져 있습니다.


화면은 다음과 같이 구성했습니다.



Enc 버튼: 암호화를 시작하는 방송을 발생시킵니다.

Dec 버튼: 복호화를 시작하는 방송을 발생시킵니다.

고양이: 입력 받은 이벤트 대로 말하고 연산을 합니다.



버튼의 동작은 간단합니다.




각각의 버튼은 방송하고 끝입니다.


고양이가 방송을 받아 이벤트를 시작합니다.



여기서 주목할 것은 부호입니다.


암호화는 1로 정하고 복호화 시 -1로 정했습니다.


이는 카이사르 암호화에서 알파벳을 이동할 방향을 정하는 것입니다.



암복호화 하기 전 변수를 간단히 초기화 합니다.




1. 입력받은 문자 수 만큼 반복합니다.

 - 각 글자별로 암/복호화를 반복합니다.

2. 알파벳 수 만큼 반복합니다

 - n번째의 문자의 알파벳 순서를 찾습니다.

3. 결과에 (n+3)%26 혹은 (n-3)%26의 결과를 추가합니다.

4. 결과를 말합니다.



동작 결과:





위에 서술한 내용대로 암호화 및 복호화가 정상적으로 이루어집니다.


암/복호화의 제일 기초적인 방식인 카이사르 암복호화를 스크래치로 구현해 보았습니다.