2

制御されていないサーバーからiso10126パディングを使用してAES256暗号化データのチャンクを復号化できる必要があります。CCCryptは、オプションとして「kCCOptionECBMode」と「kCCOptionPKCS7Padding」のみをサポートしているようです。そのため、CommonCryptoライブラリは私が望むものを使用できないようです。最善の解決策は何ですか?

また、iso7816とiso10126のパディングを使用できるようにしたいのですが、これらは優先度が低くなっています。これらのパディングオプションは「おそらく安全ではない」と見なされていましたが、データソースを制御できないため、これらの設定で復号化できるようにしたいと思います。

これらのAES暗号化データは、CryptoJS javascriptライブラリによって暗号化されていると確信しています(上記のすべてのパディングオプションがあります)。UIWebViewを介してこのライブラリを使用し、Objective-Cで結果を取得できることは承知していますが、javascriptライブラリが提供できる速度よりも高速なものが必要です。

ありがとう!

4

1 に答える 1

3

パディングは、(他の多くの暗号化アルゴリズムとは異なり)実際に自分でプログラムできるものの1つです。パディングなしで復号化し、パディングを解除してプレーンテキストを取得します。暗号化する場合は、明らかに最初にパッドを入れてから暗号化します。ほとんどすべてのライブラリは「NoPadding」のようなものをサポートしています。ウィキペディアのページを見ると、すべてのパディングモードがどのように機能するかを簡単に見つけることができます。

指定されたモードでは、常にパッド/アンパッドを行うように注意してください。したがって、パディングバイトの完全なブロックを追加する必要がある場合があります。

ISO7816のパディングは実際には存在しないことに注意してください。これはISO/IEC 9797-1 Padding Method 2であり、任意のビット数ではなくバイトで使用されます。セキュアメッセージング(有益)のためにISO / IEC 7816-4で使用されている(定義されていない)という事実は、それをその標準の一部にしません。

パディングなしのその他の質問/回答: iOS暗号化AES128 / CBC / nopaddingなぜ機能しないのですか? このリンクは、iOSAPIを使用してパディングなしの暗号化/復号化を実行する方法を示しています。

于 2012-12-27T20:05:18.507 に答える