RSAでは、メッセージの長さは(keysize/8)バイトを超えてはなりません。なぜそのような制限がありますか? RSAアルゴリズムに入力する前に変換された入力(「abcde」など)は何ですか?また、入力文字列「abcde」のサイズを考慮する場所は何ですか?RSAのメッセージ長制限
-2
A
答えて
3
RSAアルゴリズム基本的にされています。一緒にあなたの公開鍵、およびd
を構成し、n
あなたの秘密鍵を作る
Plaintext = (Ciphertext d) mod n
e
とn
:
Ciphertext = (Plaintext e) mod n
および復号化するために。 e
は、通常、いくつかの一般的な値の1つです。 65537,n
は、大きな固有の2つの素数p
とq
の積であり、鍵の長さ(たとえば1024ビット)を定義します。暗号文を解読するために使用されるd
の値は、e
,p
およびq
を使用して計算されます。あなたが興味を持っているなら、ウィキペディアにはさらに詳しい情報があります:http://en.wikipedia.org/wiki/RSA_(algorithm)。あなたの平文は、基本的にはRSAアルゴリズムで使用されるときに大きな整数として扱われます。
モジュロ演算子に慣れていない場合は、左側が右側で分割されている場合は基本的に残りの部分です。例えば。 17 mod 5 = 2
は、正確に17を3回(3 * 5 = 15
)分け、残りは、17 - 15 = 2
のままです。
モジュロ演算子の定義の結果、a mod b
の結果は常にb
より小さい。これを考えると、解読された値がmod n
演算を実行した結果であるという事実は、解読されたときに得られる平文の値が常にnよりも小さいことを意味する。したがって、これが最初に暗号化した実際の平文であるためには、入力はn
より小さくなければなりません。
これを保証するために、メッセージはn
よりも少ないビット数( "数字")に制限されています。 n
のビット数はキーサイズであるため、keysize bits
またはkeysize/8 bytes
(バイトに8ビットがあるため)未満でなければなりません。
関連する問題
- 1. 制限長PdfPCellEvent
- 2. クライアントサイドwebsocketメッセージの長さを制限する
- 3. PHPファイルサイズ制限メッセージ
- 4. パブリッシャーのKAFKAメッセージの制限?
- 5. Bash PATHの長さ制限
- 6. 制限式の長さ
- 7. ログバックログのテキスト長制限
- 8. RSA暗号化とJavaでの長いメッセージの復号化
- 9. hrefのテキスト長制限を制限する方法
- 10. ASP.NetのコントロールのIDの長さ制限
- 11. PostgreSQLのプライマリキーの長さの制限
- 12. pythonのサブプロセスの長さの制限
- 13. GmailのHTMLの長さの制限
- 14. ODataのURLの長さの制限
- 15. テレグラムボットからのメッセージ送信の制限
- 16. xpバッチファイルの行の長さ制限?
- 17. Ajax文字列の長さの制限?
- 18. 電話番号の長さの制限
- 19. jquery tablesorterフィルタの長さの制限
- 20. ソース行の長さの制限
- 21. xargsコマンドの長さの制限
- 22. Symfonyの経路長の制限
- 23. ESP8266 - PubSubClient - メッセージ文字の制限
- 24. Log4net with SyslogAppender、1kbのメッセージ制限
- 25. SQLSERVERとdot.net間のメッセージに制限エラー
- 26. ファイルサイズの制限を設定メッセージ
- 27. Google ProtoBuffer:メッセージのサイズを制限する
- 28. SMS 120文字の長さ制限
- 29. Sharepoint OnlineのURL長制限REST
- 30. Javaの長さ無制限AudioInputStream
私はあなたが私の質問を得ていないと思います。私の質問は、パブリックキーで暗号化したい入力文字列 "abcde"がある場合、どのようにハットが行われるかということです。 "ancde"は何に変換されますか? – Ashwin
数字に変換されます。どのようにするかは、「ancde」が表すものによって異なります。入力文字列が数字に変換される方法(または入力が文字列であること)は、RSAアルゴリズムの一部ではなく、その方法の一部です(たとえば、大文字でも合っていますか?具体的に実施される。たとえば、 'a'を "01"、 "b"を "02"などで表現し、10進数で表現することができます。バイナリで8ビットのASCIIを使うことができます。 –
@David Schwartz:あなたが言っていることは、「abcde」が次のようなものに変換されるということです。「0102030405」とこれが公開鍵が暗号文になるでしょうか? – Ashwin