AES?RSA?暗号化の用語を紹介!

投稿 2022年8月13日

更新 2022年8月13日

専門用語の数:

AES?RSA?暗号化の用語を紹介!

~ 目次 ~

暗号化について

「鍵」の違い

暗号化におけるソルトとは?

まとめ

暗号化について

暗号化は非常に大事ですが、難しいです。

簡単であってはならないからとも言えます。


時代が進むごとに技術が進歩していくため、

それに合わせて暗号化も進歩していかなければ、簡単に突破されてしまいます。


これから語ることは、非推奨になっている時代も、そう遠くないはずです。

AES暗号とは?

「共通鍵暗号方式」で暗号化するものです。


ちなみにAdvanced Encryption Standardの略です。


2022年時点でもアメリカで、標準として採用されている暗号化です。

RSA暗号とは?

「公開鍵暗号方式」で暗号化するものです。


ちなみにRivest Shamir Adlemanの略です。

※開発者の名前のイニシャルです


こちらも有名で幅広く使用されている暗号化です。


暗号化の仕組みは、素因数分解です。

数がとても大きい素因数分解を解くには、膨大な時間が必要

というのを理由とした暗号化ですね。

「鍵」の違い

共通鍵暗号方式

送信者が鍵を生成し、暗号化します。

その生成した鍵で受信者が復号します。


同じ鍵を使うことから、「共通鍵」と呼ばれてます。


ざっくりとした流れは以下のような感じです。

送信者 受信者
共通鍵を生成 -
共通鍵でデータを暗号化 -
共通鍵と暗号文を送信 -
- 共通鍵と暗号文を受信
- 共通鍵で暗号文を復号

公開鍵暗号方式

今度は逆に受信者が2種類の鍵を生成します。

「公開鍵」と「秘密鍵」です。

公開鍵

公開鍵を送信者に送ります。

そして暗号化に使用します。

秘密鍵

秘密鍵は受信者だけが保持します。

この鍵は最後に復号する時に使用します。


鍵が2種類あるので、ややこしいですが、

ざっくりとした流れは以下のような感じです。

送信者 受信者
- 秘密鍵を生成
- 公開鍵を生成
- 公開鍵を送信
公開鍵を受信 -
公開鍵でデータを暗号化 -
暗号文を送信 -
- 暗号文を受信
- 秘密鍵で暗号文を復号

暗号化におけるソルトとは?

暗号化とはちょっと話がずれますが、紹介だけしておきます。


ソルトとは、ハッシュ化する前の平文に付与される文字列のことです。

パスワードを保存しておくときなどに有用です。


例えばパスワードを「test123」としたときに、

ソルトを「KsduGHs」としてハッシュ化します。

※MD5でハッシュ化

test123

cc03e747a6afbbcbf8be7668acfebee5

test123KsduGHs

2be92edda725197219924b28c2aed97e

KsduGHstest123

be6e99838d910a8852ad3d396af31975

このように、ハッシュ化する前の文字列が異なる場合、

ハッシュ後はまったく異なる文字列になります。


レインボーテーブルなどの攻撃の対策になります。


さらにセキュリティ観点から言うと、ソルトは固定値でなく

ユーザごとに異なる文字列にするほうが好ましいです。


もちろん、ソルトが長ければ長いほど強くなります。

まとめ

暗号化は切っても切り離せない存在です。

技術も常に進歩しているので、常に意識しておきましょう!


以上、ここまで見ていただきありがとうございます。

皆さまの快適な開発ライフに、ほんの少しでもお役に立てれば幸いです。

コメント一覧

コメントがまだありません

コメントを投稿してみる

コメント(必須※500文字以内)

お名前(必須※30文字以内)

※日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)