작성자 | 낙원의새 | ||
---|---|---|---|
작성일 | 2010-11-25 17:42:11 KST | 조회 | 910 |
제목 |
암호화에서 코드 변환과 크래킹
|
저장
SCllLiberty 이란 문자열을 아스키코드로
변환하면 53436c6c4c696265727479 가 됩니다.
이러한 코드 변환은 치환 방법으로 이루어지죠.
Base64인코딩을 하면 U0NsbExpYmVydHk= 가 됩니다.
SCllLiberty 을 아스키코드로 변환한 53436c6c4c696265727479 를
Base64인코딩을 하면 NTM0MzZjNmM0YzY5NjI2NTcyNzQ3OQ== 가 됩니다.
뭔가 복잡해보지만 이건 문자열을 흔히 사용되고 있는 코드로 변환한 것 뿐입니다.
코드변환을 통해 암호화를 시도한 많은 사이트가 있지만 대표적으로 포탈사이트
"Daum"이 대략 2003 년까지 아스키코드를 이용하여 비공개 접근을 차단했었습니다.
아스키코드가 매우 단순하며 "데이터에 조금만 관심 있어도 누구나 알고 있다는 것"을 생각해본다면
정말 어처구니 없는 일입니다. 그래서 Daum 의 암호화 방식이 변경되기 전까지 누구나 접근이 가능했었죠.
(※ 여기서 말하는 비공개 정보는 비밀번호와 같은 정보가 아닌 카페와 같은 개인 설정 비공개 정보입니다.)
2중으로 치환 암호화를 해도 단순 비교를 통해서 가려내는 것은 매우 쉽습니다.
DCllLiberty 이란 문자열을 동일하게 이중 변환하면 NDQ0MzZjNmM0YzY5NjI2NTcyNzQ3OQ== 이 되고
이 두가지 값만 있어도 NTM 을 NDQ 으로 변경하면 S 대신 D 라는 값을 얻을 수 있다는 것을 알수있죠.
알고리즘이 공개되어 있는 경우 풀어내는데 그리 어려운 일은 아닙니다.
만일 위 내용에서 사용된 아스키 코드와 Base64인코딩 방식을 사용자 지정으로
다르게 변경해서 만들고 중간에 배열치환도 추가하고 부가적으로 사칙연산을 넣어도
ex) 배열 치환이 들어가면 위치가 변경될 뿐이고
N0MzZjNmMM0YzY5NjI2TNTcyNzQ3OQ==
N0MzZjNmMQ0YzY5NjI2DNTcyNzQ3OQ==
ex) 사칙연산이 들어가면 변환 범위가 증가할 뿐입니다.
수십번의 곱하기 더하기 빼기 나누기를 해도 결과값 결국 정해져 있습니다.
ASSDS -> 아스키코드 인코팅 = 4153534453 산술*243 (16진법이지만 편의상 10진법 산술합니다)
= 1009308872079
Base64인코딩 -> MTAwOTMwODg3MjA3OQ0K
ASEDS -> 아스키코드 인코팅 = 4153454453 산술*243 (16진법이지만 편의상 10진법 산술합니다)
= 1009289432079
Base64인코딩 -> MTAwOTI4OTQzMjA3OQ0K
대조)
MTAwOTMwODg3MjA3OQ0K
MTAwOTI4OTQzMjA3OQ0K
치환방식의 암호화는 산술로 아무리 꼬아도 단순하게 치환해주는 것으로 크래킹이 가능하기 때문에
크래킹하는 입장에서는 MwODg3 이 어떤 과정을 통해서 I4OTQz 으로 변하는지 알아낼 필요가 없습니다.
알고리즘이 "암호화 과정의 역과정"이 "복호화"인 대칭키 방법인 알고리즘이 공개되어 있는
상태에서는 보안성이 매우 떨어지게 되며, 때문에 거의 사용되고 있지 않습니다.
그런데 사실 .. 스타2 에서 세이브 형식 맵의 세이브 파일이 특정한 가치를
지닌 것이 아니라서 굳이 역함수를 만들어서 크래킹 할려는 사람이 없기 때문에 ..
사실상 1-2시간 정도안에 해결하지 못하는 수준이 될 경우 뚫릴 일이 없다고 생각해도 무방하겠죠.
어찌되었건 개인적으로 SCIILiberty.555 님이 만들고 있는 암호화 라이브러리에 대해 매우 기대가 큽니다.
이 글이 문제가 되거나 전문 지식을 가진 분들에 의해서 심하게 털릴 경우 자삭하겠습니다.
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
© PlayXP Inc. All Rights Reserved.