いまさら聞けないセキュリティのキュ

**こんにちは(￣ー￣)ドヤァ**
今日はセキュリティの暗号化にフォーカスしたお話をしようと思います。

# 暗号化とはなにか
まずそもそも論として暗号化とは何か。平文を暗号アルゴリズムに通して第三者に対して難読化し秘密を守る事
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193036/e20fa2ff-aa4a-caee-1bc5-95f1bdfb595e.png)

**は！？**

### 現実世界にドリルダウンして考える
暗号化とは正確に質実剛健にいえば上記のとおりですが、意味わかりませんよね？
そんな時は我々の日常に置き換えて考えます。

例えば日記やツイッターなどに赤裸々に色んな事書いてたとします。恥ずかしくてとてもじゃないけど人には絶対見られたくない内容とかです。その秘密、守りたいですよね？
どうしたら守れるでしょうか～って事を考えると、日記だったら鍵のかかる場所に隠しておく。
ツイッターだったらアカウントに鍵かけておくとかすると思います。

そういった**鍵をかける行為が暗号化**に相当するものなんです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193036/5930ab25-bb5d-6a30-6719-b2501d8ac627.png)

# インターネットは暗号化されてない！？
はい。素のインターネットは暗号化されていません
[くわしくはこちら](https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88)

ちょー簡単に申しますと元々は大学間の連絡手段が目的だったので、インターネットの原型ができた時は善意のユーザしかいないと想定されていて、そもそも隠す必要がないと考えられていた事に起因しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193036/45296e47-19bb-bd01-11c4-06a54d7ff9b3.png)

でも、悪い人もいるし、そもそも軍事情報をインターネットに流すのなら善悪の意思に関係なく関係者以外は閲覧禁止にしたいものだったのです。
そこで考案されたのがモールス信号の暗号化と同じようにインターネット上に流れる情報を守ることができる暗号化技術たちです。

今一番オーソドックスなのは[AES](https://ja.wikipedia.org/wiki/Advanced_Encryption_Standard)で、２０年以上前に考案されていまだに定評があります。

# 暗号化の仕組み
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193036/3d7049d7-cec5-a3bb-8a06-c302fc759758.png)
大まかに分けて３つの仕組みがあり、それぞれで**暗号化強度**が異なります

- 文字変換（一番原始的）
- 共通鍵暗号
- 公開鍵暗号

ちなみに、**暗号化強度**というのは読み取りにくさのことで公開鍵暗号＞共通鍵暗号＞文字変換の順になり
何がこの違いと生むのかというと、**木を隠すなら森**という通りで隠すフィールドの広大さがそれぞれでけた違いなのです

### 文字変換
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193036/fe902ce9-5b86-522d-97a9-368b8379527d.png)
文字変換は一番原始的で広義には共通鍵暗号に内包されます。暗号化するときも復号化（元に戻すこと）するときも簡単です。
要は下記の様に各文字の変換表を用意して、平文中の該当する文字を変換していく代物で
同じ変換表を情報をシェアしたい人だけに伝えておくやり方です。

【変換表】
・ A → C
・ B → E
・ C → Z

【平文】->　【暗号文】　-> 【復号化】
　ABC　 -> 　　CEZ　　 -> 　　ABC

### 共通鍵暗号化
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193036/bf39b0cc-2f88-b9e4-f07e-f6283d67a2e4.png)
主に数学をつかったやり方で、暗号化する時も復号化する時も同じ鍵（数字）を使用するのが特徴です。

### 共通鍵暗号化


とっても簡単な例でいうと、コンピュータは文字を数字として認識しています
A＝１
B＝２
C＝３
という風に。
これに共通鍵＝９を掛け算をして暗号化、同じ鍵で割り算をするのが復号化という具合です。

この例では簡単すぎてする突破されてしまいますが、実際にはいろんな数学公式の複雑さをそのまま暗号化強度としていますので、共通鍵？古いから安全じゃない！と簡単に割り切れる物ではありません

[楕円曲線暗号](https://ja.wikipedia.org/wiki/%E6%A5%95%E5%86%86%E6%9B%B2%E7%B7%9A%E6%9A%97%E5%8F%B7)、[エルガマル暗号](https://ja.wikipedia.org/wiki/ElGamal%E6%9A%97%E5%8F%B7)、[DES](https://ja.wikipedia.org/wiki/Data_Encryption_Standard)、[AES](https://ja.wikipedia.org/wiki/Advanced_Encryption_Standard)等々歴史の長い暗号化方法です

### 公開鍵暗号化
出ました大正義！公開鍵暗号！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193036/6d8b98f7-2bc0-4862-5fa7-8b7f6197c471.png)

今ではメジャーなSSLなどと呼ばれる物にも使われている暗号化技術です。
ざっくりいうと、暗号化する時のカギと、復号化する時のカギが異なります。

私はRSAくらいしか知りませんが、それで仕組みを説明しようとすると**素因数分解**の組み合わせの莫大さを安全性と紐づけて考えられています。
詳しくは [RSA暗号](https://ja.wikipedia.org/wiki/RSA%E6%9A%97%E5%8F%B7)へ

## 認証と暗号化は違う
暗号化のイメージ湧いたでしょうか？
**否！！**こんなイメージ湧いていませんか？
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193036/d5343a2e-c945-9e13-3161-b6375ccca1ab.png)

この画像はいわゆる生体認証と呼ばれるものですが、これは実際に鍵をかける事であって暗号化とは別の概念です（ほぼ一緒にしてあるサービスがほとんどです。。。）

違いのポイントは鍵をかける場所にあります。
上記の画像、つまり認証は家に鍵をかけるようなもので、暗号化は家の中に保管された日記を読み辛く書いておくことです

一緒のようで違うので、試験対策としては細かく認識しておきましょうね～

## 暗号化ドライブって必要なんですか！？
最後に認証つながりで、一つ。　時たまパソコンの暗号化ドライブとか聞いたことありませんか？BitLockerとか暗号化チップ搭載パソコンとか
あれは必要でしょうか？　だってパソコンにはパスワードかけてるから誰にも操作できないじゃん！？って思いませんか？

その通りでパスワードを知らないと「操作」はできません。

でも、ドライブを別のパソコンに接続さえすれば非暗号化ドライブの情報はすべて吸い取れるんです！
丸見えです！！あんな閲覧履歴、パスワード、恥ずかしい写真ぜ～～～んぶ！

これは、**認証**で操作は塞いでるけど、**暗号化**で中身の情報を隠していないからなんです。
そんなリスクを負えない情報をもしパソコンに入れているのであれば、迷わず暗号化ドライブにしておきましょう！

## おわり
ちょっと長くなりましたが、セキュリティは奥が深くて暗号化だけに絞っても上記に書けたのは氷山の一角の１ｃｍ程度の内容です。
それでも少しかじっておくだけでパソコンに詳しい人が言っているSSLとか暗号化とかの意味が分かってきて、「それくらい知ってるし～((´∀｀))ｹﾗｹﾗ」的な態度でどんと構えることができます。

この記事をきっかけにセキュリティへの興味をもっていただける人がいてくだされば幸いでございます

こんなこともまとめて書いてほしいみたいなリクエストありましたら書くかもしれませんので、コメント欄までお願いします

以上！