2009-02-25 3 views
10

16 바이트의 데이터를 AES로 단일 블록으로 암호화하는 것이 얼마나 안전합니까? 소금/IV가 없으며 조작 모드가 없습니다. 수백만 개의 서로 다른 16 바이트 블록이 암호화되어 있습니다. 나는 암호에 대해 충분하지 못하지만 이것은 나에게 냄새가 난다.소금없이 16 바이트의 AES 암호화

편집 : 조금 자세한 내용을 제공하는이 아닙니다 메시지를하지만 일반 텍스트의 길이가 16 바이트 될 일이 데이터베이스 테이블 컬럼을 암호화에 대해. 데이터가 완전히 랜덤하지는 않습니다 (처음 8 바이트는 자주 동일합니다). 성공적인 암호 해독을 식별하는 체크섬이 있습니다.

이번 주에 제안하는 사람들과 회의에 참석할 예정이며, 문제가있는 경우 설계가 안전하지 않다는 것을 보여줄 수있는 참고 자료에 대한 의견을 크게 듣게 될 것입니다. 나는이 시스템에 완전히 익숙하지 않지만, 많은 저항이 될 가능성이 있기 때문에이를 해결하기 위해 주요 재 설계가 필요하다고 생각한다. 관련된 사람들 (및 힘)의 대부분은 동기 부여가 작업 시스템을 얻는 것이고 비즈니스 측면에 있습니다. ...

+0

정확히 어떤 종류의 데이터를 암호화하고 있습니까? 의사 랜덤이라면, 괜찮을 것입니다 ... 블록 사이에 어떤 패턴의 유사점이 있다면, 내 사람들이 지적한 것처럼 나쁜 생각입니다. –

답변

9

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

는 어플라이드 암호화,초 판 PG를 인용. (190)는, 블록 암호에 대한 ECB 모드에 관하여 :

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

나중에 (. P 208), 슈나이어는 말한다 :

단순하고 속도가 메인 우려가있는 경우

는 ECB가 쉽고 블록 암호를 사용하는 가장 빠른 모드입니다. 그것은 도 약합니다. 이 재생 공격에 취약 할뿐만 아니라 ECB 모드의 알고리즘이 암호 해독에 가장 쉬운 입니다. 메시지 암호화에는 ECB 을 사용하지 않는 것이 좋습니다.

다른 키 (예 : )를 임의로 암호화하려면 ECB를 사용하는 것이 좋습니다. 데이터가 짧고 무작위이기 때문에 이 응용 프로그램의 경우 ECB 문제 의 단점이 없습니다.

일반적인 접두사와 검사 숫자는 일반적인 암호문을 생성하지 않습니다. 이는 전체 plaintext 블록이 복제 된 경우에만 발생합니다. 당신이 설명한 바에 따르면, 귀하의 응용 프로그램은 ECB —에 적합 할 수 있습니다. 특히 각 일반 텍스트 값이 고유 한 경우 특히 그렇습니다.

4

초기화 벡터 또는 IV라고도하는 소금이 없으면 cipher 텍스트의 보안 그리고 열쇠라고 생각합니다)가 크게 줄어 들었습니다. 잠재적 공격자는 암호화 된 텍스트에서 반복 패턴을 훨씬 쉽게 만들 수 있습니다. IIRC 이것은 MS Office 암호화 스키마를 업그레이드 할 때 Microsoft가 제기 한 것과 동일한 기본적인 실수였습니다.

+0

반복되는 패턴이 있다고 가정합니다. –

-4

암호화 용어에서 공격자가 특정 알고리즘과 IV를 알고있는 경우에만 보안이 유지됩니다.

특정 가정이 이루어진다 : 해독되면, 공격자는 데이터를 암호 해독 시도가 성공 알고 어떻게 생겼는지 알 수 있습니까? 예 : MD5, CRC 또는 성공적인 암호 해독 시도를 확인할 수있는 체크섬 형식이 있습니까? 그렇다면 공격자에게 시도의 유효성을 검사 할 수있는 방법을 제공합니다.

하지만 해킹의 관점에서

여전히 테라 바이트의 데이터에 대해 동일한 키를 사용하는만큼 안전 (128 비트 암호화를위한) 키 2^(128)의 조합이있다. 16 바이트 데이터는 단 하나의 블록이므로 조작 모드는 관련이 없으므로 CBC (Cipher-Block-Chaining)가 적용되지 않습니다.

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

+3

암호 해독에서 공격자는 알고리즘과 IV를 알고 있다고 가정합니다. –

+0

그가 열쇠를 알고 있다고 가정합니까? 해독 된 데이터의 유효성을 검사하는 방법은 무엇입니까? 당신은 위험을 견딜 수 있지만, 어떤 것들은 비밀로해야합니다. 나는 당신이 또한 당신의 기업이 사회 공학으로부터 안전하다고 가정합니다. – spoulson

+7

@spoulson : 공격자는 데이터 자체 (즉, 요점)와 그것을 암호화하는 데 사용 된 키를 제외하고 절대적으로 모든 것을 알고 있다고 가정합니다. 비공개가되는 다른 것에 의존하는 것은 실제 보안을 제공하지 않는 단지 난독 화입니다. –

3

AES는 암호문 전용 공격에 비해 상당히 강력합니다. 그러나 동일한 키를 사용하여 많은 일반 텍스트를 암호화하면 시스템이 알려진 일반 텍스트 및 선택한 일반 텍스트 공격에 더 취약 해집니다.

즉, 암호화 키가 무작위이고 평문이 임의로 보이는 경우 안전 할 수 있습니다. 하지만 분명히 다른 키를 사용하는 것을 고려할 것입니다.

반면에, 일반 텍스트가 서로 관련이 있거나 임의적으로 보이지 않는 경우 ECB는 전혀 안전하지 않습니다.

0

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

1) "나쁜 사람을 그들이 떠날 때 언제, 어떻게 무슨 일이 보거나 될 수 있습니다 위협 모델()

2 :.

당신이 원하는 않는 모임에 촬영하려면 위협 모델의 일부 유스 케이스

이렇게하면 AES를 정말로 소금물에 담글 필요가 있는지를 결정할 수 있으며, 암호화가 AES를 사용하는 다른 곳에서 파생 할 수있는 경우 열의 값을 실제로 보호합니다. 마지막으로, "키가 데이터보다 정말로 안전합니까?"라고 질문하십시오. 키가 t와 동일한 크기의 스키마를 보았습니다 그는 데이터 (크기 = "다소 작음")이며 보호하고있는 데이터만큼 액세스 할 수있었습니다. 예. 공격자가 당신이 한 일을 파악하는 동안 몇 시간 만에 구입할 것입니다. 그러나 단단한 보안의 방식으로는별로 도움이되지 않습니다.

희망을주고 도움을 줄 수있는 희망. 특정 직책을 알지 못하면 답을 맞추기가 어렵습니다. :)