投稿 2022年8月13日
更新 2022年8月13日
専門用語の数:多
暗号化は非常に大事ですが、難しいです。
簡単であってはならないからとも言えます。
時代が進むごとに技術が進歩していくため、
それに合わせて暗号化も進歩していかなければ、簡単に突破されてしまいます。
これから語ることは、非推奨になっている時代も、そう遠くないはずです。
「共通鍵暗号方式」で暗号化するものです。
ちなみにAdvanced Encryption Standardの略です。
2022年時点でもアメリカで、標準として採用されている暗号化です。
「公開鍵暗号方式」で暗号化するものです。
ちなみにRivest Shamir Adlemanの略です。
※開発者の名前のイニシャルです
こちらも有名で幅広く使用されている暗号化です。
暗号化の仕組みは、素因数分解です。
数がとても大きい素因数分解を解くには、膨大な時間が必要
というのを理由とした暗号化ですね。
送信者が鍵を生成し、暗号化します。
その生成した鍵で受信者が復号します。
同じ鍵を使うことから、「共通鍵」と呼ばれてます。
ざっくりとした流れは以下のような感じです。
送信者 | 受信者 |
---|---|
共通鍵を生成 | - |
共通鍵でデータを暗号化 | - |
共通鍵と暗号文を送信 | - |
- | 共通鍵と暗号文を受信 |
- | 共通鍵で暗号文を復号 |
今度は逆に受信者が2種類の鍵を生成します。
「公開鍵」と「秘密鍵」です。
公開鍵を送信者に送ります。
そして暗号化に使用します。
秘密鍵は受信者だけが保持します。
この鍵は最後に復号する時に使用します。
鍵が2種類あるので、ややこしいですが、
ざっくりとした流れは以下のような感じです。
送信者 | 受信者 |
---|---|
- | 秘密鍵を生成 |
- | 公開鍵を生成 |
- | 公開鍵を送信 |
公開鍵を受信 | - |
公開鍵でデータを暗号化 | - |
暗号文を送信 | - |
- | 暗号文を受信 |
- | 秘密鍵で暗号文を復号 |
暗号化とはちょっと話がずれますが、紹介だけしておきます。
ソルトとは、ハッシュ化する前の平文に付与される文字列のことです。
パスワードを保存しておくときなどに有用です。
例えばパスワードを「test123」としたときに、
ソルトを「KsduGHs」としてハッシュ化します。
※MD5でハッシュ化
cc03e747a6afbbcbf8be7668acfebee5
2be92edda725197219924b28c2aed97e
be6e99838d910a8852ad3d396af31975
このように、ハッシュ化する前の文字列が異なる場合、
ハッシュ後はまったく異なる文字列になります。
レインボーテーブルなどの攻撃の対策になります。
さらにセキュリティ観点から言うと、ソルトは固定値でなく
ユーザごとに異なる文字列にするほうが好ましいです。
もちろん、ソルトが長ければ長いほど強くなります。
暗号化は切っても切り離せない存在です。
技術も常に進歩しているので、常に意識しておきましょう!
以上、ここまで見ていただきありがとうございます。
皆さまの快適な開発ライフに、ほんの少しでもお役に立てれば幸いです。
コメント一覧