コラム

デジタル記録の信頼性

e-文書法 / 電子記録管理 / タイムスタンプ / 電子署名 / PKI / トラストサービス / 電子帳簿保存法

今回は、どのようにデジタル情報の「Integrity」を確保するか、について解説したいと思います。

 

証明したい事象(5W1H情報の組合せ)は記録の中身であり、その記録管理の信頼性が担保されて保証されることになります。 記録管理の観点でのリクスとしては、

  • 破壊:有効か、欠損、不整合はないか、改ざんされていないか

……完全性が確保できないですね。

  • 否認:情報の伝達経路で改ざんされる可能性がないか

……単に非改ざんだけではなく、なりすまし、ねつ造に対しての疑惑も取り除かなくてはなりません。

の2点が存在します。

 

これらは「何が(過去の)いつ記録されたのか」を確実にして、その時点以降でなんらかの障害があった場合には異常が検証できる仕組みによって回避できます。

 

なぜならば、”いつ” という要素は、地球上で生活するうえで戻ることのできない誰もが唯一共有できるコトの尺度だからです。 “いつ” という要素をきちんと特定することができれば、誰もが納得します。

「時計の針は戻らない」ということは全世界共通の認識なのです。

 

アナログ時代では、物体に事象を貼り付けることで情報を可視過去完了形化し、“いつ”という情報は物体の劣化から判断する程度の “ほど好い加減” で記録することでリスク回避をしてきました。

それでは、痕跡を残さずに変更のできてしまうデジタルでは、どのように“いつ”を保証できるのでしょうか?

一方向関数、公開鍵暗号 そしてPKI

デジタルで“いつ”を担保する、を理解するため、数々の発明についてまず書きます。

デジタルは、「0」「1」の組み合わせなのでその塊は数学的にいろいろと処理が可能です。

世の中には偉い人がいまして、「0」と「1」の羅列を、縮小して唯一性を持たせることを発明したのです。

検索や高速比較処理をすることを目的に、元データから生成してコンパクトなビット長データに収める関数です。 これは元情報の指紋のようなもので、どんなに大きな情報であっても、コンパクトな数列になり、生成数列は元情報から生成されたものであることを数学的に証明できるのです。これを、ハッシュ関数といいます。

「時計の針は戻らない」と同様に、一方向関数の関数です。

ちなみに、一方向関数のことを、卵は割るのは簡単だがもとには戻せないというたとえから、マザーグース童話に出てきた卵キャラクター“ハンプティ・ダンプティ”関数と呼ばれています。

このハッシュ関数は一方向関数で、生成されるハッシュ値からは元の情報は全く分かりません。

例としてある文字列をハッシュ関数のsha-256で変換したものを表3-1に記します。たった1文字変えただけでも、その生成値ハッシュ値は、全く異なるものになりますね。

元のデジタル情報からハッシュ値を生成し保管してあれば、そのハッシュ値と原本のデジタル情報から生成されるハッシュ値を比較することで、【1】の完全性を確認することが可能なのです。

ハッシュ関数のsha-256で変換 ハッシュ関数のsha-256で変換

さらに世の中にはすごいことを考える人がいて、秘密裡に情報を交換するのに、鍵配信という難題を克服した発明があります。 デジタル社会における大発明である、公開鍵暗号方式です。

 

暗号化して情報を交換するには、どうしても伝えたい相手に暗号を解く鍵をどのように配信するか? の問題につきあたります。

 

鍵自体が秘密だから秘密文書を送るためには秘密の鍵を送らなくてはならない……つまりあらかじめ秘密文書をやりとりするために、秘密の鍵をやりとりしなくてはならない。鍵がばれたら、あらためて新しい鍵を配信しなくてはいけないという、ぐるぐるジレンマに陥ってしまうのです。どこか別のルートで相手に渡すか、なんらかのルールを決めてやりとりするかしかできないものであり、直接相手に会わない限り安全な鍵配送は解決不可能だと言われていたのです。

 

そこで考案された画期的な発明が、オープンになっても問題無い鍵と秘密に持つ鍵の非対称鍵対です。 その数学的根拠や詳細な歴史についてここで書き記すことはとても難しいので、ご興味のある方は専門書でご確認ください。

 

ここでは、鍵対の使い方による秘密通信方式の方法を簡単に説明します。

 

同時に二つの鍵対(秘密鍵Aと公開鍵A’)を生成し、この対の鍵で暗号化・復号をします。Aで暗号化した情報はA’でないと復号できない、またその逆に、A’で暗号化した情報はAでないと復号ができない仕組みです。どちらか一方を秘匿しておけば、もう一方の鍵がどんなに流通(公開)しても、秘密に情報のやりとりができるという画期的な仕掛けです。公開鍵A’を相手方に伝えるのに、面倒な鍵配信問題は発生しないのです。

 

ここで、さらに通信の単純化と元情報の確からしさを秘密裡に保管するために考えられたのが、元情報のハッシュ値を秘密鍵で暗号化し、コンパクトなデータにするというデジタル署名という方法です。 ここで生成された暗号化情報を署名値と呼びます。

秘密鍵を持っている人だけが、この署名値を生成できることが数学的に担保できるのです! 素晴らしい!

ハッシュ関数と公開鍵暗号方式で、通信で正当性を確保することを考案したのです。

 

さらにさらに、人類は素晴らしいことを考えます。

「秘密鍵を持っている人は、本当に当人なの??」

ここで、”信頼“ という新しい要素が加わります。 TTPというこの考え方、巷で話題のTPPではありませんよ……。Trusted Third Party 略してTTPです。信頼のおける第三者機関による鍵対の認証です。

 

ここでも公開鍵暗号方式の利点が発揮されています。だれに渡してもかまわない公開鍵A’を信頼のおける第三者に渡して、その対にある秘密鍵Aの持ち主Taroさんの存在を、第三者の秘密鍵Bでデジタル署名してもらうのです。そしてその公開鍵A’と署名値と第三者の公開鍵B’を、公開鍵証明書として秘密鍵Aの持ち主Taroさんに提供するのです。Taroさんは、元データと署名値と公開鍵証明書を、Taroさんからの情報であることを知って欲しいHanakoさんに送付します。Hanakoさんは、元データのハッシュ値Hを演算し、公開鍵証明書から公開鍵B‘で復号された公開鍵A’を引き出し、署名値から公開鍵A’で復号されたハッシュ値H’とを比較することで元データの完全性と、Taroさんからの情報であることを確認するのです。

 

この仕組みを、PKI:Public Key Infrastructure(公開鍵暗号基盤)と呼んでいます。

図3-1で追ってみてください。

PKI:Public Key Infrastructure(公開鍵暗号基盤)と PKI:Public Key Infrastructure(公開鍵暗号基盤)と

これで、【2】の否認問題は解決ですね。

関連サービス

«
»

お問い合わせ

製品・サービスへのお問い合わせ、見積もりはこちら

mailお問い合わせ