JP7808001B2 - メッセージ提示システム、提示用装置、及びメッセージ提示方法 - Google Patents
メッセージ提示システム、提示用装置、及びメッセージ提示方法Info
- Publication number
- JP7808001B2 JP7808001B2 JP2022111731A JP2022111731A JP7808001B2 JP 7808001 B2 JP7808001 B2 JP 7808001B2 JP 2022111731 A JP2022111731 A JP 2022111731A JP 2022111731 A JP2022111731 A JP 2022111731A JP 7808001 B2 JP7808001 B2 JP 7808001B2
- Authority
- JP
- Japan
- Prior art keywords
- message
- presentation
- user
- private key
- issuer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/32—User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3218—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
本発明は、メッセージ提示システム、提示用装置、及びメッセージ提示方法に関する。
発行者から電子的なメッセージと、メッセージの内容を証明するデータ(発行用証明)とを発行されたユーザが、第三者である検証者に対し、メッセージの全部または一部と、自身が当該発行者から発行を受けたことを証明するためのデータ(提示用証明)と、を提示し検証を受ける、システムが知られている。
例えば、非特許文献1では、発行者が、claimと呼ばれるメッセージと、発行用証明と、を含むVerifiable Credenialと呼ばれるデータを発行し、発行を受けたユーザ(非特許文献1では所有者と呼ばれる)は、Verifiable Credentialと、提示用証明と、を含むVerifiable Presentationと呼ばれるデータを検証者に提示するシステムが開示されている。
ユーザは、検証者に対し、発行されたメッセージのうちの一部(部分メッセージ)のみを提示し、残りの部分は秘匿できることが望ましい。このような選択的提示を行う方法として、非特許文献1には、発行者が、メッセージに対する電子署名を生成して発行用証明に含め、ユーザが、当該電子署名に関するゼロ知識証明を提示用証明に含める、という方法が開示されている。また、選択的提示を行う別の方法として、非特許文献2ではACS(Anonymous Credentials System)が開示されている。
W3C, "Verifiable Credentials Data Model v1.1," 2021年11月9日[2022年2月4日検索]、インターネット<https://www.w3.org/TR/2021/REC-vc-data-model-20211109/>
Olivier Sanders, "Efficient redactable signature and application to anonymous credentials," 2020年1月28日[2022年2月4日検索]、インターネット<https://eprint.iacr.org/2019/1201>
非特許文献1や非特許文献2に記載の方法では、ユーザが保存するデータが漏洩すると、安全性上の脅威が生じる。例えば、非特許文献1に記載の方法では、ユーザが、メッセージと、発行用証明と、を保存する必要がある。このうち、発行用証明が漏洩した場合、ユーザ以外の者がユーザになりすまして提示する脅威が生じる。
また、非特許文献2に記載の方法では、ユーザが、ユーザ秘密鍵と、メッセージと、発行用証明と、を保存する必要がある。このうち、ユーザ秘密鍵が、部分メッセージと、当該部分メッセージに対する提示用証明と、の組を受け取った検証者に漏洩した場合、当該検証者が当該ユーザになりすまして別の検証者に提示する脅威が生じる。
また、非特許文献1と非特許文献2のどちらにおいても、メッセージが漏洩した場合、メッセージのうち提示していない部分が検証者や第三者に知られることになる。
そこで、本発明の一態様は、ユーザが保存するデータが漏洩し得る場合でも、安全性が保たれるようなメッセージ提示システムを実現する。
上記課題を解決するために、本発明の一態様は以下の構成を採用する。メッセージ提示システムは、提示用装置を含み、前記提示用装置は、ユーザの登録用生体情報に基づき生成されたテンプレートと、1以上のメッセージ要素を含むメッセージが暗号化された暗号化メッセージと、前記テンプレートに対応するユーザ公開鍵、前記メッセージ、及び前記メッセージの発行主体に対応する発行者秘密鍵に基づき生成された発行用証明と、を保持し、ユーザの提示用生体情報を取得し、前記テンプレートと前記提示用生体情報とに基づき、前記ユーザ公開鍵に対応するユーザ秘密鍵を生成し、前記ユーザ秘密鍵を用いた前記暗号化メッセージの復号によって、前記メッセージを復元し、前記メッセージの中で提示される部分を特定する情報である提示部分に基づき前記メッセージから部分メッセージを生成し、前記提示部分と、前記発行用証明と、前記ユーザ秘密鍵と、に基づき提示用証明を生成し、前記部分メッセージと、前記提示用証明と、を出力する。
本発明の一態様によれば、ユーザが保存するデータが漏洩し得る場合でも、安全性が保たれるようなメッセージ提示システムが実現される。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
以下、本発明の実施形態を図面に基づき詳細に説明する。なお、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものでないことに注意すべきである。
実施例1では、ネットワークを介したメッセージ提示システムを説明する。メッセージとは電子的に表現された任意のデータである。例えば、電子的に表現された、運転免許証、マイナンバーカード、職歴証明書、学歴証明書、履修証明書、ワクチン接種証明書、購買履歴、クレジットカード利用履歴、社員証、学生証、及び会員証等は、いずれもメッセージの例である。これ以降、メッセージは電子的に表現されているものとし、「電子的に表現された」という但し書きは省略する。
メッセージは、例えば、1つ以上のメッセージ要素からなる。メッセージ要素は、例えば、それぞれが部分的に提示され得る単位である。例えば、M1:=(氏名:日立太郎、生年月日:2000年1月1日、性別:男、住所:東京都千代田区丸の内一丁目6番6号)は、メッセージの例である。ただし、A1:=A2は、A1をA2により定義することを表す。M1は、「、」で区切られた、「氏名:日立太郎」と、「生年月日:2000年1月1日」と、「性別:男」と、住所:「東京都千代田区丸の内一丁目6番6号」と、の4つのメッセージ要素からなる。
なお、メッセージ要素の定義方法は上記に限らない。例えば、M2:=(苗字:日立、下の名前:太郎、生年月日:2000年1月1日、性別:男、住所の都道府県部分:東京都、住所の市区町村以下:千代田区丸の内一丁目6番6号)もメッセージの例である。
「メッセージの中で提示処理において提示される部分」を特定する情報を提示部分と呼び、メッセージのうち提示部分に対応するメッセージ要素からなる組を部分メッセージと呼ぶ。例えば、上記したM1における、提示部分が(氏名、生年月日)である場合、この提示部分に対応する部分メッセージは、(氏名:日立太郎、生年月日:2000年1月1日)である。
各メッセージ要素が何を意味するかを表す情報をキーと呼び、情報そのものをバリューと呼ぶ。例えば、メッセージ要素「氏名:日立太郎」において、キーは「氏名」、バリューは「日立太郎」である。
メッセージの構造としては、上記のM1のように、各メッセージ要素がキーとバリューの組からなるようにしてもよいし、各メッセージ要素がバリューからなるようにし、別途、以下のように構造情報を定義してもよい。例えば、M3:=(日立太郎、2000年1月1日、男、東京都千代田区丸の内一丁目6番6号)のようにM3をバリューのみよって定義し、構造情報S3を、S3:=(氏名、生年月日、性別、住所)のようにキーによって定義する。メッセージM3のメッセージ要素の各位置に対応する構造情報S3のキーを参照することにより、各メッセージ要素が何を意味するのかを知ることができる。
各メッセージ要素がバリューからなる場合、構造情報は、例えば、メッセージ又は部分メッセージとともに送信、暗号化、及び復号されるようにすればよい。その際、構造情報がメッセージまたは部分メッセージとの紐づけ処理が行われるようにするとよい。例えば、発行用証明に含まれる署名の対象に、構造情報を含めるようにするとよい。あるいは、構造情報を公開の改ざん困難なDB(DataBase)(例えば、ブロックチェーンや、信頼できる機関のDB等)に格納し、格納場所へのポインタを、発行用証明に含まれる署名の対象に含めるようにしてもよい。
あるいは、システムが、メッセージの所定の位置に構造情報が格納され、提示の際に構造情報を必ず提示する、という規則が定められてもよい。例えば、メッセージの1番目は構造情報を表すという規則が定められているとき、M4:=(S3、日立太郎、2000年1月1日、男、東京都千代田区丸の内一丁目6番6号)はメッセージの例である。
また、メッセージには、メッセージの名称(「運転免許証」等)、発行者名、有効期間等のメッセージに関する情報が添付されていてもよい。この場合、提示処理において、メッセージに添付された有効期間が切れていない場合にのみ提示を行い、切れている場合には処理を中止するようにしてもよい。
図1Aは、メッセージ提示システムの構成例を示すブロック図である。図1Bは、発行者登録用装置100の機能構成例を示すブロック図である。図1Cは、ユーザ登録用装置200の機能構成例を示すブロック図である。図1Dは、検証者登録用装置300の機能構成例を示すブロック図である。図1Eは、発行用装置400の機能構成例を示すブロック図である。図1Fは、取得用装置500の機能構成例を示すブロック図である。図1Gは、提示用装置600の機能構成例を示すブロック図である。図1Hは、検証用装置700の機能構成例を示すブロック図である。図1Iは、ログ出力用装置800の機能構成例を示すブロック図である。
メッセージ提示システム10は、例えば、発行者登録用装置100と、ユーザ登録用装置200と、検証者登録用装置300と、発行用装置400と、取得用装置500と、提示用装置600と、検証用装置700と、ログ出力用装置800と、発行者秘密鍵格納用DB901と、発行者公開鍵格納用DB902と、ユーザ第1DB903と、検証者秘密鍵格納用DB904と、検証者公開鍵格納用DB905と、ユーザ第2DB906と、ユーザ第3DB907と、を含む。
例えば、発行者登録用装置100と、ユーザ登録用装置200と、検証者登録用装置300と、発行用装置400と、取得用装置500と、提示用装置600と、検証用装置700と、ログ出力用装置800と、発行者公開鍵格納用DB902と、ユーザ第1DB903と、検証者公開鍵格納用DB905と、ユーザ第2DB906と、ユーザ第3DB907と、はネットワーク911に接続されている。
例えば、発行者登録用装置100と、発行用装置400と、発行者秘密鍵格納用DB901と、はネットワーク912に接続されている。例えば、検証者登録用装置300と、検証用装置700と、検証者秘密鍵格納用DB904と、はネットワーク913に接続されている。
インターネット、及び組織内のローカルネット等は、いずれもネットワーク911、ネットワーク912、及びネットワーク913の一例である。ネットワーク911、ネットワーク912、及びネットワーク913それぞれは、有線であってもよいし、無線であってもよい。
なお、図1Aの例では、メッセージ提示システム10内の装置に接続されるネットワークが、ネットワーク912と、ネットワーク912と、ネットワーク913と、により構成されているが、必ずしもこのような構成でなくてもよい。例えば、ネットワーク911、ネットワーク912、又はネットワーク913のいずれか1つのみが存在し、メッセージ提示システム10に含まれる全ての装置が当該1つのネットワークに接続されていてもよい。
但し、発行者秘密鍵が通信される場合には、発行者秘密鍵の不正利用を困難とするため、発行者秘密鍵が漏洩することが困難であるような対策がされていることが望ましい。当該通信を行う装置の間で認証を行うことは、対策の一例である。同様に、検証者秘密鍵の不正利用を困難とするため、検証者秘密鍵が検証用装置700以外で使用されることが困難であるような対策がされていることが望ましい。
発行者登録用装置100は、例えば、いずれも機能部である、発行者登録用装置通信部101と、発行者鍵生成部102と、を備える。発行者登録用装置通信部101は、発行者登録用装置100と接続された装置と通信する。発行者鍵生成部102は、メッセージおよび発行用証明(メッセージの内容を証明するデータ)をユーザに対し発行する発行主体の発行者秘密鍵と発行者公開鍵とを生成する。
ユーザ登録用装置200は、例えば、いずれも機能部である、ユーザ登録用装置通信部201と、登録用生体情報取得部202と、ユーザ鍵生成部203と、を備える。ユーザ登録用装置通信部201は、ユーザ登録用装置200に接続された装置と通信する。登録用生体情報取得部202は、登録用生体情報を取得する。ユーザ鍵生成部203は、登録用生体情報から、テンプレートとユーザ公開鍵との組を生成する。
検証者登録用装置300は、例えば、いずれも機能部である、検証者登録用装置通信部301と、検証者鍵生成部302と、を備える。検証者登録用装置通信部301は、検証者登録用装置300に接続された装置と通信する。検証者鍵生成部302は、検証者秘密鍵と検証者公開鍵とを生成する。
発行用装置400は、例えば、いずれも機能部である、発行用装置通信部401と、ユーザ秘密鍵知識証明検証部402と、メッセージ取得部403と、発行用証明生成部404と、データ暗号化部405と、を備える。
発行用装置通信部401は、発行用装置400に接続された装置と通信する。ユーザ秘密鍵知識証明検証部402は、後述するユーザ秘密鍵知識証明とユーザ公開鍵とを用いて、ユーザ秘密鍵知識証明検証を行う。メッセージ取得部403は、メッセージを取得する。発行用証明生成部404は、ユーザ公開鍵と、発行者秘密鍵と、メッセージと、を用いて発行用証明を生成する。データ暗号化部405は、ユーザ公開鍵を用いて、メッセージを暗号化する。
取得用装置500は、例えば、いずれも機能部である、取得用装置通信部501と、発行用生体情報取得部502と、ユーザ秘密鍵復元部503と、ユーザ秘密鍵知識証明生成部504と、を備える。取得用装置通信部501は、取得用装置500に接続された装置と通信する。発行用生体情報取得部502は発行用生体情報を取得する。ユーザ秘密鍵復元部503は、テンプレートと、発行用生体情報と、を用いてユーザ秘密鍵を復元する。ユーザ秘密鍵知識証明生成部504は、復元されたユーザ秘密鍵を用いて、ユーザ秘密鍵知識証明を生成する。
提示用装置600は、例えば、いずれも機能部である、提示同意取得部621と、提示用装置通信部601と、提示用生体情報取得部602と、ユーザ秘密鍵復元部603と、データ復号部604と、テンプレート検証部605と、提示用証明生成部606と、部分メッセージ選択部607と、データ暗号化部608と、結果出力部609と、を備える。
提示同意取得部621は、後述する部分メッセージの提示に対するユーザの同意を取得する。提示用装置通信部601は、提示用装置600と接続された装置と通信する。提示用生体情報取得部602は、提示用生体情報を取得する。ユーザ秘密鍵復元部603は、テンプレートと、提示用生体情報と、を用いてユーザ秘密鍵を復元する。データ復号部604は、復元されたユーザ秘密鍵を用いて、暗号化メッセ―ジを復号する。
テンプレート検証部605は、テンプレートに対する検証処理を実行する。提示用証明生成部606は、発行用証明と、ユーザ秘密鍵と、を用いて、復号されたメッセージの提示部分に対する提示用証明(提示される部分メッセージの選択元であるメッセージが、発行者から発行されたものであることを証明するためのデータ)を生成する。部分メッセージ選択部607は、復号されたメッセージに含まれる提示部分を選択して、部分メッセージを生成する。データ暗号化部608は、検証者公開鍵を用いて、部分メッセージを暗号化する。また、データ暗号化部608は、ユーザ公開鍵を用いて提示用装置600に関するログを暗号化する。結果出力部609は、検証用装置700による提示用証明に対する検証結果を出力する。
検証用装置700は、例えば、いずれも機能部である、検証用装置通信部701と、提示部分指定部702と、データ復号部703と、提示用証明検証部704と、を備える。検証用装置通信部701は、検証用装置700に接続された装置と通信する。提示部分指定部702は、メッセージのうち提示対象となる部分を指定する。データ復号部703は、検証者秘密鍵を用いて、暗号化部分メッセージを復号する。提示用証明検証部704は、発行者公開鍵と、復号した部分メッセージと、を用いて提示用証明に対する検証処理を実行する。
ログ出力用装置800は、例えば、いずれも機能部である、ログ出力用装置通信部801と、ログ出力用生体情報取得部802と、ユーザ秘密鍵復元部803と、データ復号部804と、ログ出力部805と、を備える。
ログ出力用装置通信部801は、ログ出力用装置800に接続された装置と通信する。ログ出力用生体情報取得部802は、ログ出力用生体情報を取得する。ユーザ秘密鍵復元部803は、テンプレートと、ログ出力用生体情報と、を用いて、ユーザ秘密鍵を復元する。データ復号部804は、復元されたユーザ秘密鍵を用いて、提示用装置600に関する暗号化されたログを復号する。ログ出力部805は、復号されたログを出力する。
発行者秘密鍵格納用DB901は、発行者秘密鍵を格納する。発行者秘密鍵格納用DB901の例として、PC(Personal Computer)内の補助記憶装置が挙げられる。また、別の例として、物理トークンや、IC(Integrated Circuit)カードが挙げられる。発行者秘密鍵格納用DB901は、発行者登録用装置100又は発行用装置400に含まれていてもよい。
発行者公開鍵格納用DB902は、発行者公開鍵を格納する。発行者公開鍵格納用DB902の例として、信頼できる組織のDBや、政府のDBや、ブロックチェーンや、分散型台帳(distributed ledgers)や、非集中型DB(decentralized databases)が挙げられる。発行者公開鍵格納用DB902は、公開され、かつ改ざんが困難であることが望ましい。
ユーザ第1DB903、ユーザ第2DB906、及びユーザ第3DB907はユーザに関する情報を格納する。例えば、ユーザ第1DB903は、ユーザのテンプレートと、ユーザ公開鍵と、を格納する。例えば、ユーザ第2DB906は、暗号化メッセージと、発行用証明と、を格納する。例えば、ユーザ第3DB907は、暗号化ログを格納する。
なお、上記したユーザ第1DB903、ユーザ第2DB906、及びユーザ第3DB907が格納する情報は必ずしもこのように分かれていなくてもよい(つまり、上記した情報がユーザ第1DB903、ユーザ第2DB906、及びユーザ第3DB907のいずれかに格納されていればよい)。また、ユーザに関する情報を格納するDBが必ずしも3つに分かれていなくてもよい。例えば、これら3つのDBが1つにまとめられていてもよい。クラウドストレージ、及び企業等の組織のサーバ等は、ユーザ第1DB903、ユーザ第2DB906、及びユーザ第3DB907の例である。また、各DBが複数の物理的装置によって構成され、各データが分割されて格納されていてもよい。例えば、ユーザ第1DB903が複数の物理的装置によって構成され、ユーザ公開鍵が複数個に分割されたうえで、ユーザ第1DB903を構成する各物理的装置が、ユーザ公開鍵の分割された各部分を格納してもよい。
なお、上記した複数の装置が物理的に1つの端末内に含まれていてもよい。一例として、発行機関が保有する発行者端末が、発行者登録用装置100と、発行用装置400と、発行者秘密鍵格納用DB901と、を備え、ユーザ個人端末が、ユーザ登録用装置200と、取得用装置500と、提示用装置600と、を備え、検証者が保有する検証者端末が、検証者登録用装置300と、検証用装置700と、検証者秘密鍵格納用DB904と、を備えるという構成が挙げられる。
別の例として、発行機関が保有する第1発行者端末が、発行者登録用装置100と、発行用装置400と、発行者秘密鍵格納用DB901と、を備え、発行機関が保有する第2発行者端末が、ユーザ登録用装置200と、取得用装置500と、を備え、検証者が保有する第1検証者端末が、検証者登録用装置300と、検証用装置700と、検証者秘密鍵格納用DB904と、を備え、検証者が保有する第2検証者端末が、提示用装置600を備えるという構成が挙げられる。この例の場合、ユーザは自身の端末を持たなくても、発行機関が保有する第2発行者端末を用いて発行処理を行い、メッセージを取得することができ、検証者が保有する第2検証者端末を用いて提示処理を行うことができる。これらの構成例において、ログ出力用装置800は、例えばユーザ個人の端末又は他の端末に含まれ、残りのDBは上記した通りの実装が例として挙げられる。
図2は、実施例1におけるメッセージ提示システム10に含まれる各装置を構成する計算機のハードウェア構成例を表すブロック図である。計算機10000は、例えば、例えば、CPU(Central Processing Unit)10001、メモリ10002、補助記憶装置10003、入力装置10004、出力装置10005、通信装置10006、及び読込装置10007を有する。
CPU10001は、プロセッサを含み、メモリ10002に格納されたプログラムを実行する。メモリ10002は、不揮発性の記憶素子であるROM(Read Only Memory)及び揮発性の記憶素子であるRAM(Random Access Memory)を含む。ROMは、不変のプログラム(例えば、BIOS(Basic Input/Output System))などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、CPU10001が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
補助記憶装置10003は、例えば、磁気記憶装置(HDD(Hard Disk Drive))、フラッシュメモリ(SSD(Solid State Drive))等の大容量かつ不揮発性の記憶装置であり、CPU10001が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置10003から読み出されて、メモリ10002にロードされて、CPU10001によって実行される。
入力装置10004は、キーボードやマウスなどの、オペレータからの入力を受ける装置である。出力装置10005は、ディスプレイ装置やプリンタなどの、プログラムの実行結果をオペレータが視認可能な形式で出力する装置である。
通信装置10006は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。また、通信装置10006は、例えば、USB(Universal Serial Bus)等のシリアルインターフェースを含む。
CPU10001が実行するプログラムの一部またはすべては、非一時的記憶媒体であるリムーバブルメディア(CD-ROM、フラッシュメモリなど)又は、非一時的記憶装置を備える外部計算機からネットワークを介して計算機10000に提供され、非一時的記憶媒体である不揮発性の補助記憶装置10003に格納されてもよい。読込装置10007は、リムーバブルメディアからデータを読み込むインターフェース装置である。
メッセージ提示システム10に含まれる各装置は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
例えば、発行者登録用装置100の発行者登録用装置通信部101及び発行者鍵生成部102は、発行者登録用装置100を構成する計算機10000のCPU10001に含まれる。例えば、発行者登録用装置100を構成する計算機10000のCPU10001は、当該計算機10000のメモリ10002にロードされた発行者登録用装置通信プログラムに従って動作することで、発行者登録用装置通信部101として機能し、当該メモリ10002にロードされた発行者鍵生成プログラムに従って動作することで、発行者鍵生成部102として機能する。メッセージ提示システム10に含まれる他の装置についても、当該装置を構成する計算機10000のCPU10001と、当該計算機10000のメモリ10002にロードされるプログラムと、当該装置に含まれる機能部と、の関係は同様である。
なお、メッセージ提示システム10に含まれる各装置に含まれる機能部による機能の一部又は全部が、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)等のハードウェアによって実現されてもよい。
メッセージ提示システム10に含まれる各装置が保持する情報は、当該装置を構成する計算機10000のメモリ10002又は補助記憶装置10003に格納される。なお、本実施形態において、メッセージ提示システム10が使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブル、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。
なお、図示を省略しているが、ユーザ登録用装置200、取得用装置500、提示用装置600、及びログ出力用装置800を構成する計算機10000は、顔、指紋、虹彩、掌紋、及び指静脈等の生体情報を取得するためのセンサをさらに有しているとよい。
図3は、実施例1における発行者登録処理の一例を示すシーケンス図である。ステップS1101では、発行者鍵生成部102が、発行者秘密鍵と発行者公開鍵とを生成する。発行者秘密鍵と発行者公開鍵とからなる鍵ペア生成方法として、例えば、後述する通り、墨塗署名方式やACS(Anonymous Credentials System)における鍵ペア生成処理を行えばよい。
ステップS1102では、発行者登録用装置通信部101が、ステップS1101で生成された発行者秘密鍵を発行者秘密鍵格納用DB901に送信する。ステップS1911では、発行者秘密鍵格納用DB901が、ステップS1102で送信された発行者秘密鍵を格納する。
ステップS1103では、発行者登録用装置通信部101が、ステップS1101で生成された発行者公開鍵を発行者公開鍵格納用DB902に送信する。ステップS1921では、発行者公開鍵格納用DB902が、ステップS1103で送信された発行者公開鍵を格納する。
図4は、実施例1におけるユーザ登録処理の一例を示すシーケンス図である。ステップS2201では、登録用生体情報取得部202が、ユーザから登録用生体情報を取得する。生体情報として、顔、指紋、虹彩、掌紋、及び指静脈等の任意の種類を用いて良い。また、複数の種類の生体情報を組み合わせて用いてもよい。
ステップS2202では、ユーザ鍵生成部203が、ステップS2201で取得された登録用生体情報を用いて、テンプレートとユーザ公開鍵との組を生成する。ステップS2202の処理の具体例は後述する。
ステップS2203では、ユーザ登録用装置通信部201が、ステップS2202で生成されたテンプレートとユーザ公開鍵との組をユーザ第1DB903に送信する。ステップS2931では、ユーザ第1DB903が、ステップS2203で送信されたテンプレートとユーザ公開鍵との組を格納する。
図5は、実施例1における検証者登録処理の一例を示すシーケンス図である。ステップS3301では、検証者鍵生成部302が、検証者秘密鍵と検証者公開鍵との組を生成する。検証者秘密鍵と検証者公開鍵とからなる鍵ペア生成方法として、任意の暗号方式における鍵ペア生成アルゴリズムを用いてよい。また、任意の署名方式における鍵ペア生成アルゴリズムによって生成された鍵ペアを含めてもよいし、含めなくてもよい。
ステップS3302では、検証者登録用装置通信部301が、ステップS3301で生成された検証者秘密鍵を検証者秘密鍵格納用DB904に送信する。ステップS3941では、検証者秘密鍵格納用DB904が、ステップS3302で送信された検証者秘密鍵を格納する。
ステップS3303では、検証者登録用装置通信部301が、ステップS3301で生成された検証者公開鍵を検証者公開鍵格納用DB905に送信する。ステップS3951では、検証者公開鍵格納用DB905が、ステップS3303で送信された検証者公開鍵を格納する。
図6は、実施例1における発行処理の一例を示すシーケンス図である。ステップS4931では、ユーザ第1DB903が、格納されているテンプレートとユーザ公開鍵との組を取得用装置500に送信する。
ステップS4501では、発行用生体情報取得部502が、ユーザから発行用生体情報を取得する。具体的には、例えば、発行用生体情報取得部502は、ステップS2201で用いられた種類又はその一部の種類の生体情報を取得する。
ステップS4502では、ユーザ秘密鍵復元部503が、ステップS4931で送信されたテンプレートと、ステップS4501で取得された発行用生体情報と、を用いてユーザ秘密鍵を復元する。ステップS4502の処理の具体例は後述する。
ステップS4503では、ユーザ秘密鍵知識証明生成部504が、ステップS4502で復元されたユーザ秘密鍵を用いて、ユーザ秘密鍵知識証明を生成する。ステップS4503の処理の具体例は後述する。なお、ユーザ秘密鍵知識証明生成部504は、ユーザ秘密鍵全体に対する知識証明を生成する代わりに、ユーザ秘密鍵の一部(例えば、ステップS5605の提示用証明生成に用いる部分)に対する知識証明を生成するようにしてもよい。
ステップS4504では、取得用装置通信部501が、ステップS4503で生成されたユーザ秘密鍵知識証明と、ステップS4931で送信されたユーザ公開鍵と、を発行用装置400に送信する。なお、取得用装置500は、ユーザ公開鍵を、ステップS4931で受信する代わりに、ステップS4502で復元されたユーザ秘密鍵から計算してもよい。この処理に限らず、提示処理においても、提示用装置600は、ユーザ公開鍵を受信する代わりに、ユーザ秘密鍵から計算してもよい。両方の処理においてユーザ公開鍵がユーザ秘密鍵から計算されるならば、ユーザ公開鍵は必ずしもユーザ第1DB903に格納されなくてもよい。
ステップS4401では、ユーザ秘密鍵知識証明検証部402が、ステップS4504で送信されたユーザ秘密鍵知識証明とユーザ公開鍵とを用いて、ユーザ秘密鍵知識証明検証を行う。なお、ステップS4503のユーザ秘密鍵知識証明生成処理とステップS4401のユーザ秘密鍵知識検証処理は対話的な方式(すなわち、取得用装置500と発行用装置400との間の1往復以上の通信の結果、知識証明と知識検証処理が完了するような方式(例えばゼロ知識証明のプロトコル))であってもよい。
ステップS4402では、メッセージ取得部403が、発行対象となるメッセージを取得する。発行対象となるメッセージは、例えば、発行用装置400又は発行用装置400に接続された外部のDBに予め格納されていてもよいし、発行用装置400を使用する発行者又はメッセージ発行対象のユーザから入力を受け付けることで生成されてもよい。
ステップS4911では、発行者秘密鍵格納用DB901が、格納された発行者秘密鍵を発行用装置400に送信する。ステップS4403では、発行用証明生成部404が、ステップS4504で送信されたユーザ公開鍵と、ステップS4911で送信された発行者秘密鍵と、ステップS4402で取得されたメッセージと、を用いて発行用証明を生成する。ステップS4403の処理の具体例は後述する。
ステップS4404では、データ暗号化部405が、ステップS4504で送信されたユーザ公開鍵を用いて、ステップS4402で取得されたメッセージを暗号化することにより、暗号化メッセージを生成する。暗号化方式としては、任意の公開鍵暗号方式を用いることができる。
ステップS4405では、発行用装置通信部401が、ステップS4403で生成された発行用証明と、ステップS4404で生成された暗号化メッセ―ジと、の組をユーザ第2DB906に送信する。ステップS4961では、ユーザ第2DB906が、ステップS4405で送信された暗号化メッセージと発行用証明との組を格納する。
図7は、実施例1における提示処理の一例を示すシーケンス図である。ステップS5931では、ユーザ第1DB903が、格納されたテンプレートとユーザ公開鍵との組を提示用装置600に送信する。ステップS5961では、ユーザ第2DB906が、格納された暗号化メッセージと発行用証明との組を提示用装置600に送信する。
ステップS5701では、提示部分指定部702が、提示部分を指定する。具体的には、例えば、検証用装置700を使用する検証者、又は検証用装置700の管理者からの入力により提示部分が指定される。なお、提示部分指定処理は、提示処理よりも前に行われてもよい。例えば、提示処理が店舗での年齢確認のために行われる場合、提示処理よりも前に、生年月日(あるいは、生年月日が所定の日付よりも前であることの証明)が提示部分として指定されていてもよい。
ステップS5702では、検証用装置通信部701が、ステップS5701で指定された提示部分を提示用装置600に送信する。送信時に、提示を求めるメッセ―ジの種類(メッセージの名称、発行者等)も送るとよい。この提示を求めるメッセージの種類は、例えば、検証用装置700を使用する検証者、又は検証用装置700の管理者からの入力により指定される。なお、この指定は、提示処理よりも前に行われてもよい。
ステップS5621では、提示同意取得部621が、ステップS5702で送信された提示部分に対応する部分メッセージの提示に対するユーザの同意を取得する。例えば、提示同意取得部621は、提示する内容や提示相手等をディスプレイ画面(例えば、提示用装置600を構成する計算機10000の出力装置10005)に表示し、当該画面に提示に同意するか尋ねるメッセージを表示し、「はい」または「いいえ」をユーザに選択させる。
「はい」が選択された場合、これ以降の処理に進み、「いいえ」が選択された場合、例えば、処理を中止する。「いいえ」が選択された場合、提示同意取得部621は、処理が中止された旨をディスプレイ画面に表示してもよい。
ステップS5601では、提示用生体情報取得部602が、ユーザから提示用生体情報を取得する。提示用生体情報取得部602は、例えば、ステップS2201で用いられた種類又はその一部の種類の生体情報を取得する。
ステップS5602では、ユーザ秘密鍵復元部603が、ステップS5931で送信されたテンプレートと、ステップS5601で取得された提示用生体情報と、を用いてユーザ秘密鍵を復元する。提示用生体情報が、テンプレート生成に用いられた登録用生体情報と十分近ければ、テンプレートに対応する固定値を持つユーザ秘密鍵が復元される。ステップS5602の処理の具体例は後述する。
ステップS5603では、データ復号部604が、ステップS5602で復元されたユーザ秘密鍵を用いて、ステップS5961で送信された暗号化メッセ―ジに対して復号処理を行い、メッセージを得る。
ステップS5604では、テンプレート検証部605が、ステップS5931で送信されたテンプレートが改ざんされていないか検証する。ステップS5604の処理により、テンプレートを不正に変更する攻撃に対するリスクを低減できる。ステップS5604の処理の具体例は後述する。ステップS5604の処理を行う場合、検証に成功したならば、次の処理に進み、検証に失敗したならば、例えば、以降の処理を中止する。
ステップS5605では、提示用証明生成部606が、ステップS5702で送信された提示部分と、ステップS5961で送信された発行用証明と、ステップS5602で復元されたユーザ秘密鍵と、必要に応じてステップS5603で復号されたメッセージの一部または全部と、を用いて提示用証明を生成する。ステップS5605における提示用証明の生成方法の具体例は後述する。
ステップS5606では、部分メッセージ選択部607が、ステップS5603で復号されたメッセージに含まれるメッセージ要素のうち、ステップS5702で送信された提示部分を選択することにより部分メッセージを生成する。なお、メッセージに含まれる全メッセージ要素が提示対象となる場合、部分メッセージ選択部607が、メッセージに含まれる全メッセージ要素を選択するようにしてもよいし、ステップS5606の処理が省略されてもよい。
ステップS5951では、検証者公開鍵格納用DB905が、格納された検証者公開鍵を提示用装置600に送信する。ステップS5607では、データ暗号化部608が、ステップS5951で送信された検証者公開鍵を用いて、ステップS5606で生成された部分メッセージを暗号化することで、暗号化部分メッセージを生成する。
ステップS5608では、提示用装置通信部601が、ステップS5607で暗号化された部分メッセージと、ステップS5605で生成された提示用証明と、の組を検証用装置700に送信する。ステップS5941では、検証者秘密鍵格納用DB904が、格納された検証者秘密鍵を検証用装置700に送信する。
ステップS5609では、データ暗号化部608が、ステップS5931で送信されたユーザ公開鍵を用いた公開鍵暗号方式により、提示用装置600に関するログを暗号化し、暗号化ログを生成する。なお、データ暗号化部608は、ステップS5931で送信されたユーザ公開鍵を用いた公開鍵暗号方式に代えて、ステップS5602で復元されたユーザ秘密鍵を用いた共通鍵暗号方式により当該ログを暗号化してもよい。
暗号化対象となるログは、例えば、提示日時、提示先、提示内容(例えば、提示部分の内容、及びメッセージの種類等)、及び提示に使用した提示用装置600の識別子等である。なお、ステップS5705で送信される検証結果を受信した後にステップS5609の処理を行い、ステップS5704における検証結果をログに含めるようにしてもよい。
ステップS5610では、提示用装置通信部601が、ステップS5609で生成された暗号化ログをユーザ第3DBに送信する。ステップS5971では、ユーザ第3DBが、ステップS5610で送信された暗号化ログを格納する。
ステップS5703では、データ復号部703が、ステップS5941で送信された検証者秘密鍵を用いて、ステップS5608で送信された暗号化部分メッセージに対し復号を行うことで、部分メッセージを生成する。ステップS5921では、発行者公開鍵格納用DB902が、格納された発行者公開鍵を検証用装置700に送信する。
ステップS5704では、提示用証明検証部704が、ステップS5921で送信された発行者公開鍵と、ステップS5608で送信された提示用証明と、ステップS5703で復号された部分メッセージと、を用いて検証を行い、検証結果として検証成功または検証失敗を得る。なお、ステップS5605の提示用証明生成処理と、ステップS5704の提示用証明検証処理と、提示用装置600と検証用装置700との間の対話的な方式によって実行されてもよい。
検証用装置700は、検証結果と提示された部分メッセージの少なくとも1つを出力してもよい。出力先はディスプレイ画面(例えば、検証用装置700を構成する計算機10000の出力装置10005)でもよいし、別のプログラムであってもよい。例えば、出力先が決済プログラムである場合、当該決済プログラムによる処理の一例は、検証結果が成功である場合に、提示された部分メッセージ(住所、会員情報等)に応じて割引等を行い、当該ユーザに対して決済処理を行う、というものである。また、出力先が入場管理プログラム(イベント会場への入場管理プログラム等もその一例である)である場合、当該入場管理プログラムの処理の一例は、検証結果が成功であり、かつ、提示された部分メッセージが所定の条件(例えば、所定の感染症に関する検査結果が陰性であるという条件)を満たす場合に当該ユーザの入場を許可する(例えば、門やドアを開く)、というものである。
ステップS5705では、検証用装置通信部701が、ステップS5704で得られた検証結果を提示用装置600に送信する。ステップS5611では、結果出力部609が、ステップS5705で送信された検証結果を出力する。出力先はディスプレイ画面(例えば、提示用装置600を構成する計算機10000の出力装置10005)でもよいし、別のプログラム(例えば、決済プログラムや、入場管理プログラム)であってもよい。
図8は、実施例1におけるログ出力処理の一例を示すシーケンス図である。ステップS6971では、ユーザ第3DB907が、格納された暗号化ログをログ出力用装置800に送信する。ステップS6931では、ユーザ第1DB903が、格納されたテンプレートをログ出力用装置800に送信する。
ステップS6801では、ログ出力用生体情報取得部802が、ユーザからログ出力用生体情報を取得する。ログ出力用生体情報取得部802は、例えば、ステップS2201で用いられた種類又はその一部の種類の生体情報を取得する。
ステップS6802では、ユーザ秘密鍵復元部803は、ステップS6931で送信されたテンプレートと、ステップS6801で取得されたログ出力用生体情報と、を用いて、ユーザ秘密鍵を復元する。ステップS6802の処理の具体例は後述する。
ステップS6803では、データ復号部804は、ステップS6802で復元されたユーザ秘密鍵を用いて、ステップS6971で送信された暗号化ログを復号することで、ログを得る。ステップS6804では、ログ出力部805は、ステップS6803で復号されたログを出力する。出力先はディスプレイ画面(例えば、ログ出力用装置800を構成する計算機10000の出力装置10005)でもよいし、別のプログラムであってもよい。
図9は、実施例1における提示処理中の提示用装置600のディスプレイ画面の表示内容の遷移の一例を表すフローチャートである。表示内容51000は、ステップS5621の提示同意取得処理における表示内容の例である。表示内容51000は、例えば、ブロック51001、ブロック51002、ブロック51003、ブロック51004、及びブロック51005を含む。
ブロック51001には、例えば、情報の提示が要求された旨のテキストが表示されている。ブロック51002には、例えば、提示を要求されているメッセージに対応する書類名、並びにメッセージの提示部分及び提示先を示すテキストが表示されている。ブロック51003には、例えば、提示に同意するか尋ねるテキストが表示されている。ブロック51004には、例えば、「はい」の選択肢が表示されている。ブロック51005には、例えば、「いいえ」の選択肢が表示されている。
分岐59001は、ステップS5621の提示同意処理における選択結果に関する分岐である。ステップS5621で提示に同意された場合、つまりブロック51004が選択された場合(分岐59001:「はい」)、表示内容52000が表示される。ステップS5621で提示に同意されなかった場合、つまりブロック51005が選択された場合(分岐59001:「いいえ」)、表示内容55000が表示される。
表示内容52000は、ステップS5601の提示用生体情報取得処理における表示内容の例である。表示内容52000は、例えば、ブロック52001及びブロック52002を含む。
ブロック52001には、例えば、生体情報を提示するよう要求するテキストが表示されている。ブロック52002には、生体情報を取得するためのセンサ(カメラ等)が撮影している画像が表示されている。また、ブロック52002は、当該センサに生体情報を提示する適切な位置を示すガイド表示52003を含んでもよい。
表示内容55000は、ステップS5621の提示同意処理における選択、または検証結果が検証失敗の場合のステップS5611におけるリトライするかの選択において「いいえ」が選択された場合の表示内容の例である。表示内容55000は、例えば、表示内容54000は、例えば、提示処理を中止した旨を示すメッセージが表示されたブロック55001を含む。
分岐59002は、ステップS5704の検証結果に関する分岐である。ステップS704における検証に成功した場合(分岐59002:「検証成功」)、ステップS5611において表示内容53000が表示される。ステップS5704における検証に失敗した場合(分岐59002:「検証失敗」)、ステップS5611において表示内容54000が表示される。表示内容53000は、例えば、提示処理が完了した旨を示すテキストが表示されたブロック53001を含む。
表示内容54000は、例えば、ブロック54001、ブロック54002、及びブロック54003を含む。ブロック54001には、例えば、検証に失敗したこと(又は提示処理に失敗したこと)を示すテキストが表示されている。ブロック54002には、例えば、検証をリトライするか尋ねるテキストが表示されている。ブロック54003には、「はい」の選択肢が表示されている。ブロック54004には、「いいえ」の選択肢が表示されている。
なお、ステップS5704に至るまでのいずれかの処理に失敗した場合、例えば、検証失敗の場合と同様、表示内容54000に遷移してもよい。この場合、どの処理に失敗したかをブロック54001に表示してもよい。
分岐59003は、表示内容54000における選択結果に関する分岐である。検証にリトライする場合、つまりブロック54003が選択された場合(分岐59003:「はい」)、表示内容52000に遷移する。検証にリトライしない場合、つまりブロック54004が選択された場合(分岐59003:「いいえ」)、表示内容55000に遷移する。
なお、表示内容51000が表示されるまでの処理の一例は以下の通りである。提示用装置600がカメラ等のセンサを備え、当該センサが、検証用装置700のディスプレイ画面に表示された2次元バーコード等のデータを読み取る。
当該データは、例えば、提示処理と発行処理のどちらを行うか、書類名、提示部分、及び提示先、等の情報が含まれるWebページへのURI(Uniform Resource Identifier)を示す。
提示用装置600は、当該センサにより取得されたURIに対応するWebページへアクセスすることにより、提示処理が行われること、提示する書類名、提示部分、及び提示先、等の情報を得ることができ、ブロック51002のテキストのような表示が可能となる。なお、提示処理と発行処理のどちらを行うか、書類名、提示部分、及び提示先、等の情報にアクセスするための手段は、2次元バーコードの読取に限らない任意の方法でよい。
[ユーザ鍵生成処理及びユーザ秘密鍵復元処理の具体例]
ステップS2202のユーザ鍵生成処理と、ステップS4502、ステップS5602、及びステップS6802のユーザ秘密鍵復元処理の具体例を述べる。なお、ユーザ秘密鍵復元処理の具体例は、ステップS4502に関して説明するものとし、ステップS5602及びステップS6802では、例えば、ステップS4502と同様の処理を行えばユーザ秘密鍵を復元出来る。
ステップS2202のユーザ鍵生成処理と、ステップS4502、ステップS5602、及びステップS6802のユーザ秘密鍵復元処理の具体例を述べる。なお、ユーザ秘密鍵復元処理の具体例は、ステップS4502に関して説明するものとし、ステップS5602及びステップS6802では、例えば、ステップS4502と同様の処理を行えばユーザ秘密鍵を復元出来る。
処理の内部では、例えば、バイオメトリック暗号方式が用いられる。バイオメトリック暗号方式は、登録処理において登録用特徴量x_E(「_」は下付き文字を示す)からヘルパーストリングc_Eと登録時秘密鍵s_Eを生成する。また、バイオメトリック暗号方式は、復元処理において、復元用特徴量x_Aとヘルパーストリングから復元時秘密鍵s_Aを生成する。
x_Eとx_Aが十分近いとき、s_E=s_Aとなる、すなわち登録時秘密鍵が復元される。バイオメトリック暗号方式として、Fuzzy Extractor、Fuzzy Signature、Fuzzy Commitment、Fuzzy Vault等の任意の方式を用いることができる。
ステップS2202において、ユーザ鍵生成部203は、登録用生体情報から登録用特徴量x_Eを生成し、バイオメトリック暗号方式の登録処理により登録用特徴量x_Eからヘルパーストリングc_Eと登録時秘密鍵s_Eを生成する。そのうえで、ユーザ鍵生成部203は、ヘルパーストリングc_Eを含むようにテンプレートTを定める。
テンプレートTには擬識別子と呼ばれるデータ(例えば、登録時秘密鍵s_Eのハッシュ値や、登録時秘密鍵s_Eに対応する公開鍵)が含まれていてもよい。一方、ユーザ鍵生成部203は、登録時秘密鍵s_Eを用いて、ユーザ公開鍵upkを生成する。その際に内部処理としてユーザ秘密鍵uskが生成される場合をこれ以降では説明するが、必ずしもユーザ秘密鍵uskが生成されなくてもよい。
ステップS4502において、ユーザ秘密鍵復元部503は、まず、発行用生体情報から、復元用特徴量x_Aを抽出し、x_Aと、Tに含まれるc_Eと、を用いて、バイオメトリック暗号方式の復元処理を行い、復元時秘密鍵s_Aを生成する。x_Eとx_Aが十分近いとき、s_E=s_Aとなる、すなわち、登録時秘密鍵が復元される。
なお、ユーザ秘密鍵復元部503は、正しくs_Eが復元されたかどうか擬識別子を用いて検証し、s_Eが復元されていない場合には処理を中止してもよい。当該処理を中止するかわりに、ステップS5611に進み、ユーザ秘密鍵復元に失敗した旨を出力してもよい。ユーザ秘密鍵復元部503は、登録時秘密鍵s_Eが正しく復元された場合、s_Eを用いて、(usk,upk)の生成方法に対応した鍵復元処理を行い、uskを復元する。
(usk,upk)の生成方法の1つ目の例として、ユーザ鍵生成部203は、任意の公開鍵暗号方式又は電子署名方式における鍵生成アルゴリズムにより秘密鍵sk1と公開鍵pk1のペアを生成する。ユーザ鍵生成部203は、usk:=sk1と定め、pk1を含むようにupkを定める。さらに、ユーザ鍵生成部203は、s_Eを用いてsk1を暗号化したデータEnc(s_E,sk1)を生成し、Enc(s_E,sk1)をテンプレートTに含める。この場合、鍵復元処理では、ユーザ秘密鍵復元部503は、復元されたs_Eを用いてEnc(s_E,sk1)からsk1を復元することで、uskが復元できる。
なお、sk1を複数個の秘密鍵からなる組とし、pk1がそれに対応する複数個の公開鍵の組としてもよい。これ以降の例でも、秘密鍵と公開鍵はそれぞれ複数個の鍵からなる組であってもよい。秘密鍵と公開鍵はそれぞれ複数個の鍵からなる場合、それらの中から所定のものを用いて暗号化、復号、電子署名生成、及び電子署名検証を行えばよい。
(usk,upk)の生成方法の2つ目の例として、ユーザ鍵生成部203は、s_Eに対して変換f_1(例えば、恒等変換又は疑似乱数生成器あるいはハッシュ関数による変換等)を用いて秘密鍵sk2:=f_1(s_E)によりsk2を生成し、sk2に対応する公開鍵pk2を生成し、usk:=sk2と定め、pk2を含むようにupkを定めてもよい。この場合、鍵復元処理では、ユーザ秘密鍵復元部503は、復元されたs_Eに対してf_1(s_E)を計算すればuskが復元できる。
なお、(usk,upk)の生成方法の1つ目の例と2つ目の例で得られるユーザ秘密鍵、ユーザ公開鍵をそれぞれ連結して得られるユーザ秘密鍵、ユーザ公開鍵が用いられてもよい。あるいは、バイオメトリック暗号方式の登録処理が、s_Eを指定したうえでテンプレートを生成できる方式の場合には、ユーザ鍵生成部203は、(usk,upk)を生成してから、s_Eがuskとなるようにc_Eを生成してもよい。この場合、鍵復元処理では、ユーザ秘密鍵復元部503は、s_Eを復元することでuskが復元できる。
あるいは、以下の例のように、1つ目の例と2つ目の例で述べた方法を組み合わせることで得られる方法が用いられてもよい。まず、ユーザ鍵生成部203は、任意の公開鍵暗号方式又は電子署名方式における鍵生成アルゴリズムにより秘密鍵sk1と公開鍵pk1のペアを生成する。さらに、ユーザ鍵生成部203は、s_Eに対して変換f_1(例えば、恒等変換又は疑似乱数生成器あるいはハッシュ関数による変換等)を用いて秘密鍵sk2:=f_1(s_E)によりsk2を生成し、sk2に対応する公開鍵pk2を生成する。そのうえで、ユーザ鍵生成部203は、usk:=(sk1,sk2)、upk:=(pk1,pk2)により、(usk,upk)を定める。さらに、ユーザ鍵生成部203は、sk2を用いてsk1を暗号化したデータEnc(sk2,sk1)を生成し、Enc(sk2,sk1)をテンプレートTに含める。この場合、鍵復元処理では、ユーザ秘密鍵復元部503は、復元されたs_Eからsk2:=f_1(s_E)によりsk2を復元し、さらに、復元されたsk2を用いてEnc(sk2,sk1)からsk1を復元することで、uskが復元できる。
この方法の場合、例えば、sk2をメッセージ復号処理に使用し、sk1を提示用証明生成処理に使用する等、sk1とsk2が異なる処理のために用いられてもよい。そのためには、例えば、sk2又はpk2によりメッセ―ジ暗号化処理が行われ、発行用証明生成処理がpk1を用いて行われるようにすればよい。この例に限らず、秘密鍵と公開鍵が複数の鍵からなる場合、各鍵が異なる処理のために用いられてもよい。
また、ユーザ秘密鍵生成のために、登録用生体情報に加えて、秘密情報(例えば、パスワードや、DBに格納された追加の秘密鍵等)が用いられてもよい。例えば、ユーザ鍵生成部203は、上記した方法で生成されたuskと秘密情報とを連結してできるデータに対し、ハッシュ関数等の任意の関数を用いた変換を行うことで得られる値を、改めてuskと定めればよい。この場合、ユーザ鍵生成部203は、改めて定義されたuskに対応するようにユーザ公開鍵を定めればよい。ユーザ秘密鍵復元部503は、当該秘密情報の入力を受け付け、提示用生体情報に加えて当該秘密情報を用いることでユーザ秘密鍵を復元できる。このように、ユーザ秘密鍵生成のために登録用生体情報に加えて秘密情報が用いられることで、ユーザ秘密鍵が不正に復元されるリスクを低減でき、安全性が向上する。
[ユーザ秘密鍵知識証明生成処理及び検証処理の具体例]
ステップS4503のユーザ秘密鍵知識証明生成処理と、ステップS4401のユーザ秘密鍵知識証明検証処理の具体例を述べる。
ステップS4503のユーザ秘密鍵知識証明生成処理と、ステップS4401のユーザ秘密鍵知識証明検証処理の具体例を述べる。
1つ目の具体例として、ユーザ秘密鍵知識証明生成部504は、Schnorr Protocol等の任意の知識証明プロトコルに従い知識証明を生成すればよい。この場合、ユーザ秘密鍵知識証明検証部402は、プロトコルで定義された検証処理を行うことで、知識証明が正しいかどうか検証できる。
2つ目の具体例として、ユーザ秘密鍵知識証明検証部402が乱数等のデータ(発行用チャレンジ)を取得用装置500に送信し、ユーザ秘密鍵知識証明生成部504が、ユーザ秘密鍵を用いて発行用チャレンジに対する電子署名を生成し、ユーザ秘密鍵知識証明検証部402が、発行用チャレンジと、送信されたユーザ公開鍵と、電子署名と、の関係を検証する。
[発行用証明生成、提示用証明生成、提示用証明検証処理の具体例]
ステップS4403の発行用証明生成と、ステップS5605の提示用証明生成と、ステップS5704の提示用証明検証処理の具体例を述べる。メッセージは、n個(nは正の整数)のメッセージ要素m[1],m[2],...,m[n]からなるとし、部分メッセージはm[i_1],m[i_2],...,m[i_k]からなるとする({i_1,i_2,...,i_k}は{1,2,...,n}の部分集合)。
ステップS4403の発行用証明生成と、ステップS5605の提示用証明生成と、ステップS5704の提示用証明検証処理の具体例を述べる。メッセージは、n個(nは正の整数)のメッセージ要素m[1],m[2],...,m[n]からなるとし、部分メッセージはm[i_1],m[i_2],...,m[i_k]からなるとする({i_1,i_2,...,i_k}は{1,2,...,n}の部分集合)。
提示用証明生成処理では、提示用証明生成部606が、ユーザ秘密鍵uskから、提示用証明生成用秘密鍵usk_Sをusk_S:=f_S(usk)により生成し、対応する公開鍵upk_Sがユーザ公開鍵upkに含まれているとする。関数f_Sの例として、恒等変換や、uskのうち所定の部分を選択する関数等が挙げられる。
1つ目の具体例では、一般的な署名方式と、墨塗署名(Redactable Signature)方式と、を用いる。これらを説明する。
一般的な署名方式は、鍵ペア生成処理、電子署名生成処理、及び検証処理を含み、それぞれGen_S、Sig_S、Ver_Sと記す。各処理は以下の通りである。Gen_Sは、署名鍵sk_Sと検証鍵pk_Sとの組を(sk_S,pk_S)=Gen_S()により生成する。Sig_Sは、Q=Sig_S(sk_S,L)により、メッセージLに対するsk_Sによる電子署名Qを生成する。Ver_Sは、Result_S=Ver_S(pk_S,L,Q)により、検証結果Result_Sを出力する。Result_Sは検証成功又は検証失敗である。
墨塗署名方式は、鍵ペア生成処理、電子署名生成処理、墨塗処理、及び検証処理を含み、それぞれGen_R、Sig_R、Derive_R、Ver_Rと記す。各処理は以下の通りである。
Gen_Rは、署名鍵sk_Rと検証鍵pk_Rとの組を(sk_R,pk_R)=Gen_R()により生成する処理である。Sig_Rは、N個(Nは正の整数)のメッセージ要素からなるメッセージ(M[1],M[2],...,M[N])に対しQ_1=Sig_R(sk_R,(M[1],M[2],...,M[N]))により、(M[1],M[2],...,M[N])に対するsk_Rによる電子署名Q_1を生成する処理である。
Derive_Rは、Q_2=Derive_R({I_1,I_2,...,I_K},(M[1],M[2],...,M[N]),Q_1)により、(M[I_1],M[I_2],...,M[I_K])に対するsk_Rによる電子署名Q_2を生成する処理である。ただし、KはN以下の正の整数であり、{I_1,I_2,...,I_K}は{1,2,...,N}の部分集合である。sk_Rを必要とせずにsk_Rによる電子署名Q_2の生成が可能であることが、墨塗署名方式の特徴である。
Ver_Rは、Result_R=Ver_R(pk_R,(M[I_1],M[I_2],...,M[I_K]),Q_2)により、検証結果Result_Rを出力する処理である。Result_Rは検証成功又は検証失敗である。
これらを用いた1つ目の具体例を説明する。まず、(usk_S,upk_S)は、Gen_S()により生成される鍵ペアと同じ形式となるよう作成されるとする。また、ステップS1101の発行者鍵生成処理において、発行者鍵生成部102は、Gen_Rにより鍵ペア(isk_R,ipk_R)を生成し、isk_Rを発行者秘密鍵に含め、ipk_Rを発行者公開鍵に含める。
ステップS4403の発行用証明生成処理では、発行用証明生成部404が、q_11=Sig_R(isk_R,(m[1],m[2],...,m[n],upk_S))により電子署名q_11を生成し、電子署名q_11を含むように発行用証明を生成する。
ステップS5605の提示用証明生成処理とステップS5704の提示用証明検証処理では、例えば、以下の処理を実行する。まず、提示用証明検証部704が、乱数等のデータ(提示用チャレンジ)R_2を生成し、提示用装置600に送信する。提示用証明生成部606は、q_12=Derive_R({i_1,i_2,...,i_k,n+1},(m[1],m[2],...,m[n],upk_S),q_11)により、(m[i_1],m[i_2],...,m[i_k],upk_S)に対するisk_Rによる電子署名q_12を生成する。また、提示用証明生成部606は、q_13=Sig_S(usk_S,R_2)により、R_2に対するusk_Sによる電子署名q_13を生成する。提示用証明生成部606は、q_12とq_13とupk_Sを含むように提示用証明を生成する。
そのうえで、提示用証明検証部704が、Result_S=Ver_S(upk_S,R_2,q_13)及びResult_R=Ver_R(ipk_R,(m[i_1],m[i_2],...,m[i_k],upk_S),q_12)によりResult_SとResult_Rを定め、Result_SとResult_Rの両方が検証成功のとき検証成功とし、そうでないとき検証失敗とする。Result_Sは、提示されたユーザ公開鍵upk_Sに対応するユーザ秘密鍵usk_Sが提示用証明生成のために用いられているかを検証することを示す。Result_Rは、提示された部分メッセージとupk_Sは確かに発行者により指定された正しい値であるかを検証することを示す。
特に、電子署名q_11の生成方法として一般的な署名方式を用いることができる。例えば、n個の乱数r[1],r[2],...,r[n]を生成し、各i=1,2,...,nに対しh_i:=Hash(m[i],r[i])と定義し、h_1,h_2,...,h_nを連結したデータに対するSig_Sによる電子署名をq_110とし、q_110と,h_1,h_2,...,h_nと,r_1,r_2,...,r_nとの組をq_11として定める方法が挙げられる。
このとき、q_12は,q_110と,h_1,h_2,...,h_nと,r_[i_1],r_[i_2],...,r_[i_k]と,の組として定めればよい。q_12の検証は、提示された各メッセージ要素に対する(h_i,m[i],r[i])の関係の検証と、q_110と(h_1,h_2,...,h_n)の関係の検証を行えばよい。
なお、これはあくまで一例であり、h_1,h_2,...,h_nに対して連結以外の処理を行うことで得られるデータが、q_110の生成のための署名対象データとして用いられてもよい。例えば、q_110を生成する際の署名対象として、Hash(h_1,h_2,...,h_n)が用いられてもよいし、Markle Hashと呼ばれる方式が用いられてもよい。
このようにすれば、各処理に任意の署名方式を用いることができるという効果がある。これにより、特殊な暗号演算及び署名演算を行うライブラリの利用や特殊な暗号演算及び署名演算の実装を不要とし、汎用的な暗号ライブラリ及び署名ライブラリ(例えば、RSA暗号、RSA署名機能を提供するライブラリ)により実装を行うことができる。
なお、R_2を検証用装置700から送信される乱数等のデータとすることにより、提示用証明を受け取った検証者が別の検証者に提示用証明を送信するという不正を困難とする効果がある。このような効果を得るために、q_13を生成するための署名対象文として、R_2の代わりに、またはR_2に追加で、検証者に関する情報(検証者の名称等)や、提示日時等のデータR_3を含めてもよい。R_3を提示用装置600が生成する場合は、提示用証明にR_3も含めることにより、検証用装置700でのq_13の検証が可能となるようにする。また、ユーザによる提示同意をより明確にするため、q_13を生成するための署名対象文に、提示対象である部分メッセージを含めてもよい。
2つ目の具体例を述べる。2つ目の具体例は、非特許文献2等に記載されたACSを用いた方法である。ステップS4403の発行用証明生成処理では、発行用証明生成部404が、発行者秘密鍵iskと、ユーザ公開鍵の一部であるupk_Sと、メッセージ(m[1],m[2],...,m[n])と、を用いて、発行用証明を生成する。
例えば、発行用証明生成部404は、(m[1],m[2],...,m[n],usk_S)に対するiskによる電子署名q_21を生成する。非特許文献2の方法を用いれば、このような電子署名の生成が可能であり、さらに墨塗署名の性質をもつようにできる。
ステップS5605の提示用証明生成処理において、提示用証明生成部606は、必要に応じて検証用装置700との間で通信を行い、メッセージと、ユーザ秘密鍵と、提示部分と、発行用証明と、を用いて提示用証明を生成する。例えば、提示用証明生成部606は、(m[i_1],m[i_2],...,m[i_k],usk_S)に対するiskによる電子署名q_22を生成し、さらに、usk_Sの知識証明q_23を生成し、q_22,q_23を含むように提示用証明を生成する。
ステップS5704の提示用証明検証処理において、提示用証明検証部704は、提示された部分メッセージと、提示用証明と、発行者公開鍵と、の関係を検証し、検証成功又は検証失敗を出力する。例えば、提示用証明検証部704は、(m[i_1],m[i_2],...,m[i_k])と、(q_22,q_23)と、ipkとの関係を検証し、検証成功又は検証失敗を出力する。
この方法では、(m[i_1],m[i_2],...,m[i_k])が改ざんされていれば検証成功となるのは困難であり、また、usk_Sを知らなければ検証に成功するようなq_23を生成することは困難である。また、提示用証明生成の際に、提示用証明生成部606は、検証用装置700から送信された乱数(提示用チャレンジの一例)を用いて提示用証明を生成する。このため、検証者がユーザになりすまして別の検証者に提示する攻撃に対するリスクを低減できる。
[テンプレート検証処理の具体例]
ステップS5604のテンプレート検証処理の1つ目の具体例を述べる。まず、予め、ステップS4504において、取得用装置通信部501が、テンプレートTに対し所定の関数f_2(例えば、ハッシュ関数)を用いて計算された関数値f_2(T)を発行用装置400に送信する。そのうえで、ステップS4402において、メッセージ取得部403が、関数値f_2(T)をメッセージ要素として含むようにメッセージを定める。
ステップS5604のテンプレート検証処理の1つ目の具体例を述べる。まず、予め、ステップS4504において、取得用装置通信部501が、テンプレートTに対し所定の関数f_2(例えば、ハッシュ関数)を用いて計算された関数値f_2(T)を発行用装置400に送信する。そのうえで、ステップS4402において、メッセージ取得部403が、関数値f_2(T)をメッセージ要素として含むようにメッセージを定める。
そのうえで、ステップS5604において、テンプレート検証部605は、送信されたテンプレートに対しf_2を用いて関数値を計算し、メッセージに含まれるf_2(T)の値と等しいか検証する。さらに、テンプレート検証部605は、メッセージに含まれる関数値f_2(T)と発行用証明の関係を検証することにより、メッセージに含まれる関数値f_2(T)が改ざんされていないかを検証する。テンプレート検証部605は、この2つの検証に成功した場合、検証成功とし、いずれかに失敗した場合、検証失敗とする。
ステップS5604のテンプレート検証処理の2つ目の具体例を述べる。2つ目の具体例では、テンプレート検証部605は、テンプレートのデータの値の正当性を検証する。登録用特徴量x_Eが線形空間Xに属するとする。SをXの部分空間とする。ヘルパーストリングc_Eが、c_E:=x_E-CV(x_E)により生成され、テンプレートTがc_Eを含む場合を考える。ただし、CV(x_E)は、x_Eに最も近いSの点を表すとする。このとき、テンプレートTに含まれるc_Eは、CV(c_E)=0を満たすことが必要である。そこで、テンプレート検証部605は、この条件が成り立つかどうか検証することにより、c_Eが不正でないかを確認できる。
ステップS5604のテンプレート検証処理の3つ目の具体例を述べる。3つ目の具体例でも、テンプレート検証部605は、テンプレートのデータの値の正当性を検証する。登録用特徴量x_Eがt次元実数値ベクトルであるとする。ヘルパーストリングc_Eが、t次元正則行列Bを用いて、c_E:=x_E-B*<B^(-1)*x_E>により生成され、テンプレートTがc_Eを含む場合を考える。ただし、*は行列とベクトルの積であり、<>は、ベクトルの各成分の小数点部分を切り捨てる処理を表す。このとき、テンプレートTに含まれるc_Eは、B^(-1)*c_Eの各成分が0以上1未満である必要がある。そこで、テンプレート検証部605は、この条件が成り立つかどうか検証することにより、c_Eが不正でないかを確認できる。
[処理フローの変更例]
上記した処理フローにおいて、処理の一部を変更することもできる。例えば以下のような変更が挙げられる。
上記した処理フローにおいて、処理の一部を変更することもできる。例えば以下のような変更が挙げられる。
ユーザ第1DB903が公開されている場合は、ステップS4403の発行用証明生成処理において、発行用証明生成部404は、ユーザ公開鍵を用いる代わりに、ユーザ公開鍵を特定できる情報を用いてもよい。ユーザ公開鍵を特定できる情報として、例えば、ユーザ第1DB903の場所が挙げられる。また、ユーザ第1DB903に複数ユーザのユーザ公開鍵が格納されている場合、ユーザ公開鍵を特定できる情報として、どのユーザ公開鍵かを特定するためのユーザID等の情報が挙げられる。
また、ステップS4503のユーザ秘密鍵知識証明生成処理と、ステップS4401のユーザ秘密鍵知識検証処理と、は省略されてもよい。ただし、これらの処理を行うことにより、ステップS4504で送信されたユーザ公開鍵に対応する正当なユーザにより処理が行われていることが検証できる。
また、ステップS4403の発行用証明生成処理の一部又は全部を、発行者秘密鍵格納用DB901が行ってもよい。例えば、発行用証明生成処理に、発行者秘密鍵を用いた署名生成処理が含まれる場合、発行用装置400は、署名対象となるデータを発行者秘密鍵格納用DB901に送信し、発行者秘密鍵格納用DB901は当該署名生成処理を行って得られる電子署名を発行用装置400に送信し、発行用装置400が電子署名を用いて発行用証明生成処理のうちの残りの処理を行うようにしてもよい。このようにすることで、発行者秘密鍵が発行者秘密鍵格納用DB901の外部に送信されることが無くなり、安全性が向上する。
また、ステップS4404のメッセージ暗号化処理は、発行用装置400の代わりに、ユーザ第2DB906が行ってもよい。その場合、ステップS4405では、発行用装置通信部401が、暗号化メッセージの代わりに、メッセージを送信する。あるいは、ステップS4405で、発行用装置通信部401が、メッセージを取得用装置500に送信し、取得用装置500がメッセージ暗号化処理を行ってもよい。この場合、ユーザ公開鍵を用いた公開鍵暗号化の代わりに、ユーザ秘密鍵を用いた共通鍵暗号化が行われてもよい。ただし、発行用装置400がステップS4404のメッセージ暗号化処理を行うことにより、発行用装置400からの通信においてもメッセージが保護されるという効果がある。
また、取得用装置500や提示用装置600が、発行されたメッセージと発行用証明の関係を検証してもよい。これにより、発行用証明が正当かどうか確認できる。メッセージと発行用証明のうち暗号化されているものがあれば、ユーザ秘密鍵を用いて復号すればよい。
また、提示部分は、提示するメッセージ要素を表すことに加えて、又は代えて、所定のメッセージ要素に対して、当該メッセージが所定の値と等しいかどうか、あるいは、所定の範囲に含まれた値かを尋ねる内容であってもよい。
例えば、M3:=(日立太郎、2000年1月1日、男、東京都千代田区丸の内一丁目6番6号)と定義し、構造情報S3を、S3:=(氏名、生年月日、性別、住所)と定義し、M3がS3の構造をしていることを検証用装置700が知っている場合に、提示部分を、M3の1番目のメッセージ要素と、M3のうち2番目が2002年1月1日よりも前の日付であるかどうかを尋ねる内容と、の組としてもよい。このとき、部分メッセージは、M3の1番目のメッセージ要素からなるメッセージとし、提示用証明に、2番目が2002年1月1日よりも前の日付であることの証明を含めればよい。このような証明が可能なACSとして、例えば、Function Credentialを用いればよい。
また、ステップS4404では、データ暗号化部405が、メッセージに加えて発行用証明を暗号化してもよい。この場合、ステップS5603の直前までの発行用証明に関する通信及び格納処理では、発行用証明の代わりに暗号化発行用証明が用いられ、ステップS5603のメッセージ復号処理において、データ復号部604は、メッセージに加えて暗号化発行用証明を復号し発行用証明を得る。メッセージと発行用証明は、個別に暗号化されてもよいし、まとめて暗号化されてもよい。また、上記したユーザ鍵生成方法の一例では、テンプレートが、暗号化されたユーザ秘密鍵の一部を含む。この一例において、テンプレートが暗号化されたユーザ秘密鍵の一部を含む代わりに、データ暗号化部405が、当該ユーザ秘密鍵の一部をメッセージとともに暗号化することにより暗号化メッセージを生成してもよい。この場合、ステップS5603のメッセージ復号処理により、当該ユーザ秘密鍵の一部が、メッセージとともに復号され、例えばステップS5605の提示用証明生成処理に用いることができる。なお、この場合、ステップS5602において、ユーザ秘密鍵復元部603は、ユーザ秘密鍵のうち当該ユーザ秘密鍵の一部を復元しなくてもよく、ユーザ秘密鍵のうちステップS5603のメッセージ復号処理に必要となる部分を復元すればよい。また、データ暗号化部405は、メッセージ及びユーザ秘密鍵の一部とともに、発行用証明を暗号化してもよい。
また、提示部分は、提示用装置600により指定されてもよい。このとき、例えば、ステップS5621の提示同意取得処理において、提示部分をユーザに選択させればよい。ステップS5608では、提示用装置通信部601が、必要ならば提示部分の情報を送信する。
また、提示処理において、提示用装置600は、ステップS4402で取得されるメッセージの必ずしもすべてを必要としない。例えば、発行用証明生成、提示用証明生成、提示用証明検証処理の1つ目の具体例で説明した方法のうち、一般的な署名方式を用いる方法では、メッセージのうちステップS5605、ステップS5606、ステップS5607、及びステップS5608の処理のために必要なのは、部分メッセージ(すなわち、メッセージのうち提示部分に対応するメッセージ要素からなる組)のみである。
このように、提示処理において、ステップS4402で取得されるメッセージのうち一部のみが必要とされる場合には、ステップS5603で復号されるメッセージ(「提示処理向けメッセージ」とも呼ぶ)は、ステップS4402で取得されるメッセージ(「発行処理向けメッセージ」とも呼ぶ)の一部のみであってもよい。
さらに、ステップS5961で送信される暗号化メッセージ(「提示処理向け暗号化メッセージ」とも呼ぶ)は、ステップS4404で生成された暗号化メッセージ(「発行処理向け暗号化メッセージ」とも呼ぶ)のうち必要な部分のみであってもよい。具体的には、提示処理向け暗号化メッセージは、発行処理向け暗号化メッセージのうち「発行処理向けメッセージのうち、ステップS5605、ステップS5606、ステップS5607、及びステップS5608の処理に必要な部分」を復号するために必要な部分のみであってもよい。
提示処理向け暗号化メッセージを発行処理向け暗号化メッセージの一部とし、提示処理向けメッセージを発行処理向けメッセージの一部とするような処理方法の一例を述べる。ステップS4404では、データ暗号化部405が、発行処理向けメッセージを複数ブロックに分割し(例えば、発行処理向けメッセージに含まれるメッセージ要素を各ブロックとし)、各ブロックを暗号化することで、複数ブロックからなる発行処理向け暗号化メッセージを生成する。
ステップS5961では、ユーザ第2DBが、発行処理向け暗号化メッセージのうち必要な部分を、提示処理向け暗号化メッセージとして提示用装置600に送信する。例えば上記の例のように、部分メッセージが提示処理向けメッセージに含まれれば十分である場合、ユーザ第2DBは、まず、ステップS5701で指定された提示部分を他装置(例えば、検証用装置700または提示用装置600)から受信する。次に、ユーザ第2DBは、提示部分をもとに、部分メッセージを構成するメッセージ要素を特定する。次に、ユーザ第2DBは、発行処理向け暗号化メッセージのうち、特定された各メッセージ要素に対応する暗号化メッセージのブロックを選択し、選択されたブロックを提示処理向け暗号化メッセージとして提示用装置600に送信する。
このように、発行処理向け暗号化メッセージのうち必要な部分のみをステップS5961で提示処理向け暗号化メッセージとして送信することにより、発行処理向けメッセージのうち提示処理向けメッセージに含まれない部分が漏洩するリスクを低減できる。
なお、提示処理向けメッセージと部分メッセージが一致する場合、ステップS5606において、部分メッセージ選択部607は、提示処理向けメッセージに含まれるすべてのメッセージ要素を、部分メッセージとして選択すればよい。
また、ステップS5607の部分メッセージ暗号化処理が実行されなくてもよい。その場合、ステップS5608では、提示用装置通信部601は、暗号化部分メッセージの代わりに、部分メッセージを送信し、ステップS5703の部分メッセージ復号処理は省略できる。
また、提示用装置600は、検証用装置700の正当性を検証するための認証を行ってもよい。検証者秘密鍵と検証者公開鍵の組は、当該認証のために用いることができる。例えば、提示用装置600が乱数等のチャレンジを生成して検証用装置700に送信し、検証用装置700が検証者秘密鍵の一部又は全部を用いて任意の署名アルゴリズムによる電子署名を生成し、提示用装置600が署名検証を行えばよい。あるいは、検証用装置700は、任意の知識証明プロトコルにより検証者秘密鍵の一部又は全部に関する知識を証明してもよい。
また、ステップS5609のログ暗号化処理では、ユーザ公開鍵又はユーザ秘密鍵による暗号化に代えて、システム管理者の秘密鍵又は公開鍵による暗号化が実行されてもよい。この場合の秘密鍵と公開鍵は、通常の公開鍵暗号における鍵ペアでもよいし、ユーザ登録処理と同様の処理により、システム管理者の生体情報から生成されるペアを用いてもよい。なお、生体情報から生成されるペアを用いる場合には、ステップS5609のログ暗号化処理において、ログ出力用生体情報取得部802は、システム管理者の生体情報を取得する。
また、検証者秘密鍵格納用DB904は、部分メッセージ復号部を備え、ステップS5703の部分メッセージ復号処理を、検証用装置700の代わりに、部分メッセージ復号部が行うようにしてもよい。これにより、検証者秘密鍵が検証者秘密鍵格納用DB904の外部に送信されることが無くなり、安全性が向上する。
また、発行処理の対象の本人確認するために、例えば、発行者又は発行用装置400が、ユーザに本人確認書類の提示を要求し、ユーザが当該本人確認書類を提示すればよい。提示方法は、対面でユーザから発行者によって提示する方法あってもよいし、取得用装置500が当該本人確認書類を写真等の電子データとして取得したうえで発行用装置400に送信するという方法でもよい。また、本人確認書類の提示に加えて、又は代えて、ユーザが既に発行を受けているメッセージに対する提示処理を行ってもよい。
また、本実施例において秘密鍵を用いた暗号化処理は、秘密鍵に対応する公開鍵を用いた暗号化処理に置き換えられてもよい。また、公開鍵を用いた暗号化処理は、秘密鍵を送信あるいは復元する処理と、送信あるいは復元された秘密鍵を用いた暗号化処理と、に置き換えられてもよい。ただし、この場合、送信される秘密鍵の漏洩リスクを低減するための対策(通信路の暗号化等)がなされることが望ましい。
また、発行者秘密鍵は、発行者秘密鍵格納用DB901に格納される代わりに、例えば以下のように、発行者生体情報から生成されてもよい。ステップS1101において、発行者鍵生成部102は、発行者から生体情報(発行者登録用生体情報)を取得し、ステップS2202のユーザ鍵生成処理と同様の処理を発行者登録用生体情報に対して行うことにより、発行者テンプレートと発行者公開鍵を生成する。発行者秘密鍵格納用DB901は、発行者秘密鍵の代わりに、生成された発行者テンプレートを格納する。
ステップS4911において、発行者秘密鍵格納用DB901は、発行者秘密鍵の代わりに、生成された発行者テンプレートを発行用装置400に送信する。ステップS4403において、発行用証明生成部404は、発行者から再度生体情報(発行者秘密鍵復元用生体情報)を取得し、ステップS4502のユーザ秘密鍵復元処理と同様の処理を発行者秘密鍵復元用生体情報及び発行者テンプレートに対して行うことにより、発行者秘密鍵を復元する。そのうえで、発行用証明生成部404は、復元された発行者秘密鍵を用いて、発行用証明を生成する。
このように、発行者秘密鍵を発行者生体情報から生成することにより、発行者秘密鍵の格納を不要とし、発行者秘密鍵漏洩リスクを低減する効果がある。同様に、検証者秘密鍵を検証者生体情報から生成することも可能であり、そのようにすることで、検証者秘密鍵漏洩リスクを低減する効果がある。なお、発行者秘密鍵や検証者秘密鍵の生成に用いられる生体情報の部位は、ユーザ秘密鍵の生成に用いられる生体情報の部位と必ずしも同一でなくてもよい。
[本実施例の効果]
本実施例により、ユーザが保存するデータ(具体的には、テンプレートと、暗号化メッセージと、ユーザ公開鍵と、発行用証明)がすべて漏洩しうる場合でも、安全性が保たれるという効果がある。
本実施例により、ユーザが保存するデータ(具体的には、テンプレートと、暗号化メッセージと、ユーザ公開鍵と、発行用証明)がすべて漏洩しうる場合でも、安全性が保たれるという効果がある。
まず、従来のACS等のシステムでは、ユーザが保存するデータが漏洩すると、メッセージのうち、提示した部分メッセージ以外の部分も漏洩する。一方、本実施例のメッセージ提示システム10では、ユーザが保存するデータが漏洩した場合でも、正規ユーザの生体情報が無ければ暗号化メッセージの復号が困難であるため、メッセージのうち、提示した部分メッセージ以外の部分の情報を得ることは困難である。
また、従来のACS等のシステムでは、ユーザが保存するデータが漏洩すると、当該データに含まれるユーザ秘密鍵を用いて不正なユーザによるなりすましが行われるおそれがある。一方、本実施例のメッセージ提示システム10では、ユーザが保存するデータが漏洩しても、正規のユーザの生体情報が無ければユーザ秘密鍵の復元は困難であるため、不正なユーザによるなりすましは困難である。
このように、ユーザが保存するデータ(具体的には、テンプレートと、暗号化メッセージと、ユーザ公開鍵と、発行用証明)がすべて漏洩しうる場合でも安全性が保たれることにより、これらのデータをクラウドストレージなどのオンライン上の場所に格納し、必ずしも限定的でない端末を提示用装置600として用いて処理を行うことができる。
ユーザが保存するデータが漏洩した場合の安全性が保たれないシステムでは、安全性のための対策として、ユーザが保存するデータを厳重に(例えばオフラインで)管理するという対策や、特定の端末に、ユーザが保存するデータに対する暗復号を行うための鍵を格納し、特定の端末のみから提示を行うという対策が考えられる。しかし、これらの対策ではユーザが特定の端末からしか提示処理を行えないという課題がある。このような課題も本実施例のメッセージ提示システム10によって解決される。
さらに、ステップS5605の提示用証明生成処理の際に、提示用証明生成部606は、検証用装置700から送信されたデータを用いて提示用証明を生成することにより、検証者がユーザになりすまして別の検証者に提示する攻撃に対するリスクを低減できる。また、ステップS5604のテンプレート検証処理が行われることにより、テンプレートを改ざんするような不正のリスクを低減できる。また、各処理の具体例に応じて、既に述べたような安全性向上の効果がある。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
10 メッセージ提示システム、100 発行者登録用装置、200 ユーザ登録用装置、300 検証者登録用装置、400 発行用装置、500 取得用装置、600 提示用装置、700 検証用装置、800 ログ出力用装置、901 発行者秘密鍵格納用DB、902 発行者公開鍵格納用DB、903 ユーザ第1DB、904 検証者秘密鍵格納用DB、905 検証者公開鍵格納用DB、906 ユーザ第2DB、907 ユーザ第3DB、10001 CPU、10002 メモリ、10003 補助記憶装置
Claims (11)
- メッセージ提示システムであって、
提示用装置を含み、
前記提示用装置は、
ユーザの登録用生体情報に基づき生成されたテンプレートと、
1以上のメッセージ要素を含むメッセージが暗号化された暗号化メッセージと、
前記テンプレートに対応するユーザ公開鍵、前記メッセージ、及び前記メッセージの発行主体に対応する発行者秘密鍵に基づき生成された発行用証明と、を保持し、
ユーザの提示用生体情報を取得し、
前記テンプレートと前記提示用生体情報とに基づき、前記ユーザ公開鍵に対応するユーザ秘密鍵を生成し、
前記ユーザ秘密鍵を用いた前記暗号化メッセージの復号によって、前記メッセージを復元し、
前記メッセージの中で提示される部分を特定する情報である提示部分に基づき前記メッセージから部分メッセージを生成し、
前記提示部分と、前記発行用証明と、前記ユーザ秘密鍵と、に基づき提示用証明を生成し、
前記部分メッセージと、前記提示用証明と、を出力する、メッセージ提示システム。 - 請求項1に記載のメッセージ提示システムであって、
検証用装置をさらに含み、
前記検証用装置は、提示用チャレンジを前記提示用装置に送信し、
前記提示用装置は、前記提示用チャレンジと、前記提示部分と、前記発行用証明と、前記生成した秘密鍵と、に基づき前記提示用証明を生成する、メッセージ提示システム。 - 請求項1に記載のメッセージ提示システムであって、
検証用装置をさらに含み、
前記検証用装置は、前記発行者秘密鍵に対応する発行者公開鍵と、前記提示部分と、を保持し、
前記提示用装置は、前記提示用証明を前記検証用装置に送信し、
前記検証用装置は、前記発行者公開鍵と、前記提示部分と、前記部分メッセージと、を用いて、前記提示用証明を検証する、メッセージ提示システム。 - 請求項1に記載のメッセージ提示システムであって、
前記提示用装置は、前記テンプレートが改ざんされていないかどうかを、前記テンプレートの生成アルゴリズムに基づいて検証し、前記検証に失敗した場合に前記提示用証明の生成処理を中止する、メッセージ提示システム。 - 請求項1に記載のメッセージ提示システムであって、
前記提示用装置は、
入力装置に接続され、
前記提示部分を出力するための同意の入力を、前記入力装置を介して受け付けた場合に、前記提示用生体情報の取得を実行する、メッセージ提示システム。 - 請求項5に記載のメッセージ提示システムであって、
前記提示用装置は、
前記同意の入力を受け付けるための表示画面を出力するためのデータを生成し、
前記表示画面は、前記提示部分のメッセージ要素を示す情報を含む、メッセージ提示システム。 - 請求項1に記載のメッセージ提示システムであって、
ログ出力用装置を含み、
前記ログ出力用装置は、
前記提示用装置が提示した前記提示部分の提示に関するログが、前記ユーザ公開鍵又は前記ユーザ秘密鍵によって暗号化された暗号化ログと、
前記テンプレートと、を保持し、
ユーザのログ出力用生体情報を取得し、
前記テンプレートと前記ログ出力用生体情報とに基づき、前記ユーザ秘密鍵を生成し、
当該ユーザ秘密鍵を用いて前記暗号化ログを復号し、
前記復号したログを出力する、メッセージ提示システム。 - 請求項1に記載のメッセージ提示システムであって、
検証者秘密鍵を保持する検証用装置をさらに含み、
前記提示用装置は、
前記検証者秘密鍵に対応する検証者公開鍵を保持し、
前記部分メッセージを前記検証者公開鍵により暗号化した状態で、前記検証用装置に出力する、メッセージ提示システム。 - 請求項1に記載のメッセージ提示システムであって、
DBをさらに含み、
前記発行用証明は、前記ユーザ公開鍵、前記メッセージを含む発行処理向けメッセージ、及び前記発行者秘密鍵に基づき生成され、
前記DBは、
前記発行処理向けメッセージが複数個に分割されて暗号化されることにより生成された発行処理向け暗号化メッセージを保持し、
前記発行処理向け暗号化メッセージの一部を前記暗号化メッセージとして選択し、前記提示用装置に送信する、メッセージ提示システム。 - メッセージを提示する提示用装置であって、
プロセッサと、メモリと、を含み、
前記メモリは、
ユーザの登録用生体情報に基づき生成されたテンプレートと、
1以上のメッセージ要素を含むメッセージが暗号化された暗号化メッセージと、
前記テンプレートに対応するユーザ公開鍵、前記メッセージ、及び前記メッセージの発行主体に対応する発行者秘密鍵に基づき生成された発行用証明と、を保持し、
前記プロセッサは、
ユーザの提示用生体情報を取得し、
前記テンプレートと前記提示用生体情報とに基づき、前記ユーザ公開鍵に対応するユーザ秘密鍵を生成し、
前記ユーザ秘密鍵を用いた前記暗号化メッセージの復号によって、前記メッセージを復元し、
前記メッセージの中で提示される部分を特定する情報である提示部分に基づき前記メッセージから部分メッセージを生成し、
前記提示部分と、前記発行用証明と、前記ユーザ秘密鍵と、に基づき提示用証明を生成し、
前記部分メッセージと、前記提示用証明と、を出力する、提示用装置。 - メッセージ提示システムによるメッセージ提示方法であって、
前記メッセージ提示システムは、提示用装置を含み、
前記提示用装置は、
ユーザの登録用生体情報に基づき生成されたテンプレートと、
1以上のメッセージ要素を含むメッセージが暗号化された暗号化メッセージと、
前記テンプレートに対応するユーザ公開鍵、前記メッセージ、及び前記メッセージの発行主体に対応する発行者秘密鍵に基づき生成された発行用証明と、を保持し、
前記メッセージ提示方法は、
前記提示用装置が、ユーザの提示用生体情報を取得し、
前記提示用装置が、前記テンプレートと前記提示用生体情報とに基づき、前記ユーザ公開鍵に対応するユーザ秘密鍵を生成し、
前記提示用装置が、前記ユーザ秘密鍵を用いた前記暗号化メッセージの復号によって、前記メッセージを復元し、
前記提示用装置が、前記メッセージの中で提示される部分を特定する情報である提示部分に基づき前記メッセージから部分メッセージを生成し、
前記提示用装置が、前記提示部分と、前記発行用証明と、前記ユーザ秘密鍵と、に基づき提示用証明を生成し、
前記提示用装置が、前記部分メッセージと、前記提示用証明と、を出力する、メッセージ提示方法。
Priority Applications (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022111731A JP7808001B2 (ja) | 2022-07-12 | 2022-07-12 | メッセージ提示システム、提示用装置、及びメッセージ提示方法 |
| KR1020247038961A KR20250002624A (ko) | 2022-07-12 | 2023-02-13 | 메시지 제시 시스템, 제시용 장치, 및 메시지 제시 방법 |
| US18/881,878 US20260019245A1 (en) | 2022-07-12 | 2023-02-13 | Message presentation system, presentation apparatus, and message presentation method |
| CN202380048001.0A CN119422349A (zh) | 2022-07-12 | 2023-02-13 | 消息提示系统、提示用装置及消息提示方法 |
| PCT/JP2023/004824 WO2024014017A1 (ja) | 2022-07-12 | 2023-02-13 | メッセージ提示システム、提示用装置、及びメッセージ提示方法 |
| EP23839197.3A EP4557659A1 (en) | 2022-07-12 | 2023-02-13 | Message presentation system, presentation device, and message presentation method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022111731A JP7808001B2 (ja) | 2022-07-12 | 2022-07-12 | メッセージ提示システム、提示用装置、及びメッセージ提示方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2024010408A JP2024010408A (ja) | 2024-01-24 |
| JP7808001B2 true JP7808001B2 (ja) | 2026-01-28 |
Family
ID=89536373
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022111731A Active JP7808001B2 (ja) | 2022-07-12 | 2022-07-12 | メッセージ提示システム、提示用装置、及びメッセージ提示方法 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US20260019245A1 (ja) |
| EP (1) | EP4557659A1 (ja) |
| JP (1) | JP7808001B2 (ja) |
| KR (1) | KR20250002624A (ja) |
| CN (1) | CN119422349A (ja) |
| WO (1) | WO2024014017A1 (ja) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2018207433A (ja) | 2017-06-09 | 2018-12-27 | 株式会社日立製作所 | 計算機システム、秘密情報の検証方法、及び計算機 |
| KR102008101B1 (ko) | 2018-06-28 | 2019-08-06 | 인하대학교 산학협력단 | 함수 암호를 이용한 안전한 바이오 인증 방법 |
-
2022
- 2022-07-12 JP JP2022111731A patent/JP7808001B2/ja active Active
-
2023
- 2023-02-13 WO PCT/JP2023/004824 patent/WO2024014017A1/ja not_active Ceased
- 2023-02-13 CN CN202380048001.0A patent/CN119422349A/zh active Pending
- 2023-02-13 EP EP23839197.3A patent/EP4557659A1/en active Pending
- 2023-02-13 US US18/881,878 patent/US20260019245A1/en active Pending
- 2023-02-13 KR KR1020247038961A patent/KR20250002624A/ko active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2018207433A (ja) | 2017-06-09 | 2018-12-27 | 株式会社日立製作所 | 計算機システム、秘密情報の検証方法、及び計算機 |
| KR102008101B1 (ko) | 2018-06-28 | 2019-08-06 | 인하대학교 산학협력단 | 함수 암호를 이용한 안전한 바이오 인증 방법 |
Non-Patent Citations (1)
| Title |
|---|
| 高谷 学,指静脈認証技術を活用した非接触型認証ソリューション,日立評論,日本,日立評論社,2021年11月20日,第103巻 第6号,pp. 91-96,[ISSN]0367-5874 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2024014017A1 (ja) | 2024-01-18 |
| JP2024010408A (ja) | 2024-01-24 |
| KR20250002624A (ko) | 2025-01-07 |
| CN119422349A (zh) | 2025-02-11 |
| EP4557659A1 (en) | 2025-05-21 |
| US20260019245A1 (en) | 2026-01-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8266439B2 (en) | Integrity verification of pseudonymized documents | |
| CN110519260B (zh) | 一种信息处理方法及信息处理装置 | |
| KR101863953B1 (ko) | 전자 서명 서비스 시스템 및 방법 | |
| CN100454274C (zh) | 利用验证过的打印机密钥的安全打印 | |
| US8195951B2 (en) | Data processing system for providing authorization keys | |
| US8369521B2 (en) | Smart card based encryption key and password generation and management | |
| EP2465246B1 (en) | Layered protection and validation of identity data delivered online via multiple intermediate clients | |
| WO2018145127A1 (en) | Electronic identification verification methods and systems with storage of certification records to a side chain | |
| JP7565868B2 (ja) | データ管理システム、データ管理方法、及びデータ管理プログラム | |
| JP6849862B2 (ja) | パスワード認証のための準同型暗号 | |
| CN106953732B (zh) | 芯片卡的密钥管理系统及方法 | |
| WO2006018890A1 (ja) | メモリカード、データ交換システム及びデータ交換方法 | |
| US12574230B2 (en) | Methods and arrangements for establishing digital identity | |
| CN108022194A (zh) | 执法记录仪及其数据安全处理方法、服务器及系统 | |
| CN112784284B (zh) | 加密处理系统、加密处理方法以及记录介质 | |
| JP4256361B2 (ja) | 認証管理方法及びシステム | |
| JP2020161945A (ja) | 暗号システム、ユーザ端末、ストレージ装置、暗号方法、認証方法、暗号プログラム、及び認証プログラム | |
| JP7808001B2 (ja) | メッセージ提示システム、提示用装置、及びメッセージ提示方法 | |
| JP7641926B2 (ja) | テンプレート管理システム及びテンプレート管理方法 | |
| WO2021019783A1 (ja) | 所有者同一性確認システム、端末および所有者同一性確認方法 | |
| KR101933090B1 (ko) | 전자 서명 제공 방법 및 그 서버 | |
| JP3791169B2 (ja) | 認証装置および方法 | |
| WO2024157662A1 (ja) | メッセージ提示システム及びメッセージ提示方法 | |
| RU2774807C2 (ru) | Гомоморфное шифрование для проверки подлинности с помощью пароля | |
| GB2643755A (en) | Method and system for implementing a privacy preserving, face-based protected public key infrastructure |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20250214 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20260106 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20260116 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7808001 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |