たいへいのブログ

たいへいのブログ

見聞きしたニュースや読んだ本の感想を綴ります。Javaのエンジニアです。

暗号入門

サポーターズの暗号入門に参加したので、メモを残します。

 

◯概要

・開催日:2018626日(火)

・目的:暗号入門、暗号の基礎と種類、暗号が利用されている技術

 

◯目次

・暗号とは

・暗号の基礎と種類

HTTPS

 

◯暗号とは

・他人が読めない文章を作ること

・平文(普通の文)暗号

・暗号とは機密性を守るための技術

・機密性(共通鍵暗号、公開鍵暗号)、完全性(ハッシュ関数)、真正性(メッセージ認証コード)、否認防止(ディジタル署名)

 

◯暗号の基礎と種類

・暗号化

・復号化

・共通鍵暗号

平文暗号化暗号文復号化平文(暗号用と復号用に同じ鍵を用いる)

ファイルの暗号などによく使われる、処理が早い

鍵配送問題(共通鍵を安全に渡す方法が必要)、特定の相手にしか使えないという問題がある

暗号方式:ブロック暗号(DES、トリプルDESAES)、ストリーム暗号

・公開鍵暗号

平文暗号化暗号文復号化平文(暗号用と復号用に違う鍵を用いる)

暗号鍵は公開するが、復号鍵は秘密にする(復号鍵がないと復号できないから)

秘密鍵を持つもののみが、暗号文を復号でき、メッセージを得る

通信相手が正しいかを確認する

鍵配送問題の心配がない(事前共有、鍵交換など)

処理速度が遅い(処理に時間がかかる)

暗号方式:RSA、楕円曲線暗号

・完全性

ハッシュ関数通すと、ハッシュ値が作られる

長いデータを固定長に圧縮する役目を持つ

改ざん検知、メッセージ認証コード、ワンタイムパスワードに用いられる

ハッシュ値から元のメッセージを推測できない、ハッシュ値の長さは一定、同じハッシュ値になるメッセージを見つけるのは困難

暗号方式:SHA-256以上のものを使う

・真正性

メッセージ認証コード

元データ+共通鍵=認証コード→MAC値を作る、送信(元データとMAC値を)、元データ+共通鍵で認証コード作りMAC値を作り、一致するか

固定ビット長の出力をする

なりすましの確認、IPsec

・否認防止

ディジタル署名

①元データ(ハッシュ関数)②ハッシュ値+③秘密鍵暗号化④署名⑤公開鍵

①④⑤を送信

①からハッシュ値を出す、④⑤で復号化し、ハッシュ値を出す。ハッシュ値が一致するか

印鑑の捺印に相当する。電子文書に対して、個人や団体を特定する情報を付加する

署名用の鍵(署名する人だけが持てる)、検証用の鍵(検証する人だけが持てる)

否認防止、なりすましの確認、改ざん検知

 

公開鍵とディジタル署名の使い方は逆になっている

 

HTTPS(ウェブサイト入ったときの鍵マーク)

HTTPSSL/TLS(通信を暗号化し、内容の盗み見、改ざんを防ぐ)を組み合わせたもの(クレジットカード情報とか)

SSLが発展して、TLSになったので、だいたい一緒のものと考えて良い

SSL/TLSの暗号方式は公開鍵暗号と共通鍵暗号を組み合わせたハイブリッド方式

SSL/TLSを利用するには、サーバにSSLサーバ証明書(ウェブサイトの所有者の確認、通信データの暗号化、改ざんの検出)を導入する

重要な情報入力を伴うサイトはSSL/TLSに対応するべき

SSLサーバ証明書は印鑑証明書(第三者から証明してもらう)、ディジタル署名は印鑑(データが本人のものであることを証明)のイメージ

①接続要求②SSLサーバ証明書、公開鍵③クライアントがSSLサーバ証明書を検証④共通鍵をサーバの公開鍵で暗号化⑤暗号した共有鍵を送付⑥秘密鍵で共通鍵を復号化

→HTTPSによる通信(共通鍵で暗号化して通信する)

 

共通鍵暗号と公開鍵暗号の違いも分かっていなかったので、勉強になりました。が、ちょい内容難しかったです。

 

おわり