電子署名
読み: でんししょめい
電子署名は、公開鍵暗号を用いてデータの「誰が作ったか」(認証) と「改ざんされていないか」(完全性) を数学的に証明する技術です。署名者はデータのハッシュ値に対して秘密鍵で署名を作り、受信者は対応する公開鍵でその署名が成り立つかを検証します。RSA については「秘密鍵で暗号化し、公開鍵で復号する」と説明されることがありますが、現在広く使われている楕円曲線署名 (ECDSA) には復号という手順がなく、署名の生成と検証はそれぞれ別の演算として定義されています。紙の書類における印鑑や手書き署名のデジタル版ですが、偽造が数学的に困難である点で物理的な署名より堅牢です。
QR コードと電子署名の組み合わせは、偽造防止の文脈で注目されています。通常の QR コードは誰でも生成できるため、正規のコードを模倣したフィッシング用 QR コードを作ることは容易です。しかし、QR コードのデータに電子署名を埋め込めば、スキャン時にアプリが署名を検証し、正規の発行者が作成したコードかどうかを判定できます。
実用例として、EU のデジタル COVID 証明書 (EU DCC) がありました。EU 規則 2021/953 に基づいて 2021 年 7 月に運用が始まり、規則の適用は 2023 年 6 月 30 日で終了しています。各国の保健当局が秘密鍵でワクチン接種データに署名し、QR コードに格納しました。検証アプリは公開鍵で署名を照合し、証明書が改ざんされていないことを確認していました。署名には ECDSA P-256 と SHA-256 の組み合わせ (COSE ES256) が使われたため、この照合に復号の手順は含まれず、国境の検査場でもネットワークにつながずに完結しました。この仕組みにより、紙に印刷された QR コードでも偽造が極めて困難になりました。
規格がどこまで署名を定めているかは分野ごとに異なります。ICAO では、QR コードなどの 2 次元コードに署名付きデータを載せる仕組みが Doc 9303 Part 13 の Visible Digital Seal (VDS) として標準化され、オフラインでの検証を前提に運用されています。一方、電子パスポート (eMRTD) の署名を担っているのは冊子に埋め込まれた IC チップで、QR コードではありません。GS1 デジタルリンクは GS1 の識別コードを URL の形で表すための構文の標準であり、署名は仕様に含まれていないため、必要な場合は別の仕組みを重ねることになります。チケットや証明書、製品認証で署名付きの QR コードを使うときは、どの規格が署名を定めているのかを確かめることが出発点になります。どの規格であっても、検証する側は署名者の公開鍵をあらかじめ入手しておく必要があります。QR コード自体が運ぶのは署名対象のデータと署名値だけで、オフラインで検証できるのは公開鍵が先に手元にあるからです。