데이터에 대한 DES, Triple DES, AES, 복어 암호화 비교


답변:


245

AES를 사용하십시오.

자세한 내용은 :

  • DES는 70 년대의 오래된 "데이터 암호화 표준"입니다. 키 크기는 적절한 보안을 위해 너무 짧습니다 (56 유효 비트, 10 년 이상 전에 시연 한 것처럼 무차별 강제 적용 가능 ). 또한 DES는 64 비트 블록을 사용하므로 동일한 키로 몇 기가 바이트의 데이터를 암호화 할 때 잠재적 인 문제가 발생합니다 (현재는 기가 바이트가 크지 않습니다).
  • 3DES는 3 개의 DES 인스턴스 (개별 키 포함)를 계단식으로 연결하여 DES 구현을 재사용하는 트릭입니다. 3DES는 적어도 "까지 안전하다고 믿어진다 2 (112) 의"보안 (꽤 많이되는, 아주 멀리 "오늘날의 기술을 깨뜨릴 수없는"의 영역에서). 그러나 특히 소프트웨어의 경우 속도가 느립니다 (DES는 효율적인 하드웨어 구현을 위해 설계되었지만 소프트웨어를 빨아 들이며 3DES는 3 배나 빨립니다).
  • Blowfish는 Bruce Schneier가 제안한 블록 암호이며 일부 소프트웨어에 배포됩니다. 복어는 DES 및 3DES와 마찬가지로 64 비트 인 블록 크기와 관련하여 큰 키를 사용할 수 있으며 안전하다고 생각됩니다. Blowfish는 최소한 일부 소프트웨어 플랫폼에서는 소프트웨어에서 효율적입니다 (키 종속 조회 테이블을 사용하므로 성능은 플랫폼이 메모리 및 캐시를 처리하는 방법에 따라 다릅니다).
  • AES는 미국 연방 조직을위한 표준 대칭 암호화 알고리즘으로서 (그리고 거의 모든 사람을위한 표준으로서) DES의 후속 제품입니다. AES는 128, 192 또는 256 비트의 키를 허용하고 (128 비트는 이미 깨지지 않음) 128 비트 블록을 사용하므로 (문제 없음) 소프트웨어와 하드웨어 모두에서 효율적입니다. 몇 년 동안 수백 명의 암호 화폐가 참여한 공개 경쟁을 통해 선정되었습니다. 기본적으로, 당신은 그보다 더 좋은 것을 가질 수 없습니다.

따라서 의심스러운 경우 AES를 사용하십시오.

블록 암호는 "블록"(AES를 사용하여 128 비트 데이터 청크)을 암호화하는 상자입니다. 128 비트보다 긴 "메시지"를 암호화 할 때는 메시지를 블록으로 분할해야하며 분할을 수행하는 실제 방법 을 작동 모드 또는 "체인"이라고합니다. 순진 모드 (단순 분할)를 ECB라고하며 문제가 있습니다. 블록 암호를 올바르게 사용하는 것은 쉽지 않으며 AES 또는 3DES 중에서 선택하는 것보다 더 중요합니다.


4
약간의 너트이기 때문에, 나는 항상 AES256을 추천 할 것입니다
hdost

2
신성하게도, NSA는 1976 년에 DES를 해독 할 수 있었지만 2002 년까지 계속 사용하도록 격려했다! 편집증이라고
Dr Deo

25

AES 및 Blowfish를 제외한 이러한 체계는 모두 알려진 취약점이 있으므로 사용해서는 안됩니다.
그러나 Blowfish는 Twofish 로 대체되었습니다 .


11

설명 된 암호화 방법은 대칭 키 블록 암호입니다.

DES (Data Encryption Standard)는 56 비트 키를 사용하여 64 비트 블록으로 데이터를 암호화하는 선행 작업입니다. 각 블록은 격리되어 암호화되며 이는 보안 취약점입니다.

Triple DES는 각 블록에 세 가지 DES 작업을 적용하여 DES의 키 길이를 확장합니다. 키 0을 사용한 암호화, 키 1을 사용한 해독 및 키 2를 사용한 암호화 이러한 키는 관련이있을 수 있습니다.

DES 및 3DES는 일반적으로 기존 상용 제품 및 서비스와 인터페이스 할 때 발생합니다.

AES는 후속 및 현대 표준으로 간주됩니다. http://en.wikipedia.org/wiki/Advanced_Encryption_Standard

복어는 사용하지 않는 것이 좋습니다.

자체 암호화를 구현하지 말고 데이터 대신 GPG 또는 전송중인 데이터에 SSL / TLS와 같은 고급 구현을 사용하는 것이 좋습니다. 다음은 암호화 취약점에 대한 훌륭하고 냉정한 비디오입니다. http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/


2
복어 사용을 권장하지 않는 이유는 무엇입니까? 가장 안전한가요?
yogsma

5
@yogsma : Blowfish의 블록 크기는 64 비트 (프로토콜에서 DES를 대체하는 대체 수단으로 사용 되었기 때문에)이므로 일부 GB의 데이터가 동일한 키로 암호화 된 후에 문제가 발생합니다.
Paŭlo Ebermann

@rohannes, BlowFish가 권장되지 않는 이유, 성능 측면에서 BlowFish가 AES보다 낫습니다. brighthub.com에서이 기사를보십시오.
Yogesh

9

AES는 대칭 암호화 알고리즘 인 반면 RSA는 비대칭 (또는 공개 키) 암호화 알고리즘입니다. 암호화 및 암호 해독은 AES에서 단일 키로 수행되는 반면 RSA에서는 별도의 키 (공개 및 개인 키)를 사용합니다. 128 비트 AES 키의 강도는 2600 비트 RSA 키와 거의 같습니다.


7
이 답변을 뒷받침하는 수학 또는 출처를 제공 할 수 있습니까? 128 비트 AES는 2600 비트 RSA와 거의 비슷하다는 결론에 도달하는 방법을 내가 알고 싶네 (나는이 오래된 대답을 깨닫게)
러셀 UHL

3
@RussellUhl-나는 그 숫자의 역사가 2 년의 추가 침묵 이후에도 흥미로운 질문이라는 데 동의합니다. :) 그 번호는이 PDF 용지에서 유도로 나타납니다 eprint.iacr.org/2013/635.pdf는 제목 Universal security - from bits and mips to pools, lakes – and beyond.
Jesse Chisholm

4

TripleDESCryptoServiceProvider는 안전하고 좋은 방법이지만 너무 느립니다. MSDN을 참조하려면 TripleDES 대신 AES를 사용하는 것이 좋습니다. 아래 링크를 확인하시기 바랍니다 : http://msdn.microsoft.com/en-us/library/system.security.cryptography.tripledescryptoserviceprovider.aspx 당신이 발언 섹션에서이 관심을 볼 수 있습니다 :

참고 최신 대칭 암호화 알고리즘 인 AES (Advanced Encryption Standard)를 사용할 수 있습니다. TripleDESCryptoServiceProvider 클래스 대신 AesCryptoServiceProvider 클래스를 사용하십시오. 기존 응용 프로그램 및 데이터와의 호환성을 위해서만 TripleDESCryptoServiceProvider를 사용하십시오.

행운을 빕니다


3
마이크로 소프트가 암호화를 위해 여전히 일부 제품에서 TripleDES를 적극적으로 사용하고 있다는 점에서 재미있다 ( en.wikipedia.org/wiki/Triple_DES#Usage )
Tom Heard

@Tom 당신에게 맞지만 많은 소프트웨어가 오래된 기술을 사용하고 새로운 방법에 적응하는 데 시간이 걸리는 것을 잊지 마십시오. 특히 Microsoft와 같은 거대한 회사의 경우 업데이트가 필요하다는 것에 동의하지만 회사가 몇 가지 제안하고 다른 일을 할 때 이것은 나쁩니다.
QMaster

1
Microsoft는 이전 버전과의 호환성으로 유명합니다. TripleDES의 사용은 "레거시 응용 프로그램 및 데이터와의 호환성을 위해서만"에 해당합니다.
Dan Bechard 2016 년


0

AES는 현재 널리 사용되는 표준 알고리즘입니다 (따라서 Advanced Encryption Standard 라는 이름 ).

나머지는 그렇지 않습니다.


3
따라서 이름은? "AES"라는 이름은 어떻게 사용해야합니까?
CodyBugstein

15
데이터 암호화 표준은 어떻습니까? 당신의 논리는 "이름에 <standard>이 있습니다-따라서 이것이 사용되어야하는 것입니다"는 상당히 결함이 있습니다.
Zlatin Zlatev 2016 년

0
                DES                               AES
Developed       1977                              2000
Key Length      56 bits                           128, 192, or 256 bits
Cipher Type     Symmetric                         Symmetric
Block Size      64 bits                           128 bits
Security        inadequate                        secure
Performance     Fast                              Slow

AES는 3DES보다 빠릅니다. 특히 AES-NI를 지원하는 CPU에서 더 빠릅니다. (일반 - (조차하지 않고 있지만, DES는 빠른 하드웨어 구현이 아닌 소프트웨어 구현을 위해 설계되었습니다) DES는 일부 벤치 마크에 약간 빠릅니다 만, 56bit 키는 현재의 모든 사용하기에 적합하게)
버그 서재 거트 반
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.