TwoFishで暗号化を使用する場合、最後のプレーンテキストブロックが128ビット未満の状況になることは避けられません。その場合、パディングはどのように処理されますか?例えば、最後のブロックが112ビット(14バイト)だけであるとします。あなたはちょうどランダムなビットでバイト15を記入し、どのくらいのパディングがブロックに含まれているかを知るために16番目のバイトを使用しますか?この場合、ブロックの16ビットがパディングであることを示すために、最後のバイトが00010000を含むことができる。TwoFishの平文ブロックの埋め込み
2
A
答えて
2
今日、一般的に使用されているいくつかの異なるpadding mechanismsがあります。どちらが選択されるかは、主にプロトコル設計者が1つを選択し、それがそのプロトコルの標準であると言います。 (私は他のものより1つを選ぶ魅力的な理由はわかりません)
私が知っている最も一般的なものは、サブバイト(ビットレベル)パディングを許可するために働いています。1
ビットの後にブロックを終了するために多くの0
ビットが必要です。
私が知っている次の最も一般的なものは、ゼロまたはランダムデータを埋め込み、ブロックの最後のバイトを使用してパディングに使用されたバイト数を示します。
パディングに使用するバイト数は必要ですが、バイト数として使用することもできます。あなたはなど、パッド4つのバイトに必要がある場合は、0x04 0x04 0x04 0x04
を1つのバイトを追加する必要がある場合0x01
とパッド
あなたを追いつくかもしれない一つの小さなトリックは、あなたがほとんど常にパディングブロックを追加する必要があるということである - 場合でも、ブロック全体がパディングされているので、可逆変換が可能です。メッセージがブロックサイズの倍数のときにパディングブロックを追加することを怠った場合は、正当なメッセージの内容をパディングとして取り除こうとする可能性があります。あなたは、他の何らかの仕組みによってパディングの欠如を知らせることもできますし、常にパディングを追加することもできます。 (これはしばしば簡単です)
関連する問題
- 1. GraphView水平軸ラベルの埋め込み
- 2. 埋め込みブートストラップレイアウトの埋め込み
- 3. C#での平面埋め込み(平面顔トラバーサル)アルゴリズム
- 4. pdf埋め込み/埋め込み
- 5. 埋め込みのGoogleドライブの注文
- 6. NSString埋め込み/文字間のスペース
- 7. マングース:Main.save上の埋め込み文書
- 8. 埋め込みC++ソフトウェアの文字セット
- 9. MongoDB - 埋め込み文書のクエリ
- 10. モンゴイド埋め込み文書のタイムスタンプ
- 11. マングース更新の埋め込み文書
- 12. mongodbへの配列の埋め込み埋め込み
- 13. 埋め込み
- 14. Qt Creatorの埋め込み方法埋め込みPSQL
- 15. Xamarinフォームの埋め込みまたはネイティブ埋め込み
- 16. 埋め込みドキュメントの更新埋め込み
- 17. モバイルSafari、iPhone(埋め込みコールバック)の埋め込みイベント
- 18. 埋め込みプレーヤーと埋め込み用画像のコンテンツ
- 19. 埋め込みツイートのDjango埋め込みURL
- 20. 別のサイトに埋め込みブロックを提供する
- 21. OAuth 2つの埋め込みブラウザはブロックされます
- 22. フレックスアイテムの埋め込みブロックでオーバーフローが発生する
- 23. 水平イメージと埋め込みビデオのギャップ
- 24. グラフ構造の直線的な平面埋め込み
- 25. Javaの平坦性テスト/プレーナ埋め込み実装
- 26. sp_send_dbmail本文に埋め込みmhtmlファイル
- 27. OrientDB埋め込みリスト(文字列):ワイルドカードクエリ
- 28. Mongodb upsert埋め込み文書
- 29. 埋め込みモノタッチデバッグ
- 30. 埋め込みリンク
非常に詳細な応答をいただきありがとうございます。私ができるなら、あなたに1つ以上の投票を与えるだろう。 – Pinsickle
完璧な答え。ありがとう。 – davidf2281