#「共通鍵暗号方式」とは
##概要
- 暗号化と復号に、同一/共通の鍵を用いる暗号方式
- 元々、暗号方式といえば共通鍵暗号方式を指していた( 公開鍵が出てくるまでは )
- 共通の鍵を用いるため、計算ロジックが簡単で、計算負荷は低い
- 鍵の受け渡しを工夫しないと、共通鍵が傍受され悪用される可能性がある( = 鍵配送問題。この問題の解決として公開鍵が誕生した )
##種類
###RC4
- Rivest Cipher 4 = リベスト氏が作った暗号( 何で4なのかは知らん )
- ストリーム暗号
- 2015年時点では既に解読法が開示されており、非推奨となっている。
- ちなみにリベスト氏は暗号研究の凄い人で、RSAやMD5の作者でもある。
###DES
- Data Encryption Standard = データ暗号化標準。
- ブロック暗号
- ブロック長は64ビット
- 鍵長は56ビット
- 鍵長が短いために安全ではないと言われ、線形解読法や総当り攻撃によって実用的な時間で解読可能
###トリプルDES
- DESを3回行う事によって、総当り攻撃への耐性を高くする
- 鍵長は168ビット。( but 中間一致攻撃により安全性は112ビット相当 )
- 安全性が実質112ビットまでとなる事や、計算負荷も3倍となる事から、現在はより安全で高速なAESに置き換わりつつある
###AES
- Advanced Encryption Standard = 高度な暗号化標準。
- 「高度な」と付いているだけあって、DESと比べると高速で安全性が高い。
- ブロック暗号
- ブロック長は128bit
- 鍵長は128ビット・192ビット・256ビットから選択可能。
- 鍵長が長ければ安全だが処理時間はかかる。按配が大事。128bitでも十分らしい。
ここで一息( -ω- )
#「公開鍵暗号方式」とは
##概要
- 暗号化と復号に別個の鍵を用いて、暗号化のための鍵を公開できるようにした暗号方式
- 公開鍵暗号方式でも記載の通り、共通鍵暗号方式の鍵配送問題を解決すべく開発された手法
##必須要件
-
正当性
- 正当な受信者は、正当な方法で、作成された暗号文を復号できる
-
秘匿性
- 正当な方法で作成された暗号文を復号できるのは、正当な受信者のみ
##アルゴリズム
「鍵生成アルゴリズム」「暗号化アルゴリズム」「復号アルゴリズム」の3つからなる
###「鍵生成アルゴリズム」
- セキュリティパラメータ×乱数をアルゴリズムに投げると、ユーザごとに異なる鍵ペア( 公開鍵:秘密鍵 )が取得できる
###「暗号化アルゴリズム」
- メッセージ×公開鍵をアルゴリズムに投げると、暗号文を取得できる
- 公開鍵は全ユーザが所持できるため、誰でも暗号化できる
###「復号アルゴリズム」
- 暗号文×秘密鍵をアルゴリズムに投げると、メッセージが取得できる
- 暗号文は 秘密鍵 でしか復号できないため、盗聴されても問題なし
##種類
###DH
- Diffie-Hellman key exchange = ディフィー氏/ヘルマン氏にとって開発された手法
- 認証手段を提供するものではないため、単独では中間者攻撃に対して脆弱
- 処理負荷がかかり、RSAと比べてサーバのスループットが6分の1程度まで落ち込む研究結果もある
###RSA
- Rivest Shamir Adleman = リベスト氏/シャミア氏/エーデルマン氏によって開発された手法
- 安全性の根拠は、桁数が大きい合成数の素因数分解問題が困難であること
- 暗号とデジタル署名を実現できる方式として最初に公開されたもの
###ECC
- Elliptic Curve Cryptography = 楕円曲線暗号の意
- 具体的な暗号方式の名前ではなく、楕円曲線を利用した暗号方式の総称
- 楕円曲線DSA
- 楕円曲線ディフィー・ヘルマン鍵共有 などがこれに含まれる
- 安全性の根拠は、EC-DLPを解く準指数関数時間アルゴリズムがまだ見つかっていない事
- RSAなどに比べ、同レベルの安全性をより短い鍵で実現でき、処理速度も速い!
- but
- P=NPが成立した場合、EC-DLPを多項式時間で解くアルゴリズムが存在する
- 送信者が暗号化時に適当な乱数を使うため、鍵が同じでも平文と暗号文の関係が1対1でない
最後に余談があるよ( -ω- )
#余談
##暗号化に用いられる理論について
まともに数学をやってこなかったツケなんですけど、全く理解できなかった。
けど、とりあえずまとめておく!!!
###離散対数
素数pと定数gが与えられたとき、y=g^x mod pをxから計算することは容易だが、
yからxを求めることは困難である
Wikipedia
###素因数分解
大きな素数 p, q が与えられたとき、その積 n = pq を計算することは容易である。
しかし逆に、2つの大きな素数の積であるような自然数 n が与えられたとき、n = pq と素因数分解することは難しい。
コトバンク
###楕円曲線暗号
楕円曲線上の離散対数問題 (EC-DLP) の困難性を安全性の根拠とする
Wikipedia
結局分からんかった((