2017-12-14 9 views
2

과제의 일부로, 2 개의 파일을 입력으로 사용하는 알고리즘을 만들어야합니다. 하나는 일반 텍스트를 포함하고 다른 하나는 암호문을 포함합니다. 암호화 모델이 하드 코딩/알려진 것으로 간주하고 대칭 암호화 인 경우 제공된 일반 텍스트를 제공된 암호문으로 암호화하는 데 사용되는 키를 계산하기 위해 openSSL을 사용하는 방법이 있습니까?평문과 암호문이 주어진 대칭 암호화의 키 계산

나는 편의상 Lorem Ipsum의 5 단락을 일반 텍스트로 사용하고 복어를 암호로 사용했습니다.

openSSL 설명서와 Google은 유용성이 적음을 입증했습니다.

감사합니다.

+0

http://cryptopals.com/ –

+0

선택한 허용 대답에는 여러 가지 문제가있어 허용 된 답변이 아니어야합니다. rossum 및 SoronelHaetir와 같은 다른 대답은 정확합니다. 이 중 하나에 대한 대답을 변경하는 것을 고려하십시오. – zaph

답변

1

아니요.
복어 알고리즘에는 적합하지 않습니다.

그 이유는 그러나 하지 그렇게 쉽게 경우에도 일반 텍스트 암호의 한 쌍에서 키를 도출 할 수 있다면 어떤 암호화 체계가 파괴 될 것을.
나머지 대답은 그 설명입니다.

키를 유도 할 수 있음에도 불구하고 안전 한 암호화 스키마가 적어도 하나 있습니다. 일회용 패드 암호화 체계로, 진정으로 안전한 암호화 체계로 알려져 있습니다.
요점은 한 메시지의 키가 나중에 모든 메시지의 암호 해독을 허용하는 경우에만 한 메시지의 키를 파생하면 암호화 체계가 손상된다는 것입니다. 이것은 동일한 키가 재사용되는 경우에만 적용 가능합니다.

일회성 패드 암호화의 전문이다

각 키는 하나의 메시지에 사용되는) 결코 다시
(이 메모장을 참조하면,이 "패드"라고 이유
) 키는 메시지 길이가
인 경우입니다 (그렇지 않으면 부분적으로 알려진 일반 텍스트로 암호의 일부분에 대한 키를 파생시킵니다. 나머지 메시지의 암호를 해독 할 수 있음)

이러한 특성을 사용하면 enc 겸손한 XOR을 사용하는 경우에도 메시지의 각 비트는 키의 자체 전용 비트에 해당하므로 깨지지 않습니다. 이것은 de// encryption이 얻는만큼 빠르며 메시지 길이를 늘리지 않습니다.

물론 원 타임 패드 암호화 즉 키 로지스틱스에 큰 단점이 있습니다. 이 암호화를 사용하면 많은 수의 큰 키가있는 메시지의 수신자 (또는 메시지의 크기에 부분적으로 사용될 수있는 매우 긴 키)를 제공하고 미리 그렇게해야하기 때문에 거의 적용 할 수 없습니다.
1 회 패드 암호화가 다른 모든 것보다 안전하고 빠르지 만 적어도 크기 효율적인 것은 사실에도 불구하고 1 회성 패드 암호화가 사용되지 않는 이유입니다.

다른 암호화 체계는 실질적으로 안전하다고 간주되며, 그렇지 않은 경우에는 물론 사용되지 않습니다.
그러나 암호화 분석의 눈에 띄는 진행 상황과 함께 키 크기를 늘리는 것이 필요합니다. 다른 알고리즘이 사용 불가능하다는 수학적 증거는 없습니다 (즉, 일반 암호 쌍에서 키를 파생하는 것은 불가능 함). 수학 전문가는 "나는 그렇게 할 수있는 방법을 생각할 수 없다"고 받아들입니다. 불가능한 것에 대한 증거. 게다가 새로운 기술은 키 유도에 대한 시간을 줄이거 나 키가없는 일반 텍스트를 찾기 위해 일반적으로 사용되는 키 길이에 맞춰 갑자기 파멸음을내는 일부분으로 줄일 수 있습니다.

알고리즘의 대칭성 또는 비대칭 성은 그와 관련이 없습니다. 두 종류 모두 파생 가능하거나 불가능할 수 있습니다.

메시지 길이와 관련하여 키 크기 만 중요합니다. 일회용 패드 암호화를 사용하는 경우에도 단축 키 (메시지 길이는 키 길이의 배수 임) 을 두 번 이상 사용해야합니다. 암호문의 첫 번째 부분이 알려진 일반 텍스트를 갖고 키를 파생시킬 수있는 경우이를 다시 사용하면 나머지 메시지에 대해 알 수없는 일반 텍스트를 찾을 수 있습니다.
이것은 각 블록의 키를 변경하는 블록 암호 체계에서도 마찬가지이지만 이전 키가 동일한 경우 새 키를 찾을 수 있습니다. 서로 파생 될 수없는 여러 개의 (대칭적인) 블록 키를 생성하기 위해 하나의 (아마도 비대칭 인) 메인 키를 사용하는 하이브리드 방식은이 대답을 위해 기본 키가 파생 될 수 있는지 파생 가능한 것으로 간주됩니다. 물론 이것이 널리 적용되는 알고리즘은 없습니다.

어떤 체계라도 유도 할 수있는 위험은 키의 비트 수와 메시지의 비트 수의 비율에 따라 증가합니다. 암호 비트와 보통 비트의 쌍이 각 키 비트와 관련 될수록 더 많은 정보를 분석에 사용할 수 있습니다. 일대일 릴레이션의 경우, 한 개의 일반 암호 쌍 정보를 그 한 쌍으로 제한 할 수 있습니다.

이 파생 가능한 암호화 때문에 메시지 길이와 동일한 키 길이가 필요합니다.
반대로, 이것은 파생 할 수없는 암호화 만 짧은 키를 가질 수 있음을 의미합니다. 특히 키 길이가 처리 기간을 의미하는 경우 짧은 키를 갖는 것이 이점입니다. 대부분의 암호화 체계는 긴 키로는 시간이 오래 걸립니다. 그러나 one-time-pad는 어떤 키 길이에서도 똑같이 빠릅니다.

쉬운 키 물류 (사전에 엄청난 양의 키 비트에 동의 할 필요 없음)가있는 알고리즘은 파생 할 수 없습니다. 또한 허용 가능한 속도를 가진 알고리즘은 파생 할 수 없습니다.
모두 복어를 포함하여 널리 사용되는 알고리즘에 모두 해당됩니다.

그러나 모든 알고리즘에서 특히 사실 안전하지 않은 일회성 암호화 (XOR)는 그렇지 않습니다.

특정 질문에 대한 답변은 실제로 다음과 같습니다.
복어와 대부분의 알고리즘은 생각할 수 없습니다. 하지만 ...

+0

고마워요! 이것은 내가 필요한 것입니다! –

+0

암호가 동일한 보안 매개 변수로 조작되는 경우 스트림 암호는 키 스트림을 생성합니다. 간단한 XOR이 그것을 할 것입니다. 사소하거나 약한 암호는 필요 없습니다. 매개 변수를 재사용하여 암호를 잘못 조작하면됩니다. – jww

+0

이 답변은 복어를 암호로 다루지 않습니다. 그것은 질문에 언급되어있다. 대답은 "큰 열쇠"가 무엇인지 정의하지 않습니다. 또한 "작은 키를 사용하면 키 크기의 배수 인 메시지에 여러 번 사용하는 것이 필요합니다"는 의미가 없습니다. – zaph

4

아니요, 그렇게 할 수있는 능력은 암호화의 전체 목적을 거의 무용하게 만듭니다. 사소한 시스템 (Caesar cipher)과 같은 일을 할 수있는 도구가 있지만 현재의 암호 시스템에 대해 합리적인 시간에 키를 계산할 수 있다면 깨질 수 있습니다.

+0

안녕하세요. 암호화 모델이 대칭 일지라도? 나는 제목에서 언급했다. 그러나 나는 또한 질문에서 그것을 언급하는 것을 잊었다. 죄송합니다.질문을 편집했습니다. –

+0

아니요, 대칭 암호에서 일반 텍스트 키를 적용하면 암호 텍스트가 생성되고이를 암호 텍스트에 적용하면 일반 텍스트 (명백하게)를 생성합니다. 알려진 일반 텍스트 (대문자)은 매우 약한 것으로 간주됩니다. – SoronelHaetir

+0

@RaresDima 대칭 암호화가 적절한 키 길이로 약하 지 않습니다. 예는 AES입니다. – zaph

2

공격자가 암호문과 일반 텍스트를 모두 알고있는 경우 키를 찾을 수 있습니까?

Blowfish를 포함한 모든 최신 현대 암호는이 공격에 저항하도록 설계되었습니다. 따라서 귀하의 질문에 대한 대답은 "아니오, 열쇠를 찾을 수 없습니다."라고 대답했습니다.