情報を守るための半導体の役割を説明する。暗号の計算を行う回路、秘密の鍵を守る専用の領域、乱数の発生、外から鍵を盗もうとする攻撃への備え、機器の正しさを確かめる起動の手順を扱う。
鍵を守る専用の領域と、起動の確認(模式図)
- セキュリティのチップ鍵は外に出さない
- 起動の確認正しいソフトウェアだけを起動する
図:左は、セキュリティのためのチップ。鍵は専用の領域に置かれ、暗号の計算はチップの中で行う。鍵は外に出ない。右は、起動の確認。書き換えられない部分から、段階的に次を確かめる。目盛りのない模式図、本サイトで作成なぜ、半導体で守るのか
通信や決済、機器の認証など、情報を守る場面では、暗号が使われる。暗号は、秘密の鍵を使って、情報を読めない形に変える。鍵が漏れれば、暗号の意味がなくなる。
ソフトウェアだけで鍵を守ろうとすると、ソフトウェアの弱点を突かれて、鍵が盗まれるおそれがある。そこで、鍵の保管や暗号の計算を、専用の半導体の回路で行う方法がある。このページでは、その考え方を見ていく。
暗号の計算を行う回路
暗号の計算は、決まった手順を、何度も繰り返す。汎用のプロセッサーでも行えるが、専用の回路で行うほうが、速く、電力も少ない。通信を暗号化する機器や、記憶装置の中身を暗号化する機器では、暗号の計算を行う専用の回路が組み込まれていることが多い。
乱数を作る
暗号では、予測できない数(乱数)が必要になる。鍵を作るときなどである。乱数が予測できると、鍵も推測できてしまう。
コンピューターの計算は、決まった手順で動くので、本当に予測できない数を作るのは難しい。そこで、半導体の回路の中に、物理的な雑音(電気の揺らぎなど)を利用して、予測しにくい数を作る回路を入れることがある。
鍵を守る専用の領域
秘密の鍵は、チップの中の、専用の領域に保管される。この領域は、外から読み出せないようにする。鍵を使った計算は、チップの中で完結し、鍵そのものは、外に出さない。
このような、鍵の保管と暗号の計算を、一つの小さなチップにまとめた部品もある。決済のカードや、機器の認証などで使われる。
外から調べる攻撃への備え
攻撃する側は、鍵を直接読めなくても、別の手がかりから鍵を推測しようとする。たとえば、暗号の計算をしているときの、消費する電力や、出る電波の変化を、細かく測るやり方がある。また、チップを物理的に開いて、中を調べるやり方もある。
そのため、チップには、守りの工夫が組み込まれる。計算の電力の変化を目立たなくする、チップの表面に仕掛けをして、開けられると鍵を消す、などである。
機器の正しさを確かめる
機器を起動するとき、書き換えられていない正しいソフトウェアかを、確かめる手順がある。チップの中の、書き換えられない部分から確認を始めて、段階的に、次のソフトウェアが正しいかを確かめていく。この手順で、不正に書き換えられた機器の起動を防ぐ。
作る段階での注意
鍵を機器に書き込む作業は、チップの製造やテストの工程で行われることがある。この段階での情報の取り扱いも、守りの一部であり、管理された環境で行われる。
このページのまとめ
情報を守る半導体は、暗号の計算、乱数の発生、鍵の保管を、専用の回路と領域で行う。外から鍵を推測する攻撃に備える工夫があり、機器の起動を確かめる手順も支える。鍵を扱う製造の段階も、管理される。
理解度チェック
本文の内容から答えられる問いです。答えを選ぶと、正しいかどうかと解説が出ます。
問1
鍵の保管を専用の半導体の領域で行う利点として、適切なものはどれか。
答えと解説を見る
答え:1. 鍵を外に出さず、チップの中で計算を完結できる
鍵を外に出さず、チップの中で暗号の計算を完結させれば、鍵が盗まれにくい。
問2
暗号で乱数が予測できないことが大事な理由はどれか。
答えと解説を見る
答え:1. 乱数が予測できると、鍵も推測できてしまうから
鍵を作るときに乱数を使う。予測できると、鍵も推測されてしまう。