2

C# 응용 프로그램과 마이크로 컨트롤러 (pic32mx795) 사이에서 암호화를 구현해야합니다. 내가 겪고있는 문제는 RSACryptoServiceProvider를 사용하여 공개 키와 개인 키 쌍을 생성하는 것이지만 전체 공개 키가 아니라 키 속성 만 얻을 수 있습니다.C#에서 공개 키와 개인 키 쌍 생성 및 일반 텍스트로 저장 공개 키

RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(); 
RSAParameters RSAKeyInfo = RSA.ExportParameters(false); 

마이크로 컨트롤러에 키 매개 변수를 제공 할 수 없습니다 (바이트로만). 이 작업을 수행 할 수있는 도서관이 있지만 2012 년 11 월 (SW300055)에만 제공 될 예정입니다. SW300052 라이브러리를 사용하여 마이크로 컨트롤러에서 암호화를 수행합니다 (키 크기는 256 비트로 제한됨).

나는이 스레드에서 bouncycastle 제안을 시도했다. (generating keys and showing them in a text box).PEM 형식의 키를 저장한다. 키가 base64 형식으로 저장되었다는 것을 알고 키 길이를 256 비트로 지정했다. 바이트로 다시 공개 키를 변환 할 때, 그것은 62 바이트입니다.

byte[] encodedDataAsBytes = Convert.FromBase64String (publicKeyString); 
나는 또한 마이크로 소프트의 강력한 이름 도구 (Sn.exe를) 검토 한

만 지원하는 최소 키 크기는 384 비트입니다.

공개 비밀 키 쌍을 생성하고 C#을 사용하여 일반 텍스트/바이트로 공개 키를 얻을 수있는 방법이 있습니까? 엘)? 대칭 키 암호화를 사용하여 세션 키를 암호화하는 것이 더 좋을까요?

답변