2010-08-16 3 views
8

공용 키를 사용하여 100KB 파일을 암호화해야합니다. 필자는 공개 키를 사용하여 대용량 파일을 직접 암호화하는 것이 현실적이지 않으며 선호되는 방법은 공개 키를 사용하여이 대칭 키를 암호화 한 다음 대칭 키를 사용하여 파일을 암호화하는 것이 현실적이라고 주장하는 게시물을 읽었습니다. 순진한 해결책은 대용량 파일을 조각으로 나누고 동일한 공개 키를 사용하여 대용량 파일을 암호화하는 것입니다. 내 질문은 왜이 솔루션이 잘못 되었습니까? 난 당신이 바로, 당신은 자신의 개인 키 암호를 해독 할, 다른 사람의 공개 키를 사용하여 파일을 암호화하려면 이해한다면공개 키를 사용하여 대용량 파일 암호화

답변

2

?

대칭 암호화를 사용하고 공개 키 암호화 만 사용하면 (대칭) 키의 장점은 성능입니다. 대칭 암호화는 계산 상 훨씬 리소스 집약적입니다 (트레이드 오프 : 키를 비밀로 유지해야합니다. 두 번째, 비대칭 단계는 무엇을위한 것인가).

파일을 분할하면 관리 오버 헤드가 추가됩니다 (얼마나 많은 청크가 전송되었는지, 어떻게 전송했는지 확인할 수 있음). 보안을 추가하지 않습니다. 반대로.

+0

공유 키를 비밀로 유지하는 것은 모든 메시지에 대해 새로운 메시지를 무작위로 생성하고이를 수신자 공개 키로 전송 한 다음이를 버림으로써 해결됩니다. – Thilo

+1

대안은 두 가지를 결합하는 것입니다. 1 단계 : 임의의 랜덤 키 생성 (예 : 64 자 문자열 (512 비트)) 2 단계 : symetric이 1 단계의 키로 파일 암호화 3 단계 : 임의의 비대칭 암호화 (공개 키) 4 단계 : 3 단계의 결과를 암호화 된 파일 끝에 추가하십시오. 는 암호를 해독하려면 1 단계 : 파일을 형성 읽고 마지막 XXX 비트를 제거 2 단계 : 개인 키 3 단계로 1 단계에서 데이터를 해독 : 단계의 결과 키를 사용하여 파일을 해독 2 – Floyd

+0

그래, 나는 응답을 명확히했다 - 나는 중요한 비밀을 지키는 것에 관해 일반적으로 말하고 있었다. 그리고 그것은 공개 키 단계가있는 것이다. – chryss

3

당신이 언급 한 하이브리드 접근법 (무작위 대칭 키 생성, 데이터 암호화, 비대칭 키 암호화)은 성능면에서 엄청난 이점이 있습니다.

큰 파일을 여러 조각으로 나누고 동일한 공개 키를 사용하여 각 파일을 암호화 할 수 있지만 그다지 잘못은 아니지만 속도가 훨씬 느립니다.

+3

파일을 나누는 것은 좋지 않습니다. http://en.wikipedia.org/wiki/Watermarking_attack – TBH

+0

@TBH : 예, 생각해 보니 반복되는 블록 등을 쉽게 발견 할 수 있습니다. 다른 한편,이 문제는 임의의 패딩을 던져서 극복 할 수 있습니다. 나는 여전히 주요 차이점은 성과라고 주장한다. – Thilo

+0

성능 측면에서 볼 때 AES (또는 독사) 암호화 키를 교환하고 이러한 데이터를 대칭 키로 암호화하는 것이 가장 좋습니다. – TBH

1

파일을 더 작은 조각으로 분할 한 다음 일부 비대칭 암호로 암호화하는 것은 암호화 프로세스의 런타임 비용과 아무 관련이 없습니다. 가장 좋은 방법은 상대적으로 강력한 키를 사용하여 좋은 대칭 암호로 데이터를 암호화하고 비대칭 암호 (공개 키 사용)를 사용하여 대칭 암호화에서 사용한 비밀 키를 암호화하는 것입니다.

+1

성능에 문제가 없다면 왜 하이브리드 암호화가 가장 좋은 방법입니까? – Thilo

+0

파일을 분할하고 비대칭 암호화를 다시 사용하면 성능이 향상되지 않습니다. 하이브리드 방식에서는 비대칭 암호와 달리 대칭 암호가 비교적 시간 효율적이므로 대용량 암호로 대용량 데이터를 암호화 할 수 있습니다. 비밀 키가 256 비트/32 바이트라고하면 비대칭 암호로 32 바이트의 데이터 만 암호화하면됩니다. 이 방법은 비대칭 암호로 전체 파일을 암호화하는 것보다 낫습니다. –

0

비대칭 암호화가 너무 느립니다. 가장 많이 사용되는 방법은 비대칭 인 임의 대칭 키를 암호화하고 해당 대칭 키를 사용하여 데이터를 암호화하는 것입니다. 그리고 가장 좋은 방법은 잘 알려진 프로토콜/표준 (예를 들어 OpenPGP)을 사용하는 것입니다.

+0

GnuPG에 문의 하시겠습니까? – TBH

+0

그리고 GnuPG 역시 - GnuPG는 OpenPGP 표준의 구현 중 하나입니다. 또한보다 유연하고 사용하기 쉬운 상업적 구현이 있습니다. –

0

대칭 키 암호화의 속도 향상과는 별도로 다음과 같은 또 다른 이점이 있습니다. 처음에는 임의로 안전하게 생성 된 대칭 키로 메시지를 암호화함으로써 각 수신자 자신의 고유 한 키에 대해 한 번씩 여러 수신자의 대칭 키를 암호화 할 수 있습니다 전체 메시지를 다시 암호화 할 필요없이 공개 비대칭 키.

관련 문제