RSA를 사용하여 C#에서 라이센스 키 메커니즘을 구현할 때 최소 384 비트의 키 크기로 제한되는 RSACryptoServiceProvider class이 나타났습니다. 이 키 길이는 제가 생성 한 서명 (== 라이센스 키)에 직접적인 영향을줍니다.RSA의 최소 키 길이
일반적으로 384 비트는 RSA의 기술 제한 사항입니까, 아니면 더 짧은 키 크기로 RSA를 성공적으로 구현할 수 있습니까?
RSA를 설명하는 (독일어) 위키 백과 문서를 읽으면 수학 계산 예에서 매우 작은 소수를 사용합니다. 작동하는 것처럼 보이므로 키 크기가 20 비트보다 짧을 것으로 예상됩니다 ... 참고 : 현재 보안에 대해서는 전혀 신경 쓰지 않습니다. 그것은 또 다른 토론입니다. 기술적 인 한계를 바로 잡고 싶습니다.
나는 Stackoverflow가 도구를 요구하는 데 사용되어서는 안된다는 것을 알고 있지만, 하한이있는 .NET RSA 라이브러리를 알고 있다면, 아마도 그 점을 보조 메모로 언급하고 싶을 것입니다.
RSA 뒤에있는 수학은 매우 간단합니다. 직접 구현할 수도 있습니다. 1024 비트 이하의 모든 것이 안전하지 않기 때문에 이러한 작은 키 크기를 지원하는 라이브러리가 있는지 확실하지 않으며 메시지 크기가 키 크기로 제한됩니다. – ntoskrnl
이러한 짧은 키에는 일반적인 패딩을 사용할 수 없습니다. 예를 들어, SHA1을 사용하는 OAEP는 328 비트를 단독으로 사용합니다. – CodesInChaos
서명을 더 짧게하려면 DSA 및 유사한 알고리즘을 고려하십시오. 320 비트 DSA 서명은 파손되면 고가이며 한 대의 PC에서 320 비트 RSA 키가 손상 될 수 있습니다. 더 작은 시그니처 (DSA의 절반 크기)의 경우 BLS 구성표를 사용할 수 있지만 구현하기가 약간 까다 롭습니다. – CodesInChaos