2012-05-23 2 views
1

장면을 설정합니다.패딩없이 RSA 암호화 C#

512 비트 키를 사용하여 주어진 바이트 세트에 대해 RSA 암호화를 계산해야합니다. 이 작업은 RSACryptoServiceProvider 클래스를 사용하여 쉽게 수행 할 수 있지만 RSA 암호화를 계산하기 전에 암호화를 위해 사용자 정의 패딩을 미리 계산해야합니다.

이 사용자 정의 패딩은 RSACryptoServiceProvider의 Encrypt 메소드에 제공된 PKCS # 1 v1.5 또는 v2를 따르지 않습니다. 다른 패딩을 추가하지 않고 RSA 암호화를 계산하는 데 사용할 수있는 C# 클래스가 있습니까?

나는 현재의 대안으로 OpenSSL.Net 찾고 있어요,하지만 어떤 도움 appriciated 될 것이다/

더 나은 사람이있다. 감사합니다. .

+0

512 비트 RSA 키를 깨는 것은 아주 쉽다는 점에 유의하십시오. – CodesInChaos

+0

그냥 생각해보십시오. 그러나 사용자 정의 패딩 된 데이터의 크기가 블록 크기의 배수이면 어떻게 될까요? 공급자 패딩과 관련이 없습니까? –

+0

512 비트 블록을 Encrypt 메서드로 전달하려고 시도하고 "잘못된 길이"예외가 다시 발생합니다. –

답변

1

ModPow을 사용하면 BigInteger에 직접 구현할 수 있습니다. 하지만 상대적으로 느려질 것이고, 개인 키 작동을 위해서는 사이드 채널 공격에 타이밍을 맞추는 것이 좋습니다.

평범한 .net에서 사용하는 Mono.Security에는 패딩되지 않은 RSA를 지원하는 클래스가 포함되어 있습니다.