2010-07-18 6 views
3

내 PHP 스크립트와 C# 응용 프로그램은 해시 문자열을 32 자 길이로 전달할 것입니다. 가장 적합한 모드는 무엇입니까? 나는 ECB를 생각했으나 1 블록 이상을 사용하지 않는다고 말하면서 확신 할 수 없다. 블록이 얼마나 큰지 어떻게 알 수 있습니까?어떤 암호화 모드 ECB, CBC, CFB

때때로이 파일을 암호화하는 가장 좋은 모드가 될 대형 텍스트 파일을 전달합니다 ... CBC?

+1

해시 함수를 선택하는 것은 해시 코드를 교환하여 원하는 것을 바꿉니다. 제발 좀 더 자세히 설명해주세요. –

+0

해시는 숫자입니다. ID가 데이터베이스에 저장되어 해시 된 이유입니다. 모든 ID의 길이가 DB가되도록 해시했습니다. – arbme

+0

'모든 ID의 길이가 같아 지도록 해쉬했습니다. '이것이 해시에서 유일한 목적 인 경우 (의심 스럽습니다) 해시의 암호화 특성을 신경 쓰지 않을 것입니다. 자신에게 물어보십시오. 해시가 아니라 숫자 ID를 앞에 오는 0으로 채우면 내 목적을 충족시킬 수 있습니까? 또한 큰 텍스트 파일의 암호화에 대해 언급 할 때 해싱에 대한 두 번째 목적이있는 것으로 보입니다. (BTW, 큰 텍스트 파일의 경우 CBC는 물론 EBC보다 슬램 덩크입니다.) – mjv

답변

1

ECB

모든 좋은 유용한 환영 읽고 ...

덕분에 간단한 모드와 정말 (이것은 다른 모드로 매우 안전하지의)하지 않는 것이 좋습니다.

개인적으로 CBC를 사용하고 싶습니다.

2

ECB의 한 가지 문제점 (다른 많은 문제들 중에서도)은 결정 론적으로 암호화한다는 것입니다. 그것은 동일한 ID를 암호화 할 때마다 동일한 암호문을 얻습니다. 따라서이 모드는 트래픽 분석을 방해하지 않습니다. 공격자는 암호화 된 ID를 알 수 없습니다. 그러나 그는 동일한 ID가 언제, 얼마나 자주 전송되는지를 결정할 수 있습니다.

CBC와 OFB를 올바르게 사용하면 각 암호화마다 새로운 임의의 IV를 사용하여 매번 동일한 ID를 다르게 암호화합니다. 또한 모든 ID의 길이가 같아야하므로 공격자가 반복 ID를 반복되지 않는 ID와 구별 할 수없는 암호문이 결과에 나타납니다.

1

Accipitridae의 답변에 추가됩니다. 암호 해독 절차에 IV를 제공해야합니다. 이는 CBC 또는 OFB의 경우에도 오버 헤드가 될 것입니다.

관련 문제