目的

暗号化技術と鍵についての軽いメモ
専門的な事も含んでいるので、断定していない部分あります。恐縮です。

参照サイト

Common key cryptosystem / Public key cryptosystem
Android developers 暗号
ウィキペディア 暗号利用モード

暗号化の方式

データをインターネット上で送信する際に、
データ盗聴や改ざんなどが行われないように、暗号化されるのが一般的。

その暗号化の方式として、共通鍵暗号方式公開鍵暗号方式がある。

共通鍵暗号方式

  • 暗号化・復号(送信・受信)に同じ鍵を使う
  • アルゴリズムにはAESなどがある
  • 鍵が盗まれないようにする必要がある
  • 送信・受信接続毎に鍵を作る必要がある
  • 送信側のみで検証できるのでテストが楽
  • 送信側がスマホの場合、懸念点が多い。root取得とか脱獄で鍵を見れてしまう

公開鍵暗号方式

  • 暗号化(送信)には公開鍵(その名の通り公開される鍵)を使う
  • 復号(受信)には秘密鍵(受信者が持つ鍵)を使う
  • アルゴリズムにはRSAなどがある
  • 公開鍵は受信側で作成されたものが使われ、誰が使ってもよい
  • 送信側だけではテスト出来ないので、検証が辛い
  • スマホではこちらを使われる事が多い

暗号化モード

正直良くわからない
参照サイトのウィキペディアによると

暗号利用モード(あんごうりようモード、Block cipher modes of operation)とは、ブロック暗号を利用して、ブロック長よりも長いメッセージを暗号化するメカニズムのことである。
ECBモード(単純なブロック暗号の利用法)では、ある鍵で同一の平文を暗号化すると、同一の暗号文になる。

ECBやCBCなどがある。
AndroidのRSAでは、ECBとNONEしか無いなど注意点がある。

パディング

暗号化時に文字の不足分を補うことで、そのときに利用する方式。

NoPadding、PKCS1Padding、PKCS5Paddingなどがある。