2011-10-06 3 views
0

나는 적절한 crytographic 구현을하는 것을 배우고 있으며, 나는 암호화 된 텍스트 편집기를 만드는 연습으로 생각했다.암호 기반 암호화에서 salt를 다루는 방법

첫 번째 시도는 사용자 제공 암호의 SHA-512 해시를 키로 사용하여 정상적으로 작동했습니다. 내가 파일의 헤더에 IV를 저장하고 있었지만, 보호받지 못했고 그 것이 걱정되었다.

그럼 내가 SecretKeyFactory (나는 자바를 사용하고있다)를 PBE로 사용해야하고, 이제는 소금을 추가로 제공해야한다는 것을 stackoverflow에서 읽었다. 그래서 지금은 헤더에 소금을 저장하고 있지만, 소금을 가지고있는 모든 목적을 망칠 것 같습니다. 어떻게 작동할까요? Alice가 파일을 저장할 때 암호를 선택하게되면 "여기, 암호와 함께이 난수를 기억하십시오."라고 말해야합니다. 결과 파일을 Bob에게 전자 메일로 보낼 수 있으므로 소금을 로컬에 저장할 수 없습니다.

내 응용 프로그램으로 서 IV와 소금 열려 있습니다. 내 사용자가 암호로 안전하게 할 수있는 동안 자신의 파일을 Bob에게 보낼 때 암호 만 알고 싶지만 어떻게 수행되는지에 대한 예는 찾을 수 없습니다.

도움 주셔서 감사합니다.

답변

0

IV를 데이터와 함께 저장하는 것이 안전합니다. 즉 IV가 사용되는 방식입니다. 귀하의 방법은 괜찮아요, 블록 암호를 선택, 암호화 블록 체인 및 IV를 사용하고, 당신은 떨어져있어.

0

암호를 사용하여 키와 iv를 만드는 방법에는 여러 가지가 있지만, 일반적인 암호 중 하나는 SHA-1이 포함 된 HMAC이고 일부 비트는 소금과 기타 사항을 고려하여 충분히 비트를 만드는 알고리즘입니다 - 혼합 키 및 iv.

기술 표준은 PKCS # 5 v2.0 PBKDF2 알고리즘입니다. OpenSSL이이를 수행 할 수있는 방법으로 C 인터페이스를 구현하지만, 알고있는 한 명령 행 방법은 없습니다.

관련 문제