update.あるAPIと暗号化した通信を行う際に、API側から指定された暗号化方式について「???」となったので、暗号化に関する用語と概念の自分用まとめ。暗号化と復号化で異なる鍵を利用このうちAES,RSAがよく使われる。ハイブリット方式というものもよく使われる(SSLとか)。共通鍵暗号では、処理時間が高速なのですが、第三者に鍵の情報が分かってしまうとデータが復号されてしまうという問題があります。公開鍵暗号では、安全に鍵の情報を保持できるのですが、処理時間が非常に遅いという問題があります。そこで、これら2つの方式の利点を兼ね備えたハイブリッド方式という手法があります。ハイブリッド方式では、共通鍵を安全に渡すために、鍵交換の際には公開鍵暗号を使用して、実際のデータの暗号化には共通鍵を使用します。これにより鍵は安全に配布でき、高速処理できます。http://www.infraexpert.com/study/security4.htmlブロック暗号化AESにせよRSAにせよ、通常、暗号化は鍵のサイズと同じバイト長を1ブロックとして暗号化する。1024ビットの鍵ならば128バイトを1ブロックとして暗号化する。パディングモード(パディング方式)分割する時にブロックで綺麗に割り切れない場合は、パディングで穴埋めする。Padding(OAEP)とか。OAEPはRSAと組み合わせることが多く、その場合はRSA-OAEPと呼ばれる。ブロックに分割しそのまま暗号化。そのため鍵と暗号対象データが同じであれば、同じ暗号データになる。最初のブロックについては初期ベクトル(IV)と暗号対象データをXOR計算した結果を暗号化する。次のブロックについては、前のブロックとそのブロックをXOR計算した結果を暗号化する。そのため、元のデータと鍵が同じでも一意の暗号データになりにくい。upLoginユーザーは見つかりませんでした。