[go: up one dir, main page]

WO2024157662A1 - Message presentation system and message presentation method - Google Patents

Message presentation system and message presentation method Download PDF

Info

Publication number
WO2024157662A1
WO2024157662A1 PCT/JP2023/045460 JP2023045460W WO2024157662A1 WO 2024157662 A1 WO2024157662 A1 WO 2024157662A1 JP 2023045460 W JP2023045460 W JP 2023045460W WO 2024157662 A1 WO2024157662 A1 WO 2024157662A1
Authority
WO
WIPO (PCT)
Prior art keywords
message
encryption
key
presentation
owner
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.)
Ceased
Application number
PCT/JP2023/045460
Other languages
French (fr)
Japanese (ja)
Inventor
渉 中村
健太 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of WO2024157662A1 publication Critical patent/WO2024157662A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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

Definitions

  • the present invention relates to a message presentation system and a message presentation method.
  • a message presentation system in which a DB (Data Base) stores an encrypted message obtained by performing an encryption process on an electronically represented message, a user decrypts the encrypted message by performing a decryption process on the message, and the message or data calculated based on the message is presented to a third-party verifier.
  • DB Data Base
  • Non-Patent Document 1 discloses a method in which credentials are handled as an example of a message, an Identity Hub as an example of a DB stores encrypted credentials, and an identity entity as an example of a user decrypts the credentials and presents the decrypted credentials or data obtained based on the credentials.
  • Blockchain-enabled decentralized identity management The case of self-sovereign identity in public transportation
  • Blockchain Research and Applications, Volume 2, Issue 2, June 2021, [Retrieved December 2, 2022], Internet ⁇ https://www.sciencedirect.com/science/article/pii/S2096720921000099>
  • Non-Patent Document 1 the decrypted message appears temporarily on the presentation device used by the user for presentation. Therefore, if the presentation device is not properly managed, there is a possibility that the temporarily appearing message may be leaked. Therefore, one aspect of the present invention reduces the risk of message leakage from the DB and the risk of message leakage from the presentation device.
  • the message presentation system includes a DB that holds a first encrypted message generated by a first encryption process using a first encryption key for a message, an encryption device that holds a second encryption key, and a presentation device that holds a first decryption key corresponding to the first encryption key, the DB transmits the first encrypted message to the encryption device, the encryption device generates a doubly encrypted message by performing a second encryption process on the first encrypted message using the second encryption key, and transmits the doubly encrypted message to the presentation device, the presentation device generates a second encrypted message by performing a first decryption process on the doubly encrypted message using the first decryption key, generates a second encrypted message for transmission based on the second encrypted message such that a function value of the message according to a predetermined function can be restored by the second decryption key corresponding to the second encryption key, and outputs the second encrypted message for transmission.
  • the risk of message leakage from the DB and the risk of message leakage from the presentation device are reduced.
  • FIG. 1 is a block diagram showing a configuration example of a message presentation system according to a first embodiment.
  • 2 is a block diagram illustrating an example of a hardware configuration of a computer that constitutes each entity included in the message presentation system according to the first embodiment.
  • FIG. FIG. 11 is a sequence diagram illustrating an example of an issuer key pair process in the first embodiment.
  • FIG. 11 is a sequence diagram illustrating an example of an owner proof key pair generation process according to the first embodiment.
  • FIG. 11 is a sequence diagram illustrating an example of a first encryption key pair generation process in the first embodiment.
  • FIG. 11 is a sequence diagram illustrating an example of an issuing process in the first embodiment.
  • FIG. 11 is a sequence diagram illustrating an example of a presentation process according to the first embodiment.
  • FIG. 11 is a sequence diagram illustrating an example of a content confirmation process according to the first embodiment.
  • FIG. 11 is a block diagram showing a configuration example of a message presentation system according to a second embodiment.
  • FIG. 11 is a sequence diagram illustrating an example of an owner key generation process according to the second embodiment.
  • FIG. 11 is a sequence diagram illustrating an example of an owner key recovery process according to the second embodiment.
  • a message is any data such as a character string, an image, or a value that is electronically represented.
  • a name, address, date of birth, gender, purchase history, and credit card usage history that are electronically represented are all examples of messages.
  • any data for example, attribute information such as name, address, date of birth, and gender included in a driver's license
  • any certificate such as a driver's license, My Number card, employment history certificate, education certificate, course completion certificate, vaccination certificate, employee ID card, student ID card, and membership card that are electronically represented are all examples of messages.
  • messages are assumed to be electronically represented, and the provisos "electronically represented" will be omitted.
  • [System configuration] 1 is a block diagram showing a configuration example of a message presentation system.
  • the message presentation system 10 includes, for example, an issuer key pair generation device 100, an issuer private key DB 110, an issuer public key DB 120, an owner certification key pair generation device 130, an owner certification private key DB 140, an owner verification public key DB 150, a first encryption key pair generation device 160, a first encryption key DB 170, a first decryption key DB 180, an issuing device 200, a first encryption device 250, an encrypted message DB 260, a second encryption key pair generation device 300, a second encryption device 350, a presentation device 400, a verification device 450, and a content confirmation device 500.
  • the issuer key pair generation device 100, the issuer private key DB 110, the issuer public key DB 120, the owner certification key pair generation device 130, the owner certification private key DB 140, the owner verification public key DB 150, the first encryption key pair generation device 160, the first encryption key DB 170, the first decryption key DB 180, the issuing device 200, the first encryption device 250, the encrypted message DB 260, the second encryption key pair generation device 300, the second encryption device 350, the presentation device 400, the verification device 450, and the content confirmation device 500 are connected to each other via a network 900.
  • the network 900 may be wired or wireless.
  • the Internet, a local network within an organization, etc. are examples of the network 900.
  • the network within the device may also be considered to be part of the network 900.
  • the issuer key pair generation device 100 generates an issuer private key and an issuer public key.
  • the issuer key pair generation device 100 includes, for example, a communication unit 101 and an issuer key pair generation unit 102, both of which are functional units.
  • the issuer key pair generation device 100 is operated, for example, by a message issuer (hereinafter simply referred to as the "issuer") or a system administrator.
  • the issuer may be an individual, a public institution such as a national or local government, or an organization such as a private company.
  • the issuer private key is used to generate an issuance certificate.
  • the issuer public key is used to verify a presentation certificate generated based on the issuance certificate.
  • the owner proof key pair generating device 130 generates an owner proof private key and an owner verification public key.
  • the owner proof key pair generating device 130 includes, for example, a communication unit 131 and an owner proof key pair generating unit 132, both of which are functional units.
  • the owner proof key pair generating device 130 is operated, for example, by the owner of the message (hereinafter also simply referred to as the "owner") or a system administrator. However, the owner is also referred to as the owner even before the time when the message is owned (for example, the time when the message is stored in the encrypted message DB 260).
  • the owner proof private key is used for generating a presentation proof, etc.
  • the first encryption key pair generation device 160 generates a first encryption key and a first decryption key.
  • the first encryption key pair generation device 160 includes, for example, a communication unit 161 and a first encryption key pair generation unit 162, both of which are functional units.
  • the first encryption key pair generation device 160 is operated, for example, by the owner or a system administrator.
  • the first encryption key is used in the first encryption process for the message and issuance certificate
  • the first decryption key is used in the first decryption process for the first encrypted message, the first encrypted issuance certificate, and the doubly encrypted message.
  • the issuing device 200 generates a message and an issuance certificate.
  • the issuing device 200 includes, for example, a communication unit 201, a message generation unit 202, and an issuance certificate generation unit 203, which are all functional units.
  • the issuing device 200 is operated, for example, by an issuer.
  • the first encryption device 250 performs a first encryption process on the message and the issuance certificate to generate a first encrypted message and a first encrypted issuance certificate.
  • the first encryption device 250 includes, for example, a communication unit 251 and a first encryption unit 252, both of which are functional units.
  • the first encryption device 250 is operated, for example, by the issuer or the owner.
  • the first encryption device 250 may be a terminal that is physically the same as the issuing device 200 or the encrypted message DB 260.
  • the second encryption key pair generation device 300 generates a second encryption key and a second decryption key.
  • the second encryption key pair generation device 300 includes, for example, a communication unit 301 and a second encryption key pair generation unit 302, both of which are functional units.
  • the second encryption key pair generation device 300 receives a request for a second encryption key pair generation process from another entity (for example, the second encryption device 350, the presentation device 400, the verification device 450, or the encrypted message DB 260) and performs the process.
  • the second encryption key pair generation device 300 may be a terminal that is physically the same as the second encryption device 350, the verification device 450, or the encrypted message DB 260.
  • the second encryption key is used in the second encryption process for the first encrypted message.
  • the second decryption key is used in the second decryption process for the converted second encrypted message.
  • the second encryption device 350 performs a second encryption process on the first encrypted message to generate a doubly encrypted message.
  • the second encryption device 350 includes, for example, a communication unit 351 and a second encryption unit 352, both of which are functional units.
  • the second encryption device 350 performs the process upon receiving a request for the second encryption process from, for example, another entity (for example, the second encryption key pair generation device 300, the presentation device 400, the verification device 450, or the encrypted message DB 260).
  • the second encryption device 350 may be a terminal that is physically the same as the second encryption key pair generation device 300 or the encrypted message DB 260.
  • the presentation device 400 performs a first decryption process on the doubly encrypted message and the first encrypted issuance certificate to generate a second encrypted message and restore the issuance certificate, and then performs a presentation conversion on the second encrypted message to generate a converted second encrypted message and further generate a presentation certificate.
  • the presentation device 400 includes, for example, a communication unit 401, a first decryption unit 402, a presentation conversion unit 403, and a presentation certificate generation unit 404, all of which are functional units.
  • the presentation device 400 is operated, for example, by the owner.
  • the verification device 450 restores the function value of the message by performing a second decryption process on the converted second encrypted message. Then, the verification device 450 performs a verification process using the restored function value of the message and the presentation proof to verify whether the function value of the message (or the message itself) has been presented by a legitimate owner.
  • the verification device 450 includes, for example, a communication unit 451, a second decryption unit 452, a verification unit 453, and an output unit 454, all of which are functional units.
  • the verification device 450 is operated, for example, by a person to whom the function value of the message is presented (hereinafter also referred to as a "verifier").
  • the content confirmation device 500 restores the first encrypted message by performing a first decryption process on the first encrypted message.
  • the content confirmation device 500 includes, for example, a communication unit 501, a first decryption unit 502, and an output unit 503, all of which are functional units.
  • the content confirmation device 500 is operated, for example, by an owner and used to confirm the contents of a message owned by the owner. Since the message is decrypted in the content confirmation device 500, it is desirable that the content confirmation device 500 be a device that is more secure against information leakage than the presentation device 400.
  • each device may receive processing requests from other entities and perform some or all of the processing automatically in response to the requests.
  • Each private key should be managed so that it is accessible from a device using the private key when the device is operated or managed by a legitimate person, but is difficult to access in other cases.
  • any authentication means can be used, for example, using a password, a physical token, biometric information, or a combination of these.
  • Each public key may be made public, and it is sufficient that it is accessible at least from a device using the public key.
  • the management method for each decryption key is, for example, the same as the management method for each private key.
  • the first encryption key is an encryption key in a public key cryptosystem
  • the first encryption key can be made public.
  • the management method of the first encryption key is, for example, the same as the management method of each private key.
  • the system may not have the first encryption key DB 170 and may perform encryption processing using the first decryption key.
  • FIG. 2 is a block diagram showing an example of the hardware configuration of the computers constituting each entity included in the message presentation system 10 in the first embodiment.
  • the computer 10000 has, for example, a CPU (Central Processing Unit) 10001, a memory 10002, an auxiliary storage device 10003, an input device 10004, an output device 10005, a communication device 10006, and a reading device 10007.
  • a CPU Central Processing Unit
  • the CPU 10001 includes a processor and executes programs stored in the memory 10002.
  • the memory 10002 includes a ROM (Read Only Memory), which is a non-volatile storage element, and a RAM (Random Access Memory), which is a volatile storage element.
  • the ROM stores immutable programs (e.g., BIOS (Basic Input/Output System)).
  • BIOS Basic Input/Output System
  • the RAM is a high-speed, volatile storage element such as a DRAM (Dynamic Random Access Memory), and temporarily stores programs executed by the CPU 10001 and data used when the programs are executed.
  • the auxiliary storage device 10003 is, for example, a large-capacity, non-volatile storage device such as a magnetic storage device (HDD (Hard Disk Drive)) or a flash memory (SSD (Solid State Drive)), and stores the programs executed by the CPU 10001 and data used when the programs are executed. In other words, the programs are read from the auxiliary storage device 10003, loaded into the memory 10002, and executed by the CPU 10001.
  • HDD Hard Disk Drive
  • SSD Solid State Drive
  • the input device 10004 is a device, such as a keyboard or mouse, that receives input from an operator.
  • the output device 10005 is a device, such as a display device or printer, that outputs the results of program execution in a format that can be viewed by the operator.
  • the communication device 10006 is a network interface device that controls communication with other devices according to a specific protocol.
  • the communication device 10006 may also include a serial interface such as a Universal Serial Bus (USB).
  • USB Universal Serial Bus
  • a part or all of the programs executed by the CPU 10001 may be provided to the computer 10000 via a network from a removable medium (CD-ROM, flash memory, etc.) that is a non-transitory storage medium, or from an external computer equipped with a non-transitory storage device, and may be stored in a non-volatile auxiliary storage device 10003 that is a non-transitory storage medium.
  • the reading device 10007 is, for example, an interface device that reads data from such removable media.
  • Each entity is a computer system configured on one physical computer 10000, or on multiple computers 10000 configured logically or physically, and may operate in separate threads on the same computer 10000, or may operate on a virtual computer constructed on multiple physical computer resources.
  • the CPU 10001 included in the computer 10000 constituting each device includes the functional units of the device described in FIG. 1.
  • the CPU 10001 included in the computer 10000 constituting the issuer key pair generation device 100 includes, for example, a communication unit 101 and an issuer key pair generation unit 102.
  • the CPU 10001 included in the computer 10000 constituting the issuer key pair generation device 100 functions as the communication unit 101 by operating according to a communication program loaded into a memory 10002 included in the computer 10000, and functions as the issuer key pair generation unit 102 by operating according to an issuer key pair generation program loaded into the memory 10002.
  • the relationship between the program and the functional unit is similar for other functional units included in the CPU 10001 included in the computer 10000 constituting other devices.
  • each device may be realized by hardware such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field-Programmable Gate Array).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field-Programmable Gate Array
  • the information held by each entity included in the message presentation system 10 is stored in the memory 10002 or auxiliary storage device 10003 of the computer 10000 constituting the entity.
  • the information used by the message presentation system 10 may be expressed in any data structure independent of the data structure.
  • the information may be stored in a data structure appropriately selected from a list, a table, a database, or a queue.
  • some or all of the DBs included in the message presentation system 10 may be realized by IC (Integrated Circuit) cards or removable media.
  • the device instead of each device sending data to a DB, the device writes the data to the IC card or removable media, and instead of each DB sending data to each device, the device reads the data from the IC card or removable media.
  • the encrypted message DB 260 transmits the first encrypted message to the second encryption device 350.
  • the second encryption device 350 generates a doubly encrypted message by performing a second encryption process on the first encrypted message, and transmits it to the presentation device 400.
  • the presentation device 400 generates a second encrypted message by performing a first decryption process on the doubly encrypted message, and transmits it to the verification device 450.
  • the verification device 450 decrypts the message by performing a second decryption process on the second encrypted message. In this manner, the message is presented from the presentation device 400 to the verification device 450.
  • the message itself is not sent from the presentation device 400 to the verification device 450, but rather a second encrypted message is sent.
  • the objective may be to present a function value of a message.
  • a message may consist of a pair of two values (m_1, m_2), and the objective is to present m_1+m_2 as the function value.
  • the symbol "_" represents a subscript. Presenting the function value of a message, rather than the message itself, is effective in preventing the owner from presenting more information than necessary when the verifier requests the presentation of the function value of the message.
  • the presentation transformation is an identity transformation (including the case where the presentation transformation is not executed) and the function value of the message is the message itself.
  • the encrypted message DB 260 transmits a first encrypted message to the second encryption device 350.
  • the second encryption device 350 generates a doubly encrypted message by performing a second encryption process on the first encrypted message, and transmits the message to the presentation device 400.
  • the presentation device 400 generates a second encrypted message by performing a first decryption process on the doubly encrypted message.
  • the presentation device 400 generates a converted second encrypted message by performing a presentation conversion on the second encrypted message, and transmits the converted message to the verification device 450.
  • the verification device 450 decrypts the functional value of the message by performing a second decryption process on the converted second encrypted message. In this way, the functional value of the message is presented from the presentation device 400 to the verification device 450.
  • the issuing device 200 generates an issuance proof together with the message.
  • the issuance proof is information for proving, for example, the contents of the message and the legitimacy of the owner.
  • the presentation device 400 generates a presentation proof based on the issuance proof.
  • the presentation proof is information for proving, for example, the legitimacy of the function value of the presented message and that the presentation process is being performed by the correct owner.
  • This processing flow for messages, issuance proofs, and presentation proofs can be used, for example, in systems related to self-sovereign identity and decentralized identity.
  • the process in which a message is generated together with an issuance certificate by the issuing device 200 is merely one example, and the present invention can be used for any message, not just messages generated in this way.
  • the first encryption device 250 receives the message, and each entity performs the same process as in this embodiment as the subsequent process.
  • the issuance certificate does not necessarily have to be generated.
  • the message presentation system 10 may omit subsequent processing related to the issuance certificate, and may also omit the generation and storage of the issuer key pair.
  • the message presentation system 10 may not be provided with a functional unit and DB corresponding to each omitted process.
  • the message presentation system 10 may generate a presentation certificate even when the issuance certificate is not generated.
  • the message presentation system 10 may omit subsequent processing related to the presentation certificate (e.g., the verification process by the verification device 450), and may also omit the generation and storage of the owner certification key pair.
  • [Processing flow] 3 is a sequence diagram showing an example of an issuer key pair generation process in the embodiment 1.
  • the issuer key pair generation unit 102 generates an issuer private key and an issuer public key.
  • step S1102 the communication unit 101 of the issuer key pair generation device 100 transmits the generated issuer private key to the issuer private key DB 110.
  • step S1111 the issuer private key DB 110 stores the issuer private key.
  • step S1103 communication unit 101 of issuer key pair generation device 100 transmits the generated issuer public key to issuer public key DB 120.
  • step S1121 issuer public key DB 120 stores the issuer public key.
  • FIG. 4 is a sequence diagram showing an example of an owner certification key pair generation process in the first embodiment.
  • the owner certification key pair generation unit 132 generates an owner certification private key and an owner verification public key.
  • step S2132 the communication unit 131 of the owner certification key pair generation device 130 transmits the generated owner certification private key to the owner certification private key DB 140.
  • step S2141 the owner certification private key DB 140 stores the owner certification private key.
  • step S2133 the communication unit 131 of the owner verification key pair generation device 130 transmits the generated owner verification public key to the owner verification public key DB 150.
  • step S2151 the owner verification public key DB 150 stores the owner verification public key.
  • FIG. 5 is a sequence diagram showing an example of a first encryption key pair generation process in the first embodiment.
  • the first encryption key pair generation unit 162 performs a key pair generation process of the first encryption method to generate a first encryption key and a first decryption key.
  • a specific example of the first encryption method will be described later.
  • step S3162 the communication unit 161 of the first encryption key pair generation device 160 transmits the generated first encryption key to the first encryption key DB 170.
  • step S3171 the first encryption key DB 170 stores the first encryption key.
  • step S3163 the communication unit 161 of the first encryption key pair generation device 160 transmits the generated first decryption key to the first decryption key DB 180.
  • step S3181 the first decryption key DB 180 stores the first decryption key.
  • FIG. 6 is a sequence diagram showing an example of an issuance process in the first embodiment.
  • the issuer private key DB 110 transmits the stored issuer private key to the issuing device 200.
  • step S4201 the message generating unit 202 generates a message.
  • step S4151 the owner verification public key DB 150 transmits the stored owner verification public key to the issuing device 200. Note that in order to confirm whether the transmitted owner verification public key belongs to the owner who is the subject of the issuance process, the issuing device 200 may use a method such as requesting the owner verification private key DB 140 for that owner to transmit a knowledge proof of the owner verification private key and verifying the knowledge proof of the received owner verification private key.
  • step S4202 the issuance certificate generation unit 203 generates an issuance certificate using the issuer private key, the owner verification public key, and the generated message. Note that the issuance certificate generation unit 203 does not need to use the owner verification public key to generate the issuance certificate, but using the owner verification public key allows the verifier to verify information about the owner to whom the certificate is issued. If the owner verification public key is not used, the message presentation system 10 may omit the processing of step S4151.
  • step S4203 the communication unit 201 of the issuing device 200 transmits the generated message and the issuance certificate to the first encryption device 250.
  • step S4171 the first encryption key DB 170 transmits the stored first encryption key to the first encryption device 250.
  • the first encryption unit 252 performs a first encryption process using a first encryption key on the generated message to generate a first encrypted message.
  • the first encryption unit 252 also performs a first encryption process using the first encryption key on the generated issuance certificate to generate a first encrypted issuance certificate.
  • the first encryption process is, for example, an encryption process using the first encryption method.
  • step S4252 the communication unit 251 of the first encryption device 250 transmits the generated first encrypted message and the first encryption issuance certificate to the encrypted message DB 260.
  • step S4261 the encrypted message DB 260 stores the first encrypted message and the first encryption issuance certificate.
  • FIG. 7 is a sequence diagram showing an example of the presentation process in the first embodiment.
  • the encrypted message DB 260 transmits the stored first encrypted message to the second encryption device 350.
  • the encrypted message DB 260 transmits the stored first encryption issuance proof to the presentation device 400.
  • step S5301 the second encryption key pair generation unit 302 performs a key pair generation process for the second encryption method to generate a second encryption key and a second decryption key.
  • the communication unit 301 of the second encryption key pair generation device 300 transmits the generated second encryption key to the second encryption device 350.
  • step S5303 the communication unit 301 of the second encryption key pair generation device 300 transmits the generated second decryption key to the verification device 450.
  • step S5351 the second encryption unit 352 performs a second encryption process on the first encrypted message using a second encryption key, thereby generating a doubly encrypted message.
  • An example of the second encryption process is an encryption process using the second encryption method.
  • the second encryption process may be an internal encryption process, which will be described later.
  • step S5352 the communication unit 351 of the second encryption device 350 transmits the generated double encrypted message to the presentation device 400.
  • the first decryption key DB 180 transmits the stored first decryption key to the presentation device 400.
  • step S5141 the owner certification private key DB 140 transmits the stored owner certification private key to the presentation device 400.
  • step S5401 the first decryption unit 402 performs a first decryption process on the doubly encrypted message using the first decryption key to generate a second encrypted message.
  • An example of the first decryption process is a decryption process using the first encryption method.
  • the first decryption unit 402 also performs a decryption process using the first encryption method on the first encrypted issuance certificate using the first decryption key to restore the issuance certificate.
  • step S5402 the presentation conversion unit 403 performs a presentation conversion using the generated second encrypted message and the restored issuance certificate to generate a converted second encrypted message.
  • step S5403 the communication unit 401 of the presentation device 400 transmits the generated converted second encrypted message to the verification device 450.
  • the presentation conversion is an identity conversion (including the case where the presentation conversion is not performed)
  • the converted second encrypted message is the same as the second encrypted message.
  • a second encrypted message generated using a presentation conversion other than an identity conversion and a second encrypted message generated using an identity conversion (including the case where the presentation conversion is not performed) are collectively referred to simply as a second encrypted message or as a transmission second encrypted message.
  • step S5404 the presentation proof generating unit 404 generates a presentation proof.
  • the presentation proof generating unit 404 may use at least one of the second encrypted message and the issuance proof, or may receive data such as a random number from the verification device 450 and use the received data.
  • the communication unit 401 of the presentation device 400 transmits the generated presentation proof to the verification device 450.
  • step S5451 the second decryption unit 452 performs a second decryption process using the second decryption key on the converted second encrypted message to restore the function value of the message.
  • the combination of the first encryption process, the second encryption process, the first decryption process, the presentation conversion process, and the second decryption process is appropriately set so that the function value of the message can be correctly restored by the second decryption process when the series of processes is performed correctly. Examples of combinations of the first encryption process, the second encryption process, the first decryption process, the presentation conversion process, and the second decryption process will be described later.
  • the probability that the function value of the message can be correctly restored by the second decoding process when the series of processes is performed correctly does not necessarily have to be 1. However, in order to achieve the goal of presenting the function value of the message, it is desirable for this probability to be as high as possible.
  • step S5452 the verification unit 453 performs a verification process using the proof for presentation and the function value of the restored message, and outputs the verification result.
  • Examples of the output verification results are "verification success” or "verification failure”. It is assumed that the combination of the proof for issuance generation process, the proof for presentation generation process, and the verification process is appropriately set so that the verification result is "verification success” with a high probability if the series of processes is performed correctly, and the verification result is "verification failure" with a high probability if any fraud has occurred in the series of processes. Specific examples of combinations of the proof for issuance generation process, the proof for presentation generation process, and the verification process will be described later.
  • step S5453 the output unit 454 outputs the function value of the restored message and the verification result.
  • the output destination to which the output unit 454 outputs the function value of the restored message and the verification result may be the output device 10005 (display screen) included in the computer 10000 constituting the verification device 450, or may be any output means, such as another device connected to the verification device 450.
  • FIG. 8 is a sequence diagram showing an example of content confirmation processing in the first embodiment.
  • the encrypted message DB 260 transmits the stored first encrypted message to the content confirmation device 500.
  • the first decryption key DB 180 transmits the stored first decryption key to the content confirmation device 500.
  • step S6501 the first decryption unit 502 performs a first decryption process on the first encrypted message using the first decryption key to restore the message.
  • step S6502 the output unit 503 outputs the decrypted message.
  • the output destination to which the output unit 503 outputs the restored message may be the output device 10005 (display screen) included in the computer 10000 constituting the content confirmation device 500, or may be any output means, such as another device connected to the content confirmation device 500.
  • the initial processing by each entity may be started, for example, by receiving a processing start request from a user operating the entity, by receiving a processing start request from another entity, or by receiving specified data, and the conditions for starting processing may be determined in advance.
  • the second encryption key pair generation device 300 may start processing in the presentation process by receiving a processing start request from the presentation device 400.
  • the processing start request from the presentation device 400 to the second encryption key pair generation device 300 may be made by the presentation device 400 receiving a request to start the presentation process from the owner.
  • an entity requiring the data may send a transmission request to an entity that holds the data, and in response to the transmission request, the entity that holds the data may transmit the data.
  • the transmission request may include a request to an operator or administrator of each entity.
  • the entity requiring the first decryption key may display text or output audio guidance to the administrator (i.e., the owner) of the IC card to hold the IC card over the entity.
  • Each encryption method includes a key pair generation process, an encryption process, and a decryption process.
  • devices that perform the key pair generation process, the encryption process, and the decryption process are called a key pair generation device, an encryption device, and a decryption device, respectively.
  • the message to be encrypted is denoted as m
  • the encryption key as ek the decryption key as dk
  • the encrypted message to be decrypted as c the decrypted message as m'.
  • the key pair generation process, encryption process, and decryption process included in encryption method X are denoted as KG_X, Enc_X, and Dec_X, respectively.
  • Enc_X(m;ek) the result of decryption process for c using dk
  • Dec_X(c;dk) the result of decryption process for c using dk
  • Encryption method A is, for example, the following common key encryption method.
  • m is an element of a commutative group, the group operation is represented by "+”, and the inverse operation of + is represented by "-”.
  • s may be a function value for another random number s' (e.g., a value obtained by a pseudorandom number generator).
  • s' may be stored instead of ek and dk, and s may be calculated from s' during encryption and decryption processes.
  • the encryption method B is, for example, ElGamal encryption.
  • m is an element of a commutative group.
  • each process is defined as follows.
  • g is the generator of the commutative group, and the symbol " ⁇ " represents a power.
  • c and list L are input, and the decryption device outputs m' and the updated list L'.
  • (m', L') is calculated as follows.
  • the decryption device obtains from list L the auxiliary ciphertext z that was added to list L in the encryption process performed using ek corresponding to dk.
  • the decryption device also defines L' as list L with z removed. However, removing z from L is not essential, and list L' may be defined as list L itself.
  • the encryption method C may be, for example, any public key encryption method that is homomorphic.
  • the encryption method C has the property that for two messages m[1] and m[2], Enc_C(m[1]+m[2];ek) can be calculated from Enc_C(m[1];ek) and Enc_C(m[2];ek).
  • the operation + does not necessarily have to be additive, and may be any operation related to groups.
  • the operation - may be the inverse operation of +.
  • any public key encryption method that is homomorphic such as RSA encryption, ElGamal encryption, Lifted-ElGamal encryption, or Pailler encryption, may be used as the encryption method C.
  • the first encryption key will be represented as ek_1, and the second encryption key as ek_2.
  • the decryption keys, variables, functions, and processes will be distinguished between those of the first encryption method and those of the second encryption method by subscripts.
  • the first encryption method will be represented as dk_1, s_1, h_1, Enc_1, Dec_1, etc.
  • the first encrypted message will be represented as q_1, the doubly encrypted message as q_12, and the second encrypted message as q_2.
  • the first encryption process is an encryption process using the first encryption method
  • the second encryption process is an encryption process using the second encryption method
  • the first decryption process is a decryption process using the first encryption method
  • the presentation conversion process is an identity conversion
  • the second decryption process is a decryption process using the second encryption method
  • the first encryption method is encryption method A
  • the second encryption method is encryption method A.
  • the first encryption method is encryption method B
  • the second encryption method is encryption method B.
  • the third specific example will be explained.
  • the first encryption method is encryption method A
  • the second encryption method is encryption method B.
  • the commutative group in encryption method A is the same as the commutative group in encryption method B.
  • the encryption processes of the first and second encryption methods are interchangeable, that is, if the condition that "for any message, the ciphertext obtained by performing the first encryption process using the first encryption method and then the second encryption process using the second encryption method is equal to the ciphertext obtained by performing the second encryption process using the second encryption method and then the first encryption process using the first encryption method is equal (however, if random numbers are used internally in the first encryption process, the random numbers are set to the same value, and if random numbers are used internally in the second encryption process, the random numbers are set to the same value before comparison) is met, then the message can be correctly decrypted by setting the first encryption process to an encryption process using the first encryption method, the second encryption process to an encryption process using the second encryption method, the first decryption process to a decryption process using the first encryption method, the presentation conversion process to an identity conversion, and the second decryption process to a decryption process using the second encryption method.
  • the first encryption method is encryption method C and the second encryption method is encryption method A.
  • the first encryption process is encryption process of the first encryption method
  • the first decryption process is decryption process of the first encryption method
  • the presentation conversion process is identity conversion
  • the second decryption process is decryption process of the second encryption method
  • ek_1 is a public key
  • the second encryption device 350 it is possible for the second encryption device 350 to use ek_1 while maintaining security.
  • a process is performed to generate a ciphertext obtained by encryption process using the first encryption method for the "ciphertext obtained by encryption process using the second encryption method for the message" from the ciphertext obtained by encryption process using the first encryption method for the message. This process is referred to as internal encryption.
  • m can be correctly decrypted by setting the first encryption process to an encryption process using the first encryption method, the second encryption process to an internal encryption process, the first decryption process to a decryption process using the first encryption method, the presentation conversion process to an identity conversion, and the second decryption process to a decryption process using the second encryption method.
  • q_12 Enc_A (Enc_A (m; ek_2); ek_1).
  • the first specific example can be considered to be an example in which the first encryption process is an encryption process using the first encryption method, the second encryption process is an internal encryption process, the first decryption process is a decryption process using the first encryption method, the presentation conversion process to an identity conversion, and the second decryption process is a decryption process using the second encryption method.
  • the first encryption process is an encryption process of the first encryption method
  • the second encryption process is an encryption process of the second encryption method
  • the first decryption process is an internal decryption process
  • the presentation conversion process is an identity conversion
  • the second decryption process is a decryption process of the second encryption method
  • the first specific example can also be considered as an example in which the first encryption process is an encryption process of the first encryption method, the second encryption process is an encryption process of the second encryption method, the first decryption process is an internal decryption process, the presentation conversion process is an identity conversion, and the second decryption process is a decryption process of the second encryption method.
  • the second encrypted message is in the form of an encrypted message obtained by performing encryption processing of the second encryption method on the message.
  • the message can be restored by the second decryption processing by using a combination of the first encryption processing, the second encryption processing, and the first decryption processing such that the second encrypted message satisfies these conditions.
  • message m consists of one or more sets of messages m[1], m[2], ..., m[n] (where n is an integer equal to or greater than 1)
  • each of m[1], m[2], ..., m[n] is called a message element.
  • the method of the first specific example is applied independently to m[1] and m[2].
  • the second encryption keys corresponding to m[1] and m[2] are represented as ek_2[1] and ek_2[2], respectively, and the second decryption keys corresponding to m[1] and m[2] are represented as dk_2[1] and dk_2[2], respectively.
  • the second encryption key pair generation device 300 may transmit (dk_2[1], dk_2[2]) as the second decryption key to the verification device 450, or dk_2[1]+dk_2[2] may be transmitted. As in this example, only the data necessary for the second decryption may be transmitted, rather than the second decryption key itself.
  • first encryption process second encryption process
  • first decryption process presentation conversion process
  • second decryption process second decryption process
  • the combination of the first encryption process, the second encryption process, the first decryption process, the presentation conversion process, and the second decryption process must be designed appropriately.
  • encryption method A' is a method that uses the same process as encryption method A but targets a non-commutative group
  • encryption method A' is used instead of encryption method A in specific example 1.
  • the value obtained by sequentially performing the first encryption process, the second encryption process, the first decryption process, and the second decryption process is m + ek_1 + ek_2 - dk_1 - dk_2, but this value does not necessarily match m.
  • the presentation proof generation unit 404 uses the owner proof private key to generate a knowledge proof of the owner proof private key.
  • the presentation proof generation unit 404 may receive data such as random numbers generated by the verification device 450.
  • the presentation proof generation unit 404 also generates a digital signature for the converted second encrypted message to be presented.
  • the presentation proof generation unit 404 then generates a pair of the issuance proof and the knowledge proof of the owner proof private key as the presentation proof.
  • the verification unit 453 first verifies the knowledge proof of the owner certification private key using the owner verification public key. This allows the verification unit 453 to verify that the person operating the presentation device 400 is the correct owner.
  • the verification unit 453 also uses the owner verification public key to verify the relationship between the second encrypted message and the digital signature for the second encrypted message. This allows the verification unit 453 to verify the fact that the second encrypted message was sent by the owner.
  • the function value of the message is decrypted from the second encrypted message using the second decryption key, this also means that the fact that the owner presented the function value of the message is verified. Note that by having the verification device 450 or another entity store the second encrypted message, the digital signature for the second encrypted message, and the second decryption key, it is possible to verify after the fact that the owner presented the function value of the message.
  • the presentation proof generating unit 404 may generate an electronic signature for a pair of the second encrypted message and data such as a random number sent from the verification device 450, and use the generated electronic signature as the presentation proof.
  • the second specific example will be explained.
  • a certificate for issuance is generated using the sanitizable signature method.
  • a message consists of a set of n message elements m[1], m[2], ..., m[n] (n is an integer equal to or greater than 1).
  • f(m) (m[i_1], ..., m[i_k]), where k is an integer between 1 and n, and ⁇ i_1, ... , i_b ⁇ is a subset of ⁇ 1, ... n ⁇ .
  • f(m) is a set consisting of some or all of the message elements contained in m.
  • the presentation proof generation unit 404 determines the presentation proof by (D, H, q_0).
  • the message presentation system 10 can present only a portion of the message and verify the validity of the presented portion. Furthermore, by making one or more of the message elements an owner verification public key or its function value (hash value, etc.), the issuer can prove that the owner verification public key is legitimate. Furthermore, by combining the method of the first specific example with the method of the second specific example, the verification unit 453 can verify that the person operating the presentation device 400 is the legitimate owner and that the legitimate owner has presented the function value of the message.
  • any signature method can be used, not just the sanitized signature method.
  • the presentation certificate is the issuance certificate itself
  • the verification process is the electronic signature verification process.
  • the first encryption, second encryption, and first decryption processes for the message the first encryption, second encryption, and first decryption processes in the first specific example shown as a combination of the first encryption process, second encryption process, first decryption process, presentation conversion process, and second decryption process are used for each message element.
  • the message is (m[1]+s[1],m[2]+s[2],...,m[n]+s[n])
  • the second decryption key is (s[1],s[2],...,s[n]).
  • G_1, G_2, and G_T be groups of order p, and e be the pairing from the direct product of G_1 and G_2 to G_T.
  • each message element be an element of the coset ring Z_p modulo p.
  • D_0 be the set consisting of elements of D and 0.
  • U be the set obtained by removing the elements of D from N.
  • the issuer key pair generation unit 102 randomly selects elements g and h from G_1 and G_2, respectively, that are not identity elements. Furthermore, the issuer key pair generation unit 102 randomly generates (n+2) elements x, y_0, y_1, ..., y_n from Z_p, and sets these elements as the issuer private key. On the other hand, the issuer key pair generation unit 102 determines the issuer public key by pk defined by the following (Equation 1).
  • the issuance proof generation unit 203 randomly generates a random number r from Z_p, and then generates an issuance proof q according to the following (Equation 2).
  • the presentation proof generation unit 404 randomly generates a random number t from Z_p.
  • the aim is to present (m[i_1], ..., m[i_k]), and as additional data for verification, (a_1, a_2) defined in (Equation 3) and (Equation 4) below are also added to obtain the message function value.
  • the presentation conversion unit 403 calculates (a_1', a_2') using the following (Equation 5) and (Equation 6).
  • the presentation conversion unit 403 determines the converted second encrypted message as (m[i_1]+s[i_1],...,m[i_b]+s[i_b],a_1',a_2').
  • the second decryption unit 452 first calculates (m[i_1], ..., m[i_k]) from (m[i_1] + s[i_1], ..., m[i_b] + s[i_b]) using the second decryption key (s[1], s[2], ..., s[n]). Furthermore, since the relationships in (Equation 7) and (Equation 8) below hold, the second decryption unit 452 restores (a_1, a_2) using these relational expressions.
  • the presentation proof generation process and the presentation proof verification process are performed interactively as follows.
  • the presentation proof generation unit 404 generates random numbers k and r, and generates q' using the issuance proof q and the generated k, r, and t as shown in Equation 9 below.
  • the communication unit 401 of the presentation device 400 transmits q' to the verification device 450.
  • the verification unit 453 If at least one of the first and second components of q' is an identity element, the verification unit 453 outputs "verification failed". Otherwise, the verification unit 453 generates a random number c.
  • the communication unit 451 of the verification device 450 transmits c to the presentation device 400.
  • the presentation proof generation unit 404 calculates s using the following (Equation 10).
  • the communication unit 401 of the presentation device 400 transmits s to the verification device 450.
  • the verification unit 453 calculates B using the following (Equation 11), and outputs "verification successful” if (Equation 12) holds, and outputs "verification failed” if it does not hold.
  • the second encryption key pair generation device 300 may be configured to perform presentation processes for multiple owners. In that case, an ID may be assigned to the key pair for each presentation process so that the verification device 450 can distinguish which presentation process the transmitted second decryption key corresponds to.
  • Each process using each private key may be performed by each DB storing the private key instead of each device receiving the private key.
  • data required for each process using the private key may be transmitted to the DB.
  • the first decryption key DB 180 may receive the doubly encrypted message, perform the first decryption process using the first decryption key on the doubly encrypted message, generate a second encrypted message, and transmit the generated second encrypted message to the presentation device 400.
  • the message presentation system 10 may also perform identity verification to confirm that the owner of the message to be issued is legitimate.
  • Identity verification may be performed by the owner presenting a certificate (e.g., a driver's license, My Number card, or health insurance card) to the issuer in person, or by transmitting information to the issuing device 200 that certifies the owner online.
  • a certificate e.g., a driver's license, My Number card, or health insurance card
  • information using an owner certification private key e.g., proof of knowledge of an owner certification private key
  • the message to be encrypted in this embodiment may be a private key of a different encryption method.
  • the first encryption device 250 may generate a temporary common key, generate encrypted data by common key encryption of arbitrary data using the temporary common key, and then perform the processing of this embodiment using the temporary common key as a message.
  • the encrypted data may be transmitted to the verification device 450, for example, together with the first encrypted message, the doubly encrypted message, and the second encrypted message (however, in these data, the message is the temporary common key).
  • the verification device 450 can decrypt the temporary common key, and by decrypting the encrypted data using the temporary common key, the data encrypted in the first encryption device 250 can be restored.
  • the message presentation system 10 generates a second encryption key pair for each presentation process, but instead, the message presentation system 10 may generate a second encryption key and a second decryption key in advance by a second encryption key pair generation process and store them in a DB or the like.
  • the presentation device 400 restores the certificate for issuance, but in order to reduce the risk of leakage of the certificate for issuance, the certificate for issuance itself may not be restored.
  • the method of this embodiment can be applied with H or q_0 included in the certificate for issuance as a message.
  • the process for generating a certificate for presentation, and the process for verifying by performing this embodiment with m[n+1] as a random number and (m[1], ..., m[n], m[n+1]) as the message, the risk of the message being inferred from the certificate for issuance can be further reduced.
  • the message presentation system 10 may also include a plurality of entities of one or more types.
  • the message presentation system 10 may include one or more encrypted message DBs 260 for each user.
  • one or more of the provided encrypted message DBs 260 may be used for multiple users.
  • the message presentation system 10 determines, in each process, the encrypted message DB 260 to be used in that process.
  • one of the entities can identify the location on the network of the encrypted message DB 260 used in the process (e.g., URI (Uniform Resource Identifier)).
  • the entity can request the operator of the entity (e.g., the owner) to input information about the location, and identify the location based on the input information.
  • the message presentation system 10 may store in advance pairs of candidate network locations and their identifiers (e.g., character strings (which may include numbers)), and when the network location of the encrypted message DB 260 to be used for processing is required, any entity may request input of the identifier and identify the location based on the input identifier.
  • any means for identifying an individual e.g., proof of knowledge of an owner-proving private key, a password, biometric information, etc.
  • the message presentation system 10 may be provided with multiple such entities, and a similar method may be used to determine the entity to be used for processing.
  • the verification device 450 used in the presentation process (i.e., the presentation destination of the function value of the message) is determined by, for example, the presentation device 400.
  • the second encryption key pair generation device 300 may notify the owner of the presentation destination. Any means may be used for notification, such as email, telephone, SMS (Short Message Service), or mail. Alternatively, the second encryption key pair generation device 300 may record the history of the presentation destinations and disclose it to the owner upon request from the owner.
  • the owner to detect fraud when a message is presented to an unauthorized recipient, which is an effective countermeasure against attacks.
  • the second encryption key pair generation device 300 issues a notification before transmitting the second decryption key (step S5303), the risk of the message being presented to an unauthorized recipient can be reduced by confirming consent from the owner.
  • the notification and consent confirmation may be performed by another entity (e.g., the encrypted message DB 260) instead of the second encryption key pair generation device 300.
  • one or more of the private keys used in the process may be generated based on private information such as a password.
  • the message presentation system 10 does not need to have a DB for storing the private keys, and when performing a process using the private keys, it only needs to request the administrator of the private information (for example, in the case of an owner certification private key, an example of the administrator of the private information is the owner) to input the private information required to generate the private key.
  • the presentation device 400 for presenting a message receives the message in an encrypted state. Therefore, it is difficult for the presentation device 400 to restore the message or the function value of the message. This reduces the risk of the message being leaked from the presentation device 400. In addition, since the message itself is stored in the encrypted message DB 260 in an encrypted state, the risk of the message being leaked from the encrypted message DB 260 is also reduced.
  • the processing of this embodiment is particularly effective when the owner does not need to check the message presented in the presentation process. For example, when presenting information that the owner knows without the need for confirmation, such as the owner's own name or date of birth, this is an example of a case where the owner does not need to check the message presented in the presentation process.
  • the message presentation system 10 of this embodiment can be applied, for example, as follows.
  • the presentation device 400 is a shared terminal installed in a store or the like
  • the content confirmation device 500 is a terminal such as a smartphone that is owned by the owner.
  • the owner can check the contents of the message using the content confirmation device 500 and then perform the presentation process using the presentation device 400, thereby keeping the message secret from the presentation device 400.
  • this embodiment has the following effect.
  • a calculation area with a function for reducing the risk of information leakage may be inferior to a normal calculation area in terms of calculation speed and memory size that can be used for processing.
  • the risk of message leakage can be reduced in the presentation device 400, so that calculations related to messages (e.g., calculation of message function values and presentation proof generation processing, etc.) can be performed in the normal calculation area. This has the effect of reducing the resource consumption of the calculation area for reducing the risk of information leakage.
  • the risk of leakage may be further reduced by performing message-related processing in the calculation area for reducing the risk of information leakage.
  • the presentation device 400 needs not only message elements to be presented but also message elements that are not presented in order to generate a presentation proof.
  • the owner of the presented message elements may use them to confirm the contents, but there is little need for the user to have the presentation device 400 restore the message elements that are not presented.
  • the message elements that are not presented can be kept secret from the presentation device 400.
  • this embodiment may be applied to conceal message elements that are not presented from the presentation device 400, and the message elements that are presented may be restored by the presentation device 400.
  • this embodiment instead of transmitting (m[i_1]+s[i_1], ..., m[i_b]+s[i_b], a_1', a_2') as the converted second encrypted message, for example, (m[i_1], ..., m[i_b], a_1', a_2') is transmitted.
  • this embodiment can be applied to part of a message, and the system can be designed according to the necessity for content confirmation and the security policy.
  • Example 2 a message presentation system 20 via a network will be described.
  • the message presentation system 10 in Example 1 stores the owner certification private key and the first decryption key in a DB, but the message presentation system 20 in Example 2 restores the owner certification private key and the first decryption key using a template that has been generated and registered in advance and the owner's biometric information.
  • the owner certification private key and the first decryption key have fixed values for each owner, but the message presentation system 20 can update the owner certification private key and the first decryption key by performing the owner key generation process again.
  • FIG. 9 is a block diagram showing an example of the configuration of a message presentation system 20 in Example 2.
  • the message presentation system 20 does not include an owner certification private key DB 140 and a first decryption key DB 180, but instead includes an owner key generation device 600, a template DB 610, and an owner key recovery device 650.
  • the owner key generation device 600 uses the owner's biometric information to generate a template, a public key for owner verification, and a first decryption key.
  • the owner key generation device 600 includes, for example, a communication unit 601, a biometric information for key generation acquisition unit 602, and an owner key generation unit 603, all of which are functional units.
  • the owner key generation device 600 is operated, for example, by the owner.
  • the owner key restoration device 650 restores the owner verification public key and the first decryption key using the owner's biometric information and a template.
  • the owner key restoration device 650 includes, for example, a communication unit 651, a key restoration biometric information acquisition unit 652, and an owner key restoration unit 653, all of which are functional units.
  • the owner key restoration device 650 is operated, for example, by the owner.
  • the message presentation system 20 of the second embodiment performs the issuer key pair generation process and the issuance process in the same manner as in the first embodiment. Furthermore, the message presentation system 20 of the second embodiment performs the owner key generation process instead of the owner certification key pair generation process and the first encryption key pair generation process of the first embodiment.
  • the first decryption key DB 180 transmits the first decryption key to the presentation device 400
  • the owner certification private key DB 140 transmits the owner certification private key to the presentation device 400
  • the owner key restoration device 650 restores the first decryption key and the owner certification private key by the owner key restoration process and transmits them to the presentation device 400.
  • the other processes executed in the presentation process are the same as those in the first embodiment.
  • the first decryption key DB 180 transmits the first decryption key to the content confirmation device 500, but in the second embodiment, instead of this process, the owner key restoration device 650 restores the first decryption key by the owner key restoration process and transmits it to the content confirmation device 500.
  • the other processes executed in the content confirmation process are the same as those in the first embodiment.
  • the owner key restoration device 650 used for the owner key restoration process performed in the presentation process and the owner key restoration device 650 used for the owner key restoration process performed in the content confirmation process do not have to be the same device (i.e., the message presentation system 20 may include multiple owner key restoration devices 650).
  • the owner key restoration device 650 used for the owner key restoration process performed in the presentation process may be the same physically terminal as the presentation device 400.
  • the owner key restoration device 650 used for the owner key restoration process performed in the content confirmation process may be the same physically terminal as the content confirmation device 500.
  • the hardware configurations of the owner key generation device 600, template DB 610, and owner key recovery device 650 are similar to the hardware configuration described in Example 1 using FIG. 2, for example.
  • the computer 10000 constituting the owner key generation device 600 and the owner key recovery device 650 has a sensor for acquiring biometric information such as a face, fingerprint, iris, palm print, and finger veins (the biometric information may be used to generate an encryption key).
  • the sensor may be intended only to acquire biometric information, or may be a device whose purpose is not limited to acquiring biometric information (for example, a camera intended to acquire images and videos in addition to biometric information, or a microphone intended to acquire audio in addition to biometric information).
  • the message presentation system 20 of this embodiment executes the same processes as the message presentation system 10 of the embodiment 1, except for the following points. Specifically, the message presentation system 20 of this embodiment executes the owner key generation process shown in Fig. 10 without executing the owner certification key pair generation process shown in Fig. 4 and the first encryption key pair generation process shown in Fig. 5.
  • the message presentation system 20 of this embodiment executes the owner key restoration process shown in FIG. 11, and the owner key restoration device 650 transmits the restored first decryption key to the presentation device 400.
  • the message presentation system 20 of this embodiment executes the owner key restoration process shown in FIG. 11, and the owner key restoration device 650 transmits the restored owner certification private key to the presentation device 400.
  • the message presentation system 20 of this embodiment executes the owner key restoration process shown in FIG. 11, and the owner key restoration device 650 transmits the restored first decryption key to the content confirmation device 500.
  • the owner key restoration device 650 may receive data necessary for each process using the key and then perform each process using the key.
  • FIG. 10 is a sequence diagram showing an example of an owner key generation process in the second embodiment.
  • the key generation biometric information acquisition unit 602 acquires biometric information for key generation from the owner.
  • the type of biometric information acquired by the key generation biometric information acquisition unit 602 can be any type, such as face, iris, fingerprint, finger vein, or palm print.
  • the data format of the biometric information can be any format, such as image, video, or audio.
  • step S7602 the owner key generation unit 603 uses the biometric information for key generation to generate a template, a first encryption key, and an owner verification public key.
  • step S7603 the communication unit 601 of the owner key generation device 600 transmits the generated template to the template DB 610.
  • step S7611 the template DB 610 stores the template.
  • step S7604 the communication unit 601 of the owner key generating device 600 transmits the generated owner verification public key to the owner verification public key DB 150.
  • step S7151 the owner verification public key DB 150 stores the owner verification public key.
  • step S7605 the communication unit 601 of the owner key generating device 600 transmits the generated first encryption key to the first encryption key DB 170.
  • step S7171 the first encryption key DB 170 stores the first encryption key.
  • FIG. 11 is a sequence diagram showing an example of the owner key restoration process in the second embodiment.
  • the key restoration biometric information acquisition unit 652 acquires the same type of key restoration biometric information as in step S7601 from the owner.
  • the template DB 610 transmits the stored template to the owner key restoration device 650.
  • the owner key restoration unit 653 restores the owner proof private key and the first decryption key using the template and the acquired key restoration biometric information. If the key restoration biometric information is sufficiently close to the key generation biometric information used in the owner key generation process (for example, if the distance between the feature vectors indicating the biometric information is equal to or less than a predetermined value), it is deemed that the owner key generation process and the owner key restoration process are appropriately set so that the owner proof private key and the first decryption key, which have unique values for each owner, are correctly restored with a high probability from the template and key restoration biometric information.
  • the biometric encryption method includes a key generation process and a key recovery process.
  • the key generation process is a process that generates a private key s_G and a helper string hs using biometric information for key generation x_G as input.
  • the key recovery process is a process of recovering a private key from hs and key recovery biometric information x_R.
  • the private key to be recovered is represented as s_R
  • s_G s_R holds. In other words, the private key is correctly recovered.
  • the owner key generation unit 603 generates a template T, a first encryption key ek_1, and an owner verification public key pk1 as follows. First, the owner key generation unit 603 uses the key generation biometric information x_G to generate a secret key s_G and a helper string hs through a key generation process of a biometric encryption method.
  • the owner key generation unit 603 uses the private key s_G to generate the encryption key ek_0 and the decryption key dk_0.
  • a key pair generation process of any encryption method can be used.
  • the encryption process and decryption process of this encryption method are represented as Enc_0 and Dec_0, respectively.
  • the key pair generation process is a deterministic process that uses s_G as input so that the same (ek_0, dk_0) can be obtained from s_G.
  • the owner key generation unit 603 generates ek_0 by performing a deterministic conversion on s_G, for example, and generates dk_0 corresponding to the generated ek_0.
  • the owner key generation unit 603 also generates a first encryption key ek_1 and a first decryption key dk_1 in the same manner as the first encryption key pair generation process of step S3161.
  • the owner key restoration unit 653 first restores the private key by performing key restoration process of the biometric encryption method using the key restoration biometric information x_R and hs included in T.
  • the owner key restoration unit 653 restores the key decryption key using the restored private key s_R.
  • the owner key restoration unit 653 performs Dec_0 on Enc_0(dk_1;ek_0) and Enc_0(sk_1;ek_0) included in T using the restored key decryption key dk_0' to restore the first decryption key dk_1 and the owner proof private key sk_1.
  • the owner key restoration unit 653 may verify whether the first decryption key and the owner proof private key have been correctly restored, and may abort the process if they have not been correctly restored.
  • the owner key restoration unit 653 may use, for example, the first encryption key and the owner verification public key for this verification.
  • the message presentation system 20 generates keys related to the owner (i.e., the owner authentication private key, the owner authentication public key, the first encryption key, and the first decryption key) based on the owner's biometric information.
  • keys related to the issuer i.e., the issuer private key and the issuer public key
  • the owner does not need to manage the owner proof private key and the first decryption key, which are private keys related to the owner, and convenience is improved.
  • the owner proof private key and the first decryption key which are private keys related to the owner, and convenience is improved.
  • there is no need to store these keys there is also an effect of improving security.
  • the key related to the issuer is generated based on the biometric information of the issuer, similarly, management of the key related to the issuer is not required, and there are effects of improving convenience and security.
  • the present invention is not limited to the above-mentioned embodiment, and various modifications are included.
  • the above-mentioned embodiment has been described in detail to clearly explain the present invention, and is not necessarily limited to those having all the configurations described.
  • it is also possible to replace a part of the configuration of one embodiment with the configuration of another embodiment and it is also possible to add the configuration of another embodiment to the configuration of one embodiment.
  • the above-mentioned configurations, functions, processing units, processing means, etc. may be realized in hardware, in part or in whole, for example by designing them as integrated circuits. Furthermore, the above-mentioned configurations, functions, etc. may be realized in software, by a processor interpreting and executing a program that realizes each function. Information on the programs, tables, files, etc. that realize each function can be stored in a memory, a recording device such as a hard disk or SSD (Solid State Drive), or a recording medium such as an IC card, SD card, or DVD.
  • a recording device such as a hard disk or SSD (Solid State Drive)
  • a recording medium such as an IC card, SD card, or DVD.
  • control lines and information lines shown are those considered necessary for the explanation, and do not necessarily show all control lines and information lines on the product. In reality, it can be assumed that almost all components are interconnected.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

According to the present invention, a DB transmits, to an encryption device, a first encrypted message generated by first encryption processing using a first encryption key for a message, the encryption device generates and transmits, to a presentation device, a double-encrypted message by performing second encryption processing on the first encrypted message using a second encryption key, and the presentation device generates a second encrypted message by performing first decryption processing on the double-encrypted message using a first decryption key, and, on the basis of the second encrypted message, generates and outputs such a transmission second encrypted message that a function value based on a predetermined function of the message can be decrypted by a second decryption key corresponding to the second encryption key.

Description

メッセージ提示システム及びメッセージ提示方法Message presentation system and method 参照による取り込みIncorporation by Reference

 本出願は、2023年1月24日に出願された日本特許出願第2023-008894号の優先権を主張し、その内容を参照することにより、本出願に取り込む。 This application claims priority to Japanese Patent Application No. 2023-008894, filed on January 24, 2023, the contents of which are incorporated herein by reference.

 本発明は、メッセージ提示システム及びメッセージ提示方法に関する。 The present invention relates to a message presentation system and a message presentation method.

 DB(Data Base)が、電子的に表されたメッセージに対し暗号化処理を行うことにより得られる暗号化メッセージを保存し、ユーザが暗号化メッセージに対して復号処理を行うことでメッセージを復号し、第三者である検証者に、メッセージ又はメッセージを基に計算されたデータを提示するような、メッセージ提示システムが知られる。 A message presentation system is known in which a DB (Data Base) stores an encrypted message obtained by performing an encryption process on an electronically represented message, a user decrypts the encrypted message by performing a decryption process on the message, and the message or data calculated based on the message is presented to a third-party verifier.

 例えば、非特許文献1に記載の技術は、メッセージの一例としてのクレデンシャルを扱い、DBの一例としてのIdentity Hubは、暗号化されたクレデンシャルを保存し、ユーザの一例としてのアイデンティティ主体は、クレデンシャルを復号し、復号されたクレデンシャルあるいはクレデンシャルを基に得られるデータを提示する、方法が開示されている。 For example, the technology described in Non-Patent Document 1 discloses a method in which credentials are handled as an example of a message, an Identity Hub as an example of a DB stores encrypted credentials, and an identity entity as an example of a user decrypts the credentials and presents the decrypted credentials or data obtained based on the credentials.

Stockburger et al., "Blockchain-enabled decentralized identity management: The case of self-sovereign identity in public transportation," Blockchain: Research and Applications, Volume 2, Issue 2, 2021年 6月、[令和4年12月2日検索]、インターネット<https://www.sciencedirect.com/science/article/pii/S2096720921000099>Stockburger et al., "Blockchain-enabled decentralized identity management: The case of self-sovereign identity in public transportation," Blockchain: Research and Applications, Volume 2, Issue 2, June 2021, [Retrieved December 2, 2022], Internet <https://www.sciencedirect.com/science/article/pii/S2096720921000099>

 非特許文献1に記載の方法では、ユーザが提示に用いる提示装置において、復号されたメッセージが一時的に現れる。このため、もし提示装置が適切に管理されていない場合、一時的に現れるメッセージが漏洩する可能性がある。そこで、本発明の一態様は、DBからのメッセージの漏洩リスクと、提示装置からのメッセージ漏洩リスクと、を低減する。 In the method described in Non-Patent Document 1, the decrypted message appears temporarily on the presentation device used by the user for presentation. Therefore, if the presentation device is not properly managed, there is a possibility that the temporarily appearing message may be leaked. Therefore, one aspect of the present invention reduces the risk of message leakage from the DB and the risk of message leakage from the presentation device.

 以上の課題を解決するために、本発明の一態様は以下の構成を採用する。メッセージ提示システムは、メッセージに対する第1暗号化鍵を用いた第1暗号化処理によって生成された第1暗号化メッセージを保持するDBと、第2暗号化鍵を保持する暗号化装置と、前記第1暗号化鍵に対応する第1復号鍵を保持する提示装置と、を含み、前記DBは、前記第1暗号化メッセージを前記暗号化装置に送信し、前記暗号化装置は、前記第2暗号化鍵を用いて前記第1暗号化メッセージに対する第2暗号化処理を行うことにより2重暗号化メッセージを生成し、前記2重暗号化メッセージを前記提示装置に送信し、前記提示装置は、前記第1復号鍵を用いて前記2重暗号化メッセージに対し第1復号処理を行うことにより第2暗号化メッセージを生成し、前記メッセージの所定の関数による関数値が前記第2暗号化鍵に対応する第2復号鍵により復元できるような送信用第2暗号化メッセージを、前記第2暗号化メッセージに基づいて生成し、前記送信用第2暗号化メッセージを出力する。 In order to solve the above problems, one aspect of the present invention employs the following configuration. The message presentation system includes a DB that holds a first encrypted message generated by a first encryption process using a first encryption key for a message, an encryption device that holds a second encryption key, and a presentation device that holds a first decryption key corresponding to the first encryption key, the DB transmits the first encrypted message to the encryption device, the encryption device generates a doubly encrypted message by performing a second encryption process on the first encrypted message using the second encryption key, and transmits the doubly encrypted message to the presentation device, the presentation device generates a second encrypted message by performing a first decryption process on the doubly encrypted message using the first decryption key, generates a second encrypted message for transmission based on the second encrypted message such that a function value of the message according to a predetermined function can be restored by the second decryption key corresponding to the second encryption key, and outputs the second encrypted message for transmission.

 本発明の一態様によれば、DBからのメッセージの漏洩リスクと、提示装置からのメッセージ漏洩リスクと、を低減する。 According to one aspect of the present invention, the risk of message leakage from the DB and the risk of message leakage from the presentation device are reduced.

 上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。  Problems, configurations and advantages other than those mentioned above will become clear from the description of the embodiments below.

実施例1におけるメッセージ提示システムの構成例を示すブロック図である。1 is a block diagram showing a configuration example of a message presentation system according to a first embodiment. 実施例1におけるメッセージ提示システムに含まれる各エンティティを構成する計算機のハードウェア構成例を表すブロック図である。2 is a block diagram illustrating an example of a hardware configuration of a computer that constitutes each entity included in the message presentation system according to the first embodiment. FIG. 実施例1における発行者鍵ペア処理の一例を示すシーケンス図である。FIG. 11 is a sequence diagram illustrating an example of an issuer key pair process in the first embodiment. 実施例1における所有者証明用鍵ペア生成処理の一例を示すシーケンス図である。FIG. 11 is a sequence diagram illustrating an example of an owner proof key pair generation process according to the first embodiment. 実施例1における第1暗号鍵ペア生成処理の一例を示すシーケンス図である。FIG. 11 is a sequence diagram illustrating an example of a first encryption key pair generation process in the first embodiment. 実施例1における発行処理の一例を示すシーケンス図である。FIG. 11 is a sequence diagram illustrating an example of an issuing process in the first embodiment. 実施例1における提示処理の一例を示すシーケンス図である。FIG. 11 is a sequence diagram illustrating an example of a presentation process according to the first embodiment. 実施例1における内容確認処理の一例を示すシーケンス図である。FIG. 11 is a sequence diagram illustrating an example of a content confirmation process according to the first embodiment. 実施例2におけるメッセージ提示システムの構成例を示すブロック図である。FIG. 11 is a block diagram showing a configuration example of a message presentation system according to a second embodiment. 実施例2における所有者鍵生成処理の一例を示すシーケンス図である。FIG. 11 is a sequence diagram illustrating an example of an owner key generation process according to the second embodiment. 実施例2における所有者鍵復元処理の一例を示すシーケンス図である。FIG. 11 is a sequence diagram illustrating an example of an owner key recovery process according to the second embodiment.

 以下、本発明の実施形態を図面に基づき詳細に説明する。なお、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものでないことに注意すべきである。 Below, an embodiment of the present invention will be described in detail with reference to the drawings. Note that this embodiment is merely one example for realizing the present invention, and does not limit the technical scope of the present invention.

 実施例1では、ネットワークを介したメッセージ提示システムを説明する。メッセージとは電子的に表現された、文字列、画像、及び値等の任意のデータである。例えば、電子的に表現された、氏名、住所、生年月日、性別、購買履歴、及びクレジットカード利用履歴等は、いずれもメッセージの例である。また、例えば、電子的に表現された、運転免許証、マイナンバーカード、職歴証明書、学歴証明書、履修証明書、ワクチン接種証明書、社員証、学生証、及び会員証等の任意の証明書に含まれる、任意のデータ(例えば、運転免許証に含まれる、氏名、住所、生年月日、及び性別等の属性情報)は、いずれもメッセージの例である。これ以降、メッセージは電子的に表現されているものとし、「電子的に表現された」という但し書きは省略する。 In Example 1, a message presentation system via a network is described. A message is any data such as a character string, an image, or a value that is electronically represented. For example, a name, address, date of birth, gender, purchase history, and credit card usage history that are electronically represented are all examples of messages. In addition, any data (for example, attribute information such as name, address, date of birth, and gender included in a driver's license) included in any certificate such as a driver's license, My Number card, employment history certificate, education certificate, course completion certificate, vaccination certificate, employee ID card, student ID card, and membership card that are electronically represented are all examples of messages. Hereinafter, messages are assumed to be electronically represented, and the provisos "electronically represented" will be omitted.

[システム構成]
 図1は、メッセージ提示システムの構成例を示すブロック図である。メッセージ提示システム10は、例えば、発行者鍵ペア生成装置100と、発行者秘密鍵DB110と、発行者公開鍵DB120と、所有者証明用鍵ペア生成装置130と、所有者証明用秘密鍵DB140と、所有者検証用公開鍵DB150と、第1暗号鍵ペア生成装置160と、第1暗号化鍵DB170と、第1復号鍵DB180と、発行装置200と、第1暗号化装置250と、暗号化メッセージDB260と、第2暗号鍵ペア生成装置300と、第2暗号化装置350と、提示装置400と、検証装置450と、内容確認装置500と、を含む。
[System configuration]
1 is a block diagram showing a configuration example of a message presentation system. The message presentation system 10 includes, for example, an issuer key pair generation device 100, an issuer private key DB 110, an issuer public key DB 120, an owner certification key pair generation device 130, an owner certification private key DB 140, an owner verification public key DB 150, a first encryption key pair generation device 160, a first encryption key DB 170, a first decryption key DB 180, an issuing device 200, a first encryption device 250, an encrypted message DB 260, a second encryption key pair generation device 300, a second encryption device 350, a presentation device 400, a verification device 450, and a content confirmation device 500.

 発行者鍵ペア生成装置100と、発行者秘密鍵DB110と、発行者公開鍵DB120と、所有者証明用鍵ペア生成装置130と、所有者証明用秘密鍵DB140と、所有者検証用公開鍵DB150と、第1暗号鍵ペア生成装置160と、第1暗号化鍵DB170と、第1復号鍵DB180と、発行装置200と、第1暗号化装置250と、暗号化メッセージDB260と、第2暗号鍵ペア生成装置300と、第2暗号化装置350と、提示装置400と、検証装置450と、内容確認装置500と、はネットワーク900を介して相互に接続されている。 The issuer key pair generation device 100, the issuer private key DB 110, the issuer public key DB 120, the owner certification key pair generation device 130, the owner certification private key DB 140, the owner verification public key DB 150, the first encryption key pair generation device 160, the first encryption key DB 170, the first decryption key DB 180, the issuing device 200, the first encryption device 250, the encrypted message DB 260, the second encryption key pair generation device 300, the second encryption device 350, the presentation device 400, the verification device 450, and the content confirmation device 500 are connected to each other via a network 900.

 ただし、これらのエンティティ(装置及びDB)の必ずしもすべてが相互に通信可能でなくてもよく、例えば、後述する各処理において各通信を行う各エンティティ同士が相互に通信可能であればよい。また、ネットワーク900は、有線であってもよいし、無線であってもよい。インターネット、組織内のローカルネットワーク等は、ネットワーク900の一例である。また、複数装置が1つの物理的に一つの機器に含まれる場合、機器内のネットワークも、ネットワーク900の一部であると考えてよい。 However, not all of these entities (devices and DBs) necessarily need to be able to communicate with each other; for example, it is sufficient that the entities that perform the respective communications in each process described below are able to communicate with each other. Furthermore, the network 900 may be wired or wireless. The Internet, a local network within an organization, etc. are examples of the network 900. Furthermore, when multiple devices are included in one physical device, the network within the device may also be considered to be part of the network 900.

 発行者鍵ペア生成装置100は、発行者秘密鍵と発行者公開鍵とを生成する。発行者鍵ペア生成装置100は、例えば、いずれも機能部である、通信部101と、発行者鍵ペア生成部102と、を含む。発行者鍵ペア生成装置100は、例えば、メッセージの発行者(以下、単に「発行者」とも呼ぶ)またはシステム管理者により操作される。発行者は個人の場合もあるし、国、若しくは地方公共団体などの公的機関、または民間企業等の組織の場合もある。発行者秘密鍵は、発行用証明の生成に用いられる。発行者公開鍵は、発行用証明を基に生成される提示用証明の検証に用いられる。  The issuer key pair generation device 100 generates an issuer private key and an issuer public key. The issuer key pair generation device 100 includes, for example, a communication unit 101 and an issuer key pair generation unit 102, both of which are functional units. The issuer key pair generation device 100 is operated, for example, by a message issuer (hereinafter simply referred to as the "issuer") or a system administrator. The issuer may be an individual, a public institution such as a national or local government, or an organization such as a private company. The issuer private key is used to generate an issuance certificate. The issuer public key is used to verify a presentation certificate generated based on the issuance certificate.

 所有者証明用鍵ペア生成装置130は、所有者証明用秘密鍵と所有者検証用公開鍵を生成する。所有者証明用鍵ペア生成装置130は、例えば、いずれも機能部である、通信部131と、所有者証明用鍵ペア生成部132と、を含む。所有者証明用鍵ペア生成装置130は、例えば、メッセージの所有者(以下、単に「所有者」とも呼ぶ)またはシステム管理者により操作される。ただし、所有者は、メッセージを所有する時点(例えば、暗号化メッセージDB260にメッセージが格納される時点)よりも前も含めて、所有者と呼ばれるものとする。所有者証明用秘密鍵は、提示用証明の生成等に用いられる。 The owner proof key pair generating device 130 generates an owner proof private key and an owner verification public key. The owner proof key pair generating device 130 includes, for example, a communication unit 131 and an owner proof key pair generating unit 132, both of which are functional units. The owner proof key pair generating device 130 is operated, for example, by the owner of the message (hereinafter also simply referred to as the "owner") or a system administrator. However, the owner is also referred to as the owner even before the time when the message is owned (for example, the time when the message is stored in the encrypted message DB 260). The owner proof private key is used for generating a presentation proof, etc.

 第1暗号鍵ペア生成装置160は、第1暗号化鍵と第1復号鍵を生成する。第1暗号鍵ペア生成装置160は、例えば、いずれも機能部である、通信部161と、第1暗号鍵ペア生成部162と、を含む。第1暗号鍵ペア生成装置160は、例えば、所有者またはシステム管理者により操作される。第1暗号化鍵は、メッセージ及び発行用証明に対する第1暗号化処理に用いられ、第1復号鍵は、第1暗号化メッセージ、第1暗号化発行用証明、及び2重暗号化メッセージに対する第1復号処理に用いられる。 The first encryption key pair generation device 160 generates a first encryption key and a first decryption key. The first encryption key pair generation device 160 includes, for example, a communication unit 161 and a first encryption key pair generation unit 162, both of which are functional units. The first encryption key pair generation device 160 is operated, for example, by the owner or a system administrator. The first encryption key is used in the first encryption process for the message and issuance certificate, and the first decryption key is used in the first decryption process for the first encrypted message, the first encrypted issuance certificate, and the doubly encrypted message.

 発行装置200は、メッセージと発行用証明を生成する。発行装置200は、例えば、いずれも機能部である、通信部201と、メッセージ生成部202と、発行用証明生成部203と、を含む。発行装置200は、例えば、発行者により操作される。 The issuing device 200 generates a message and an issuance certificate. The issuing device 200 includes, for example, a communication unit 201, a message generation unit 202, and an issuance certificate generation unit 203, which are all functional units. The issuing device 200 is operated, for example, by an issuer.

 第1暗号化装置250は、メッセージと発行用証明に対して第1暗号化処理を行い、第1暗号化メッセージと第1暗号化発行用証明を生成する。第1暗号化装置250は、例えば、いずれも機能部である、通信部251と、第1暗号化部252と、を含む。第1暗号化装置250は、例えば発行者または所有者により操作される。第1暗号化装置250は、発行装置200または暗号化メッセージDB260と物理的に同一の端末であってもよい。 The first encryption device 250 performs a first encryption process on the message and the issuance certificate to generate a first encrypted message and a first encrypted issuance certificate. The first encryption device 250 includes, for example, a communication unit 251 and a first encryption unit 252, both of which are functional units. The first encryption device 250 is operated, for example, by the issuer or the owner. The first encryption device 250 may be a terminal that is physically the same as the issuing device 200 or the encrypted message DB 260.

 第2暗号鍵ペア生成装置300は、第2暗号化鍵と第2復号鍵を生成する。第2暗号鍵ペア生成装置300は、例えば、いずれも機能部である、通信部301と、第2暗号鍵ペア生成部302と、を備える。第2暗号鍵ペア生成装置300は、例えば、他エンティティ(例えば、第2暗号化装置350、提示装置400、検証装置450、または暗号化メッセージDB260)から第2暗号鍵ペア生成処理の要求を受けて処理を行う。第2暗号鍵ペア生成装置300は、第2暗号化装置350、検証装置450、または暗号化メッセージDB260と物理的に同一の端末であってもよい。第2暗号化鍵は、第1暗号化メッセージに対する第2暗号化処理に用いられる。第2復号鍵は、変換後第2暗号化メッセージに対する第2復号処理に用いられる。 The second encryption key pair generation device 300 generates a second encryption key and a second decryption key. The second encryption key pair generation device 300 includes, for example, a communication unit 301 and a second encryption key pair generation unit 302, both of which are functional units. The second encryption key pair generation device 300 receives a request for a second encryption key pair generation process from another entity (for example, the second encryption device 350, the presentation device 400, the verification device 450, or the encrypted message DB 260) and performs the process. The second encryption key pair generation device 300 may be a terminal that is physically the same as the second encryption device 350, the verification device 450, or the encrypted message DB 260. The second encryption key is used in the second encryption process for the first encrypted message. The second decryption key is used in the second decryption process for the converted second encrypted message.

 第2暗号化装置350は、第1暗号化メッセージに対して第2暗号化処理を行い、2重暗号化メッセージを生成する。第2暗号化装置350は、例えば、いずれも機能部である、通信部351と、第2暗号化部352と、を含む。第2暗号化装置350は、例えば、他エンティティ(例えば、第2暗号鍵ペア生成装置300、提示装置400、検証装置450、または暗号化メッセージDB260)から第2暗号化処理の要求を受けて処理を行う。第2暗号化装置350は、第2暗号鍵ペア生成装置300または暗号化メッセージDB260と物理的に同一の端末であってもよい。 The second encryption device 350 performs a second encryption process on the first encrypted message to generate a doubly encrypted message. The second encryption device 350 includes, for example, a communication unit 351 and a second encryption unit 352, both of which are functional units. The second encryption device 350 performs the process upon receiving a request for the second encryption process from, for example, another entity (for example, the second encryption key pair generation device 300, the presentation device 400, the verification device 450, or the encrypted message DB 260). The second encryption device 350 may be a terminal that is physically the same as the second encryption key pair generation device 300 or the encrypted message DB 260.

 提示装置400は、2重暗号化メッセージと第1暗号化発行用証明に対して第1復号処理を行うことで第2暗号化メッセージの生成と発行用証明の復元を行ったうえで、第2暗号化メッセージに対し提示用変換を行うことで変換後第2暗号化メッセージを生成し、さらに提示用証明を生成する。提示装置400は、例えば、いずれも機能部である、通信部401と、第1復号部402と、提示用変換部403と、提示用証明生成部404と、を含む。提示装置400は、例えば、所有者により操作される。 The presentation device 400 performs a first decryption process on the doubly encrypted message and the first encrypted issuance certificate to generate a second encrypted message and restore the issuance certificate, and then performs a presentation conversion on the second encrypted message to generate a converted second encrypted message and further generate a presentation certificate. The presentation device 400 includes, for example, a communication unit 401, a first decryption unit 402, a presentation conversion unit 403, and a presentation certificate generation unit 404, all of which are functional units. The presentation device 400 is operated, for example, by the owner.

 検証装置450は、変換後第2暗号化メッセージに対して第2復号処理を行うことでメッセージの関数値を復元する。そのうえで、検証装置450は、復元されたメッセージの関数値と提示用証明を用いて、当該メッセージの関数値(又は当該メッセージそのもの)が正当な所有者によって提示されたかを検証する検証処理を行う。検証装置450は、例えば、いずれも機能部である、通信部451と、第2復号部452と、検証部453と、出力部454と、を含む。検証装置450は、例えば、メッセージの関数値の提示先の者(以下、「検証者」とも呼ぶ)により操作される。 The verification device 450 restores the function value of the message by performing a second decryption process on the converted second encrypted message. Then, the verification device 450 performs a verification process using the restored function value of the message and the presentation proof to verify whether the function value of the message (or the message itself) has been presented by a legitimate owner. The verification device 450 includes, for example, a communication unit 451, a second decryption unit 452, a verification unit 453, and an output unit 454, all of which are functional units. The verification device 450 is operated, for example, by a person to whom the function value of the message is presented (hereinafter also referred to as a "verifier").

 内容確認装置500は、第1暗号化メッセージに対して第1復号処理を行うことでメッセージを復元する。内容確認装置500は、例えば、いずれも機能部である、通信部501と、第1復号部502と、出力部503と、を含む。内容確認装置500は、例えば、所有者により操作され、所有するメッセージの内容を確認するために用いられる。内容確認装置500において、メッセージが復号されるため、内容確認装置500は、提示装置400と比較して、情報漏洩に対する安全性が高い装置であることが望ましい。 The content confirmation device 500 restores the first encrypted message by performing a first decryption process on the first encrypted message. The content confirmation device 500 includes, for example, a communication unit 501, a first decryption unit 502, and an output unit 503, all of which are functional units. The content confirmation device 500 is operated, for example, by an owner and used to confirm the contents of a message owned by the owner. Since the message is decrypted in the content confirmation device 500, it is desirable that the content confirmation device 500 be a device that is more secure against information leakage than the presentation device 400.

 なお、各装置は上記した操作者により操作される代わりに、他のエンティティから処理の要求を受け、要求に応じて自動的に一部または全部の処理が行われるようにしてもよい。 In addition, instead of being operated by an operator as described above, each device may receive processing requests from other entities and perform some or all of the processing automatically in response to the requests.

 各秘密鍵は、当該秘密鍵を用いる装置が正しい者により操作あるいは管理されている場合には当該装置からアクセス可能であり、それ以外の場合にはアクセス困難であるように管理されるべきである。アクセス管理のために、例えば、パスワード、物理トークン、生体情報、またはこれらの組合せ等を用いた、任意の認証手段を用いることができる。各公開鍵は、公開されてもよいし、少なくとも当該公開鍵を用いる装置からアクセス可能であればよい。各復号鍵の管理方法は、例えば、各秘密鍵の管理方法と同様である。 Each private key should be managed so that it is accessible from a device using the private key when the device is operated or managed by a legitimate person, but is difficult to access in other cases. For access management, any authentication means can be used, for example, using a password, a physical token, biometric information, or a combination of these. Each public key may be made public, and it is sufficient that it is accessible at least from a device using the public key. The management method for each decryption key is, for example, the same as the management method for each private key.

 第1暗号化鍵が公開鍵暗号方式における暗号化鍵である場合、第1暗号化鍵は、公開されることができる。第1暗号化鍵が共通鍵暗号方式における暗号化鍵である場合、第1暗号化鍵の管理方法は、例えば、各秘密鍵の管理方法と同様である。また、第1暗号鍵ペアが共通鍵暗号方式の場合、システムが第1暗号化鍵DB170を有さず、第1復号鍵を用いて暗号化処理を行うようにしてもよい。 If the first encryption key is an encryption key in a public key cryptosystem, the first encryption key can be made public. If the first encryption key is an encryption key in a common key cryptosystem, the management method of the first encryption key is, for example, the same as the management method of each private key. Also, if the first encryption key pair is a common key cryptosystem, the system may not have the first encryption key DB 170 and may perform encryption processing using the first decryption key.

 図2は、実施例1におけるメッセージ提示システム10に含まれる各エンティティを構成する計算機のハードウェア構成例を表すブロック図である。計算機10000は、例えば、CPU(Central Processing Unit)10001、メモリ10002、補助記憶装置10003、入力装置10004、出力装置10005、通信装置10006、及び読込装置10007を有する。 FIG. 2 is a block diagram showing an example of the hardware configuration of the computers constituting each entity included in the message presentation system 10 in the first embodiment. The computer 10000 has, for example, a CPU (Central Processing Unit) 10001, a memory 10002, an auxiliary storage device 10003, an input device 10004, an output device 10005, a communication device 10006, and a reading device 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が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。 The CPU 10001 includes a processor and executes programs stored in the memory 10002. The memory 10002 includes a ROM (Read Only Memory), which is a non-volatile storage element, and a RAM (Random Access Memory), which is a volatile storage element. The ROM stores immutable programs (e.g., BIOS (Basic Input/Output System)). The RAM is a high-speed, volatile storage element such as a DRAM (Dynamic Random Access Memory), and temporarily stores programs executed by the CPU 10001 and data used when the programs are executed.

 補助記憶装置10003は、例えば、磁気記憶装置(HDD(Hard Disk Drive))、フラッシュメモリ(SSD(Solid State Drive))等の大容量かつ不揮発性の記憶装置であり、CPU10001が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置10003から読み出されて、メモリ10002にロードされて、CPU10001によって実行される。 The auxiliary storage device 10003 is, for example, a large-capacity, non-volatile storage device such as a magnetic storage device (HDD (Hard Disk Drive)) or a flash memory (SSD (Solid State Drive)), and stores the programs executed by the CPU 10001 and data used when the programs are executed. In other words, the programs are read from the auxiliary storage device 10003, loaded into the memory 10002, and executed by the CPU 10001.

 入力装置10004は、キーボードやマウスなどの、オペレータからの入力を受ける装置である。出力装置10005は、ディスプレイ装置やプリンタなどの、プログラムの実行結果をオペレータが視認可能な形式で出力する装置である。 The input device 10004 is a device, such as a keyboard or mouse, that receives input from an operator. The output device 10005 is a device, such as a display device or printer, that outputs the results of program execution in a format that can be viewed by the operator.

 通信装置10006は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。また、通信装置10006は、例えば、USB(Universal Serial Bus)等のシリアルインターフェースを含んでもよい。 The communication device 10006 is a network interface device that controls communication with other devices according to a specific protocol. The communication device 10006 may also include a serial interface such as a Universal Serial Bus (USB).

 CPU10001が実行するプログラムの一部またはすべては、非一時的記憶媒体であるリムーバブルメディア(CD-ROM、フラッシュメモリなど)又は、非一時的記憶装置を備える外部計算機からネットワークを介して計算機10000に提供され、非一時的記憶媒体である不揮発性の補助記憶装置10003に格納されてもよい。読込装置10007は、例えば、このようなリムーバブルメディアからデータを読み込むインターフェース装置である。 A part or all of the programs executed by the CPU 10001 may be provided to the computer 10000 via a network from a removable medium (CD-ROM, flash memory, etc.) that is a non-transitory storage medium, or from an external computer equipped with a non-transitory storage device, and may be stored in a non-volatile auxiliary storage device 10003 that is a non-transitory storage medium. The reading device 10007 is, for example, an interface device that reads data from such removable media.

 各エンティティは、物理的に一つの計算機10000上で、又は、論理的又は物理的に構成された複数の計算機10000上で構成される計算機システムであり、同一の計算機10000上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。 Each entity is a computer system configured on one physical computer 10000, or on multiple computers 10000 configured logically or physically, and may operate in separate threads on the same computer 10000, or may operate on a virtual computer constructed on multiple physical computer resources.

 各装置を構成する計算機10000に含まれるCPU10001は、図1において説明した当該装置が備える機能部を含む。具体的には、例えば、発行者鍵ペア生成装置100を構成する計算機10000に含まれるCPU10001は、例えば、通信部101及び発行者鍵ペア生成部102を含む。例えば、発行者鍵ペア生成装置100を構成する計算機10000に含まれるCPU10001は、当該計算機10000に含まれるメモリ10002にロードされた通信プログラムに従って動作することで、通信部101として機能し、当該メモリ10002にロードされた発行者鍵ペア生成プログラムに従って動作することで、発行者鍵ペア生成部102として機能する。他の装置を構成する計算機10000に含まれるCPU10001に含まれる他の機能部についても、プログラムと機能部の関係は同様である。 The CPU 10001 included in the computer 10000 constituting each device includes the functional units of the device described in FIG. 1. Specifically, for example, the CPU 10001 included in the computer 10000 constituting the issuer key pair generation device 100 includes, for example, a communication unit 101 and an issuer key pair generation unit 102. For example, the CPU 10001 included in the computer 10000 constituting the issuer key pair generation device 100 functions as the communication unit 101 by operating according to a communication program loaded into a memory 10002 included in the computer 10000, and functions as the issuer key pair generation unit 102 by operating according to an issuer key pair generation program loaded into the memory 10002. The relationship between the program and the functional unit is similar for other functional units included in the CPU 10001 included in the computer 10000 constituting other devices.

 なお、各装置に含まれる機能部による機能の一部又は全部が、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)等のハードウェアによって実現されてもよい。 In addition, some or all of the functions of the functional units included in each device may be realized by hardware such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field-Programmable Gate Array).

 メッセージ提示システム10に含まれる各エンティティが保持する情報は、当該エンティティを構成する計算機10000のメモリ10002又は補助記憶装置10003に格納される。なお、本実施形態において、メッセージ提示システム10が使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、リスト、テーブル、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。 The information held by each entity included in the message presentation system 10 is stored in the memory 10002 or auxiliary storage device 10003 of the computer 10000 constituting the entity. Note that in this embodiment, the information used by the message presentation system 10 may be expressed in any data structure independent of the data structure. For example, the information may be stored in a data structure appropriately selected from a list, a table, a database, or a queue.

 なお、例えば、メッセージ提示システム10に含まれるDBの一部又は全部がIC(Integrated Circuit)カードやリムーバブルメディアによって実現されてもよい。この場合、各装置がDBへデータを送信する処理に代えて、当該装置が当該ICカードや当該リムーバブルメディアへの当該データを書き込む処理が実行され、各DBから各装置へデータを送信する処理に代えて、当該装置が当該ICカードや当該リムーバブルメディアから当該データを読み込む処理が実行される。 Note that, for example, some or all of the DBs included in the message presentation system 10 may be realized by IC (Integrated Circuit) cards or removable media. In this case, instead of each device sending data to a DB, the device writes the data to the IC card or removable media, and instead of each DB sending data to each device, the device reads the data from the IC card or removable media.

[メッセージに関する各処理の概要]
 本実施例におけるメッセージ関する各処理の概要は以下の通りである。発行処理において、発行装置200が、メッセージを生成し、第1暗号化装置250に送信する。第1暗号化装置250が、メッセージに対して第1暗号化処理を行うことで第1暗号化メッセージを生成し、暗号化メッセージDB260に送信する。暗号化メッセージDB260が、第1暗号化メッセージを格納する。
[Overview of message-related processes]
An overview of each process related to a message in this embodiment is as follows: In the issuing process, the issuing device 200 generates a message and transmits it to the first encryption device 250. The first encryption device 250 performs a first encryption process on the message to generate a first encrypted message and transmits it to the encrypted message DB 260. The encrypted message DB 260 stores the first encrypted message.

 提示処理において、暗号化メッセージDB260が、第1暗号化メッセージを第2暗号化装置350に送信する。第2暗号化装置350が、第1暗号化メッセージに対して第2暗号化処理を行うことで2重暗号化メッセージを生成し、提示装置400に送信する。提示装置400が、2重暗号化メッセージに対し第1復号処理を行うことで第2暗号化メッセージを生成し、検証装置450に送信する。検証装置450が、第2暗号化メッセージに対し第2復号処理を行うことでメッセージを復号する。このようにして、メッセージが提示装置400から検証装置450に提示される。 In the presentation process, the encrypted message DB 260 transmits the first encrypted message to the second encryption device 350. The second encryption device 350 generates a doubly encrypted message by performing a second encryption process on the first encrypted message, and transmits it to the presentation device 400. The presentation device 400 generates a second encrypted message by performing a first decryption process on the doubly encrypted message, and transmits it to the verification device 450. The verification device 450 decrypts the message by performing a second decryption process on the second encrypted message. In this manner, the message is presented from the presentation device 400 to the verification device 450.

 このように、本実施例におけるメッセージの提示において、提示装置400から検証装置450にメッセージそのものは送信されず、第2暗号化メッセージが送信されることに注意すべきである。 As such, it should be noted that when presenting a message in this embodiment, the message itself is not sent from the presentation device 400 to the verification device 450, but rather a second encrypted message is sent.

 なお、提示処理において、より一般的に、メッセージの関数値を提示することを目的とする場合もある。例として、メッセージが2つの値の組(m_1,m_2)からなり、関数値としてm_1+m_2を提示することを目的とする場合が挙げられる。ただし、記号「_」は添字を表す。メッセージそのものではなくメッセージの関数値を提示する方法は、検証者がメッセージの関数値の提示を要求している場合に、所有者が必要以上の情報の提示を避けるために効果的である。 More generally, in the presentation process, the objective may be to present a function value of a message. For example, a message may consist of a pair of two values (m_1, m_2), and the objective is to present m_1+m_2 as the function value. Here, the symbol "_" represents a subscript. Presenting the function value of a message, rather than the message itself, is effective in preventing the owner from presenting more information than necessary when the verifier requests the presentation of the function value of the message.

 このような、メッセージの関数値を提示する場合も含めて説明するために、以下のような、より一般化された提示処理のフローをこれ以降説明するものとする。なお、上記したような、メッセージそのものを提示する場合も、以下のような一般化された提示処理に含まれることに注意すべきである。すなわち、メッセージそのものを提示する場合は、以下の例において、提示用変換が恒等変換であり(提示用変換を実行しない場合も含む)、かつ、メッセージの関数値がメッセージそのものであるとした場合であると考えることができる。 In order to explain the case where the function value of a message is presented as well, the flow of a more generalized presentation process will be described below. Note that the case where the message itself is presented as described above is also included in the generalized presentation process below. In other words, when the message itself is presented, it can be considered that in the following example, the presentation transformation is an identity transformation (including the case where the presentation transformation is not executed) and the function value of the message is the message itself.

 より一般化された提示処理のフローでは、暗号化メッセージDB260が、第1暗号化メッセージを第2暗号化装置350に送信する。第2暗号化装置350が、第1暗号化メッセージに対し第2暗号化処理を行うことで2重暗号化メッセージを生成し、提示装置400に送信する。提示装置400が、2重暗号化メッセージに対し第1復号処理を行うことで第2暗号化メッセージを生成する。さらに、提示装置400が、第2暗号化メッセージに対し提示用変換を行うことで変換後第2暗号化メッセージを生成し、検証装置450に送信する。検証装置450が、変換後第2暗号化メッセージに対し第2復号処理を行うことでメッセージの関数値を復号する。このようにして、メッセージの関数値が提示装置400から検証装置450に提示される。 In a more generalized presentation process flow, the encrypted message DB 260 transmits a first encrypted message to the second encryption device 350. The second encryption device 350 generates a doubly encrypted message by performing a second encryption process on the first encrypted message, and transmits the message to the presentation device 400. The presentation device 400 generates a second encrypted message by performing a first decryption process on the doubly encrypted message. Furthermore, the presentation device 400 generates a converted second encrypted message by performing a presentation conversion on the second encrypted message, and transmits the converted message to the verification device 450. The verification device 450 decrypts the functional value of the message by performing a second decryption process on the converted second encrypted message. In this way, the functional value of the message is presented from the presentation device 400 to the verification device 450.

 このような、本実施例における、より一般化された提示処理においても、メッセージの関数値の提示において、提示装置400から検証装置450にメッセージの関数値そのものは送信されず、変換後第2暗号化メッセージが送信されることに注意すべきである。 It should be noted that even in this more generalized presentation process in this embodiment, when presenting the function value of the message, the function value of the message itself is not transmitted from the presentation device 400 to the verification device 450, but the converted second encrypted message is transmitted.

 また、本実施例において、発行装置200は、メッセージとともに発行用証明を生成する。発行用証明は、例えば、メッセージの内容や所有者の正当性等を証明するための情報である。さらに、提示装置400は、発行用証明をもとに提示用証明を生成する。提示用証明は、例えば、提示されたメッセージの関数値の正当性や、提示処理が正しい所有者により行われていること等を証明するための情報である。 In addition, in this embodiment, the issuing device 200 generates an issuance proof together with the message. The issuance proof is information for proving, for example, the contents of the message and the legitimacy of the owner. Furthermore, the presentation device 400 generates a presentation proof based on the issuance proof. The presentation proof is information for proving, for example, the legitimacy of the function value of the presented message and that the presentation process is being performed by the correct owner.

 メッセージ、発行用証明、及び提示用証明に関するこのような処理フローは、例えば自己主権型アイデンティティ(Self―Sovereign Identity)や分散型アイデンティティ(Decentralized Identity)に関するシステムに用いることができる。 This processing flow for messages, issuance proofs, and presentation proofs can be used, for example, in systems related to self-sovereign identity and decentralized identity.

 ただし、メッセージが、発行装置200によって発行用証明とともに生成されるという処理は、あくまで一例であり、このように生成されるメッセージに限らず、任意のメッセージに対して本発明を用いることができる。そのためには、第1暗号化装置250がメッセージを受信し、各エンティティが、それ以降の処理として、本実施例と同様の処理を行えばよい。 However, the process in which a message is generated together with an issuance certificate by the issuing device 200 is merely one example, and the present invention can be used for any message, not just messages generated in this way. To do so, the first encryption device 250 receives the message, and each entity performs the same process as in this embodiment as the subsequent process.

 また、発行用証明は必ずしも生成されなくてもよい。発行用証明が生成されないとき、メッセージ提示システム10は、それ以降の発行用証明に関する処理を省略すればよく、また、発行者鍵ペア生成及び格納を省略すればよい。このとき、メッセージ提示システム10は、省略される各処理に対応する機能部及びDBを備えなくてもよい。また、メッセージ提示システム10は、発行用証明を生成しない場合でも、提示用証明を生成してもよい。提示用証明が生成されないとき、メッセージ提示システム10は、それ以降の提示用証明に関する処理(例えば、検証装置450による検証処理)を省略すればよく、また、所有者証明用鍵ペア生成及び格納を省略すればよい。 Furthermore, the issuance certificate does not necessarily have to be generated. When the issuance certificate is not generated, the message presentation system 10 may omit subsequent processing related to the issuance certificate, and may also omit the generation and storage of the issuer key pair. In this case, the message presentation system 10 may not be provided with a functional unit and DB corresponding to each omitted process. Furthermore, the message presentation system 10 may generate a presentation certificate even when the issuance certificate is not generated. When the presentation certificate is not generated, the message presentation system 10 may omit subsequent processing related to the presentation certificate (e.g., the verification process by the verification device 450), and may also omit the generation and storage of the owner certification key pair.

[処理フロー]
 図3は、実施例1における発行者鍵ペア生成処理の一例を示すシーケンス図である。ステップS1101では、発行者鍵ペア生成部102が、発行者秘密鍵と発行者公開鍵を生成する。
[Processing flow]
3 is a sequence diagram showing an example of an issuer key pair generation process in the embodiment 1. In step S1101, the issuer key pair generation unit 102 generates an issuer private key and an issuer public key.

 ステップS1102では、発行者鍵ペア生成装置100の通信部101が、生成された発行者秘密鍵を発行者秘密鍵DB110に送信する。ステップS1111では、発行者秘密鍵DB110が、発行者秘密鍵を格納する。 In step S1102, the communication unit 101 of the issuer key pair generation device 100 transmits the generated issuer private key to the issuer private key DB 110. In step S1111, the issuer private key DB 110 stores the issuer private key.

 ステップS1103では、発行者鍵ペア生成装置100の通信部101が、生成された発行者公開鍵を発行者公開鍵DB120に送信する。ステップS1121では、発行者公開鍵DB120が、発行者公開鍵を格納する。 In step S1103, communication unit 101 of issuer key pair generation device 100 transmits the generated issuer public key to issuer public key DB 120. In step S1121, issuer public key DB 120 stores the issuer public key.

 図4は、実施例1における所有者証明用鍵ペア生成処理の一例を示すシーケンス図である。ステップS2131では、所有者証明用鍵ペア生成部132が、所有者証明用秘密鍵と所有者検証用公開鍵を生成する。 FIG. 4 is a sequence diagram showing an example of an owner certification key pair generation process in the first embodiment. In step S2131, the owner certification key pair generation unit 132 generates an owner certification private key and an owner verification public key.

 ステップS2132では、所有者証明用鍵ペア生成装置130の通信部131が、生成された所有者証明用秘密鍵を所有者証明用秘密鍵DB140に送信する。ステップS2141では、所有者証明用秘密鍵DB140が、所有者証明用秘密鍵を格納する。 In step S2132, the communication unit 131 of the owner certification key pair generation device 130 transmits the generated owner certification private key to the owner certification private key DB 140. In step S2141, the owner certification private key DB 140 stores the owner certification private key.

 ステップS2133では、所有者証明用鍵ペア生成装置130の通信部131が、生成された所有者検証用公開鍵を所有者検証用公開鍵DB150に送信する。ステップS2151では、所有者検証用公開鍵DB150が、所有者検証用公開鍵を格納する。 In step S2133, the communication unit 131 of the owner verification key pair generation device 130 transmits the generated owner verification public key to the owner verification public key DB 150. In step S2151, the owner verification public key DB 150 stores the owner verification public key.

 図5は、実施例1における第1暗号鍵ペア生成処理の一例を示すシーケンス図である。ステップS3161では、第1暗号鍵ペア生成部162が、第1暗号方式の鍵ペア生成処理を行い、第1暗号化鍵と第1復号鍵を生成する。第1暗号方式の具体例については後述する。 FIG. 5 is a sequence diagram showing an example of a first encryption key pair generation process in the first embodiment. In step S3161, the first encryption key pair generation unit 162 performs a key pair generation process of the first encryption method to generate a first encryption key and a first decryption key. A specific example of the first encryption method will be described later.

 ステップS3162では、第1暗号鍵ペア生成装置160の通信部161が、生成された第1暗号化鍵を第1暗号化鍵DB170に送信する。ステップS3171では、第1暗号化鍵DB170が、第1暗号化鍵を格納する。 In step S3162, the communication unit 161 of the first encryption key pair generation device 160 transmits the generated first encryption key to the first encryption key DB 170. In step S3171, the first encryption key DB 170 stores the first encryption key.

 ステップS3163では、第1暗号鍵ペア生成装置160の通信部161が、生成された第1復号鍵を第1復号鍵DB180に送信する。ステップS3181では、第1復号鍵DB180が、第1復号鍵を格納する。 In step S3163, the communication unit 161 of the first encryption key pair generation device 160 transmits the generated first decryption key to the first decryption key DB 180. In step S3181, the first decryption key DB 180 stores the first decryption key.

 図6は、実施例1における発行処理の一例を示すシーケンス図である。ステップS4111では、発行者秘密鍵DB110が、格納された発行者秘密鍵を発行装置200に送信する。 FIG. 6 is a sequence diagram showing an example of an issuance process in the first embodiment. In step S4111, the issuer private key DB 110 transmits the stored issuer private key to the issuing device 200.

 ステップS4201では、メッセージ生成部202が、メッセージを生成する。ステップS4151では、所有者検証用公開鍵DB150が、格納された所有者検証用公開鍵を発行装置200に送信する。なお、送信された所有者検証用公開鍵が発行処理の対象である所有者のものかを確認するために、発行装置200は、当該所有者に対する所有者証明用秘密鍵DB140に、所有者証明用秘密鍵の知識証明の送信を要求し、受信した所有者証明用秘密鍵の知識証明を検証する等の方法を用いてもよい。 In step S4201, the message generating unit 202 generates a message. In step S4151, the owner verification public key DB 150 transmits the stored owner verification public key to the issuing device 200. Note that in order to confirm whether the transmitted owner verification public key belongs to the owner who is the subject of the issuance process, the issuing device 200 may use a method such as requesting the owner verification private key DB 140 for that owner to transmit a knowledge proof of the owner verification private key and verifying the knowledge proof of the received owner verification private key.

 ステップS4202では、発行用証明生成部203が、発行者秘密鍵と、所有者検証用公開鍵と、生成されたメッセージと、を用いて発行用証明を生成する。なお、発行用証明生成部203は、発行用証明を生成するために、所有者検証用公開鍵を用いなくてもよいが、所有者検証用公開鍵を用いることで、発行対象の所有者の情報を検証者が検証できるようになる。所有者検証用公開鍵が用いられない場合、メッセージ提示システム10は、ステップS4151の処理を省略してよい。 In step S4202, the issuance certificate generation unit 203 generates an issuance certificate using the issuer private key, the owner verification public key, and the generated message. Note that the issuance certificate generation unit 203 does not need to use the owner verification public key to generate the issuance certificate, but using the owner verification public key allows the verifier to verify information about the owner to whom the certificate is issued. If the owner verification public key is not used, the message presentation system 10 may omit the processing of step S4151.

 ステップS4203では、発行装置200の通信部201が、生成されたメッセージと発行用証明を第1暗号化装置250に送信する。ステップS4171では、第1暗号化鍵DB170が、格納された第1暗号化鍵を第1暗号化装置250に送信する。 In step S4203, the communication unit 201 of the issuing device 200 transmits the generated message and the issuance certificate to the first encryption device 250. In step S4171, the first encryption key DB 170 transmits the stored first encryption key to the first encryption device 250.

 ステップS4251では、第1暗号化部252が、生成されたメッセージに対して第1暗号化鍵を用いた第1暗号化処理を行うことで、第1暗号化メッセージを生成する。また、第1暗号化部252が、生成された発行用証明に対して第1暗号化鍵を用いた第1暗号化処理を行うことで、第1暗号化発行用証明を生成する。第1暗号化処理は、例えば、第1暗号方式の暗号化処理である。 In step S4251, the first encryption unit 252 performs a first encryption process using a first encryption key on the generated message to generate a first encrypted message. The first encryption unit 252 also performs a first encryption process using the first encryption key on the generated issuance certificate to generate a first encrypted issuance certificate. The first encryption process is, for example, an encryption process using the first encryption method.

 ステップS4252では、第1暗号化装置250の通信部251が、生成された第1暗号化メッセージと第1暗号化発行用証明を暗号化メッセージDB260に送信する。ステップS4261では、暗号化メッセージDB260が、第1暗号化メッセージと第1暗号化発行用証明を格納する。 In step S4252, the communication unit 251 of the first encryption device 250 transmits the generated first encrypted message and the first encryption issuance certificate to the encrypted message DB 260. In step S4261, the encrypted message DB 260 stores the first encrypted message and the first encryption issuance certificate.

 図7は、実施例1における提示処理の一例を示すシーケンス図である。ステップS5261では、暗号化メッセージDB260が、格納された第1暗号化メッセージを第2暗号化装置350に送信する。ステップS5262では、暗号化メッセージDB260が、格納された第1暗号化発行用証明を提示装置400に送信する。 FIG. 7 is a sequence diagram showing an example of the presentation process in the first embodiment. In step S5261, the encrypted message DB 260 transmits the stored first encrypted message to the second encryption device 350. In step S5262, the encrypted message DB 260 transmits the stored first encryption issuance proof to the presentation device 400.

 ステップS5301では、第2暗号鍵ペア生成部302が、第2暗号方式の鍵ペア生成処理を行い、第2暗号化鍵と第2復号鍵を生成する。第2暗号方式の具体例については後述する。ステップS5302では、第2暗号鍵ペア生成装置300の通信部301が、生成された第2暗号化鍵を第2暗号化装置350に送信する。ステップS5303では、第2暗号鍵ペア生成装置300の通信部301が、生成された第2復号鍵を検証装置450に送信する。 In step S5301, the second encryption key pair generation unit 302 performs a key pair generation process for the second encryption method to generate a second encryption key and a second decryption key. A specific example of the second encryption method will be described later. In step S5302, the communication unit 301 of the second encryption key pair generation device 300 transmits the generated second encryption key to the second encryption device 350. In step S5303, the communication unit 301 of the second encryption key pair generation device 300 transmits the generated second decryption key to the verification device 450.

 ステップS5351では、第2暗号化部352が、第1暗号化メッセージに対して第2暗号化鍵を用いた第2暗号化処理を行うことで、2重暗号化メッセージを生成する。第2暗号化処理の例は、第2暗号方式の暗号化処理である。また、第2暗号化処理として、後述する内部暗号化処理が行われてもよい。 In step S5351, the second encryption unit 352 performs a second encryption process on the first encrypted message using a second encryption key, thereby generating a doubly encrypted message. An example of the second encryption process is an encryption process using the second encryption method. In addition, the second encryption process may be an internal encryption process, which will be described later.

 ステップS5352では、第2暗号化装置350の通信部351が、生成された2重暗号化メッセージを提示装置400に送信する。ステップS5181では、第1復号鍵DB180が、格納された第1復号鍵を提示装置400に送信する。ステップS5141では、所有者証明用秘密鍵DB140が、格納された所有者証明用秘密鍵を提示装置400に送信する。 In step S5352, the communication unit 351 of the second encryption device 350 transmits the generated double encrypted message to the presentation device 400. In step S5181, the first decryption key DB 180 transmits the stored first decryption key to the presentation device 400. In step S5141, the owner certification private key DB 140 transmits the stored owner certification private key to the presentation device 400.

 ステップS5401では、第1復号部402が、2重暗号化メッセージに対して第1復号鍵を用いた第1復号処理を行うことで、第2暗号化メッセージを生成する。第1復号処理の例は、第1暗号方式の復号処理である。また、第1復号部402が、第1暗号化発行用証明に対して第1復号鍵を用いた第1暗号方式の復号処理を行うことで、発行用証明を復元する。 In step S5401, the first decryption unit 402 performs a first decryption process on the doubly encrypted message using the first decryption key to generate a second encrypted message. An example of the first decryption process is a decryption process using the first encryption method. The first decryption unit 402 also performs a decryption process using the first encryption method on the first encrypted issuance certificate using the first decryption key to restore the issuance certificate.

 ステップS5402では、提示用変換部403が、生成された第2暗号化メッセージと、復元された発行用証明と、を用いた提示用変換を行うことで、変換後第2暗号化メッセージを生成する。ステップS5403では、提示装置400の通信部401が、生成された変換後第2暗号化メッセージを検証装置450に送信する。なお、提示用変換が恒等変換である場合(提示用変換が実行されない場合も含む)、変換後第2暗号化メッセージは第2暗号化メッセージと同じである。恒等変換以外の提示用変換を用いて生成された第2暗号化メッセージと、恒等変換を用いて生成された(提示用変換が実行されなかった場合も含む)第2暗号化メッセージと、を総称して単に第2暗号化メッセージとも呼ぶし、送信用第2暗号化メッセージとも呼ぶ。 In step S5402, the presentation conversion unit 403 performs a presentation conversion using the generated second encrypted message and the restored issuance certificate to generate a converted second encrypted message. In step S5403, the communication unit 401 of the presentation device 400 transmits the generated converted second encrypted message to the verification device 450. Note that if the presentation conversion is an identity conversion (including the case where the presentation conversion is not performed), the converted second encrypted message is the same as the second encrypted message. A second encrypted message generated using a presentation conversion other than an identity conversion and a second encrypted message generated using an identity conversion (including the case where the presentation conversion is not performed) are collectively referred to simply as a second encrypted message or as a transmission second encrypted message.

 ステップS5404では、提示用証明生成部404が、提示用証明を生成する。提示用証明生成部404は、提示用証明の生成において、第2暗号化メッセージと発行用証明のうち少なくとも一つを用いてもよいし、検証装置450から乱数等のデータを受信したうえで、当該受信したデータを用いてもよい。ステップS5405では、提示装置400の通信部401が、生成された提示用証明を検証装置450に送信する。 In step S5404, the presentation proof generating unit 404 generates a presentation proof. In generating the presentation proof, the presentation proof generating unit 404 may use at least one of the second encrypted message and the issuance proof, or may receive data such as a random number from the verification device 450 and use the received data. In step S5405, the communication unit 401 of the presentation device 400 transmits the generated presentation proof to the verification device 450.

 ステップS5451では、第2復号部452が、変換後第2暗号化メッセージに対して第2復号鍵を用いた第2復号処理を行うことで、メッセージの関数値を復元する。なお、一連の処理が正しく行われている場合に第2復号処理によりメッセージの関数値が正しく復元できるように、第1暗号化処理、第2暗号化処理、第1復号処理、提示用変換処理、及び第2復号処理の組合せが適切に設定されているものとする。第1暗号化処理、第2暗号化処理、第1復号処理、提示用変換処理、及び第2復号処理の組合せの例は後述する。 In step S5451, the second decryption unit 452 performs a second decryption process using the second decryption key on the converted second encrypted message to restore the function value of the message. Note that it is assumed that the combination of the first encryption process, the second encryption process, the first decryption process, the presentation conversion process, and the second decryption process is appropriately set so that the function value of the message can be correctly restored by the second decryption process when the series of processes is performed correctly. Examples of combinations of the first encryption process, the second encryption process, the first decryption process, the presentation conversion process, and the second decryption process will be described later.

 なお、一連の処理が正しく行われている場合に第2復号処理によりメッセージの関数値が正しく復元できる確率は、必ずしも1でなくてもよい。ただし、メッセージの関数値を提示するという目的を達成するために、この確率は高いほど望ましい。 Note that the probability that the function value of the message can be correctly restored by the second decoding process when the series of processes is performed correctly does not necessarily have to be 1. However, in order to achieve the goal of presenting the function value of the message, it is desirable for this probability to be as high as possible.

 ステップS5452では、検証部453が、提示用証明と、復元されたメッセージの関数値と、を用いた検証処理を行い、検証結果を出力する。出力される検証結果の例は、「検証成功」または「検証失敗」である。一連の処理が正しく行われている場合に高確率で検証結果が「検証成功」となり、かつ、一連の処理の中で不正があった場合に高確率で検証結果が「検証失敗」となるように、発行用証明生成処理、提示用証明生成処理、及び検証処理の組合せが適切に設定されているものとする。発行用証明生成処理、提示用証明生成処理、及び検証処理の組合せの具体例は後述する。 In step S5452, the verification unit 453 performs a verification process using the proof for presentation and the function value of the restored message, and outputs the verification result. Examples of the output verification results are "verification success" or "verification failure". It is assumed that the combination of the proof for issuance generation process, the proof for presentation generation process, and the verification process is appropriately set so that the verification result is "verification success" with a high probability if the series of processes is performed correctly, and the verification result is "verification failure" with a high probability if any fraud has occurred in the series of processes. Specific examples of combinations of the proof for issuance generation process, the proof for presentation generation process, and the verification process will be described later.

 ステップS5453では、出力部454が、復元されたメッセージの関数値と検証結果を出力する。出力部454が、当該復元されたメッセージの関数値と検証結果を出力する出力先は、検証装置450を構成する計算機10000に含まれる出力装置10005(ディスプレイ画面)であってもよいし、検証装置450に接続された他の装置等、任意の出力手段であってもよい。 In step S5453, the output unit 454 outputs the function value of the restored message and the verification result. The output destination to which the output unit 454 outputs the function value of the restored message and the verification result may be the output device 10005 (display screen) included in the computer 10000 constituting the verification device 450, or may be any output means, such as another device connected to the verification device 450.

 図8は、実施例1における内容確認処理の一例を示すシーケンス図である。ステップS6261では、暗号化メッセージDB260が、格納された第1暗号化メッセージを内容確認装置500に送信する。ステップS6181では、第1復号鍵DB180が、格納された第1復号鍵を内容確認装置500に送信する。 FIG. 8 is a sequence diagram showing an example of content confirmation processing in the first embodiment. In step S6261, the encrypted message DB 260 transmits the stored first encrypted message to the content confirmation device 500. In step S6181, the first decryption key DB 180 transmits the stored first decryption key to the content confirmation device 500.

 ステップS6501では、第1復号部502が、第1復号鍵を用いて、第1暗号化メッセージに対して第1復号処理を行い、メッセージを復元する。ステップS6502では、出力部503が、復号されたメッセージを出力する。出力部503が、当該復元されたメッセージを出力する出力先は、内容確認装置500を構成する計算機10000に含まれる出力装置10005(ディスプレイ画面)であってもよいし、内容確認装置500に接続された他の装置等、任意の出力手段であってもよい。 In step S6501, the first decryption unit 502 performs a first decryption process on the first encrypted message using the first decryption key to restore the message. In step S6502, the output unit 503 outputs the decrypted message. The output destination to which the output unit 503 outputs the restored message may be the output device 10005 (display screen) included in the computer 10000 constituting the content confirmation device 500, or may be any output means, such as another device connected to the content confirmation device 500.

 なお、各シーケンス図では省略されているが、各エンティティによる最初の処理は、例えば、当該エンティティを操作するユーザからの処理開始要求を受け付けること、別のエンティティからの処理開始要求を受け付けること、又は、所定のデータを受信すること、により開始すればよく、処理開始の条件は予め定められていればよい。 Although omitted in each sequence diagram, the initial processing by each entity may be started, for example, by receiving a processing start request from a user operating the entity, by receiving a processing start request from another entity, or by receiving specified data, and the conditions for starting processing may be determined in advance.

 例えば、提示処理における第2暗号鍵ペア生成装置300の処理開始は、提示装置400からの処理開始要求を受け付けることにより開始するようにすればよい。このとき、提示装置400から第2暗号鍵ペア生成装置300への処理開始要求は、提示装置400が所有者から提示処理開始の要求を受け付けることにより行うようにすればよい。 For example, the second encryption key pair generation device 300 may start processing in the presentation process by receiving a processing start request from the presentation device 400. At this time, the processing start request from the presentation device 400 to the second encryption key pair generation device 300 may be made by the presentation device 400 receiving a request to start the presentation process from the owner.

 また、各データの送信に関して、当該データを必要とするエンティティが、当該データを保持するエンティティに対して送信要求を送り、当該送信要求への応答として、当該データを保持するエンティティが当該データを送信するようにしてもよい。なお、送信要求には、各エンティティの操作者または管理者に対する要求を含んでもよい。例えば、第1復号鍵DB180がICカードである場合、第1復号鍵を必要とするエンティティが、当該ICカードの管理者(すなわち、所有者)に対して、当該ICカードを当該エンティティにかざす旨のテキストの表示や音声ガイダンスの出力を行ってもよい。 Furthermore, with regard to the transmission of each data, an entity requiring the data may send a transmission request to an entity that holds the data, and in response to the transmission request, the entity that holds the data may transmit the data. The transmission request may include a request to an operator or administrator of each entity. For example, if the first decryption key DB180 is an IC card, the entity requiring the first decryption key may display text or output audio guidance to the administrator (i.e., the owner) of the IC card to hold the IC card over the entity.

[第1暗号化処理、第2暗号化処理、第1復号処理、提示用変換処理、及び第2復号処理の組合せの具体例]
 まず、ステップS4251における第1暗号化処理、ステップS5351における第2暗号化処理、ステップS5401における第1復号処理、ステップS5402における提示用変換処理、及びステップS5451における第2復号処理の組合せの具体例の説明のために、暗号方式の具体例を説明する。各暗号方式は鍵ペア生成処理、暗号化処理、及び復号処理を含む。以下の説明において、鍵ペア生成処理、暗号化処理、及び復号処理を行う装置を、それぞれ、鍵ペア生成装置、暗号化装置、及び復号装置と呼ぶ。
[Specific example of combination of first encryption process, second encryption process, first decryption process, presentation conversion process, and second decryption process]
First, a specific example of an encryption method will be described in order to explain a specific example of a combination of the first encryption process in step S4251, the second encryption process in step S5351, the first decryption process in step S5401, the presentation conversion process in step S5402, and the second decryption process in step S5451. Each encryption method includes a key pair generation process, an encryption process, and a decryption process. In the following description, devices that perform the key pair generation process, the encryption process, and the decryption process are called a key pair generation device, an encryption device, and a decryption device, respectively.

 以下の暗号方式の説明において、暗号化対象のメッセージをm、暗号化鍵をek、復号鍵をdk、復号対象の暗号化メッセージをc、復号されるメッセージをm’と表記する。暗号方式Xに含まれる鍵ペア生成処理、暗号化処理、及び復号処理を、それぞれ、KG_X、Enc_X、及びDec_Xと表記する。暗号方式Xにおいて、ekを用いて、mに対して暗号化処理を行った結果をEnc_X(m;ek)と表記する。暗号方式Xにおいて、dkを用いて、cに対して復号処理を行った結果をDec_X(c;dk)と表記する。 In the following explanation of the encryption method, the message to be encrypted is denoted as m, the encryption key as ek, the decryption key as dk, the encrypted message to be decrypted as c, and the decrypted message as m'. The key pair generation process, encryption process, and decryption process included in encryption method X are denoted as KG_X, Enc_X, and Dec_X, respectively. In encryption method X, the result of encryption process for m using ek is denoted as Enc_X(m;ek). In encryption method X, the result of decryption process for c using dk is denoted as Dec_X(c;dk).

 暗号方式Aは、例えば、以下のような共通鍵暗号方式とする。mは可換群の元であるとし、群の演算を「+」で表され、+の逆演算を「-」で表される。鍵ペア生成処理において、鍵ペア生成装置は、乱数sを生成し、ek=s、dk=sにより鍵ペアを生成する。暗号化処理は、Enc_A(m;ek)=m+ekにより定められる。復号処理は、Dec_A(c;dk)=c-dkにより定められる。 Encryption method A is, for example, the following common key encryption method. m is an element of a commutative group, the group operation is represented by "+", and the inverse operation of + is represented by "-". In the key pair generation process, the key pair generation device generates a random number s, and generates a key pair by setting ek = s and dk = s. The encryption process is defined as Enc_A(m; ek) = m + ek. The decryption process is defined as Dec_A(c; dk) = c - dk.

 なお、鍵ペア生成処理において、sを別の乱数s’に対する関数値(例えば、疑似乱数生成器により得られる値)としてもよい。その場合、ek,dkの代わりにs’を格納し、暗号化処理及び復号処理の際にs’からsを計算するようにしてもよい。 In addition, in the key pair generation process, s may be a function value for another random number s' (e.g., a value obtained by a pseudorandom number generator). In that case, s' may be stored instead of ek and dk, and s may be calculated from s' during encryption and decryption processes.

 また、暗号方式Aの暗号化処理及び復号処理において、処理対象以外のデータaが追加で入力されてもよく、その場合、Enc_A((m,a);ek)=(Enc_A(m;ek),a)及びDec_A((c,a);dk)=(Dec_X(c;dk),a)と定められる。 Furthermore, in the encryption and decryption processes of cryptographic method A, data a other than the data to be processed may be additionally input, in which case Enc_A((m,a);ek) = (Enc_A(m;ek),a) and Dec_A((c,a);dk) = (Dec_X(c;dk),a).

 暗号方式Bは、例えば、ElGamal暗号とする。mは可換群の元であるとする。ただし、本実施形態への適用のため、以下のように各処理を定義する。鍵ペア生成処理において、鍵ペア生成装置は、乱数xを生成し、ek=g^s、dk=sと定める。ただし、gは可換群の生成元であり、記号「^」は累乗を表す。 The encryption method B is, for example, ElGamal encryption. m is an element of a commutative group. However, for application to this embodiment, each process is defined as follows. In the key pair generation process, the key pair generation device generates a random number x, and determines ek = g^s and dk = s. Here, g is the generator of the commutative group, and the symbol "^" represents a power.

 暗号方式Bの暗号化処理では、mとリストLを入力とし、暗号化装置は、cと更新後のリストL’を出力する。このことは、(c,L’)=Enc_B((m,L);ek)と表される。ただし、{}を空のリストとし、mと(m,{})を同一視する。(c,L’)は以下の通り計算される。暗号化装置は、乱数rを生成し、c=ek^r*mと定める。ただし、記号「*」は積を表す。さらに、暗号化装置は、リストLにg^rを追加したものをL’とする。リストLに追加される各g^Lを、これ以降、補助暗号文と呼ぶ。 In the encryption process of encryption method B, m and list L are input, and the encryption device outputs c and the updated list L'. This is expressed as (c, L') = Enc_B((m, L); ek), where { } is the empty list, and m and (m, { }) are considered to be the same. (c, L') is calculated as follows. The encryption device generates a random number r, and sets c = ek^r * m, where the symbol "*" represents a product. Furthermore, the encryption device adds g^r to list L, and sets L' to it. Each g^L added to list L is hereafter referred to as an auxiliary ciphertext.

 暗号方式Bの復号処理では、cとリストLを入力とし、復号装置は、m’と更新後のリストL’を出力する。(m’,L’)は以下の通り計算される。復号装置は、リストLから、dkに対応するekを用いて行われた暗号化処理においてリストLに追加された補助暗号文zを取得する。そのうえで、復号装置は、m’=c*z^(-dk)により復号する。また、復号装置は、L’を、リストLからzを取り除いたものと定める。ただし、Lからzを取り除くことは本質的ではなく、リストL’をリストLそのものと定めてもよい。 In the decryption process of encryption method B, c and list L are input, and the decryption device outputs m' and the updated list L'. (m', L') is calculated as follows. The decryption device obtains from list L the auxiliary ciphertext z that was added to list L in the encryption process performed using ek corresponding to dk. The decryption device then decrypts using m' = c * z^(-dk). The decryption device also defines L' as list L with z removed. However, removing z from L is not essential, and list L' may be defined as list L itself.

 暗号方式Cは、例えば、準同型性を持つ任意の公開鍵暗号方式とする。すなわち、暗号方式Cは、2つのメッセージm[1]とm[2]に対して、Enc_C(m[1];ek)とEnc_C(m[2];ek)からEnc_C(m[1]+m[2];ek)が計算可能という性質を持つとする。ただし、演算+は必ずしも加法でなくてもよく、群に関する任意の演算でもよい。このとき、演算-は+の逆演算とすればよい。例えば、RSA暗号、ElGamal暗号、Lifted―ElGamal暗号、又はPailler暗号等の準同型性を持つ任意の公開鍵暗号方式を、暗号方式Cとして用いることができる。 The encryption method C may be, for example, any public key encryption method that is homomorphic. In other words, the encryption method C has the property that for two messages m[1] and m[2], Enc_C(m[1]+m[2];ek) can be calculated from Enc_C(m[1];ek) and Enc_C(m[2];ek). However, the operation + does not necessarily have to be additive, and may be any operation related to groups. In this case, the operation - may be the inverse operation of +. For example, any public key encryption method that is homomorphic, such as RSA encryption, ElGamal encryption, Lifted-ElGamal encryption, or Pailler encryption, may be used as the encryption method C.

 これらの暗号方式を用いて、第1暗号化処理、第2暗号化処理、第1復号処理、提示用変換処理、及び第2復号処理の組合せの具体例を説明する。以下、第1暗号化鍵をek_1、第2暗号化鍵をek_2で表す。復号鍵、各変数、各関数、及び各処理に関しても、同様に添え字により第1暗号方式のものと第2暗号方式のものを区別する。例えば、第1暗号方式に関して、dk_1,s_1,h_1,Enc_1,Dec_1等の表記を用いる。また、第1暗号化メッセージをq_1,2重暗号化メッセージをq_12,第2暗号化メッセージをq_2で表す。メッセージの関数値をf(m)で表し、復号されるメッセージ関数値をM’で表す。このとき、めざすことはM’=f(m)となるような処理の組合せを設計することである。 Using these encryption methods, a specific example of a combination of the first encryption process, the second encryption process, the first decryption process, the presentation conversion process, and the second decryption process will be described. In the following, the first encryption key will be represented as ek_1, and the second encryption key as ek_2. Similarly, the decryption keys, variables, functions, and processes will be distinguished between those of the first encryption method and those of the second encryption method by subscripts. For example, the first encryption method will be represented as dk_1, s_1, h_1, Enc_1, Dec_1, etc. Furthermore, the first encrypted message will be represented as q_1, the doubly encrypted message as q_12, and the second encrypted message as q_2. The message function value will be represented as f(m), and the decrypted message function value will be represented as M'. In this case, the goal is to design a combination of processes such that M' = f(m).

 以下に説明する1つ目の具体例から4つ目の具体例では、第1暗号化処理を第1暗号方式の暗号化処理、第2暗号化処理を第2暗号方式の暗号化処理、第1復号処理を第1暗号方式の復号処理、提示用変換処理を恒等変換、第2復号処理を第2暗号方式の復号処理、メッセージの関数値f(m)をf(m)=mとする。 In the first to fourth specific examples described below, the first encryption process is an encryption process using the first encryption method, the second encryption process is an encryption process using the second encryption method, the first decryption process is a decryption process using the first encryption method, the presentation conversion process is an identity conversion, the second decryption process is a decryption process using the second encryption method, and the function value f(m) of the message is f(m) = m.

 1つ目の具体例を説明する。第1暗号方式を暗号方式A、第2暗号方式を暗号方式Aとする。このとき、第1暗号化メッセージq_1はq_1=Enc_A(m;ek_1)=m+ek_1となる。よって、2重暗号化メッセージq_12は、q_12=Enc_A(q_1;ek_2)=m+ek_1+ek_2である。ただし、ek_1=dk_1、ek_2=dk_2である。 The first specific example will be explained. The first encryption method is encryption method A, and the second encryption method is encryption method A. In this case, the first encrypted message q_1 is q_1=Enc_A(m;ek_1)=m+ek_1. Therefore, the doubly encrypted message q_12 is q_12=Enc_A(q_1;ek_2)=m+ek_1+ek_2. However, ek_1=dk_1, ek_2=dk_2.

 よって、第2暗号化メッセージq_2は、q_2=Dec_A(q_12;dk_1)=m+ek_1+ek_2-dk_1=m+ek_2となり、復号されるメッセージ関数値は、M’=Dec_A(q_2;dk_2)=m+ek_2-dk_2=mとなる。よって、mが正しく復元される。 Therefore, the second encrypted message q_2 is q_2 = Dec_A(q_12; dk_1) = m + ek_1 + ek_2 - dk_1 = m + ek_2, and the decrypted message function value is M' = Dec_A(q_2; dk_2) = m + ek_2 - dk_2 = m. Therefore, m is correctly restored.

 2つ目の具体例を説明する。第1暗号方式を暗号方式B、第2暗号方式を暗号方式Bとする。このとき、q_1=Enc_B(m;ek_1)=(ek_1^r_1*m,{g_1^r_1})となる。よって、q_12=Enc_B(q_1;ek_2)=(ek_2^r_2*ek_1^r_1*m,{g_1^r_1,g_2^r_2})となる。 The second specific example will be explained. The first encryption method is encryption method B, and the second encryption method is encryption method B. In this case, q_1 = Enc_B(m;ek_1) = (ek_1^r_1*m, {g_1^r_1}). Therefore, q_12 = Enc_B(q_1;ek_2) = (ek_2^r_2*ek_1^r_1*m, {g_1^r_1, g_2^r_2}).

 第1復号処理において、リスト{g_1^r_1,g_2^r_2}からg_1^r_1が取り出されることに注意すると、q_2=Dec_B(q_12;dk_1)=(ek_2^r_2*ek_1^r_1*m*(g_1^r_1)^(-dk_1),{g_2^r_2})=(ek_2^r_2*m,{g_2^r_2})となる。よって、M’=Dec_B(q_2;dk_2)=ek_2^r_2*m*(g_2^r_2)^(-dk_2)=mとなる。よって、mが正しく復元される。 Note that in the first decryption process, g_1^r_1 is extracted from the list {g_1^r_1, g_2^r_2}, so q_2 = Dec_B(q_12; dk_1) = (ek_2^r_2 * ek_1^r_1 * m * (g_1^r_1) ^ (-dk_1), {g_2^r_2}) = (ek_2^r_2 * m, {g_2^r_2}). Therefore, M' = Dec_B(q_2; dk_2) = ek_2^r_2 * m * (g_2^r_2) ^ (-dk_2) = m. Therefore, m is correctly restored.

 3つ目の具体例を説明する。第1暗号方式を暗号方式A、第2暗号方式を暗号方式Bとする。ただし、暗号方式Aにおける可換群は暗号方式Bにおける可換群と同じであるとする。このとき、q_1=Enc_A(m;ek_1)=m*ek_1となる。よって、q_12=Enc_B(q_1;ek_2)=(ek_2^r_2*m*ek_1,{g_2^r_2})となる。 The third specific example will be explained. The first encryption method is encryption method A, and the second encryption method is encryption method B. However, the commutative group in encryption method A is the same as the commutative group in encryption method B. In this case, q_1 = Enc_A(m;ek_1) = m*ek_1. Therefore, q_12 = Enc_B(q_1;ek_2) = (ek_2^r_2*m*ek_1, {g_2^r_2}).

 よって、q_2=Dec_A(q_12;dk_1)=(ek_2^r_2*m*ek_1*dk_1^(-1),{g_2^r_2})=(ek_2^r_2*m,{g_2^r_2})となる。よって、M’=Dec_B(q_2;dk_2)=ek_2^r_2*m*(g_2^r_2)^(-dk_2)=mとなる。よって、mが正しく復元される。 Therefore, q_2 = Dec_A(q_12; dk_1) = (ek_2^r_2*m*ek_1*dk_1^(-1), {g_2^r_2}) = (ek_2^r_2*m, {g_2^r_2}). Therefore, M' = Dec_B(q_2; dk_2) = ek_2^r_2*m*(g_2^r_2)^(-dk_2) = m. Therefore, m is correctly restored.

 4つ目の具体例として、第1暗号方式を暗号方式B、第2暗号方式を暗号方式Aとしても、mが正しく復元されることが分かる。 As a fourth concrete example, it can be seen that m can be correctly restored even if the first encryption method is encryption method B and the second encryption method is encryption method A.

 上記した1つ目の具体例から4つ目の具体例のように、第1暗号方式と第2暗号方式の暗号化処理が可換であれば、つまり「任意のメッセージに対して、第1暗号方式による第1暗号化処理を実行してから第2暗号方式による第2暗号化処理を実行することにより得られる暗号文と、第2暗号方式による第2暗号化処理を実行してから第1暗号方式による第1暗号化処理を実行することにより得られる暗号文と、が等しくなる(ただし、第1暗号化処理において内部で乱数が用いられる場合は、当該乱数が同じ値に揃えられ、第2暗号化処理において内部で乱数が用いられる場合は、当該乱数が同じ値に揃えられたうえで比較されるとする)」という条件を満たしていれば、第1暗号化処理を第1暗号方式の暗号化処理、第2暗号化処理を第2暗号方式の暗号化処理、第1復号処理を第1暗号方式の復号処理、提示用変換処理を恒等変換、第2復号処理を第2暗号方式の復号処理とすることで、メッセージが正しく復号される。 As in the first to fourth concrete examples above, if the encryption processes of the first and second encryption methods are interchangeable, that is, if the condition that "for any message, the ciphertext obtained by performing the first encryption process using the first encryption method and then the second encryption process using the second encryption method is equal to the ciphertext obtained by performing the second encryption process using the second encryption method and then the first encryption process using the first encryption method is equal (however, if random numbers are used internally in the first encryption process, the random numbers are set to the same value, and if random numbers are used internally in the second encryption process, the random numbers are set to the same value before comparison) is met, then the message can be correctly decrypted by setting the first encryption process to an encryption process using the first encryption method, the second encryption process to an encryption process using the second encryption method, the first decryption process to a decryption process using the first encryption method, the presentation conversion process to an identity conversion, and the second decryption process to a decryption process using the second encryption method.

 5つ目の具体例では、第1暗号方式を暗号方式C、第2暗号方式を暗号方式Aとする。第1暗号化処理を第1暗号方式の暗号化処理、第1復号処理を第1暗号方式の復号処理、提示用変換処理を恒等変換、第2復号処理を第2暗号方式の復号処理、メッセージの関数値f(m)をf(m)=mとする。第2暗号化処理は、ek_1とek_2とq_1=Enc_C(m;ek_1)とを用いてq_12=Enc_C(m+ek_2;ek_1)を計算する処理とする。ただし、ek_1が公開鍵であるため、第2暗号化装置350が安全性を保ったままek_1を使用することが可能である。q_12の計算方法の例として、Enc_C(ek_2;ek_1)を計算したうえで、暗号方式Cの準同型性を利用し、q_1=Enc_C(m;ek_1)とEnc_C(ek_2;ek_1)からq_12=Enc_C(m+ek_2;ek_1)を計算する、という方法が挙げられる。 In the fifth specific example, the first encryption method is encryption method C and the second encryption method is encryption method A. The first encryption process is encryption process of the first encryption method, the first decryption process is decryption process of the first encryption method, the presentation conversion process is identity conversion, the second decryption process is decryption process of the second encryption method, and the message function value f(m) is f(m) = m. The second encryption process is a process of calculating q_12 = Enc_C(m + ek_2; ek_1) using ek_1, ek_2 and q_1 = Enc_C(m; ek_1). However, since ek_1 is a public key, it is possible for the second encryption device 350 to use ek_1 while maintaining security. One example of a method for calculating q_12 is to calculate Enc_C(ek_2;ek_1), and then use the homomorphism of encryption method C to calculate q_12=Enc_C(m+ek_2;ek_1) from q_1=Enc_C(m;ek_1) and Enc_C(ek_2;ek_1).

 このとき、q_12=Enc_C(m+ek_2;ek_1)=Enc_C(Enc_A(m;ek_2);ek_1)と表せる。よって、第1復号処理において第1暗号方式である暗号方式Cの復号処理を行うことにより、Enc_A(m;ek_2)が得られる。すなわち、q_2=Dec_C(q_12;dk_1)=Enc_A(m;ek_2)となる。よって、M’=Dec_A(q_2;dk_2)=mとなる。よって、mが正しく復号される。 In this case, q_12 = Enc_C(m + ek_2; ek_1) = Enc_C(Enc_A(m; ek_2); ek_1). Therefore, by performing the decryption process of encryption method C, which is the first encryption method, in the first decryption process, Enc_A(m; ek_2) is obtained. In other words, q_2 = Dec_C(q_12; dk_1) = Enc_A(m; ek_2). Therefore, M' = Dec_A(q_2; dk_2) = m. Therefore, m is correctly decrypted.

 上記した5つ目の具体例では、第1暗号方式の暗号化処理により生成された第1暗号化メッセージq_1=Enc_1(m;ek_1)から、Enc_1(Enc_2(m;ek_2);ek_1)を計算し、この値をq_12と定めている。すなわち、メッセージに対する第1暗号方式の暗号化処理により得られる暗号文から、「メッセージに対する第2暗号方式の暗号化処理により得られる暗号文」に対する第1暗号方式の暗号化処理により得られる暗号文を生成する処理を行っている。この処理を、内部暗号化と呼ぶことにする。 In the fifth specific example mentioned above, Enc_1(Enc_2(m;ek_2);ek_1) is calculated from the first encrypted message q_1=Enc_1(m;ek_1) generated by the encryption process using the first encryption method, and this value is defined as q_12. In other words, a process is performed to generate a ciphertext obtained by encryption process using the first encryption method for the "ciphertext obtained by encryption process using the second encryption method for the message" from the ciphertext obtained by encryption process using the first encryption method for the message. This process is referred to as internal encryption.

 上記した5つ目の具体例に限らず、第1暗号化処理を第1暗号方式の暗号化処理、第2暗号化処理を内部暗号化処理、第1復号処理を第1暗号方式の復号処理、提示用変換処理を恒等変換、第2復号処理を第2暗号方式の復号処理とすることにより、mが正しく復号される。例えば、上記した1つ目の具体例においても、q_12=Enc_A(Enc_A(m;ek_2);ek_1)である。よって、1つ目の具体例は、第1暗号化処理を第1暗号方式の暗号化処理、第2暗号化処理を内部暗号化処理、第1復号処理を第1暗号方式の復号処理、提示用変換処理を恒等変換、第2復号処理を第2暗号方式の復号処理とする例であると捉えることができる。 In addition to the fifth specific example described above, m can be correctly decrypted by setting the first encryption process to an encryption process using the first encryption method, the second encryption process to an internal encryption process, the first decryption process to a decryption process using the first encryption method, the presentation conversion process to an identity conversion, and the second decryption process to a decryption process using the second encryption method. For example, in the first specific example described above, q_12 = Enc_A (Enc_A (m; ek_2); ek_1). Therefore, the first specific example can be considered to be an example in which the first encryption process is an encryption process using the first encryption method, the second encryption process is an internal encryption process, the first decryption process is a decryption process using the first encryption method, the presentation conversion process to an identity conversion, and the second decryption process is a decryption process using the second encryption method.

 なお、第2暗号化処理を内部暗号化処理とする代わりに、第1復号処理を以下のような内部復号処理とすることによっても、mを正しく復号することができる。第1暗号化処理を第1暗号方式の暗号化処理、第2暗号化処理を第2暗号方式の暗号化処理とすると、q_12=Enc_2(Enc_1(m;ek_1);ek_2)となる。内部復号処理を、このようなq_12からEnc_2(m;ek_2)を得る処理と定める。このような内部復号処理を用いて、第1暗号化処理を第1暗号方式の暗号化処理、第2暗号化処理を第2暗号方式の暗号化処理、第1復号処理を内部復号処理、提示用変換処理を恒等変換、第2復号処理を第2暗号方式の復号処理とすると、第2復号処理によってmを正しく復号することができる。 In addition, m can be correctly decrypted by making the first decryption process an internal decryption process as follows, instead of making the second encryption process an internal encryption process. If the first encryption process is an encryption process of the first encryption method, and the second encryption process is an encryption process of the second encryption method, then q_12 = Enc_2 (Enc_1 (m; ek_1); ek_2). The internal decryption process is defined as a process for obtaining Enc_2 (m; ek_2) from such q_12. Using such internal decryption process, if the first encryption process is an encryption process of the first encryption method, the second encryption process is an encryption process of the second encryption method, the first decryption process is an internal decryption process, the presentation conversion process is an identity conversion, and the second decryption process is a decryption process of the second encryption method, then m can be correctly decrypted by the second decryption process.

 例えば、1つ目の具体例では、q_12=Enc_2(Enc_1(m;ek_1);ek_2)であり、q_2=Enc_2(m;ek_2)である。よって、1つ目の具体例は、第1暗号化処理を第1暗号方式の暗号化処理、第2暗号化処理を第2暗号方式の暗号化処理、第1復号処理を内部復号処理、提示用変換処理を恒等変換、第2復号処理を第2暗号方式の復号処理とする例であると捉えることもできる。 For example, in the first specific example, q_12 = Enc_2 (Enc_1 (m; ek_1); ek_2) and q_2 = Enc_2 (m; ek_2). Therefore, the first specific example can also be considered as an example in which the first encryption process is an encryption process of the first encryption method, the second encryption process is an encryption process of the second encryption method, the first decryption process is an internal decryption process, the presentation conversion process is an identity conversion, and the second decryption process is a decryption process of the second encryption method.

 また、上記した1つ目から5つ目までの具体例において、第2暗号化メッセージは、メッセージに対して第2暗号方式の暗号化処理を行うことにより得られる暗号化メッセージの形式である。上記した具体例に限らず、第2暗号化メッセージがこのような条件を満たすような、第1暗号化処理、第2暗号化処理、及び第1復号処理の組を用いることで、第2復号処理によりメッセージが復元できる。 In addition, in the first to fifth specific examples above, the second encrypted message is in the form of an encrypted message obtained by performing encryption processing of the second encryption method on the message. Not limited to the above specific examples, the message can be restored by the second decryption processing by using a combination of the first encryption processing, the second encryption processing, and the first decryption processing such that the second encrypted message satisfies these conditions.

 6つ目の具体例を説明する。ここで、メッセージmが1つ以上のメッセージm[1],m[2],...,m[n](ただし、nは1以上の整数)の組からなるとき、m[1],m[2],...,m[n]のそれぞれをメッセージ要素と呼ぶ。6つ目の具体例では、メッセージmが2つのメッセージ要素m[1],m[2]の組によりm=(m[1],m[2])と定義されるとし、メッセージの関数値としてf(m)=m[1]+m[2]を提示する方法の例が与えられる。 The sixth concrete example will be explained. Here, when message m consists of one or more sets of messages m[1], m[2], ..., m[n] (where n is an integer equal to or greater than 1), each of m[1], m[2], ..., m[n] is called a message element. In the sixth concrete example, message m is defined as a set of two message elements m[1] and m[2] as m=(m[1], m[2]), and an example of how to present f(m)=m[1]+m[2] as the function value of the message is given.

 当該6つ目の具体例における第1暗号化処理、第2暗号化処理、第1復号処理に関しては、1つ目の具体例の方法をm[1],m[2]に対して独立に適用する。このとき、m[1],m[2]に対応する第2暗号化メッセージをそれぞれq_2[1],q_2[2]で表すと、q_2はこれらの組であり、q_2=(q_2[1],q_2[2])=(m[1]+ek_2[1],m[2]+ek_2[2])である。ただし、m[1],m[2]に対応する第2暗号化鍵をそれぞれek_2[1],ek_2[2]で表し、m[1],m[2]に対応する第2復号鍵をそれぞれdk_2[1],dk_2[2]で表す。  As for the first encryption process, second encryption process, and first decryption process in the sixth specific example, the method of the first specific example is applied independently to m[1] and m[2]. In this case, if the second encrypted messages corresponding to m[1] and m[2] are represented as q_2[1] and q_2[2], respectively, q_2 is a set of these, and q_2 = (q_2[1], q_2[2]) = (m[1] + ek_2[1], m[2] + ek_2[2]). However, the second encryption keys corresponding to m[1] and m[2] are represented as ek_2[1] and ek_2[2], respectively, and the second decryption keys corresponding to m[1] and m[2] are represented as dk_2[1] and dk_2[2], respectively.

 さらに、変換後第2暗号化メッセージをq_2[1]+q_2[2]により計算する。さらに、第2復号処理においてM’=q_2[1]+q_2[2]-dk_2[1]-dk_2[2]を計算する。これにより、M’=m[1]+ek_2[1]+m[2]+ek_2[2]-dk_2[1]-dk_2[2]=m[1]+m[2]となり、f(m)が正しく復元される。 Furthermore, the converted second encrypted message is calculated by q_2[1] + q_2[2]. Furthermore, in the second decryption process, M' = q_2[1] + q_2[2] - dk_2[1] - dk_2[2] is calculated. As a result, M' = m[1] + ek_2[1] + m[2] + ek_2[2] - dk_2[1] - dk_2[2] = m[1] + m[2], and f(m) is correctly restored.

 なお、第2暗号鍵ペア生成装置300から検証装置450に、第2復号鍵として(dk_2[1],dk_2[2])が送信されてもよいが、dk_2[1]+dk_2[2]が送信されてもよい。この例のように、第2復号鍵そのものではなく、第2復号に必要なデータのみが送信されるようにしてもよい。 Note that the second encryption key pair generation device 300 may transmit (dk_2[1], dk_2[2]) as the second decryption key to the verification device 450, or dk_2[1]+dk_2[2] may be transmitted. As in this example, only the data necessary for the second decryption may be transmitted, rather than the second decryption key itself.

 上記した第1暗号化処理、第2暗号化処理、第1復号処理、提示用変換処理、及び第2復号処理の組合せはあくまで一例であり、メッセ―ジの関数値が正しく復号されるような任意の組合せを用いてよい。 The above-mentioned combination of the first encryption process, second encryption process, first decryption process, presentation conversion process, and second decryption process is merely an example, and any combination that correctly decrypts the function value of the message may be used.

 なお、第2復号処理においてメッセージの関数値が復元されるためには、第1暗号化処理、第2暗号化処理、第1復号処理、提示用変換処理、及び第2復号処理の組合せが適切に設計される必要があることに注意すべきである。例えば、暗号方式Aと処理は同じであるが、可換ではない群を対象とする方式を暗号方式A’とし、具体例1において暗号方式Aの代わりに暗号方式A’を用いる場合を考える。このとき、第1暗号化処理、第2暗号化処理、第1復号処理、及び第2復号処理を順に行うことにより得られる値は、m+ek_1+ek_2-dk_1-dk_2であるが、当該値はmに一致するとは限らない。 It should be noted that in order for the function value of the message to be restored in the second decryption process, the combination of the first encryption process, the second encryption process, the first decryption process, the presentation conversion process, and the second decryption process must be designed appropriately. For example, consider a case where encryption method A' is a method that uses the same process as encryption method A but targets a non-commutative group, and encryption method A' is used instead of encryption method A in specific example 1. In this case, the value obtained by sequentially performing the first encryption process, the second encryption process, the first decryption process, and the second decryption process is m + ek_1 + ek_2 - dk_1 - dk_2, but this value does not necessarily match m.

[発行用証明生成処理、提示用証明生成処理、及び検証処理の組合せの具体例]
 ステップS4202における発行用証明生成処理、ステップS5404における提示用証明生成処理、及びステップS5452における検証処理の組合せの具体例を説明する。1つ目の具体例を説明する。1つ目の具体例では、発行用証明は不要とする。ただし、これ以降の具体例と組み合わせる等の処理を行うことにより、発行用証明を生成してもよい。
[Specific example of combination of issuance certificate generation process, presentation certificate generation process, and verification process]
A specific example of a combination of the issuance certificate generation process in step S4202, the presentation certificate generation process in step S5404, and the verification process in step S5452 will be described. The first example will be described. In the first example, an issuance certificate is not required. However, an issuance certificate may be generated by performing a process of combining with the subsequent examples.

 提示用証明生成処理では、提示用証明生成部404が、所有者証明用秘密鍵を用いて、所有者証明用秘密鍵の知識証明を生成する。提示用証明生成部404は当該知識証明の生成において、検証装置450で生成される乱数等のデータを受け取ってもよい。また、提示用証明生成部404が、提示する変換後第2暗号化メッセージに対する電子署名を生成する。そのうえで、提示用証明生成部404は、発行用証明と、所有者証明用秘密鍵の知識証明と、の組を提示用証明とする。 In the presentation proof generation process, the presentation proof generation unit 404 uses the owner proof private key to generate a knowledge proof of the owner proof private key. In generating the knowledge proof, the presentation proof generation unit 404 may receive data such as random numbers generated by the verification device 450. The presentation proof generation unit 404 also generates a digital signature for the converted second encrypted message to be presented. The presentation proof generation unit 404 then generates a pair of the issuance proof and the knowledge proof of the owner proof private key as the presentation proof.

 検証処理では、検証部453は、まず、所有者検証用公開鍵を用いて、所有者証明用秘密鍵の知識証明を検証する。検証部453は、これにより、提示装置400を操作している者が正しい所有者であることを検証できる。また、検証部453は、所有者検証用公開鍵を用いて、第2暗号化メッセージと、第2暗号化メッセージに対する電子署名と、の関係を検証する。検証部453は、これにより、当該所有者から第2暗号化メッセージが送信されたという事実を検証できる。 In the verification process, the verification unit 453 first verifies the knowledge proof of the owner certification private key using the owner verification public key. This allows the verification unit 453 to verify that the person operating the presentation device 400 is the correct owner. The verification unit 453 also uses the owner verification public key to verify the relationship between the second encrypted message and the digital signature for the second encrypted message. This allows the verification unit 453 to verify the fact that the second encrypted message was sent by the owner.

 また、第2復号鍵により第2暗号化メッセージからメッセージの関数値が復号されることから、当該所有者がメッセージの関数値を提示したという事実を検証していることも意味する。なお、検証装置450またはその他のエンティティが、第2暗号化メッセージと、第2暗号化メッセージに対する電子署名と、第2復号鍵と、を格納することにより、当該所有者がメッセージの関数値を提示したという事実を事後的にも検証できる。 In addition, because the function value of the message is decrypted from the second encrypted message using the second decryption key, this also means that the fact that the owner presented the function value of the message is verified. Note that by having the verification device 450 or another entity store the second encrypted message, the digital signature for the second encrypted message, and the second decryption key, it is possible to verify after the fact that the owner presented the function value of the message.

 なお、提示装置400を操作している者が正しい所有者であることと、当該所有者がメッセージの関数値を提示したという事実と、の両方を検証できるようにするために、提示用証明生成部404は、第2暗号化メッセージと、検証装置450から送信される乱数等のデータと、の組に対して電子署名を生成し、生成された電子署名を提示用証明としてもよい。 In order to verify both that the person operating the presentation device 400 is the correct owner and that the owner has presented the function value of the message, the presentation proof generating unit 404 may generate an electronic signature for a pair of the second encrypted message and data such as a random number sent from the verification device 450, and use the generated electronic signature as the presentation proof.

 2つ目の具体例を説明する。2つ目の具体例では、墨塗署名方式を用いて発行用証明が生成される例を説明する。メッセージがn個(nは1以上の整数)のメッセージ要素m[1],m[2],...,m[n]の組からなるとする。すなわち、m=(m[1],m[2],...,m[n])により定義されるとする。 The second specific example will be explained. In the second specific example, an example will be explained in which a certificate for issuance is generated using the sanitizable signature method. Assume that a message consists of a set of n message elements m[1], m[2], ..., m[n] (n is an integer equal to or greater than 1). In other words, assume that m is defined as m = (m[1], m[2], ..., m[n]).

 メッセージmに対する関数値は、f(m)=(m[i_1],...,m[i_k])とする。ただし、kは1以上n以下の整数であり、{i_1,...,i_b}は{1,...n}の部分集合である。すなわち、f(m)は、mに含まれるメッセージ要素の一部または全部からなる組である。また、N={1,...,n},D={i_1,...,i_b}と定める。 The function value for message m is f(m) = (m[i_1], ..., m[i_k]), where k is an integer between 1 and n, and {i_1, ... , i_b} is a subset of {1, ... n}. In other words, f(m) is a set consisting of some or all of the message elements contained in m. Also, let N = {1, ... , n} and D = {i_1, ... , i_b}.

 発行用証明生成処理において、発行用証明生成部203は、ハッシュ関数Hashを用いて、各i=1,...,nに対してHash(m[i])を計算する。そのうえで、発行用証明生成部203は、H=(Hash(m[1]),...,Hash(m[n]))と定め、発行者秘密鍵を用いてHに対する電子署名q_0を生成する。そのうえで、発行用証明生成部203は、発行用証明を(N,H,q_0)により定める。 In the issuance proof generation process, the issuance proof generation unit 203 uses the hash function Hash to calculate Hash(m[i]) for each i = 1,...,n. Then, the issuance proof generation unit 203 determines H = (Hash(m[1]),...,Hash(m[n])) and generates a digital signature q_0 for H using the issuer private key. Then, the issuance proof generation unit 203 determines the issuance proof by (N,H,q_0).

 提示用証明生成処理において、提示用証明生成部404は、提示用証明を、(D,H,q_0)により定める。 In the presentation proof generation process, the presentation proof generation unit 404 determines the presentation proof by (D, H, q_0).

 検証処理において、検証部453は、発行者公開鍵を用いてHとq_0の関係を検証する。さらに、検証部453は、Dに含まれる各iに対して、Hに含まれる各Hash(m[i])の値と、復号されたf(m)=(m[i_1],...,m[i_k])に含まれる各m[i]から計算されるHash(m[i])が検証する。検証部453は、両方の検証に成功した場合に検証成功を示す検証結果を出力し、それ以外の場合に検証失敗を示す検証結果を出力する。 In the verification process, the verification unit 453 verifies the relationship between H and q_0 using the issuer public key. Furthermore, for each i included in D, the verification unit 453 verifies the value of each Hash(m[i]) included in H and Hash(m[i]) calculated from each m[i] included in the decrypted f(m) = (m[i_1], ..., m[i_k]). If both verifications are successful, the verification unit 453 outputs a verification result indicating successful verification, and otherwise outputs a verification result indicating unsuccessful verification.

 メッセージ提示システム10は、このような処理により、メッセージの一部のみを提示し、提示部分の正当性を検証できる。さらに、メッセージ要素のうち1つ以上を所有者検証用公開鍵またはその関数値(ハッシュ値等)とすることにより、発行者が正当な所有者検証用公開鍵を証明することができる。また、検証部453は、1つ目の具体例の方法と2つ目の具体例の方法とを組み合わせることにより、提示装置400を操作している者が正当な所有者であることや、正当な所有者がメッセージの関数値を提示したという事実を検証できる。 By using such processing, the message presentation system 10 can present only a portion of the message and verify the validity of the presented portion. Furthermore, by making one or more of the message elements an owner verification public key or its function value (hash value, etc.), the issuer can prove that the owner verification public key is legitimate. Furthermore, by combining the method of the first specific example with the method of the second specific example, the verification unit 453 can verify that the person operating the presentation device 400 is the legitimate owner and that the legitimate owner has presented the function value of the message.

 なお、送信するメッセージが1つの場合や、選択的提示が不要な場合は、墨塗署名方式に限らず任意の署名方式を用いることができる。その場合、提示用証明は発行用証明そのものとし、検証処理として電子署名の検証処理が実行されればよい。 In addition, if there is only one message to be sent or selective presentation is not required, any signature method can be used, not just the sanitized signature method. In that case, the presentation certificate is the issuance certificate itself, and the verification process is the electronic signature verification process.

 3つ目の具体例を説明する。3つ目の具体例では、ACS(Anonymous Credential System)への適用例を説明する。具体的には、Sandersの方式への適用例を説明する。3つ目の具体例において、2つ目の具体例と同様、メッセージがn個のメッセージ要素からなるとし、メッセージに関する表記も2つ目の具体例と同様とする。 The third specific example will now be explained. In the third specific example, an application example to an ACS (Anonymous Credential System) will be explained. Specifically, an application example to the Sanders method will be explained. In the third specific example, as in the second specific example, a message is assumed to consist of n message elements, and the notation related to messages will also be the same as in the second specific example.

 メッセージに対する第1暗号化、第2暗号化、及び第1復号処理として、各メッセージ要素に対して、第1暗号化処理、第2暗号化処理、第1復号処理、提示用変換処理、及び第2復号処理の組合せで示した1つ目の具体例における第1暗号化、第2暗号化、及び第1復号処理の方法が用いられる。このとき、各i=1,...,nに対し、メッセージ要素m[i]に対応する第2暗号化鍵をs[i]とすると、メッセージは(m[1]+s[1],m[2]+s[2],...,m[n]+s[n])であり、第2復号鍵は(s[1],s[2],...,s[n])である。 As the first encryption, second encryption, and first decryption processes for the message, the first encryption, second encryption, and first decryption processes in the first specific example shown as a combination of the first encryption process, second encryption process, first decryption process, presentation conversion process, and second decryption process are used for each message element. In this case, if the second encryption key corresponding to the message element m[i] is s[i] for each i=1,...,n, the message is (m[1]+s[1],m[2]+s[2],...,m[n]+s[n]) and the second decryption key is (s[1],s[2],...,s[n]).

 pを素数とし、G_1、G_2、G_Tそれぞれを位数pの群とし、eをG_1とG_2の直積からG_Tへのペアリングとする。また、各メッセージ要素は、pを法とする剰余類環Z_pの元であるとする。また、D_0は、Dの元と0とからなる集合とする。さらに、NからDの要素を取り除いて得られる集合をUとする。 Let p be a prime number, G_1, G_2, and G_T be groups of order p, and e be the pairing from the direct product of G_1 and G_2 to G_T. Let each message element be an element of the coset ring Z_p modulo p. Let D_0 be the set consisting of elements of D and 0. Let U be the set obtained by removing the elements of D from N.

 発行者鍵ペア生成処理では、発行者鍵ペア生成部102が、G_1、G_2からそれぞれ単位元ではない元g,hをランダムに選択する。さらに、発行者鍵ペア生成部102は、Z_pから(n+2)個の要素x、y_0、y_1、...、y_nをランダムに生成し、これらの組を発行者秘密鍵とする。一方、発行者鍵ペア生成部102は、発行者公開鍵を、下記の(式1)により定義されるpkにより定める。 In the issuer key pair generation process, the issuer key pair generation unit 102 randomly selects elements g and h from G_1 and G_2, respectively, that are not identity elements. Furthermore, the issuer key pair generation unit 102 randomly generates (n+2) elements x, y_0, y_1, ..., y_n from Z_p, and sets these elements as the issuer private key. On the other hand, the issuer key pair generation unit 102 determines the issuer public key by pk defined by the following (Equation 1).

Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000001

 所有者証明用秘密鍵生成処理では、所有者証明用鍵ペア生成部132が、所有者証明用秘密鍵uskをZ_pからランダムに生成し、所有者検証用公開鍵upkを、upk=h^uskにより定める。
 発行用証明生成処理では、発行用証明生成部203が、乱数rをZ_pからランダムに生成したうえで、下記の(式2)により発行用証明qを生成する。
In the owner proving private key generation process, the owner proving key pair generation unit 132 randomly generates an owner proving private key usk from Z_p, and determines an owner verification public key upk by upk=h^usk.
In the issuance proof generation process, the issuance proof generation unit 203 randomly generates a random number r from Z_p, and then generates an issuance proof q according to the following (Equation 2).

Figure JPOXMLDOC01-appb-M000002
Figure JPOXMLDOC01-appb-M000002

 提示処理において、提示用変換処理に先立ち、提示用証明生成部404が、乱数tをZ_pからランダムに生成する。提示処理では、(m[i_1],...,m[i_k])を提示することを目的とするが、検証のための追加のデータとして、下記の(式3)及び(式4)で定義される(a_1,a_2)も追加したものをメッセージ関数値とする。 In the presentation process, prior to the presentation conversion process, the presentation proof generation unit 404 randomly generates a random number t from Z_p. In the presentation process, the aim is to present (m[i_1], ..., m[i_k]), and as additional data for verification, (a_1, a_2) defined in (Equation 3) and (Equation 4) below are also added to obtain the message function value.

Figure JPOXMLDOC01-appb-M000003
Figure JPOXMLDOC01-appb-M000003

 (m[i_1],...,m[i_b],a_1,a_2)を提示するために、提示用変換部403は、下記の(式5)及び(式6)を用いて(a_1’,a_2’)を計算する。 To present (m[i_1], ..., m[i_b], a_1, a_2), the presentation conversion unit 403 calculates (a_1', a_2') using the following (Equation 5) and (Equation 6).

Figure JPOXMLDOC01-appb-M000004
Figure JPOXMLDOC01-appb-M000004

 そのうえで、提示用変換部403は、変換後第2暗号化メッセージを(m[i_1]+s[i_1],...,m[i_b]+s[i_b],a_1’,a_2’)により定める。 Then, the presentation conversion unit 403 determines the converted second encrypted message as (m[i_1]+s[i_1],...,m[i_b]+s[i_b],a_1',a_2').

 第2復号処理では、第2復号部452が、第2復号鍵(s[1],s[2],...,s[n])を用いて、まず、(m[i_1]+s[i_1],...,m[i_b]+s[i_b])から(m[i_1],...,m[i_k])を計算する。さらに、下記の(式7)及び(式8)の関係が成り立つため、第2復号部452が、この関係式を用いて(a_1,a_2)を復元する。 In the second decryption process, the second decryption unit 452 first calculates (m[i_1], ..., m[i_k]) from (m[i_1] + s[i_1], ..., m[i_b] + s[i_b]) using the second decryption key (s[1], s[2], ..., s[n]). Furthermore, since the relationships in (Equation 7) and (Equation 8) below hold, the second decryption unit 452 restores (a_1, a_2) using these relational expressions.

Figure JPOXMLDOC01-appb-M000005
Figure JPOXMLDOC01-appb-M000005

 提示用証明生成処理と提示用証明検証処理は、以下の通り対話的に行う。まず、提示用証明生成部404が、乱数k,rを生成し、発行用証明qと生成されたk,r,tを用いてq’を下記の(式9)の通り生成する。提示装置400の通信部401は、q’を検証装置450に送信する。 The presentation proof generation process and the presentation proof verification process are performed interactively as follows. First, the presentation proof generation unit 404 generates random numbers k and r, and generates q' using the issuance proof q and the generated k, r, and t as shown in Equation 9 below. The communication unit 401 of the presentation device 400 transmits q' to the verification device 450.

Figure JPOXMLDOC01-appb-M000006
Figure JPOXMLDOC01-appb-M000006

 検証部453は、q’の第1成分と第2成分の少なくとも一方が単位元の場合、「検証失敗」を出力する。そうでない場合、検証部453は、乱数cを生成する。検証装置450の通信部451は、cを提示装置400に送信する。提示用証明生成部404は、sを下記の(式10)により計算する。提示装置400の通信部401は、sを検証装置450に送信する。 If at least one of the first and second components of q' is an identity element, the verification unit 453 outputs "verification failed". Otherwise, the verification unit 453 generates a random number c. The communication unit 451 of the verification device 450 transmits c to the presentation device 400. The presentation proof generation unit 404 calculates s using the following (Equation 10). The communication unit 401 of the presentation device 400 transmits s to the verification device 450.

Figure JPOXMLDOC01-appb-M000007
Figure JPOXMLDOC01-appb-M000007

 検証部453は、Bを下記の(式11)により計算したうえで、(式12)が成り立つとき「検証成功」を出力し、成り立たないとき「検証失敗」を出力する。 The verification unit 453 calculates B using the following (Equation 11), and outputs "verification successful" if (Equation 12) holds, and outputs "verification failed" if it does not hold.

Figure JPOXMLDOC01-appb-M000008
Figure JPOXMLDOC01-appb-M000008

Figure JPOXMLDOC01-appb-M000009
Figure JPOXMLDOC01-appb-M000009

 このようにすることで、本実施形態をACSに適用できる。なお、検証装置450に対して所有者の匿名性を強固にするために、第2暗号鍵ペア生成装置300が複数の所有者に対する提示処理を行えるようにしてもよい。その場合、送信される第2復号鍵がどの提示処理に対応するものかを検証装置450が区別できるようにするため、提示処理ごとに鍵ペアにIDが付与されるとよい。 In this way, this embodiment can be applied to an ACS. Note that, in order to strengthen the anonymity of the owner from the verification device 450, the second encryption key pair generation device 300 may be configured to perform presentation processes for multiple owners. In that case, an ID may be assigned to the key pair for each presentation process so that the verification device 450 can distinguish which presentation process the transmitted second decryption key corresponds to.

[処理フローの変更例]
 各秘密鍵を用いた各処理は、秘密鍵を受信した各装置が行う代わりに、秘密鍵を格納する各DBが行ってもよい。その場合、秘密鍵を用いた各処理に必要なデータが当該DBに送信されるようにすればよい。例えば、提示装置400の第1復号部402が、2重暗号化メッセージに対して第1復号鍵を用いた第1復号処理を行う代わりに、第1復号鍵DB180が2重暗号化メッセージを受信し、2重暗号化メッセージに対して第1復号鍵を用いた第1復号処理を行うことにより、第2暗号化メッセージを生成し、生成された第2暗号化メッセージを提示装置400に送信するようにしてもよい。
[Example of process flow modification]
Each process using each private key may be performed by each DB storing the private key instead of each device receiving the private key. In this case, data required for each process using the private key may be transmitted to the DB. For example, instead of the first decryption unit 402 of the presentation device 400 performing the first decryption process using the first decryption key on the doubly encrypted message, the first decryption key DB 180 may receive the doubly encrypted message, perform the first decryption process using the first decryption key on the doubly encrypted message, generate a second encrypted message, and transmit the generated second encrypted message to the presentation device 400.

 また、メッセージ提示システム10は、発行処理を行う前に、発行対象の所有者が正当であるかを確認するために本人確認を行ってもよい。本人確認は、当該所有者が発行者に対して対面で証明書(例えば、運転免許証、マイナンバーカード、または健康保険証等)を提示することにより行われてもよいし、オンラインで所有者を証明する情報が発行装置200に送信されることにより行われてもよい。本人確認のために、所有者証明用秘密鍵を用いた情報(例えば、所有者証明用秘密鍵の知識証明等)が、所有者が操作する装置等から送信されてもよい。 Before performing the issuing process, the message presentation system 10 may also perform identity verification to confirm that the owner of the message to be issued is legitimate. Identity verification may be performed by the owner presenting a certificate (e.g., a driver's license, My Number card, or health insurance card) to the issuer in person, or by transmitting information to the issuing device 200 that certifies the owner online. For identity verification, information using an owner certification private key (e.g., proof of knowledge of an owner certification private key) may be transmitted from a device operated by the owner.

 また、本実施形態における暗号化対象のメッセージは、別の暗号方式の秘密鍵であってもよい。例えば、第1暗号化装置250が、一時共通鍵を生成し、一時共通鍵により任意のデータを共通鍵暗号化することにより暗号化データを生成したうえで、一時共通鍵をメッセージとして本実施例の処理を行ってもよい。暗号化データは、例えば、第1暗号化メッセージ、2重暗号化メッセージ、及び第2暗号化メッセージ(ただし、これらのデータにおいて、メッセージは一時共通鍵である)とともに検証装置450に送信されればよい。このようにすれば、検証装置450は、一時共通鍵を復号でき、一時共通鍵により暗号化データを復号することにより、第1暗号化装置250において暗号化されたデータを復元できる。 In addition, the message to be encrypted in this embodiment may be a private key of a different encryption method. For example, the first encryption device 250 may generate a temporary common key, generate encrypted data by common key encryption of arbitrary data using the temporary common key, and then perform the processing of this embodiment using the temporary common key as a message. The encrypted data may be transmitted to the verification device 450, for example, together with the first encrypted message, the doubly encrypted message, and the second encrypted message (however, in these data, the message is the temporary common key). In this way, the verification device 450 can decrypt the temporary common key, and by decrypting the encrypted data using the temporary common key, the data encrypted in the first encryption device 250 can be restored.

 また、本実施例では、メッセージ提示システム10は、第2暗号鍵ペアを提示処理ごとに生成するが、その代わりに、メッセージ提示システム10が予め第2暗号鍵ペア生成処理により第2暗号化鍵と第2復号鍵を生成し、これらをDB等に格納するようにしてもよい。 In addition, in this embodiment, the message presentation system 10 generates a second encryption key pair for each presentation process, but instead, the message presentation system 10 may generate a second encryption key and a second decryption key in advance by a second encryption key pair generation process and store them in a DB or the like.

 また、本実施例では、提示装置400が発行用証明を復元するが、発行用証明の漏洩リスクを低減するために、発行用証明そのものが復元されないようにしてもよい。例えば、発行用証明生成処理、提示用証明生成処理、及び検証処理の組合せの2つ目の具体例において、発行用証明に含まれるHやq_0をメッセージとして本実施例の方法を適用できる。 In addition, in this embodiment, the presentation device 400 restores the certificate for issuance, but in order to reduce the risk of leakage of the certificate for issuance, the certificate for issuance itself may not be restored. For example, in the second specific example of the combination of the process for generating a certificate for issuance, the process for generating a certificate for presentation, and the process for verification, the method of this embodiment can be applied with H or q_0 included in the certificate for issuance as a message.

 また、発行用証明生成処理、提示用証明生成処理、及び検証処理の組合せの3つ目の具体例において、m[n+1]を乱数とし、(m[1],...,m[n],m[n+1])をメッセージとして本実施例を行うことにより、発行用証明からメッセージが推定されるリスクを更に低減できる。 In addition, in the third specific example of the combination of the process for generating a certificate for issuance, the process for generating a certificate for presentation, and the process for verifying, by performing this embodiment with m[n+1] as a random number and (m[1], ..., m[n], m[n+1]) as the message, the risk of the message being inferred from the certificate for issuance can be further reduced.

 また、メッセージ提示システム10は、1種類以上のエンティティを複数個備えていてもよい。例えば、メッセージ提示システム10は、暗号化メッセージDB260を各ユーザに対して1つ以上備えてもよい。あるいは、備えられた暗号化メッセージDB260の1つ以上が、複数ユーザのために用いられてもよい。暗号化メッセージDB260が複数個備えられている場合、メッセージ提示システム10は、例えば、各処理において、当該処理に用いられる暗号化メッセージDB260を決定する。 The message presentation system 10 may also include a plurality of entities of one or more types. For example, the message presentation system 10 may include one or more encrypted message DBs 260 for each user. Alternatively, one or more of the provided encrypted message DBs 260 may be used for multiple users. When a plurality of encrypted message DBs 260 are provided, the message presentation system 10, for example, determines, in each process, the encrypted message DB 260 to be used in that process.

 そのために、いずれかのエンティティが、当該処理に用いられる暗号化メッセージDB260のネットワーク上の場所(例えば、URI(Uniform Resource Identifier))を特定すればよい。特定方法として、当該エンティティが、当該場所の情報を入力することを当該エンティティの操作者(例えば、所有者)に要求し、入力された情報に基づき当該場所を特定すればよい。 To achieve this, one of the entities can identify the location on the network of the encrypted message DB 260 used in the process (e.g., URI (Uniform Resource Identifier)). As a method of identification, the entity can request the operator of the entity (e.g., the owner) to input information about the location, and identify the location based on the input information.

 当該エンティティが当該場所の情報の入力を要求する代わりに、メッセージ提示システム10は、予め、候補となるネットワーク上の場所とその識別子(例えば、文字列(数字が含まれてもよい))の組を格納しておき、処理に用いられる暗号化メッセージDB260のネットワーク上の場所が必要なときに、いずれかのエンティティが、識別子の入力を要求し、入力された識別子に基づき場所を特定してもよい。識別のために、識別子の代わりに、個人を識別するための任意の手段(例えば、所有者証明用秘密鍵の知識証明や、パスワード、生体情報等)が用いられてもよい。暗号化メッセージDB260以外のエンティティに関しても、メッセージ提示システム10は、当該エンティティを複数個備えてもよく、処理に用いられるエンティティを決定するために、同様の方法を用いることができる。 Instead of the entity requesting input of the location information, the message presentation system 10 may store in advance pairs of candidate network locations and their identifiers (e.g., character strings (which may include numbers)), and when the network location of the encrypted message DB 260 to be used for processing is required, any entity may request input of the identifier and identify the location based on the input identifier. Instead of an identifier, any means for identifying an individual (e.g., proof of knowledge of an owner-proving private key, a password, biometric information, etc.) may be used for identification. For entities other than the encrypted message DB 260, the message presentation system 10 may be provided with multiple such entities, and a similar method may be used to determine the entity to be used for processing.

なお、提示処理に用いられる検証装置450(すなわち、メッセージの関数値の提示先)は、例えば、提示装置400により決定される。提示装置400が提示先を不正に決定するという攻撃への対策として、例えば、第2暗号鍵ペア生成装置300が、所有者に対して提示先を通知すればよい。通知の手段としては、電子メール、電話、SMS(Short Message Service)、及び郵便等、任意の手段を用いることができる。あるいは、第2暗号鍵ペア生成装置300が、提示先の履歴を記録しておき、所有者の要求に応じて所有者に開示するようにしてもよい。 The verification device 450 used in the presentation process (i.e., the presentation destination of the function value of the message) is determined by, for example, the presentation device 400. As a countermeasure against an attack in which the presentation device 400 fraudulently determines the presentation destination, for example, the second encryption key pair generation device 300 may notify the owner of the presentation destination. Any means may be used for notification, such as email, telephone, SMS (Short Message Service), or mail. Alternatively, the second encryption key pair generation device 300 may record the history of the presentation destinations and disclose it to the owner upon request from the owner.

 これにより、不正な提示先にメッセージが提示された場合に、所有者は不正を検知することができ、攻撃への対策として効果的である。さらに、第2暗号鍵ペア生成装置300が、通知を第2復号鍵送信(ステップS5303)の前に行う場合には、所有者に同意確認を行うことで、不正な提示先にメッセージが提示されるリスクを低減できる。当該通知や同意確認は、第2暗号鍵ペア生成装置300の代わりに、別のエンティティ(例えば、暗号化メッセージDB260)により行われてもよい。 This allows the owner to detect fraud when a message is presented to an unauthorized recipient, which is an effective countermeasure against attacks. Furthermore, if the second encryption key pair generation device 300 issues a notification before transmitting the second decryption key (step S5303), the risk of the message being presented to an unauthorized recipient can be reduced by confirming consent from the owner. The notification and consent confirmation may be performed by another entity (e.g., the encrypted message DB 260) instead of the second encryption key pair generation device 300.

 また、処理に用いられる秘密鍵の1つ以上が、パスワード等の秘密情報に基づき生成されてもよい。この場合、メッセージ提示システム10は、当該秘密鍵を格納するDBを備えなくてもよく、当該秘密鍵を用いた処理を行う際に、当該秘密鍵生成に必要な秘密情報の入力を秘密情報の管理者(例えば、所有者証明用秘密鍵の場合、秘密情報の管理者の例は、所有者である)に要求すればよい。 Furthermore, one or more of the private keys used in the process may be generated based on private information such as a password. In this case, the message presentation system 10 does not need to have a DB for storing the private keys, and when performing a process using the private keys, it only needs to request the administrator of the private information (for example, in the case of an owner certification private key, an example of the administrator of the private information is the owner) to input the private information required to generate the private key.

[本実施例の効果]
 本実施例のメッセージ提示システム10では、メッセージの提示を行うための提示装置400は、メッセージを暗号化された状態で受信する。従って、提示装置400は、メッセージやメッセージの関数値を復元することが困難である。これにより、提示装置400からメッセージが漏洩するリスクを低減できる。また、メッセージそのものも暗号化された状態で暗号化メッセージDB260に格納されているため、暗号化メッセージDB260からのメッセージの漏洩リスクも低減できている。
[Effects of this embodiment]
In the message presentation system 10 of this embodiment, the presentation device 400 for presenting a message receives the message in an encrypted state. Therefore, it is difficult for the presentation device 400 to restore the message or the function value of the message. This reduces the risk of the message being leaked from the presentation device 400. In addition, since the message itself is stored in the encrypted message DB 260 in an encrypted state, the risk of the message being leaked from the encrypted message DB 260 is also reduced.

 特に、提示処理において提示するメッセージを所有者が確認する必要が無い場合に、本実施例の処理が効果的である。例えば、自身の氏名や生年月日等、改めて確認しなくても所有者には分かっている情報を提示する場合が、提示処理において提示するメッセージを所有者が確認する必要が無い場合として挙げられる。 The processing of this embodiment is particularly effective when the owner does not need to check the message presented in the presentation process. For example, when presenting information that the owner knows without the need for confirmation, such as the owner's own name or date of birth, this is an example of a case where the owner does not need to check the message presented in the presentation process.

 また、提示処理において所有者がメッセージの内容を確認する必要がある場合でも、例えば以下のように本実施例のメッセージ提示システム10を適用することができる。例えば、提示装置400は、店舗等に設置された共用端末であり、内容確認装置500は、所有者自身が所持するスマートフォン等の端末であるとする。このとき、所有者が内容確認装置500を用いてメッセージの内容を確認したうえで、提示装置400を用いて提示処理を行うことにより、提示装置400に対してはメッセージを秘匿することが可能である。 Furthermore, even in cases where the owner needs to check the contents of the message during the presentation process, the message presentation system 10 of this embodiment can be applied, for example, as follows. For example, the presentation device 400 is a shared terminal installed in a store or the like, and the content confirmation device 500 is a terminal such as a smartphone that is owned by the owner. In this case, the owner can check the contents of the message using the content confirmation device 500 and then perform the presentation process using the presentation device 400, thereby keeping the message secret from the presentation device 400.

 また、提示装置400が情報漏洩リスク低減のための機能(例えば、Trusted Execution Environment等)を備える場合にも、本実施例は下記の効果を奏する。情報漏洩リスク低減のための機能を持つ計算領域は、計算速度や処理に用いることができるメモリサイズに関して、通常の計算領域よりも劣る場合がある。本実施例の方法を用いれば、提示装置400においてメッセージ漏洩リスクを低減できているため、メッセージに関する計算(例えば、メッセージ関数値の計算や提示用証明生成処理等)を通常の計算領域で行うことができるようになる。これにより、情報漏洩リスク低減のための計算領域のリソース消費量を低減できるという効果がある。 Furthermore, even when the presentation device 400 has a function for reducing the risk of information leakage (e.g., Trusted Execution Environment, etc.), this embodiment has the following effect. A calculation area with a function for reducing the risk of information leakage may be inferior to a normal calculation area in terms of calculation speed and memory size that can be used for processing. By using the method of this embodiment, the risk of message leakage can be reduced in the presentation device 400, so that calculations related to messages (e.g., calculation of message function values and presentation proof generation processing, etc.) can be performed in the normal calculation area. This has the effect of reducing the resource consumption of the calculation area for reducing the risk of information leakage.

 なお、情報漏洩リスク低減のための計算領域のリソース消費量を低減するかわりに、メッセージに関する処理も情報漏洩リスク低減のための計算領域で行うことにより、漏洩リスクをさらに低減するようにしてもよい。 In addition, instead of reducing the resource consumption of the calculation area for reducing the risk of information leakage, the risk of leakage may be further reduced by performing message-related processing in the calculation area for reducing the risk of information leakage.

 また、上記したACSへの適用により、以下の効果がある。従来のACSでは、提示装置400は、提示用証明生成のために、提示するメッセージ要素だけでなく、提示しないメッセージ要素も必要としていた。提示するメッセージ要素は所有者が内容確認のために用いる場合も考えられるが、提示しないメッセージ要素を提示装置400が復元することはユーザにとっての必要性が低い。本実施例の方式により、提示しないメッセージ要素を提示装置400から秘匿することができる。 In addition, application of the above-mentioned ACS has the following effects. In conventional ACS, the presentation device 400 needs not only message elements to be presented but also message elements that are not presented in order to generate a presentation proof. The owner of the presented message elements may use them to confirm the contents, but there is little need for the user to have the presentation device 400 restore the message elements that are not presented. With the method of this embodiment, the message elements that are not presented can be kept secret from the presentation device 400.

 なお、上記したACSへの適用では、提示しないメッセージ要素を提示装置400から秘匿するために本実施例を適用し、提示するメッセージ要素は提示装置400で復元するようにしてもよい。この場合、変換後第2暗号化メッセージとして(m[i_1]+s[i_1],...,m[i_b]+s[i_b],a_1’,a_2’)が送信される代わりに、例えば(m[i_1],...,m[i_b],a_1’,a_2’)が送信される。このように、本実施例をメッセージの一部に対して適用することも可能であり、内容確認の必要性と安全性のポリシーに応じてシステムの設計が行われればよい。 In addition, in the application to the ACS described above, this embodiment may be applied to conceal message elements that are not presented from the presentation device 400, and the message elements that are presented may be restored by the presentation device 400. In this case, instead of transmitting (m[i_1]+s[i_1], ..., m[i_b]+s[i_b], a_1', a_2') as the converted second encrypted message, for example, (m[i_1], ..., m[i_b], a_1', a_2') is transmitted. In this way, this embodiment can be applied to part of a message, and the system can be designed according to the necessity for content confirmation and the security policy.

 ACS以外でも、例えば墨塗署名方式において、提示用証明生成のために、提示しないメッセージ要素を用いる必要がある方式がある。このような方式に対しても、提示しないメッセージ要素を提示装置400から秘匿するために、本実施例を適用することができる。 Other than ACS, for example in the sanitized signature method, there are methods that require the use of message elements that are not presented in order to generate a proof to be presented. This embodiment can be applied to such methods as well in order to conceal the message elements that are not presented from the presentation device 400.

 また、ここに挙げられた各効果以外にも、各処理の具体例に応じて、既に述べたような安全性向上効果がある。 In addition to the effects listed here, there are also safety-improving effects, as already mentioned, depending on the specific examples of each process.

 実施例2では、ネットワークを介したメッセージ提示システム20を説明する。実施例1のメッセージ提示システム10は、所有者証明用秘密鍵と第1復号鍵をDBに保存するが、実施例2のメッセージ提示システム20は、予め生成され登録されたテンプレートと、所有者の生体情報と、を用いて、所有者証明用秘密鍵と第1復号鍵を復元する。所有者証明用秘密鍵と第1復号鍵は、所有者毎に固定の値を持つが、メッセージ提示システム20が所有者鍵生成処理を再度行うことにより、所有者証明用秘密鍵と第1復号鍵を更新することができる。 In Example 2, a message presentation system 20 via a network will be described. The message presentation system 10 in Example 1 stores the owner certification private key and the first decryption key in a DB, but the message presentation system 20 in Example 2 restores the owner certification private key and the first decryption key using a template that has been generated and registered in advance and the owner's biometric information. The owner certification private key and the first decryption key have fixed values for each owner, but the message presentation system 20 can update the owner certification private key and the first decryption key by performing the owner key generation process again.

 図9は、実施例2におけるメッセージ提示システム20の構成例を示すブロック図である。メッセージ提示システム20は、実施例1のメッセージ提示システム10と異なり、所有者証明用秘密鍵DB140と、第1復号鍵DB180と、を備えず、代わりに、所有者鍵生成装置600と、テンプレートDB610と、所有者鍵復元装置650と、を備える。 FIG. 9 is a block diagram showing an example of the configuration of a message presentation system 20 in Example 2. Unlike the message presentation system 10 in Example 1, the message presentation system 20 does not include an owner certification private key DB 140 and a first decryption key DB 180, but instead includes an owner key generation device 600, a template DB 610, and an owner key recovery device 650.

 実施例2のメッセージ提示システム20に含まれるエンティティのうち、実施例1のメッセージ提示システム10にも含まれるエンティティ、が含む機能部については、図9において図示を省略しているが、実施例2の当該エンティティに含まれる。 The functional units included in the entities included in the message presentation system 20 of Example 2 that are also included in the message presentation system 10 of Example 1 are not shown in FIG. 9, but are included in the entities of Example 2.

 所有者鍵生成装置600は、所有者の生体情報を用いて、テンプレートと、所有者検証用公開鍵と、第1復号鍵と、を生成する。所有者鍵生成装置600は、例えば、いずれも機能部である、通信部601と、鍵生成用生体情報取得部602と、所有者鍵生成部603と、を含む。所有者鍵生成装置600は、例えば、所有者により操作される。 The owner key generation device 600 uses the owner's biometric information to generate a template, a public key for owner verification, and a first decryption key. The owner key generation device 600 includes, for example, a communication unit 601, a biometric information for key generation acquisition unit 602, and an owner key generation unit 603, all of which are functional units. The owner key generation device 600 is operated, for example, by the owner.

 所有者鍵復元装置650は、所有者の生体情報とテンプレートを用いて、所有者検証用公開鍵と第1復号鍵を復元する。所有者鍵復元装置650は、例えば、いずれも機能部である、通信部651と、鍵復元用生体情報取得部652と、所有者鍵復元部653と、を含む。所有者鍵復元装置650は、例えば、所有者により操作される。 The owner key restoration device 650 restores the owner verification public key and the first decryption key using the owner's biometric information and a template. The owner key restoration device 650 includes, for example, a communication unit 651, a key restoration biometric information acquisition unit 652, and an owner key restoration unit 653, all of which are functional units. The owner key restoration device 650 is operated, for example, by the owner.

 実施例2のメッセージ提示システム20は、発行者鍵ペア生成処理と、発行処理と、を実施例1と同様に行う。また、実施例2のメッセージ提示システム20は、実施例1の所有者証明用鍵ペア生成処理及び第1暗号鍵ペア生成処理の代わりに、所有者鍵生成処理を行う。 The message presentation system 20 of the second embodiment performs the issuer key pair generation process and the issuance process in the same manner as in the first embodiment. Furthermore, the message presentation system 20 of the second embodiment performs the owner key generation process instead of the owner certification key pair generation process and the first encryption key pair generation process of the first embodiment.

 また、提示処理において、実施例1では第1復号鍵DB180が第1復号鍵を提示装置400に送信し、所有者証明用秘密鍵DB140が所有者証明用秘密鍵を提示装置400に送信するが、実施例2ではこれらの処理の代わりに、所有者鍵復元装置650が、所有者鍵復元処理により第1復号鍵と所有者証明用秘密鍵を復元し、これらを提示装置400に送信する。提示処理において実行される他の処理は実施例1と同様である。 Furthermore, in the presentation process in the first embodiment, the first decryption key DB 180 transmits the first decryption key to the presentation device 400, and the owner certification private key DB 140 transmits the owner certification private key to the presentation device 400, but in the second embodiment, instead of these processes, the owner key restoration device 650 restores the first decryption key and the owner certification private key by the owner key restoration process and transmits them to the presentation device 400. The other processes executed in the presentation process are the same as those in the first embodiment.

 また、内容確認処理において、実施例1では第1復号鍵DB180が第1復号鍵を内容確認装置500に送信するが、実施例2ではこの処理の代わりに、所有者鍵復元装置650が、所有者鍵復元処理により第1復号鍵を復元し、これを内容確認装置500に送信する。内容確認処理において実行される他の処理は実施例1と同様である。 In addition, in the content confirmation process in the first embodiment, the first decryption key DB 180 transmits the first decryption key to the content confirmation device 500, but in the second embodiment, instead of this process, the owner key restoration device 650 restores the first decryption key by the owner key restoration process and transmits it to the content confirmation device 500. The other processes executed in the content confirmation process are the same as those in the first embodiment.

 提示処理の中で行われる所有者鍵復元処理に用いられる所有者鍵復元装置650と、内容確認処理の中で行われる所有者鍵復元処理に用いられる所有者鍵復元装置650と、は同一の装置でなくてもよい(つまり、メッセージ提示システム20は複数の所有者鍵復元装置650を含んでもよい)。また、提示処理の中で行われる所有者鍵復元処理に用いられる所有者鍵復元装置650は、提示装置400と物理的に同一の端末でもよい。また、内容確認処理の中で行われる所有者鍵復元処理に用いられる所有者鍵復元装置650は、内容確認装置500と物理的に同一の端末でもよい。 The owner key restoration device 650 used for the owner key restoration process performed in the presentation process and the owner key restoration device 650 used for the owner key restoration process performed in the content confirmation process do not have to be the same device (i.e., the message presentation system 20 may include multiple owner key restoration devices 650). In addition, the owner key restoration device 650 used for the owner key restoration process performed in the presentation process may be the same physically terminal as the presentation device 400. In addition, the owner key restoration device 650 used for the owner key restoration process performed in the content confirmation process may be the same physically terminal as the content confirmation device 500.

 なお、所有者鍵生成装置600、テンプレートDB610、及び所有者鍵復元装置650のハードウェア構成は、例えば、実施例1において図2を用いて説明したハードウェア構成と同様である。ただし、所有者鍵生成装置600及び所有者鍵復元装置650を構成する計算機10000は、顔、指紋、虹彩、掌紋、及び指静脈等の生体情報(生体情報が暗号化鍵の生成に用いられてもよい)を取得するためのセンサを有するとする。センサは生体情報の取得のみを目的とするものであってもよいし、目的が生体情報の取得に限定されない装置(例えば、生体情報に限らずに画像や動画の取得を目的としたカメラや、生体情報に限らずに音声の取得を目的としたマイクロフォン等)であってもよい。 The hardware configurations of the owner key generation device 600, template DB 610, and owner key recovery device 650 are similar to the hardware configuration described in Example 1 using FIG. 2, for example. However, the computer 10000 constituting the owner key generation device 600 and the owner key recovery device 650 has a sensor for acquiring biometric information such as a face, fingerprint, iris, palm print, and finger veins (the biometric information may be used to generate an encryption key). The sensor may be intended only to acquire biometric information, or may be a device whose purpose is not limited to acquiring biometric information (for example, a camera intended to acquire images and videos in addition to biometric information, or a microphone intended to acquire audio in addition to biometric information).

[処理フロー]
 本実施例のメッセージ提示システム20は、以下の点を除いて実施例1のメッセージ提示システム10と同様の処理を実行する。具体的には、本実施例のメッセージ提示システム20は、図4に示した所有者証明用鍵ペア生成処理と、図5に示した第1暗号鍵ペア生成処理と、を実行せずに、図10に示す所有者鍵生成処理を実行する。
[Processing flow]
The message presentation system 20 of this embodiment executes the same processes as the message presentation system 10 of the embodiment 1, except for the following points. Specifically, the message presentation system 20 of this embodiment executes the owner key generation process shown in Fig. 10 without executing the owner certification key pair generation process shown in Fig. 4 and the first encryption key pair generation process shown in Fig. 5.

 また、本実施例のメッセージ提示システム20は、ステップS5181の処理に代えて、図11に示す所有者鍵復元処理を実行し、所有者鍵復元装置650が、復元された第1復号鍵を提示装置400に送信する。また、本実施例のメッセージ提示システム20は、ステップS5141の処理に代えて、図11に示す所有者鍵復元処理を実行し、所有者鍵復元装置650が、復元された所有者証明用秘密鍵を提示装置400に送信する。また、本実施例のメッセージ提示システム20は、ステップS6181の処理に代えて、図11に示す所有者鍵復元処理を実行し、所有者鍵復元装置650が、復元された第1復号鍵を内容確認装置500に送信する。なお、これらの鍵の送信の代わりに、所有者鍵復元装置650が、鍵を用いた各処理に必要なデータを受信したうえで、鍵を用いた各処理を行うようにしてもよい。 11 instead of the process of step S5181, the message presentation system 20 of this embodiment executes the owner key restoration process shown in FIG. 11, and the owner key restoration device 650 transmits the restored first decryption key to the presentation device 400. Also, instead of the process of step S5141, the message presentation system 20 of this embodiment executes the owner key restoration process shown in FIG. 11, and the owner key restoration device 650 transmits the restored owner certification private key to the presentation device 400. Also, instead of the process of step S6181, the message presentation system 20 of this embodiment executes the owner key restoration process shown in FIG. 11, and the owner key restoration device 650 transmits the restored first decryption key to the content confirmation device 500. Note that instead of transmitting these keys, the owner key restoration device 650 may receive data necessary for each process using the key and then perform each process using the key.

 図10は、実施例2における所有者鍵生成処理の一例を示すシーケンス図である。ステップS7601では、鍵生成用生体情報取得部602が、所有者から鍵生成用生体情報を取得する。鍵生成用生体情報取得部602が取得する生体情報の種類として、顔、虹彩、指紋、指静脈、又は掌紋等、任意の種類を用いることができる。また、生体情報のデータ形式として、画像、動画、又は音声等、任意の形式を用いることができる。 FIG. 10 is a sequence diagram showing an example of an owner key generation process in the second embodiment. In step S7601, the key generation biometric information acquisition unit 602 acquires biometric information for key generation from the owner. The type of biometric information acquired by the key generation biometric information acquisition unit 602 can be any type, such as face, iris, fingerprint, finger vein, or palm print. In addition, the data format of the biometric information can be any format, such as image, video, or audio.

 ステップS7602では、所有者鍵生成部603が、鍵生成用生体情報を用いて、テンプレートと、第1暗号化鍵と、所有者検証用公開鍵と、を生成する。ステップS7603では、所有者鍵生成装置600の通信部601が、生成されたテンプレートをテンプレートDB610に送信する。ステップS7611では、テンプレートDB610が、テンプレートを格納する。 In step S7602, the owner key generation unit 603 uses the biometric information for key generation to generate a template, a first encryption key, and an owner verification public key. In step S7603, the communication unit 601 of the owner key generation device 600 transmits the generated template to the template DB 610. In step S7611, the template DB 610 stores the template.

 ステップS7604では、所有者鍵生成装置600の通信部601が、生成された所有者検証用公開鍵を所有者検証用公開鍵DB150に送信する。ステップS7151では、所有者検証用公開鍵DB150が、所有者検証用公開鍵を格納する。 In step S7604, the communication unit 601 of the owner key generating device 600 transmits the generated owner verification public key to the owner verification public key DB 150. In step S7151, the owner verification public key DB 150 stores the owner verification public key.

 ステップS7605では、所有者鍵生成装置600の通信部601が、生成された第1暗号化鍵を第1暗号化鍵DB170に送信する。ステップS7171では、第1暗号化鍵DB170が、第1暗号化鍵を格納する。 In step S7605, the communication unit 601 of the owner key generating device 600 transmits the generated first encryption key to the first encryption key DB 170. In step S7171, the first encryption key DB 170 stores the first encryption key.

 図11は、実施例2における所有者鍵復元処理の一例を示すシーケンス図である。ステップS8651では、鍵復元用生体情報取得部652が、所有者からステップS7601と同じ種類の鍵復元用生体情報を取得する。ステップS8611では、テンプレートDB610が、格納されたテンプレートを所有者鍵復元装置650に送信する。 FIG. 11 is a sequence diagram showing an example of the owner key restoration process in the second embodiment. In step S8651, the key restoration biometric information acquisition unit 652 acquires the same type of key restoration biometric information as in step S7601 from the owner. In step S8611, the template DB 610 transmits the stored template to the owner key restoration device 650.

 ステップS8652では、所有者鍵復元部653が、テンプレートと、取得された鍵復元用生体情報と、を用いて、所有者証明用秘密鍵と第1復号鍵を復元する。鍵復元用生体情報が所有者鍵生成処理に用いられた鍵生成用生体情報に十分近ければ(例えば、生体情報を示す特徴量ベクトル間の距離が所定値以下であれば)、テンプレートと鍵復元用生体情報から、所有者毎に固有の値を持つ所有者証明用秘密鍵と第1復号鍵が高確率で正しく復元されるように、所有者鍵生成処理と所有者鍵復元処理が適切に設定されているものとする。 In step S8652, the owner key restoration unit 653 restores the owner proof private key and the first decryption key using the template and the acquired key restoration biometric information. If the key restoration biometric information is sufficiently close to the key generation biometric information used in the owner key generation process (for example, if the distance between the feature vectors indicating the biometric information is equal to or less than a predetermined value), it is deemed that the owner key generation process and the owner key restoration process are appropriately set so that the owner proof private key and the first decryption key, which have unique values for each owner, are correctly restored with a high probability from the template and key restoration biometric information.

[所有者鍵生成処理と所有者鍵復元処理の具体例]
 ステップS7602における所有者鍵生成処理とステップS8652における所有者鍵復元処理の具体例として、バイオメトリック暗号方式を用いる方法を説明する。説明のために、バイオメトリック暗号方式の処理の例を述べる。バイオメトリック暗号方式は、鍵生成処理と鍵復元処理を含む。鍵生成処理は、鍵生成用生体情報x_Gを入力として、秘密鍵s_Gとヘルパーストリングhsを生成する処理である。鍵生成処理を、(s_G,hs)=Gen(x_G)で表す。
[Specific examples of owner key generation and owner key recovery processes]
A method using a biometric encryption method will be described as a specific example of the owner key generation process in step S7602 and the owner key recovery process in step S8652. For the sake of explanation, an example of the biometric encryption process will be described. The biometric encryption method includes a key generation process and a key recovery process. The key generation process is a process that generates a private key s_G and a helper string hs using biometric information for key generation x_G as input. The key generation process is represented as (s_G, hs) = Gen(x_G).

 鍵復元処理は、hsと鍵復元用生体情報x_Rから秘密鍵を復元する処理である。復元される秘密鍵をs_Rで表し、鍵復元処理を、s_R=Rec(hs,x_R)で表す。x_Gとx_Rが十分近い(例えば距離が所定値以下である)とき、s_G=s_Rが成り立つ。すなわち、秘密鍵が正しく復元される。また、hsからはx_Gやs_Gの推定が困難である。バイオメトリック暗号方式としては、Fuzzy Extractor、Fuzzy Signature、Fuzzy Commitment、Fuzzy Vault等の任意の方式を用いることができる。 The key recovery process is a process of recovering a private key from hs and key recovery biometric information x_R. The private key to be recovered is represented as s_R, and the key recovery process is represented as s_R = Rec(hs, x_R). When x_G and x_R are sufficiently close (for example, the distance is equal to or less than a predetermined value), s_G = s_R holds. In other words, the private key is correctly recovered. Also, it is difficult to estimate x_G or s_G from hs. Any method such as Fuzzy Extractor, Fuzzy Signature, Fuzzy Commitment, Fuzzy Vault, etc. can be used as the biometric encryption method.

 所有者鍵生成処理の具体例を述べる。所有者鍵生成部603は、以下のようにテンプレートT、第1暗号化鍵ek_1、及び所有者検証用公開鍵pk1を生成する。所有者鍵生成部603は、まず、鍵生成用生体情報x_Gを用いて、バイオメトリック暗号方式の鍵生成処理により、秘密鍵s_Gとヘルパーストリングhsを生成する。 A specific example of the owner key generation process will be described. The owner key generation unit 603 generates a template T, a first encryption key ek_1, and an owner verification public key pk1 as follows. First, the owner key generation unit 603 uses the key generation biometric information x_G to generate a secret key s_G and a helper string hs through a key generation process of a biometric encryption method.

 次に、所有者鍵生成部603は、秘密鍵s_Gを用いて、暗号化鍵ek_0と復号鍵dk_0を生成する。(ek_0,dk_0)の生成には、任意の暗号方式の鍵ペア生成処理を用いることができる。この暗号方式の暗号化処理と復号処理をそれぞれEnc_0,Dec_0で表す。 Next, the owner key generation unit 603 uses the private key s_G to generate the encryption key ek_0 and the decryption key dk_0. To generate (ek_0, dk_0), a key pair generation process of any encryption method can be used. The encryption process and decryption process of this encryption method are represented as Enc_0 and Dec_0, respectively.

 ただし、s_Gから同一の(ek_0,dk_0)が得られるように、鍵ペア生成処理は、s_Gを入力とする確定的な処理であるとする。所有者鍵生成部603は、例えば、s_Gに対して確定的な変換を行うことでek_0を生成し、生成したek_0に対応するdk_0を生成する。例として、所有者鍵生成部603は、共通鍵暗号方式において、ek_0=s_Gによりek_0を定め、dk_0=ek_0によりdk_0を定めるという処理が挙げられる。 However, the key pair generation process is a deterministic process that uses s_G as input so that the same (ek_0, dk_0) can be obtained from s_G. The owner key generation unit 603 generates ek_0 by performing a deterministic conversion on s_G, for example, and generates dk_0 corresponding to the generated ek_0. As an example, the owner key generation unit 603 may determine ek_0 according to ek_0=s_G and dk_0 according to dk_0=ek_0 in a common key cryptosystem.

 また、所有者鍵生成部603は、ステップS3161の第1暗号鍵ペア生成処理と同様にして、第1暗号化鍵ek_1と第1復号鍵dk_1を生成する。また、所有者鍵生成部603は、ステップS2131の所有者証明用鍵ペア生成処理と同様にして、所有者証明用秘密鍵sk_1と所有者検証用公開鍵pk1を生成する。そのうえで、所有者鍵生成部603は、テンプレートTを、T=(hs,Enc_0(dk_1;ek_0),Enc_0(sk_1;ek_0))で定める。 The owner key generation unit 603 also generates a first encryption key ek_1 and a first decryption key dk_1 in the same manner as the first encryption key pair generation process of step S3161. The owner key generation unit 603 also generates an owner certification private key sk_1 and an owner verification public key pk1 in the same manner as the owner certification key pair generation process of step S2131. Then, the owner key generation unit 603 determines the template T as T = (hs, Enc_0 (dk_1; ek_0), Enc_0 (sk_1; ek_0)).

 なお、鍵生成処理においてs_G、dk_0及びskを出力することは目的ではないため、鍵生成処理において明示的にこれらの値が計算されていなくてもよい。また、ek_0は鍵生成処理の後に破棄されてもよい。 Note that since the purpose of the key generation process is not to output s_G, dk_0, and sk, these values do not need to be explicitly calculated in the key generation process. Also, ek_0 may be discarded after the key generation process.

 このような所有者鍵生成処理の具体例に対応する、所有者鍵復元処理の具体例を述べる。復元される第1復号鍵及び所有者証明用秘密鍵をdk_1’及びsk_1’で表す。所有者鍵復元部653は、まず、鍵復元用生体情報x_Rと、Tに含まれるhsと、を用いて、バイオメトリック暗号方式の鍵復元処理を行うことで、秘密鍵を復元する。 A specific example of an owner key restoration process corresponding to this specific example of an owner key generation process will be described below. The first decryption key and owner proof private key to be restored are represented as dk_1' and sk_1'. The owner key restoration unit 653 first restores the private key by performing key restoration process of the biometric encryption method using the key restoration biometric information x_R and hs included in T.

 次に、所有者鍵復元部653は、復元された秘密鍵s_Rを用いて鍵復号鍵を復元する。次に、所有者鍵復元部653は、復元された鍵復号鍵dk_0’を用いて、Tに含まれるEnc_0(dk_1;ek_0),Enc_0(sk_1;ek_0)に対してDec_0を行い、第1復号鍵dk_1及び所有者証明用秘密鍵sk_1を復元する。 Next, the owner key restoration unit 653 restores the key decryption key using the restored private key s_R. Next, the owner key restoration unit 653 performs Dec_0 on Enc_0(dk_1;ek_0) and Enc_0(sk_1;ek_0) included in T using the restored key decryption key dk_0' to restore the first decryption key dk_1 and the owner proof private key sk_1.

 x_Gとx_Rが十分近い(例えば、距離が所定値以下)とき、s_G=s_Rとなる。よって、このとき、dk_0=dk_0’となる。よって、このとき、第1復号鍵及び所有者証明用秘密鍵が正しく復元される。所有者鍵復元部653は、第1復号鍵及び所有者証明用秘密鍵が正しく復元されたかどうかを検証し、正しく復元されなかった場合に処理を中止してもよい。所有者鍵復元部653は、当該検証のために、例えば、第1暗号化鍵及び所有者検証用公開鍵を用いることができる。 When x_G and x_R are sufficiently close (e.g., the distance is equal to or less than a predetermined value), s_G = s_R. Therefore, at this time, dk_0 = dk_0'. Therefore, at this time, the first decryption key and the owner proof private key are correctly restored. The owner key restoration unit 653 may verify whether the first decryption key and the owner proof private key have been correctly restored, and may abort the process if they have not been correctly restored. The owner key restoration unit 653 may use, for example, the first encryption key and the owner verification public key for this verification.

 なお、本実施例のメッセージ提示システム20は、所有者に関する鍵(すなわち、所有者証明用秘密鍵、所有者証明用公開鍵、第1暗号化鍵、及び第1復号鍵)を所有者の生体情報に基づき生成したが、これに加えて、または、代えて、発行者に関する鍵(すなわち、発行者秘密鍵と発行者公開鍵)を発行者の生体情報に基づき生成してもよい。 In the present embodiment, the message presentation system 20 generates keys related to the owner (i.e., the owner authentication private key, the owner authentication public key, the first encryption key, and the first decryption key) based on the owner's biometric information. In addition to this, or instead, keys related to the issuer (i.e., the issuer private key and the issuer public key) may be generated based on the issuer's biometric information.

[本実施例の効果]
 本実施例により、所有者が自身に関する秘密鍵である所有者証明用秘密鍵と第1復号鍵を管理することが不要となり、利便性が向上する。また、これらの鍵の保管の必要が無いことから、安全性向上効果もある。また、発行者に関する鍵が発行者の生体情報に基づき生成される場合、同様に、発行者に関する鍵の管理が不要になり、利便性向上と安全性向上効果がある。
[Effects of this embodiment]
According to this embodiment, the owner does not need to manage the owner proof private key and the first decryption key, which are private keys related to the owner, and convenience is improved. In addition, since there is no need to store these keys, there is also an effect of improving security. In addition, when the key related to the issuer is generated based on the biometric information of the issuer, similarly, management of the key related to the issuer is not required, and there are effects of improving convenience and security.

[その他の注意点]
 本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
[Other points to note]
The present invention is not limited to the above-mentioned embodiment, and various modifications are included. For example, the above-mentioned embodiment has been described in detail to clearly explain the present invention, and is not necessarily limited to those having all the configurations described. In addition, it is also possible to replace a part of the configuration of one embodiment with the configuration of another embodiment, and it is also possible to add the configuration of another embodiment to the configuration of one embodiment. In addition, it is also possible to add, delete, or replace a part of the configuration of each embodiment with another configuration.

 また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。 Furthermore, the above-mentioned configurations, functions, processing units, processing means, etc. may be realized in hardware, in part or in whole, for example by designing them as integrated circuits. Furthermore, the above-mentioned configurations, functions, etc. may be realized in software, by a processor interpreting and executing a program that realizes each function. Information on the programs, tables, files, etc. that realize each function can be stored in a memory, a recording device such as a hard disk or SSD (Solid State Drive), or a recording medium such as an IC card, SD card, or DVD.

 また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。 Furthermore, the control lines and information lines shown are those considered necessary for the explanation, and do not necessarily show all control lines and information lines on the product. In reality, it can be assumed that almost all components are interconnected.

Claims (10)

 メッセージ提示システムであって、
 メッセージに対する第1暗号化鍵を用いた第1暗号化処理によって生成された第1暗号化メッセージを保持するDBと、
 第2暗号化鍵を保持する暗号化装置と、
 前記第1暗号化鍵に対応する第1復号鍵を保持する提示装置と、を含み、
 前記DBは、前記第1暗号化メッセージを前記暗号化装置に送信し、
 前記暗号化装置は、
 前記第2暗号化鍵を用いて前記第1暗号化メッセージに対する第2暗号化処理を行うことにより2重暗号化メッセージを生成し、
 前記2重暗号化メッセージを前記提示装置に送信し、
 前記提示装置は、
 前記第1復号鍵を用いて前記2重暗号化メッセージに対し第1復号処理を行うことにより第2暗号化メッセージを生成し、
 前記メッセージの所定の関数による関数値が前記第2暗号化鍵に対応する第2復号鍵により復元できるような送信用第2暗号化メッセージを、前記第2暗号化メッセージに基づいて生成し、
 前記送信用第2暗号化メッセージを出力する、メッセージ提示システム。
A message presentation system, comprising:
a DB for storing a first encrypted message generated by a first encryption process using a first encryption key for a message;
an encryption device that holds a second encryption key;
a presentation device that holds a first decryption key corresponding to the first encryption key;
The DB transmits the first encrypted message to the encryption device;
The encryption device includes:
performing a second encryption process on the first encrypted message using the second encryption key to generate a doubly encrypted message;
sending the double encrypted message to the presentation device;
The presentation device includes:
performing a first decryption process on the doubly encrypted message using the first decryption key to generate a second encrypted message;
generating a second encrypted message for transmission based on the second encrypted message such that a function value of the message according to a predetermined function can be restored by a second decryption key corresponding to the second encryption key;
a message presentation system that outputs the second encrypted message for transmission;
 請求項1に記載のメッセージ提示システムであって、
 前記提示装置は、
 所有者証明用秘密鍵を保持し、
 復元された前記関数値と、前記所有者証明用秘密鍵に対応する所有者検証用公開鍵と、を用いた検証処理を可能とする提示用証明を、前記所有者証明用秘密鍵及び前記送信用第2暗号化メッセージの少なくとも一方を用いて生成し、
 前記提示用証明を出力する、メッセージ提示システム。
The message presentation system according to claim 1,
The presentation device includes:
Hold the proof of ownership private key,
generating a presentation proof, using at least one of the owner proof private key and the second encrypted message for transmission, which enables a verification process using the restored function value and an owner verification public key corresponding to the owner proof private key;
A message presentation system that outputs the presentation proof.
 請求項2に記載のメッセージ提示システムであって、
 前記提示装置は、
 前記メッセージと、発行者秘密鍵と、を用いて生成された発行用証明を保持し、
 前記発行者秘密鍵に対応する発行者公開鍵を用いた検証処理を可能とする前記提示用証明を、前記発行用証明を用いて生成する、メッセージ提示システム。
The message presentation system according to claim 2,
The presentation device includes:
maintaining an issuing certificate generated using the message and an issuer private key;
a message presentation system that uses the issue certificate to generate the presentation certificate, the presentation certificate enabling a verification process using an issuer public key corresponding to the issuer private key.
 請求項3に記載のメッセージ提示システムであって、
 前記メッセージは、複数のメッセージ要素を含み、
 前記複数のメッセージ要素は、提示対象のメッセージ要素を含み、
 前記関数値は、前記提示対象のメッセージ要素を含む、メッセージ提示システム。
The message presentation system according to claim 3,
the message includes a plurality of message elements;
the plurality of message elements includes a message element to be presented;
The function value includes a message element to be presented.
 請求項3に記載のメッセージ提示システムであって、
 前記メッセージは、複数のメッセージ要素を含み、
 前記複数のメッセージ要素は、提示対象でないメッセージ要素と、を含み、
 前記関数値は、前記提示対象でないメッセージ要素から計算された値を含む、メッセージ提示システム。
The message presentation system according to claim 3,
the message includes a plurality of message elements;
The plurality of message elements include a message element that is not a presentation target,
The function value includes a value calculated from the non-presented message elements.
 請求項1に記載のメッセージ提示システムであって、
 前記第1復号鍵は、メッセージ所有者の生体情報を用いて生成されたテンプレートと、前記メッセージ所有者から再度取得された生体情報と、に基づいて生成されたものである、メッセージ提示システム。
The message presentation system according to claim 1,
A message presentation system, wherein the first decryption key is generated based on a template generated using biometric information of a message owner and biometric information reacquired from the message owner.
 請求項1に記載のメッセージ提示システムであって、
 前記第1暗号化処理と前記第2暗号化処理は、前記メッセージに対して可換な演算であるよう定められている、メッセージ提示システム。
The message presentation system according to claim 1,
A message presentation system, wherein the first encryption process and the second encryption process are defined to be commutative operations on the message.
 請求項1に記載のメッセージ提示システムであって、
 前記第1暗号化処理と前記第2暗号化処理は、前記第1暗号化メッセージと前記第2暗号化鍵とから、前記メッセージに対する前記第2暗号化処理によって得られる暗号文に対する、前記第1暗号化処理によって得られた暗号文が得られる演算であるよう定められている、メッセージ提示システム。
The message presentation system according to claim 1,
A message presentation system, wherein the first encryption process and the second encryption process are defined as operations that obtain, from the first encrypted message and the second encryption key, a ciphertext obtained by the first encryption process for the ciphertext obtained by the second encryption process on the message.
 請求項1に記載のメッセージ提示システムであって、
 前記第1暗号化処理と前記第2暗号化処理は、前記2重暗号化メッセージと、前記第1復号鍵と、から、前記メッセージに対する前記第2暗号化処理によって得られる暗号文が得られる演算であるよう定められている、メッセージ提示システム。
The message presentation system according to claim 1,
A message presentation system, wherein the first encryption process and the second encryption process are defined as operations that result in a ciphertext obtained by the second encryption process on the message from the doubly encrypted message and the first decryption key.
 メッセージ提示システムによるメッセージ提示方法であって、
 前記メッセージ提示システムは、
 メッセージに対する第1暗号化鍵を用いた第1暗号化処理によって生成された第1暗号化メッセージを保持するDBと、
 第2暗号化鍵を保持する暗号化装置と、
 前記第1暗号化鍵に対応する第1復号鍵を保持する提示装置と、を含み、
 前記メッセージ提示方法は、
 前記DBが、前記第1暗号化メッセージを前記暗号化装置に送信し、
 前記暗号化装置が、前記第2暗号化鍵を用いて前記第1暗号化メッセージに対する第2暗号化処理を行うことにより2重暗号化メッセージを生成し、
 前記暗号化装置が、前記2重暗号化メッセージを前記提示装置に送信し、
 前記提示装置が、前記第1復号鍵を用いて前記2重暗号化メッセージに対し第1復号処理を行うことにより第2暗号化メッセージを生成し、
 前記提示装置が、前記メッセージの所定の関数による関数値が前記第2暗号化鍵に対応する第2復号鍵により復元できるような送信用第2暗号化メッセージを、前記第2暗号化メッセージに基づいて生成し、
 前記提示装置が、前記送信用第2暗号化メッセージを出力する、メッセージ提示方法。
A method for presenting a message by a message presentation system, comprising:
The message presentation system comprises:
a DB for storing a first encrypted message generated by a first encryption process using a first encryption key for a message;
an encryption device that holds a second encryption key;
a presentation device that holds a first decryption key corresponding to the first encryption key;
The message presentation method includes:
The DB transmits the first encrypted message to the encryption device;
the encryption device performs a second encryption process on the first encrypted message using the second encryption key to generate a doubly encrypted message;
the encryption device transmits the doubly encrypted message to the presentation device;
the presentation device performs a first decryption process on the doubly encrypted message using the first decryption key to generate a second encrypted message;
the presentation device generates, based on the second encrypted message, a second encrypted message for transmission such that a function value of the message according to a predetermined function can be restored by a second decryption key corresponding to the second encryption key;
The presentation device outputs the second encrypted message for transmission.
PCT/JP2023/045460 2023-01-24 2023-12-19 Message presentation system and message presentation method Ceased WO2024157662A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2023-008894 2023-01-24
JP2023008894A JP2024104593A (en) 2023-01-24 2023-01-24 Message presentation system and method

Publications (1)

Publication Number Publication Date
WO2024157662A1 true WO2024157662A1 (en) 2024-08-02

Family

ID=91970421

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/045460 Ceased WO2024157662A1 (en) 2023-01-24 2023-12-19 Message presentation system and message presentation method

Country Status (2)

Country Link
JP (1) JP2024104593A (en)
WO (1) WO2024157662A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63160444A (en) * 1986-12-23 1988-07-04 Mitsubishi Electric Corp Cryptographic communication device
JP2018098739A (en) * 2016-12-16 2018-06-21 富士通株式会社 Encryption data processing method, encryption data processing device and encryption data processing program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63160444A (en) * 1986-12-23 1988-07-04 Mitsubishi Electric Corp Cryptographic communication device
JP2018098739A (en) * 2016-12-16 2018-06-21 富士通株式会社 Encryption data processing method, encryption data processing device and encryption data processing program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MIYAZAKI, KUNIHIKO; SUSAKI, SEIICHI; IWAMURA, MITSURU; MATSUMOTO, TSUTOMU; SASAKI, RYOICHI; YOSHIURA, HIROSHI: "Digital Document Sanitizing Problem", IEICE TECHNICAL REPORT, vol. 103, no. 195 (2003-CSEC-22), 17 July 2003 (2003-07-17), pages 61 - 67, XP009556573 *

Also Published As

Publication number Publication date
JP2024104593A (en) 2024-08-05

Similar Documents

Publication Publication Date Title
US11799668B2 (en) Electronic identification verification methods and systems with storage of certification records to a side chain
CN110519260B (en) Information processing method and information processing device
Jin et al. Dynamic and public auditing with fair arbitration for cloud data
US10810315B2 (en) Enabling access to data
JP6504013B2 (en) Cryptographic processing method, cryptographic processing device, and cryptographic processing program
US20090070361A1 (en) Integrity verification of pseudonymized documents
WO2018145127A1 (en) Electronic identification verification methods and systems with storage of certification records to a side chain
US11227037B2 (en) Computer system, verification method of confidential information, and computer
US20100098246A1 (en) Smart card based encryption key and password generation and management
CN1778065B (en) Encryption method and device based on biological characteristic identity
KR20190001177A (en) Method and apparatus for authentification of user using biometric
JP7565868B2 (en) DATA MANAGEMENT SYSTEM, DATA MANAGEMENT METHOD, AND DATA MANAGEMENT PROGRAM
EP3455763B1 (en) Digital rights management for anonymous digital content sharing
CN110999254A (en) Perform cryptographic operations securely
JPWO2016072057A1 (en) Ciphertext verification system, method, and recording medium
CN113901520A (en) Data processing method, device, equipment and medium based on block chain
CN120380719A (en) Key derivation for account management
USRE49968E1 (en) Electronic identification verification methods and systems with storage of certification records to a side chain
JP2006524352A (en) Identity-based encryption method and apparatus based on biometrics
JP2014137474A (en) Tamper detection device, tamper detection method, and program
JP2015185990A (en) One-to-multiple authentication system, authentication method, and authentication program
WO2013153628A1 (en) Calculation processing system and calculation result authentication method
WO2024157662A1 (en) Message presentation system and message presentation method
CN118199884A (en) Task execution method and device based on blockchain
JP7641926B2 (en) Template management system and template management method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23918616

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE