RSA 암호화가 제한된 페이로드 데이터 만 처리 할 수 있다는 것은 사실입니까? ... 이론과 혼동하는 메신저 ... 이론적으로 이것에 관한 메모는 없습니다 ...RSA 암호화 문제 [페이로드 데이터 크기]
답변
매우 안전하지 않은 기본 RSA 알고리즘 (패딩 없음)에서는 메시지 크기가 모듈러스.
RSA의 보안을 강화하려면 PKCS1에 정의 된 패딩 방식을 사용해야합니다. 선택한 구성표에 따라 메시지 크기가 모듈러스보다 훨씬 작을 수 있습니다. http://en.wikipedia.org/wiki/PKCS1
RSA는 모듈러스보다 다소 작은 단일 메시지를 암호화합니다. 구체적으로, 메시지는 먼저 "패딩"되어 0과 n-1 사이의 큰 정수로 해석되는 바이트 시퀀스가됩니다. 여기서 n은 모듈러스 (공개 키의 일부)입니다. 패딩 된 메시지는 모듈보다 길 수는 없으므로 원시 메시지의 최대 길이가 엄격합니다.
특히 가장 일반적인 패딩 방식 (PKCS#1 "구식", 별칭 "v1.5")을 사용하는 경우 패딩은 메시지에 적어도 11 바이트를 추가하며 패딩 된 메시지 길이는 모듈러스 길이, 예. 1024 비트 RSA 키의 경우 128 바이트 따라서 최대 메시지 길이는 117 바이트입니다. 결과 암호화 된 메시지 길이는 모듈러스와 크기가 같기 때문에 암호화는 반드시 메시지 크기를 적어도 11 바이트 씩 확장합니다.
- 의 임의의 대칭 키 K 선택 (원시 순서 :
(말하자면 전자 메일)를 암호화 큰 메시지를 RSA를 사용하는 일반적인 방법은 하이브리드 방식을 사용하는 것입니다 예를 들어, 128에서 256 랜덤 비트).
- 큰 메시지는 AES와 같은 적절하고 효율적인 대칭 암호화 체계를 사용하여 K으로 대칭 적으로 암호화됩니다.
- k은 RSA로 비대칭 적으로 암호화됩니다.
큰 메시지를 RSA로 암호화 할 수있는 많은 117 바이트 블록으로 "분할"하는 것은 여러 가지 이유로 정상적으로 수행되지 않습니다. 추가 약점을 추가하지 않고 바로 수행하기가 어렵습니다. 각 블록은 무시할 수없는 전체 메시지 크기 증가를 의미하는 11 바이트만큼 확장됩니다 (네트워크 대역폭은 희소 한 리소스가 될 수 있음). 대칭 암호화는 훨씬 빠릅니다.
- 1. RSA 암호화 된 데이터 블록 크기
- 2. RSA 암호화 문제
- 3. RSA 암호화 (RSACryptoServiceProvider)를 사용하여 암호화 된 데이터 크기
- 4. .NET RSA 암호화 : 최소 키 크기?
- 5. REST 페이로드 최대 크기?
- 6. .Net 간단한 RSA 암호화
- 7. iPhone에서의 RSA 암호화
- 8. RSA 키 암호화/암호 해독 문제
- 9. RSA 암호화 - 암호 해독
- 10. C# RSA 암호화 알고리즘
- 11. 간단한 RSA 암호화 (자바)
- 12. C++ 용 RSA 암호화 라이브러리
- 13. iPhone/Objective-c RSA 암호화
- 14. RSA 암호화 : Java to PHP
- 15. BlackBerry 용 BouncyCastle RSA 암호화
- 16. 포트 노킹 및 RSA 암호화
- 17. RSA 암호화 라이브러리 또는 클래스
- 18. 암호화 - 자바에서 RSA 알고리즘은 1.4
- 19. 자바 RSA 암호화 - 암호 해독
- 20. Java에서 RSA 비공개 키로 암호화
- 21. openssl.net rsa 암호화 작동 예제가 필요합니다
- 22. Asp.Net 웹 서비스 데이터 페이로드
- 23. .NET의 최소 메시지 크기 공개 키 암호화
- 24. 계수와 공개 지수를 사용하는 C# RSA 암호화
- 25. RSA 암호 해독 데이터 손상
- 26. 블라인드 RSA 서명은 .NET 암호화 API를 사용합니까?
- 27. RSA 암호화 된 Diffie-Hellman 핸드 셰이크
- 28. Java의 RSA 암호화 : 플랫폼 간 문제가 있습니까?
- 29. RSA 암호화 및 긴 메시지의 암호 해독
- 30. C# RSA 암호화/복호화 예외가 throw됩니다.
조금 더 확장하십시오. 요즘에는 OAEP (PKCS # 1 v2.1)를 사용하여 RSA 암호화 전에 메시지를 채워야합니다. 패딩은 내부적으로 해시 함수 (MGF)를 두 번 사용하고 다른 정보를 사용합니다. 'hlen'이 해시 함수의 출력 크기라고 가정하면, 오버 헤드는'2 * hlen + 2'입니다. SHA-1은 이에 가장 일반적으로 사용되는 해시 함수입니다. ** 1024 비트 RSA 키 **는 SHA-1의 경우 최대 ** 86 바이트 ** SHA-256의 경우 ** 62 바이트 ** 만 암호화 할 수 있음을 의미합니다. –
RSA 알고리즘은 모듈러스 결과에 의존하기 때문에 "RSA는 모듈러스보다 다소 작은 길이의 단일 메시지를 암호화합니다"라고 가정합니다. 따라서 규칙이 깨지면 두 개의 서로 다른 메시지가 비슷한 암호문을 생성 할 수 있습니다. 권리? – Yerken