2011-10-17 2 views
5

암호화 챌린지를위한 암호를 깨는 힐 클라이밍 알고리즘으로 활력을 테스트하는 알고리즘 (모든 프로그래밍 언어)이 필요합니다. 알고리즘은 임의의 암호 해독 (공백 없음)이 영어 텍스트 (아직 불완전한 단어에 대한 포인트를 제공함)인지 또는 임의의 문자 시퀀스인지를 테스트해야합니다.브 루트 포스 (Bute-Force) 언어 감지

내가 개발 한 여러 가지 알고리즘으로 시도했지만 너무 좋지 않았습니다.

내 연구 :

수수께끼 M4의 암호화 프로젝트 (http://www.bytereef.org/m4_project.html)는도 내가 사용하려는 Sinkov 통계를 사용합니다.

유일하게 발견 한 것은 내가 찾고있는 Sinkov 로그 가중치 분석을 포함하는 Java 프레임 워크 인 "quebra -pedra"입니다.

http://www.google.com/m?client=ms-android-samsung&source=android-home#q=Quebra-pedra+framework+java

그러나 프레임 워크를 다운로드 어디 발견하지 않았습니다. 또한 Sinkov 테스트의 구현이나 설명을 찾지 못했습니다.

나는 어떤 힌트라도 기뻐할 것이다. 감사.

답변

5

나는 Sinkov 통계에 대해 모른다. 그러나 자연어 처리의 언어 모델은 텍스트가 영어와 얼마나 유사한가에 따라 점수를 매기고 원하는대로 정확하게 처리 할 수있다.

나는 여기 bigram 하나의 간단한 글을 썼다.

https://github.com/rrenaud/Gibberish-Detector

+0

의견을 보내 주셔서 감사합니다. 나는 마르코프 사슬을 알지 못했지만 나는 바이 그램에 대한 점수를 계산하는 것과 같은 생각이 들었다. 내 자신의 공식으로 문제는 실제 텍스트와 쓰레기 사이의 거리가 매우 작았다는 것입니다. 마르코프 체인에 대해 자세히 알아 보려면 코드를 살펴 보겠습니다. –

+0

제 동료가 rrenaud의 프로젝트를 Java로 번역했습니다. https://github.com/paypal/Gibberish-Detector-Java 누구에게나 유용합니다. – Eyal