2009-09-25 3 views
0

나는 (자바, AES (CBC), 128 비트 키를) 요청에 여러 매개 변수를 암호화해야합니다메시지가 짧아서 공격자가 알고있는 경우 대칭 키를 찾을 수 있습니까?

String toencrypt = "name+birthdate+appid+userid" 

내가 공격자가 모든 값을 추측 할 수 있다고 가정해야한다. 대칭 키 추측/찾기에 미치는 영향은 무엇입니까? 그럼에도 불구하고 암호화 된 콘텐츠가 공격자에게 알려진 경우에도 대칭 키가 안전합니까? 이렇게하면 키를 쉽게 찾을 수있는 대략적인 "요인"은 무엇입니까? (예를 들어 알려진 내용없이 키를 찾는 것이 더 빠를 수도 있습니다 ...)

(제 질문은 전적으로 암호화 된 콘텐츠를 공격자가 알 수 있다는 사실에 기인합니다.) 길이 제한으로 인해 "임의의"문자 또는 소금 등을 포함 할 가능성이 없음).

그리고 다른 관련 질문. AES 함수의 "Initialization Vector"에 대해 키 초기화에 사용 된 것과 동일한 데이터를 선택하면 보안에 미치는 영향은 무엇입니까? 이것은 보안에 어떤 영향을 줍니까?

대단히 감사합니다! 마커스

답변

2

이것을 known-plaintext attack이라고합니다. AES를 포함한 모든 괜찮은 암호는 취약하지 않습니다.

정의에 따르면 암호화 키만 비밀입니다. Init 벡터, 키 유도 알고리즘 등은 알려진 것으로 가정한다. 따라서 IV와 키에 동일한 데이터를 사용하면 보안이 약화 될 수 있습니다. 암호화 된 강력한 해시를 통해 데이터를 실행할 수 있으므로 알려진 IV에서 키로 이동하려면 먼저 해시를 역전해야합니다. 그러나

+0

안녕하세요, 귀하의 도움에 감사드립니다. –

+0

실제로 "알려진 평문 공격"은 다릅니다. 알려진 일반 텍스트 공격의 경우 공격자는 일반 텍스트와 암호화 된 암호문을 알고 있지만 암호화에 사용 된 키는 알고 있지 않습니다. Markus는 공격자가 일반 텍스트를 알지 못하지만 일반 텍스트에서 추측 할 수있는 가능한 공격을 설명합니다. 좋은 암호는 요즘은 평문의 작은 변화를 매 라운드마다 암호문의 큰 변화로 적절하게 "캐스케이드"합니다. – weiji

+0

예, 올바르게 추측하면 알려진 일반 텍스트가됩니다. – laalto

2

이 시나리오는 "plain text attack을"라고합니다 .. 전혀 다른 용도로 키 생성과 관련된 데이터를 사용하지에 더 나은입니다 :

고전 암호가 알려진 평문 공격에 일반적으로 취약하다.

AES는 이러한 공격을 견딜 수 있도록 설계되었습니다.

작동 방식 : 프로그램을 실행하는 경우 역순으로 실행할 수도 있습니다. 그렇습니까? 예 : a + b = c. c (결과) 및 a (일반 텍스트)을 알고있는 경우 b을 파생시킬 수 있습니다.

그러나 이것은 모든 작업에 적용되지는 않습니다. 모듈러스 : a % b = ca = 0x41c = 1으로 사용하십시오. 이 경우 b은 많은 값이 될 수 있습니다. AES는 이들을 많이 사용하여 원본 메시지에서 키를 유도하는 알고리즘을 다시 계산할 수 없도록합니다.

0

데이터에 임의의 값을 추가하여 추측 요인을 줄일 수 있습니다. 그런 다음 값을 다시 해독 한 후 폐기합니다.

1

처음 두 답변은 "이것은 일반 텍스트 공격입니다"로 시작합니다. 실제로는 그렇지 않습니다. Markus는 "공격자 모든 값을 추측 할 수 있습니다."및 "암호화 될 내용 은 공격자에게 알려진 일 수 있습니다."라고 말합니다. 이것은 "공격자 내용을 알고 있습니다"와 같지 않습니다.일반 텍스트 공격은 공격자가 어떤 일반 텍스트가 어떤 암호 텍스트를 생성하는지 알고 있어야하는데, 이는 질문에서 다소 모호하지만 "아니오"처럼 보입니다. 공격자가 암호화 된 문자열에 액세스 할 수 있고 일반 텍스트의 필드가 무엇인지 추측 할 수있는 것처럼 들리며 질문은 키 보안에 어떤 영향을 미칠지에 관한 것입니다.

좋은 소식은 "AES를 포함한 모든 괜찮은 암호가 취약하지 않다는 점에서이 두 가지 대답이 옳다는 것입니다." "AES는 이러한 공격에 견딜 수 있도록 설계되었습니다." " 암호화 된 내용이 공격자에게 알려진 경우에도"다시 질문을 인용하면 ""이라는 대답은 없습니다. 일반 텍스트를 알 수 있더라도 키가 반드시 취약하지는 않습니다.

더 높은 수준에서, 암호 사용에 대한 동기에 대해 더 많은 이해가있는 것처럼 보입니다. Bruce Schneier (저자 : Applied Cryptography)는 암호가 얼마나 강건한가 아니라 위험을 관리하는 방법에 대해 생각합니다. AES를 사용하여 일부 문자열을 암호화하는 것은 기본적으로 "침입자는 무차별 적으로 계산할 수있는 양의 컴퓨팅 능력이 필요하며이를 통해 알려진 양의 일반 텍스트 공격은 그만큼 줄일 수 있습니다. 수퍼 컴퓨터 시간의 종류는 X 수천 달러의 비용이 듭니다. "기본적으로 비밀은 얼마나 많은 가치가 있는지, 그리고 그 비밀을 대체/복원하는 데 얼마의 비용이 소요될지를 생각함으로써 위험을 관리합니다. 적을 많이 쓰려고한다면 암호화가 시스템의 가장 가벼운 부분인지 확인하는 것이 좋습니다. 예를 들어 악의적 인 시스템 관리자에게 뇌물을주고 내부 작업을 수행 할 수 있습니다. 통찰력의 또 다른 측면은 무어의 법칙에 따라 암호화가 더 저렴해질 것이라는 것을 이해하는 것입니다. 따라서 강력한 암호를 사용하는 경우 제한 사항을 이해해야합니다. 기본적으로 시간이 갈수록 약 해집니다.

관련 문제