문제

나는 모든 비 문자를 제거하고 ucasing을 제거한 후 간단한 대체에 의해 다른 문자열을 다른 문자열로 번역 할 수 있도록 2 개의 텍스트 문자열을 찾고 싶습니다.

이에 대한 동기는 내가 알고있는 프로젝트에서 비롯된 것입니다. 한 번 간단한 대체 사이퍼로 암호화 된 크고 일관된 일반 텍스트를 찾고 싶습니다.

이것은 2 개의 부분으로 끝나고, 코퍼스에서 가장 긴 줄을 찾아서 그 코퍼스를 얻습니다.


첫 번째 부분은 B-Tree가 첫 번째 발생 순서를 순차적으로 만드는 대체 후 끈을 벗기고 어떤 종류의 공격에 대해 언급 할 수있는 것처럼 보입니다.

HELLOWORLDTHISISIT
1233454637819a9b98

트리의 각 깊이를 기준으로 문자열의 최대 값과 길이를 아는 것에 기초한 약간의 최적화는 단지 코딩됩니다.


다른 부분은 상당히 더 관여 할 것입니다. 검색 할 텍스트의 큰 코퍼스를 생성하는 방법은 무엇입니까? 어떤 종류의 인터넷 거미는 가장 큰 양의 텍스트에 액세스 할 수 있지만 텍스트 만 제거하는 방법은 무엇입니까?

질문은 ~이야; 더 나은 방법에 대한 아이디어가 있습니까?


편집 : 사용중인 암호는 미친 기본 26 Letter 대체 암호입니다.

추신 : 이것은 더 많은 생각 실험보다 나에게 가능한 실제 프로젝트입니다.

도움이 되었습니까?

해결책

26이 있습니다! 다른 대체 암호. 그것은 88 비트 이상의 선택 :

>>> math.log(factorial(26), 2)
88.381953327016262

영어 텍스트의 엔트로피는 적어도 문자 당 2 비트와 같습니다. 따라서 실수로 대체에 해당하는 45-50 자 이상의 통로를 합리적으로 기대할 수없는 것 같습니다.

대형 코퍼스의 경우 처음에는 Gutenberg 프로젝트와 Wikipedia가 있습니다. 웹 사이트에서 모든 영어 Wikipedia의 XML 파일 덤프를 다운로드 할 수 있습니다.

다른 팁

나는 당신이 "일관된"대체를 생성하기 위해 조금 많은 것을 요구한다고 생각합니다. 이는 암호화 알고리즘이 어떤 텍스트가 일관성인지 알아내는 AI 문제입니다. 또한 텍스트가 길수록 "일관된"결과를 만들어내는 것이 더 복잡합니다. 텍스트가 암호화하는 한 "키"가 필요한 지점에 빠르게 접근합니다. 따라서 그것을 암호화하는 목적을 전혀 물리칩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top