2011-01-31 3 views
1

.NET에서 128 비트 RSA 키를로드하여 암호 해독에 사용할 수 있습니다. 하지만 128 비트 (또는 그 이하) 키를 생성 할 수없는 것 같습니다. 항상 잘못된 플래그가 지정되었습니다. 내가 512 비트를 키 사이즈로 사용해도 모든 것이 잘 동작합니다. 그래서 512bits는 .NET의 최소 keysize입니까?.NET RSA 암호화 : 최소 키 크기?

+1

사용중인 API에 대해 좀 더 구체적으로 설명해 주실 수 있습니까? –

+0

왜 관심이 있으십니까? 512 비트 이하의 RSA 키가 완전히 손상되었습니다. – CodesInChaos

+0

@CodeInChaos 필자는 긴 keysizes를 사용하면 서명이 길어지고 (저장 용량이 늘어남) 확인 속도가 느려지고 (CPU가 많아짐) 결과를 얻는 것이 필요했습니다. 수백만 개의 서명을 통해 특정 사용 사례에 대해 384 비트 이외의 다른 옵션이 없음을 확인했습니다. 그리고 512 대가 대학 수퍼 컴퓨터에 의해 깨 졌다고해서 일반 소비자가 하루 안에 깨뜨릴 수 있다는 것을 의미하지는 않습니다. – Muis

답변

3

AsymmetricAlgorithmSymmetricAlgorithm은 키 크기가 알고리즘에 유효한지 확인하는 데 도움이되는 LegalKeySizes 속성을가집니다.

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); 
for (int i = 0; i < rsa.LegalKeySizes.Length; i++) 
{ 
    KeySizes key_size = rsa.LegalKeySizes[i]; 
    Console.WriteLine(String.Format("[Key Size {0}] - min: {1}, max: {2}, step: {2}", 
     i, key_size.MinSize, key_size.MaxSize, key_size.SkipSize)); 
} 

RSACryptoServiceProvider,이 인쇄됩니다 :

[키 크기 0] - 분 : 링크에서 당신은 당신이 사용하는 알고리즘에 대한 유효한 키 크기를 인쇄 할 수 있습니다 384, 최대 : 16384, 단계 : 16384

5

512 비트는 (기술적으로) RSA 키의 최소 크기이지만 안전하지 않습니다. 요즘에는 1024 비트가 절대 최소값이며 2048 비트가 권장됩니다.

RSA의 1024 비트는 보안 수준에서 128 비트의 대칭 알고리즘에 해당합니다. 128 비트는 비대칭 암호화와 symmstric 암호화에서 동일하다고 생각하지만, 그렇지 않습니다.

+0

+1 권장되는 키 크기를 알려줍니다. 128 비트 RSA 키를 사용하는 것은 현명하지 않습니다 ... – Hemant

+0

'openssl genrsa'는 * 30 비트 *로 내려갈 때까지 불평하지 않습니다. – l0b0

+0

@ l0b0 그건 openssl의 문제입니다. –