컴공 공부/창작의 고뇌

선형암호 암호화 프로그램

무무뭉? 2021. 2. 1. 00:29

https://jo-gunhee.github.io/website1/dcode2/affine.html



선형 암호란 알파벳 a~z를 하나씩 숫자 0~25에 대응시켜

각 알파벳을 (ax+b)mod m 연산을 수행한 후 그에 대응되는 알파벳으로 치환하는 암호다.

위 식에서 a와 b는 암호에 사용되는 암호키로 a와 b를 모른다면...

403291461126605635584000000 가지의 수를 다 따져봐야한다...

일십백천만억조경해자... 403자.... 


위 사이트에 접속하여 암호키 a와 b를 설정하면 그 숫자를 가지고 문자열을 암호화 해주는데 

여기서 a는 26과 서로수여야만 한다. 따라서 a로 사용할 수 있는 값은 1,3,5,7,9,11,15,17,19,21,23,25 가 있다. b는 1~26 사이의 숫자만 사용 가능하다.


복호화 사이트를 올리지 않는 이유는 웹페이지의 메모리 전송이 문제인지... out of memory라고 뜬다... 복호화 사이트는 구글이나 네이버에서 따로 찾아봐야할 것 같다... 그냥 재미로만 봐주시길...


복호화 하는 알고리즘이 원래 그런건지 아니면 암호에 대한 이해력과 알고리즘 구현력은 별개의 문제인건지 오랜시간동안 짠 코드가 결과를 확인할 수 없어서 삽질한 기분이 들지만... 코딩이 뭐...원래 그런거니까... 그래도 혹시나 복호화 사이트의 디자인과 문제점이 궁금하다면 아래의 사이트에 방문해 보시길...

https://jo-gunhee.github.io/website1/dcode2/affine_dec.html


개선점

1. 복호화 알고리즘의 단순화

2. 수많은 경우의 수를 간추리는 법

3. 웹사이트에서 왜 복호화가 안될까...


※ 제 블로그에 있는 웹사이트의 소스 코드는 아래의 사이트에 항상 공개로 되어있습니다.

https://github.com/jo-gunhee/website1