「暗号技術入門」を読みました

2022-04-23

はじめに

前々から積んでいた暗号技術入門 第 3 版 | SB クリエイティブを少し前に読み終わったので,その感想と学んだ内容をかいつまんで書いてみようと思いました.

もともとセキュリティに関しては基本情報技術者試験レベルの内容を斜め読みして勉強した程度で,まだまだ分からないことが多い状態かつ,知っている内容でもその内容についてしっかりと理解できているか不安だったので,この本を読んで暗号技術についてより深く理解することが出来たと思います.

対称暗号(共通鍵暗号)

  • 対称暗号のアルゴリズムとは,暗号化によってスクランブルエッグのようにぐちゃぐちゃになってしまったビット列の暗号文を,きちんと元に戻すことができる特質をもつ混ぜ方のことをいう.
  • DES と呼ばれる対称暗号アルゴリズムは,64 ビットの平文をまとめて暗号化する.このまとまりをブロックといい,ブロック単位で処理を行う暗号アルゴリズムをブロック暗号という.
  • 対称暗号を使って通信を行うには,鍵を安全に受信者に送らなければならないという鍵配送問題が残り,この問題の解決ためには公開鍵暗号の技術が必要になる.

対称暗号アルゴリズムの仕組みについては大まかに理解したつもりではあったのですが,行列を用いた詳しい処理についてや,DES やトリプル DES,AES などのアルゴリズムの内容などについて,この章を読んで初めてちゃんと理解できたと思います.

ブロック暗号のモードに関しても色々な種類のモードが存在し,対称暗号アルゴリズムの選定と同じくらい重要な存在であることもなかなか面白い内容だなと感じました.

公開鍵暗号

  • 対称暗号が抱える鍵配送問題を解決するのが公開鍵暗号であり,「暗号化の鍵」と「復号化の鍵」を分け,送信者は「暗号化の鍵」を使ってメッセージを暗号化し,受信者は「復号化の鍵」を使って暗号文を富豪化する.
  • 公開鍵暗号では「暗号化の鍵」は公開鍵として一般に公開することができ,公開鍵は暗号化をしてもらいたい人(暗号文の送信者)に渡しておく必要がある.逆に「復号化の鍵」であるプライベート鍵は他の人に公開してはならない.
  • 公開鍵暗号によって暗号の鍵配送問題は解決したが,入手した鍵が本当に正しい公開鍵であるかどうかを判断する必要があり,これは公開鍵の認証の問題としてあげられる.また,公開鍵暗号は対称暗号に比べて処理速度が何百倍も遅いという問題もある.

公開鍵暗号について実際にどのような流れで処理や暗号文の送受信が行われているか理解でき,以前よりももっと公開鍵暗号について深く知れたと思います.

実際に使用されている RSA についてもどんな処理が行われているか,簡単な数学の問題で解説が記されており,とても分かりやすかったです.

ハイブリッド暗号システム

  • メッセージをいったん対称暗号で暗号化し,対称暗号の鍵を公開鍵暗号で暗号化することによって,メッセージの機密性と対称暗号の鍵の機密性を守ることができる.
  • ハイブリッド暗号システムには,疑似乱数生成器,対称暗号,公開鍵暗号という三つの暗号技術が使用されている.
  • ハイブリッド暗号システムは公開鍵暗号の遅さを対称暗号が解決し,対称暗号の鍵配送問題を公開鍵暗号が解決する.暗号ソフトウェアである PGP や WEB の暗号通信で使用される SSL/TLS でもハイブリッド暗号システムが使用されている.

一方向ハッシュ関数

  • 入力と出力がそれぞれ一つずつあり,入力はメッセージと呼ばれ,出力はハッシュ値と呼ばれる.一方向ハッシュ関数は,メッセージをもとにしてハッシュ値を計算する.
  • 任意長のメッセージから固定長のハッシュ値を計算する.ハッシュ値を高速に計算できる.メッセージが異なればハッシュ値も異なる.
  • 衝突耐性とは特定のハッシュ値を持つ別のメッセージを見つけるのは困難であるという性質である.一方向ハッシュ関数は,あるメッセージのハッシュ値が与えられたとき,そのハッシュ値をもつ別のメッセージを見つけ出すことが非常に困難でなければならない.この性質を弱衝突耐性という.
  • 弱衝突体制に対して,強衝突耐性というハッシュ値が一致するような,異なる 2 つのメッセージを見つけ出すことが非常に困難であるという性質がある.
  • 自分が入手したソフトウェアが改ざんされていないか確かめるために,一方向ハッシュ関数が使用される場合がある.ほかにも,パスワードを元にした暗号化,メッセージ認証コード,デジタル署名,疑似乱数生成器,ワンタイムパスワードなどで使用される.

一方向ハッシュ関数の具体例をあげられ,その歴史や仕組みを理解することが出来ました.

メッセージ認証コード

  • メッセージ認証コードとは,正真性を確認し,メッセージの認証を行う技術である.また,任意長のメッセージと,送信者と受信者が共有する鍵という 2 つの入力を元にして,固定ビット長の出力を計算する関数である.
  • メッセージ認証コードは IPSec と呼ばれるインターネットの根底をなす通信プロトコルの IP に,セキュリティの機能を加えたものや,SSL/TLS と呼ばれる,通信内容の認証と正真性のチェックに使用される.
  • メッセージ認証コードの実現方法としては,一方向ハッシュ関数を使う,ブロック暗号を使うなどの方法があげられる.

終わりに

これまで理解していたようでちゃんと理解できていなかった内容もしっかりと深く知識を身に着けることができ,良かったかなと思います.

セキュリティや暗号技術について,まだまだ分からないことが沢山あり,興味や関心のあることも増えてきたので他の書籍も読んでいきたいですね.

Share