2011-09-05 4 views
1

알았어. 제 질문은 그렇게 전문적이지는 않습니다. 기본적으로 알고 싶습니다. AES와 사용자 지정 (그러나 정적) 키를 사용하여 메시지를 암호화 할만큼 안전하다고 생각합니까?사용자 정의 (변하지 않는) 키로 AES 암호화가 충분히 안전합니까?

같은 키를 사용하여 암호를 해독 할 수 있기를 원하지만 동시에 키를 모르는 사람이 액세스 할 수 없도록하고 싶습니다.

저는 AES만이 정부가 승인 한 유일한 암호화 방법이라고 밝혔습니다. 사실이든 아니든 상관없이 말하지는 않습니다.

+1

AES는 특정 종류의 데이터에 대해 미국 정부에서 승인 한 알고리즘입니다. 다른 정부 기관이 있으며 다른 알고리즘을 좋아합니다. 한국을위한 SEED. –

+0

'열쇠를 모르는 사람은 접근 할 수 없기를 바란다.' 키 길이에 따라 다릅니다. – fardjad

+0

진짜 암호화 프로그램이 ('mcrypt'와 같은) 일을하게한다면, AES는 암호의 선택으로 문제가 없지만 잘 이해하고 잘 만들어야하는 다른 선택이있다. 만약 당신이 스스로 솔루션을 만들고 싶다면 암호의 선택이 당신의 가장 적은 관심사 일 수 있습니다. –

답변

3

AES는 보안 블록 암호 알고리즘 (이것은 암호 장면의 현재 의견) (올바르게 사용 된 경우)입니다.

ECB 모드가 아닌 mode of operation 보안 코드와 각 메시지에 대해 임의의 초기화 벡터 (메시지와 함께 보낼 수 있음)를 사용해야한다는 것을 의미합니다.

물론 대칭 암호라는 것은 미리 암호를 협상 할 수있는 비법 (그리고 확실한 방법)이 필요하다는 것을 의미합니다.

제어 할 수없는 컴퓨터에 배포하려는 소프트웨어에 키를 포함하려는 경우에는 좋지 않습니다.이 경우 Michael이 언급 한 것처럼 공개 키 알고리즘을 사용하는 하이브리드 방식을 사용하십시오.

+0

무작위 IV가 도움이되는 방법을 물어봐도됩니다. 공격자가 처음 16 바이트가 실제로 IV인지 이해하려면 추가 단계를 밟아야합니다. 내가 틀렸다면 나를 정정하십시오. 그러나 무작위 IV가 실제 공격자에 도움이되지 않는다고 느낍니다. – ruruskyi

+0

@ruruskyi 만약 잘못 말하면 유감이지만 ... ** 공격자가 키를 알고 있거나 파생시킬 수 있다면 IV는 전혀 도움이되지 않습니다 **. 그러나 공격자가 키를 모르는 경우 IV로 작동 모드를 사용하면 어떤 종류의 공격 (이 공격은 모드에 따라 다르지만 적어도 "동일한 암호 텍스트의 동일한 일반 텍스트 결과")는 항상 있습니다 그곳에). –

+0

CBC 모드에서 AES-256을 사용한다고 가정하면 공격자는 물론 키를 알지 못합니다. 질문은 각 메시지에 대한 무작위 IV가 알고리즘을 더 안전하게 만드는 이유였습니다. – ruruskyi

2

정부에서 승인 한 표준은 모두 NIST에서 표준 FIPS 140-2으로 지정됩니다. 얼마나 안전한지를 알기 위해 무엇을 암호화할지 잘 모르겠지만 하이브리드 암호 시스템을 구현하는 것이 고려되어야합니다. Cryptographic Message Syntax (CMS) [RFC 5625] 또는 심지어 OpenPGP [RFC 4880] 형식과 같은 것을 사용할 수 있습니다.

기본적으로 이러한 시스템은 AES와 함께 사용하여 데이터를 암호화하는 임의의 암호화 키를 생성합니다. 그런 다음 RSA와 같은 알고리즘을 사용하여 임의의 키를 암호화 할 수있는 수신자의 공개 인증서를 갖게됩니다. 그런 다음 두 개의 암호화 된 부분이 하나의 메시지로 결합됩니다. 그런 다음 수신자는 개인 키와 공개 인증서를 사용하여 AES 키를 해독 한 다음 데이터를 해독 할 수 있습니다.

2

AES가 좋습니다. CBC 모드 또는 CTR 모드에서 사용하십시오. ECB 모드는 안전하지 않습니다.

정적 키는 안전하지 않습니다. 공격자가 과거와 이후의 모든 데이터 전송이 더 이상 안전하지 않다는 것을 발견하자마자 키를 정기적으로 변경해야하며 이상적으로는 각 메시지의 새 키가 이상적입니다.

변경 키를 전송하기 위해 RSA/공개 키를 사용하는 Michael의 제안이 좋으며, 필요에 따라 Diffie Hellman을 사용하여 각 수신자에게 새 키를 생성 할 수도 있습니다.

많은 것들이 이미 암호화 라이브러리에 내장되어 있습니다. 당신의 일반적인 문제는 새로운 것이 아닙니다.

관련 문제