암호문을 함께 사용하면 제안 된대로 키를 제거 할 수 있습니다. 결과는 함께 XOR 된 두 개의 일반 텍스트가됩니다.
이제이 데이터 내에서 패턴을 감지하게됩니다. 인코딩을 검사하여이를 수행 할 수 있습니다. ASCII 문자는 항상 특정 비트 패턴을 갖습니다. 'A'
은 16 진수에서는 41
이고 2 진수에서는 0100 0001
이고 16 진수에서는 61
또는 0110 0001
입니다. 따라서 XOR을 사용하면 0010 0000
과 같은 것을 얻을 수 있습니다. 높은 비트 수를 0으로 설정합니다. 또한 두 개의 ASCII 인코딩 된 문자 XOR-ed는 두 개의 0 값 비트로 시작됩니다.
마지막으로 텍스트는 16 진수의 20
값 또는 2 진수의 0010 0000
값을 사용하여 인코딩되는 많은 공백을 사용합니다. 임의의 문자로 XOR 된 경우 다른 대소 문자를 반환하지만 결과는 여전히 문자입니다. 자체적으로 배타적 논리합을 적용하면 이진 값이 0000 0000
이됩니다 (자체적으로 XOR 된 모든 문자 인코딩과 동일).
충분한 암호문을 사용하면 일반 텍스트와 키를 얻을 수 있습니다. 단지 2 개의 암호문 만 있으면 이것은 아마도 달성 할 수 없다. 아마도 다음 과제 일 겁니다.
이 숙제가 있습니까? 평문에 대해 뭘 안다고? 평문이 무작위와 구별 될 수 없다면 (개념적으로 : 평문은 20 개의 메시지를 암호화하는 데 사용되는 키로 간주 될 수 있습니다. 그 중 두 개는 동일합니다). –
예, 숙제입니다. 일반 텍스트는 공백없이 동일한 길이의 2 개의 영어 메시지입니다. 그래서 평문은 무작위로 구별됩니다. 나는 모든 암호문을 쌍으로 함께 색칠했다. 한 쌍은 키가없는 두 개의 평문의 xor이기 때문에 다른 쌍과 구별 할 수 있어야합니다. 나는 그 차이를 발견 할 수 없다. – mbp
나는 당신이 이미 모른다고 말할 수있는 것이 확실하지 않습니다. 대답은 명백해야합니다 - 특히 평문이 영숫자 인 8 비트 ASCii 인 경우 ... –