#暗号化について
これはユアマイスターアドベントカレンダー2018の6日目の記事です
https://qiita.com/advent-calendar/2018/yourmystar
##暗号化とは?
データの中身を第三者に見られたくない場合や、他者と通信する際に通信相手を保証する場合などに用いる技術です。暗号化したデータを見るために元(平文)に戻すことを復号化と言います。
##共通鍵暗号方式
共通鍵暗号方式とは暗号化と復号化に使う鍵に同一のものを使う方式のことです。処理が早いという特徴はありますが、同じ鍵で暗号化してしまうと他のユーザに見られる危険性が出てくるのでユーザごとに鍵を生成する危険性があります。
##公開鍵暗号方式
公開鍵暗号方式とは共通鍵暗号方式とは異なり、暗号化に使う鍵と復号化に使う鍵は別物です。各ユーザに送る鍵は同一の鍵(公開鍵)でよく、復号化する鍵を秘密鍵として保持しておく方式です。処理が遅いというデメリットはありますが、公開鍵の受け渡しは容易であるというメリットがあります。
##SSL通信
SSL通信とは共通鍵暗号方式と公開鍵暗号方式を用いた通信です。クライアントはサーバーに公開鍵暗号方式で暗号化した共通鍵のデータをサーバーに送信します。サーバーは秘密鍵を用いて共通鍵のデータを復号化します。その共通鍵を用いて暗号化通信を行うのがSSL通信です。
##ハッシュ化
厳密にいうと、暗号化とハッシュ化は違いますが今回はハッシュ化についても説明させていただきます。ハッシュ化とはデータを不可逆変換する方式です。暗号化と違い復号化はできないのが特徴です。ユーザのパスワードやクレジット情報を保持する時などに用いられます。データベースに平文のパスワードを保存すると情報が漏れたときに悪用される危険性がありますが、ハッシュ化したデータなら復号はできないので安全性は高まります。ユーザがパスワードを入力したさにハッシュ化した値とデータベースに保存してあるデータを照合するということに使われます。