27
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

暗号化方式/アルゴリズム/パディング/ブロック化のまとめ

Last updated at Posted at 2017-05-03

あるAPIと暗号化した通信を行う際に、API側から指定された暗号化方式について「???」となったので、暗号化に関する用語と概念の自分用まとめ。

暗号化の種類

暗号化には共通鍵暗号、秘密鍵暗号の2種類がある。

暗号方式 主なアルゴリズム 特徴
共通鍵暗号 AES、RC4、DES、3DES 暗号化と復号化に同じ鍵を利用
秘密鍵暗号 RSA、ElGamal 暗号化と復号化で異なる鍵を利用

このうちAES,RSAがよく使われる。
またハイブリット方式というものもよく使われる(SSLとか)。

共通鍵暗号では、処理時間が高速なのですが、第三者に鍵の情報が分かってしまうとデータが復号されてしまうという問題があります。また、公開鍵暗号では、安全に鍵の情報を保持できるのですが、処理時間が非常に遅いという問題があります。そこで、これら2つの方式の利点を兼ね備えたハイブリッド方式という手法があります。ハイブリッド方式では、共通鍵を安全に渡すために、鍵交換の際には公開鍵暗号を使用して、実際のデータの暗号化には共通鍵を使用します。これにより鍵は安全に配布でき、高速処理できます。
http://www.infraexpert.com/study/security4.html

ブロック単位での暗号化

AESにせよRSAにせよ、通常、暗号化は鍵のサイズと同じバイト長を1ブロックとして暗号化する。1024ビットの鍵ならば128バイトを1ブロックとして暗号化する。
※「ブロック暗号」といった場合は共通鍵暗号の話っぽい

ブロック暗号(ブロックあんごう、英語: Block cipher)とは、共通鍵暗号の一種で、固定長のデータ(ブロックと呼ぶ)を単位として処理する暗号の総称である。 cf. https://ja.wikipedia.org/wiki/%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E6%9A%97%E5%8F%B7

パディングモード(パディング方式)

分割する時にブロックで綺麗に割り切れない場合は、パディングで穴埋めする。

パディングモード 特徴
PKCS#5 とか PKCS#7 AESと組み合わせることが多い
Optimal Asymmetric Encryption Padding(OAEP) RSAと組み合わせることが多く、その場合はRSA-OAEPと呼ばれる。

cf. http://pentan.info/doc/block_cipher.html#anc_padding

ブロック暗号 暗号化モード(暗号利用モード)

ブロック暗号の方式なので、共通鍵暗号(AESなど)の時に出てくる用語

暗号化モード 特徴
ECB ブロックに分割しそのまま暗号化。そのため鍵と暗号対象データが同じであれば、同じ暗号データになる。
CBC 最初のブロックについては初期ベクトル(IV)と暗号対象データをXOR計算した結果を暗号化する。次のブロックについては、前のブロックとそのブロックをXOR計算した結果を暗号化する。そのため、元のデータと鍵が同じでも一意の暗号データになりにくい。

cf. http://qiita.com/hibara/items/c9096376b1d7b5c8e2ae

その他の種類については https://ja.wikipedia.org/wiki/%E6%9A%97%E5%8F%B7%E5%88%A9%E7%94%A8%E3%83%A2%E3%83%BC%E3%83%89

暗号化の用語が分からなければ

下記がめちゃめちゃ良くまとまっててわかりやすい

27
37
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?