문제

AES를 가진 단일 블록으로 16 바이트의 데이터를 암호화하는 것이 얼마나 안전합니까? 소금/IV, 작동 모드 없음, 수백만 개의 다른 16 바이트 블록이 암호화되었습니다. 나는 암호화에 대해 충분히 모르지만 이것은 나에게 냄새가납니다.

편집 : 좀 더 자세히 설명하려면 이것은 메시지를 암호화하는 것이 아니라 일반 텍스트 길이가 16 바이트 인 데이터베이스 테이블 열에 관한 것입니다. 데이터는 완전히 무작위가 아니며 (처음 8 바이트는 종종 동일합니다) 성공적인 암호 해독을 식별하는 체크섬이 있습니다.

나는 이번 주에 제안을 제안하는 사람들과 회의에 참석할 예정이며, 문제가 있다면, 디자인이 불안하다는 것을 보여줄 수있는 자료에 대한 몇 가지 포인터를 크게 높이 평가할 것입니다. 나는 시스템에 완전히 익숙하지 않지만 이것은 주변을 돌아 다니기 위해서는 큰 재 설계가 필요할 수 있으므로 많은 저항이있을 수 있다고 생각합니다. 관련된 대부분의 사람들 (및 권력)은 동기 부여가 작동 시스템을 얻는 것입니다 ...

도움이 되었습니까?

해결책

ECB는 일반적인 용도로 안전하지 않습니다. 주어진 일반 텍스트는 항상 동일한 암호 텍스트로 암호화되므로 패턴이 드러날 수 있습니다. 그러나 안전한 특별한 경우가 있으며이 응용 프로그램은 그 중 하나 일 수 있습니다.

인용 적용 암호화, 두 번째 판 Pg. 블록 암호의 ECB 모드와 관련하여 190 :

플러스 측면에는 동일한 키로 여러 메시지를 암호화 할 때 보안 위험이 없습니다. 실제로 각 블록은 동일한 키로 암호화 된 별도의 메시지로 볼 수 있습니다.

나중에 (p. 208), Schneier는 말합니다.

단순성과 속도가 주요 관심사 인 경우 ECB가 블록 암호를 사용하는 가장 쉽고 빠른 모드입니다. 또한 가장 약한 것입니다. 재생 공격에 취약한 것 외에도 ECB 모드의 알고리즘이 암호화하기 가장 쉽습니다. 메시지 암호화를 위해 ECB를 권장하지 않습니다.

다른 키와 같은 임의의 데이터를 암호화하는 경우 ECB는 사용하기에 좋은 모드입니다. 데이터는 짧고 무작위 이므로이 애플리케이션의 ECB 문제는 없습니다.

케이스의 일반적인 접두사 및 체크 숫자는 공통 암호 텍스트를 생성하지 않습니다. 이것은 단지 an 일 경우에만 발생합니다 전체 일반 텍스트 블록이 복제되었습니다. 설명한 바에 따르면 응용 프로그램은 ECB에 적합 할 수 있습니다. 특히 각 일반 텍스트 값이 전체적으로 고유 한 경우.

다른 팁

초기화 벡터 또는 IV라고도 알려진 소금이 없으면 사이퍼 텍스트의 보안 (및 키도 믿음)이 크게 줄어 듭니다. 잠재적 인 공격자는 암호화 된 텍스트에서 반복 패턴을 훨씬 쉽게 만들 수 있습니다. IIRC 이것은 MS Office 암호화 체계를 업그레이드 할 때 Microsoft와 동일한 기본 실수였습니다.

AES는 암호 텍스트 전용 공격에 대해 매우 강합니다. 그러나 동일한 키로 많은 일반 텍스트를 암호화하면 시스템이 알려진 플레인 텍스트 및 선택된 플레어 텍스트 공격에 더 취약 해집니다.

즉, 암호화 키가 무작위이고 일반 텍스트가 무작위로 보이면 여전히 안전 할 수 있습니다. 그러나 나는 분명히 다른 키를 사용하는 것을 고려할 것입니다.

다른 한편으로, 일반 텍스트가 서로 관련이 있거나/또는 무작위로 무작위로 보이지 않으면 ECB는 전혀 안전하지 않습니다.

짧은 메시지에 대한 AES의 약점을 알지 못합니다. 알고리즘은 충분히 행복해야합니다.

회의에 참석하려면 원합니다.

1) 위협 모델 (누가 "나쁜 사람이 될 때, 언제, 언제, 어떻게 될지 볼 수 있습니다.

2) 위협 모델의 일부 사용 사례.

이를 통해 AES를 실제로 소금 해야하는지 확인할 수 있어야하며 암호화는 AES를 다른 곳에서 도출 할 수 있다면 암호화가 실제로 값을 보호합니다. 마지막으로, "핵심이 데이터보다 진정으로 더 안전합니까?" 키가 데이터와 같은 크기 (size = "small")와 같은 체계를 보았으며 보호하는 데이터만큼 액세스 할 수있었습니다. 그렇습니다. 공격자가 지구상에서 무엇을했는지 알아내는 동안 몇 시간을 구입할 것입니다. 그러나 확실한 보안을 방해하지는 않습니다.

그것이 도움이되고 당신에게 씹을 무언가를 제공하기를 바랍니다. 특정 위치를 모르면 답을 맞추는 것은 어렵습니다. :)

암호화 용어에서는 공격자가 특정 알고리즘과 IV를 알고있는 경우에만 안전하지 않습니다.

특정 가정이 이루어집니다. 해독되면 공격자는 해독 시도가 성공적이라는 것을 알기 위해 데이터가 어떻게 보이는지 알 수 있습니까? 예를 들어 성공적인 암호 해독 시도를 확인할 수있는 MD5, CRC 또는 일부 형태의 체크섬이 있습니까? 그렇다면 공격자에게 시도를 검증 할 수있는 방법을 제공합니다.

그러나 해킹 측면에서 여전히 2^128 키 조합 (128 비트 암호의 경우)은 데이터의 테라 바이트에서 동일한 키를 사용하는 것만 큼 안전합니다. 16 바이트의 데이터는 하나의 블록이므로 CBC (Cipher Block-Chaining)가 적용되지 않기 때문에 작동 모드는 관련이 없습니다.

그러나 소금 IV가 적용되며 그 값은 키 자체만큼 비밀이어야합니다. 무지개 테이블을 사용하여 소금을 사용하지 않는 암호에 대한 무자비한 힘 공격을 가속화 할 수 있습니다. 이것은 당신의 약한 링크입니다.

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