#はじめに
暗号技術についての情報をザックリ解説しています
だいたいのイメージがつく位でしか書いていませんので,あてにしないでください
(細かいことはググってください)
#暗号方式
##共通鍵暗号方式
通信相手がお互いに同じ秘密鍵を持って暗号化と復号をする方式
##公開暗号方式
受信側は公開鍵と秘密鍵を用意する
送信側は公開鍵で暗号化して,受信者は秘密鍵で復号する
公開鍵から秘密鍵を見つけることは難しいことを利用した暗号方式
#実際の暗号
##DES暗号
Data Encryption Standardの略でアメリカの暗号企画だった
共通鍵暗号方式で
鍵や平文データの値をシフトしたり転地したりしたりして暗号化/復号化する処理
細かいアルゴリズムは以下のサイトがわかりやすく書いてました
DES暗号 | 信州大学 情報セキュリティ
今では計算機が早くなったので
暗号回数を増やしたTriple-DESや,改良したAES(AはAdvanced)にとって変わられている
##RSA暗号
発明者の3人の頭文字をとってこう呼ばれる
公開鍵暗号方式でオイラーの小定理より,平文m,暗号化鍵e,秘密鍵d,素数p,qに対して
n = pq \\
d = e^{-1} (mod~(p-1)(q-1))\\
m = c^d (mod n) = (m^e (mod n))^d (mod n)
となることを利用する
以下のサイトに簡単な実例があります
ためしてみよう | サルにも分かるRSA暗号
##楕円曲線暗号
Ωが横を向いたみたいな形になる上下対称な式
y^2 = x^3 + ax + b
という式で適当な2点を取って直線を引くと一つ交点が出て
その点の上下を入れ替えるということを足し算として
ずっと足し算を行うとループすること(群である)を利用した暗号
一般にRSA暗号とかに比べて堅い暗号方式なので同じ強度のもと鍵の長さが短くて済む
#近年の傾向
クラウド化が進むにつれて準同型暗号に注目が集まっています
##準同型暗号
通信先でも暗号化された状態で計算などの処理ができます
つまり通信相手に何をしているのかわからせずに通信します
以下のようなことができるようになります
###秘匿通信
通信相手は暗号化された状態でデータを通信できます
###秘匿計算
通信相手は暗号化された状態で計算をします
一般に足し算と掛け算ができればほとんどの計算が可能になります(できるかは暗号方式による)
###秘匿検索
通信相手は暗号された状態で暗号化されたデータの検索をします
##ノイズ
暗号化先がランダムになります,このことは平文を暗号化して一致してバレるのを防ぐことを意味します
ただし秘匿計算を行っていくとノイズが拡大していき,ある回数を超えると復元結果に影響が出ます
ですが,計算限界はわかっているのでそこまで計算して,もう一度計算機の中で暗号化してと繰り返せばよい
##暗号の例
###RSA暗号
実は掛け算に限定できるが準同型性を持つ暗号方式である
元はといえばRSA暗号が準同型暗号の発想のきっかけになっている
証明はそれほど難しくなく
a^e (mod~n) * b^e (mod~n) = a^e * b^e (mod~n) = (a*b)^e (mod~n)
より自明
###Hartleyの完全準同型暗号
足し算と掛け算両方できる