電子署名のしくみと機能 ~本人証明と非改ざん証明~ | 電子契約

日鉄ソリューションズ株式会社
斎木康二
(2021年9月28日更新)
電子署名の2つの機能
紙の文書と比較して電子文書には、
- 印影や筆跡が残らないために誰が作成したか証明しにくい
- 改ざんしても証拠が残りにくい
という弱点があります。
電子契約を行う場合、電子文書に電子署名を付与することで、この弱点を克服しています。
なぜなら、電子署名には
- 電子文書が署名者本人により作成されたこと(本人証明)
- 署名時点から電子文書が改ざんされていないこと(非改ざん証明)
を証明するという2つの機能があるからです。
では、どのようなしくみで、電子署名は本人証明と非改ざん証明をおこなっているのか、今回はそのしくみを確認していきましょう。
電子署名を理解するための3つの概念
電子署名は、「暗号技術」を中核とする複雑なしくみですが、まず、「公開鍵暗号」、「公開鍵基盤(PKI)」「ハッシュ関数」という3つの概念をしっかり理解してください。
この3つの概念を利用して、電子署名が本人証明、非改ざん証明という2つの機能をもつのか、今回はそのしくみと機能を確認していきましょう。
公開鍵暗号
まず「公開鍵暗号」についてお話します。これは「共通鍵暗号」に対置される暗号方式です。共通鍵暗号が1つの鍵(=共通鍵)により、暗号化、復号をおこなう(図1)のに対し、公開鍵暗号では、「秘密鍵A」と「公開鍵B」のABペア鍵を作成し、一方で暗号化を行い、もう一方で復号(暗号化前の文にもどすこと)を行い(図2)ます。
この場合、(以下、話をわかりやすくするためRSA署名を例にして簡略化して話しますが)「ある文書(平文)を、秘密鍵Aで暗号化した場合、そのペアの公開鍵Bでしか暗号文を平文にもどすことはできない」のです。逆にいうと、「ある暗号文を「公開鍵B」で復号できたということは、その暗号文が「秘密鍵A」で暗号化されたこと」を意味しています。
さらに、この秘密鍵Aがある人(甲)の持ち物で、甲以外は知りえないものという前提をおけば、「ある暗号文が「公開鍵B」で復号できた」→「その暗号文は「秘密鍵A」で暗号化された」→「その暗号文は甲本人により暗号化された(図3)」ということができるわけです。
ここまでで、公開鍵暗号が先ほどのべた電子署名の「本人証明」の機能と関係しそうなことは感じられると思います。次に説明する「公開鍵基盤(PKI)」の概念を組み合わせることにより、正確に理解できるようになります。
公開鍵基盤(PKI)
以上、公開鍵暗号の話をしてきましたが、これだけでは、電子文書の本人証明はできません。図3の前提である「この秘密鍵Aが甲本人の持ち物で、甲以外は知りえない」という前提が必要だからです。
この前提を制度として保証するのが公開鍵基盤(PKI)(図4)です。これは、簡単にいうと「信頼できる第3者である認証局(CA)が『甲本人だけが秘密鍵Aを保有し、他方、公開鍵Bは電子証明書として公開すること』を可能にするしくみ」です。
まず、甲が「信頼できる第3者」たる認証局(CA)に電子証明書の発行を依頼します。するとCAは住民票確認や代表電話経由の在籍確認など様々な方法で、申請者が甲本人であることを確認します。
本人確認がすむと、認証局(CA)はペアの秘密鍵Aと公開鍵Bを生成し(※1)、秘密鍵AはICカードなど秘匿性の高い媒体で、本人以外に知りえないかたちで甲に提供し、公開鍵Bは電子証明書に含めて公開できるように甲に対し発行します。
PKI(公開鍵基盤)という制度・社会基盤があってはじめて電子署名の本人証明ができるというわけです。
※1 秘密鍵と公開鍵ペアを認証局が生成する場合のほか、甲自身で生成する場合があります。
ハッシュ関数
理解しなければならない3つ目の概念が「ハッシュ関数」です。ハッシュ関数とは、あるデータが与えられた場合にそのデータを固定長の数値に変換する関数のことで、ハッシュ関数から得られた数値のことを「ハッシュ値」といいます。
例えば現在最もよく利用されているSHA-1というハッシュ関数は、あらゆる電子データを40桁の英数字(0~f)すなわち、160ビットの固定長の数値に変換します。(図5)
このハッシュ関数を用いることにより、あらゆる電子ファイルが非常に小さな(例えばSHA-1では160ビットの)固定長の数値に変換できます。さらに同じハッシュ値をもつ異なる電子ファイルを意図的に作成することは極めて困難なため、ハッシュ値が一致すれば元の電子ファイルは同一であると考えられるのです。
電子署名のしくみでは、先ほどのべた公開鍵暗号による暗号化、復号などの処理を行いますが、この処理は比較的重く時間のかかるものなので、ハッシュ関数を利用して、電子ファイルを小さな固定長の数値に変換してから処理することで、計算を効率化しています。
電子署名のしくみ
以上3つの概念が理解できましたか?それではいよいよ電子署名のしくみを説明します。
- 甲は、電子文書(平文)のハッシュ値をとり、さら認証局から取得した秘密鍵Aをもちいて、このハッシュ値を暗号化します。
- 甲はこの平文と暗号文と公開鍵Bを含んだ電子証明書を乙に送ります。
- 受信した乙は、ハッシュ関数を用いて平文のハッシュ値をとります。
- 次に乙は、送られた電子証明書が信頼できる認証局から発行された有効なものであることを確認後、電子証明書から公開鍵Bをとりだして、暗号文を復号します。
- 3で生成したハッシュ値と4で復号したデータが一致すれば送信されてきた平文は甲本人が作成し、改ざんされていないことが証明されます。
いかがでしたか? 特殊な用語が多いので、とっつきにくいかもしれません。まずは3つの要素を確認しながら、秘密鍵、公開鍵、ハッシュ値、公開鍵基盤(PKI)など様々な用語になれていくうちに、自然と理解がすすむと思います。
電子契約導入のための20のヒント:目次
1. 法令
- 電子帳簿保存法:電子契約で税務調査に対応できるのか?
- 電子署名法:注文書や注文請書を本当に電子化して大丈夫か?
- 電子署名法:電子署名の証拠力
- 印紙税法:電子契約の場合、本当に印紙税を払わなくてよいのか?
- 下請法:下請法対応に関する注意点
- 建設業法:建設請負契約の電子化について
2. 技術
- 電子署名:電子署名・署名検証の作業イメージは?
- 電子署名:電子署名のしくみとはたらき
- 電子署名:電子証明書を選択する5つのチェックポイント
- 電子署名:長期署名について~10年を超える契約への対応~
- タイムスタンプ:タイムスタンプの効果としくみ
- EDI:電子契約とEDIは何が違うのか?