it-swarm-korea.com

대칭, 비대칭, 해시, 메시지 인증 코드 암호를위한 현실적이고 가장 안전한 암호화 란 무엇입니까?

2011 년에이 두 가지 문제를 업데이트하고 싶습니다.

  1. 휴대 전화와 같은 저전력 장치에 가장 적합한 암호화는 여전히 유효합니까?

  2. .NET 개발자에게 가장 안전한 암호화는 무엇입니까?

'08 년 11 월 Rasmus Faber 답변 this 이 응답과 유사한 스택 오버플로 질문 :

즉, 대부분의 응용 프로그램에 과도하게 사용되며 AES-128, 2048 비트 키가있는 RSA, SHA-256 및 HMAC와 SHA-256을 사용하여 잘 수행해야합니다.

이러한 권장 사항이 오늘날에도 여전히 유효합니까?

24
goodguys_activate

당신이 인용 한 추천은 일종의 과잉입니다. 한 가지 고려해야 할 사항은 특정 수준 (예 : 키 크기 또는 해시 함수 출력 크기)을 넘어 모든 기능이 "예측 가능한 기술로는 깨지지 않습니다"는 점과 비교하기에는 다소 섬세하다는 것입니다. SHA-512가 SHA-256보다 "보다 강력하다"는 말은 SHA-256이 깨질 수 있다는 것을 상상하고 있다는 것입니다. 현재와 향후 40 년 동안 알 수있는 한, 40 년 이상이 아닙니다 , 우리가 가질 수있는 기술을 상상하는 것은 위험합니다 .40 년 전, 오늘날의 인터넷을 아무도 상상하지 못했지만, 대부분의 사람들은 2010 년까지 우리 모두가 날아 다니는 자동차를 운전한다고 가정했습니다.

AES-128은 이미 충분히 안전하고 저렴합니다 (AES-256은 14 라운드를 사용하고 AES-128은 10 라운드를 사용합니다).

현재 가장 큰 고장난 RSA 키는 768 비트 모듈러스이며 약간의 노력 (4 년, 실제로는 큰 두뇌)이 필요했습니다. 큰 키가 권장되지만 1024 비트 키는 단기 보안에 사용할 수있는 것으로 간주됩니다. 2048 비트 키가 적합합니다. 키를 두 배 더 크게 사용하면 서명 또는 암호 해독에 8 배 더 많은 작업이 필요하므로이를 과도하게 사용하고 싶지 않습니다. RSA 키 길이가 보안과 관련되는 방법에 대한 조사는 이 사이트 를 참조하십시오.

256 비트 곡선에 대한 ECDSA는 이미 "깨지지 않는"보안 수준을 달성했습니다 (예 : 128 비트 키를 사용하는 AES와 거의 동일한 수준 또는 충돌에 대한 SHA-256). 프라임 필드에는 타원 곡선이 있고 이진 필드에는 곡선이 있습니다. 가장 효율적인 종류는 관련 하드웨어에 따라 다릅니다 (유사한 크기의 커브의 경우 PC는 프라임 필드의 커브를 선호하지만 전용 하드웨어는 이진 필드로 쉽게 빌드 할 수 있습니다) CLMUL 최신 Intel 및 AMD 프로세서에 대한 지침이 변경 될 수 있습니다.).

SHA-512는 64 비트 작업을 사용합니다. PC에서는 빠르지 만 스마트 카드에서는 빠르지 않습니다. SHA-256은 소형 하드웨어 (가정용 라우터 또는 스마트 폰과 같은 32 비트 아키텍처 포함)에서 더 나은 거래입니다.

현재 저렴한 RFID 시스템은 위의 어떤 것도 사용하기에는 너무 저전력입니다 (즉, 저렴하지 않은 RFID 시스템). RFID 시스템은 여전히 ​​의심스러운 보안의 맞춤형 알고리즘을 사용합니다. 반면에 핸드폰은 AES 또는 RSA (예, 스마트 폰이 아닌 저렴한 스마트 폰)로 적절한 암호화를 수행하기에 충분한 CPU 성능을 갖추고 있습니다.

38
Thomas Pornin

인용 된 대답은 .NET의 가장 안전한 암호에 대한 나의 대답입니다.

권장 사항 (고출력 및 저전력 장치 모두) :

  • 대칭 암호 : AES-128

  • 비대칭 암호 : 2048 비트 키가있는 RSA 또는 256 비트 키가있는 ECDSA/ECDH

  • 해시 : SHA-256

  • 메시지 인증 코드 : SHA-256을 사용하는 HMAC

  • 스트림 암호 : CTR 모드의 AES-128

11
Rasmus Faber

보안 측면에서 이러한 권장 사항은 여전히 ​​유효하며 내가하는 것과 동일합니다.

비대칭 암호의 경우 실제로 암호화, 키 교환 및 서명의 세 가지가 있습니다. RSA는 암호화 및 서명 체계 일 수 있지만 ECDSA는 특히 서명입니다. 그러나 타원 곡선 버전의 암호화 및 키 교환도 있습니다 (공개 도메인에 무엇이 있는지 확실하지 않음). 즉, 매개 변수 크기는 세 가지 모두에 대해 동일합니다.

다른주의 사항은 SHA-256/512가 곧 교체 될 예정이지만이 경우 "곧"은 2012 년입니다.

저전력에 관해서는 실제로 저전력에 달려 있습니다. 핸드폰으로 스마트 폰을 의미한다면, 이것들이 모두 적절합니다. 스마트 카드, RFID, 센서 네트워크 등은 다른 이야기입니다. 또한 대부분의 저전력 알고리즘은 표준 라이브러리에 없습니다. 그러나 나는 "과도하지 않은"마지막 문장에서 매개 변수 크기를 향해 당신을 이끌 것입니다.

6
PulpSpy

2030 년까지 보안을 유지하기 위해 NIST의 정통한 사람들은 최소 SHA-224, RSA 또는 DSA의 경우 2048 비트, 224 비트 EDCSA 및 AES-128 또는 3 키의 트리플 DES를 권장합니다.

미국 정부는 2010 년 말 현재 SHA-1, 1024 비트 RSA 또는 DSA, 160 비트 ECDSA (타원 곡선), 80/112 비트 2TDEA (두 가지 주요 트리플 DES) 알고리즘을 폐기합니다. )

자세한 내용은이 게시물과이 게시물에서 참조하는 NIST 문서를 참조하십시오. http://securitymusings.com/article/1587/algorithm-and-key-length-deprecation

6
nealmcb

2009 년 콜린 퍼시발 (Colin Percival)의 Cryptographic Right Answers 는 여전히 최신 IMHO이며 질문 등을 다루고 있습니다.

5
Bruno Rohée

대칭 암호의 경우 AES-256의 주요 일정이 약하기 때문에 AES-256 대신 AES-128을 사용하는 것이 좋습니다. http://www.schneier.com/blog/archives/2009/ 07/another_new_aes.html

2
Justin Clarke

우리가 한 일은 여러 암호화 및 해싱 방법을 선택하고 모든 출력을 공통 16 진수 형식으로 변환하는 것입니다. 가장 민감한 데이터는 SHA-256 및 DES-3을 사용하는 반면 쉽게 추측 할 수있는 덜 민감한 데이터는 MD5 및 RC4를 사용하고 있으며 일부는 직선 XOR 변환)을 사용하고 있습니다. 각 대칭 암호에는 고유 한 암호가 있으며 모든 암호화 된 데이터에는 체크섬이 사용되므로 모든 암호화에 하나의 암호화를 사용하는 것은 위험합니다.

0
Dave