[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

WO2024166910A1 - パスワード共有システム、方法、プログラム、サーバ装置、及び端末装置 - Google Patents

パスワード共有システム、方法、プログラム、サーバ装置、及び端末装置 Download PDF

Info

Publication number
WO2024166910A1
WO2024166910A1 PCT/JP2024/003917 JP2024003917W WO2024166910A1 WO 2024166910 A1 WO2024166910 A1 WO 2024166910A1 JP 2024003917 W JP2024003917 W JP 2024003917W WO 2024166910 A1 WO2024166910 A1 WO 2024166910A1
Authority
WO
WIPO (PCT)
Prior art keywords
password
unit
encryption key
data
client terminal
Prior art date
Application number
PCT/JP2024/003917
Other languages
English (en)
French (fr)
Inventor
達 上林
Original Assignee
達 上林
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 達 上林 filed Critical 達 上林
Publication of WO2024166910A1 publication Critical patent/WO2024166910A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/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 password sharing technology, and more particularly to a password sharing system, method, program, server device, and terminal device.
  • the technology disclosed herein relates to, for example, a password sharing mechanism for sharing encrypted data of an attachment between senders and receivers of an e-mail, and a password sharing mechanism for sharing encrypted data based on relationships with other users.
  • PGP Peripheral Good Privacy
  • PGP encryption the recipient generates his or her own key pair (a pair of private and public keys) and deposits the public key on a server on the Internet and makes it public.
  • the sender connects to the recipient's server and searches for and obtains the recipient's public key.
  • the sender generates a symmetric key (also called a common key or private key) and encrypts the message using the symmetric key.
  • the sender then encrypts the symmetric key using the receiver's public key, which the sender obtained earlier.
  • the sender sends the encrypted message and the symmetric key encrypted with the public key to the receiver.
  • the receiver uses the private key of the key pair to decrypt the symmetric key encrypted with the public key. Due to the nature of key pairs, only the receiver who possesses the private key can perform the decryption correctly.
  • the receiver uses the symmetric key obtained by decryption to decrypt the message received from the sender.
  • a server on the Internet distributes public keys.
  • the server accepts the recipient's email address and public key from the recipient and publishes them on the Internet. Then, in response to a request from the sender, the server provides the recipient's email address and public key to the sender.
  • Facebook registered trademark.
  • SNS Social Networking Service
  • Facebook provides a mechanism for sharing information (including data) based on the relationships between users. Relationships between users can be, for example, "family,” “best friend,” “friend,” and “other.”
  • Patent Documents 1, 2, and 3 are examples of related technologies relating to mechanisms for sharing information (including data).
  • the sender must encrypt the data to be sent or the private key (symmetric key) that encrypts the data to be sent, using a different public key for each recipient. Because the encrypted data to be sent or the encrypted private key (symmetric key) is different for each recipient, sending the same data to multiple recipients requires either sending multiple individual emails or broadcasting emails with multiple encryption keys attached. Sending and receiving encrypted data using PGP places a heavy burden on both the sender and the recipient.
  • Patent document 1 discloses a technique that can realize entity verification and asset authentication when digital data is transmitted and received (see, for example, paragraph [0005]). It also discloses email addresses and evidence (see, for example, paragraphs [0051], [0170], [0044], [0054]).
  • paragraph [0044] contains the following description. "Provides an asset registry service for registering digital or physical asset data and relates to a method for creating an associated digital seal or stamp by a verifiable/provable entity that can be verified by any involved or authorized party to provide evidence that the asset data has been truly tamper-free and that the asset has been truly issued by that entity.”
  • assets include email addresses (see paragraph [0051]).
  • paragraph [0170] contains the following statement: "Another example is using a RegSeal to authenticate an email address and then sign emails with its private key. This provides evidence that an email was actually sent by the owner of the RegSeal, resulting in a high level of certainty in filtering out phishing and spam emails.”
  • RegSeal is a certified seal (see paragraph [0050]).
  • Patent document 2 discloses a system for secure content sharing. It also discloses email addresses and data tokens (see, for example, paragraphs [0001], [0012], and [0025]).
  • Patent document 3 also discloses a technology for sending and receiving messages (emails) that completely prevents the disclosure of private keys from information stored on a server, and also discloses PGP (see, for example, the abstract, paragraphs [0001] to [0003] and [0006]).
  • Patent document 4 also discloses a mail server that sets whether the password for an encrypted attachment is public or private, based on a request from the sender.
  • Information sharing tools such as Facebook are widely used as a medium for sharing information and reporting the latest developments among family, friends, acquaintances, etc., depending on the relationship between them.
  • Facebook for example, collects the public and private records of a very large number of people and is used to exchange opinions, serious drawbacks such as the following have become apparent: 1.
  • a single company is in charge of the personal information of billions of people, and there are major concerns about how that information will be used and how its security will be maintained.
  • a person who wishes to receive encrypted data using PGP must also notify the sender of the encrypted data of his/her public key in advance. To do this, he/she must send his/her public key in advance to people who may send encrypted data to him/her, such as friends and business acquaintances. When he/she updates his/her public key pair for security reasons, he/she must send the updated public key to the sender of the encrypted data. On the other hand, the sender must hold many public keys, each of which is different for each recipient, and keep them up to date. The sender must encrypt the data to be sent or the symmetric key that encrypts the data to be sent with a different public key for each recipient.
  • the object of the present invention is to realize a password sharing processing technology that enables more secure sharing of encrypted data that is the result of encrypting data to be encrypted, by using an identification token, password disclosure permission information, password identification information, password information, and multiple types of keys in cooperation with each other.
  • the first aspect of the present invention is a password sharing system 100 that includes one or more password sharing servers 101, one or more first client terminals 102 that have the functions of password registration and data output, and one or more second client terminals 103 that have the function of reading data 139 output from the first client terminals 102, all of which are interconnected, for example, via the Internet, a local area network, a VPN (Virtual Private Network), etc.
  • FIG. 1A is a block diagram showing the functional configuration of a password sharing system 100 according to a first aspect of the present invention
  • FIG. 1B is a sequence diagram showing the operational sequence of the functional configuration. The first aspect of the present invention will be described below with reference to FIGS. 1A and 1B.
  • the identification token issuing unit 104 in FIG. 1A issues identification tokens 131 and 132 to the first client terminal 102 and the second client terminal 103, respectively, indicating that they have been authenticated (steps S1 and S2 in FIG. 1B).
  • the password supply unit 105 in FIG. 1A generates password information 133, which is a password or a password key generated based on the password (steps S8 ⁇ S9 in FIG. 1B).
  • the verification unit 106 in FIG. 1A verifies the identification token 131 sent by the first client terminal 102 (step S4 in FIG. 1B).
  • the password registration unit 107 in FIG. 1A stores the password information 133 provided by the password supply unit 105 (steps S8->S9 in FIG. 1B) and the password disclosure permission information 134 that specifies the permitted range of disclosure of the password information 133 sent by the first client terminal 102 (step S6 in FIG. 1B) in a record 122 in the database 121 provided in the password sharing server 101 (step S10 in FIG. 1B), and sends the password identification information 135 that identifies the record 122 to the first client terminal 102 (steps S11->S12 in FIG. 1B).
  • the encryption key generation unit 108 in FIG. 1A generates a pair of an encryption key for encrypting data and an encryption key for decrypting data.
  • the first encryption key processing unit 109 in FIG. 1A performs a first processing on at least one of the data decryption encryption key or the data encryption encryption key generated by the encryption key generation unit 108 based on the password information 133 supplied by the password supply unit 105, thereby generating a first-processed data decryption encryption key 137 and a first-processed data encryption encryption key 136, respectively, which are data decryption encryption keys or data encryption encryption keys that have or have not been subjected to the first processing, and inputs these to the first client terminal 102 (steps S15 ⁇ S16, S17 in FIG. 1B).
  • the password disclosure unit 110 in FIG. 1A acquires the password identification information 135 and the identification token 132 included in the password inquiry information from the second client terminal 103 (steps S19 ⁇ S20, S21 ⁇ S22 in FIG. 1B), acquires the password information 133 and the password disclosure permission information 134 from the record 122 in the database 121 of the password sharing server 101 corresponding to the acquired password identification information 135 (steps S23 ⁇ S24 in FIG. 1B), acquires the user information corresponding to the acquired identification token 132, and transmits the acquired password information 133 to the second client terminal 103 only if it is confirmed that the user is included in the disclosure permission range indicated by the acquired password disclosure permission information 134 (step S25 in FIG. 1B).
  • the identification token issuing unit 104, password supplying unit 105, verification unit 106, password registration unit 107, encryption key generating unit 108, first encryption key processing unit 109, and password disclosing unit 110 are described as being provided within the password sharing server 101, but these functional units do not necessarily have to be provided within the password sharing server 101 that contains the database 121, and can also be provided within an external dedicated server.
  • the encryption key generating unit 108 and the first encryption key processing unit 109 may be provided within the first client terminal 102.
  • the first client terminal 102 in FIG. 1A has the following functional configuration and operation sequence.
  • the first identification token storage unit 111 stores the identification token 131 issued by the identification token issuing unit 104 (step S1 in FIG. 1B).
  • the password disclosure permission information input unit 112 in FIG. 1A inputs the password disclosure permission information 134, which indicates the range of password disclosure permission, through the operation of the user of the first client terminal 102 (step S5 in FIG. 1B).
  • the first information transmission/reception unit 113 in FIG. 1A transmits the password disclosure permission information 134 input by the password disclosure permission information input unit 112 and the identification token 131 stored by the first identification token storage unit 111 to the verification unit 106 and the password registration unit 107 (steps S4 and S6 in FIG. 1B), and receives the password identification information 135 transmitted by the password registration unit 107 in response to the transmission (step S12 in FIG. 1B).
  • the data encryption unit 114 in FIG. 1A encrypts the data to be encrypted using the first post-processing data encryption encryption key 136 output by the first encryption key processing unit 109 in response to input of the data to be encrypted, and outputs the encrypted data 138 obtained as a result of the encryption (steps S15 to S17 in FIG. 1B).
  • the data creation unit 115 in FIG. 1A outputs data 139 including the password identification information 135 received by the first information transmission/reception unit 113 (steps S12 ⁇ S13 in FIG. 1B), the encryption key 137 for decrypting the first processed data output by the encryption key first processing unit 109 (step S17 in FIG. 1B), and the encrypted data 138 output by the data encryption unit 114 (step S18 in FIG. 1B).
  • the second client terminal 103 in FIG. 1A has the following functional configuration and operation sequence.
  • the second identification token storage unit 116 in FIG. 1A stores the identification token 132 issued by the identification token issuing unit 104 (step S2 in FIG. 1B).
  • the encrypted data acquisition unit 117 in FIG. 1A acquires the password identification information 135, the encryption key 137 for decrypting the first processed data, and the encrypted data 138 from the read data 139 (step S19 in FIG. 1B).
  • the second information transmission/reception unit 118 in FIG. 1A transmits the password identification information 135 acquired by the encrypted data acquisition unit 117 and the identification token 132 stored by the second identification token storage unit 116 to the password disclosure unit 110 as password inquiry information (steps S20 and S21 in FIG. 1B), and receives the password information 133 transmitted by the password disclosure unit 110 in response to the transmission (step S25 in FIG. 1B).
  • the second encryption key processing unit 119 in FIG. 1A performs second processing on the first processed data decryption encryption key 137 acquired by the encrypted data acquisition unit 117 based on the password information 133 received by the second information transmission/reception unit 118, thereby generating a second-processed data decryption encryption key 140 (steps S26 and S27 in FIG. 1B).
  • the data decryption unit 120 in FIG. 1A executes a decryption process on the encrypted data 138 acquired by the encrypted data acquisition unit 117 using the second-processed data decryption encryption key 140 generated by the second encryption key processing unit 119 (steps S28 and S29 in FIG. 1B).
  • the first encryption key processing unit 109 can execute, as the processing, at least one of a wrap (encryption) process for the data decryption encryption key and a deformation process for the data encryption encryption key. Note that both of these processes may be executed.
  • FIG. 1C is an explanatory diagram of the processing (wrapping or deformation) executed by the first encryption key processing unit 109.
  • the operation when the processing in the first encryption key processing unit 109 is a wrap (encryption) process for a data decryption encryption key will be described with reference to FIGS. 1A, 1B, and 1C(a).
  • the processing is a wrap (encryption) process
  • the password supply unit 105 supplies a password as password information 133
  • the first encryption key processing unit 109 generates a password key (KP in Figure 1C (a)) based on the password, and performs a wrap process to encrypt the data decryption encryption key (KD in Figure 1C) generated by the encryption key generation unit 108 using the password key, thereby generating a first processed data decryption encryption key 137 ([KD]_KP in Figure 1C (a)) and outputting it to the first client terminal 102 (1 in Figure 1C (a)).
  • the first encryption key processing unit 109 may execute the wrapping process using the password key (KP in FIG. 1C(a)).
  • the password key is stored as the password information 133 in the database 121.
  • the first encryption key processing unit 109 outputs the data encryption encryption key (KE in FIG. 1C(a)) generated by the encryption key generation unit 108 as the first processed data encryption encryption key 136 to the first client terminal 102.
  • the first processed data decryption encryption key 137 ([KD]_KP in FIG. 1C(a)) is sent to the data creation unit 115 of the first client terminal 102, where it is transferred to the second client terminal in a wrapped (encrypted) state as part of the data 139 (steps S17 ⁇ S19 in FIG. 1B) (2 in FIG. 1C(a)).
  • the first processed data encryption cryptographic key 136 (KE in FIG. 1C(a)) is sent to the data encryption unit 114 of the first client terminal 102 and is used directly to encrypt the data to be encrypted (D in FIG. 1C) (step S16 in FIG. 1B) (3 in FIG. 1C(a)).
  • the encrypted data 138 ([D]_KE in FIG. 1C(a)) obtained by the data encryption unit 114 is sent to the data creation unit 115 and transferred as part of the data 139 to the second client terminal 103 (steps S16 ⁇ S18 ⁇ S19 in FIG. 1B) (4 in FIG. 1C(a)).
  • the first processed data decryption encryption key 137 acquired from the data 139 by the encrypted data acquisition unit 117 of the second client terminal 103 is in a wrapped state ([KD]_KP in FIG. 1C(a)). Therefore, as the second processing, the second encryption key processing unit 119 executes an unwrap (decrypt) process based on the password information 133 on this first processed data decryption encryption key 137.
  • the second encryption key processing unit 119 generates a password key (KP in Figure 1C (a)) based on the password, which is the password information 133 received from the password disclosure unit 110 by the second information transmission/reception unit 118 described above (step S26 in Figure 1B). Then, the encryption key second processing unit 119 executes an unwrapping process based on the password key for the first processed data decryption encryption key 137 ([KD]_KP in FIG. 1C(a)) received from the first client terminal 102 via the encrypted data acquisition unit 117 (step S27 in FIG. 1B).
  • the encryption key second processing unit 119 decrypts the original data decryption encryption key generated by the encryption key generation unit 108 as a second processed data decryption encryption key 140 (KD in FIG. 1C(a)) (5 in FIG. 1C(a)).
  • the encryption key second processing unit 119 outputs the second processed data decryption encryption key 140 to the data decryption unit 120 (step S28 in FIG. 1B).
  • the second encryption key processing unit 119 may perform the above-mentioned unwrapping process using the password key (KP in Figure 1C (a)), which is the password information 133 received from the database 121 via the password disclosure unit 110.
  • the data decryption unit 120 uses the second processed data decryption encryption key 140, which is the original data decryption encryption key (KD in FIG. 1C(a)), to decrypt the encrypted data 130 ([D]_KE in FIG. 1C(a)) received from the first client terminal 102 via the encrypted data acquisition unit 117 (step S29 in FIG. 1B), to obtain the data to be encrypted D (6 in FIG. 1C(a)).
  • KD in FIG. 1C(a) the original data decryption encryption key
  • the wrapping process described above provides high security because, in the process of transferring data 139 to second client terminal 103, first processed data decryption encryption key 137 cannot be unwrapped without password information 133, and encrypted data 138 cannot be decrypted.
  • the first encryption key processing unit 109 executes a transformation process to transform the data encryption encryption key (KE in FIG. 1C(b)) generated by the encryption key generation unit 108 based on a password (P in FIG. 1C(b)), which is password information 133 supplied by the password supply unit 105, thereby generating a first processed data encryption encryption key 136 (KE to P in FIG. 1C(b)) and outputting it to the first client terminal 102 (7 in FIG. 1C(b)).
  • a password P in FIG. 1C(b)
  • the first encryption key processing unit 109 outputs the data decryption encryption key (KD in FIG. 1C(b)) generated by the encryption key generation unit 108 as the first processed data decryption encryption key 137 to the first client terminal 102.
  • the first processed data decryption encryption key 137 (KD in FIG. 1C(b)) is sent to the data creation unit 115 of the first client terminal 102 and transferred to the second client terminal as part of the data 139 in the raw state generated by the encryption key generation unit 108 (steps S17 ⁇ S19 in FIG. 1B) (8 in FIG. 1C(b)).
  • the first processed data encryption cryptographic key 136 (KE-P in FIG. 1C(b)) that has been subjected to the transformation process is sent to the data encryption unit 114 of the first client terminal 102 and used to encrypt the data to be encrypted (D in FIG. 1C) (step S16 in FIG. 1B) (9 in FIG. 1C(b)).
  • the encrypted data 138 ([D]_KE to P in FIG. 1C(b)) obtained by the data encryption unit 114 is sent to the data creation unit 115 and transferred as part of the data 139 to the second client terminal 103 (steps S16 ⁇ S18 ⁇ S19 in FIG. 1B) (10 in FIG. 1C(b)).
  • the first processed data decryption encryption key 137 acquired from data 139 by the encrypted data acquisition unit 117 of the second client terminal 103 is in a plain state (KD in FIG. 1C(b)).
  • the encrypted data 138 acquired from data 139 by the encrypted data acquisition unit 117 of the second client terminal 103 is encrypted by the modified first processed data encryption encryption key 136 ([D]_KE-P in FIG. 1C(b)). Therefore, the encryption key second processing unit 119 executes a modification process based on the password, which is the password information 133, on this first processed data decryption encryption key 137 as the second processing.
  • the second encryption key processing unit 119 obtains the password (P in Figure 1C (a)), which is the password information 133 received from the password disclosure unit 110 by the second information transmission/reception unit 118 described above (step S26 in Figure 1B). Then, the second encryption key processing unit 119 performs a transformation process based on the password on the first processed data decryption encryption key 137 (KD in FIG. 1C(b)) received from the first client terminal 102 via the encrypted data acquisition unit 117 (step S27 in FIG. 1B), to obtain a second processed data decryption encryption key 140 (KD-P in FIG. 1C(b)) (11 in FIG. 1C(b)). The second encryption key processing unit 119 outputs the second processed data decryption encryption key 140 that has been transformed to the data decryption unit 120 (step S28 in FIG. 1B).
  • the password P in Figure 1C (a)
  • the second encryption key processing unit 119 performs a transformation process based on the password on the first processed data decrypt
  • the data decryption unit 120 uses the second processed data decryption encryption key 140 (KD-P in FIG. 1C(b)) obtained by modifying the original data decryption encryption key (KD in FIG. 1C(b)) to decrypt the encrypted data 130 ([D]_KE-P in FIG. 1C(b)) received from the first client terminal 102 via the encrypted data acquisition unit 117 (step S29 in FIG. 1B) to obtain the data to be encrypted D (12 in FIG. 1C(b)).
  • KD-P in FIG. 1C(b) second processed data decryption encryption key 140 obtained by modifying the original data decryption encryption key (KD in FIG. 1C(b)) to decrypt the encrypted data 130 ([D]_KE-P in FIG. 1C(b)) received from the first client terminal 102 via the encrypted data acquisition unit 117 (step S29 in FIG. 1B) to obtain the data to be encrypted D (12 in FIG. 1C(b)).
  • the first processed data decryption encryption key 137 cannot decrypt the encrypted data 138 encrypted by the transformed first processed data encryption key 136 until the data has been transformed using a password, so security is high, just like in the case of the wrap process.
  • the first encryption key processing unit 109 by processing at least one of the data decryption encryption key or the data encryption key based on the password information 133 by the first encryption key processing unit 109, it is possible to increase the security of the encrypted data 138 transferred from the first client terminal 102 to the second client terminal 103.
  • the verification unit 106 can be provided in a server other than the password sharing server 101.
  • the password registration unit 107 can be provided in a server other than the password sharing server 101 or in the first client terminal 102.
  • the password disclosure permission information 134 can include at least one of the following: relationships between users, designation of groups of users, and a list of email addresses.
  • the password registration unit 107 is receiving a password disclosure period together with an identification token from a first client terminal; storing the password disclosure period in a record 122 in a database 121;
  • the password disclosure unit 110 A password disclosure period is obtained together with the password information from a record in a database corresponding to the password identification information received from the second client terminal; Only when the current time is included in the password disclosure period, the acquired password information 133 is transmitted to the second client terminal 103. It is possible to do so.
  • the first client terminal 102 a password disclosure period input unit for inputting a password disclosure start time or a password disclosure end time as a password disclosure period by a user of the first client terminal,
  • the first information transmitting/receiving unit 113 transmits the password disclosure period inputted by the password disclosure period inputting unit 107 to the password registration unit 107. It is possible to do so.
  • the password registration unit 107 transmits the password owner identifier or a password acquisition URL (Uniform Resource Locator) to the first client terminal 102. It is possible to do so.
  • a password acquisition URL Uniform Resource Locator
  • the password disclosure unit 110 receiving a first password owner identifier together with an identification token and a password identification from a second client terminal; obtaining a second password owner identifier together with the password from a record in the database that corresponds to the obtained password identification information; Only when the first password owner identifier and the second password owner identifier match, transmit the acquired password information 133 to the second client terminal 103. It is possible to do so.
  • the data creation unit 115 outputs data including at least one of an encryption parameter, a password key derivation parameter, a key transformation parameter, a password owner ID, a password acquisition URL, a password disclosure period, and a data creation date and time. It is possible to do so.
  • the encrypted data acquisition unit 117 acquires the password owner identifier from the read data
  • the second information transmitting/receiving unit 118 transmits the password owner identifier acquired by the encrypted data acquiring unit 117 to the password disclosing unit 110 as a first password owner identifier. It is possible to do so.
  • the encrypted data acquisition unit 117 acquires the password acquisition URL from the read data
  • the second information transmission/reception unit 118 accesses the password acquisition URL acquired by the encrypted data acquisition unit 117 and communicates with the password disclosure unit 110. It is possible to do so.
  • the encrypted data acquisition unit 117 acquires the password disclosure period or the data creation date and time from the read data, and processes the password disclosure period or the data creation date and time to display to the user of the second client terminal 103. It is possible to do so.
  • the second aspect of the present invention is a server device that includes the database 121 of the first aspect of the present invention described above, and also includes any one of an identification token issuing unit 104, a password supplying unit 105, a verifying unit 106, a password registering unit 107, an encryption key generating unit 108, a first encryption key processing unit 109, or a password disclosing unit 110.
  • the third aspect of the present invention is a terminal device having the functions of the first client terminal 102 in the first aspect of the present invention described above.
  • the fourth aspect of the present invention is a terminal device having the functions of the second client terminal 103 in the first aspect of the present invention described above.
  • the first client terminal 102 and the second client terminal 103 may be the same type of hardware components, and the first client terminal 102 may also have the functions of the second client terminal 103, and conversely, the second client terminal 103 may also have the functions of the first client terminal 102. This also applies to the following embodiments.
  • the password registration unit 107 may receive the password information 133 and the password disclosure permission information 134 indicating the disclosure permission range of the password information 133 from the first client terminal 102 in two separate transmissions. For example, when the password information 133 is generated by the first client terminal 102 as described later, the password registration unit 107 receives the password information 133 in the first transmission and transmits the password identification information 135 to the first client terminal 102. Then, in the second transmission, the password registration unit 107 transmits the password identification information 135 received in the first transmission and reception in addition to the identification token 131 and the password disclosure permission information 134 from the first client terminal 102.
  • the password registration unit 107 identifies the password information 133 registered in the first transmission in the password identification information 135, and stores the password disclosure permission information 134 in association with the password information 133. In this way, when multiple pieces of data are registered in database 121 of password sharing server 101, it is common to register them in multiple parts via information indicating the association (in this case, password identification information 135). For example, when registering a user's credit card information and nickname in the server, the nickname is registered first, and then the credit card information is registered.
  • the password supply unit 105 supplies the password information 133
  • the password may be generated based on some kind of computer algorithm, or may be generated based on random numbers generated by hardware, or may be generated based on data obtained by observing natural phenomena. In addition, if the user's involvement is possible, the password may be input by the user.
  • the method by which the password supply unit 105 generates a password is not limited to these.
  • the password entered into the password input section may be a password created by the user, or may be a password automatically generated by some algorithm, but it may also be generated based on random numbers generated by hardware, or may be generated based on data obtained by observing natural phenomena.
  • the method of generating the password 133 entered into the password input section is not limited to these.
  • the encryption key generation unit 108 generates an encryption key 136 for data encryption and an encryption key 137 for data decryption. If the encryption method is a symmetric key method, these are the same. On the other hand, if the encryption method is an asymmetric key method, these are different. In the asymmetric key method, the encryption key generation unit 108 generates two keys, a public key and a private key.
  • the first encryption key processing unit 109 When the password supply unit 105 outputs a password as the password information 133, the first encryption key processing unit 109 generates a password key based on the password, which is the password information 133.
  • the password key is used to wrap (encrypt) another key.
  • the password key generation unit generates a password key from a password using, for example, a function called a key derivation function.
  • PBKDF2 Password-Based Key-Derivation Function 2
  • the first encryption key processing unit 109 may use several parameters in addition to the password when deriving the password key.
  • the parameters may be a random number called a salt, the number of iterations of the internal algorithm, the hash function used, etc.
  • this parameter is called a password key derivation parameter.
  • SHA-256 Secure Hash Algorithm 256
  • a public key corresponding to this private key is calculated using a predetermined method.
  • the data from which the cryptographic key is generated is called the cryptographic key source.
  • the data encryption cryptographic key 136 and its generator are regarded as the same.
  • the data decryption cryptographic key 137 and its generator are regarded as the same.
  • the cryptographic key transmitted and received between the password sharing server 101 and the client terminal may be the cryptographic key itself or the generator of the cryptographic key (cryptographic key generator information).
  • the key sharing server may store in the database 121 as the first processed data decryption cryptographic key 137 either the generator or the cryptographic key generated from the generator.
  • the client terminal generates a cryptographic key from the generator and uses it to encrypt and decrypt data.
  • the password information 133 is a password
  • the encryption key is transformed by the password.
  • AES which is a symmetric key encryption method, is described, but the encryption key (private key and public key) can be transformed by the password in the same way in asymmetric key encryption.
  • the encryption key and the decryption key are the same, so they are simply called the encryption key.
  • K is the encryption key of AES.
  • PWD is 64-bit data.
  • the 256-bit data to which the hash function SHA256 is applied is represented as SHA256(K+PWD). This data SHA256(K+PWD) can be used as a new encryption key.
  • PWD may be used as the input to the hash function.
  • PWD is a value obtained by aligning the beginnings of K and PWD and performing XOR on them.
  • PWD as the input, are referred to here as key transformation parameters.
  • At least one of the first processed data encryption cryptographic key 136 and the first processed data decryption cryptographic key 137 can be replaced by cryptographic key generation source information corresponding to the data from which the cryptographic key is generated. It is possible to do so.
  • the encrypted data acquisition unit 117 acquires the encryption parameters, password key derivation parameters, or key transformation parameters from the read data, respectively;
  • the data decryption unit 120 executes a decryption process on the encrypted data 138 using the encryption parameters acquired by the encrypted data acquisition unit 117;
  • the second encryption key processing unit 119 uses the password key derivation parameter acquired by the encrypted data acquisition unit 117 to generate a password key based on the password, which is the password information 133 received from the password disclosure unit 110, and executes a decryption process on the processed first processed data decryption encryption key 137 acquired from the data 139 read from the first client terminal 102 using the password key. It is possible to do so.
  • the encrypted data acquisition unit 117 acquires the encryption parameters, password key derivation parameters, or key transformation parameters from the read data 139, respectively;
  • the data decryption unit 120 decrypts the encrypted data 138 using the encryption parameters acquired by the encrypted data acquisition unit 117,
  • the second encryption key processing unit 119 uses the key transformation parameter acquired by the encrypted data acquisition unit 117 to transform the first processed data decryption encryption key 137 acquired from the data read from the first client terminal 102 using the password, which is the password information 133 received from the password disclosure unit 110. It is possible to do so.
  • Fig. 31 can be read as follows. In the role sharing of combination 1 in Fig.
  • the first client terminal 102 performs all of the following: generation of the data encryption cryptographic key and the data decryption cryptographic key by the cryptographic key generation unit 108, supply of the password information 133 by the password supply unit 105 (automatic generation or user input), and output of the first processed data decryption cryptographic key 137 and the first processed data encryption cryptographic key 136 by processing (wrapping or deformation) the data decryption cryptographic key and the data encryption cryptographic key by the cryptographic key first processing unit 109 using the password information 133.
  • the first client terminal 102 transmits the password information 133 generated by the password supply unit 105 to a server (e.g., the password sharing server 101) equipped with the password registration unit 107 to share it.
  • a server e.g., the password sharing server 101
  • the first client terminal uses the first processed data encryption cryptographic key 136 output by the cryptographic key first processing unit 109 for encryption processing in the data encryption unit 114 in its own terminal. Furthermore, the first client terminal sends the first processed data decryption encryption key 137 output by the first encryption key processing unit 109 to the data creation unit 115, which then includes the data 139 to be transmitted and transmits the data 139 to the second client terminal 103.
  • the combination of the password sharing server 101 and the first client terminal described above corresponds to the role sharing of combination 1.
  • the first client terminal 102 is provided with an encryption key generating unit 108 and a first encryption key processing unit 109
  • a password supply unit 105 is provided in a server (e.g., the password sharing server 101 or another server),
  • the server having the password supply unit 105 transmits the password information 133 supplied by the password supply unit 105 to a server having a password registration unit 107 (e.g., the password sharing server 101) and a server having a first encryption key processing unit 109, and transmits the data decryption encryption key and data encryption encryption key generated by the encryption key generation unit 108 to the server having the first encryption key processing unit 109.
  • combinations 1 and 2 are the only role allocations in which the encryption key is not disclosed to the password sharing server 101. If the password sharing server 101 is equipped with both the encryption key generation unit 108 and the password supply unit 105, both the password information 133 and the encryption key will be known to the password sharing server 101. From a security standpoint, it is not desirable to provide all secrets to the password sharing server 101. Therefore, combinations 1 and 2 are appropriate combinations.
  • a password supply unit 105 and an encryption key generation unit 108 are provided in a first client terminal 102;
  • the first encryption key processing unit 109 is provided in a server (for example, the password sharing server 101 or another server).
  • the first client terminal 102 transmits the password information 133 supplied by the password supply unit 105 to a server having a password registration unit 107 (e.g., the password sharing server 101) and a server having a first encryption key processing unit 109, and transmits the data decryption encryption key and data encryption encryption key generated by the encryption key generation unit 108 to the server having the first encryption key processing unit 109.
  • the server equipped with the first encryption key processing unit 109 transmits the first processed data decryption encryption key 137 and the first processed data encryption encryption key 136 generated by the first encryption key processing unit 109 to the first client terminal 101.
  • the first client terminal 102 includes an encryption key generating unit 108,
  • the password supply unit 105 and the first encryption key processing unit 109 are provided together in one server (e.g., either the password sharing server or another server) or distributed across one or more servers (e.g., the password sharing server 101 and another server). Then, the first client terminal 102 transmits the data decryption cryptographic key and the data encryption cryptographic key generated by the cryptographic key generating unit 108 to a server including a first cryptographic key processing unit 109 .
  • the server having the password supply unit 105 transmits the password information 133 supplied by the password supply unit 105 to a server having a password registration unit 107 (e.g., the password sharing server 101) and a server having a first encryption key processing unit 109. Furthermore, the server equipped with the first encryption key processing unit 109 transmits the first processed data decryption encryption key 137 and the first processed data encryption encryption key 136 generated by the first encryption key processing unit 109 to the first client terminal 102.
  • a server having a password registration unit 107 e.g., the password sharing server 101
  • the server equipped with the first encryption key processing unit 109 transmits the first processed data decryption encryption key 137 and the first processed data encryption encryption key 136 generated by the first encryption key processing unit 109 to the first client terminal 102.
  • a password supply unit 105 is provided in the first client terminal 102,
  • the encryption key generation unit 108 and the first encryption key processing unit 109 are provided together in one server (e.g., either the password sharing server 101 or another server) or distributed across one or more servers (e.g., the password sharing server 101 and another server).
  • the first client terminal 102 transmits the password information 133 provided by the password providing unit 105 to a server including a password registration unit 107 (e.g., the password sharing server 101) and a server including a first encryption key processing unit 109,
  • the server including the encryption key generating unit 108 transmits the data decryption encryption key and the data encryption encryption key generated by the encryption key generating unit 108 to a server including a first encryption key processing unit 109;
  • the server equipped with the first encryption key processing unit 109 transmits the first processed data decryption encryption key 137 and the first processed data encryption encryption key 136 generated by the first encryption key processing unit 109 to the first client terminal 102.
  • a password supply unit 105 and a first encryption key processing unit 109 are provided in a first client terminal 102;
  • An encryption key generating unit 108 is provided in a server (eg, the password sharing server 101 or another server). Then, the first client terminal 102 transmits the password information 133 provided by the password providing unit 105 to a server (e.g., the password sharing server 101) having a password registration unit 107, The server including the encryption key generating unit 108 transmits the data encryption key and data decryption encryption key generated by the encryption key generating unit 108 to the first client terminal 102 including a first encryption key processing unit 109 .
  • the password supply unit 105 and the encryption key generation unit 108 are provided together in one server (e.g., the password sharing server 101 or another server) or distributed among one or more servers (e.g., the password sharing server 133 and another server);
  • the first client terminal 102 is provided with a first encryption key processing unit 109 .
  • the server including the password supplying unit 105 transmits the password information 133 supplied by the password supplying unit 105 to a server including a password registration unit 107 (e.g., the password sharing server 101) and the first client terminal 102 including a first encryption key processing unit 109;
  • the server including the encryption key generating unit 108 transmits the data encryption key and data decryption encryption key generated by the encryption key generating unit 108 to the first client terminal 102 .
  • the password supply unit 105, the encryption key generation unit 108, and the first encryption key processing unit 109 are provided together on one server (e.g., either the password sharing server 101 or another server) or distributed across one or more servers (e.g., the password sharing server 101 and another server).
  • the server including the password supplying unit 105 transmits the password information 133 provided by the password supplying unit 105 to a server including a password registration unit 107 (e.g., the password sharing server 101) and a server including a first encryption key processing unit 109,
  • the server including the encryption key generating unit 108 transmits the data encryption key and the data decryption encryption key generated by the encryption key generating unit 108 to a server including a first encryption key processing unit 109;
  • the server equipped with the first encryption key processing unit 109 transmits the first processed data decryption encryption key 137 and the first processed data encryption encryption key 136 generated by the first encryption key processing unit 109 to the first client terminal 102.
  • the verification unit 106, the password registration unit 107, and the password disclosure unit 110 may all be provided in the password sharing server 101, or may be provided together in a server other than the password sharing server 101, or distributed across one or more servers.
  • the above-mentioned password sharing system may be implemented as a method and a program.
  • the scope of the present invention also includes a server device (password sharing server 101) equipped with database 121 and any one of identification token issuing unit 104, password supplying unit 105, verification unit 106, password registration unit 107, encryption key generating unit 108, first encryption key processing unit 109, or password disclosing unit 110, a terminal device having the functions of first client terminal 102, or a terminal device having the functions of second client terminal 103.
  • a sharing processing technology can be realized for more securely sharing encrypted data 138, which is the encrypted data to be encrypted, by using an identification token, password disclosure permission information 134, password identification information 135, password information 133, and multiple types of keys 136, 137, and 138 in cooperation with each other.
  • the operator of the password sharing server 101 and the person who keeps and manages the encrypted data 138 can be separated, the following holds true.
  • the operator of password sharing server 101 and the person who stores and manages encrypted data 138 are generally different persons, and neither of them has independent knowledge of the contents of the user's data. Neither the operator of the password sharing server 101 nor the person storing and managing the encrypted data 138 can use the user's data or personal information without permission. Unauthorized or improper use of personal information, or use that is detrimental to the user, is impossible in the first place. Because storage is separated from the service that provides the password information 133, storage costs are reduced. General-purpose storage, blogs, and the like on the Internet can be used as a storage location for the encrypted data 138.
  • the present invention avoids the need for a recipient to provide a sender with an up-to-date public key to encrypt data destined for the recipient. This eliminates the need for the sender to go to the trouble of finding the latest public key for each recipient. Furthermore, by identifying recipients by their authenticated email addresses, data sharing can be done with high security, without relying on password information shared among the parties involved. Furthermore, the present invention has the following advantages: By using an option to verify the sender's ID (identifier) (key owner ID), it is possible to identify the sender. It is possible for the sender to limit the period during which password information is disclosed.
  • FIG. 1A is a block diagram showing the functional configuration of a password sharing system according to a first embodiment.
  • FIG. 1B is a sequence diagram showing an operation sequence of the functional configuration of the password sharing system of the first aspect.
  • FIG. 1C is an explanatory diagram of the processing (lapping or deformation).
  • FIG. 1D is a block diagram showing a network configuration of a password sharing system according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing the configuration of a password sharing server according to an embodiment.
  • FIG. 3 is a block diagram showing the configuration of a client terminal according to an embodiment.
  • FIG. 4 is a block diagram showing the configuration of the first password sharing server in one embodiment.
  • FIG. 5 is a block diagram showing a detailed configuration of the first password sharing server according to an embodiment.
  • FIG. 6 is a block diagram showing a detailed configuration of the first password sharing server according to an embodiment.
  • FIG. 7 is a block diagram showing a detailed configuration of the first password sharing server according to an embodiment.
  • FIG. 8 is a diagram for explaining the first password sharing server in one embodiment.
  • FIG. 9 is a diagram for explaining the first password sharing server in one embodiment.
  • FIG. 10 is a diagram for explaining the first password sharing server in one embodiment.
  • FIG. 11A is a block diagram showing a detailed configuration of a first password sharing server according to an embodiment.
  • FIG. 11B is a diagram for explaining the process of the first password sharing server in one embodiment.
  • FIG. 12A is a block diagram showing a detailed configuration of a first password sharing server according to an embodiment.
  • FIG. 12A is a block diagram showing a detailed configuration of a first password sharing server according to an embodiment.
  • FIG. 12B is a diagram for explaining the process of the first password sharing server in one embodiment.
  • FIG. 12C is a diagram for explaining the process of the first password sharing server in one embodiment.
  • FIG. 13A is a block diagram showing a password deletion processing unit as a detailed configuration of the first password sharing server in one embodiment.
  • FIG. 13B is a diagram for explaining the process of the password deletion processing unit in one embodiment.
  • FIG. 14A is a block diagram showing a password disclosure period change processing unit, which is a detailed configuration of the first password sharing server in one embodiment.
  • FIG. 14B is a diagram for explaining the process of the password disclosure period change processing unit in one embodiment.
  • FIG. 14C is a block diagram showing a password disclosure allowable range changing processor, which is a detailed configuration of the first password sharing server in one embodiment.
  • FIG. 14D is a diagram for explaining the process of the password disclosure allowable range change processing unit in one embodiment.
  • FIG. 15 is a block diagram showing the configuration of the second password sharing server in one embodiment.
  • FIG. 16A is a block diagram showing a detailed configuration of a second password sharing server in one embodiment.
  • FIG. 16B is a diagram for explaining the process of the second password sharing server in one embodiment.
  • FIG. 17A is a diagram for explaining an example of processing by the password registration processing unit in the case of key wrap with role allocation of combination 3.
  • FIG. 17B is a block diagram of a password registration client terminal in the case of key wrapping with role sharing of combination 3.
  • FIG. 17C is a diagram for explaining the operation of a password registration client terminal in the case of key wrapping with role sharing of combination 3.
  • FIG. 15 is a block diagram showing the configuration of the second password sharing server in one embodiment.
  • FIG. 16A is a block diagram showing a detailed configuration of a second password sharing server in one embodiment.
  • FIG. 16B is
  • FIG. 17D is a diagram for explaining an example of processing by the password registration processing unit in the case of key transformation in role allocation of combination 3.
  • FIG. 17E is a diagram for explaining the operation of the password registration client terminal in the case of key transformation with role sharing of combination 3.
  • FIG. 17F is a diagram for explaining an example of processing by the password registration processing unit in the case of key wrap with role allocation of combination 4.
  • FIG. 17G is a block diagram of a password registration client terminal in the case of key wrap with role allocation of combination 4.
  • FIG. 17H is a diagram for explaining the operation of a password registration client terminal in the case of key wrapping with role sharing of combination 4.
  • FIG. 17I is a diagram for explaining an example of processing by the password registration processing unit in the case of key transformation in role allocation of combination 4.
  • FIG. 17E is a diagram for explaining the operation of the password registration client terminal in the case of key transformation with role sharing of combination 3.
  • FIG. 17F is a diagram for explaining an example of processing by the password registration processing unit in the case of key
  • FIG. 17J is a diagram for explaining the operation of the password registration client terminal in the case of key transformation with role allocation of combination 4.
  • FIG. 17K is a diagram for explaining an example of the processing of the password registration processing unit in the case of key wrap with role allocation of combination 5.
  • FIG. 17L is a block diagram of a password registration client terminal in the case of key wrap with role sharing combination 5.
  • FIG. 17M is a diagram for explaining the operation of a password registration client terminal in the case of key wrapping with role sharing of combination 5.
  • FIG. 17N is a diagram for explaining an example of processing of the password registration processing unit in the case of key transformation in role allocation of combination 5.
  • FIG. 17O is a diagram for explaining the operation of the password registration client terminal in the case of key transformation with role sharing of combination 5.
  • FIG. 17J is a diagram for explaining the operation of the password registration client terminal in the case of key transformation with role allocation of combination 4.
  • FIG. 17K is a diagram for explaining an example of the processing of the password registration processing unit in the case of key wrap
  • FIG. 17P is a diagram for explaining an example of the processing of the password registration processing unit in the case of key wrap with role sharing in combination 6.
  • FIG. 17Q is a block diagram of a password registration client terminal in the case of key wrap with role allocation of combination 6.
  • FIG. 17R is a diagram for explaining the operation of a password registration client terminal in the case of key wrapping with role sharing in combination 6.
  • FIG. 17S is a block diagram of a password registration client terminal in the case of key transformation with role allocation of combination 6.
  • FIG. 17T is a diagram for explaining the operation of the password registration client terminal in the case of key transformation with role allocation of combination 6.
  • FIG. 17U is a diagram for explaining an example of the processing of the password registration processing unit in the case of key wrap with role allocation of combination 7.
  • FIG. 17Q is a block diagram of a password registration client terminal in the case of key wrap with role allocation of combination 6.
  • FIG. 17R is a diagram for explaining the operation of a password registration client terminal in the case of key wrapping with role sharing in
  • FIG. 17V is a block diagram of a password registration client terminal in the case of key wrap with role sharing combination 7.
  • FIG. 17W is a diagram for explaining the operation of a password registration client terminal in the case of key wrapping with role sharing of combination 7.
  • FIG. 17X is a block diagram of a password registration client terminal in the case of key transformation with role allocation of combination 7.
  • FIG. 17Y is a diagram for explaining the operation of the password registration client terminal in the case of key transformation with role allocation of combination 7.
  • FIG. 17Z is a diagram for explaining an example of the processing of the password registration processing unit in the case of key wrap with role allocation of combination 8.
  • FIG. 18A is a block diagram of a password registration client terminal in the case of role allocation and key wrap in combination 8.
  • FIG. 18A is a block diagram of a password registration client terminal in the case of role allocation and key wrap in combination 8.
  • FIG. 18B is a diagram for explaining the operation of a password registration client terminal in the case of key wrapping with role sharing of combination 8.
  • FIG. 18C is a diagram for explaining an example of processing by the password registration processing unit in the case of key transformation in role allocation of combination 8.
  • FIG. 18D is a diagram for explaining the operation of the password registration client terminal in the case of key transformation with role allocation of combination 8.
  • FIG. 19 is a block diagram showing the configuration of a password registration client terminal according to an embodiment.
  • FIG. 20 is a block diagram showing a detailed configuration of the first password registration client terminal in one embodiment.
  • FIG. 21 is a block diagram showing a detailed configuration of the first password registration client terminal in one embodiment.
  • FIG. 22A is a block diagram showing a detailed configuration of a first password registration client terminal in one embodiment.
  • FIG. 22B is a diagram for explaining the process of the first password registration client terminal in one embodiment.
  • FIG. 23 is a diagram for explaining the process of the first password registration client terminal in one embodiment.
  • FIG. 24A is a block diagram showing a detailed configuration of a second password registration client terminal in one embodiment.
  • FIG. 24B is a diagram for explaining the process of the second password registration client terminal in one embodiment.
  • FIG. 25A is a block diagram showing a detailed configuration of a third password registration client terminal in one embodiment.
  • FIG. 25B is a diagram for explaining the process of the third password registration client terminal in one embodiment.
  • FIG. 25C is a diagram for explaining the process of the third password registration client terminal in one embodiment.
  • FIG. 26A is a block diagram showing a detailed configuration of a fourth password registration client terminal in one embodiment.
  • FIG. 26B is a diagram for explaining the process of the fourth password registration client terminal in one embodiment.
  • FIG. 27 is a block diagram showing the configuration of a password acquisition client terminal according to an embodiment.
  • FIG. 28A is a block diagram showing a detailed configuration of a first password acquisition client terminal in one embodiment.
  • FIG. 28B is a diagram for explaining the process of the first password acquisition client terminal in one embodiment.
  • FIG. 29A is a block diagram showing a detailed configuration of a first password acquisition client terminal in one embodiment.
  • FIG. 29B is a diagram for explaining the process of the first password acquisition client terminal in one embodiment.
  • FIG. 30A is a block diagram showing a detailed configuration of a second password acquisition client terminal in one embodiment.
  • FIG. 30B is a diagram for explaining the process of the second password acquisition client terminal in one embodiment.
  • FIG. 31 is a diagram for explaining combinations of execution locations of each functional unit of the password sharing system.
  • FIG. 32 is a diagram for explaining the process of the user registration processing unit 21.
  • FIG. 33 is a diagram for explaining the process of the user registration processing unit 31.
  • FIG. 34 is a diagram for explaining the process of the login processing unit 22.
  • FIG. 35 is a diagram for explaining the process of the login processing unit 32.
  • FIG. 32 is a diagram for explaining combinations of execution locations of each functional unit of the password sharing system.
  • FIG. 32 is a diagram for explaining the process of the user registration processing unit 21.
  • FIG. 33 is a diagram for explaining the process of the user registration processing unit 31.
  • FIG. 34 is a diagram for explaining the process of the login processing unit 22.
  • FIG. 35 is a diagram for explaining the process of the login processing unit 32.
  • a password sharing system 1 includes a password sharing server 2, multiple client terminals (sometimes referred to as user terminals) 3, and a communication network 4.
  • a password sharing processing technique is realized for more securely sharing encrypted data obtained by encrypting data to be encrypted, by using an identification token, password disclosure permission information, password identification information, a password, and multiple types of keys in a coordinated manner.
  • the password sharing system 1 corresponds to the password sharing system 100 in FIG. 1A.
  • the password sharing server 2 corresponds to the password sharing server 101 in FIG. 1A.
  • the client terminal 3 corresponds to the first client terminal 102 or the second client terminal 103 in FIG. 1A.
  • the communication network 4 enables wireless and wired data communication and is composed of the Internet, a local area network, an IP (Internet Protocol) network such as a VPN (Virtual Private Network), and accommodates the password sharing server 2 and multiple client terminals 3 (3A, 3B).
  • IP Internet Protocol
  • VPN Virtual Private Network
  • the password sharing server 2 is an internet server operated and managed by a password sharing service provider, and runs on the facilities of a virtual server provider or cloud operator. It executes the password sharing process, which will be described in detail later.
  • the password sharing server 2 is implemented as a first password sharing server 2A, a second password sharing server 2B, or a third password sharing server 2C (not shown).
  • this password sharing server 2 has a data communication function with multiple client terminals 3, and includes hardware components as illustrated in FIG. 2. That is, the password sharing server 2 includes a CPU (Central Processing Unit) 201 as a processor, a RAM (Random Access Memory) 202 as working memory, and a ROM (Read Only Memory) 203 that stores a boot program for startup.
  • a CPU Central Processing Unit
  • RAM Random Access Memory
  • ROM Read Only Memory
  • the password sharing server 2 further comprises a non-volatile flash memory 204 that rewritably stores an OS (Operating System), application programs, and various information (including data), a communication control unit 205, and a communication interface (IF) unit 206 such as a NIC (Network Interface Card).
  • OS Operating System
  • IF communication interface
  • the password sharing server 2 also includes functional components, which will be described in detail later, such as a user registration processing unit (first processing unit) 21, a login processing unit 22, a user relationship maintenance processing unit 23, a password registration processing unit (second processing unit) 24, a password disclosure processing unit (third processing unit) 25, a password deletion processing unit 26, and a password disclosure period change processing unit 27.
  • a password sharing processing program is installed as an application program in the flash memory 204. Then, in the password sharing server 2, in response to an instruction from the operator (administrator) or power-on, the processor (CPU) 201 constantly deploys and executes this processing program in the RAM 202.
  • the password sharing processing program works in conjunction with the above-mentioned hardware components to carry out the password sharing process.
  • each client terminal 3 is a single or complex user terminal with wireless and wired data communication capabilities, such as mobile phone terminals including smartphones, and computer terminals including personal computers and tablet terminals, and is assigned a telephone number, email address, and/or IP address.
  • Each client terminal 3 is implemented as a client terminal 3A (corresponding to the first client terminal 102 in FIG. 1A) having a password registration function or a client terminal 3B (corresponding to the second client terminal 103 in FIG. 1A) having a password acquisition function.
  • One client terminal 3 may be configured to have both a password registration function and a password acquisition function.
  • the multiple client terminals 3 (3A, 3B) in the password sharing system 1 include hardware components as shown in FIG. 3. That is, the client terminal 3 includes a CPU 300 as a processor, a RAM 301 as working memory, and a ROM 302 that stores a boot program for startup.
  • the client terminal 3 further includes a non-volatile flash memory 303 that stores the OS, application programs, and various information (including data) in a rewritable manner, a communication control unit 304 that has wireless and wired data communication functions, and a communication interface (IF) unit 305 such as a NIC.
  • a non-volatile flash memory 303 that stores the OS, application programs, and various information (including data) in a rewritable manner
  • a communication control unit 304 that has wireless and wired data communication functions
  • IF communication interface
  • the client terminal 3 further includes a display unit 306 including a display (LCD: Liquid Crystal Display), a display control unit 307, and an information input/designation unit 308 including a numeric keypad, various function buttons (keys), a pointing unit, and a cursor feed unit.
  • a display unit 306 including a display (LCD: Liquid Crystal Display), a display control unit 307, and an information input/designation unit 308 including a numeric keypad, various function buttons (keys), a pointing unit, and a cursor feed unit.
  • LCD Liquid Crystal Display
  • an information input/designation unit 308 including a numeric keypad, various function buttons (keys), a pointing unit, and a cursor feed unit.
  • Each client terminal 3 selectively includes functional components, which will be described in detail later, such as a user registration processing unit 31, a login processing unit 32, a password registration processing unit 33, a data creation processing unit 34, a password acquisition processing unit 35, and a data decryption processing unit 36 depending on the embodiment (example).
  • a user registration processing unit 31 a login processing unit 32, a password registration processing unit 33, a data creation processing unit 34, a password acquisition processing unit 35, and a data decryption processing unit 36 depending on the embodiment (example).
  • a terminal control program for password sharing processing is installed as an application program in flash memory 303. Then, in the client terminal 3, in response to a user instruction or power-on, the processor (CPU) 300 deploys and executes the terminal control program in RAM 301.
  • the terminal control program works in conjunction with the above-mentioned hardware components to carry out the password sharing processing.
  • the first password sharing server 2A has, as functional components, a user registration processing unit 21, a login processing unit 22, a user relationship maintenance processing unit 23, a password registration processing unit 24, a password disclosure processing unit 25, a password deletion processing unit 26, and a password disclosure period change processing unit 27.
  • the basic characteristic elements of the first password sharing server 2A are a user registration processing unit (corresponding to the identification token issuing unit 104 in Figure 1A) 21, a password registration processing unit (corresponding to the password registration unit 107 in Figure 1A) 24, and a password disclosure processing unit (corresponding to the password disclosure unit 110 in Figure 1A) 25.
  • the first password sharing server 2A is a password sharing server (corresponding to the password sharing server 101 in FIG. 1A) applicable to a password sharing system 1 including a password registration client terminal 3A (corresponding to the first client terminal 102 in FIG. 1A) used by a first user and a password acquisition client terminal 3B (corresponding to the second client terminal 103 in FIG. 1A) used by a second user, and includes a user registration processing unit 21 that issues an identification token (evidence) indicating that the user is an authenticated user.
  • the identification token will be described later.
  • the first password sharing server 2A also includes a password registration processing unit 24 that receives from the first client terminal 3A an identification token (corresponding to the identification token 131 in Figure 1A) corresponding to the first user issued by the user registration processing unit 21, an encrypted password for data decryption (corresponding to the password information 133 in Figure 1A), and password disclosure permission information (corresponding to the password disclosure permission information 134 in Figure 1A) that specifies the permitted range of disclosure of the password, stores the password and password disclosure permission information in a database, and transmits to the first client terminal 3A password identification information (password ID) (corresponding to the password identification information 135 in Figure 1A) that identifies the stored password and password disclosure permission information on the database (corresponding to the database 121 in Figure 1A) only if it is confirmed by verifying the identification token that it is a correct identification token (identification token corresponding to the first user).
  • an identification token corresponding to the identification token 131 in Figure 1A
  • an encrypted password for data decryption corresponding to the password information 133 in Figure 1A
  • the password may be created by the first user or may be automatically generated by a program, but the method of password generation is not limited to these.
  • a function corresponding to the password supply unit 105 in Fig. 1A is provided in the first client terminal 3A (corresponding to the first client terminal 102 in Fig. 1A).
  • the identification token may be transmitted from the client to the server using a cookie. In this case, the server is assumed to have sent the identification token to the client terminal in advance as a cookie.
  • the first password sharing server 2A includes a password disclosure processing unit (third processing unit) 25 that receives from the second client terminal 3B an identification token (corresponding to the identification token 132 in FIG. 1A) corresponding to the second user issued by the user registration processing unit 21 and a password ID transmitted by the password registration processing unit 24 obtained by reading data (corresponding to data 139 in FIG. 1A) output from the first client terminal 3A, obtains information on the second user identified by the identification token corresponding to the second user, obtains from the database (corresponding to the database 121 in FIG. 1A) a password (corresponding to the password information 133 stored in the record 122 in the database 121 in FIG. 1A) and password disclosure permission information (corresponding to the password disclosure permission information 134 also stored in the record 122 in FIG. 1A) identified by the password ID received from the second client terminal 3B, and transmits the password identified by the password ID to the second client terminal 3B only when it is confirmed that the second user is included in the password disclosure permission range specified by the password disclosure permission information obtained from the database.
  • the first password sharing server 2A can take the following forms. Note that [Form 1] to [Form 4] can also be applied to the second password sharing server 2B and the third password sharing server 2C described below.
  • the password disclosure permission information includes at least one of the following: relationships between users preregistered in the first password sharing server 2A, designation of a group of users preregistered in the first password sharing server 2A, and a list of email addresses.
  • the list of email addresses may be sent by the client terminal 3A as the password disclosure permission information.
  • the password registration processing unit 24 receives the password disclosure period together with the identification token from the first client terminal 3A, and stores the password disclosure period in a database.
  • the password disclosure processing unit 25 obtains the password disclosure period from the database along with the password identified by the received password ID, and when the current time is included in the password disclosure period, transmits the password identified by the password ID to the second client terminal 3B.
  • the password registration processing unit 24 sends the password owner ID (password owner identification information) or the password acquisition URL to the first client terminal 3A.
  • the password disclosure processing unit 25 receives a first password owner ID together with an identification token and a password ID from the second client terminal 3B, retrieves a second password owner ID from a database together with a password identified by the password ID, and, if the first password owner ID and the second password owner ID match, transmits the password identified by the password ID to the second client terminal 3B.
  • the first password sharing server 2A transmits and receives the following various data a through n to and from the password registration client terminal 3A and the password acquisition client terminal 3B. Note that the data marked with "*" below is optional data, and there are some embodiments in which it is not used.
  • the term "email address” in this specification generally refers to an ID (identification information) that identifies a recipient user in communication.
  • ID identification information
  • a telephone number may be used.
  • an SNS ID for example, a LINE ID, "LINE" is a registered trademark of LINE Corporation
  • a handle name etc.
  • the user registration processing unit 21 in the first password sharing server 2A can be configured to include, as detailed components, an email address management unit 21a, a user database 21b, a Web server (here, a Web server function unit) 21c, and an email reply unit 21d.
  • the processing in the user registration processing unit 21 is carried out in several ways for various Internet services.
  • Figure 5 shows the configuration of the user registration processing unit 21.
  • Figure 32 shows the operation thereof.
  • the email address management unit 21a, user database 21b, web server 21c, and email reply unit 21d work together to provisionally register the email address and password used by the user, and then officially register the email address after confirming that the user is the owner of the email address.
  • the user cannot use the services of the first password sharing server 2A until official registration is complete.
  • an identification token generated by the user registration processing unit 21 is required to use the various services of this server.
  • the email reply unit 21d emails a registration token to the registered email address to confirm that the email address provisionally registered by the user belongs to that user.
  • the registration token is sent as a readable character string.
  • the registration token is added as a query parameter of the registration URL (Uniform Resource Locator), and when the user who receives the email clicks on the registration URL, the web server 21c can obtain the registration token as a query parameter.
  • the registration URL is a URL that enables the user to access the web server 21c from the password registration client terminal 3A.
  • the registration token contains information unique to the provisionally registered user that was generated by the email address management unit 21a. This information includes the ID of the user who was provisionally registered in the user database 21b.
  • the email address management unit 21a can obtain the email address and password of the provisionally registered user by searching the user database 21b using the registration token.
  • the Web server 21c When a provisionally registered user receives an email and accesses the first password sharing server 2A, the Web server 21c requests the user to enter an email address and password. This allows the email address management unit 21a to confirm that the email recipient is a user who has provisionally registered. If the email address and password entered by the user match the email address and password of the provisionally registered user, the email address management unit 21a officially registers the user in the user database 21b.
  • the email address management unit 21a After this registration, the email address management unit 21a generates an identification token for the registered user, and the Web server 21c sends the identification token to the password registration client terminal 3A.
  • the identification token is different from the user registration token.
  • the identification token contains information unique to the user, such as the user's ID in the user database 21b, and the user can be identified by the identification token.
  • the Web server 21c may transmit the identification token to the client terminal 3A as a cookie.
  • the corresponding client terminal 3A is equipped with a user registration processing unit 31. Its configuration is shown in FIG. 20.
  • the user registration processing unit 31 shares the information transmission/reception unit 54 and the identification token storage unit 51 with other processing units.
  • the operation of the user registration processing unit 31 is shown in FIG. 33.
  • the address of the user registration processing unit 21 of the password sharing server 2A is written in the registration URL.
  • the login processing unit 22 in the first password sharing server 2A can be configured to include, as detailed components, an email address management unit 21a, a user database 21b, and a Web server 21c. These components are shared with the user registration processing unit 21.
  • the process in the login processing unit 22 is carried out in several ways for various Internet services. Here, an example will be described.
  • Figure 6 shows the configuration of the login processing unit 22.
  • Figure 34 shows the operation of the login processing unit 22.
  • the email address management unit 21a, user database 21b, and web server 21c work together to reissue an identification token to a registered user. This is a necessary procedure for an identification token that has an expiration date set.
  • the login processing unit 22 has the function of issuing an identification token to a registered user, and when the identification token reaches its expiration date, issuing a new identification token to the user.
  • convenience can be improved by storing the identification token in each password registration client terminal 3A used by the user.
  • the corresponding client terminal 3A is equipped with a login processing unit 32. Its configuration is shown in FIG. 21.
  • the login processing unit 32 shares the information transmission/reception unit 54 and the identification token storage unit 51 with other processing units.
  • the operation of the login processing unit 32 is shown in FIG. 35.
  • the identification token is proof (evidence) that an email address has been authenticated.
  • Email address authentication refers to the system being able to confirm that a user who has provisionally registered an email address in the system (server) has received an email addressed to that email address.
  • a mechanism called OAuth provides this function.
  • the first password sharing server 2A may use this OAuth mechanism to issue an identification token based on email address authentication.
  • the user relationship storage processing unit 23 in the first password sharing server 2A can be configured to include, as detailed components, a query processing unit 23a and a user relationship database 23b.
  • a user who registers a password in the first password sharing server 2A registers in advance the relationship between himself/herself and other users in the user relationship database 23b from the password registration client terminal 3A.
  • the inquiry processing unit 23a receives an inquiry/question [U, R, u] from the password disclosure processing unit 25 about the user U, user u, and the relationship R between the users, and returns an answer [yes (positive judgment)] or [no (negative judgment)].
  • the users processed by the user relationship storage processing unit 23 are represented by email addresses used by the users, for example.
  • the relationships R between users are, for example, any of "family", “best friend”, “friend”, “friend of a friend”, and "other".
  • This user relationship R may be a designation of a group to which the user U and the user u belong.
  • the user relationship maintenance processing unit 23 answers "yes" when the user U and the user u belong to a group called the user relationship R, and answers "no" otherwise.
  • a plurality of groups can also be designated as the user relationship R.
  • the user relationship maintenance processing unit 23 answers "yes” when the user U and the user u simultaneously belong to any of the groups included in the user relationship R, and answers "no” otherwise.
  • Twitter a registered trademark of the US company "Twitter Incorporated
  • the user relationship database 23b in the user relationship storage processing unit 23 stores the list shown in FIG. 8 for user U. This list is the user relationship table for user U.
  • the user relationship table for user U is registered in advance in the user relationship database 23b in the user relationship storage processing unit 23 by user U. Note that the relationship R between users has the following order: "Family” > "Best Friend” > "Friend” > "Friend of a Friend” > "Other.”
  • the query processing unit 23a When the query processing unit 23a receives the query [U, friend, f20], it interprets this query as "Are U and f20 friends?" According to the user relationship table, U and f20 are best friends, and best friends have a higher order relationship than friends. Therefore, the answer to this query by the query processing unit 23a is [yes].
  • the user relationship storage processing unit 23 saves a user relationship table for each user U, as shown in the example in FIG. 9.
  • “mutually following users” is the intersection set of the set of "users followed by U” and the set of "users following U”.
  • the intersection set (the set of mutually following users) is excluded from both the set of "users followed by U” and the set of "users following U”.
  • the relationship R between users has an order relationship of "mutually following users” > "users followed by U” > "users following U” > "unrelated users”.
  • the query processing unit 23a receives a query [U, mutual follow, U2].
  • the query processing unit 23a interprets this query as "Is U2 a user in a mutual follow relationship with U?”
  • U2 follows U, but is not followed by U.
  • Mutual following is a higher order relationship than simply being followed.
  • a user who simply follows U is not in a mutual follow relationship. Therefore, the response to this query by the query processing unit 23a is [no].
  • the user relationship database 23b in the user relationship storage processing unit 23 may store a list of groups for the user U, as exemplified in FIG. 10.
  • the user for example, registers this list in advance in the user relationship database 23b from the password registration client terminal 3A.
  • the query processing unit 23a receives a query [u, ⁇ G1, G2, ..., GN ⁇ , f].
  • the query processing unit 23a interprets this query as "Are there any groups that include f among u's groups G1 to GN?"
  • the query processing unit 23a checks whether user f is included among the members of user u's groups G1 to GN. Then, the query processing unit 23a responds [yes] if user f is included, and [no] if not.
  • the password registration processing unit 24 in the first password sharing server 2A can be configured to include, as detailed components, an email address management unit 21a, a user database 21b, a web server 21c, a password registration unit 24a, and a password database 24b.
  • the components, email address management unit 21a, user database 21b, and web server 21c, are shared with other processing units.
  • the password registration unit 24a receives an identification token, a password, and password disclosure permission information from the password registration client terminal 3A via the Web server 21c.
  • the password registration unit 24a verifies the identification token by working together with the email address management unit 21a and the user database 21b, and confirms that the user is a user who has been registered in the user registration processing unit 21.
  • the password registration unit 24a cooperates with the email address management unit 21a and the user database 21b to obtain the email address of the user and register the email address in the password database 24b together with the password and password disclosure permission information.
  • the password database 24b generates password identification information (password ID) for identifying the registered information and returns it to the password registration unit 24a.
  • the user who registers a password is called the password owner of that password.
  • the identification token that the password registration client terminal 3A sends to the password registration processing unit 24 is generated by the user registration processing unit 21 or the login processing unit 22.
  • the password registration client terminal 3A sends the identification token to indicate that the user is registered with the first password sharing server 2A.
  • the password registration processing unit 24 may receive a password disclosure period from the password registration client terminal 3A in addition to the identification token, password, and password disclosure permission information.
  • the password disclosure period is specifically a password disclosure start time, which is the time when password disclosure starts, and a password disclosure end time, which is the time when password disclosure ends. If the password disclosure start time is valid, the password disclosure processing unit 25 described below will not send the encrypted password to the password acquisition client terminal 3B before the password disclosure start time. Also, if the password disclosure end time is valid, the password disclosure processing unit 25 will not send the encrypted password to the password acquisition client terminal 3B after the password disclosure end time.
  • the password registration unit 24a stores the password owner ID in the password database 24b in addition to the password, password disclosure permission information, and email address.
  • the password owner ID is stored in order to confirm the password owner when disclosing the password.
  • the password owner ID is information for identifying the password owner on the user database 21b.
  • the user ID of the password owner in the user database 21b can be used as the password owner ID.
  • the password owner's email address can be used as the password owner ID. This is because the password owner can be identified by searching the user database 21b using the password owner's email address.
  • encryption keys In the case of symmetric key cryptography (shared key cryptography) such as AES (Advanced Encryption Standard), the key for encrypting data and the key for decrypting data are the same.
  • public key cryptography such as elliptic curve cryptography
  • the key for encrypting data and the key for decrypting data are different.
  • the private key of public key cryptography can be used for encrypting data and the public key for decrypting data, but the reverse is also possible. In other words, it is also possible to use the public key for encrypting data and the private key for decrypting data.
  • Ks is the private key that pairs with public key Kp. This is because when encrypted data k[D] and the encrypted symmetric key Kp[k] are obtained, Kp[k] is decrypted with Ks to obtain k, and k[D] is decrypted using k to obtain D.
  • n (n is a positive integer) encryption keys ⁇ ke1, ke2, ..., ken ⁇ are used to encrypt data to create encrypted data
  • N (N is a positive integer) encryption keys ⁇ kd1, kd2, ..., kdN ⁇ are used to decrypt the encrypted data to return to the original data
  • ⁇ ke1, ke2, ..., ken ⁇ are called encryption keys for data encryption
  • ⁇ kd1, kd2, ..., kdN ⁇ are called encryption keys for data decryption.
  • SHA-256 Secure Hash Algorithm 256
  • a public key corresponding to this private key is calculated using a predetermined method.
  • the data from which the cryptographic key is generated is called the cryptographic key source.
  • the data encryption cryptographic key and its generator are regarded as the same.
  • the data decryption cryptographic key and its generator are regarded as the same.
  • the cryptographic key transmitted and received between the key sharing server 2 and the client terminal 3 may be the cryptographic key itself or the generator of the cryptographic key (cryptographic key generator information).
  • the key sharing server 2 may store in the database as the data decryption cryptographic key either the generator or the cryptographic key generated from the generator.
  • the client terminal 3 generates a cryptographic key from the generator and uses it to encrypt and decrypt data.
  • the password disclosure permission information sent by the password registration client terminal 3A to the password registration processing unit 24 is information that determines the disclosure target (password disclosure permission range) of the password sent at the same time.
  • the password disclosure permission information is, for example, "friends.” This is information that specifies the relationship R between users in the user relationship storage processing unit 23. Alternatively, if the user relationship storage processing unit 23 stores a list of user groups as shown in Fig. 10, a group may be specified.
  • the password disclosure permission information may also be the user's email address. Multiple email addresses can be specified. In that case, the password disclosure permission information is a list of email addresses. Both the relationship R between users in the user relationship maintenance processing unit 23 and a list of email addresses can be specified as the password disclosure permission information.
  • An embodiment of the password registration processing unit 24 that accepts only a list of email addresses as the password disclosure permission information is also possible. In that case, the first password sharing server 2A does not have a user relationship maintenance processing unit 23.
  • the email address included in the password disclosure permission information does not have to be the email address of the user registered by the user registration processing unit 21.
  • the password owner can specify the email address of a user who has not yet been registered as the disclosure destination.
  • the first password sharing server 2A will later disclose the password after the user has registered.
  • the password registration processing unit 24 sends the password ID to the password registration client terminal 3A.
  • the password ID is an ID for uniquely identifying the password, the password disclosure permission information, the password owner's email address, or the password owner ID on the password database 24b.
  • the password registration processing unit 24 may send the password owner ID in addition to the password ID to the password registration client terminal 3A.
  • the password registration processing unit 24 may also send a password acquisition URL in addition to the password ID to the password registration client terminal 3A.
  • the password acquisition URL is the URL from which the password is acquired. As described below, when receiving disclosure of the password, the password acquisition client terminal 3B accesses the password acquisition URL to acquire the password and sends the password ID.
  • the password owner ID is an email address.
  • the password acquisition URL is held by the password registration unit 24a.
  • the password owner is the user who sends an identification token to the password registration processing unit 24.
  • the registered user on the user database 21b identified by the identification token is the password owner.
  • the email address of the password owner is also used as the password owner ID.
  • the Web server 21c receives the password disclosure period, but the password disclosure period may be either the password disclosure start time or the password start and end times. If the password disclosure start time is not specified, the password registration processing unit 24 sets the password disclosure start time to the current time. If the password disclosure end time is not specified, the password registration processing unit 24 sets the end time, for example, one week after the password disclosure start time. When the password registration processing unit 24 determines the password disclosure start time or the password disclosure end time, it is assumed that the time is appropriately set so that the relationship password disclosure start time ⁇ password disclosure end time is established. Furthermore, even if the password disclosure period is not received, the first password sharing server 2A may set the password disclosure period independently. For example, it is conceivable that the implicit password disclosure end time is set to one week after receiving a password registration request.
  • the password registration processing unit 24 executes the following detailed processing procedure as an example.
  • the Web server 21c receives the identification token, the password, the password disclosure permission information, and the password disclosure period from the password registration client terminal 3A.
  • the Web server 21c sends the identification token, the password, the password disclosure permission information, and the password disclosure period to the password registration unit 24a.
  • the password registration unit 24a sends an identification token to the email address management unit 21a.
  • the email address management unit 21a verifies the identification token.
  • [S5] Determine whether the token is an identification token of a user who is registered in the user database 21b. If the result is [no] (negative determination), the process ends.
  • step S6 The email address management unit 21a obtains the email address of the registered user (password owner) from the user database 21b.
  • the email address management unit 21a sends the email address of the password owner to the password registration unit 24a.
  • the password registration section 24a registers the password, password disclosure permission information, password disclosure period, and the password owner's email address in the password database 24b.
  • the password database 24b generates an ID (password ID) for the registration information and returns it to the password registration unit 24a.
  • the password registration unit 24a sends the password ID, the password owner's email address, and the password acquisition URL to the Web server 21c.
  • the Web server 21c sends the password ID, the password owner's email address, and the password acquisition URL to the password registration client terminal 3A.
  • the password disclosure processing unit 25 in the first password sharing server 2A can be configured to include, as detailed components, an email address management unit 21a, a user database 21b, a Web server 21c, a password disclosure control unit 25a, and a password database 24b.
  • the components, email address management unit 21a, user database 21b, Web server 21c, and password database 24b, are shared with other processing units.
  • the password disclosure control unit 25a receives an identification token, password ID, and password owner ID (email address) from the password acquisition client terminal 3B via the Web server 21c.
  • the user requesting password disclosure (sometimes referred to as the password disclosure requesting user) sends the above-mentioned identification token, password ID, and password owner ID from the password acquisition client terminal 3B to the password disclosure processing unit 25.
  • the password disclosure control unit 25a uses the identification token to confirm that the password disclosure requesting user is a user registered in the user registration processing unit 21.
  • the password disclosure control unit 25a then obtains the email address of the password disclosure requesting user.
  • the password disclosure control unit 25a uses the password ID to identify the password, password disclosure permission information, password disclosure period, and password owner ID in the password database 24b. If information corresponding to the password ID is not registered in the password database 24b, the password disclosure control unit 25a ends the process and does not return the password to the password acquisition client terminal 3B. For example, this is the case when the password owner deletes the password.
  • the password disclosure control unit 25a compares the identified password owner ID with the password owner ID received from the password acquisition client terminal 3B. If these password owner IDs are different, the password disclosure processing unit 25 does not send the identified password to the password acquisition client terminal 3B. This makes it possible to confirm that the user described in the encrypted data as the data creator (password owner) is indeed the creator (password owner) of the encrypted data. If the password owner ID of the encrypted data is forged, the password disclosure processing unit 25 does not return the password for decrypting the data to the password acquisition client terminal 3B, so the encrypted data cannot be decrypted. An embodiment in which this confirmation is not performed is also conceivable. In this case, the password acquisition client terminal 3B does not send the password owner ID to the password disclosure processing unit 25, and the password disclosure processing unit 25 skips confirmation of the password owner ID.
  • the password disclosure control unit 25a checks the password disclosure permission information stored in the password database 24b identified by the password ID. If the password disclosure permission information includes a list of email addresses, the password disclosure control unit 25a checks whether the email address of the user requesting password disclosure is included in the list of email addresses. If the check result is no, the password disclosure control unit 25a checks whether the password disclosure permission information includes a specification of a relationship between users. If the check result is no, the password disclosure control unit 25a checks whether the password disclosure permission information includes a specification of a group. If the check result is also no, the password disclosure control unit 25a does not send the password identified by the password ID to the user requesting password disclosure.
  • the password disclosure control unit 25a inquires of the user relationship maintenance processing unit 23 about the relationship between users. Assume that the designation of the relationship between users is R.
  • the password owner is represented by an email address. The email address of the password owner is assumed to be mo. Also, the email address of the user requesting password disclosure is assumed to be u.
  • the password disclosure processing unit 25 sends a question [mo, R, u] to the user relationship maintenance processing unit 23.
  • the user relationship maintenance processing unit 23 obtains an answer to this question in the manner described above and returns it to the password disclosure processing unit 25. If the answer obtained from the user relationship maintenance processing unit 23 is [no], the password disclosure processing unit 25 does not send the password identified by the password ID to the user requesting password disclosure.
  • the password disclosure processing unit 25 inquires of the user relationship maintenance processing unit 23 whether the password disclosure requesting user belongs to a group for which disclosure is permitted (allowed).
  • G1 to GN are group names.
  • the password owner's email address is mo.
  • the password disclosure requesting user's email address is u.
  • the password disclosure processing unit 25 sends a question [mo, R, u] to the user relationship maintenance processing unit 23.
  • the user relationship maintenance processing unit 23 obtains an answer to this question in the manner described above and returns it to the password disclosure processing unit 25. If the answer obtained from the user relationship maintenance processing unit 23 is [no], the password disclosure processing unit 25 does not send the password specified by the password ID to the user requesting password disclosure.
  • the email address m that the Web server 21c in the password disclosure processing unit 25 receives from the password acquisition client terminal 3B is the password owner ID.
  • the password acquisition client terminal 3B reads the password owner ID attached to the encrypted data, for example, and sends it to the password disclosure processing unit 25.
  • the password disclosure control unit 25a checks whether the password owner ID (email address m) sent from the password acquisition client terminal 3B matches the ID (email address mo) of the owner of the password, and if they do not match, sends error information without sending the encrypted password to the password acquisition client terminal 3B via the Web server 21c.
  • the password disclosure control unit 25a compares the password disclosure start time Ts and the password disclosure end time Te set in the password with the current time t to determine whether or not to disclose the password.
  • the system time of the first password sharing server 2A is obtained and used as the current time.
  • the password disclosure processing unit 25 executes the following detailed processing procedure as an example.
  • the Web server 21c receives the identification token, the password ID, and the password owner ID (email address m) from the password acquisition client terminal 3B.
  • the Web server 21c sends the identification token, the password ID, and the password owner ID to the password disclosure control unit 25a.
  • the password disclosure control unit 25a sends the identification token to the email address management unit 21a.
  • the email address management unit 21a verifies the identification token.
  • [S5] Determine whether the token is an identification token of a user who has been registered in the user database 21b. If the answer is [no], the process ends.
  • step S6 The email address management unit 21a obtains the email address u of the user making the password disclosure request from the user database 21b. [S7] The email address management unit 21a sends the email address u to the password disclosure control unit 25a. [S8] The password disclosure control unit 25a checks the password database 24b to see whether information corresponding to the password ID is registered. [S9] If information corresponding to the password ID has not been registered ([no]), proceed to step S25. If information corresponding to the password ID has been registered ([yes]), proceed to step S10.
  • the password disclosure control unit 25a obtains the password corresponding to the password ID, the password disclosure permission information, the password disclosure period, and the password owner ID (email address mo) from the password database 24b. [S11] The password disclosure control unit 25a compares the email address mo with the email address m. [S12] If the result of the determination is [no], the process proceeds to step S25, or if the result of the determination is [yes], the process proceeds to step S13. [S13] The password disclosure control unit 25a checks whether the password disclosure permission information acquired in process step 10 includes a list of email addresses. [S14] If the result of the determination is [no], the process proceeds to step S17, or if the result of the determination is [yes], the process proceeds to step S15.
  • the password disclosure control unit 25a checks whether the list of email addresses includes the email address u. [S16] If the result of the determination is [no], the process proceeds to step S17, or if the result of the determination is [yes], the process proceeds to step S21. [S17 (see FIG. 12C)] The password disclosure control unit 25a checks whether the password disclosure permission information acquired in process step 10 includes a specification R of the relationship between users. [S18] If the result of the determination is [no], the process proceeds to step S25, or if the result of the determination is [yes], the process proceeds to step S19. [S19] The password disclosure control unit 25 a sends a query [mo, R, u] to the user relationship storage processing unit 23 .
  • step S20 If the answer is "no", proceed to step S25, or if the answer is "yes”, proceed to step S21.
  • the password disclosure control unit 25a obtains the current time t and compares it with the password disclosure start time Ts and the password disclosure end time Te. [S22] If the result of the determination is [no], the process ends. If the result of the determination is [yes] (t is equal to or greater than Ts and equal to or less than Te), the process proceeds to step S23. [S23] The password disclosure control unit 25a sends the password corresponding to the password ID to the Web server 21c. [S24] The Web server 21c sends the password to the password acquisition client terminal 3B. [S25] The password disclosure control unit 25a instructs the Web server 21c to send an error message to the password acquisition client terminal 3B. [S26] The Web server 21c sends an error to the password acquisition client terminal 3B.
  • the password deletion processing unit 26 in the first password sharing server 2A can be configured to include, as detailed components, an email address management unit 21a, a user database 21b, a Web server 21c, a password deletion unit 26a, and a password database 24b.
  • the components, email address management unit 21a, user database 21b, Web server 21c, and password database 24b, are shared with other processing units.
  • the main points of the process in the password deletion processing unit 26 are as follows (see FIG. 13B).
  • the Web server 21c receives an identification token and a password ID (password identification information) from the client terminal 3A.
  • the Web server 21c sends the identification token and the password ID to the password deletion unit 26a.
  • the password deletion unit 26a sends the identification token to the email address management unit 21a.
  • the email address management unit 21a searches the user database 21b to find a user corresponding to the identification token. [S5] Does the user exist? If yes, go to [S10]. If no, go to [S6].
  • the email address management unit 21a notifies the password deletion unit 26a that a user corresponding to the identification token does not exist.
  • the password deletion unit 26a instructs the Web server 21c to send an error message.
  • the Web server 21c sends an error message to the client terminal 3A.
  • the password deletion processor 26 ends the process.
  • the email address processing unit 21a sends the user ID of the user corresponding to the identification token to the password deletion unit 26a.
  • the password deletion unit 26a searches the password database to find the password and password owner ID corresponding to the password ID. [S12] Does the password exist? If yes, go to [S13]. If no, go to [S7].
  • the password deletion unit 26a compares the password owner ID acquired in [S11] with the user ID acquired in [S10]. [S14] Does the password owner ID match the user ID? If yes, go to [S15]. If no, go to [S7]. [S15] The password deletion unit 26a deletes the password corresponding to the password ID from the password database. [S16] The password deletion unit 26a instructs the Web server 21c to send a processing completion notification. [S17] The Web server 21c notifies the client terminal 3A of the completion of the processing, and the process proceeds to [S9]. In the above procedure, the password is deleted only if the ID of the user who issued the deletion command matches the password owner ID. Therefore, a user who is not the owner of the password cannot delete the password.
  • the information that the password deletion unit 26a deletes from the password database 24b is all information corresponding to the password ID. Specifically, the password, password disclosure permission information, password disclosure period, password owner ID, etc. are all deleted. As a result of the deletion, the password corresponding to the password ID will no longer exist in the password database 24b.
  • the password disclosure period change processing unit 27 in the first password sharing server 2A can be configured to include, as detailed components, an email address management unit 21a, a user database 21b, a Web server 21c, a password disclosure period change unit 27a, and a password database 24b.
  • the components, email address management unit 21a, user database 21b, Web server 21c, and password database 24b, are shared with other processing units.
  • the main points of the processing in the password disclosure period change processing unit 27 are as follows (see FIG. 14B).
  • the Web server 21c receives an identification token, a password ID (password identification information), and a password disclosure period from the client terminal 3A. This password disclosure period is for updating.
  • the Web server 21c sends the identification token, the password ID, and the password disclosure period to the password disclosure period changing unit 27a.
  • the password disclosure period changing unit 27a sends the identification token to the email address management unit 21a.
  • the email address management unit 21a searches the user database 21b to find a user corresponding to the identification token. [S5] Does the user exist? If yes, go to [S10]. If no, go to [S6].
  • the email address management unit 21a notifies the password disclosure period changing unit 27a that there is no user corresponding to the identification token.
  • the password disclosure period changing section 27a instructs the Web server 21c to send an error message.
  • the Web server 21c sends an error message to the client terminal 3A.
  • the password disclosure period change processing unit 27 ends the process.
  • the email address processing unit 21a sends the user ID of the user corresponding to the identification token to the password disclosure period changing unit 27a.
  • the password disclosure period changing section 27a searches the password database to find the password and password owner ID corresponding to the password ID. [S12] Does the password exist? If yes, go to [S13]. If no, go to [S7].
  • the password disclosure period changing unit 27a compares the password owner ID acquired in [S11] with the user ID acquired in [S10]. [S14] Does the password owner ID match the user ID? If yes, go to [S15]. If no, go to [S7]. [S15] The password disclosure period changing section 27a updates the password disclosure period of the password corresponding to the password ID in the password database with the updated password disclosure period. [S16] The password disclosure period changing section 27a instructs the Web server 21c to send a processing completion notification. [S17] The Web server 21c notifies the client terminal 3A of the completion of the process, and the process proceeds to [S9]. In the above procedure, the password disclosure period is updated only if the ID of the user who instructed to update the password disclosure period matches the password owner ID. Therefore, a user who is not the owner of the password cannot change the disclosure period of the password.
  • the password disclosure tolerance change processing unit 30 in the first password sharing server 2A can be configured to include, as detailed components, an email address management unit 21a, a user database 21b, a Web server 21c, a password disclosure tolerance change unit 30a, and a password database 24b.
  • the components, the email address management unit 21a, the user database 21b, the Web server 21c, and the password database 24b, are shared with other processing units.
  • the main points of the processing in the password disclosure tolerance change processing unit 30 are as follows (see FIG. 14D).
  • the Web server 21c receives an identification token, a password ID (password identification information), and password disclosure permission information from the client terminal 3A.
  • This password disclosure permission information is for updating. Specifically, it is a list of email addresses. Alternatively, it is a designation of a relationship between users, such as "family.” In addition, this password disclosure permission information for updating may be a list of user groups held by the user relationship holding processing unit 23.
  • the Web server 21c sends the identification token, the password ID, and the password disclosure permission information to the password disclosure permission range changing unit 30a.
  • the password disclosure tolerance changing unit 30a sends the identification token to the email address management unit 21a.
  • the email address management unit 21a searches the user database 21b to find a user corresponding to the identification token.
  • [S5] Does the user exist? If yes, go to [S10]. If no, go to [S6].
  • the email address management unit 21a notifies the password disclosure tolerance changing unit 30a that there is no user corresponding to the identification token.
  • the password disclosure tolerance changing section 30a instructs the Web server 21c to send an error message.
  • the Web server 21c sends an error message to the client terminal 3A.
  • the processing unit 30 for changing the acceptable password disclosure range ends the process.
  • the email address processing unit 21a sends the user ID of the user corresponding to the identification token to the password disclosure tolerance changing unit 30a.
  • the password disclosure tolerance changing section 30a searches the password database 24b to find the password corresponding to the password ID and the password owner ID of that password.
  • [S12] Does the password exist? If yes, go to [S13]. If no, go to [S7].
  • the password disclosure tolerance changing unit 30a compares the password owner ID acquired in [S11] with the user ID acquired in [S10].
  • [S14] Does the password owner ID match the user ID? If yes, go to [S15]. If no, go to [S7].
  • the password disclosure tolerance changing section 30a updates the password disclosure tolerance information of the password corresponding to the password ID in the password database with the updated password disclosure tolerance information.
  • the password disclosure tolerance changing section 30a instructs the Web server 21c to send a processing completion notification.
  • the Web server 21c notifies the client terminal 3A of the completion of the process, and the process proceeds to [S9].
  • the password disclosure permission information of the password is updated only when the user ID of the user who issued the instruction to change the password disclosure permission range matches the password owner ID. Therefore, a user who is not the owner of the password cannot change the password disclosure permission range.
  • the second password sharing server 2B in the password sharing system 1 will be described in detail with reference to FIGS. 1, 15 and related figures.
  • the second password sharing server 2B includes, as functional components, a user registration processing unit 21, a login processing unit 22, a user relationship maintenance processing unit 23, a password registration processing unit 24B, and a password disclosure processing unit 25.
  • the user registration processing unit 21, the login processing unit 22, the user relationship maintenance processing unit 23, and the password disclosure processing unit 25 have functions similar to those of the first password sharing server 2A.
  • the basic characteristic elements of the second password sharing server 2B are a user registration processing unit (corresponding to the identification token issuing unit 104 in Figure 1A) 21, a password registration processing unit (corresponding to the password registration unit 107 in Figure 1A) 24B, and a password disclosure processing unit (corresponding to the password disclosure unit 110 in Figure 1A) 25.
  • the second password sharing server 2B is a password sharing server applicable to a password sharing system 1 including a password registration client terminal (first client terminal) 3A used by a first user and a password acquisition client terminal (second client terminal) 3B used by a second user, and includes a user registration processing unit 21 that issues an identification token (evidence) indicating that the user is an authenticated user.
  • a password registration client terminal first client terminal
  • second client terminal password acquisition client terminal
  • the second password sharing server 2B also includes a password registration processing unit 24B that receives from the first client terminal 3A an identification token corresponding to the first user issued by the user registration processing unit 21 and password disclosure permission information that specifies the password disclosure permission range, generates a password, stores the generated password and password disclosure permission information in a database, and transmits the password and password identification information (password ID) that identifies the stored password and password disclosure permission information in the database to the first client terminal 3A only if it is confirmed by verifying the identification token that it is a correct identification token (identification token corresponding to the first user).
  • password ID password identification information
  • the second password sharing server 2B includes a password disclosure processing unit 25 that receives from the second client terminal 3B an identification token corresponding to the second user issued by the user registration processing unit 21 and a password ID transmitted by the password registration processing unit 24B obtained by reading data output from the first client terminal 3A, obtains information on the second user identified by the identification token corresponding to the second user, obtains from a database a password and password disclosure permission information identified by the password ID received from the second client terminal 3B, and transmits the password identified by the password ID to the second client terminal 3B only if it is confirmed that the second user is included in the password disclosure permission range specified by the password disclosure permission information obtained from the database.
  • the user registration processing unit 21, login processing unit 22, user relationship maintenance processing unit 23, password registration processing unit 24B, and password disclosure processing unit 25 that constitute the second password sharing server 2B share some of the detailed components, as described above.
  • the second password sharing server 2B transmits and receives the following various data a to d, e1, f1, g, and h to and from the password registration client terminal 3A and the password acquisition client terminal 3B. * denotes optional data, and there are some embodiments in which it is not used.
  • the password registration processing unit 24B in the second password sharing server 2B can be configured to include, as detailed components, an email address management unit 21a, a user database 21b, a Web server 21c, a password registration unit 24c, and a password database 24b.
  • the components, the email address management unit 21a, the user database 21b, and the Web server 21c, are shared with other processing units.
  • the password registration processing unit 24 in the first password sharing server 2A registers the encrypted data decryption password sent from the password registration client terminal 3A used by the user in the password database 24b (corresponding to the database 121 in FIG. 1A) and returns the password ID.
  • the password registration processing unit 24B in the second password sharing server 2B generates a password by itself, registers the password in the password database 24b, and returns the password and the password ID of the password in the password database 24b.
  • the password registration processing unit 24B generates a password based on pseudo-random numbers generated by a program, for example, but the method of password generation is not limited to this.
  • the password registration unit 24c obtains the email address of the user identified by the identification token, but since the user is a password registrant, this email address is the email address of the password owner. In this embodiment, this email address also serves as the password owner ID. In this embodiment, the password acquisition URL is stored in advance by the password registration unit 24c. An embodiment in which the password acquisition URL is not returned to the password registration client terminal 3A is also possible.
  • the password registration processing unit 24B executes the following detailed processing procedure, as an example.
  • the Web server 21c receives the identification token and password disclosure permission information from the password registration client terminal 3A.
  • the Web server 21c sends the identification token and password disclosure permission information to the password registration unit 24c.
  • the password registration unit 24c sends the identification token to the email address management unit 21a.
  • the email address management unit 21a verifies the identification token.
  • [S5] Determine whether the token is an identification token of a user who is registered in the user database 21b. If the answer is [no], the process ends. If the answer is [yes], the process proceeds to step S6.
  • the email address management unit 21a obtains the email address of the registered user (password owner) from the user database 21b. [S7] The email address management unit 21a sends the email address of the password owner to the password registration unit 24c. [S8] The password registration unit 24c generates a password. [S9] The password registration section 24c registers the password, the password disclosure permission information, and the password owner's email address in the password database 24b. [S10] The password database 24b generates an ID (password ID) for the registration information and returns it to the password registration section 24c. [S11] The password registration unit 24c sends the password ID, the password, the password owner's email address, and the password acquisition URL to the Web server 21c. [S12] The Web server 21c sends the password ID, the password, the password owner's email address, and the password acquisition URL to the password registration client terminal 3A.
  • the password sharing server in combination 3 with key wrap has the same configuration as the second password sharing server in FIG. 15.
  • the configurations and operations of the user registration processing unit 21, login processing unit 22, user relationship maintenance processing unit 23, and password disclosure processing unit 25 are the same as those of the second password sharing server.
  • the configuration of the password registration processing unit 24B is also the same (FIG. 16A), but its operation is different. This is shown in FIG. 17A.
  • the configuration of the password registration client terminal that communicates with the password sharing server is shown in FIG. 17B. Also, its operation is shown in FIG. 17C.
  • the password acquisition client terminal that communicates with the password sharing server is the first password acquisition client terminal (compatible with key wrap).
  • the password sharing server in combination 3 with key transformation has the same configuration as the second password sharing server in FIG. 15.
  • the configurations and operations of the user registration processing unit 21, login processing unit 22, user relationship maintenance processing unit 23, and password disclosure processing unit 25 are the same as those of the second password sharing server.
  • the configuration of the password registration processing unit 24B is also the same (FIG. 16A), but its operation is different. This is shown in FIG. 17D.
  • the configuration of the password registration client terminal that communicates with the password sharing server is the same as that in FIG. 17B, but its operation is different. This operation is shown in FIG. 17E.
  • the password acquisition client terminal that communicates with the password sharing server is the second password acquisition client terminal (compatible with key transformation).
  • the password sharing server in combination 4 with key wrap has the same configuration as the second password sharing server in Figure 15.
  • the configurations and operations of the user registration processing unit 21, login processing unit 22, user relationship maintenance processing unit 23, and password disclosure processing unit 25 are the same as those of the second password sharing server.
  • the configuration of the password registration processing unit 24B is also the same ( Figure 16A), but its operation is different. This is shown in Figure 17F.
  • the configuration of the password registration client terminal that communicates with the password sharing server is shown in Figure 17G. Also, its operation is shown in Figure 17H.
  • the password acquisition client terminal that communicates with the password sharing server is the first password acquisition client terminal (compatible with key wrap).
  • the password sharing server in the case of key transformation in combination 4 has the same configuration as the second password sharing server in Figure 15.
  • the configurations and operations of the user registration processing unit 21, login processing unit 22, user relationship maintenance processing unit 23, and password disclosure processing unit 25 are the same as those of the second password sharing server.
  • the configuration of the password registration processing unit 24B is also the same ( Figure 16A), but its operation is different. This is shown in Figure 17I.
  • the configuration of the password registration client terminal that communicates with the password sharing server is the same as that in Figure 17G, but its operation is different. This operation is shown in Figure 17J.
  • the password acquisition client terminal that communicates with the password sharing server is the second password acquisition client terminal (compatible with key transformation).
  • the password sharing server in the case of key wrap has the same configuration as the second password sharing server in Fig. 15.
  • the configurations and operations of the user registration processing unit 21, login processing unit 22, user relationship maintenance processing unit 23, and password disclosure processing unit 25 are the same as those of the second password sharing server.
  • the configuration of the password registration processing unit 24B is also the same (Fig. 16A), but its operation is different. This is shown in Fig. 17K.
  • the configuration of the password registration client terminal that communicates with the password sharing server is shown in Fig. 17L. Also, its operation is shown in Fig. 17M.
  • the password acquisition client terminal that communicates with the password sharing server is the first password acquisition client terminal (compatible with key wrap).
  • the password sharing server in combination 5 with key transformation has the same configuration as the second password sharing server in Figure 15.
  • the configurations and operations of the user registration processing unit 21, login processing unit 22, user relationship maintenance processing unit 23, and password disclosure processing unit 25 are the same as those of the second password sharing server.
  • the configuration of the password registration processing unit 24B is also the same ( Figure 16A), but its operation is different. This is shown in Figure 17N.
  • the configuration of the password registration client terminal that communicates with the password sharing server is the same as that in Figure 17L, but its operation is different. This operation is shown in Figure 17O.
  • the password acquisition client terminal that communicates with the password sharing server is the second password acquisition client terminal (compatible with key transformation).
  • the password sharing server in combination 6 with key wrap has the same configuration as the second password sharing server in Figure 15.
  • the configurations and operations of the user registration processing unit 21, login processing unit 22, user relationship maintenance processing unit 23, and password disclosure processing unit 25 are the same as those of the second password sharing server.
  • the configuration of the password registration processing unit 24B is also the same ( Figure 16A), but its operation is different. This is shown in Figure 17P.
  • the configuration of the password registration client terminal that communicates with the password sharing server is shown in Figure 17Q. Its operation is also shown in Figure 17R.
  • the password acquisition client terminal that communicates with the password sharing server is the first password acquisition client terminal (compatible with key wrap).
  • the password sharing server in combination 6 with key transformation has the same configuration as the second password sharing server in FIG. 15.
  • the configurations and operations of the user registration processing unit 21, login processing unit 22, user relationship maintenance processing unit 23, and password disclosure processing unit 25 are the same as those of the second password sharing server.
  • the configuration of the password registration processing unit 24B is also the same (FIG. 16A), but its operation is the same as that of FIG. 17P.
  • the configuration of the password registration client terminal that communicates with the password sharing server is shown in FIG. 17S. Its operation is also shown in FIG. 17T.
  • the password acquisition client terminal that communicates with the password sharing server is the second password acquisition client terminal (compatible with key transformation).
  • the password sharing server has the same configuration as the second password sharing server in Fig. 15.
  • the configurations and operations of the user registration processing unit 21, login processing unit 22, user relationship maintenance processing unit 23, and password disclosure processing unit 25 are the same as those of the second password sharing server.
  • the configuration of the password registration processing unit 24B is also the same (Fig. 16A), but its operation is different. This is shown in Fig. 17U.
  • the configuration of the password registration client terminal that communicates with the password sharing server is shown in Fig. 17V. Also, its operation is shown in Fig. 17W.
  • the password acquisition client terminal that communicates with the password sharing server is the first password acquisition client terminal (compatible with key wrap).
  • the password sharing server in the case of key transformation in combination 7 has the same configuration as the second password sharing server in Fig. 15.
  • the configurations and operations of the user registration processing unit 21, login processing unit 22, user relationship maintenance processing unit 23, and password disclosure processing unit 25 are the same as those of the second password sharing server.
  • the configuration of the password registration processing unit 24B is also the same (Fig. 16A), but its operation is the same as that of Fig. 17U.
  • the configuration of the password registration client terminal that communicates with the password sharing server is shown in Fig. 17X. Also, its operation is shown in Fig. 17Y.
  • the password acquisition client terminal that communicates with the password sharing server is the second password acquisition client terminal (compatible with key transformation).
  • the password sharing server in the case of combination 8 and key wrap has the same configuration as the second password sharing server in Fig. 15.
  • the configurations and operations of the user registration processing unit 21, login processing unit 22, user relationship maintenance processing unit 23, and password disclosure processing unit 25 are the same as those of the second password sharing server.
  • the configuration of the password registration processing unit 24B is also the same (Fig. 16A), but its operation is different. This is shown in Fig. 17Z.
  • the configuration of the password registration client terminal that communicates with the password sharing server is shown in Fig. 18A. Also, its operation is shown in Fig. 18B.
  • the password acquisition client terminal that communicates with the password sharing server is the first password acquisition client terminal (compatible with key wrap).
  • the password sharing server in the case of key transformation in combination 8 has the same configuration as the second password sharing server in Fig. 15.
  • the configurations and operations of the user registration processing unit 21, login processing unit 22, user relationship maintenance processing unit 23, and password disclosure processing unit 25 are the same as those of the second password sharing server.
  • the configuration of the password registration processing unit 24B is also the same (Fig. 16A), but its operation is shown in Fig. 18C.
  • the configuration of the password registration client terminal that communicates with the password sharing server is the same as that in Fig. 18A. Its operation is shown in Fig. 18D.
  • the password acquisition client terminal that communicates with the password sharing server is the second password acquisition client terminal (compatible with key transformation).
  • the first password registration client terminal 3A1 in the password sharing system 1 will be described in detail with reference to FIGS. 1, 19 and related figures.
  • the password registration client terminal 3A as a first password registration client terminal 3A1, includes, as functional components, a user registration processing unit 31, a login processing unit 32, a password registration processing unit 33B, and a data creation processing unit 34.
  • the data creation processing unit 34 includes a data creation unit 56 (this also applies to other embodiments (examples)).
  • the first password registration client terminal 3A1 further includes a password deletion processing unit 37, a password disclosure period change processing unit 38, and a password disclosure permission information change processing unit 39 depending on the embodiment (example).
  • the basic features of the first password registration client terminal 3A1 include an identification token storage unit 51, a password disclosure permission information input unit 52, an encryption key generation unit 53, a password input unit 62, a password key generation unit 63, an encryption key wrap unit 64, an information transmission/reception unit (network access unit) 54, a data encryption unit 55, and a data creation unit 56 (see FIG. 22A).
  • the first password registration client terminal 3A1 is a client terminal having a password registration function applicable to the password sharing system 1 including a server, and includes an identification token storage unit 51 that stores an identification token (evidence) indicating that the user is an authenticated user, a password input unit 62 into which a password is input, and a password disclosure permission information input unit 52 into which password disclosure permission information that specifies the permitted range of password disclosure is input.
  • the first password registration client terminal 3A1 also includes a password key generation unit 63 that generates a key (password key) for encrypting (wrapping) a key based on the password input into the password input unit 62.
  • the first password registration client terminal 3A1 also includes an encryption key generation unit 53 that generates a data encryption key and a data decryption encryption key, an encryption key wrapping unit 64 that wraps the data decryption key with a password key, and an information transmission/reception unit (network access unit) 54 that transmits the identification token stored in the identification token storage unit 51, the wrapped data decryption encryption key output by the encryption key wrapping unit 64, and the password disclosure permission information input to the password disclosure permission information input unit 52 as transmission information to the password sharing server 2 (2A) and receives password identification information (key ID) corresponding to the transmission information from the password sharing server 2 (2A).
  • an encryption key generation unit 53 that generates a data encryption key and a data decryption encryption key
  • an encryption key wrapping unit 64 that wraps the data decryption key with a password key
  • an information transmission/reception unit (network access unit) 54 that transmits the identification token stored in the identification token storage unit 51, the wrapped data decryption encryption key output by the encryption key wrapping
  • the first password registration client terminal 3A1 includes a data encryption unit 55 that encrypts the data to be encrypted using the first post-processing data encryption key 136 generated by the first encryption key processing unit 109 in response to input of the data to be encrypted, and outputs the encrypted data, and a data creation unit 56 that outputs data including the password ID and the encrypted data in response to input of the password ID received from the password sharing server 2 (2A) by the information transmission/reception unit 54 and the encrypted data output by the data encryption unit 55.
  • a data encryption unit 55 that encrypts the data to be encrypted using the first post-processing data encryption key 136 generated by the first encryption key processing unit 109 in response to input of the data to be encrypted, and outputs the encrypted data
  • a data creation unit 56 that outputs data including the password ID and the encrypted data in response to input of the password ID received from the password sharing server 2 (2A) by the information transmission/reception unit 54 and the encrypted data output by the data encryption unit 55.
  • the first password registration client terminal 3A1 can adopt the following aspects. Note that [Aspect 12] to [Aspect 14] can also be applied to the second password registration client terminal 3A2, the third password registration client terminal 3A3, and the fourth password registration client terminal 3A4, which will be described later.
  • the password disclosure permission information includes at least one of the relationship between users preregistered in the password sharing server 2 (2A), the designation of a group of users preregistered in the password sharing server 2 (2A), and a list of email addresses.
  • the client terminal 3A1 may send the list of email addresses as the password disclosure permission information.
  • the first password registration client terminal 3A1 further includes a password disclosure period input unit 66 into which a password disclosure start time or a password disclosure end time is input by a user as a password disclosure period,
  • the information transmitting/receiving unit 54 transmits the password disclosure period entered in the password disclosure period input unit 66 to the password sharing server 2 (2A).
  • the data creation unit 56 outputs data including at least one of the encryption parameters, the password owner ID, the password acquisition URL, the password disclosure period, and the data creation date and time.
  • the user registration processing unit 31 in the first password registration client terminal 3A1 can be configured to include, as detailed components, a user input unit 31a, a mail receiving unit 31b, an identification token storage unit 51, and an information transmitting/receiving unit (network access unit) 54. Some of these components are shared with other processing units.
  • This user registration processing unit 31 is believed to be similar to that commonly performed when registering an account on various Internet services such as Facebook, and can be easily understood by those skilled in the art, so only the main points will be explained here.
  • the user input unit 31a, the mail receiving unit 31b, the identification token storage unit 51, and the information transmission/reception unit 54 work together to communicate with the user registration processing unit 21 in the first password sharing server 2A and provisionally register the email address and password used by the user. Then, the user registration processing unit 31 uses the registration token received at that email address to officially register that email address in the first password sharing server 2A. As a result, the user registration processing unit 31 receives the identification token generated by the user registration processing unit 21 in the first password sharing server 2A and stores it in the identification token storage unit 51.
  • the login processing unit 32 in the first password registration client terminal 3A1 can be configured to include, as detailed components, a user input unit 31a, an identification token storage unit 51, and an information transmission/reception unit (network access unit) 54. These components are shared with the user registration processing unit 31.
  • this login processing unit 32 is believed to be similar to the processing performed when logging in to various Internet services such as Facebook, and can be easily understood by those skilled in the art, so only the main points will be explained here.
  • the login processing unit 32 the user input unit 31a, the identification token storage unit 51, and the information transmission/reception unit 54 work together to communicate with the login processing unit 22 in the first password sharing server 2A, receive the identification token of the registered user, and store it in the identification token storage unit 51.
  • the password registration processing unit 33B in the first password registration client terminal 3A1 can be configured to include, as detailed components, a data input unit 50, an identification token storage unit 51, a password disclosure permission information input unit 52, an encryption key generation unit 53, an information transmission/reception unit (network access unit) 54, a data encryption unit 55, a password key generation unit 63, an encryption key wrap unit 64, and a password disclosure period input unit 66.
  • This password registration processing unit 33B cooperates with the data creation unit 56 that constitutes the data creation processing unit 34 (see FIG. 19).
  • the password registration processing unit 33B in the first password registration client terminal 3A1 communicates with the password registration processing unit 24 in the first password sharing server 2A.
  • the data input unit 50, identification token storage unit 51, key disclosure permission information input unit 52, encryption key generation unit 53, information transmission/reception unit 54, data encryption unit 55, password key generation unit 63, encryption key wrap unit 64, and password disclosure period input unit 66 work together to carry out the following key processing steps. That is, the password disclosure permission information input by the user is a specification of the relationship between users, such as "family". Alternatively, the password disclosure permission information is a specification of a group stored by the user relationship storage processing unit 23 of the password sharing server 2A. Users to whom passwords are to be disclosed can also be specified by a list of email addresses as the password disclosure permission information.
  • the encrypted data (D1) is the result of encrypting the data to be encrypted (D) with the data encryption key (k1). It is assumed that, at the time of reading the identification token, user registration to the password sharing server 2A using the user registration processing unit 31 or login to the key sharing server 2A using the login processing unit 32 has been completed. As a result, the identification token storage unit 51 stores a valid identification token sent from the password sharing server 2A.
  • an asymmetric key cryptography encryption key is assumed.
  • the encryption key generation unit 53 generates a pair of data encryption key k1 and data decryption encryption key k2.
  • k1 may be a public key and k2 a private key, or vice versa.
  • the encryption key generation unit 53 sends data encryption key k1 to the data encryption unit 55, and sends data decryption encryption key k2 to the information transmission/reception unit 54.
  • the data decryption encryption key k2 is then sent to the key registration processing unit 24 of the first key sharing server 2A.
  • symmetric key cryptography is adopted, data encryption encryption key k1 and data decryption encryption key k2 are the same.
  • Encryption parameters are various encryption parameters that should be shared with the decryption side during encryption. For example, a nonce (random number) in counter mode or an initial vector (IV) are examples. If encryption parameters are shared in advance with the decryption side in some way, there is no need to explicitly notify the decryption side of the encryption parameters. Therefore, the data encryption unit 55 does not send encryption parameters that do not need to be notified to the data creation unit 56.
  • the password registration processing unit 33B sends the following seven types of data to the data creation unit 56: password ID, password owner ID (email address), password acquisition URL, password disclosure period, encrypted data D1, password key derivation parameters, and encryption parameters.
  • the password registration processing unit 33B executes the following detailed processing procedure as an example.
  • the user inputs data to be encrypted (D) into the data input unit 50.
  • the user inputs password disclosure permission information into the password disclosure permission information input unit 52.
  • the user inputs the password disclosure period in the password disclosure period input section 66.
  • the user inputs a password into the password input section 62.
  • the password input unit 62 sends the password to the password key generation unit 63.
  • the password key generating unit 63 generates a password key based on the received password.
  • the password key generation unit 63 sends the parameters used in generating the password key to the data creation unit 56. These are the password key derivation parameters mentioned in paragraph [0084]. [S8] The password key generation unit 63 sends the password key to the encryption key wrapping unit 64. [S9] The data input unit 50 sends the data to be encrypted (D) to the data encryption unit 55. [S10] The encryption key generation unit 53 generates an encryption key for data encryption (k1) and an encryption key for data decryption (k2). [S 11 ] The encryption key generation unit 53 sends the data encryption key (k 1 ) to the data encryption unit 55 , and sends the data decryption encryption key (k 2 ) to the encryption key wrap unit 64 .
  • the encryption key wrapping unit 64 wraps (encrypts) the data decryption encryption key (k2) with the password key.
  • the data obtained as a result of the wrapping is denoted as k3.
  • the encryption key wrapping unit 64 sends the wrapped encryption key (k3) to the data creation unit 56.
  • the data encryption unit 55 encrypts the encryption target data (D) with the data encryption key (k1) and sends the encrypted data (D1) and encryption parameters to the data creation unit 56.
  • the encryption parameters referred to here are, for example, the nonce described in paragraph [0224].
  • the information transmitter/receiver 54 reads the identification token from the identification token storage unit 51 .
  • the information transmitting/receiving section 54 reads the password disclosure permission information from the password disclosure permission information input section 52 .
  • the information transmitting/receiving unit 54 reads the password disclosure period from the password disclosure period input unit 66 .
  • the information transmitting/receiving unit 54 reads the password from the password input unit 62 .
  • the information transmitting/receiving unit 54 transmits the identification token, the password, the password disclosure permission information, and the password disclosure period to the password registration processing unit 24.
  • the information transmitting/receiving unit 54 receives the password ID, the password owner ID, and the password acquisition URL from the password registration processing unit 24.
  • the information transmitting/receiving unit 54 transmits the password ID, the password owner ID, the password acquisition URL, and the password disclosure period to the data generating unit 56.
  • the data creation unit 56 outputs data including the password key derivation parameters, the encryption key (k3) for decrypting the data wrapped with the password key, the encrypted data (D1), the encryption parameters, the password ID, the password owner ID, the URL for obtaining the password, and the password disclosure period.
  • the data creation unit 56 which constitutes the data creation processing unit 34 that cooperates with the password registration processing unit 33B, receives the above eight types of data (password ID, password owner ID (email address), encryption key for decrypting wrapped data, password acquisition URL, password disclosure period, encrypted data D1, encryption parameters, and password key derivation parameters) from the password registration processing unit 33B, formats it as shown in Figure 23, and writes it to a file.
  • the data is output in xml format.
  • the ⁇ data-soc> element is the overall parent element. The attribute num of this element indicates that one piece of encrypted data is included in this element.
  • the ⁇ datum-soc> element is the element that includes the encrypted data.
  • the ⁇ datum-soc> element has six child elements: ⁇ owner>, ⁇ nonce>, ⁇ salt>, ⁇ pswd-id>, ⁇ period>, and ⁇ content>.
  • the key owner ID is written in ⁇ owner>.
  • the email attribute of the ⁇ owner> element states that the email address foo@zoo.com is the key owner ID.
  • ⁇ nonce> is the encryption parameter received by the data creation unit 56 in paragraph [0225] [S14].
  • the value is encoded in base64 and written.
  • ⁇ salt> is the password key derivation parameter received by the data creation unit 56 in paragraph [0225] [S7]. This value is also encoded in base64 and written.
  • ⁇ pswd-id> describes the password ID received by the information transmission/reception unit 54 of the password registration processing unit 33B from the password registration processing unit 24 of the first password sharing server 2A.
  • the value of the password ID encoded in base64 is written as the inner text of the ⁇ pswd-id> element.
  • the url-soc attribute of the ⁇ pswd-id> element describes the URL for obtaining a password, "https://www.example2021.com/api/getPswd.”
  • the ⁇ period> element describes the password disclosure period.
  • the nbf attribute and exp attribute of the ⁇ period> element are UTC (Coordinated Universal Time) in milliseconds, and indicate the password disclosure start time and password disclosure end time, respectively.
  • nbf is an abbreviation for "not before”
  • exp is an abbreviation for "expiration”.
  • the iat attribute of the ⁇ period> element is the data creation time, and is expressed in UTC in milliseconds like nbf and exp.
  • the value of the iat attribute is the current time acquired by the data creation unit 56.
  • iat is an abbreviation for "issued at”.
  • the inner text of the ⁇ key> element is the wrapped data decryption encryption key encoded in Base 64.
  • This wrapped data decryption encryption key is received by the data creation unit 56 from the encryption key wrapping unit 64 in paragraph [0225] [S13].
  • the inner text of the ⁇ content> element is encrypted data D1 encoded in base64.
  • Data in a format including a password ID, a password owner ID, a password acquisition URL, a password disclosure period, encrypted data D1, a password key derivation parameter, and an encryption parameter as shown in Fig. 23 may be referred to as encrypted data below.
  • this encrypted data does not necessarily include the password owner ID, the password acquisition URL, the password key derivation parameter, and the encryption parameter.
  • the data output by the data creation unit 56 is not limited to files. For example, xml data as shown in FIG.
  • html data may be posted on a bulletin board or personal blog on the Internet. Or the data may be made public in cloud storage.
  • the above-mentioned encrypted data is available to anyone, but only registered users who can obtain the password from the first password sharing server 2A can decrypt it. For example, this is a user whose email address is specified in the password disclosure permission information by the user who registered the password. Or, it is a user who is registered in the user relationship holding processing unit 23 as a "best friend" by the user who registered the password. (When the password disclosure permission information registered in the server is "best friend.")
  • the password registration client terminal 3A as a second password registration client terminal 3A2, comprises a user registration processing unit 31, a login processing unit 32, a password registration processing unit 33C, and a data creation processing unit 34 as functional components.
  • the second password registration client terminal 3A2 further includes a password deletion processing unit 37, a password disclosure period change processing unit 38, and a password disclosure permission information change processing unit 39, etc., depending on the embodiment (example).
  • the basic characteristic elements of the second password registration client terminal 3A2 include an identification token storage unit 51, a password disclosure permission information input unit 52, an encryption key generation unit 53, a password key generation unit 63, an encryption key wrap unit 64, an information transmission/reception unit (network access unit) 54, a data encryption unit 55, and a data creation unit 56 (see FIG. 24A).
  • the second password registration client terminal 3A2 does not include the password input section 62 in the first password registration client terminal 3A1.
  • the second password registration client terminal 3A2 is a client terminal having a password registration function applicable to the password sharing system 1 including a server, and includes an identification token storage unit 51 that stores an identification token (evidence) indicating that the user is an authenticated user, and a password disclosure permission information input unit 52 to which password disclosure permission information that specifies the password disclosure permission range is input.
  • an identification token storage unit 51 that stores an identification token (evidence) indicating that the user is an authenticated user
  • a password disclosure permission information input unit 52 to which password disclosure permission information that specifies the password disclosure permission range is input.
  • the second password registration client terminal 3A2 also includes an information transmission/reception unit (network access unit) 54 that transmits the identification token stored in the identification token storage unit 51 and the password disclosure permission information input to the password disclosure permission information input unit 52 as transmission information to the password sharing server 2 (2B) and receives the password corresponding to the transmission information and the password identification information (password ID) of the encrypted password from the password sharing server 2. This password was generated by the password sharing server 2.
  • network access unit network access unit
  • the second password registration client terminal 3A2 includes a data encryption unit 55 in which the encryption key generation unit 53 generates a data encryption key and a data decryption key in response to input of data to be encrypted, encrypts the data to be encrypted using the data encryption key, and outputs the encrypted data; a password key generation unit 63 that generates a password key for wrapping (encrypting) the data decryption encryption key based on a password received from the password sharing server 2 (2B) by the information transmission/reception unit 54; an encryption key wrapping unit 64 that wraps the data decryption encryption key generated by the encryption key generation unit 53 using the password key generated by the password key generation unit 63; and a data creation unit 56 that outputs the wrapped data decryption encryption key and data including the password ID and encrypted data in response to input of the wrapped data decryption encryption key output by the encryption key wrapping unit 64, the password ID received from the password sharing server 2 (2B) by the information transmission/reception unit 54, and the encrypted data output by the data encryption unit 55.
  • the password registration processing unit 33C in the second password registration client terminal 3A2 can be configured to include, as detailed components, a data input unit 50, an identification token storage unit 51, a password disclosure permission information input unit 52, an information transmission/reception unit (network access unit) 54, an encryption key generation unit 53, a password key generation unit 63, an encryption key wrap unit 64, and a data encryption unit 55. Some of these components are shared with other processing units.
  • This password registration processing unit 33C cooperates with a data creation unit 56 constituting the data creation processing unit 34 (see FIG. 19).
  • the password registration processing unit 33C in the second password registration client terminal 3A2 communicates with the password registration processing unit 24B in the second password sharing server 2B.
  • the data input unit 50, the identification token storage unit 51, the password disclosure permission information input unit 52, the information transmission/reception unit 54, the encryption key generation unit 53, the password key generation unit 63, the encryption key wrap unit 64, and the data encryption unit 55 work together to execute the detailed processing steps shown below, as an example.
  • [S1 (see FIG. 24B)] The user inputs data to be encrypted (D) into the data input unit 50.
  • [S2] The user inputs password disclosure permission information into the password disclosure permission information input unit 52.
  • the information transmitting/receiving unit 54 reads the identification token from the identification token storage unit 51.
  • the information transmitting/receiving unit 54 reads the password disclosure permission information from the password disclosure permission information input unit 52. [S5] The information transmitting/receiving unit 54 transmits the identification token and the password disclosure permission information to the password registration processing unit 24. [S6] The information transmitting/receiving unit 54 receives the password and the password ID from the password registration processing unit 24. [S7] The information transmitting/receiving unit 54 sends the password ID to the data generating unit 56. [S8] The information transmitting/receiving unit 54 sends the password to the password key generating unit 63. [S9] The password key generating unit 63 generates a password key based on the received password.
  • the password key generation unit 63 sends the password key generated in [S9] to the encryption key wrapping unit 64, and also sends the password key derivation parameters used when generating the password key in [S9] to the data creation unit 56.
  • the encryption key generation unit 53 generates an encryption key (k1) for encrypting data and an encryption key (k2) for decrypting data.
  • the encryption key generation unit 53 sends the data encryption key (k 1 ) to the data encryption unit 55 , and sends the data decryption encryption key (k 2 ) to the encryption key wrap unit 64 .
  • the encryption key wrapping unit 64 wraps (encrypts) the data decryption encryption key (k2) with the password key received in [S10].
  • the encryption key wrapping unit 64 sends the wrapped encryption key (k3) to the data creation unit 56.
  • the data encryption unit 55 reads the data to be encrypted (D) from the data input unit 50 .
  • the data encryption unit 55 encrypts the encryption target data (D) with the data encryption key (k1), and sends the encrypted data (D1) resulting from the encryption and encryption parameters to the data creation unit 56.
  • the data creation unit 56 outputs data including the password key derivation parameters, the wrapped encryption key (k3), the encrypted data (D1), the encryption parameters, the password ID, the password owner ID, and the password acquisition URL.
  • the password owner ID output by the data creation unit 56 is the email address of the user who uses the second password registration client terminal 3A2. This email address is assumed to have been registered in advance by the user in the data creation unit 56.
  • the password acquisition URL output by the data creation unit 56 is also held in advance by the data creation unit 56.
  • the password registration client terminal 3A as a third password registration client terminal 3A3, comprises a user registration processing unit 31, a login processing unit 32, a password registration processing unit 33D, and a data creation processing unit 34 as functional components. Furthermore, the third password registration client terminal 3A3 further includes a password deletion processing unit 37, a password disclosure period change processing unit 38, and a password disclosure permission information change processing unit 39, etc., depending on the embodiment (example).
  • the basic characteristic elements of the third password registration client terminal 3A3 include a data input unit 50, an identification token storage unit 51, a key disclosure permission information input unit 52, an encryption key generation unit 53, a password input unit 62, an encryption key transformation unit 67, an information transmission/reception unit (network access unit) 54, a data encryption unit 55, and a data creation unit 56.
  • the third key registration client terminal 3A3 differs from the first password registration client terminal 3A1 in that it includes an encryption key transformation unit 67 instead of the encryption key wrap unit 64.
  • the encryption key transformation unit transforms an encryption key to create an encryption key for data encryption, for example, by the method described in paragraph [0085] or paragraph [0242]. Also, unlike the first password registration client terminal 3A1, it does not include a password key generation unit.
  • the information transmission/reception unit 54 of the third key registration client terminal 3A3 transmits the identification token stored in the identification token storage unit 51, the password entered in the password input unit 62, and the password disclosure permission information entered in the password disclosure permission information input unit 52 as transmission information to the password sharing server 2 (2A), and receives the password ID corresponding to the transmission information from the key sharing server 2 (2A).
  • the password that the user of the third password registration client terminal 3A3 inputs into the password input section 62 may be one that is generated by the user, or may be one that is generated by a program based on random numbers, but is not limited to this.
  • the password registration processing unit 33D in the third password registration client terminal 3A3 can be configured to include, as detailed components, a data input unit 50, an identification token storage unit 51, a password disclosure permission information input unit 52, an encryption key generation unit 53, an information transmission/reception unit (network access unit) 54, a data encryption unit 55, a password input unit 62, and an encryption key transformation unit 67. Some of these components are shared with other processing units.
  • This password registration processing unit 33D cooperates with a data creation unit 56 constituting the data creation processing unit 34 (see FIG. 19). Furthermore, the password registration processing unit 33D in the third password registration client terminal 3A3 communicates with the password registration processing unit 24 in the first password sharing server 2A.
  • the data input unit 50, the identification token storage unit 51, the password disclosure permission information input unit 52, the encryption key generation unit 53, the information transmission/reception unit 54, the data encryption unit 55, the password input unit 62, and the encryption key transformation unit 67 work together to execute the detailed processing steps shown below.
  • the user inputs password disclosure permission information into the password disclosure permission information input unit 52.
  • the user inputs a password into the password input section 62.
  • the password input unit 62 sends the password to the encryption key transformation unit 67.
  • the data input unit 50 sends data to be encrypted (D) to the data encryption unit 55.
  • the encryption key generation unit 53 generates an encryption key for data encryption (k1) and an encryption key for data decryption (k2).
  • the encryption key generation unit 53 sends the encryption key for data encryption (k1) to the encryption key transformation unit 67.
  • the encryption key generation unit 53 sends the data decryption encryption key (k2) to the data creation unit 56.
  • the encryption key transformation unit 67 transforms the data encryption key (k1) using the password to generate a password-transformed data encryption key (k3).
  • the encryption key transformation unit 67 sends the data encryption key (k3) transformed with the password to the data encryption unit 55.
  • the encryption key transformation unit 67 sends the key transformation parameters used in the key transformation in [S9] to the data creation unit 56.
  • the data encryption unit 55 encrypts the encryption target data (D) with the data encryption key (k3) modified with the password, and sends the encrypted data (D1) and encryption parameters to the data creation unit 56.
  • the information transmitter/receiver 54 reads the identification token from the identification token storage unit 51.
  • the information transmitting/receiving unit 54 reads the password disclosure permission information from the password disclosure permission information input unit 52 .
  • the information transmitting/receiving unit 54 reads the password from the password input unit 62 .
  • the information transmitting/receiving unit 54 sends the identification token, the password, and the key disclosure permission information to the password registration processing unit 24.
  • the information transmitting/receiving unit 54 receives the password ID from the password registration processing unit 24.
  • the information transmitting/receiving unit 54 sends the password ID to the data generating unit 56.
  • the data generator 56 outputs data including the encrypted data (D1), the data decryption key (k2), and the password ID.
  • the transformation of the encryption key used in the above example will be described.
  • elliptic curve cryptography is used.
  • the elliptic curve E and generator P are made public as common parameters.
  • This public key Q is transformed using a password ⁇ .
  • is a password quantified by an appropriate method. For example, if the password is 16 numbers and uppercase or lowercase alphabets, the password can be quantified as a 16-byte number in which the ASCII code (1 byte) of each character is arranged in order of 16.
  • s is included in the output data of [S19] as the encryption key for data decryption (and is therefore made public).
  • m is an appropriate integer
  • m ⁇ is the product of m and ⁇ .
  • the data output in [S19] above is, for example, as shown in Fig. 25C. This example is output in xml format, with the data decryption encryption key (k2) in the ⁇ key> element and the password ID in the ⁇ pswd-id> element being base64 encoded.
  • the key transformation parameter m is written in the ⁇ param> element.
  • the encrypted data (D1) is written in the ⁇ content> element.
  • the fourth password registration client terminal 3A4 in the password sharing system 1 will now be described in detail with reference to FIGS. 1, 19 and related figures.
  • the password registration client terminal 3A as a fourth password registration client terminal 3A4, comprises a user registration processing unit 31, a login processing unit 32, a password registration processing unit 33E, and a data creation processing unit 34 as functional components.
  • the fourth password registration client terminal 3A4 further includes a password deletion processing unit 37, a password disclosure period change processing unit 38, and a password disclosure permission information change processing unit 39, etc., depending on the embodiment (example).
  • the basic features of the fourth password registration client terminal 3A4 include an identification token storage unit 51, a password disclosure permission information input unit 52, an information transmission/reception unit (network access unit) 54, an encryption key transformation unit 67, a data encryption unit 55, and a data creation unit 56 (see FIG. 26A).
  • the information transmission/reception unit 54 transmits the identification token stored in the identification token storage unit 51 and the password disclosure permission information input to the password disclosure permission information input unit 52 as transmission information to the key sharing server 2 (2C), and receives the password corresponding to the transmission information and the password ID of the password from the password sharing server 2 (2C).
  • the password registration processing unit 33C in the fourth password registration client terminal 3A4 can be configured to include, as detailed components, a data input unit 50, an identification token storage unit 51, a password disclosure permission information input unit 52, an information transmission/reception unit 54, a data encryption unit 55, an encryption key generation unit 53, and an encryption key transformation unit 67. Some of these components are shared with other processing units.
  • This key registration processing unit 33C cooperates with a data creation unit 56 constituting the data creation processing unit 34 (see FIG. 19).
  • the key registration processing unit 33E in the fourth key registration client terminal 3A4 communicates with the key registration processing unit 24C in the second password shared server 2C.
  • the data input unit 50 the identification token storage unit 51, the password disclosure permission information input unit 52, the information transmission/reception unit 54, the encryption key generation unit 53, the data encryption unit 55, and the encryption key transformation unit 67 work together to execute the detailed processing steps shown below.
  • the user inputs data to be encrypted (D) into the data input unit 50.
  • the user inputs password disclosure permission information into the password disclosure permission information input unit 52.
  • the information transmitting/receiving unit 54 reads the identification token from the identification token storage unit 51.
  • the information transmitting/receiving unit 54 reads the password disclosure permission information from the password disclosure permission information input unit 52.
  • the information transmitting/receiving unit 54 transmits the identification token and the password disclosure permission information to the key registration processing unit 24C.
  • the information transmitting/receiving unit 54 receives the password and password ID from the key registration processing unit 24C.
  • the information transmitting/receiving unit 54 sends the password to the key transforming unit 67.
  • the information transmitting/receiving unit 54 sends the password ID to the data generating unit 56.
  • the encryption key generation unit 53 generates an encryption key (K) and sends K to the encryption key transformation unit 67 and the data creation unit 56.
  • the encryption key transformation unit 67 transforms the encryption key (K) with the password.
  • the transformed encryption key is designated as K1.
  • the encryption key transformation unit 67 sends the encryption key (K 1 ) to the data encryption unit 55 .
  • the data input unit 50 sends data to be encrypted (D) to the data encryption unit 55 .
  • the data encryption unit 55 encrypts the encryption target data (D) with the encryption key (K1), and sends the encrypted data (D1) and encryption parameters to the data creation unit 56.
  • the data generator 56 outputs data including the encrypted data (D1), encryption parameters, password ID, and encryption key (K).
  • the encryption key generated by the encryption key generating unit 53 in the above step [S9] is assumed to be a symmetric key, so that the encryption key K can be used for both data encryption and data decryption.
  • the data output in [S14] includes an encryption key (K), but the encryption key used to encrypt the data is K1, and the data cannot be decrypted unless K1 is obtained.
  • K1 can be created by obtaining the encryption key K and a password. In other words, the confidentiality of the data depends on the confidentiality of the password.
  • the first password acquisition client terminal 3B1 in the password sharing system 1 will be described in detail with reference to FIG. 1, FIG. 27 and related figures.
  • the password acquisition client terminal 3B as a first password acquisition client terminal 3B1, has, as functional components, a user registration processing unit 31, a login processing unit 32, a password acquisition processing unit 35D, and a data decryption processing unit 36.
  • the data decryption processing unit 36 includes a data decryption unit 61 (this is also true in other embodiments (examples)).
  • the basic characteristic elements of the first password acquisition client terminal 3B1 include an identification token storage unit 51, an information transmission/reception unit (network access unit) 54, an encrypted data acquisition unit 57, and a data decryption unit 61 (see FIG. 28A).
  • the first password acquisition client terminal 3B1 is a client terminal with a password acquisition function that reads data output from a client terminal 3A that has a password registration function, and includes an identification token storage unit 51 that stores an identification token (evidence) that indicates that the user is an authenticated user, and an encrypted data acquisition unit 57 that acquires password identification information (password ID) and encrypted data from the read data.
  • an identification token storage unit 51 that stores an identification token (evidence) that indicates that the user is an authenticated user
  • an encrypted data acquisition unit 57 that acquires password identification information (password ID) and encrypted data from the read data.
  • the first password acquisition client terminal 3B1 also includes an information transmission/reception unit 54 that transmits the identification token stored in the identification token storage unit 51 and the key ID acquired by the encrypted data acquisition unit 57 as transmission information to the key sharing server 2 (2A/2B) and receives a password corresponding to the transmission information from the key sharing server 2 (2A/2B).
  • the first password acquisition client terminal 3B1 includes a data decryption unit 61 that receives the encrypted data and wrapped (encrypted) encryption key acquired by the encrypted data acquisition unit 57 and the password received by the information transmission/reception unit 54, unwraps (decrypts) the wrapped encryption key using a password key generated from the password to extract a data decryption encryption key, and decrypts the encrypted data using the data decryption encryption key.
  • a data decryption unit 61 that receives the encrypted data and wrapped (encrypted) encryption key acquired by the encrypted data acquisition unit 57 and the password received by the information transmission/reception unit 54, unwraps (decrypts) the wrapped encryption key using a password key generated from the password to extract a data decryption encryption key, and decrypts the encrypted data using the data decryption encryption key.
  • the first password acquisition client terminal 3B1 can take the following forms. Note that [Form 32] to [Form 35] can also be applied to the second password acquisition client terminal 3B2, which will be described later.
  • the encrypted data acquisition unit 57 acquires the encryption parameter from the read data
  • the data decryption unit 61 decrypts the encrypted data using the encryption parameters acquired by the encrypted data acquisition unit 57 .
  • the encrypted data acquisition unit 57 acquires the password owner ID from the input data
  • the information transmitting/receiving unit 54 transmits the password owner ID acquired by the encrypted data acquiring unit 57 to the key sharing server 2 (2A/2B).
  • the encrypted data acquisition unit 57 reads the password acquisition URL from the input data
  • the information transmitting/receiving unit 54 accesses the password acquisition URL read by the encrypted data acquiring unit 57 and communicates with the key sharing server 2 (2A/2B).
  • the encrypted data acquisition unit 57 reads the password disclosure period or the data creation date and time from the input data and processes it to display the password disclosure period or the data creation date and time to the user.
  • the user registration processing unit 31 and login processing unit 32 in the first password acquisition client terminal 3B1 contain similar components to the first password registration client terminal 3A1 described above and function in a similar manner, and as this can be easily understood by a person skilled in the art, a description thereof will be omitted here.
  • the key acquisition processing unit 35D in the first password acquisition client terminal 3B1 can be configured to include, as detailed components, an identification token storage unit 51, an information transmission/reception unit 54, an encrypted data acquisition unit 57, an encryption key unwrapping unit 65, and a password disclosure period display unit 58. Some of these components are shared with other processing units.
  • the password acquisition processing unit 35D cooperates with a data decryption unit 61 constituting the data decryption processing unit 36 (see FIG. 27).
  • the password acquisition processing unit 35D in the first password acquisition client terminal 3B1 communicates with the key disclosure processing unit 25 in the first password sharing server 2A or the second key sharing server 2B.
  • the identification token storage unit 51 the information transmission/reception unit 54, the encrypted data acquisition unit 57, the encryption key unwrapping unit 65, and the password disclosure period display unit 58 work together to execute the processing steps S1 to S14 shown in Figure 28B as an example.
  • process step S 1 the user inputs encrypted data (six types of data shown in FIG. 23) previously acquired into the encrypted data acquisition unit 57 .
  • the encrypted data acquisition unit 57 reads the password ID ( ⁇ pswd-id> element), password owner ID (email attribute of ⁇ owner> element), and password acquisition URL (url-soc attribute of ⁇ content> element) from the encrypted data, and sends them to the information transmission/reception unit 54.
  • the password owner ID is an email address for the encrypted data shown in FIG.
  • process step S 3 the encrypted data acquisition unit 57 reads the encrypted data D 1 and the encryption parameters from the encrypted data, and sends them to the data decryption unit 61 .
  • the encrypted data acquisition unit 57 reads the wrapped (encrypted) data decryption encryption key ( ⁇ key> element) from the encrypted data (this is designated as K 1 ) and sends it to the encryption key unwrap unit 65 .
  • the encrypted data acquisition unit 57 reads the key disclosure period ( ⁇ period> element) from the encrypted data and sends it to the key disclosure period display unit 58 .
  • the key disclosure period display unit 58 displays the key disclosure period.
  • the display is as follows: Key disclosure start date and time (time): 2022/201702 15:28:45 Key disclosure end date and time (time): 2022/201710 15:28:45 Data creation date and time (time): 2022/04/30 15:28:45 Later (in processing procedure S10), if an error (result) is returned from the key sharing server and the password cannot be obtained, the user of the first password acquisition client terminal 3B1 can understand, for example, that the password disclosure end time has passed by looking at the display of the password disclosure period.
  • the acquisition processing unit 35D can display the password disclosure end time even if the password disclosure end time is not recorded in the encrypted data.
  • processing step S7 the information transmission/reception unit 54 reads the identification token from the identification token storage unit 51. It is assumed that user registration to the key sharing server by the user registration processing unit 31 or login to the key sharing server by the login processing unit 32 has been completed prior to processing step S7, and as a result of user registration or login, the identification token sent from the key sharing server is stored in the identification token storage unit 51.
  • processing step S8 the information transmitting/receiving unit 54 transmits the identification token, the password ID, and the password owner ID to the password disclosure processing unit 25 of the password sharing server indicated by the password acquisition URL.
  • processing step S9 the information transmitting/receiving unit 54 receives a result of the key disclosure request from the key disclosure processing unit 25 of the key sharing server. If the determination result in the process step S10 is not an error, the password has been sent from the password disclosure processing unit 25.
  • a process step S11 the information transmitting/receiving unit 54 sends the password to the password key generating unit 63.
  • the password key generating unit 63 generates a password key from the received password, and sends the password key to the encryption key unwrapping unit 65 .
  • the encryption key unwrap unit 65 uses the password key received in process step S12 to unwrap (decrypt) the encryption key (K1) received in process step S4 to obtain a data decryption encryption key (K).
  • the encryption key unwrap unit 65 sends the unwrapped data decryption encryption key (K) to the data decryption unit 65.
  • the encrypted data input by the user to the encrypted data acquisition unit 57 may not include a password acquisition URL.
  • the password acquisition processing unit 35D accesses a password acquisition destination stored in advance.
  • the password acquisition destination URL may be acquired by accessing a URL stored in advance.
  • the data decryption processing unit 36 in the first password acquisition client terminal 3B1 can be configured to include, as detailed components, a data input unit 36a, an encryption key input unit 36b, a data output unit 36c, and a data decryption unit 61.
  • This data decryption processing unit 36 works in conjunction with the key acquisition processing unit 35D.
  • the data input unit 36a, the encryption key input unit 36b, the data output unit 36c, and the data decryption unit 61 work together to execute the processing steps S1 to S7 shown in Figure 29B as an example.
  • the data input unit 36a receives the encrypted data D1 and encryption parameters from the encrypted data acquisition unit 57 in the key acquisition processing unit 35D.
  • the data input unit 36a sends the encrypted data D1 and the encryption parameters to the data decryption unit 61.
  • the encryption key input unit 36b receives an encryption key (encryption key for data decryption) from the information transmitting/receiving unit 54 in the key acquisition processing unit 35D in step S3, and sends this encryption key to the data decryption unit 61 in step S4.
  • step S5 the data decryption unit 61 decrypts the encrypted data D1 with the received encryption key, using the encryption parameters.
  • the nonce in counter mode generates a counter block for encryption/decryption by, for example, XORing it with a counter value.
  • the nonce in counter mode is a parameter that changes each time encryption is performed in order to change the result of encryption of the same plaintext each time encryption is performed.
  • the same is true for the initial vector (IV), which is a value that is XORed before encryption of the first plaintext block in CBC mode, for example. By changing the IV each time encryption is performed, the ciphertext for the same plaintext changes each time encryption is performed.
  • the first plaintext block is obtained by XORing the IV with the decryption result of the first block.
  • the data decoding unit 61 sends the decoded data to the data output unit 36c.
  • the data output unit 36c outputs the decrypted data.
  • the data output from the data output unit 36c may be text and images (still images and/or moving images) depending on the format of the original data.
  • the first key acquisition client terminal 3B1 displays the data output from the data output unit 36c in an appropriate format.
  • the second password acquisition client terminal 3B2 in the password sharing system 1 will be described in detail with reference to FIG. 1, FIG. 27 and related figures.
  • the password acquisition client terminal 3B as a second password acquisition client terminal 3B2, has functional components including a user registration processing unit 31, a login processing unit 32, a password acquisition processing unit 35E, and a data decryption processing unit 36.
  • the basic characteristic elements of the second password acquisition client terminal 3B2 include an identification token storage unit 51, an information transmission/reception unit (network access unit) 54, an encrypted data acquisition unit 57, an encryption key transformation unit 66, and a data decryption unit 61 (see FIG. 30A).
  • the second password acquisition client terminal 3B2 differs from the first password acquisition client terminal 3B1 in that it does not include a password key generation unit 63 or an encryption key unwrap unit 65, but does include an encryption key transformation unit 66.
  • the password acquisition processing unit 35E in the second password acquisition client terminal 3B2 can be configured to include, as detailed components, an identification token storage unit 51, an information transmission/reception unit 54, an encrypted data acquisition unit 57, and an encryption key transformation unit 66.
  • This key acquisition processing unit 35E cooperates with a data decryption unit 61 that constitutes the data decryption processing unit 36 (see FIG. 27).
  • the password acquisition processing unit 35E in the second password acquisition client terminal 3B2 communicates with the key disclosure processing unit 25 in the first key sharing server 2A or the second key sharing server 2C.
  • the identification token storage unit 51 the information transmission/reception unit 54, the encrypted data acquisition unit 57, and the encryption key transformation unit 66 work together to execute processing steps S1 to S11 shown in Figure 30B as an example.
  • processing step S1 when a password disclosure request is required, the user inputs the encrypted data (data shown in FIG. 25C) previously acquired into the encrypted data acquisition unit 57.
  • the encrypted data acquisition unit 57 reads the password ID (the ⁇ pswd-id> element in FIG. 25C) from the input encrypted data, and sends it to the information transmission/reception unit 54 .
  • the encrypted data acquisition unit 57 reads the encrypted data (D 1 ) ( ⁇ content> element) from the input encrypted data, and sends it to the data decryption unit 61 .
  • the encrypted data acquisition unit 57 reads the encryption key (K1) ( ⁇ key> element) and the key transformation parameter ( ⁇ param> element) from the input encrypted data, and sends this encryption key (K1) to the encryption key transformation unit 66.
  • processing step S 5 the information transmitting/receiving unit 54 reads the identification token from the identification token storage unit 51 .
  • the information transmitting/receiving unit 54 transmits the identification token and the password ID to the password sharing server.
  • step S7 the information transmitting/receiving unit 54 receives the result of the request sent to the password sharing server in process step S6 from the key disclosure processing unit 25 of the key sharing server 2. If the request was successful, the information transmitting/receiving unit 54 receives a password, but if the request was unsuccessful, the information transmitting/receiving unit 54 receives an error.
  • step S8 the information transmitting/receiving unit 54 checks whether the response from the password sharing server is an error. If an error occurs, the process ends. If no error occurs, the process proceeds to step S9. In step S9, the information transmitting/receiving unit 54 receives a password from the password sharing server.
  • the information transmitting/receiving unit 54 sends the password to the key transforming unit 66.
  • the encryption key transformation unit 66 transforms the encryption key (K1) received in step S4 with the password received in step S9 to obtain the data decryption encryption key (K).
  • the key transformation parameter received in step S4 is used.
  • the transformation of the encryption key using the password is as described above.
  • the encryption key transformation unit 66 sends the data decryption encryption key (K) to the data decryption unit 61.
  • the data decryption unit 61 decrypts the encrypted data (D1) in the input encrypted data using the acquired data decryption encryption key (K), and reproduces the decrypted data into text and images (still images and/or moving images), etc.
  • the key sharing server 2 (2A/2B/2C) further includes a key deletion processing unit 26, a key disclosure period change processing unit 27, and a key disclosure permission information change processing unit 28, and the key registration client terminal 3A further includes a key deletion processing unit 37, a key disclosure period change processing unit 38, and a key disclosure permission information change processing unit 39.
  • This enables a user to delete an encryption key that the user has registered in the key sharing server 2, to change the disclosure period of an encryption key that the user has registered in the key sharing server 2, and to change the key disclosure permission information of an encryption key that the user has registered in the key sharing server 2.
  • key disclosure by the key sharing server 2 can be associated with viewing of advertisements or billing.
  • the key sharing server 2 provides a key after confirming that the user requesting key disclosure has viewed an advertisement video.
  • the key sharing server 2 also provides a key after confirming that the user requesting key disclosure has paid the service fee.
  • the identification token indicates an authenticated user.
  • the key sharing server 2 may request the user to register another email address or telephone number held by the user, thereby performing two-factor authentication or multi-factor authentication. In this case, it is possible to register a smartphone as a second factor for identity verification.
  • the data encryption key and data decryption encryption key in the key sharing system 1 according to the embodiment described above can be replaced by encryption key generation source information corresponding to the data from which the encryption key is generated.
  • This modified example further includes a password input unit 62, a password key generation unit 63, and an encryption key wrap unit 64.
  • the password input to the password input unit 62 is sent to the password key generation unit 63, and the password key generated therein is sent to the encryption key wrap unit 64.
  • the information transmission/reception unit 54 receives a data decryption encryption key in addition to the data encryption encryption key from the key sharing server 2. In the case of symmetric key encryption, these encryption keys are the same.
  • the information transmitting/receiving unit 54 sends the data decryption encryption key received from the key sharing server 2 to the encryption key wrapping unit 64.
  • the encryption key wrapping unit 64 encrypts (wraps) the data decryption encryption key with the password key and sends it to the information transmitting/receiving unit 54.
  • the information transmitting/receiving unit 54 sends the wrapped data decryption encryption key together with the identification token stored in the identification token storage unit 51 to the key sharing server 2.
  • the key identification information of the data decryption encryption key is received as a reply from the key sharing server 2 when the information transmitting/receiving unit 54 receives the data encryption encryption key and the data decryption encryption key from the key sharing server 2 or when the information transmitting/receiving unit 54 transmits the wrapped data decryption encryption key to the key sharing server 2.
  • the second processing unit of this modified example transmits a data decryption cryptographic key in addition to a data encryption cryptographic key to the client terminal. At this time, it is not necessary to send key identification information of the cryptographic key.
  • the second processing unit further receives a data decryption cryptographic key wrapped with a password key together with an identification token from the key registration client terminal. The received wrapped data decryption cryptographic key is stored in a database in association with the key disclosure permission information received by the second processing unit from the key registration client terminal.
  • the second processing unit transmits key identification information corresponding to the data decryption cryptographic key to the key registration client terminal when sending the data decryption cryptographic key to the key registration client terminal, or as a reply when receiving the wrapped data decryption cryptographic key from the key registration client terminal.
  • the third processing unit of the second key registration client terminal transmits a wrapped data decryption encryption key associated with the key identification information received from the second key acquisition client terminal.
  • This modified example further includes a password input unit 62.
  • the information transmission unit 54 transmits the password input to the password input unit 62, in addition to the identification token, the data decryption encryption key, and the key disclosure permission information, to the key sharing server 2, and obtains the key identification information.
  • the second processing unit receives a password in addition to an identification token, a data decryption encryption key, and key disclosure permission information.
  • the second processing unit generates a password key from the password and encrypts (wraps) the received data decryption encryption key using the password key.
  • the second processing unit stores the wrapped data decryption encryption key and the key disclosure permission information in a database, and transmits key identification information that identifies the wrapped data decryption encryption key and the key disclosure permission information on the database to the first key registration client terminal 3A1.
  • a key sharing processing technique can be realized for more securely sharing encrypted data obtained by encrypting data to be encrypted, by using an identification token, key disclosure permission information, key identification information, and a plurality of types of keys in a coordinated manner, thereby solving the problems of the existing technique.
  • Password sharing system 101 Password sharing server 102 First client terminal 103 Second client terminal 104 Identification token issuing unit 105 Password supplying unit 106 Verification unit 107 Password registration unit 108 Encryption key generating unit, 109 First encryption key processing unit 110 Password disclosure unit 111 First identification token storage unit 112 Password disclosure permission information input unit 113 First information transmission/reception unit 114 Data encryption unit 115 Data creation unit 116 Second identification token storage unit 117 Encrypted data acquisition unit 118 Second information transmission/reception unit 119 Second encryption key processing unit 120 Data decryption unit 121 Database 122 Record 131, 132 Identification token 133 Password 134 Password disclosure permission information 135 Password identification information 136 Data encryption encryption key 137 Data decryption encryption key 138 Processed data decryption encryption key 139 Encrypted data 140 Data 1 Key sharing system 2 Key sharing server 2A First key sharing server 2B Second key sharing server 2C Third key sharing server 3 Client terminal 3A Key registration client terminal 3B Key acquisition client terminal 3A1 First key registration

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)

Abstract

パスワード情報とパスワード開示許容情報を含むレコードを、パスワード共有サーバのデータベースに登録し、そのレコードを特定するパスワード識別情報を第1のクライアント端末に送信する。第1のクライアント端末は、送信データを暗号化して得られる暗号化データと、第1加工後データ復号用暗号鍵と、パスワード識別情報とを含むデータを、第2のクライアント端末に向けて送信する。第2のクライアント端末は、受信したデータから取得したパスワード識別情報と自端末の識別トークンとで、パスワード開示部に問合せを行い、パスワード開示部は、識別トークンがパスワード開示許容範囲に含まれていれば、パスワード情報を第2のクライアント端末に通知する。第2のクライアント端末は、通知されたパスワード情報によって、データから取得した第1加工後データ復号用暗号鍵から第2の加工がされたデータ復号用暗号鍵を生成し、それを用いてデータ中の暗号化データを復号する。

Description

パスワード共有システム、方法、プログラム、サーバ装置、及び端末装置
 本発明は、パスワード共有技術に関し、詳細には、パスワード共有システム、方法、プログラム、サーバ装置、及び端末装置に関する。
 ここに開示する技術は、例えば、電子メールの送受信者間で添付ファイルの暗号化データを共有するパスワード共有の仕組み、及び他のユーザとの関係に基づいて暗号化データを共有するためのパスワード共有の仕組みに関する。
 PGP(Pretty Good Privacy)は暗号化コンテンツを送受信するための仕組みの一つである。PGP暗号においては、受信者は、自身の鍵ペア(秘密鍵及び公開鍵のペア)を生成し、公開鍵をインターネット上のサーバに預けて公開する。送信者は、受信者のサーバに接続し、受信者の公開鍵を検索して入手する。
 送信者は、対称鍵(共通鍵又は秘密鍵とも称される)を生成し、当該対称鍵を用いて送信文を暗号化する。次いで、送信者は、対称鍵を先に入手した受信者の公開鍵を用いて暗号化する。送信者は、暗号化した送信文と、公開鍵で暗号化した対称鍵とを受信者に送信する。
 受信者は、鍵ペアの秘密鍵を用いて、公開鍵で暗号化した対称鍵を復号する。鍵ペアの性質上、秘密鍵を有する受信者のみが復号を正しく実行することができる。受信者は、復号により取得した対称鍵を用いて、送信者から受信した送信文を復号する。
 このように、PGP暗号においては、インターネット上のサーバが公開鍵を配布する。サーバは、受信者から受信者のメールアドレス及び公開鍵を受け付けてインターネットに公開する。そして、サーバは、送信者からの要求に応じて、受信者のメールアドレス及び公開鍵を送信者に提供する。
 また、関連技術として、Facebook(登録商標)がある。これは代表的なSNS(Social Networking Service)の一つであり、ユーザ間の関係に基づいて情報(データを含む)を共有する仕組みを提供する。ユーザ間の関係には、例えば、「家族」、「親友」、「友人」、及び「それ以外」がある。
 更に、情報(データを含む)を共有する仕組みに関する他の関連技術として、例えば、特許文献1,2,3が存在する。
特表2021-524216号公報 特表2018-534818号公報 特開2011-097453号公報 時開2020―198616号広報
 PGPを利用して暗号化データの受信を希望する者は暗号化データの送信者に自分の公開鍵を予め通知しておく必要がある。その為に、友人や仕事関係の知人など、自分に暗号化データを送信する可能性がある人々に、予め自分の公開鍵を送付しておかなければならない。セキュリティ上の理由で自分の鍵ペアを更新する場合は、暗号化データ送信者に更新した公開鍵を送付しなければならない。一方、送信者の側は、受信者毎に異なる多数の公開鍵を保持して最新の状態に管理する必要がある。
 送信者は受信者毎に異なる公開鍵で、送信データ又は送信データを暗号化する秘密鍵(対称鍵)を暗号化する必要がある。暗号化した送信データ又は暗号化した秘密鍵(対称鍵)は受信者毎に異なるため、多数の受信者に同一のデータを送信する場合も個別に多数のメールを送信するか、多数の暗号鍵を添付したメールを同報配信する事になる。PGPを利用する暗号化データの送受信のために、送信者及び受信者の双方が負うべき負担が大きい。
 上述のように、PGPのような公開鍵暗号(非対称鍵暗号)技術による暗号化は安全性が高い一方で、送受信者に大きな手間が必要となる。その手間を避けるため、パスワード暗号化zipファイルが簡易なファイル暗号化の手法として用いられている。しかし、この手法は安全性に問題が生じ易い。関係者が同じパスワードを共有する事になるためである。かつ、そのパスワードは長期間変更されない傾向がある。変更を全関係者に周知する事が困難であるためである。そのような状態を避けるために、ファイルごとにランダムなパスワードを生成して送信先に送付するという事も行われているが、この手法も当然安全性に問題がある。つまり、パスワードを別メールで送る事が必要であり、攻撃者がメールの送信経路上でログを取得する事で、容易にパスワードを盗み読む事ができる。
 特許文献1には、デジタルデータが送受信されるときにエンティティ確認及びアセット認証を実現することができる技術が開示されている(例えば、段落[0005]参照)。また、電子メールアドレス及び証拠についても開示されている(例えば、段落[0051],[0170],[0044],[0054]参照)。
 この特許文献1について詳述すると、例えば、段落[0044]には、次に示す記載がある。
 「デジタル又は物理的アセットデータを登録するためのアセットレジストリサービスを提供し、アセットデータが真に改ざんされておらず、アセットが真に当該エンティティによって発行されていることを証拠立てるために任意の関与又は許可される当事者によって確認されることが可能である確認可能/証明可能エンティティによって関連するデジタルシール又はスタンプを作成するための方法に関係する。」
 ここで、アセット(所有物)は電子メールアドレスを含む(段落[0051]参照)。
 また、例えば、段落[0170]には、次に示す記載がある。
 「別の例は、RegSealを使用して電子メールアドレスを証明し、その秘密鍵を使用して電子メールに署名することである。これは、電子メールが実際にRegSealの所有者によって送信されたことを証拠立てることができる。その結果、フィッシング電子メールやスパム電子メールを高いレベルで確実にフィルタ除外することができる。」
 ここで、RegSealは証明済みシール(印/封印)である(段落[0050]参照)。
 特許文献2には、セキュリティ保護されたコンテンツ共有のためのシステムが開示されている。また、電子メールアドレス及びデータトークンについても開示されている(例えば、段落[0001],[0012],[0025]参照)。
 また、特許文献3には、サーバ上で保持された情報からの秘密鍵の露呈を完全に防ぐためのメッセージ(メール)の送信及び受信技術が開示され、PGPについても開示されている(例えば、要約、段落[0001]から[0003]、[0006]参照)。
 また、特許文献4には、差出元からのリクエストによって、暗号化添付ファイルのパスワードの公開非公開を設定するメールサーバが開示されている。
 しかし、上述した特許文献1、2、3、4などに開示されている技術は、暗号化データを一層安全に共有するための鍵共有処理という観点においては、未だ十分ではない。
 Facebookのような情報共有手段は、家族や友人、知人など、相互の関係に応じて情報を公開し、近況を報告するためのメディアとして広く利用されている。しかし、例えばFacebookは極めて多数の人々の公私の記録を収集し、意見交換に利用されているため、以下のような重大な弊害も明らかになってきている:
1.一企業が数十億人分の個人情報を預かっている状態であり、その利用とセキュリティの保持に大きな懸念がある。
(ア)個人情報が無断で利用されていないか?不正な利用が行われていないか?或いは、本人の不利益となる目的に利用されていないか?など。
2.ストレージとサービスの構築・維持・管理に莫大なコストが必要である。
(ア)そのコストは基本的に広告によって賄われているため、広告費の増大や過剰な広告の表示に繋がる。広告費は製品・サービスの価格に転嫁されるため、Facebook利用の有無に関わらず、消費者がそのコストを負担している事になる。
(イ)過剰な広告は一般に不快であり、利用者の体験を損なう。
3.Facebookで公開される情報が一企業の判断で検閲され、言論・表現の自由が損なわれる恐れがある。
(ア)一私企業の判断により言論や表現が削除、公開禁止、或いは、投稿禁止になる可能性がある。
 PGPを利用して暗号化データの受信を希望する者は又、暗号化データの送信者に自分の公開鍵を予め通知しておく必要がある。その為に、友人や仕事関係の知人など、自分に暗号化データを送信する可能性がある人々に、予め自分の公開鍵を送付しておかなければならない。セキュリティ上の理由で自分の公開鍵ペアを更新する場合は、暗号化データ送信者に更新した公開鍵を送付しなければならない。一方、送信者の側は、受信者毎に公開鍵は異なる多数の公開鍵を保持して最新の状態に管理する必要がある。
 送信者は受信者毎に異なる公開鍵で、送信データ又は送信データを暗号化する対称鍵を暗号化する必要がある。暗号化した送信データ又は暗号化した対称鍵は受信者毎に異なるため、多数の受信者に同一のデータを送信する場合も個別に多数のメールを送信するか、多数の暗号鍵を添付したメールを同報配信する事になる。PGPを利用する暗号化データの送受信のために、送信者受信者の双方が負うべき負担が大きい。
 上述のように、PGPのような公開鍵方式の暗号化は安全性が高い一方で、送受信者に大きな手間が必要となる。その手間を避けるため、パスワード暗号化zipファイルが簡易なファイル暗号化の手段として用いられている。しかし、この手段は安全性に問題が生じ易い。関係者が同じパスワードを共有する事になるからである。かつ、そのパスワードは長期間変更されない傾向がある。変更を全関係者に周知する事が困難だからである。そのような状態を避けるため、ファイルごとにランダムなパスワードを生成して送信先に送付するという事も行われているが、この方法も当然安全性に問題がある。パスワードを「別メールで送る」という方法に頼らざるを得ないからである。攻撃者がメールの送信経路上でログを取得する事で、容易にパスワードを盗み読む事ができる。
 本発明の目的は、識別トークン、パスワード開示許容情報、パスワード識別情報、パスワード情報、及び複数種類の鍵の連携利用により、暗号化対象データを暗号化した暗号化データを一層安全に共有するためのパスワード共有処理技術を実現することにある。
 上記課題を解決するために、本発明の第1の態様は、1台以上のパスワード共有サーバ101と、パスワード登録及びデータ出力の機能を有する1台以上の第1のクライアント端末102と、その第1のクライアント端末102から出力されたデータ139を読み取る機能を有する1台以上の第2のクライアント端末103とを備え、それらが例えばインターネット、ローカルエリアネットワーク、VPN(バーチャルプライベートネットワーク)などにより相互に接続されるパスワード共有システム100である。
 図1Aは、本発明の第1の態様のパスワード共有システム100の機能構成を示すブロック図であり、図1Bは、その機能構成の動作シーケンスを示すシーケンス図である。以下、図1A及び図1Bを参照しながら、本発明の第1の態様について説明する。
 図1Aの識別トークン発行部104は、第1のクライアント端末102及び第2のクライアント端末103に、認証済みであることを示す識別トークン131、132を夫々発行する(図1BのステップS1、S2)。
 図1Aのパスワード供給部105は、パスワード又はパスワードに基づいて生成されるパスワード鍵であるパスワード情報133を生成する(図1BのステップS8→S9)。
 図1Aの検証部106は、第1のクライアント端末102が送信した識別トークン131を検証する(図1BのステップS4)。
 図1Aのパスワード登録部107は、検証部106で識別トークン131が正しい(認証済みの第1のクライアント端末102に発行された識別トークン131である)ことが確認できた場合に限り(図1BのステップS7)、パスワード供給部105が供給したパスワード情報133(図1BのステップS8→S9)と、第1のクライアント端末102が送信(図1BのステップS6)したパスワード情報133の開示許容範囲を指定するパスワード開示許容情報134とを、パスワード共有サーバ101が備えるデータベース121内のレコード122に格納すると共に(図1BのステップS10)、そのレコード122を特定するパスワード識別情報135を第1のクライアント端末102に送信する(図1BのステップS11→S12)。
 図1Aの暗号鍵生成部108は、データ暗号化用暗号鍵とデータ復号用暗号鍵の組を生成する。
 図1Aの暗号鍵第1加工部109は、暗号鍵生成部108が生成したデータ復号用暗号鍵又はデータ暗号化用暗号鍵の少なくともいずれか一方に対して、パスワード供給部105が供給したパスワード情報133に基づいて第1の加工を行うことにより、第1の加工がされた又はされないデータ復号用暗号鍵及びデータ暗号化用暗号鍵を夫々第1加工後データ復号用暗号鍵137及び第1加工後データ暗号化用暗号鍵136を生成して第1のクライアント端末102に入力させる(図1BのステップS15→S16、S17)。
 図1Aのパスワード開示部110は、第2のクライアント端末103からのパスワード問合せ情報に含まれるパスワード識別情報135及び識別トークン132を取得し(図1BのステップS19→S20、S21→S22)、その取得したパスワード識別情報135に対応するパスワード共有サーバ101が備えるデータベース121内のレコード122からパスワード情報133及びパスワード開示許容情報134を取得し(図1BのステップS23→S24)、その取得した識別トークン132に対応するユーザの情報を取得し、その取得したパスワード開示許容情報134が示す開示許容範囲にユーザが含まれていることが確認できた場合に限り、取得したパスワード情報133を第2のクライアント端末103に送信する(図1BのステップS25)。
 図1Aにおいて、識別トークン発行部104、パスワード供給部105、検証部106、パスワード登録部107、暗号鍵生成部108、暗号鍵第1加工部109、及びパスワード開示部110は、パスワード共有サーバ101内に具備されるように記載されているが、これらの各機能部は、データベース121を搭載するパスワード共有サーバ101内に必ず具備されなければならないというものではなく、外部の専用サーバ内に具備されるように実施することもできる。また、暗号鍵生成部108及び暗号鍵第1加工部109は、第1のクライアント端末102内に具備されてもよい。
 図1Aの第1のクライアント端末102は、以下の機能構成及び動作シーケンスを備える。
 第1の識別トークン保存部111は、識別トークン発行部104が発行した識別トークン131を保存する(図1BのステップS1)。
 図1Aのパスワード開示許容情報入力部112は、パスワードの開示許容範囲を示すパスワード開示許容情報134を、第1のクライアント端末102のユーザの操作により入力する(図1BのステップS5)
 図1Aの第1の情報送受信部113は、パスワード開示許容情報入力部112が入力したパスワード開示許容情報134と第1の識別トークン保存部111が保存する識別トークン131とを検証部106及びパスワード登録部107に向けて送信し(図1BのステップS4、S6)、その送信に応答してパスワード登録部107が送信したパスワード識別情報135を受信する(図1BのステップS12)。
 図1Aのデータ暗号化部114は、暗号化対象データの入力に応じて、暗号鍵第1加工部109が出力した第1加工後データ暗号化用暗号鍵136を用いて暗号化対象データを暗号化し、その暗号化の結果得られる暗号化データ138を出力する(図1BのステップS15→S17)。
 図1Aのデータ作成部115は、第1の情報送受信部113が受信したパスワード識別情報135と(図1BのステップS12→S13)、暗号鍵第1加工部109が出力した第1加工後データ復号用暗号鍵137と(図1BのステップS17)、データ暗号化部114が出力した暗号化データ138と(図1BのステップS18)、を含むデータ139を出力する。
 図1Aの第2のクライアント端末103は、以下の機能構成及び動作シーケンスを備える。
 図1Aの第2の識別トークン保存部116は、識別トークン発行部104が発行した識別トークン132を保存する(図1BのステップS2)。
 図1Aの暗号化データ取得部117は、読み取ったデータ139からパスワード識別情報135と、第1加工後データ復号用暗号鍵137と、暗号化データ138とを取得する(図1BのステップS19)。
 図1Aの第2の情報送受信部118は、暗号化データ取得部117が取得したパスワード識別情報135と、第2の識別トークン保存部116が保存する識別トークン132とをパスワード問合せ情報としてパスワード開示部110に向けて送信し(図1BのステップS20、S21)、その送信に応答してパスワード開示部110が送信したパスワード情報133を受信する(図1BのステップS25)。
 図1Aの暗号鍵第2加工部119は、第2の情報送受信部118が受信したパスワード133に基づいて、暗号化データ取得部117が取得した第1加工後データ復号用暗号鍵137に対して、第2の情報送受信部118が受信したパスワード情報133に基づいて第2の加工を行うことにより、第2の加工がされたデータ復号用暗号鍵140を生成する(図1BのステップS26、S27)。
 図1Aのデータ復号部120は、暗号鍵第2加工部119が生成した第2の加工がされたデータ復号用暗号鍵140を用いて、暗号化データ取得部117が取得した暗号化データ138に対して復号処理を実行する(図1BのステップS28、S29)。
 ここで、暗号鍵第1加工部109は、加工処理として、データ復号用暗号鍵に対するラップ(暗号化)処理、又はデータ暗号化用暗号鍵に対する変形処理の少なくともいずれかの処理を実行することができる。なお、これらの両方の処理が実行されてもよい。
 図1Cは、暗号鍵第1加工部109が実行する加工(ラップ又は変形)の処理の説明図である。
 まず、暗号鍵第1加工部109での加工処理がデータ復号用暗号鍵に対するラップ(暗号化)処理である場合の動作について、図1A、図1B、及び図1C(a)を参照しながら説明する。
 加工がラップ(暗号化)処理である場合、暗号鍵第1加工部109は、パスワード供給部105がパスワード情報133としてパスワードを供給する場合には、そのパスワードに基づいてパスワード鍵(図1C(a)のKP)を生成し、そのパスワード鍵を用いて暗号鍵生成部108が生成したデータ復号用暗号鍵(図1CのKD)を暗号化するラップ処理を実行することにより、第1加工後データ復号用暗号鍵137(図1C(a)の[KD]_KP)を生成して第1のクライアント端末102に出力する(図1C(a)の1)。
 なお、パスワード供給部105がパスワード情報133としてパスワード鍵を直接出力できる場合には、暗号鍵第1加工部109は、そのパスワード鍵(図1C(a)のKP)を用いて上記ラップ処理を実行してもよい。この場合、データベース121には、パスワード情報133として、パスワード鍵が格納される。
 またこのとき、暗号鍵第1加工部109は、暗号鍵生成部108が生成したデータ暗号化用暗号鍵(図1C(a)のKE)をそのまま第1加工後データ暗号化用暗号鍵136として、第1のクライアント端末102に出力する。
 第1加工後データ復号用暗号鍵137(図1C(a)の[KD]_KP)は、第1のクライアント端末102のデータ作成部115に送られて、データ139の一部としてラップ(暗号化)された状態で第2のクライアント端末に転送される(図1BのステップS17→S19)(図1C(a)の2)。
 第1加工後データ暗号化用暗号鍵136(図1C(a)のKE)は、第1のクライアント端末102のデータ暗号化部114に送られて、そのまま暗号化対象データ(図1CのD)の暗号化に使用される(図1BのステップS16)(図1C(a)の3)。
 データ暗号化部114にて得られる暗号化データ138(図1C(a)の[D]_KE)は、データ作成部115に送られ、データ139の一部として第2のクライアント端末103に転送される(図1BのステップS16→S18→S19)(図1C(a)の4)。
 第2のクライアント端末103の暗号化データ取得部117でデータ139から取得された第1加工後データ復号用暗号鍵137は、ラップされた状態である(図1C(a)の[KD]_KP)。そこで、暗号鍵第2加工部119は、第2の加工として、この第1加工後データ復号用暗号鍵137に対して、パスワード情報133に基づくアンラップ(復号)処理を実行する。
 具体的には、暗号鍵第2加工部119は、前述した第2の情報送受信部118にてパスワード開示部110から受信されたパスワード情報133であるパスワードに基づいてパスワード鍵(図1C(a)のKP)を生成する(図1BのステップS26)。
 そして、暗号鍵第2加工部119は、第1のクライアント端末102から暗号化データ取得部117を介して受信(図1BのステップS27)した第1加工後データ復号用暗号鍵137(図1C(a)の[KD]_KP)に対して、上記パスワード鍵に基づいてアンラップ処理を実行する。この結果、暗号鍵第2加工部119は、暗号鍵生成部108で生成された元のデータ復号用暗号鍵を、第2の加工がされたデータ復号用暗号鍵140(図1C(a)のKD)として復号する(図1C(a)の5)。暗号鍵第2加工部119は、この第2の加工がされたデータ復号用暗号鍵140を、データ復号部120に出力する(図1BのステップS28)。
 なお、パスワード供給部105がパスワード情報133としてパスワード鍵を直接出力できる場合には、暗号鍵第2加工部119は、データベース121からパスワード開示部110を介して受信されたパスワード情報133であるパスワード鍵(図1C(a)のKP)を用いて上記アンラップ処理を実行してもよい。
 データ復号部120は、元のデータ復号用暗号鍵(図1C(a)のKD)である第2の加工がされたデータ復号用暗号鍵140を用いて、第1のクライアント端末102から暗号化データ取得部117を介して受信(図1BのステップS29)した暗号化データ130(図1C(a)の[D]_KE)を復号して、暗号化対象データDを得る(図1C(a)の6)。
 上述のようなラップ処理により、データ139が第2のクライアント端末103に転送される過程において、第1加工後データ復号用暗号鍵137はパスワード情報133がなければアンラップできず、暗号化データ138を復号することができないため、安全性が高い。
 次に、暗号鍵第1加工部109での加工処理が変形処理である場合の動作について、図1A、図1B、及び図1C(b)を参照しながら説明する。
 加工が変形処理である場合、暗号鍵第1加工部109は、パスワード供給部105が供給するパスワード情報133であるパスワード(図1C(b)のP)に基づいて、暗号鍵生成部108が生成したデータ暗号化用暗号鍵(図1C(b)のKE)を変形する変形処理を実行することにより、第1加工後データ暗号化用暗号鍵136(図1C(b)のKE~P)を生成して第1のクライアント端末102に出力する(図1C(b)の7)。
 またこのとき、暗号鍵第1加工部109は、暗号鍵生成部108が生成したデータ復号用暗号鍵(図1C(b)のKD)をそのまま第1加工後データ復号用暗号鍵137として、第1のクライアント端末102に出力する。
 第1加工後データ復号用暗号鍵137(図1C(b)のKD)は、第1のクライアント端末102のデータ作成部115に送られて、データ139の一部として、暗号鍵生成部108で生成された素のままの状態で第2のクライアント端末に転送される(図1BのステップS17→S19)(図1C(b)の8)。
 変形処理が施された第1加工後データ暗号化用暗号鍵136(図1C(b)のKE~P)は、第1のクライアント端末102のデータ暗号化部114に送られて、暗号化対象データ(図1CのD)の暗号化に使用される(図1BのステップS16)(図1C(b)の9)。
 データ暗号化部114にて得られる暗号化データ138(図1C(b)の[D]_KE~P)は、データ作成部115に送られ、データ139の一部として第2のクライアント端末103に転送される(図1BのステップS16→S18→S19)(図1C(b)の10)。
 第2のクライアント端末103の暗号化データ取得部117でデータ139から取得された第1加工後データ復号用暗号鍵137は、素の状態である(図1C(b)のKD)。一方、第2のクライアント端末103の暗号化データ取得部117でデータ139から取得された暗号化データ138は、変形された第1加工後データ暗号化用暗号鍵136によって暗号化されている(図1C(b)の[D]_KE~P)。そこで、暗号鍵第2加工部119は、第2の加工として、この第1加工後データ復号用暗号鍵137に対して、パスワード情報133であるパスワードに基づく変形処理を実行する。
 具体的には、暗号鍵第2加工部119は、前述した第2の情報送受信部118にてパスワード開示部110から受信されたパスワード情報133であるパスワード(図1C(a)のP)を取得する(図1BのステップS26)。
 そして、暗号鍵第2加工部119は、第1のクライアント端末102から暗号化データ取得部117を介して受信(図1BのステップS27)した第1加工後データ復号用暗号鍵137(図1C(b)のKD)に対して、上記パスワードに基づいて変形処理を実行することにより、第2の加工がされたデータ復号用暗号鍵140(図1C(b)のKD~P)を得る(図1C(b)の11)。暗号鍵第2加工部119は、変形処理が施された第2の加工がされたデータ復号用暗号鍵140を、データ復号部120に出力する(図1BのステップS28)。
 データ復号部120は、元のデータ復号用暗号鍵(図1C(b)のKD)から変形して得た第2の加工がされたデータ復号用暗号鍵140(図1C(b)のKD~P)を用いて、第1のクライアント端末102から暗号化データ取得部117を介して受信(図1BのステップS29)した暗号化データ130(図1C(b)の[D]_KE~P)を復号して、暗号化対象データDを得る(図1C(b)の12)。
 上述のような変形処理により、データ139が第2のクライアント端末103に転送される過程において、第1加工後データ復号用暗号鍵137はパスワードによって変形した後でなければ変形された第1加工後データ暗号化用暗号鍵136によって暗号化された暗号化データ138を復号することができないため、ラップ処理の場合と同様に安全性が高い。
 以上のように、暗号鍵第1加工部109によるパスワード情報133に基づくデータ復号用暗号鍵又はデータ暗号化用暗号鍵の少なくともいずれか一方に対する加工処理により、第1のクライアント端末102から第2のクライアント端末103に転送される暗号化データ138の安全性を高めることが可能となる。
 上述した本発明の第1の態様において、検証部106はパスワード共有サーバ101以外のサーバに具備されるようにすることができる
 上述した本発明の第1の態様において、パスワード登録部107はパスワード共有サーバ101以外のサーバ又は第1のクライアント端末102に具備されるようにすることができる。
 上述した本発明の第1の態様において、パスワード開示許容情報134は、ユーザ間の関係、ユーザのグループの指定、及びメールアドレスのリストの少なくとも1つを含む、ようにすることができる。
 上述した本発明の第1の態様において、
 パスワード登録部107は、
 第1のクライアント端末102から識別トークン131と共にパスワード開示期間を受信し、
 パスワード開示期間をデータベース121内のレコード122に保存し、
 パスワード開示部110は、
 第2のクライアント端末103から受信したパスワード識別情報135に対応するデータベース121内のレコード122から、パスワード情報133と共にパスワード開示期間を取得し、
 現在時刻がパスワード開示期間に含まれているときに限り、取得したパスワード情報133を第2のクライアント端末103に送信する、
 ようにすることができる。
 上述した本発明の第1の態様において、
 第1のクライアント端末102は、
 第1のクライアント端末102のユーザによりパスワード開示開始時刻又はパスワード開示終了時刻をパスワード開示期間として入力されるパスワード開示期間入力部を更に備え、
 第1の情報送受信部113は、パスワード開示期間入力部により入力されたパスワード開示期間をパスワード登録部107に向けて送信する、
 ようにすることができる。
 上述した本発明の第1の態様において、
 パスワード登録部107は、パスワードオーナ識別子又はパスワード取得用URL(ユニフォームリソースロケータ)を第1のクライアント端末102に送信する、
 ようにすることができる。
 上述した本発明の第1の態様において、
 パスワード開示部110は、
 第2のクライアント端末103から識別トークン132及びパスワード識別情報135と共に第1のパスワードオーナ識別子を受信し、
 取得したパスワード識別情報135に対応するデータベース121内のレコード122からパスワード133と共に、第2のパスワードオーナ識別子を取得し、
 第1のパスワードオーナ識別子と第2のパスワードオーナ識別子とが一致しているときに限り、取得したパスワード情報133を第2のクライアント端末103に送信する、
 ようにすることができる。
 上述した本発明の第1の態様において、
 データ作成部115は、暗号化パラメータ、パスワード鍵導出パラメータ、鍵変形パラメータ、パスワードオーナID、パスワード取得用URL、パスワード開示期間、及びデータ作成日時の少なくとも1つを含むデータを出力する、
 ようにすることができる。
 上述した本発明の第1の態様において、
 暗号化データ取得部117は、読み取ったデータがパスワードオーナ識別子を含むとき、読み取ったデータからパスワードオーナ識別子を取得し、
 第2の情報送受信部118は、暗号化データ取得部117が取得したパスワードオーナ識別子を第1のパスワードオーナ識別子としてパスワード開示部110に送信する、
 ようにすることができる。
 上述した本発明の第1の態様において、
 暗号化データ取得部117は、読み取ったデータがパスワード取得用URLを含むとき、読み取ったデータからパスワード取得用URLを取得し、
 第2の情報送受信部118は、暗号化データ取得部117が取得したパスワード取得用URLにアクセスしてパスワード開示部110と通信する、
 ようにすることができる。
 上述した本発明の第1の態様において、
 暗号化データ取得部117は、読み取ったデータがパスワード開示期間またはデータ作成日時を含むとき、読み取ったデータからパスワード開示期間またはデータ作成日時を取得し、第2のクライアント端末103のユーザに対してパスワード開示期間またはデータ作成日時を表示するように処理する、
 ようにすることができる。
 上述した本発明の第1の態様において、
 第1のクライアント端末102から識別トークン131とパスワード識別情報135を受信し、
 受信した識別トークン131に対応するユーザ識別子を取得し、
 受信したパスワード識別情報135に対応するデータベース121内のレコード122からパスワード情報133のパスワードオーナ識別子を取得し、
 ユーザ識別子とパスワードオーナ識別子とが一致した時に限り、受信したパスワード識別情報135に対応するデータベース121内のレコード122又はそのレコード122内のパスワード情報133を削除する、
 ようにすることができる。
 上述した本発明の第1の態様において、
 第1のクライアント端末102から識別トークン131とパスワード識別情報135とパスワード開示期間とを受信し、
 受信した識別トークン131に対応するユーザ識別子を取得し、
 受信パスワード識別情報135に対応するデータベース121内のレコード122からパスワード情報133のパスワードオーナ識別子を取得し、
ユーザ識別子とパスワードオーナ識別子とが一致した時に限り、受信したパスワード識別情報135に対応するデータベース121内のレコード122に登録されているパスワード開示期間を受信したパスワード開示期間を用いて変更する、
 ようにすることができる。
 本発明の第2の態様は、上述の本発明の第1の態様におけるデータベース121を具備すると共に、識別トークン発行部104、パスワード供給部105、検証部106、パスワード登録部107、暗号鍵生成部108、暗号鍵第1加工部109、又はパスワード開示部110のいずれかを備えたサーバ装置である。
 本発明の第3の態様は、上述の本発明の第1の態様における第1のクライアント端末102の機能を備える端末装置である。
 本発明の第4の態様は、上述の本発明の第1の態様における第2のクライアント端末103の機能を備える端末装置である。
 上述の本発明の第1乃至第4の態様において、第1のクライアント端末102と第2のクライアント端末103は同一種類のハードウェアの構成要素であっても良く、第1のクライアント端末102が第2のクライアント端末103の機能を兼ね備えてもよく、逆に、第2のクライアント端末103が第1のクライアント端末102の機能を兼ね備えてもよい。これは以後の実施例でも同様である。
 なお、パスワード登録部107は、パスワード情報133とその開示許容範囲を示すパスワード開示許容情報134を、2回に分けて第1のクライアント端末102から受信しても良い。例えば、後述するようにパスワード情報133が第1のクライアント端末102で生成される場合、パスワード登録部107は、1回目はパスワード情報133を受信してパスワード識別情報135を第1のクライアント端末102に送信する。そして、パスワード登録部107は、2回目は、第1のクライアント端末102は識別トークン131とパスワード開示許容情報134に加えて、1回目の送受信で受信したパスワード識別情報135を送付する。パスワード登録部107は、パスワード識別情報135で1回目に登録したパスワード情報133を同定し、パスワード開示許容情報134を当そのパスワード情報133に関連付けて保存する。
 このように、複数のデータをパスワード共有サーバ101のデータベース121に登録する際に、関連付けを示すための情報(この場合はパスワード識別情報135)を介して複数回に分けて登録する事は一般的に行われている。例えば、サーバにユーザのクレジットカード情報とニックネームを登録する際、ニックネームを先に登録した後にクレジットカード情報を登録するような場合である。
 パスワード供給部105がパスワード情報133を供給する際は、何らかのコンピュータ・アルゴリズムに基づいてパスワードを生成しても良いが、ハードウェアが生成した乱数を基にパスワードを生成しても良いし、自然現象の観測によって取得したデータを基礎にパスワードを生成しても良い。また、ユーザの関与が可能である場合はユーザが入力したパスワードであっても良い。ただし、パスワード供給部105がパスワードを生成する方法は、これらに限られるものではない。
 同様に、パスワード入力部に入力されるパスワードは、ユーザが作成したパスワードであっても良いし、何らかのアルゴリズムによって自動的に生成したパスワードであっても良いが、ハードウェアが生成した乱数を基にパスワードを生成しても良いし、自然現象の観測によって取得したデータを基礎にパスワードを生成しても良い。ただし、パスワード入力部に入力されるパスワード133を生成する方法は、これらに限られるものではない。
 暗号鍵生成部108はデータ暗号化用暗号鍵136とデータ復号用暗号鍵137を生成する。暗号方式が対称鍵方式の場合これらは同一である。一方、非対称鍵方式の場合これらは異なる。非対称鍵方式では、暗号鍵生成部108は公開鍵と秘密鍵の二つを生成する。
 パスワード供給部105がパスワード情報133としてパスワードを出力する場合、暗号鍵第1加工部109はパスワード情報133であるパスワードに基づいてパスワード鍵を生成する。ここでは、別の鍵をラップ(暗号化)するためにパスワード鍵を使用する。パスワード鍵生成部は、例えば、鍵導出関数(Key-Derivation Function)と呼ばれる関数を用いて、パスワードからパスワード鍵を生成する。鍵導出関数の一例としてPBKDF2(Password-Based Key-Derivation Function 2)が良く知られている。なお、暗号鍵第1加工部109は、パスワード鍵導出の際、パスワードの他に幾つかのパラメータを使用する事がある。PBKDF2の場合、ソルトと呼ばれる乱数や、内部アルゴリズムの繰り返し回数、使用するハッシュ関数などがパラメータとなり得る。ここでは、このパラメータをパスワード鍵導出パラメータと呼ぶ。
 ここで鍵の生成元について説明する。対称鍵暗号の鍵は一般に乱数を用いて生成する。例えば、32バイト(=256ビット)の乱数は、そのままAESの鍵として利用することができる。或いは、十分大きな(例えば、1kバイト)の乱数を生成し、SHA-256(Secure Hash Algorithm 256)などの一方向性関数をこの乱数に適用し、32バイトのビット列を得て、それをAESの鍵としてもよい。非対称鍵暗号(公開鍵暗号)の鍵の場合も同様である。例えば、楕円曲線暗号では、大きな乱数を生成してそれを秘密鍵とする。次いで、予め定められた方法でこの秘密鍵に対応する公開鍵を計算する。暗号鍵を生成する元となるデータを暗号鍵の生成元と呼ぶ。
 パスワード共有システム100においては、データ暗号化用暗号鍵136とその生成元を同一視する。同様に、データ復号用暗号鍵137とその生成元を同一視する。パスワード共有サーバ101とクライアント端末との間で送受信する暗号鍵は、暗号鍵そのものでも、その暗号鍵の生成元(暗号鍵生成元情報)であってもよい。鍵共有サーバがクライアント端末から第1加工後データ復号用暗号鍵137の代わりにその暗号鍵の生成元を受信した場合、鍵共有サーバが第1加工後データ復号用暗号鍵137としてデータベース121に保存するのは生成元であっても、生成元から生成した暗号鍵であってもよい。クライアント端末は生成元から暗号鍵を生成してデータの暗復号に使用する。
 更に、ここでパスワード情報133がパスワードである場合に、そのパスワードによる暗号鍵の変形について説明する。簡単のため対称鍵暗号方式であるAESの場合について説明するが、非対称鍵暗号でも同様にパスワードによる暗号鍵(秘密鍵と公開鍵)の変形が可能である。対称鍵暗号方式の場合、暗号鍵と復号鍵とは同一であるため、単に暗号鍵と称する。256ビットのデータKをAESの暗号鍵であるとする。今パスワードPWDは64ビットのデータであるとする。Kの後ろにPWDを付け加えた320(=256+64)ビットのデータをK+PWDで表す。なお、「K+PWD」における「+」記号はこの記号の周囲を円で囲った記号が望ましいが、この明細書では表記の簡略化のために「+」記号を用いる。ハッシュ関数であるSHA256を、これに適用した256ビットのデータをSHA256(K+PWD)と表記する。このデータSHA256(K+PWD)を新たに暗号鍵とする事ができる。これがパスワードによる暗号鍵の変形の一例である。K+PWDの代わりに、例えば、K|PWDをハッシュ関数の入力としても良い。ただしK|PWDはKとPWDの先頭を揃えてXORした値とする。使用するハッシュ関数(この場合はSHA256)や、K+PWDを入力とするかK|PWDを入力とするかなど、鍵変形アルゴリズムの選択肢やそのパラメータをここでは鍵変形パラメータと呼ぶ。
 暗号鍵Kの生成元をGKとする。(暗号鍵の生成元については上記を参照のこと。)この場合、例えばK=SHA256(GK)であるが、SHA256(GK+PWD)を暗号鍵として使用する事も可能である。これも又、暗号鍵をパスワードで変形する方法の一例である。
 上述したようにして、本発明の第1の態様において、
 第1加工後データ暗号化用暗号鍵136及び第1加工後データ復号用暗号鍵137の少なくとも一方は、暗号鍵を生成する元となるデータに対応する暗号鍵生成元情報により代替可能である、
 ようにすることができる。
 また、上述した本発明の第1の態様において、
 第1のクライアント端末102が暗号化パラメータ、パスワード鍵導出パラメータ、又は鍵変形パラメータを含むデータ139を出力するとき、暗号化データ取得部117は、読み取ったデータから夫々暗号化パラメータ、パスワード鍵導出パラメータ、又は鍵変形パラメータを取得し、
 データ復号部120は、暗号化データ取得部117が取得した暗号化パラメータを用いて暗号化データ138に対して復号処理を実行し、
 暗号鍵第2加工部119は、暗号化データ取得部117が取得したパスワード鍵導出パラメータを用いて、パスワード開示部110から受信したパスワード情報133であるパスワードに基づいてパスワード鍵を生成し、そのパスワード鍵を用いて第1のクライアント端末102から読み取ったデータ139から取得した加工された第1加工後データ復号用暗号鍵137に対して復号処理を実行する、
 ようにすることができる。
 また、上述した本発明の第1の態様において、
 第1のクライアント端末102が暗号化パラメータ、パスワード鍵導出パラメータ、又は鍵変形パラメータを含むデータ139を出力するとき、暗号化データ取得部117は、読み取ったデータ139から夫々暗号化パラメータ、パスワード鍵導出パラメータ、又は鍵変形パラメータを取得し、
 データ復号部120は、暗号化データ取得部117が取得した暗号化パラメータを用いて暗号化データ138を復号し、
 暗号鍵第2加工部119は、暗号化データ取得部117が取得した鍵変形パラメータを用いて、パスワード開示部110から受信したパスワード情報133であるパスワードで第1のクライアント端末102から読み取ったデータから取得した第1加工後データ復号用暗号鍵137を変形する、
 ようにすることができる。
 本発明の第1の態様におけるパスワード共有システム100において、パスワード供給部105、暗号鍵生成部108、及び暗号鍵第1加工部109を、第1のクライアント端末102、又はパスワード共有サーバ101若しくはそれ以外の他のサーバのどこで実施するかに関して、幾つかの組合せが存在する。パスワード共有サーバ101これを図31に図示する。図31の見方は次に示す通りである。
 図31の組合せ1の役割分担では、第1のクライアント端末102が、暗号鍵生成部108によるデータ暗号化用暗号鍵及びデータ復号用暗号鍵の生成と、パスワード供給部105によるパスワード情報133の供給(自動生成又はユーザ入力)と、パスワード情報133を用いた暗号鍵第1加工部109によるデータ復号用暗号鍵及びデータ暗号化用暗号鍵の加工(ラップ又は変形)による第1加工後データ復号用暗号鍵137及び第1加工後データ暗号化用暗号鍵136の出力を全て行う。第1のクライアント端末102は、パスワード供給部105が生成したパスワード情報133を、パスワード登録部107を具備するサーバ(例えばパスワード共有サーバ101)に送信して共有する。また、第1のクライアント端末は、暗号鍵第1加工部109が出力した第1加工後データ暗号化用暗号鍵136を、自端末内のデータ暗号化部114での暗号化処理のために仕様する。更に、第1のクライアント端末は、暗号鍵第1加工部109が出力した第1加工後データ復号用暗号鍵137を、データ作成部115に送って送信されるデータ139に含ませて第2のクライアント端末103に向けて送信させる。上述のパスワード共有サーバ101と第1のクライアント端末の組合せが、組合せ1の役割分担に当たる。
 図31の組合せ2の役割分担では、前述した本発明の第1の態様において、
 暗号鍵生成部108及び暗号鍵第1加工部109を、第1のクライアント端末102に具備し、
 パスワード供給部105を、サーバ(例えばパスワード共有サーバ101又は他のサーバ)に具備し、
 パスワード供給部105を具備するサーバは、パスワード供給部105が供給したパスワード情報133を、パスワード登録部107を具備するサーバ(例えばパスワード共有サーバ101)及び暗号鍵第1加工部109を具備するサーバに送信し、暗号鍵生成部108が生成したデータ復号用暗号鍵及びデータ暗号化用暗号鍵を、暗号鍵第1加工部109を具備するサーバに送信する。
 パスワード共有サーバ101に暗号鍵を知らせない役割分担は、上記組合せ1と組合せ2だけである。パスワード共有サーバ101に暗号鍵生成部108とパスワード供給部105の両方を具備させる場合は、パスワード共有サーバ101にパスワード情報133と暗号鍵の両方を知られてしまう。セキュリティ上、パスワード共有サーバ101にすべての秘密を提供する事は好ましくない。そのため、組合せ1や組合せ2は、適切な組合せである。
 図31の組合せ1と組合せ2以外の組合せに関して、即ち組合せ3~8について説明する。3~8の6種類の組合せについて、前述したように暗号鍵第1加工部109がデータ復号用暗号鍵を加工する方法として、鍵をラップする場合と、鍵を変形する場合の2種類がある。従って、組合せの総数は6×2=12種類である。組合せ1と2を含めると、組合せの総数は8×2=16種類となる。
 図31の組合せ3では、
 パスワード供給部105及び暗号鍵生成部108を、第1のクライアント端末102に具備し、
 暗号鍵第1加工部109を、サーバ(例えばパスワード共有サーバ101又は他のサーバ)に具備する。
 そして、第1のクライアント端末102は、パスワード供給部105が供給したパスワード情報133を、パスワード登録部107を具備するサーバ(例えばパスワード共有サーバ101)及び暗号鍵第1加工部109を具備するサーバに送信し、暗号鍵生成部108が生成したデータ復号用暗号鍵及びデータ暗号化用暗号鍵を、暗号鍵第1加工部109を具備するサーバに送信する。
 暗号鍵第1加工部109を具備するサーバは、暗号鍵第1加工部109が生成した第1加工後データ復号用暗号鍵137及び第1加工後データ暗号化用暗号鍵136を、第1のクライアント端末101に送信する。
 図31の組合せ4では、
 暗号鍵生成部108を、第1のクライアント端末102に具備し、
 パスワード供給部105及び暗号鍵第1加工部109を、1台のサーバ(例えばパスワード共有サーバ又は他のサーバのいずれか)に共に、又は1台以上のサーバ(例えばパスワード共有サーバ101及び他のサーバ)に分散して具備する。
 そして、第1のクライアント端末102は、暗号鍵生成部108が生成したデータ復号用暗号鍵及びデータ暗号化用暗号鍵を、暗号鍵第1加工部109を具備するサーバに送信する。
 また、パスワード供給部105を具備するサーバは、パスワード供給部105が供給したパスワード情報133を、パスワード登録部107を具備するサーバ(例えばパスワード共有サーバ101)及び暗号鍵第1加工部109を具備するサーバに送信する。
 更に、暗号鍵第1加工部109を具備するサーバは、暗号鍵第1加工部109が生成した第1加工後データ復号用暗号鍵137及び第1加工後データ暗号化用暗号鍵136を、第1のクライアント端末102に送信する。
 図31の組合せ5では、
 パスワード供給部105を、第1のクライアント端末102に具備し、
 暗号鍵生成部108及び暗号鍵第1加工部109を、1台のサーバ(例えばパスワード共有サーバ101又は他のサーバのいずれか)に共に又は1台以上のサーバ(例えばパスワード共有サーバ101及び他のサーバ)に分散して具備される。
 そして、第1のクライアント端末102は、パスワード供給部105が供給したパスワード情報133を、パスワード登録部107を具備するサーバ(例えばパスワード共有サーバ101)及び暗号鍵第1加工部109を具備するサーバに送信し、
 暗号鍵生成部108を具備するサーバは、暗号鍵生成部108が生成したデータ復号用暗号鍵及びデータ暗号化用暗号鍵を、暗号鍵第1加工部109を具備するサーバに送信し、
 暗号鍵第1加工部109を具備するサーバは、暗号鍵第1加工部109が生成した第1加工後データ復号用暗号鍵137及び第1加工後データ暗号化用暗号鍵136を、第1のクライアント端末102に送信する。
 図31の組合せ6では、
 パスワード供給部105及び暗号鍵第1加工部109を、第1のクライアント端末102に具備し、
 暗号鍵生成部108を、サーバ(例えばパスワード共有サーバ101又は他のサーバ)に具備する。
 そして、第1のクライアント端末102は、パスワード供給部105が供給したパスワード情報133を、パスワード登録部107を具備するサーバ(例えばパスワード共有サーバ101)に送信し、
 暗号鍵生成部108を具備するサーバは、暗号鍵生成部108が生成したデータ暗号化用暗号鍵及びデータ復号用暗号鍵を、暗号鍵第1加工部109を具備する第1のクライアント端末102に送信する。
 図31の組合せ7では、
 パスワード供給部105及び暗号鍵生成部108を、1台のサーバ(例えばパスワード共有サーバ101又は他のサーバ)に共に又は1台以上のサーバ(例えばパスワード133及び他のサーバ)に分散して具備し、
 暗号鍵第1加工部109を、第1のクライアント端末102に具備する。
 そして、パスワード供給部105を具備するサーバは、パスワード供給部105が供給したパスワード情報133を、パスワード登録部107を具備するサーバ(例えばパスワード共有サーバ101)及び暗号鍵第1加工部109を具備する第1のクライアント端末102に送信し、
 暗号鍵生成部108を具備するサーバは、暗号鍵生成部108が生成したデータ暗号化用暗号鍵及びデータ復号用暗号鍵を、第1のクライアント端末102に送信する。
 図31の組合せ8では、
 パスワード供給部105、暗号鍵生成部108、及び暗号鍵第1加工部109を、1台のサーバ(例えばパスワード共有サーバ101又は他のサーバのいずれか)に共に又は1台以上のサーバ(例えばパスワード共有サーバ101及び他のサーバ)に分散して具備する。
 そして、パスワード供給部105を具備するサーバは、パスワード供給部105が供給したパスワード情報133を、パスワード登録部107を具備するサーバ(例えばパスワード共有サーバ101)及び暗号鍵第1加工部109を具備するサーバに送信し、
 暗号鍵生成部108を具備するサーバは、暗号鍵生成部108が生成したデータ暗号化用暗号鍵及びデータ復号用暗号鍵を、暗号鍵第1加工部109を具備するサーバに送信し、
 暗号鍵第1加工部109を具備するサーバは、暗号鍵第1加工部109が生成した第1加工後データ復号用暗号鍵137及び第1加工後データ暗号化用暗号鍵136を、第1のクライアント端末102に送信する。
 ここで、検証部106、パスワード登録部107、及びパスワード開示部110は、共にパスワード共有サーバ101に具備されてよく、或いは、パスワード共有サーバ101以外の1台のサーバに共に又は1台以上のサーバに分散して具備されてもよい。
 上述したパスワード共有システムは、方法及びプログラムとして実施してもよい。また、データベース121を具備すると共に、識別トークン発行部104、パスワード供給部105、検証部106、パスワード登録部107、暗号鍵生成部108、暗号鍵第1加工部109、又はパスワード開示部110のいずれかを備えたサーバ装置(パスワード共有サーバ101)、第1のクライアント端末102の機能を備えた端末装置、又は第2のクライアント端末103の機能を備えた端末装置も、本発明の権利範囲である。
 開示した技術によれば、識別トークン、パスワード開示許容情報134、パスワード識別情報135、パスワード情報133、及び複数種類の鍵136、137、138の連携利用により、暗号化対象データを暗号化した暗号化データ138を一層安全に共有するための共有処理技術を実現することができる。
 本発明は、パスワード共有サーバ101の運営者と、暗号化データ138の保管・管理者が分離可能となる事から、下記が成立する。
 パスワード共有サーバ101の運営者と、暗号化データ138の保管・管理者は一般的に異なっており、いずれも単独ではユーザのデータの内容を関知し得ない。
 パスワード共有サーバ101の運営者も暗号化データ138の保管・管理者も、ユーザのデータや個人情報を無断で利用する事はできない。個人情報の無断利用や不正な利用、本人の不利益となる利用は、そもそも不可能である。
 ストレージがパスワード情報133を提供するサービスから分離されるため、ストレージのコストが低下する。
 インターネット上の汎用のストレージやブログなどが暗号化データ138の置き場所として利用可能となる。特定のSNSサービスの為だけにストレージを構築・維持・管理する必要が無いため、ストレージのコストが低下する。
 パスワード共有サーバ101の運営者も、暗号化データ138の保管・管理者も、単独ではユーザの暗号化データ138の内容を関知し得ないため、そもそも検閲に類する行為が不可能である。
 なお、違法なコンテンツ等を削除する場合は、パスワード情報133又は暗号化データ138のいずれかを削除すれば十分である。
 本発明は、受信者が自分宛のデータを暗号化するための最新の公開鍵を送信者に提供する手間を不要とする。
 送信者が受信者ごとに最新の公開鍵を見出す手間を不要とする。
 更に、認証されたメールアドレスで受信者を特定する事で、安全性の高いデータ共有を実現する。関係者で共有したパスワード情報に安全性を依存する事がない。
 更に、本発明は次のような効用を有している。送信者のID(識別子)(鍵オーナID)を検証するオプションを用いる事により、送信者の特定が可能である。
 送信者がパスワード情報の開示期間を限定する事が可能である。
 他の課題、特徴及び利点は、図面及び特許請求の範囲とともに取り上げられる際に、以下に記載される発明を実施するための形態を読むことにより明らかになるであろう。
図1Aは第1の態様のパスワード共有システムの機能構成を示すブロック図である。 図1Bは第1の態様のパスワード共有システムの機能構成の動作シーケンスを示すシーケンス図である。 図1Cは加工(ラップ又は変形)の処理の説明図である。 図1Dは一実施の形態のパスワード共有システムのネットワーク構成を示すブロック図である。 図2は一実施の形態におけるパスワード共有サーバの構成を示すブロック図である。 図3は一実施の形態におけるクライアント端末の構成を示すブロック図である。 図4は一実施の形態における第1のパスワード共有サーバの構成を示すブロック図である。 図5は一実施の形態における第1のパスワード共有サーバの詳細構成を示すブロック図である。 図6は一実施の形態における第1のパスワード共有サーバの詳細構成を示すブロック図である。 図7は一実施の形態における第1のパスワード共有サーバの詳細構成を示すブロック図である。 図8は一実施の形態における第1のパスワード共有サーバを説明するための図である。 図9は一実施の形態における第1のパスワード共有サーバを説明するための図である。 図10は一実施の形態における第1のパスワード共有サーバを説明するための図である。 図11Aは一実施の形態における第1のパスワード共有サーバの詳細構成を示すブロック図である。 図11Bは一実施の形態における第1のパスワード共有サーバの処理を説明するための図である。 図12Aは一実施の形態における第1のパスワード共有サーバの詳細構成を示すブロック図である。 図12Bは一実施の形態における第1のパスワード共有サーバの処理を説明するための図である。 図12Cは一実施の形態における第1のパスワード共有サーバの処理を説明するための図である。 図13Aは一実施の形態における第1のパスワード共有サーバの詳細構成であるパスワード削除処理部を示すブロック図である。 図13Bは一実施の形態におけるパスワード削除処理部の処理を説明するための図である。 図14Aは一実施の形態における第1のパスワード共有サーバの詳細構成であるパスワード開示期間変更処理部を示すブロック図である。 図14Bは一実施の形態におけるパスワード開示期間変更処理部の処理を説明するための図である。 図14Cは一実施の形態における第1のパスワード共有サーバの詳細構成であるパスワード開示許容範囲変更処理部を示すブロック図である。 図14Dは一実施の形態におけるパスワード開示許容範囲変更処理部の処理を説明するための図である。 図15は一実施の形態における第2のパスワード共有サーバの構成を示すブロック図である。 図16Aは一実施の形態における第2のパスワード共有サーバの詳細構成を示すブロック図である。 図16Bは一実施の形態における第2のパスワード共有サーバの処理を説明するための図である。 図17Aは組合せ3の役割分担で鍵ラップの場合のパスワード登録処理部の処理例を説明するための図である。 図17Bは組合せ3の役割分担で鍵ラップの場合のパスワード登録クライアント端末のブロック図である。 図17Cは組合せ3の役割分担で鍵ラップの場合のパスワード登録クライアント端末の動作を説明するための図である。 図17Dは組合せ3の役割分担で鍵変形の場合のパスワード登録処理部の処理例を説明するための図である。 図17Eは組合せ3の役割分担で鍵変形の場合のパスワード登録クライアント端末の動作を説明するための図である。 図17Fは組合せ4の役割分担で鍵ラップの場合のパスワード登録処理部の処理例を説明するための図である。 図17Gは組合せ4の役割分担で鍵ラップの場合のパスワード登録クライアント端末のブロック図である。 図17Hは組合せ4の役割分担で鍵ラップの場合のパスワード登録クライアント端末の動作を説明するための図である。 図17Iは組合せ4の役割分担で鍵変形の場合のパスワード登録処理部の処理例を説明するための図である。 図17Jは組合せ4の役割分担で鍵変形の場合のパスワード登録クライアント端末の動作を説明するための図である。 図17Kは組合せ5の役割分担で鍵ラップの場合のパスワード登録処理部の処理例を説明するための図である。 図17Lは組合せ5の役割分担で鍵ラップの場合のパスワード登録クライアント端末のブロック図である。 図17Mは組合せ5の役割分担で鍵ラップの場合のパスワード登録クライアント端末の動作を説明するための図である。 図17Nは組合せ5の役割分担で鍵変形の場合のパスワード登録処理部の処理例を説明するための図である。 図17Oは組合せ5の役割分担で鍵変形の場合のパスワード登録クライアント端末の動作を説明するための図である。 図17Pは組合せ6の役割分担で鍵ラップの場合のパスワード登録処理部の処理例を説明するための図である。 図17Qは組合せ6の役割分担で鍵ラップの場合のパスワード登録クライアント端末のブロック図である。 図17Rは組合せ6の役割分担で鍵ラップの場合のパスワード登録クライアント端末の動作を説明するための図である。 図17Sは組合せ6の役割分担で鍵変形の場合のパスワード登録クライアント端末のブロック図である。 図17Tは組合せ6の役割分担で鍵変形の場合のパスワード登録クライアント端末の動作を説明するための図である。 図17Uは組合せ7の役割分担で鍵ラップの場合のパスワード登録処理部の処理例を説明するための図である。 図17Vは組合せ7の役割分担で鍵ラップの場合のパスワード登録クライアント端末のブロック図である。 図17Wは組合せ7の役割分担で鍵ラップの場合のパスワード登録クライアント端末の動作を説明するための図である。 図17Xは組合せ7の役割分担で鍵変形の場合のパスワード登録クライアント端末のブロック図である。 図17Yは組合せ7の役割分担で鍵変形の場合のパスワード登録クライアント端末の動作を説明するための図である。 図17Zは組合せ8の役割分担で鍵ラップの場合のパスワード登録処理部の処理例を説明するための図である。 図18Aは組合せ8の役割分担で鍵ラップの場合のパスワード登録クライアント端末のブロック図である。 図18Bは組合せ8の役割分担で鍵ラップの場合のパスワード登録クライアント端末の動作を説明するための図である。 図18Cは組合せ8の役割分担で鍵変形の場合のパスワード登録処理部の処理例を説明するための図である。 図18Dは組合せ8の役割分担で鍵変形の場合のパスワード登録クライアント端末の動作を説明するための図である。 図19は一実施の形態におけるパスワード登録クライアント端末の構成を示すブロック図である。 図20は一実施の形態における第1のパスワード登録クライアント端末の詳細構成を示すブロック図である。 図21は一実施の形態における第1のパスワード登録クライアント端末の詳細構成を示すブロック図である。 図22Aは一実施の形態における第1のパスワード登録クライアント端末の詳細構成を示すブロック図である。 図22Bは一実施の形態における第1のパスワード登録クライアント端末の処理を説明するための図である。 図23は一実施の形態における第1のパスワード登録クライアント端末の処理を説明するための図である。 図24Aは一実施の形態における第2のパスワード登録クライアント端末の詳細構成を示すブロック図である。 図24Bは一実施の形態における第2のパスワード登録クライアント端末の処理を説明するための図である。 図25Aは一実施の形態における第3のパスワード登録クライアント端末の詳細構成を示すブロック図である。 図25Bは一実施の形態における第3のパスワード登録クライアント端末の処理を説明するための図である。 図25Cは一実施の形態における第3のパスワード登録クライアント端末の処理を説明するための図である。 図26Aは一実施の形態における第4のパスワード登録クライアント端末の詳細構成を示すブロック図である。 図26Bは一実施の形態における第4のパスワード登録クライアント端末の処理を説明するための図である。 図27は一実施の形態におけるパスワード取得クライアント端末の構成を示すブロック図である。 図28Aは一実施の形態における第1のパスワード取得クライアント端末の詳細構成を示すブロック図である。 図28Bは一実施の形態における第1のパスワード取得クライアント端末の処理を説明するための図である。 図29Aは一実施の形態における第1のパスワード取得クライアント端末の詳細構成を示すブロック図である。 図29Bは一実施の形態における第1のパスワード取得クライアント端末の処理を説明するための図である。 図30Aは一実施の形態における第2のパスワード取得クライアント端末の詳細構成を示すブロック図である。 図30Bは一実施の形態における第2のパスワード取得クライアント端末の処理を説明するための図である。 図31はパスワード共有システムの各機能部の実施場所の組合せを説明する図である。 図32はユーザ登録処理部21の処理を説明するための図である。 図33はユーザ登録処理部31の処理を説明するための図である。 図34はログイン処理部22の処理を説明するための図である。 図35はログイン処理部32の処理を説明するための図である。
 以下、添付図面を参照して更に詳細に説明する。図面には好ましい実施形態が示されている。しかし、多くの異なる形態で実施されることが可能であり、本明細書に記載される実施形態に限定されない。
 [パスワード共有システム]
 一実施の形態におけるシステム構成を示す図1Dを参照すると、パスワード共有システム1は、パスワード共有サーバ2、複数のクライアント端末(ユーザ端末と記載することもある)3、及び通信ネットワーク4を備える。このパスワード共有システム1においては、識別トークン、パスワード開示許容情報、パスワード識別情報、パスワード、及び複数種類の鍵の連携利用により、暗号化対象データを暗号化した暗号化データを一層安全に共有するためのパスワード共有処理技術を実現する。パスワード共有システム1は、図1Aのパスワード共有システム100に対応する。パスワード共有サーバ2は、図1Aのパスワード共有サーバ101に対応する。クライアント端末3は、図1Aの第1のクライアント端末102又は第2のクライアント端末103に対応する。
 通信ネットワーク4は、無線及び有線のデータ通信を可能し、インターネット、ローカルエリアネットワーク、VPN(Virtual Private Network)などのIP(Internet Protocol)網などから構成され、パスワード共有サーバ2及び複数のクライアント端末3(3A,3B)をそれぞれ収容する。なお、以下の説明では、不明確にならない限り通信ネットワーク4の介在を省略する。
 このパスワード共有システム1においては、パスワード共有サーバ2は、パスワード共有サービス提供業者によって運用及び管理されるインターネット上のサーバであり、仮想サーバ提供業者やクラウド事業者の設備で稼働している。そして、後に詳述するパスワード共有処理を実行する。パスワード共有サーバ2は、第1のパスワード共有サーバ2A、第2のパスワード共有サーバ2B、又は第3のパスワード共有サーバ2C(図示せず)として実施される。
 詳述すると、このパスワード共有サーバ2は、複数のクライアント端末3とのデータ通信機能を有し、図2に例示するように、ハードウェア構成要素を含んでいる。つまり、パスワード共有サーバ2は、プロセッサとしてのCPU(Central Processing Unit)201と、作業用メモリとしてのRAM(Random Access Memory)202と、立ち上げのためのブートプログラムを格納したROM(Read Only Memory)203とを備える。
 パスワード共有サーバ2は、OS(Operating System)、アプリケーションプログラム、及び各種情報(データを含む)を書換え可能に格納する不揮発性のフラッシュメモリ204と、通信制御部205と、NIC(Network Interface Card)などの通信インタフェース(IF)部206などとを更に備える。
 また、パスワード共有サーバ2は、後に詳述する機能構成要素として、ユーザ登録処理部(第1の処理部)21、ログイン処理部22、ユーザ関係保持処理部23、パスワード登録処理部(第2の処理部)24、パスワード開示処理部(第3の処理部)25、パスワード削除処理部26、及びパスワード開示期間変更処理部27などを備える。
 一例であるが、パスワード共有サーバ2において、これらの機能構成要素を論理的に実現するには、フラッシュメモリ204にパスワード共有処理プログラムをアプリケーションプログラムとしてインストールしておく。そして、パスワード共有サーバ2においては、操作者(管理者)による指示又は電源投入を契機に、プロセッサ(CPU)201がこの処理プログラムをRAM202に常時展開して実行する。パスワード共有処理プログラムは、上述したハードウェア構成要素と連携して、パスワード共有処理を遂行する。
 このパスワード共有システム1においては、各クライアント端末3は、スマートフォンを含む携帯電話端末、及びパーソナルコンピュータ及びタブレット端末を含むコンピュータ端末などの無線及び有線のデータ通信機能を有するユーザ端末の単体又は複合体であり、電話番号、電子メールアドレス及び/又はIPアドレスを割り当てられている。
 各クライアント端末3は、パスワード登録機能を有するクライアント端末3A(図1Aの第1のクライアント端末102に対応)又はパスワード取得機能を有するクライアント端末3B(図1Aの第2のクライアント端末103に対応)として実施される。1個のクライアント端末3がパスワード登録機能及びパスワード取得機能を有する構成であってもよい。
 詳述すると、パスワード共有システム1における複数のクライアント端末3(3A,3B)は、図3に例示するように、ハードウェア構成要素を含んでいる。つまり、クライアント端末3は、プロセッサとしてのCPU300と、作業用メモリとしてのRAM301と、立ち上げのためのブートプログラムを格納したROM302とを備える。
 クライアント端末3は、OS、アプリケーションプログラム、及び各種情報(データを含む)を書換え可能に格納する不揮発性のフラッシュメモリ303と、無線及び有線のデータ通信機能を有する通信制御部304と、NICなどの通信インタフェース(IF)部305とを更に備える。
 また、クライアント端末3は、ディスプレイ(LCD:Liquid Crystal Display)を含む表示部306と、表示制御部307と、テンキー、各種機能ボタン(キー)、ポインティング部、及びカーソル送り部などを含む情報入力・指定部308などとを更に備える。
 各クライアント端末3は、後に詳述する機能構成要素として、ユーザ登録処理部31、ログイン処理部32、パスワード登録処理部33、データ作成処理部34、パスワード取得処理部35、及びデータ復号処理部36などを実施形態(実施例)に応じて選択的に備える。
 一例であるが、各クライアント端末3において、これらの機能構成要素を論理的に実現するには、フラッシュメモリ303にパスワード共有処理の端末制御プログラムをアプリケーションプログラムとしてインストールする。そして、クライアント端末3においては、ユーザによる指示又は電源投入を契機に、プロセッサ(CPU)300が端末制御プログラムをRAM301に展開して実行する。端末制御プログラムは、上述したハードウェア構成要素と連携して、パスワード共有処理を遂行する。
 [第1のパスワード共有サーバの詳細]
 パスワード共有システム1における第1のパスワード共有サーバ2Aの詳細について、図1D、図4及び関連図を併せ参照して説明する。
 図4を参照すると、第1のパスワード共有サーバ2Aは、機能構成要素として、ユーザ登録処理部21、ログイン処理部22、ユーザ関係保持処理部23、パスワード登録処理部24、パスワード開示処理部25、パスワード削除処理部26、及びパスワード開示期間変更処理部27を備える。
 ここで、第1のパスワード共有サーバ2Aの基本的特徴要素は、ユーザ登録処理部(図1Aの識別トークン発行部104に対応)21、パスワード登録処理部(図1Aのパスワード登録部107に対応)24、及びパスワード開示処理部(図1Aのパスワード開示部110に対応)25である。
 つまり、第1のパスワード共有サーバ2Aは、第1ユーザ利用のパスワード登録クライアント端末3A(図1Aの第1のクライアント端末102に対応)及び第2ユーザ利用のパスワード取得クライアント端末3B(図1Aの第2のクライアント端末103に対応)を含むパスワード共有システム1に適用可能なパスワード共有サーバ(図1Aのパスワード共有サーバ101に対応)であって、認証済みユーザであることを示す識別トークン(証拠)を発行するユーザ登録処理部21を含む。識別トークンについては、後述する。
 また、第1のパスワード共有サーバ2Aは、ユーザ登録処理部21により発行された第1ユーザ対応の識別トークン(図1Aの識別トークン131に対応)と、データ復号用暗号パスワード(図1Aのパスワード情報133に対応)と、パスワードの開示許容範囲を指定するパスワード開示許容情報(図1Aのパスワード開示許容情報134に対応)とを第1クライアント端末3Aから受信し、パスワード及びパスワード開示許容情報をデータベースに格納し、識別トークンを検証して正しい識別トークン(第1ユーザ対応の識別トークン)であることが確認できた場合に限り、格納したパスワード及びパスワード開示許容情報をデータベース(図1Aのデータベース121に対応)上で特定するパスワード識別情報(パスワードID)(図1Aのパスワード識別情報135に対応)を第1クライアント端末3Aに送信するパスワード登録処理部24を含む。
 なお、パスワードは前記第1ユーザが作成したものであっても、プログラムによって自動的に生成されたものであっても良いが、パスワード生成の方法はこれらに限られるものではない。この実施形態では、図1Aのパスワード供給部105に対応する機能が、第1クライアント端末3A(図1Aの第1のクライアント端末102に対応)内に具備される。
 クライアントからサーバへの識別トークンの送信はクッキーを用いても良い。この場合、サーバは識別トークンを予めクッキーとしてクライアント端末に送付しているものとする。
 更に、第1のパスワード共有サーバ2Aは、ユーザ登録処理部21により発行された第2ユーザ対応の識別トークン(図1Aの識別トークン132に対応)と、第1クライアント端末3Aから出力されたデータ(図1Aのデータ139に対応)を読み取ることにより取得されるパスワード登録処理部24が送信したパスワードIDとを第2クライアント端末3Bから受信し、第2ユーザ対応の識別トークンにより特定する第2ユーザの情報を取得し、第2クライアント端末3Bから受信したパスワードIDにより特定するパスワード(図1Aのデータベース121内のレコード122に格納されているパスワード情報133に対応)及びパスワード開示許容情報(同じく図1Aのレコード122に格納されているパスワード開示許容情報134に対応)をデータベース(図1Aのデータベース121に対応)から取得し、データベースから取得したパスワード開示許容情報により指定されるパスワード開示許容範囲に第2ユーザが含まれていることを確認できた場合に限り、パスワードIDにより特定するパスワードを第2クライアント端末3Bに送信するパスワード開示処理部(第3の処理部)25を含む。
 第1のパスワード共有サーバ2Aは次に示す各態様を採ることが可能である。なお、[態様1]から[態様4]は後述する第2のパスワード共有サーバ2B及び第3のパスワード共有サーバ2Cにおいても適用可能である。
 [態様1]第1のパスワード共有サーバ2Aにおいて、パスワード開示許容情報は、第1のパスワード共有サーバ2Aに予め登録されているユーザ間の関係、第1のパスワード共有サーバ2Aに予め登録されているユーザのグループの指定、及びメールアドレスのリストの少なくとも1つを含む。メールアドレスのリストについては、クライアント端末3Aが、パスワード開示許容情報としてメールアドレスのリストを送付するものでも良い。
 [態様2]第1のパスワード共有サーバ2Aにおいて、パスワード登録処理部24は、第1クライアント端末3Aから識別トークンと共にパスワード開示期間を受信し、パスワード開示期間をデータベースに保存し、
 パスワード開示処理部25は、受信したパスワードIDが特定するパスワードと共にパスワード開示期間をデータベースから取得し、現在時刻がパスワード開示期間に含まれているとき、パスワードIDにより特定するパスワードを第2クライアント端末3Bに送信する。
 [態様3]第1のパスワード共有サーバ2Aにおいて、パスワード登録処理部24は、パスワードオーナID(パスワードオーナ識別情報)又はパスワード取得用URLを第1クライアント端末3Aに送信する。
 [態様4]第1のパスワード共有サーバ2Aにおいて、パスワード開示処理部25は、第2クライアント端末3Bから識別トークン及びパスワードIDと共に第1のパスワードオーナIDを受信し、パスワードIDにより特定するパスワードと共に第2のパスワードオーナIDをデータベースから取得し、第1のパスワードオーナIDと第2のパスワードオーナIDとが一致しているとき、パスワードIDにより特定するパスワードを第2クライアント端末3Bに送信する。
 続いて、パスワード共有システム1における第1のパスワード共有サーバ2Aについて、図1、図4及び関連図を併せ参照して更に詳細に説明する。
 図4を参照すると、第1のパスワード共有サーバ2Aを構成するユーザ登録処理部21、ログイン処理部22、ユーザ関係保持処理部23、パスワード登録処理部24、パスワード開示処理部25、パスワード削除処理部26、及びパスワード開示期間変更処理部27は、後に詳述するように、細部構成要素の一部を共有する。
 また、図4に例示するように、第1のパスワード共有サーバ2Aはパスワード登録クライアント端末3A及びパスワード取得クライアント端末3Bと下記各種データa~nを送受信する。なお、下記に示す「*」印が付いたデータはオプションデータであり、使用しない実施例もある。
 [データa]仮登録時:メールアドレス、パスワード 本登録時:登録用トークン、メールアドレス、パスワード
 [データb]仮登録時:登録用トークン、登録用URL 本登録時:識別トークン
 [データc]メールアドレス、パスワード
 [データd]識別トークン
 [データe]識別トークン、パスワード、パスワード開示許容情報、*パスワード開示期間
 [データf]パスワードID、*パスワードオーナID、*パスワード取得用URL
 [データg]識別トークン、パスワードID、*パスワードオーナID
 [データh]パスワード
 [データi]識別トークン、パスワードID
 [データj]*結果:成功又は失敗
 [データk]識別トークン、パスワードID、パスワード開示期間
 [データl]*結果:成功又は失敗
 [データm]識別トークン、パスワードID、パスワード開示許容情報
 [データn]*結果:成功又は失敗
 ここで、データ(暗号化対象データ)を暗号化してパスワードを登録するユーザがパスワード登録処理部24を利用し、データ(暗号化データ)を復号するためにパスワードの開示を要求するユーザがパスワード開示処理部25を利用することになる。これらのユーザは、同一ユーザであってもよいが、一般には別であるため、パスワード登録クライアント端末3A及びパスワード取得クライアント端末3Bを図示している。
 本明細書にいう「メールアドレス」は、一般に通信において受信ユーザを特定するID(識別情報)を指す。メールアドレスの他、例えば、電話番号でもよい。通信で受信ユーザを特定するIDとして使用できるものであれば、SNSのID(例えば、LINE ID、「LINE」はLINE株式会社の登録商標)やハンドルネーム等でもよい。

 図5を参照すると、第1のパスワード共有サーバ2Aにおけるユーザ登録処理部21は、細部構成要素として、メールアドレス管理部21a、ユーザデータベース21b、Webサーバ(ここでは、Webサーバ機能部)21c、及びメール返信部21dを含むように構成可能である。

 このユーザ登録処理部21における処理は、各種インターネットサービスで幾つかの方法が実施されている。ここでは、その一例を述べる。図5にユーザ登録処理部21の構成を示す。また、図32にその動作を示す。
 ユーザ登録処理部21においては、メールアドレス管理部21a、ユーザデータベース21b、Webサーバ21c、及びメール返信部21dが協働することにより、ユーザ利用のメールアドレス及びパスワードを仮登録し、ユーザがメールアドレスの所有者である事を確認して本登録する。ユーザは、本登録が完了するまで、第1のパスワード共有サーバ2Aのサービスを利用する事はできない。後述のように、このサーバの各種サービスを利用するためには、ユーザ登録処理部21が生成した識別トークンが必要である。
 ユーザ登録処理部21においては、メール返信部21dは、ユーザが仮登録したメールアドレスが当該ユーザのものである事を確認するために、登録されたメールアドレスに登録用トークンをメール送信する。登録用トークンは可読な文字列として送付される。登録用トークンは登録用URL(Uniform Resource Locator)のクエリパラメータとして付与され、メールを受信したユーザが登録用URLをクリックした場合にWebサーバ21cがクエリパラメータとして登録用トークンを取得できる。登録用URLは、ユーザがパスワード登録クライアント端末3AからWebサーバ21cにアクセスするためのURLである。
 登録用トークンは、メールアドレス管理部21aが生成した仮登録ユーザに固有の情報を含んでいる。それは、ユーザデータベース21bに仮登録した当該ユーザのIDなどである。メールアドレス管理部21aは、登録用トークンによりユーザデータベース21bを検索することで、仮登録ユーザのメールアドレス及びパスワードを取得できる。
 メールを受信して第1のパスワード共有サーバ2Aにアクセスして来る仮登録ユーザに、Webサーバ21cはメールアドレス及びパスワードの入力を求める。これにより、メールアドレス管理部21aは、メール受信者が仮登録を行ったユーザである事を確認する。メールアドレス管理部21aは、ユーザが入力したメールアドレス及びパスワードが仮登録ユーザのメールアドレス及びパスワードに一致する事をもって、ユーザデータベース21bに当該ユーザを本登録する。
 本登録後、メールアドレス管理部21aは当該登録ユーザのための識別トークンを生成し、Webサーバ21cがパスワード登録クライアント端末3Aに当該識別トークンを送付する。識別トークンはユーザ登録用トークンとは異なるものである。識別トークンはユーザに固有の情報、例えば、ユーザデータベース21b上の当該ユーザのIDなどを含み、識別トークンによりユーザを特定する事が可能である。
 なお、Webサーバ21cは識別トークンをクライアント端末3Aにクッキーとして送信しても良い。
 対応するクライアント端末3Aはユーザ登録処理部31を具備している。その構成を図20に示す。ユーザ登録処理部31は、他の処理部と情報送受信部54や識別トークン保存部51を共有している。ユーザ登録処理部31の動作を図33に示す。登録用URLにはパスワード共有サーバ2Aのユーザ登録処理部21のアドレスが記載されている。
 図6を参照すると、第1のパスワード共有サーバ2Aにおけるログイン処理部22は、細部構成要素として、メールアドレス管理部21a、ユーザデータベース21b、及びWebサーバ21cを含むように構成可能である。これらの構成要素はユーザ登録処理部21と共有されている。
 このログイン処理部22における処理は、各種インターネットサービスで幾つかの方法が実施されている。ここでは、その一例を述べる。図6にログイン処理部22の構成を示す。また、図34にその動作を示す。
 ログイン処理部22においては、メールアドレス管理部21a、ユーザデータベース21b、及びWebサーバ21cが協働することにより、本登録されたユーザに対して識別トークンを再発行する。これは有効期限が設定される識別トークンに対して必要な手続きである。つまり、ログイン処理部22は、登録済みユーザに対して識別トークンを発行し、識別トークンが有効期限に達した場合、ユーザに新たな識別トークンを発行する機能を有する。また、ユーザが複数のパスワード登録クライアント端末3Aから第1のパスワード共有サーバ2Aを利用する場合、ユーザが使用する各パスワード登録クライアント端末3Aに識別トークンを保存する事で利便性を向上できる。
 対応するクライアント端末3Aはログイン処理部32を具備している。その構成を図21に示す。ログイン処理部32は、他の処理部と情報送受信部54や識別トークン保存部51を共有している。ログイン処理部32の動作を図35に示す。
 識別トークンはメールアドレスを認証した証明(証拠)である。メールアドレスの認証とは、システム(サーバ)にメールアドレスを仮登録したユーザがメールアドレス宛メールを受信した事を、システムが確認できた事を指す。一般にメールアドレスの認証を他のシステムに提供する機能が存在する。例えば、OAuthという仕組みはその機能を提供する。第1のパスワード共有サーバ2Aは、このOAuthの仕組みを利用することにより、メールアドレスの認証に基づく識別トークンを発行してもよい。
 図7を参照すると、第1のパスワード共有サーバ2Aにおけるユーザ関係保持処理部23は、細部構成要素として、問合処理部23a及びユーザ関係データベース23bを含むように構成可能である。
 このユーザ関係保持処理部23の処理においては、パスワードを第1のパスワード共有サーバ2Aに登録するユーザは、パスワード登録クライアント端末3Aから自分と他のユーザとの関係をユーザ関係データベース23bに予め登録しておく。問合処理部23aは、ユーザU、ユーザu、ユーザ間の関係Rについて、パスワード開示処理部25からの問合せ/質問[U,R,u]を受けて、回答[yes(肯定判定)]又は[no(否定判定)]を返す。
 ユーザ関係保持処理部23において処理されるユーザは、一例であるが、ユーザ利用のメールアドレスで表現される。ユーザ間の関係Rは、例えば「家族」、「親友」、「友人」、「友人の友人」、及び「その他」のいずれかである。
 このユーザ間の関係Rは、ユーザU及びユーザuが所属するグループの指定であってもよい。この場合、ユーザ関係保持処理部23は、ユーザU及びユーザuがユーザ間の関係Rというグループに所属するときには[yes]、さもなければ[no]を回答する。ユーザ間の関係Rとして複数のグループを指定する事もできる。この場合、ユーザ関係保持処理部23は、ユーザU及びユーザuがユーザ間の関係Rに含まれるグループのいずれかに同時に所属するときには[yes]、さもなければ[no]を回答する。更に、ユーザ間の関係の指定としてTwitter(米国「トゥイッター インコーポレイテッド」社の登録商標)などで用いられている「フォローする/フォローされる」を利用する事も可能である。
 ユーザ関係保持処理部23におけるユーザ関係データベース23bは、ユーザUに関して図8に例示するリストを保存している。このリストはユーザUのユーザ関係表である。ユーザUのユーザ関係表はユーザUによってユーザ関係保持処理部23におけるユーザ関係データベース23bに予め登録される。なお、ユーザ間の関係Rには、「家族」>「親友」>「友人」>「友人の友人」>「その他」の順序関係があるものとする。
 問合処理部23aは、問合せ[U,友人,f20]を受けたとき、この問合せを「Uとf20は友人か?」と解釈する。ユーザ関係表によると、Uとf20とは親友であり、親友は友人より大きい順序関係である。したがって、問合処理部23aによるこの問合せに対する回答は[yes]である。
 ユーザ間の関係Rとして上記「フォローする/フォローされる」を用いる場合、ユーザ関係保持処理部23は各ユーザUについて図9に例示するユーザ関係表を保存する。このユーザ関係表において、「相互フォローのユーザ」は、「Uがフォローするユーザ」の集合と、「Uをフォローするユーザ」の集合との積集合である。「Uがフォローするユーザ」の集合からも、「Uをフォローするユーザ」の集合からも、上記積集合(相互フォローのユーザ集合)を除いているものとする。また、ユーザ間の関係Rには、「相互フォローするユーザ」>「Uがフォローするユーザ」>「Uをフォローするユーザ」>「無関係のユーザ」の順序関係があるものとする。
 この例の場合、ユーザ関係保持処理部23においては、問合処理部23aは問合せ[U,相互フォロー,U2]を受け付ける。問合処理部23aはこの問合せを「U2はUと相互フォローの関係にあるユーザか?」と解釈する。図9に示すユーザ関係表によると、U2はUをフォローしているが、Uにフォローされていない。相互フォローは単にフォローされているより大きい順序関係である。即ち、単にUをフォローしているユーザは相互フォローの関係にはない。したがって、問合処理部23aによるこの問合せに対する回答は[no]である。
 ユーザ関係保持処理部23におけるユーザ関係データベース23bはユーザUについて図10に例示するグループのリストを保存してもよい。ユーザは、例えば、パスワード登録クライアント端末3Aからこのリストをユーザ関係データベース23bに予め登録する。
 この例の場合、ユーザ関係保持処理部23においては、問合処理部23aは問合せ[u,{G1,G2,・・・,GN},f]を受け付ける。問合処理部23aはこの問合せを「uのグループG1~GNの中にfを含むグループはあるか?」と解釈する。問合処理部23aはユーザ関係データベース23bにおける図10に示すグループのリストに基づいて、ユーザuのグループG1~GNのメンバーの中にユーザfが含まれるか調べる。そして、問合処理部23aはユーザfが含まれれば[yes]、さもなければ[no]を回答する。
 図11Aを参照すると、第1のパスワード共有サーバ2Aにおけるパスワード登録処理部24は、細部構成要素として、メールアドレス管理部21a、ユーザデータベース21b、Webサーバ21c、パスワード登録部24a、及びパスワードデータベース24bを含むように構成可能である。構成要素のメールアドレス管理部21a、ユーザデータベース21b及びWebサーバ21cは他の処理部と共有されている。
 このパスワード登録処理部24の処理においては、パスワード登録部24aは、Webサーバ21cを介してパスワード登録クライアント端末3Aから識別トークン、パスワード、及びパスワード開示許容情報を受け取る。パスワード登録部24aは、メールアドレス管理部21a及びユーザデータベース21bと協働することにより、識別トークンを検証して、ユーザ登録処理部21に本登録されたユーザである事を確認する。
 パスワード登録部24aは、メールアドレス管理部21a及びユーザデータベース21bと協働することにより、当該ユーザのメールアドレスを取得して、当該メールアドレスをパスワード及びパスワード開示許容情報と共にパスワードデータベース24bに登録する。パスワードデータベース24bは登録したこれらの情報を特定するためのパスワード識別情報(パスワードID)を生成してパスワード登録部24aに返す。パスワードを登録したユーザを当該パスワードのパスワードオーナと呼ぶ。
 パスワード登録クライアント端末3Aがパスワード登録処理部24に送る識別トークンは、ここではユーザ登録処理部21又はログイン処理部22が生成したものである。パスワード登録クライアント端末3Aは、第1のパスワード共有サーバ2Aに本登録されたユーザである事を示すために当該識別トークンを送付する。
 パスワード登録処理部24は、識別トークン、パスワード、パスワード開示許容情報に加えて、パスワード登録クライアント端末3Aからパスワード開示期間を受け取ってもよい。パスワード開示期間は、具体的には、パスワードの開示を開始する時刻であるパスワード開示開始時刻、及びパスワードの開示を終了する時刻であるパスワード開示終了時刻である。パスワード開示開始時刻が有効である場合、後述のパスワード開示処理部25はパスワード開示開始時刻より前に暗号パスワードをパスワード取得クライアント端末3Bに送らない。また、パスワード開示終了時刻が有効である場合、パスワード開示処理部25はパスワード開示終了時刻以降に暗号パスワードをパスワード取得クライアント端末3Bに送らない。
 パスワード登録部24aは、パスワード、パスワード開示許容情報、及びメールアドレスに加えて、パスワードオーナIDをパスワードデータベース24bに保存する。パスワードオーナIDを保存するのは、パスワード開示の際にパスワードオーナの確認を行うためである。パスワードオーナIDはユーザデータベース21b上でパスワードオーナを特定するための情報である。例えば、ユーザデータベース21bにおけるパスワードオーナのユーザIDをパスワードオーナIDとして使用する事ができる。或いは、パスワードオーナのメールアドレスをパスワードオーナIDとして使用する事も可能である。パスワードオーナのメールアドレスを用いてユーザデータベース21bを検索する事により、パスワードオーナを特定する事ができるからである。
 ここで暗号鍵について説明する。AES(Advanced Encryption Standard)など対称鍵暗号(共通鍵暗号)の場合、データ暗号化用の鍵とデータ復号用の鍵とは同一である。他方、楕円曲線暗号など公開鍵暗号の場合、データ暗号化用の鍵とデータ復号用の鍵とは異なる。公開鍵暗号の秘密鍵をデータ暗号化用、公開鍵をデータ復号用とする事ができるが、逆であってもよい。即ち、公開鍵をデータ暗号化用、秘密鍵をデータ復号用に利用する事も可能である。
 公開鍵暗号により大量のデータを暗号化する場合は、対称鍵暗号を挟む事が一般的である。例えば、対称鍵kを用いてデータ(暗号化対象データ)Dを暗号化して暗号化データk[D]を得る。更に、対称鍵kを公開鍵Kpで暗号化してKp[k]を作る。このとき、秘密鍵Ksをデータ復号用の暗号鍵とみなすことができる。ここでKsは公開鍵Kpとペアになる秘密鍵である。暗号化データk[D]と暗号化された対称鍵Kp[k]を得たとき、KsでKp[k]を復号してkを得て、kを用いてk[D]を復号してDを得るからである。一般に、n個(nは正の整数)の暗号鍵{ke1,ke2,…,ken}をデータ暗号化に用いて暗号化データを作り、N個(Nは正の整数)の暗号鍵{kd1,kd2,…,kdN}によって暗号化データを復号して元のデータに戻る場合、{ke1,ke2,…,ken}をデータ暗号化用の暗号鍵と呼び、{kd1,kd2,…,kdN}をデータ復号用の暗号鍵と呼ぶ。
 鍵の生成元について説明する。対称鍵暗号の鍵は一般に乱数を用いて生成する。例えば、32バイト(=256ビット)の乱数は、そのままAESの鍵として利用できる。或いは、十分大きな(例えば、1kバイト)の乱数を生成し、SHA-256(Secure Hash Algorithm 256)などの一方向性関数をこの乱数に適用し、32バイトのビット列を得て、それをAESの鍵としてもよい。非対称鍵暗号(公開鍵暗号)の鍵の場合も同様である。例えば、楕円曲線暗号では、大きな乱数を生成してそれを秘密鍵とする。次いで、予め定められた方法でこの秘密鍵に対応する公開鍵を計算する。暗号鍵を生成する元となるデータを暗号鍵の生成元と呼ぶ。
 鍵共有システム1においては、データ暗号化用暗号鍵とその生成元を同一視する。同様に、データ復号用暗号鍵とその生成元を同一視する。鍵共有サーバ2とクライアント端末3との間で送受信する暗号鍵は、暗号鍵そのものでも、当該暗号鍵の生成元(暗号鍵生成元情報)であってもよい。鍵共有サーバ2がクライアント端末3からデータ復号用暗号鍵の代わりに当該暗号鍵の生成元を受信した場合、鍵共有サーバ2がデータ復号用暗号鍵としてデータベースに保存するのは生成元であっても、生成元から生成した暗号鍵であってもよい。クライアント端末3は生成元から暗号鍵を生成してデータの暗復号に使用する。
 パスワード登録クライアント端末3Aがパスワード登録処理部24に送るパスワード開示許容情報は、同時に送付するパスワードの開示対象(パスワード開示許容範囲)を定める情報である。パスワード開示許容情報は例えば「友人」である。これはユーザ関係保持処理部23におけるユーザ間の関係Rを指定する情報である。或いは、ユーザ関係保持処理部23が図10に示すようなユーザのグループのリストを保存している場合、グループの指定であってもよい。
 また、パスワード開示許容情報はユーザのメールアドレスであってもよい。メールアドレスは複数指定する事ができる。その場合、パスワード開示許容情報はメールアドレスのリストとなる。パスワード開示許容情報として、ユーザ関係保持処理部23におけるユーザ間の関係Rと、メールアドレスのリストとの両方を指定する事ができる。パスワード開示許容情報としてメールアドレスのリストのみを受け付けるパスワード登録処理部24の実施例も考えられる。その場合、第1のパスワード共有サーバ2Aはユーザ関係保持処理部23を備えない。
 なお、パスワード開示許容情報に含まれるメールアドレスは、ユーザ登録処理部21で本登録されたユーザのメールアドレスでなくてもよい。パスワード登録の時点では、パスワードオーナは未だ本登録されていないユーザのメールアドレスを開示先として指定する事ができる。第1のパスワード共有サーバ2Aは、後に当該ユーザが本登録した後にパスワードを開示する。
 パスワード登録処理部24はパスワードIDをパスワード登録クライアント端末3Aに送る。パスワードIDはパスワードデータベース24b上で、パスワード、パスワード開示許容情報、パスワードオーナのメールアドレス、又はパスワードオーナIDを一意に特定するためのIDである。パスワード登録処理部24はパスワードIDに加えてパスワードオーナIDをパスワード登録クライアント端末3Aに送ってもよい。また、パスワード登録処理部24は、パスワードIDに加えてパスワード取得用URLをパスワード登録クライアント端末3Aに送ってもよい。パスワード取得用URLはパスワード取得先のURLである。後述のように、パスワードの開示を受ける際、パスワード取得クライアント端末3Bはパスワードを取得するためにパスワード取得用URLにアクセスしてパスワードIDを送付する。
 パスワード登録処理部24の処理においては、パスワードオーナIDはメールアドレスである。パスワード取得用URLはパスワード登録部24aが保持しているものとする。パスワードオーナはパスワード登録処理部24に識別トークンを送付するユーザである。識別トークンによって特定されるユーザデータベース21b上の本登録ユーザがパスワードオーナである。本実施例では、パスワードオーナのメールアドレスはパスワードオーナIDとしても利用する。
 また、パスワード登録処理部24の処理においては、Webサーバ21cはパスワード開示期間を受け取るが、パスワード開示期間はパスワード開示開始時刻及びパスワード開始終了時刻のいずれか一方でもよい。パスワード開示開始時刻の指定が無い場合、パスワード登録処理部24はパスワード開示開始時刻を現在時刻とする。また、パスワード開示終了時刻の指定が無い場合、パスワード登録処理部24はパスワード開示開始時刻の例えば1週間後を終了時刻とする。パスワード登録処理部24がパスワード開示開始時刻又はパスワード開示終了時刻を定める場合、パスワード開示開始時刻≦パスワード開示終了時刻という関係が成立するよう適切に設定するものとする。更に、パスワード開示期間を受け取らない場合にも、第1のパスワード共有サーバ2Aがパスワード開示期間を独自に設定する場合があり得る。例えば、パスワード登録の要求を受けてから一週間後を暗黙のパスワード開示終了時刻とする事が考えられる。
 図11A及び図11Bを併せ参照すると、パスワード登録処理部24においては、一例として次に示す詳細処理手順を実行する。
[S1(図11B参照)]Webサーバ21cがパスワード登録クライアント端末3Aから識別トークン、パスワード、パスワード開示許容情報、及びパスワード開示期間を受け取る。
[S2]Webサーバ21cがパスワード登録部24aに識別トークン、パスワード、パスワード開示許容情報、及びパスワード開示期間を送る。
[S3]パスワード登録部24aがメールアドレス管理部21aに識別トークンを送る。
[S4]メールアドレス管理部21aが識別トークンを検証する。
[S5]ユーザデータベース21bに本登録されたユーザの識別トークンか判定する。[no](否定判定)のときは終了する。[yes](肯定判定)のときは、処理手順S6に進む。
[S6]メールアドレス管理部21aがユーザデータベース21bから本登録ユーザ(パスワードオーナ)のメールアドレスを取得する。
[S7]メールアドレス管理部21aがパスワードオーナのメールアドレスをパスワード登録部24aに送る。
[S8]パスワード登録部24aがパスワードデータベース24bにパスワード、パスワード開示許容情報、パスワード開示期間、及びパスワードオーナのメールアドレスを登録する。
[S9]パスワードデータベース24bが登録情報についてのID(パスワードID)を生成し、パスワード登録部24aに返す。
[S10]パスワード登録部24aがWebサーバ21cにパスワードID、パスワードオーナのメールアドレス、及びパスワード取得用URLを送る。
[S11]Webサーバ21cがパスワード登録クライアント端末3AにパスワードID、パスワードオーナのメールアドレス、及びパスワード取得用URLを送る。
 図12Aを参照すると、第1のパスワード共有サーバ2Aにおけるパスワード開示処理部25は、細部構成要素として、メールアドレス管理部21a、ユーザデータベース21b、Webサーバ21c、パスワード開示制御部25a、及びパスワードデータベース24bを含むように構成可能である。構成要素のメールアドレス管理部21a、ユーザデータベース21b、Webサーバ21c、及びパスワードデータベース24bは他の処理部と共有されている。
 このパスワード開示処理部25の処理においては、パスワード開示制御部25aは、Webサーバ21cを介してパスワード取得クライアント端末3Bから識別トークン、パスワードID、及びパスワードオーナID(メールアドレス)を受け取る。パスワード開示を要求するユーザ(パスワード開示要求ユーザと記載することもある)が、パスワード取得クライアント端末3Bからパスワード開示処理部25に前述の識別トークン、パスワードID、及びパスワードオーナIDを送付する。パスワード開示制御部25aは識別トークンによって、パスワード開示要求ユーザがユーザ登録処理部21に本登録されたユーザである事を確認する。そして、パスワード開示制御部25aはパスワード開示要求ユーザのメールアドレスを取得する。
 パスワード開示制御部25aは、パスワードIDを用いてパスワードデータベース24bにおいてパスワード、パスワード開示許容情報、パスワード開示期間、及びパスワードオーナIDを特定する。パスワード開示制御部25aは、パスワードIDに対応する情報がパスワードデータベース24bに登録されていない場合、処理を終了しパスワード取得クライアント端末3Bにパスワードを返さない。例えば、パスワードオーナがパスワードを削除した場合がこれに当たる。
 パスワード開示制御部25aは、特定した上記パスワードオーナIDと、パスワード取得クライアント端末3Bから受信したパスワードオーナIDとを比較する。これらのパスワードオーナIDが異なる場合、パスワード開示処理部25は特定したパスワードをパスワード取得クライアント端末3Bに送らない。これによって、暗号化データにデータ作成者(パスワードオーナ)として記載されたユーザが、確かに暗号化データの作成者(パスワードオーナ)である事が確認できる。仮に、暗号化データのパスワードオーナIDが偽造されていた場合、パスワード開示処理部25はデータ復号用のパスワードをパスワード取得クライアント端末3Bに返さないので、暗号化データは復号できない。この確認を行わない実施例も考えられる。この場合は、パスワード取得クライアント端末3Bはパスワード開示処理部25にパスワードオーナIDを送付せず、パスワード開示処理部25はパスワードオーナIDの確認をスキップする。
 パスワード開示制御部25aは、パスワードIDによって特定したパスワードデータベース24bが保存するパスワード開示許容情報を確認する。パスワード開示制御部25aは、パスワード開示許容情報がメールアドレスのリストを含む場合、パスワード開示要求ユーザのメールアドレスがメールアドレスのリストに含まれるか否かを確認する。確認結果が否である場合、パスワード開示制御部25aは、パスワード開示許容情報がユーザ間の関係の指定を含むか否かを確認する。この確認結果が否である場合、パスワード開示制御部25aは、パスワード開示許容情報がグループの指定を含むか否かを確認する。この確認結果も否である場合、パスワード開示制御部25aは、パスワード開示を要求するユーザにパスワードIDで特定されるパスワードを送らない。
 パスワードデータベース24bにおいてパスワードIDによって特定したパスワード開示許容情報がユーザ間の関係の指定を含む場合、パスワード開示制御部25aはユーザ関係保持処理部23にユーザ間の関係を問い合わせる。ユーザ間の関係の指定がRであったとする。本実施例のユーザ関係保持処理部23では、パスワードオーナはメールアドレスで表現されている。パスワードオーナのメールアドレスをmoとする。また、パスワード開示要求ユーザのメールアドレスをuとする。パスワード開示処理部25はユーザ関係保持処理部23に質問[mo,R,u]を送る。これは「uはmoとRの関係にあるか?」という質問である。ユーザ関係保持処理部23は上述した要領で当該質問の回答を求め、パスワード開示処理部25に返す。パスワード開示処理部25は、ユーザ関係保持処理部23から得た回答が[no]である場合、パスワード開示を要求するユーザにパスワードIDで特定されるパスワードを送らない。
 ユーザ間の関係Rの指定がユーザのグループの指定である場合、パスワード開示処理部25はユーザ関係保持処理部23にパスワード開示要求ユーザが開示を許諾(許容)されたグループに属するか否かを問い合わせる。ここで、ユーザのグループの指定がR={G1,…,GN}であったとする。ただし、G1~GNはグループ名とする。パスワードオーナのメールアドレスをmoとする。また、パスワード開示要求ユーザのメールアドレスをuとする。パスワード開示処理部25はユーザ関係保持処理部23に質問[mo,R,u]を送る。これは「u及びmoは、Rのグループのいずれかに同時に所属しているか?」という質問である。ユーザ関係保持処理部23は、上述した要領で当該質問の回答を求め、パスワード開示処理部25に返す。パスワード開示処理部25はユーザ関係保持処理部23から得た回答が[no]である場合、パスワード開示を要求するユーザにパスワードIDで特定されるパスワードを送らない。
 更に説明すると、パスワード開示処理部25におけるWebサーバ21cがパスワード取得クライアント端末3Bから受け取るメールアドレスmはパスワードオーナIDである。パスワード取得クライアント端末3Bは、例えば暗号化データに付随するパスワードオーナIDを読み取ってパスワード開示処理部25に送付する。
 パスワード開示制御部25aは、パスワード取得クライアント端末3Bから送付されたパスワードオーナID(メールアドレスm)が当該パスワードのオーナのID(メールアドレスmo)に一致するか否かを確認し、一致しない場合、Webサーバ21cを介して暗号パスワードをパスワード取得クライアント端末3Bに送付しないでエラー情報を送付する。
 パスワード開示制御部25aは、パスワードに設定されたパスワード開示開始時刻Ts及びパスワード開示終了時刻Teを現在時刻tと比較して、パスワード開示の可否を判定する。現在時刻としては、第1のパスワード共有サーバ2Aのシステム時刻を取得して使用する。
 図12A、図12B及び図12Cを併せ参照すると、パスワード開示処理部25においては、一例として次に示す詳細処理手順を実行する。
[S1(図12B参照)]Webサーバ21cがパスワード取得クライアント端末3Bから識別トークン、パスワードID、及びパスワードオーナID(メールアドレスm)を受け取る。
[S2]Webサーバ21cがパスワード開示制御部25aに識別トークン、パスワードID、及びパスワードオーナIDを送る。
[S3]パスワード開示制御部25aがメールアドレス管理部21aに識別トークンを送る。
[S4]メールアドレス管理部21aが識別トークンを検証する。
[S5]ユーザデータベース21bに本登録されたユーザの識別トークンか判定する。[no]のときは終了する。[yes](肯定判定)のときは、処理手順S6に進む。
[S6]メールアドレス管理部21aがユーザデータベース21bからパスワード開示要求ユーザのメールアドレスuを取得する。
[S7]メールアドレス管理部21aがメールアドレスuをパスワード開示制御部25aに送る。
[S8]パスワード開示制御部25aがパスワードデータベース24bを調べ、パスワードIDに対応する情報の登録有無を確認する。
[S9]パスワードIDに対応する情報が登録されていないときは([no])、処理手順S25に進む。また、パスワードIDに対応する情報が登録されているときは([yes])、処理手順S10に進む。
[S10]パスワード開示制御部25aがパスワードデータベース24bからパスワードIDに対応するパスワード、パスワード開示許容情報、パスワード開示期間、及びパスワードオーナID(メールアドレスmo)を取得する。
[S11]パスワード開示制御部25aがメールアドレスmoとメールアドレスmとを比較する。
[S12]判定結果が[no]のときは、処理手順S25に進む。また、判定結果が[yes]のときは、処理手順S13に進む。
[S13]パスワード開示制御部25aは、処理手順10で取得したパスワード開示許容情報がメールアドレスのリストを含むか確認する。
[S14]判定結果が[no]のときは、処理手順S17に進む。また、判定結果が[yes]のときは、処理手順S15に進む。
[S15]パスワード開示制御部25aは、メールアドレスのリストがメールアドレスuを含むか確認する。
[S16]判定結果が[no]のときは、処理手順S17に進む。また、判定結果が[yes]のときは、処理手順S21に進む。
[S17(図12C参照)]パスワード開示制御部25aは、処理手順10で取得したパスワード開示許容情報がユーザ間の関係の指定Rを含むか確認する。
[S18]判定結果が[no]のときは、処理手順S25に進む。また、判定結果が[yes]のときは、処理手順S19に進む。
[S19]パスワード開示制御部25aはユーザ関係保持処理部23に質問[mo,R,u]を送る。
[S20]回答が[no]のときは、処理手順S25に進む。また、回答が[yes]のときは、処理手順S21に進む。
[S21]パスワード開示制御部25aが現在時刻tを取得してパスワード開示開始時刻Ts及びパスワード開示終了時刻Teと比較する。
[S22]判定結果が[no]のときは、終了する。また、判定結果が[yes](tがTs以上及びTe以下)のときは、処理手順S23に進む。
[S23]パスワード開示制御部25aはWebサーバ21cにパスワードIDに対応するパスワードを送る。
[S24]Webサーバ21cはパスワード取得クライアント端末3Bにパスワードを送る。
[S25]パスワード開示制御部25aはパスワード取得クライアント端末3Bに対してエラーを送るようにWebサーバ21cに指示する。
[S26]Webサーバ21cはパスワード取得クライアント端末3Bにエラーを送る。
 図13Aを参照すると、第1のパスワード共有サーバ2Aにおけるパスワード削除処理部26は、細部構成要素として、メールアドレス管理部21a、ユーザデータベース21b、Webサーバ21c、パスワード削除部26a、及びパスワードデータベース24bを含むように構成可能である。構成要素のメールアドレス管理部21a、ユーザデータベース21b、Webサーバ21c、及びパスワードデータベース24bは他の処理部と共有されている。
 このパスワード削除処理部26における処理の要点は、次に示すとおりである。(図13B参照)
[S1]Webサーバ21cがクライアント端末3Aから、識別トークン、パスワードID(パスワード識別情報)を受信する。
[S2]Webサーバ21cはパスワード削除部26aに、識別トークンとパスワードIDを送る。
[S3]パスワード削除部26aは、メールアドレス管理部21aに識別トークンを送る。
[S4]メールアドレス管理部21aはユーザデータベース21bを検索し、識別トークンに対応するユーザを見出す。
[S5]当該ユーザが存在するか?yesなら[S10]へ。nоなら[S6]へ。
[S6]メールアドレス管理部21aは、パスワード削除部26aに識別トークンに対応するユーザが存在しない事を通知する。
[S7]パスワード削除部26aはWebサーバ21cにエラーの送付を指示する。
[S8]Webサーバ21cはクライアント端末3Aにエラーを送付する。
[S9]パスワード削除処理部26は処理を終了する。
[S10]メールアドレス処理部21aは、パスワード削除部26aに識別トークンに対応するユーザのユーザIDを送る。
[S11]パスワード削除部26aがパスワードデータベースを検索し、パスワードIDに対応するパスワードとパスワードオーナIDを見出す。
[S12]パスワードが存在するか?yesなら[S13]へ。nоなら[S7]へ。
[S13]パスワード削除部26aは[S11]で取得したパスワードオーナIDと[S10]で取得したユーザIDを比較する。
[S14]パスワードオーナIDとユーザIDは一致するか?yesなら[S15]へ。nоなら[S7]へ。
[S15]パスワード削除部26aが、パスワードデータベースからパスワードIDに対応するパスワードを削除する。
[S16]パスワード削除部26aはWebサーバ21cに処理完了の送付を指示する。
[S17]Webサーバ21cはクライアント端末3Aに処理完了を送付し、[S9]へ。
上記手順では、削除指示を行ったユーザのIDとパスワードオーナIDが一致した場合に限り、パスワードを削除する。従って、パスワードのオーナでないユーザが、当該パスワードの削除を行う事はできない。なお、パスワード削除部26aがパスワードデータベース24bから削除する情報は、パスワードIDに対応する全情報である。具体的には、パスワード、パスワード開示許容情報、パスワード開示期間、パスワードオーナIDなどを全て削除する。削除により、パスワードIDに対応するパスワードなどはパスワードデータベース24bに存在しなくなる。
 図14Aを参照すると、第1のパスワード共有サーバ2Aにおけるパスワード開示期間変更処理部27は、細部構成要素として、メールアドレス管理部21a、ユーザデータベース21b、Webサーバ21c、パスワード開示期間変更部27a、及びパスワードデータベース24bを含むように構成可能である。構成要素のメールアドレス管理部21a、ユーザデータベース21b、Webサーバ21c、及びパスワードデータベース24bは他の処理部と共有されている。
 このパスワード開示期間変更処理部27における処理の要点は、次に示すとおりである。(図14B参照)
[S1]Webサーバ21cがクライアント端末3Aから、識別トークン、パスワードID(パスワード識別情報)、及び、パスワード開示期間を受信する。このパスワード開示期間は更新用である。
[S2]Webサーバ21cはパスワード開示期間変更部27aに、識別トークンとパスワードID、及び、パスワード開示期間を送る。
[S3]パスワード開示期間変更部27aは、メールアドレス管理部21aに識別トークンを送る。
[S4]メールアドレス管理部21aはユーザデータベース21bを検索し、識別トークンに対応するユーザを見出す。
[S5]当該ユーザが存在するか?yesなら[S10]へ。nоなら[S6]へ。
[S6]メールアドレス管理部21aは、パスワード開示期間変更部27aに識別トークンに対応するユーザが存在しない事を通知する。
[S7]パスワード開示期間変更部27aはWebサーバ21cにエラーの送付を指示する。
[S8]Webサーバ21cはクライアント端末3Aにエラーを送付する。
[S9]パスワード開示期間変更処理部27は処理を終了する。
[S10]メールアドレス処理部21aは、パスワード開示期間変更部27aに識別トークンに対応するユーザのユーザIDを送る。
[S11]パスワード開示期間変更部27aがパスワードデータベースを検索し、パスワードIDに対応するパスワードとパスワードオーナIDを見出す。
[S12]パスワードが存在するか?yesなら[S13]へ。nоなら[S7]へ。
[S13]パスワード開示期間変更部27aは[S11]で取得したパスワードオーナIDと[S10]で取得したユーザIDを比較する。
[S14]パスワードオーナIDとユーザIDは一致するか?yesなら[S15]へ。nоなら[S7]へ。
[S15]パスワード開示期間変更部27aが、パスワードデータベースにおいて、パスワードIDに対応するパスワードのパスワード開示期間を、更新用のパスワード開示期間で更新する。
[S16]パスワード開示期間変更部27aはWebサーバ21cに処理完了の送付を指示する。
[S17]Webサーバ21cはクライアント端末3Aに処理完了を送付し、[S9]へ。
上記手順では、パスワード開示期間の更新指示を行ったユーザのIDとパスワードオーナIDが一致した場合に限り、パスワードの開示期間を更新する。従って、パスワードのオーナでないユーザが、当該パスワードの開示期間の変更を行う事はできない。
(パスワード開示許容範囲の変更)
図14Cを参照すると、第1のパスワード共有サーバ2Aにおけるパスワード開示許容範囲変更処理部30は、細部構成要素として、メールアドレス管理部21a、ユーザデータベース21b、Webサーバ21c、パスワード開示許容範囲変更部30a、及びパスワードデータベース24bを含むように構成可能である。構成要素のメールアドレス管理部21a、ユーザデータベース21b、Webサーバ21c、及びパスワードデータベース24bは他の処理部と共有されている。
 このパスワード開示許容範囲変更処理部30における処理の要点は、次に示すとおりである。(図14D参照)
[S1]Webサーバ21cがクライアント端末3Aから、識別トークン、パスワードID(パスワード識別情報)、及び、パスワード開示許容情報を受信する。このパスワード開示許容情報は更新用である。具体的には、メールアドレスのリストである。あるいは、「家族」などのユーザ間の関係の指定である。また、この更新用のパスワード開示許容情報はユーザ関係保持処理部23が保持するユーザのグループのリストであっても良い。
[S2]Webサーバ21cはパスワード開示許容範囲変更部30aに、識別トークンとパスワードID、及び、パスワード開示許容情報を送る。
[S3]パスワード開示許容範囲変更部30aは、メールアドレス管理部21aに識別トークンを送る。
[S4]メールアドレス管理部21aはユーザデータベース21bを検索し、識別トークンに対応するユーザを見出す。
[S5]当該ユーザが存在するか?yesなら[S10]へ。nоなら[S6]へ。
[S6]メールアドレス管理部21aは、パスワード開示許容範囲変更部30aに識別トークンに対応するユーザが存在しない事を通知する。
[S7]パスワード開示許容範囲変更部30aはWebサーバ21cにエラーの送付を指示する。
[S8]Webサーバ21cはクライアント端末3Aにエラーを送付する。
[S9]パスワード開示許容範囲変更処理部30は処理を終了する。
[S10]メールアドレス処理部21aは、パスワード開示許容範囲変更部30aに識別トークンに対応するユーザのユーザIDを送る。
[S11]パスワード開示許容範囲変更部30aがパスワードデータベース24bを検索し、パスワードIDに対応するパスワードと、当該パスワードのパスワードオーナIDを見出す。
[S12]当該パスワードが存在するか?yesなら[S13]へ。nоなら[S7]へ。
[S13]パスワード開示許容範囲変更部30aは[S11]で取得したパスワードオーナIDと[S10]で取得したユーザIDを比較する。
[S14]パスワードオーナIDとユーザIDは一致するか?yesなら[S15]へ。nоなら[S7]へ。
[S15]パスワード開示許容範囲変更部30aが、パスワードデータベースにおいて、パスワードIDに対応するパスワードのパスワード開示許容情報を、更新用のパスワード開示許容情報で更新する。
[S16]パスワード開示許容範囲変更部30aはWebサーバ21cに処理完了の送付を指示する。
[S17]Webサーバ21cはクライアント端末3Aに処理完了を送付し、[S9]へ。
上記手順では、パスワード開示許容範囲の変更指示を行ったユーザのユーザIDとパスワードオーナIDが一致した場合に限り、パスワードのパスワード開示許容情報を更新する。従って、当該パスワードのオーナでないユーザが、パスワードの開示許容範囲を変更する事はできない。
 [第2のパスワード共有サーバの詳細]
 パスワード共有システム1における第2のパスワード共有サーバ2Bの詳細について、図1、図15及び関連図を併せ参照して説明する。
 図15を参照すると、第2のパスワード共有サーバ2Bは、機能構成要素として、ユーザ登録処理部21、ログイン処理部22、ユーザ関係保持処理部23、パスワード登録処理部24B、及びパスワード開示処理部25を備える。ユーザ登録処理部21、ログイン処理部22、ユーザ関係保持処理部23、及びパスワード開示処理部25は、第1のパスワード共有サーバ2Aと同様の機能を有する。
 ここで、第2のパスワード共有サーバ2Bの基本的特徴要素は、ユーザ登録処理部(図1Aの識別トークン発行部104に対応)21、パスワード登録処理部(図1Aのパスワード登録部107に対応)24B、及びパスワード開示処理部(図1Aのパスワード開示部110に対応)25である。
 つまり、第2のパスワード共有サーバ2Bは、第1ユーザ利用のパスワード登録クライアント端末(第1クライアント端末)3A及び第2ユーザ利用のパスワード取得クライアント端末(第2クライアント端末)3Bを含むパスワード共有システム1に適用可能なパスワード共有サーバであって、認証済みユーザであることを示す識別トークン(証拠)を発行するユーザ登録処理部21を含む。
 また、第2のパスワード共有サーバ2Bは、ユーザ登録処理部21により発行された第1ユーザ対応の識別トークンと、パスワード開示許容範囲を指定するパスワード開示許容情報とを第1クライアント端末3Aから受信し、パスワードを生成し、前記生成したパスワード及びパスワード開示許容情報をデータベースに格納し、識別トークンを検証して正しい識別トークン(第1ユーザ対応の識別トークン)であることが確認できた場合に限り、格納したパスワード及びパスワード開示許容情報をデータベース上で特定するパスワード識別情報(パスワードID)とパスワードとを第1クライアント端末3Aに送信するパスワード登録処理部24Bを含む。
 更に、第2のパスワード共有サーバ2Bは、ユーザ登録処理部21により発行された第2ユーザ対応の識別トークンと、第1クライアント端末3Aから出力されたデータを読み取ることにより取得されるパスワード登録処理部24Bが送信したパスワードIDとを第2クライアント端末3Bから受信し、第2ユーザ対応の識別トークンにより特定する第2ユーザの情報を取得し、第2クライアント端末3Bから受信したパスワードIDにより特定するパスワード及びパスワード開示許容情報をデータベースから取得し、データベースから取得したパスワード開示許容情報により指定されるパスワード開示許容範囲に第2ユーザが含まれていることを確認できた場合に限り、パスワードIDにより特定するパスワードを第2クライアント端末3Bに送信するパスワード開示処理部25を含む。
 続いて、パスワード共有システム1における第2のパスワード共有サーバ2Bについて、図1、図15及び関連図を併せ参照して更に詳細に説明する。
 図15を参照すると、第2のパスワード共有サーバ2Bを構成するユーザ登録処理部21、ログイン処理部22、ユーザ関係保持処理部23、パスワード登録処理部24B、及びパスワード開示処理部25は、上述したように、細部構成要素の一部を共有する。
 また、図15に例示するように、第2のパスワード共有サーバ2Bはパスワード登録クライアント端末3A及びパスワード取得クライアント端末3Bと下記各種データa~d,e1,f1,g,hを送受信する。*はオプションデータであり、使用しない実施例もある。
 [データa]仮登録時:メールアドレス、パスワード 本登録時:登録用トークン、メールアドレス、パスワード
 [データb]仮登録時:登録用トークン、登録用URL 本登録時:識別トークン
 [データc]メールアドレス、パスワード
 [データd]識別トークン
 [データe1]識別トークン、パスワード開示許容情報、*パスワード開示期間
 [データf1]パスワードID、パスワード、*パスワードオーナID、*パスワード取得用URL
 [データg]識別トークン、パスワードID、*パスワードオーナID
 [データh]パスワード
 ここで、データ(暗号化対象データ)(図1Aのデータ139に対応)を暗号化してパスワードを登録するユーザがパスワード登録処理部24Bを利用し、データ(暗号化データ)を復号するためにパスワードの開示を要求するユーザがパスワード開示処理部25を利用することになる。これらのユーザは、同一ユーザであってもよいが、一般には別であるため、パスワード登録クライアント端末3A及びパスワード取得クライアント端末3Bを図示している。
 図16Aを参照すると、第2のパスワード共有サーバ2Bにおけるパスワード登録処理部24Bは、細部構成要素として、メールアドレス管理部21a、ユーザデータベース21b、Webサーバ21c、パスワード登録部24c、及びパスワードデータベース24bを含むように構成可能である。構成要素のメールアドレス管理部21a、ユーザデータベース21b及びWebサーバ21cは他の処理部と共有されている。

 上述したように、第1のパスワード共有サーバ2Aにおけるパスワード登録処理部24は、ユーザ利用のパスワード登録クライアント端末3Aから送付されたデータ復号用暗号パスワードをパスワードデータベース24b(図1Aのデータベース121に対応)に登録してパスワードIDを返す。しかし、第2のパスワード共有サーバ2Bにおけるパスワード登録処理部24Bは、パスワードを自ら生成し、パスワードをパスワードデータベース24bに登録し、当該パスワードとパスワードデータベース24bにおける当該パスワードのパスワードIDを返す。
 パスワード登録処理部24Bは、例えばプログラムにより発生させた疑似乱数を基にパスワードを生成するが、パスワード生成の方法はこれに限られる訳ではない。
 パスワード登録部24cは識別トークンが特定するユーザのメールアドレスを取得するが、当該ユーザはパスワード登録者であるので、当該メールアドレスが即ちパスワードオーナのメールアドレスである。本実施例では当該メールアドレスがパスワードオーナIDを兼ねている。また、本実施例では、パスワード取得用URLはパスワード登録部24cが予め保持している。パスワード取得用URLをパスワード登録クライアント端末3Aに返さない実施例も考えられる。
 図16A及び図16Bを併せ参照すると、パスワード登録処理部24Bにおいては、一例として次に示す詳細処理手順を実行する。
[S1(図16B参照)]Webサーバ21cがパスワード登録クライアント端末3Aから識別トークン及びパスワード開示許容情報を受け取る。
[S2]Webサーバ21cがパスワード登録部24cに識別トークン及びパスワード開示許容情報を送る。
[S3]パスワード登録部24cがメールアドレス管理部21aに識別トークンを送る。
[S4]メールアドレス管理部21aが識別トークンを検証する。
[S5]ユーザデータベース21bに本登録されたユーザの識別トークンか判定する。[no]のときは終了する。[yes]のときは、処理手順S6に進む。
[S6]メールアドレス管理部21aがユーザデータベース21bから本登録ユーザ(パスワードオーナ)のメールアドレスを取得する。
[S7]メールアドレス管理部21aがパスワードオーナのメールアドレスをパスワード登録部24cに送る。
[S8]パスワード登録部24cがパスワードを生成する。
[S9]パスワード登録部24cがパスワードデータベース24bにパスワード、パスワード開示許容情報、及びパスワードオーナのメールアドレスを登録する。
[S10]パスワードデータベース24bが登録情報についてのID(パスワードID)を生成し、パスワード登録部24cに返す。
[S11]パスワード登録部24cがWebサーバ21cにパスワードID、パスワード、パスワードオーナのメールアドレス、及びパスワード取得用URLを送る。
[S12]Webサーバ21cがパスワード登録クライアント端末3AにパスワードID、パスワード、パスワードオーナのメールアドレス、及びパスワード取得用URLを送る。
 [課題を解決するための手段]にて、本発明の第1の態様におけるパスワード共有システム100について、図1Aのパスワード共有システム100の構成において、パスワード供給部105、暗号鍵生成部108、及び暗号鍵第1加工部109を、第1のクライアント端末102、又はパスワード共有サーバ101若しくはそれ以外の他のサーバのどこで実施するかに関して、幾つかの組合せが存在することを、図31を用いて説明した。
 いままで説明してきた実施形態においても、同様の組合せが存在する。これらの組合せについて、以下に説明する。
 組合せ3で鍵ラップの場合のパスワード共有サーバは図15の第2のパスワード共有サーバと同じ構成をとる。ユーザ登録処理部21、ログイン処理部22、ユーザ関係保持処理部23、及び、パスワード開示処理部25の構成と動作は第2のパスワード共有サーバと同一である。パスワード登録処理部24Bの構成も同一(図16A)であるが、その動作が異なる。それを図17Aに示す。前記パスワード共有サーバと通信するパスワード登録クライアント端末の構成を図17Bに示す。また、その動作を図17Cに示す。前記パスワード共有サーバと通信するパスワード取得クライアント端末は(鍵ラップに対応した)第1のパスワード取得クライアント端末である。
 組合せ3で鍵変形の場合のパスワード共有サーバも図15の第2のパスワード共有サーバと同じ構成をとる。ユーザ登録処理部21、ログイン処理部22、ユーザ関係保持処理部23、及び、パスワード開示処理部25の構成と動作は第2のパスワード共有サーバと同一である。パスワード登録処理部24Bの構成も同一(図16A)であるが、その動作が異なる。それを図17Dに示す。前記パスワード共有サーバと通信するパスワード登録クライアント端末の構成は図17Bと同一であるが、その動作は異なる。その動作を図17Eに示す。前記パスワード共有サーバと通信するパスワード取得クライアント端末は(鍵変形に対応した)第2のパスワード取得クライアント端末である。
 組合せ4で鍵ラップの場合のパスワード共有サーバは図15の第2のパスワード共有サーバと同じ構成をとる。ユーザ登録処理部21、ログイン処理部22、ユーザ関係保持処理部23、及び、パスワード開示処理部25の構成と動作は第2のパスワード共有サーバと同一である。パスワード登録処理部24Bの構成も同一(図16A)であるが、その動作が異なる。それを図17Fに示す。パスワード共有サーバと通信するパスワード登録クライアント端末の構成を図17Gに示す。また、その動作を図17Hに示す。パスワード共有サーバと通信するパスワード取得クライアント端末は(鍵ラップに対応した)第1のパスワード取得クライアント端末である。
 組合せ4で鍵変形の場合のパスワード共有サーバも図15の第2のパスワ
ード共有サーバと同じ構成をとる。ユーザ登録処理部21、ログイン処理部22、ユーザ関係保持処理部23、及び、パスワード開示処理部25の構成と動作は第2のパスワード共有サーバと同一である。パスワード登録処理部24Bの構成も同一(図16A)であるが、その動作が異なる。それを図17Iに示す。パスワード共有サーバと通信するパスワード登録クライアント端末の構成は図17Gと同一であるが、その動作は異なる。その動作を図17Jに示す。パスワード共有サーバと通信するパスワード取得クライアント端末は(鍵変形に対応した)第2のパスワード取得クライアント端末である。
 組合せ5で鍵ラップの場合のパスワード共有サーバは図15の第2のパス
ワード共有サーバと同じ構成をとる。ユーザ登録処理部21、ログイン処理部22、ユーザ関係保持処理部23、及び、パスワード開示処理部25の構成と動作は第2のパスワード共有サーバと同一である。パスワード登録処理部24Bの構成も同一(図16A)であるが、その動作が異なる。それを図17Kに示す。パスワード共有サーバと通信するパスワード登録クライアント端末の構成を図17Lに示す。また、その動作を図17Mに示す。パスワード共有サーバと通信するパスワード取得クライアント端末は(鍵ラップに対応した)第1のパスワード取得クライアント端末である。
 組合せ5で鍵変形の場合のパスワード共有サーバも図15の第2のパスワード共有サーバと同じ構成をとる。ユーザ登録処理部21、ログイン処理部22、ユーザ関係保持処理部23、及び、パスワード開示処理部25の構成と動作は第2のパスワード共有サーバと同一である。パスワード登録処理部24Bの構成も同一(図16A)であるが、その動作が異なる。それを図17Nに示す。パスワード共有サーバと通信するパスワード登録クライアント端末の構成は図17Lと同一であるが、その動作は異なる。その動作を図17Oに示す。パスワード共有サーバと通信するパスワード取得クライアント端末は(鍵変形に対応した)第2のパスワード取得クライアント端末である。
 組合せ6で鍵ラップの場合のパスワード共有サーバは図15の第2のパスワード共有サーバと同じ構成をとる。ユーザ登録処理部21、ログイン処理部22、ユーザ関係保持処理部23、及び、パスワード開示処理部25の構成と動作は第2のパスワード共有サーバと同一である。パスワード登録処理部24Bの構成も同一(図16A)であるが、その動作が異なる。それを図17Pに示す。パスワード共有サーバと通信するパスワード登録クライアント端末の構成を図17Qに示す。また、その動作を図17Rに示す。パスワード共有サーバと通信するパスワード取得クライアント端末は(鍵ラップに対応した)第1のパスワード取得クライアント端末である。
 組合せ6で鍵変形の場合のパスワード共有サーバも図15の第2のパスワード共有サーバと同じ構成をとる。ユーザ登録処理部21、ログイン処理部22、ユーザ関係保持処理部23、及び、パスワード開示処理部25の構成と動作は第2のパスワード共有サーバと同一である。パスワード登録処理部24Bの構成も同一(図16A)であるが、その動作は図17Pと同一である。パスワード共有サーバと通信するパスワード登録クライアント端末の構成を図17Sに示す。また、その動作を図17Tに示す。パスワード共有サーバと通信するパスワード取得クライアント端末は(鍵変形に対応した)第2のパスワード取得クライアント端末である。
 組合せ7で鍵ラップの場合のパスワード共有サーバは図15の第2のパスワード共有サーバと同じ構成をとる。ユーザ登録処理部21、ログイン処理部22、ユーザ関係保持処理部23、及び、パスワード開示処理部25の構成と動作は第2のパスワード共有サーバと同一である。パスワード登録処理部24Bの構成も同一(図16A)であるが、その動作が異なる。それを図17Uに示す。パスワード共有サーバと通信するパスワード登録クライアント端末の構成を図17Vに示す。また、その動作を図17Wに示す。パスワード共有サーバと通信するパスワード取得クライアント端末は(鍵ラップに対応した)第1のパスワード取得クライアント端末である。
組合せ7で鍵変形の場合のパスワード共有サーバも図15の第2のパスワード共有サーバと同じ構成をとる。ユーザ登録処理部21、ログイン処理部22、ユーザ関係保持処理部23、及び、パスワード開示処理部25の構成と動作は第2のパスワード共有サーバと同一である。パスワード登録処理部24Bの構成も同一(図16A)であるが、その動作は図17Uと同一である。パスワード共有サーバと通信するパスワード登録クライアント端末の構成を図17Xに示す。また、その動作を図17Yに示す。パスワード共有サーバと通信するパスワード取得クライアント端末は(鍵変形に対応した)第2のパスワード取得クライアント端末である。
 組合せ8で鍵ラップの場合のパスワード共有サーバは図15の第2のパスワード共有サーバと同じ構成をとる。ユーザ登録処理部21、ログイン処理部22、ユーザ関係保持処理部23、及び、パスワード開示処理部25の構成と動作は第2のパスワード共有サーバと同一である。パスワード登録処理部24Bの構成も同一(図16A)であるが、その動作が異なる。それを図17Zに示す。パスワード共有サーバと通信するパスワード登録クライアント端末の構成を図18Aに示す。また、その動作を図18Bに示す。パスワード共有サーバと通信するパスワード取得クライアント端末は(鍵ラップに対応した)第1のパスワード取得クライアント端末である。
組合せ8で鍵変形の場合のパスワード共有サーバも図15の第2のパスワード共有サーバと同じ構成をとる。ユーザ登録処理部21、ログイン処理部22、ユーザ関係保持処理部23、及び、パスワード開示処理部25の構成と動作は第2のパスワード共有サーバと同一である。パスワード登録処理部24Bの構成も同一(図16A)であるが、その動作を図18Cに示す。パスワード共有サーバと通信するパスワード登録クライアント端末の構成は図18Aと同一である。その動作を図18Dに示す。パスワード共有サーバと通信するパスワード取得クライアント端末は(鍵変形に対応した)第2のパスワード取得クライアント端末である。
 [第1のパスワード登録クライアント端末の詳細]
 パスワード共有システム1における第1のパスワード登録クライアント端末3A1の詳細について、図1、図19及び関連図を併せ参照して説明する。
 図19を参照すると、パスワード登録クライアント端末3Aは、第1のパスワード登録クライアント端末3A1としては、機能構成要素として、ユーザ登録処理部31、ログイン処理部32、パスワード登録処理部33B、及びデータ作成処理部34を備える。ここで、データ作成処理部34はデータ作成部56を含む(他の実施形態(実施例)においても同様である)。
 また、第1のパスワード登録クライアント端末3A1は、パスワード削除処理部37、パスワード開示期間変更処理部38、及びパスワード開示許容情報変更処理部39などを実施形態(実施例)に応じて更に備える。
 第1のパスワード登録クライアント端末3A1の基本的特徴要素は、識別トークン保存部51、パスワード開示許容情報入力部52、暗号鍵生成部53、パスワード入力部62,パスワード鍵生成部63、暗号鍵ラップ部64、情報送受信部(ネットワークアクセス部)54、データ暗号化部55、及びデータ作成部56を含む(図22A参照)。
 つまり、第1のパスワード登録クライアント端末3A1は、サーバを含むパスワード共有システム1に適用可能なパスワード登録機能を有するクライアント端末であって、認証済みユーザであることを示す識別トークン(証拠)を保存する識別トークン保存部51と、パスワードを入力されるパスワード入力部62と、パスワードの開示許容範囲を指定するパスワード開示許容情報を入力されるパスワード開示許容情報入力部52とを含む。また、第一のパスワード登録クライアント端末3A1は、パスワード入力部62に入力されたパスワードに基づいて、鍵を暗号化する(ラップする)ための鍵(パスワード鍵)を生成するパスワード鍵生成部63を含む。
 また、第1のパスワード登録クライアント端末3A1は、データ暗号化用暗号鍵及びデータ復号用暗号鍵を生成する暗号鍵生成部53と、データ復号用鍵をパスワード鍵でラップする暗号鍵ラップ部64と、識別トークン保存部51に保存された識別トークンと、暗号鍵ラップ部64が出力するラップされたデータ復号用暗号鍵と、パスワード開示許容情報入力部52に入力されたパスワード開示許容情報とを送信情報としてパスワード共有サーバ2(2A)に送信し、送信情報に対応するパスワード識別情報(鍵ID)をパスワード共有サーバ2(2A)から受信する情報送受信部(ネットワークアクセス部)54とを含む。
 更に、第1のパスワード登録クライアント端末3A1は、暗号化対象データの入力に応じて、暗号鍵第1加工部109により生成された第1加工後データ暗号化用暗号鍵136を用いて暗号化対象データを暗号化し、暗号化した暗号化データを出力するデータ暗号化部55と、情報送受信部54によりパスワード共有サーバ2(2A)から受信されたパスワードIDと、データ暗号化部55により出力された暗号化データとの入力に応じて、パスワードID及び暗号化データを含むデータを出力するデータ作成部56とを含む。
 第1のパスワード登録クライアント端末3A1は次に示す各態様を採ることが可能である。なお、[態様12]から[態様14]は後述する第2のパスワード登録クライアント端末3A2、第3のパスワード登録クライアント端末3A3、及び第4のパスワード登録クライアント端末3A4においても適用可能である。
 [態様12]第1のパスワード登録クライアント端末3A1において、パスワード開示許容情報は、パスワード共有サーバ2(2A)に予め登録されているユーザ間の関係、パスワード共有サーバ2(2A)に予め登録されているユーザのグループの指定、及びメールアドレスのリストの少なくとも1つを含む。メールアドレスのリストについては、クライアント端末3A1が、パスワード開示許容情報としてメールアドレスのリストを送付してもよい。
 [態様13]第1のパスワード登録クライアント端末3A1において、ユーザによりパスワード開示開始時刻又はパスワード開示終了時刻をパスワード開示期間として入力されるパスワード開示期間入力部66を更に備え、
 情報送受信部54は、パスワード開示期間入力部66に入力されたパスワード開示期間をパスワード共有サーバ2(2A)に送信する。
 [態様14]第1のパスワード登録クライアント端末3A1において、データ作成部56は、暗号化パラメータ、パスワードオーナID、パスワード取得用URL、パスワード開示期間、及びデータ作成日時の少なくとも1つを含むデータを出力する。
 図20を参照すると、第1のパスワード登録クライアント端末3A1におけるユーザ登録処理部31は、細部構成要素として、ユーザ入力部31a、メール受信部31b、識別トークン保存部51、及び情報送受信部(ネットワークアクセス部)54を含むように構成可能である。これらの構成要素は他の処理部と共有されるものを含む。
 このユーザ登録処理部31における処理は、Facebookなどの各種インターネットサービスで一般的に実施されているアカウント登録時のものと同様であると考えられ、当業者が容易に理解できるので、ここでは要点だけを説明する。
 ユーザ登録処理部31においては、ユーザ入力部31a、メール受信部31b、識別トークン保存部51、及び情報送受信部54が協働することにより、第1のパスワード共有サーバ2Aにおけるユーザ登録処理部21と通信し、ユーザ利用のメールアドレス及びパスワードを仮登録する。そして、ユーザ登録処理部31においては、当該メールアドレスで受信した登録トークンを用いて、当該メールアドレスを第1のパスワード共有サーバ2Aに本登録する。これにより、ユーザ登録処理部31においては、第1のパスワード共有サーバ2Aにおけるユーザ登録処理部21が生成した識別トークンを受信し、識別トークン保存部51に保存する。
 図21を参照すると、第1のパスワード登録クライアント端末3A1におけるログイン処理部32は、細部構成要素として、ユーザ入力部31a、識別トークン保存部51、及び情報送受信部(ネットワークアクセス部)54を含むように構成可能である。これらの構成要素はユーザ登録処理部31と共有されている。
 このログイン処理部32における処理は、Facebookなどの各種インターネットサービスで一般的に実施されているログイン時のものと同様であると考えられ、当業者が容易に理解できるので、ここでは要点だけを説明する。
 ログイン処理部32においては、ユーザ入力部31a、識別トークン保存部51、及び情報送受信部54が協働することにより、第1のパスワード共有サーバ2Aにおけるログイン処理部22と通信して、本登録済みユーザの識別トークンを受信し、識別トークン保存部51に保存する。
 図22Aを参照すると、第1のパスワード登録クライアント端末3A1におけるパスワード登録処理部33Bは、細部構成要素として、データ入力部50、識別トークン保存部51、パスワード開示許容情報入力部52、暗号鍵生成部53、情報送受信部(ネットワークアクセス部)54、データ暗号化部55、パスワード鍵生成部63、暗号鍵ラップ部64、及びパスワード開示期間入力部66を含むように構成可能である。このパスワード登録処理部33Bは、データ作成処理部34(図19参照)を構成するデータ作成部56と連携する。第1のパスワード登録クライアント端末3A1におけるパスワード登録処理部33Bは、第1のパスワード共有サーバ2Aにおけるパスワード登録処理部24と通信する。
 このパスワード登録処理部33Bにおいては、データ入力部50、識別トークン保存部51、鍵開示許容情報入力部52、暗号鍵生成部53、情報送受信部54、データ暗号化部55、パスワード鍵生成部63,暗号鍵ラップ部64、及びパスワード開示期間入力部66が協働することにより、次に示す処理の要点を遂行する。つまり、ユーザが入力するパスワード開示許容情報は例えば「家族」などのユーザ間の関係の指定である。或いは、パスワード開示許容情報はパスワード共有サーバ2Aのユーザ関係保持処理部23が保持するグループの指定である。パスワード開示許容情報として、パスワード開示対象のユーザをメールアドレスのリストで指定する事もできる。
 暗号化データ(D1)は暗号化対象データ(D)をデータ暗号化用暗号鍵(k1)で暗号化した結果である。なお、識別トークン読み取りの時点で、ユーザ登録処理部31を用いたパスワード共有サーバ2Aへのユーザ登録、又はログイン処理部32を用いた鍵共有サーバ2Aへのログインは完了している想定である。その結果、識別トークン保存部51にはパスワード共有サーバ2Aから送られた有効な識別トークンが保存される。
 この実施例では、非対称鍵暗号の暗号鍵を想定している。暗号鍵生成部53はデータ暗号化用暗号鍵k1及びデータ復号用暗号鍵k2のペアを生成する。k1が公開鍵であり、k2が秘密鍵であってもよいし、その逆であってもよい。暗号鍵生成部53は、データ暗号化用暗号鍵k1をデータ暗号化部55に送り、データ復号用暗号鍵k2を情報送受信部54に送る。そして、データ復号用暗号鍵k2は第1の鍵共有サーバ2Aの鍵登録処理部24に送られる。対称鍵暗号を採用した場合、データ暗号化用暗号鍵k1とデータ復号用暗号鍵k2とは同一である。
 暗号化パラメータは暗号化に際して復号側と共有すべき各種暗号化のパラメータである。例えば、カウンタモードのnonce(乱数)や初期ベクトル(IV)がそれに当たる。何らかの方法で復号側と予め暗号化パラメータが共有されている場合は、暗号化パラメータを復号側に明示的に通知する必要は無い。したがって、データ暗号化部55は通知不要の暗号化パラメータをデータ作成部56に送らない。本実施例では、パスワード登録処理部33Bは、データ作成部56に対して、下記7種類のデータ、つまりパスワードID、パスワードオーナID(メールアドレス)、パスワード取得用URL、パスワード開示期間、暗号化データD1、パスワード鍵導出パラメータ、及び暗号化パラメータを送る。
 図22A及び図22Bを併せ参照すると、パスワード登録処理部33Bにおいては、一例として次に示す詳細処理手順を実行する。
[S1(図22B参照)]ユーザがデータ入力部50に暗号化対象データ(D)を入力する。
[S2]ユーザがパスワード開示許容情報入力部52にパスワード開示許容情報を入力する。
[S3]ユーザがパスワード開示期間入力部66にパスワード開示期間を入力する。
[S4]ユーザがパスワード入力部62にパスワードを入力する。
[S5]パスワード入力部62がパスワードをパスワード鍵生成部63に送る。
[S6]パスワード鍵生成部63が受信したパスワードを基にパスワード鍵を生成する。
[S7]パスワード鍵生成部63が前記パスワード鍵生成に使用したパラメータをデータ作成部56に送る。これは段落[0084]で述べたパスワード鍵導出パラメータである。
[S8]パスワード鍵生成部63がパスワード鍵を暗号鍵ラップ部64に送る。[S9]データ入力部50がデータ暗号化部55に暗号化対象データ(D)を送る。
[S10]暗号鍵生成部53がデータ暗号化用暗号鍵(k1)及びデータ復号用暗号鍵(k2)を生成する。
[S11]暗号鍵生成部53がデータ暗号化用暗号鍵(k1)をデータ暗号化部55に、かつデータ復号用暗号鍵(k2)を暗号鍵ラップ部64に送る。
[S12]暗号鍵ラップ部64がパスワード鍵でデータ復号用暗号鍵(k2)をラップ(暗号化)する。前記ラップの結果得られるデータをk3と表記する。
[S13]暗号鍵ラップ部64がラップした暗号鍵(k3)をデータ作成部56に送る。
[S14]データ暗号化部55がデータ暗号化用暗号鍵(k1)で暗号化対象データ(D)を暗号化し、暗号化データ(D1)及び暗号化パラメータをデータ作成部56に送る。ここにいう暗号化パラメータは、例えば段落[0224]に記載のnonceである。
[S15]情報送受信部54が識別トークン保存部51から識別トークンを読み取る。
[S16]情報送受信部54がパスワード開示許容情報入力部52からパスワード開示許容情報を読み取る。
[S17]情報送受信部54がパスワード開示期間入力部66からパスワード開示期間を読み取る。
[S18]情報送受信部54がパスワード入力部62からパスワードを読み取る。
[S19]情報送受信部54が識別トークン、パスワード、パスワード開示許容情報、及びパスワード開示期間をパスワード登録処理部24に送る。
[S20]情報送受信部54がパスワード登録処理部24からパスワードID、パスワードオーナID、及びパスワード取得用URLを受け取る。
[S21]情報送受信部54がデータ作成部56にパスワードID、パスワードオーナID、パスワード取得用URL、及びパスワード開示期間を送る。
[S22]データ作成部56がパスワード鍵導出パラメータ、パスワード鍵でラップされたデータ復号用暗号鍵(k3)、暗号化データ(D1)、暗号化パラメータ、パスワードID、パスワードオーナID、パスワード取得用URL、及び、パスワード開示期間を含むデータを出力する。
 上記パスワード登録処理部33Bと連携するデータ作成処理部34を構成するデータ作成部56は、上記パスワード登録処理部33Bから上記8種類のデータ(パスワードID、パスワードオーナID(メールアドレス)、ラップされたデータ復号用暗号鍵、パスワード取得用URL、パスワード開示期間、暗号化データD1、暗号化パラメータ、及びパスワード鍵導出パラメータ)を受け取り、図23に示すように整形してファイルに書き出す。
 図23に示す例では、xml形式で出力している。<data-soc>エレメントは全体の親要素である。当該エレメントの属性numは当該要素の中に暗号化データが一つ含まれることを示している。<datum-soc>エレメントが暗号化データを含む要素である。<datum-soc>エレメントは6つの子要素:<owner>、<nonce>、<salt>、<pswd-id>、<period>、及び<content>を持つ。<owner>には鍵オーナIDを記載する。本実施例では、foo@zoo.comというメールアドレスが鍵オーナIDであることを<owner>エレメントのemail属性に記載している。
 <nonce>は段落[0225][S14]でデータ作成部56が受け取った暗号化パラメータである。ここでは、その値をbase64でエンコードして記載している。<salt>は段落[0225][S7]でデータ作成部56が受け取ったパスワード鍵導出パラメータである。この値も同じくbase64エンコードして記載している。<pswd-id>には、第1のパスワード共有サーバ2Aのパスワード登録処理部24からパスワード登録処理部33Bの情報送受信部54が受け取ったパスワードIDを記載する。図23の例では、base64でエンコードしたパスワードIDの値を、<pswd-id>エレメントの内部テキストとして記載している。また、<pswd-id>エレメントのurl-soc属性には「https://www.example2021.com/api/getPswd」というパスワード取得用URLを記載している。
 <period>エレメントにはパスワード開示期間が記載されている。<period>エレメントのnbf属性とexp属性とはミリ秒単位のUTC(協定世界時)であり、それぞれパスワード開示開始時刻及びパスワード開示終了時刻を示す。なお、nbfは「not before」、expは「expiration」の略である。<period>エレメントのiat属性はデータ作成時刻であり、nbfやexp同様ミリ秒単位のUTCで表されている。iat属性の値はデータ作成部56が取得した現在時刻である。なお、iatは「issued at」の略である。
 <key>エレメントの内部テキストは、base64でエンコードしたラップされたデータ復号用暗号鍵である。このラップされたデータ復号用暗号鍵は段落[0225][S13]においてデータ作成部56が暗号鍵ラップ部64から受け取ったものである。
 <content>エレメントの内部テキストは、base64でエンコードした暗号化データD1である。図23に示すような、パスワードID、パスワードオーナID、パスワード取得用URL、パスワード開示期間、暗号化データD1、パスワード鍵導出パラメータ、及び暗号化パラメータを含む形式のデータを以下においては暗号化データと記載することがある。ただし、この暗号化データは、パスワードオーナID、パスワード取得用URL、パスワード鍵導出パラメータ、及び暗号化パラメータを必ず含むとは限らない。
 データ作成部56が出力するデータはファイルに限るものではない。例えば、図23のようなxmlデータ、或いはhtmlデータをインターネット上の掲示板や個人のブログに書き込んでもよい。又は、クラウドストレージでデータを公開してもよい。上述した暗号化データは誰でも入手可能であるが、それを復号できるのは、第1のパスワード共有サーバ2Aからパスワードを入手できる登録ユーザのみである。それは、例えば、パスワードを登録したユーザからパスワード開示許容情報の中でメールアドレスを指定されたユーザである。又は、パスワードを登録したユーザが「親友」としてユーザ関係保持処理部23に登録したユーザである。(サーバに登録されたパスワード開示許容情報が「親友」である場合。)
 [第2のパスワード登録クライアント端末の詳細]
 パスワード共有システム1における第2のパスワード登録クライアント端末3A2の詳細について、図1、図19及び関連図を併せ参照して説明する。
 図19を参照すると、パスワード登録クライアント端末3Aは、第2のパスワード登録クライアント端末3A2としては、機能構成要素として、ユーザ登録処理部31、ログイン処理部32、パスワード登録処理部33C、及びデータ作成処理部34を備える。
 第2のパスワード登録クライアント端末3A2は、パスワード削除処理部37、パスワード開示期間変更処理部38、及びパスワード開示許容情報変更処理部39などを実施形態(実施例)に応じて更に備える。
 第2のパスワード登録クライアント端末3A2の基本的特徴要素は、識別トークン保存部51、パスワード開示許容情報入力部52、暗号鍵生成部53、パスワード鍵生成部63、暗号鍵ラップ部64、情報送受信部(ネットワークアクセス部)54、データ暗号化部55、及びデータ作成部56を含む(図24A参照)。
 第2のパスワード登録クライアント端末3A2は、第1のパスワード登録クライアント端末3A1におけるパスワード入力部62を含まない。
 つまり、第2のパスワード登録クライアント端末3A2は、サーバを含むパスワード共有システム1に適用可能なパスワード登録機能を有するクライアント端末であって、認証済みユーザであることを示す識別トークン(証拠)を保存する識別トークン保存部51と、パスワード開示許容範囲を指定するパスワード開示許容情報を入力されるパスワード開示許容情報入力部52とを含む。
 また、第2のパスワード登録クライアント端末3A2は、識別トークン保存部51に保存された識別トークンと、パスワード開示許容情報入力部52に入力されたパスワード開示許容情報とを送信情報としてパスワード共有サーバ2(2B)に送信し、送信情報に対応するパスワード及び当該暗号パスワードのパスワード識別情報(パスワードID)をパスワード共有サーバ2から受信する情報送受信部(ネットワークアクセス部)54とを含む。このパスワードはパスワード共有サーバ2が生成したものである。
 更に、第2のパスワード登録クライアント端末3A2は、暗号化対象データの入力に応じて、暗号鍵生成部53がデータ暗号化用暗号鍵とデータ復号用暗号鍵とを生成し、前記データ暗号化用暗号鍵を用いて暗号化対象データを暗号化し、暗号化した暗号化データを出力するデータ暗号化部55と、情報送受信部54によりパスワード共有サーバ2(2B)から受信したパスワードに基づいて、データ復号用暗号鍵をラップ(暗号化)するためのパスワード鍵を生成するパスワード鍵生成部63と、パスワード鍵生成部63が生成したパスワード鍵を用いて暗号鍵生成部53が生成した前記データ復号用暗号鍵をラップする暗号鍵ラップ部64と、暗号鍵ラップ部64が出力した前記ラップされたデータ復号用暗号鍵と、情報送受信部54がパスワード共有サーバ2(2B)から受信したパスワードIDと、データ暗号化部55が出力した暗号化データとの入力に応じて、前記ラップされたデータ復号用暗号鍵と、パスワードID及び暗号化データを含むデータを出力するデータ作成部56とを含む。
 図24Aを参照すると、第2のパスワード登録クライアント端末3A2におけるパスワード登録処理部33Cは、細部構成要素として、データ入力部50、識別トークン保存部51、パスワード開示許容情報入力部52、情報送受信部(ネットワークアクセス部)54、暗号鍵生成部53、パスワード鍵生成部63、暗号鍵ラップ部64,及びデータ暗号化部55を含むように構成可能である。これらの構成要素は他の処理部と共有されるものを含む。このパスワード登録処理部33Cは、データ作成処理部34(図19参照)を構成するデータ作成部56と連携する。
 また、第2のパスワード登録クライアント端末3A2におけるパスワード登録処理部33Cは、第2のパスワード共有サーバ2Bにおけるパスワード登録処理部24Bと通信する。
 図24A及び図24Bを併せ参照すると、パスワード登録処理部33Cにおいては、データ入力部50、識別トークン保存部51、パスワード開示許容情報入力部52、情報送受信部54、暗号鍵生成部53、パスワード鍵生成部63、暗号鍵ラップ部64,及びデータ暗号化部55が協働することにより、一例として次に示す詳細処理手順を実行する。
[S1(図24B参照)]ユーザがデータ入力部50に暗号化対象データ(D)を入力する。
[S2]ユーザがパスワード開示許容情報入力部52にパスワード開示許容情報を入力する。
[S3]情報送受信部54が識別トークン保存部51から識別トークンを読み取る。
[S4]情報送受信部54がパスワード開示許容情報入力部52からパスワード開示許容情報を読み取る。
[S5]情報送受信部54が識別トークン及びパスワード開示許容情報をパスワード登録処理部24に送る。
[S6]情報送受信部54がパスワード登録処理部24からパスワード、及びパスワードIDを受け取る。
[S7]情報送受信部54がデータ作成部56にパスワードIDを送る。
[S8]情報送受信部54がパスワード鍵生成部63にパスワードを送る。
[S9]パスワード鍵生成部63が受信したパスワードに基づいてパスワード鍵を生成する。
[S10]パスワード鍵生成部63が、[S9]において生成したパスワード鍵を暗号鍵ラップ部64に送り、かつ、[S9]でパスワード鍵を生成する際に使用したパスワード鍵導出パラメータをデータ作成部56に送る。
[S11]暗号鍵生成部53がデータ暗号化用暗号鍵(k1)とデータ復号用暗号鍵(k2)を生成する。
[S12]暗号鍵生成部53がデータ暗号化用暗号鍵(k1)をデータ暗号化部55に、かつ、データ復号用暗号鍵(k2)を暗号鍵ラップ部64に送る。
[S13]暗号鍵ラップ部64が[S10]で受信したパスワード鍵でデータ復号用暗号鍵(k2)をラップ(暗号化)する。(その暗号化の結果をk3と表記する。)
[S14]暗号鍵ラップ部64がラップした暗号鍵(k3)をデータ作成部56に送る。
[S15]データ暗号化部55がデータ入力部50から暗号化対象データ(D)を読み取る。
[S16]データ暗号化部55がデータ暗号化用暗号鍵(k1)で暗号化対象データ(D)を暗号化し、当該暗号化の結果である暗号化データ(D1)及び暗号化パラメータをデータ作成部56に送る。
[S17]データ作成部56がパスワード鍵導出パラメータ、ラップされた暗号鍵(k3)、暗号化データ(D1)、暗号化パラメータ、パスワードID、パスワードオーナID、及び、パスワード取得用URLを含むデータを出力する。
データ作成部56が出力するパスワードオーナIDは、第2のパスワード登録クライアント端末3A2を使用するユーザのメールアドレスである。このメールアドレスはユーザーが予めデータ作成部56に登録してあるものとする。また、データ作成部56が出力するパスワード取得用URLもデータ作成部56が予め保持しているものである。
 [第3のパスワード登録クライアント端末の詳細]
 パスワード共有システム1における第3のパスワード登録クライアント端末3A3の詳細について、図1、図19及び関連図を併せ参照して説明する。
 図19を参照すると、パスワード登録クライアント端末3Aは、第3のパスワード登録クライアント端末3A3としては、機能構成要素として、ユーザ登録処理部31、ログイン処理部32、パスワード登録処理部33D、及びデータ作成処理部34を備える。
 また、第3のパスワード登録クライアント端末3A3は、パスワード削除処理部37、パスワード開示期間変更処理部38、及びパスワード開示許容情報変更処理部39などを実施形態(実施例)に応じて更に備える。
 図25Aを参照すると、第3のパスワード登録クライアント端末3A3の基本的特徴要素は、データ入力部50、識別トークン保存部51、鍵開示許容情報入力部52、暗号鍵生成部53、パスワード入力部62、暗号鍵変形部67、情報送受信部(ネットワークアクセス部)54、データ暗号化部55、及びデータ作成部56を含む。
 第3の鍵登録クライアント端末3A3は、第1のパスワード登録クライアント端末3A1に対比し、暗号鍵ラップ部64に変わって暗号鍵変形部67を含む。暗号鍵変形部は、例えば段落[0085]や段落[0242]に記載した方法によって、暗号鍵を変形してデータ暗号化用の暗号鍵を作る。また、第1のパスワード登録クライアント端末3A1に対比して、パスワード鍵生成部を含まない。
 第3の鍵登録クライアント端末3A3の情報送受信部54は、識別トークン保存部51に保存された識別トークンと、パスワード入力部62に入力されたパスワードと、パスワード開示許容情報入力部52に入力されたパスワード開示許容情報とを送信情報としてパスワード共有サーバ2(2A)に送信し、送信情報に対応するパスワードIDを鍵共有サーバ2(2A)から受信する。
 ここで、第3のパスワード登録クライアント端末3A3を利用するユーザがパスワード入力部62に入力するパスワードは、ユーザーが任意に生成したものであっても良いし、乱数に基づいてプログラムによって生成されたものであっても良いが、これに限るものではない。
 図25Aを参照すると、第3のパスワード登録クライアント端末3A3におけるパスワード登録処理部33Dは、細部構成要素として、データ入力部50、識別トークン保存部51、パスワード開示許容情報入力部52、暗号鍵生成部53、情報送受信部(ネットワークアクセス部)54、データ暗号化部55、パスワード入力部62、及び暗号鍵変形部67を含むように構成可能である。これらの構成要素は他の処理部と共有されるものを含む。このパスワード登録処理部33Dは、データ作成処理部34(図19参照)を構成するデータ作成部56と連携する。
 また、第3のパスワード登録クライアント端末3A3におけるパスワード登録処理部33Dは、第1のパスワード共有サーバ2Aにおけるパスワード登録処理部24と通信する。
 図25A及び図25Bを併せ参照すると、パスワード登録処理部33Dにおいては、データ入力部50、識別トークン保存部51、パスワード開示許容情報入力部52、暗号鍵生成部53、情報送受信部54、データ暗号化部55、パスワード入力部62、及び暗号鍵変形部67が協働することにより、次に示す詳細処理手順を実行する。
[S1(図25B参照)]ユーザがデータ入力部50に暗号化対象データ(D)を入力する。
[S2]ユーザがパスワード開示許容情報入力部52にパスワード開示許容情報を入力する。
[S3]ユーザがパスワード入力部62にパスワードを入力する。
[S4]パスワード入力部62が暗号鍵変形部67にパスワードを送る。
[S5]データ入力部50がデータ暗号化部55に暗号化対象データ(D)を送る。
[S6]暗号鍵生成部53がデータ暗号化用暗号鍵(k1)及びデータ復号用暗号鍵(k2)を生成する。
[S7]暗号鍵生成部53がデータ暗号化用暗号鍵(k1)を暗号鍵変形部67に送る。
[S8]暗号鍵生成部53がデータ復号用暗号鍵(k2)をデータ作成部56に送る。
[S9]暗号鍵変形部67がパスワードを用いてデータ暗号化用暗号鍵(k1)を変形し、パスワードで変形したデータ暗号化用暗号鍵(k3)を生成する。
[S10]暗号鍵変形部67がパスワードで変形したデータ暗号化用暗号鍵(k3)をデータ暗号化部55に送る。
[S11]暗号鍵変形部67が[S9]における鍵変形に使用した鍵変形パラメータをデータ作成部56に送る。
[S12]データ暗号化部55がパスワードで変形したデータ暗号化用暗号鍵(k3)で暗号化対象データ(D)を暗号化し、暗号化データ(D1)及び暗号化パラメータをデータ作成部56に送る。
[S13]情報送受信部54が識別トークン保存部51から識別トークンを読み取る。
[S14]情報送受信部54がパスワード開示許容情報入力部52からパスワード開示許容情報を読み取る。
[S15]情報送受信部54がパスワード入力部62からパスワードを読み取る。
[S16]情報送受信部54が識別トークン、パスワード、及び鍵開示許容情報をパスワード登録処理部24に送る。
[S17]情報送受信部54がパスワード登録処理部24からパスワードIDを受け取る。
[S18]情報送受信部54がデータ作成部56にパスワードIDを送る。
[S19]データ作成部56が暗号化データ(D1)、データ復号用暗号鍵(k2)、及び、パスワードIDを含むデータを出力する。
 上記の例で用いる暗号鍵の変形について述べる。ここでは楕円曲線暗号を用いる。共通パラメータとして楕円曲線Eと生成元Pが公開されている。この場合、秘密鍵sに対してQ=sPが公開鍵である。この公開鍵Qを、パスワードρを用いて変形する。ρはパスワードを適当な方法で数値化したものである。例えば、パスワードは16文字の数字とアルファベット大文字又は小文字であるとすると、パスワードは各文字のASCIIコード(1バイト)を16個順に並べた16バイトの数値として数値化する事ができる。ここではパスワードρを用いて、Q′=(s+mρ)Pを変形した公開鍵とする。また、この場合sはデータ復号用暗号鍵として[S19]の出力データに含まれる。(従って公開される。)なお、mは適当な整数であり、mρはmとρの掛け算である。mは鍵変形パラメータの一例である。
 暗号化対象の文をMとすると(C1、C2)=(rP、rQ′+M)が暗号文となる。ただしrは適当な乱数である。暗号文に対してC2-(s+mρ)C1を計算する事で元の文Mを得るが、(s+mρ)C1はパスワードρを知っている受信者だけが計算可能である。即ち、この場合s′=s+ρがパスワードで変形された秘密鍵となる。
 上記[S19]で出力されるデータは、例えば図25Cに図示するものである。この例はxml形式で出力されており、<key>エレメントにデータ復号用暗号鍵(k2)、<pswd-id>エレメントにパスワードIDがbase64エンコードされて記載されている。<param>エレメントに鍵変形パラメータmが記載されている。暗号化データ(D1)は<cоntent>エレメントに記載されている。
 [第4のパスワード登録クライアント端末の詳細]
 パスワード共有システム1における第4のパスワード登録クライアント端末3A4の詳細について、図1、図19及び関連図を併せ参照して説明する。
 図19を参照すると、パスワード登録クライアント端末3Aは、第4のパスワード登録クライアント端末3A4としては、機能構成要素として、ユーザ登録処理部31、ログイン処理部32、パスワード登録処理部33E、及びデータ作成処理部34を備える。
 第4のパスワード登録クライアント端末3A4は、パスワード削除処理部37、パスワード開示期間変更処理部38、及びパスワード開示許容情報変更処理部39などを実施形態(実施例)に応じて更に備える。
 第4のパスワード登録クライアント端末3A4の基本的特徴要素は、識別トークン保存部51、パスワード開示許容情報入力部52、情報送受信部(ネットワークアクセス部)54、暗号鍵変形部67、データ暗号化部55、及びデータ作成部56を含む(図26A参照)。
 情報送受信部54は、識別トークン保存部51に保存された識別トークンと、パスワード開示許容情報入力部52に入力されたパスワード開示許容情報とを送信情報として鍵共有サーバ2(2C)に送信し、送信情報に対応するパスワードと、当該パスワードのパスワードIDとをパスワード共有サーバ2(2C)から受信する。
 図26Aを参照すると、第4のパスワード登録クライアント端末3A4におけるパスワード登録処理部33Cは、細部構成要素として、データ入力部50、識別トークン保存部51、パスワード開示許容情報入力部52、情報送受信部54、データ暗号化部55、暗号鍵生成部53、及び暗号鍵変形部67を含むように構成可能である。これらの構成要素は他の処理部と共有されるものを含む。この鍵登録処理部33Cは、データ作成処理部34(図19参照)を構成するデータ作成部56と連携する。
 また、第4の鍵登録クライアント端末3A4における鍵登録処理部33Eは、第2のパスワード共有サーバ2Cにおける鍵登録処理部24Cと通信する。
 図26A及び図26Bを併せ参照すると、鍵登録処理部33Cにおいては、データ入力部50、識別トークン保存部51、パスワード開示許容情報入力部52、情報送受信部54、暗号鍵生成部53、データ暗号化部55、及び暗号鍵変形部67が協働することにより、次に示す詳細処理手順を実行する。
[S1(図26B参照)]ユーザがデータ入力部50に暗号化対象データ(D)を入力する。
[S2]ユーザがパスワード開示許容情報入力部52にパスワード開示許容情報を入力する。
[S3]情報送受信部54が識別トークン保存部51から識別トークンを読み取る。
[S4]情報送受信部54がパスワード開示許容情報入力部52からパスワード開示許容情報を読み取る。
[S5]情報送受信部54が鍵登録処理部24Cに識別トークン、及びパスワード開示許容情報を送る。
[S6]情報送受信部54が鍵登録処理部24Cからパスワード、パスワードIDを受け取る。
[S7]情報送受信部54が鍵変形部67にパスワードを送る。
[S8]情報送受信部54がデータ作成部56にパスワードIDを送る。
[S9]暗号鍵生成部53が暗号鍵(K)を生成し、Kを暗号鍵変形部67と、データ作成部56に送る。
[S10]暗号鍵変形部67が暗号鍵(K)をパスワードで変形する。変形後の暗号鍵をK1とする。
[S11]暗号鍵変形部67が暗号鍵(K1)をデータ暗号化部55に送る。
[S12]データ入力部50がデータ暗号化部55に暗号化対象データ(D)を送る。
[S13]データ暗号化部55が暗号鍵(K1)で暗号化対象データ(D)を暗号化し、暗号化結果のデータ(D1)と暗号化パラメータをデータ作成部56に送る。
[S14]データ作成部56が暗号化データ(D1)と暗号化パラメータ、パスワードID,及び暗号鍵(K)を含むデータを出力する。
 上記[S9]で暗号鍵生成部53が生成する暗号鍵は対称鍵を想定している。従って、暗号鍵Kはデータ暗号化用にもデータ復号用にも利用できる。
 [S14]で出力されるデータは暗号鍵(K)を含んでいるが、データ暗号化に使用した暗号鍵はK1であり、K1を得ないとデータの復号はできない。K1は暗号鍵Kとパスワードを取得して作ることができる。即ち、データの秘匿性はパスワードの秘匿性に依存している。
 [第1のパスワード取得クライアント端末の詳細]
 パスワード共有システム1における第1のパスワード取得クライアント端末3B1の詳細について、図1、図27及び関連図を併せ参照して説明する。
 図27を参照すると、パスワード取得クライアント端末3Bは、第1のパスワード取得クライアント端末3B1としては、機能構成要素として、ユーザ登録処理部31、ログイン処理部32、パスワード取得処理部35D、及びデータ復号処理部36を備える。ここで、データ復号処理部36はデータ復号部61を含む(他の実施形態(実施例)においても同様である)。
 第1のパスワード取得クライアント端末3B1の基本的特徴要素は、識別トークン保存部51、情報送受信部(ネットワークアクセス部)54、暗号化データ取得部57、及びデータ復号部61を含む(図28A参照)。
 つまり、第1のパスワード取得クライアント端末3B1は、パスワード登録機能を有するクライアント端末3Aから出力されたデータを読み取るパスワード取得機能を有するクライアント端末であって、認証済みユーザであることを示す識別トークン(証拠)を保存する識別トークン保存部51と、読み取ったデータからパスワード識別情報(パスワードID)及び暗号化データを取得する暗号化データ取得部57とを含む。
 また、第1のパスワード取得クライアント端末3B1は、識別トークン保存部51に保存された識別トークンと、暗号化データ取得部57により取得された鍵IDとを送信情報として鍵共有サーバ2(2A/2B)に送信し、送信情報に対応するパスワードを鍵共有サーバ2(2A/2B)から受信する情報送受信部54を含む。
 更に、第1のパスワード取得クライアント端末3B1は、暗号化データ取得部57により取得された暗号化データとラップ(暗号化)された暗号鍵と、情報送受信部54により受信されたパスワードとを受け取り、パスワードから生成したパスワード鍵を用いてラップされた暗号鍵をアンラップ(復号)してデータ復号用暗号鍵を取り出し、データ復号用暗号鍵を用いて暗号化データを復号するデータ復号部61を含む。
 第1のパスワード取得クライアント端末3B1は次に示す各態様を採ることが可能である。なお、[態様32]から[態様35]は後述する第2のパスワード取得クライアント端末3B2においても適用可能である。
 [態様32]第1のパスワード取得クライアント端末3B1において、暗号化データ取得部57は、読み取ったデータが暗号化パラメータを含むとき、読み取ったデータから暗号化パラメータを取得し、
 データ復号部61は、暗号化データ取得部57により取得された暗号化パラメータを用いて暗号化データを復号する。
 [態様33]第1のパスワード取得クライアント端末3B1において、暗号化データ取得部57は、入力されたデータがパスワードオーナIDを含むとき、入力されたデータからパスワードオーナIDを取得し、
 情報送受信部54は、暗号化データ取得部57により取得されたパスワードオーナIDを鍵共有サーバ2(2A/2B)に送信する。
 [態様34]第1のパスワード取得クライアント端末3B1において、暗号化データ取得部57は、入力されたデータがパスワード取得用URLを含むとき、入力されたデータからパスワード取得用URLを読み取り、
 情報送受信部54は、暗号化データ取得部57により読み取られたパスワード取得用URLにアクセスして鍵共有サーバ2(2A/2B)と通信する。
 [態様35]第1のパスワード取得クライアント端末3B1において、暗号化データ取得部57は、入力されたデータがパスワード開示期間又はデータ作成日時を含むとき、入力されたデータからパスワード開示期間又はデータ作成日時を読み取り、ユーザに対してパスワード開示期間又はデータ作成日時を表示するように処理する。
 第1のパスワード取得クライアント端末3B1におけるユーザ登録処理部31及びログイン処理部32は、上述した第1のパスワード登録クライアント端末3A1などと同様の構成要素を含んで同様に機能し、当業者が容易に理解できるので、ここでの説明を省略する。
 図28Aを参照すると、第1のパスワード取得クライアント端末3B1における鍵取得処理部35Dは、細部構成要素として、識別トークン保存部51、情報送受信部54、暗号化データ取得部57、暗号鍵アンラップ部65、及びパスワード開示期間表示部58を含むように構成可能である。これらの構成要素は他の処理部と共有されるものを含む。このパスワード取得処理部35Dは、データ復号処理部36(図27参照)を構成するデータ復号部61と連携する。
 第1のパスワード取得クライアント端末3B1におけるパスワード取得処理部35Dは、第1のパスワード共有サーバ2A又は第2の鍵共有サーバ2Bにおける鍵開示処理部25と通信する。
 図28A及び図28Bを併せ参照すると、パスワード取得処理部35Dにおいては、識別トークン保存部51、情報送受信部54、暗号化データ取得部57、暗号鍵アンラップ部65、及びパスワード開示期間表示部58が協働することにより、一例として図28Bに示す処理手順S1~S14を実行する。
 処理手順S1において、ユーザは暗号化データ取得部57に予め取得した暗号化データ(図23に示す6種類のデータ)を入力する。
 処理手順S2において、暗号化データ取得部57が暗号化データからパスワードID(<pswd-id>エレメント)、パスワードオーナID(<оwner>エレメントのemail属性)、及びパスワード取得用URL(<cоntent>エレメントのurl-sоc属性)を読み取り、情報送受信部54に送る。ここで、パスワードオーナIDは、図23に示す暗号化データに関してはメールアドレスである。
 処理手順S3において、暗号化データ取得部57が暗号化データから暗号化データD1及び暗号化パラメータを読み取り、データ復号部61に送る。
 処理手順S4において、暗号化データ取得部57が暗号化データからラップ(暗号化)されたデータ復号用暗号鍵(<key>エレメント)を読み取り(それをK1とする)、暗号鍵アンラップ部65に送る。
 処理手順S5において、暗号化データ取得部57が暗号化データから鍵開示期間(<periоd>エレメント)を読み取り、鍵開示期間表示部58に送る。
 処理手順S6において、鍵開示期間表示部58が鍵開示期間を表示する。これは例えば次のような表示となる。
鍵開示開始日時(時刻):2022/05/02 15:28:45
鍵開示終了日時(時刻):2022/05/10 15:28:45
データ作成日時(時刻):2022/04/30 15:28:45
 後に(処理手順S10において)、鍵共有サーバからエラー(結果)が返って来てパスワードが得られなかった場合、第1のパスワード取得クライアント端末3B1を利用するユーザは、このパスワード開示期間の表示を見ることにより、例えば、パスワード開示終了日時を過ぎている事を理解する事ができる。なお、例えば、「パスワード開示終了時刻はデータ作成時刻から一週間」という暗黙のルールがある場合には、データ作成日時が記載されていれば、パスワード開示終了時刻が暗号化データに記載されていない場合も、取得処理部35Dはパスワード開示終了時刻を表示する事ができる。
 処理手順S7において、情報送受信部54は識別トークン保存部51から識別トークンを読み取る。処理手順S7より前に、ユーザ登録処理部31による鍵共有サーバへのユーザ登録、又はログイン処理部32による鍵共有サーバへのログインが完了している事が前提であるが、ユーザ登録又はログインの結果、識別トークン保存部51に鍵共有サーバから送られた識別トークンが保存される。
 処理手順S8において、情報送受信部54は、パスワード取得用URLが示すパスワード共有サーバのパスワード開示処理部25に識別トークン、パスワードID、及びパスワードオーナIDを送る。
 処理手順S9において、情報送受信部54は鍵共有サーバの鍵開示処理部25から鍵開示要求に対する結果を受け取る。
 処理手順S10における判定結果がエラーでない場合、パスワード開示処理部25からパスワードが送られている。 処理手順S11において、情報送受信部54はパスワードをパスワード鍵生成部63に送る。
 処理手順S12において、パスワード鍵生成部63は受け取ったパスワードからパスワード鍵を生成し、パスワード鍵を暗号鍵アンラップ部65に送る。
 処理手順S13において、暗号鍵アンラップ部65は処理手順S12で受信したパスワード鍵を用いて、処理手順S4で受け取った暗号鍵(K1)をアンラップ(復号)してデータ復号用暗号鍵(K)を得る。
 処理手順S14において、暗号鍵アンラップ部65がアンラップしたデータ復号用暗号鍵(K)をデータ復号部65に送る。
 なお、ユーザにより暗号化データ取得部57に入力される暗号化データはパスワード取得用URLを含まない場合がある。この場合、パスワード取得処理部35Dは予め保持しているパスワード取得先にアクセスする。或いは、予め保持しているURLにアクセスして、パスワード取得先URLを取得するようにしてもよい。
 図29Aを参照すると、第1のパスワード取得クライアント端末3B1におけるデータ復号処理部36は、細部構成要素として、データ入力部36a、暗号鍵入力部36b、データ出力部36c、及びデータ復号部61を含むように構成可能である。このデータ復号処理部36は鍵取得処理部35Dと連携する。
 図29A及び図29Bを併せ参照すると、データ復号処理部36においては、データ入力部36a、暗号鍵入力部36b、データ出力部36c、及びデータ復号部61が協働することにより、一例として図29Bに示す処理手順S1~S7を実行する。
 図29Bに示す処理手順S1において、データ入力部36aは鍵取得処理部35Dにおける暗号化データ取得部57から暗号化データD1及び暗号化パラメータを受け取る。
 処理手順S2において、データ入力部36aはデータ復号部61に暗号化データD1及び暗号化パラメータを送る。
 暗号鍵入力部36bは、処理手順S3において、鍵取得処理部35Dにおける情報送受信部54から暗号鍵(データ復号用暗号鍵)を受け取り、処理手順S4において、この暗号鍵をデータ復号部61に送る。
 処理手順S5において、データ復号部61は受け取った暗号鍵により暗号化データD1を復号する。このとき、暗号化パラメータが使用される。
 データ復号部61における暗号化パラメータの機能について補足すると、カウンタモードのnonceは、例えばカウンター値とXORする事で暗復号のカウンタブロックを生成する。カウンタモードのnonceは、同一平文の暗号化の結果を暗号化の度に変化させるために、暗号化の都度変更するパラメータである。初期ベクトル(IV)も同様であり、例えばCBCモードにおいて、最初の平文ブロックの暗号化の前にXORする値である。IVを暗号化の都度変化させる事により、同一平文に対する暗号文が暗号化の都度変化する。CBCモードの復号の際は、最初のブロックの復号結果にIVをXORする事で最初の平文ブロックを得る。
 処理手順S6において、データ復号部61は復号結果のデータをデータ出力部36cに送る。
 処理手順S7において、データ出力部36cは復号結果のデータを出力する。データ出力部36cから出力されるデータは、元のデータの形式に応じてテキスト及び画像(静止画像及び/又は動画像)などである。第1の鍵取得クライアント端末3B1においては、データ出力部36cから出力されるデータを適切な形態で表示する。
 [第2のパスワード取得クライアント端末の詳細]
 パスワード共有システム1における第2のパスワード取得クライアント端末3B2の詳細について、図1、図27及び関連図を併せ参照して説明する。
 図27を参照すると、パスワード取得クライアント端末3Bは、第2のパスワード取得クライアント端末3B2としては、機能構成要素として、ユーザ登録処理部31、ログイン処理部32、パスワード取得処理部35E、及びデータ復号処理部36を備える。
 第2のパスワード取得クライアント端末3B2の基本的特徴要素は、識別トークン保存部51、情報送受信部(ネットワークアクセス部)54、暗号化データ取得部57、暗号鍵変形部66、及びデータ復号部61を含む(図30A参照)。
 第2のパスワード取得クライアント端末3B2は、第1のパスワード取得クライアント端末3B1に対比し、パスワード鍵生成部63、及び暗号鍵アンラップ部65を含まず、暗号鍵変形部66を含む。
 図30Aを参照すると、第2のパスワード取得クライアント端末3B2におけるパスワード取得処理部35Eは、細部構成要素として、識別トークン保存部51、情報送受信部54、暗号化データ取得部57、及び暗号鍵変形部66を含むように構成可能である。この鍵取得処理部35Eは、データ復号処理部36(図27参照)を構成するデータ復号部61と連携する。
 第2のパスワード取得クライアント端末3B2におけるパスワード取得処理部35Eは、第1の鍵共有サーバ2A又は第2の鍵共有サーバ2Cにおける鍵開示処理部25と通信する。
 図30A及び図30Bを併せ参照すると、パスワード取得処理部35Eにおいては、識別トークン保存部51、情報送受信部54、暗号化データ取得部57、及び暗号鍵変形部66が協働することにより、一例として図30Bに示す処理手順S1~S11を実行する。
 処理手順S1において、パスワード開示要求が必要になったとき、ユーザは暗号化データ取得部57に予め取得した暗号化データ(図25Cに示すデータ)を入力する。
 処理手順S2において、暗号化データ取得部57は、入力された暗号化データからパスワードID(図25Cの<pswd-id>エレメント)を読み取り、情報送受信部54に送る。
処理手順S3において、暗号化データ取得部57は、入力された暗号化データから暗号化データ(D1)(<cоntent>エレメント)を読み取り、データ復号部61に送る。
 処理手順S4において、暗号化データ取得部57は、入力された暗号化データから暗号鍵(K1とする)(<key>エレメント)と鍵変形パラメータ(<param>エレメント)を読み取り、この暗号鍵(K1)を暗号鍵変形部66に送る。
 処理手順S5において、情報送受信部54は識別トークン保存部51から識別トークンを読み取る。
 処理手順S6において、情報送受信部54はパスワード共有サーバに識別トークンとパスワードIDを送る。
 処理手順S7において、情報送受信部54は鍵共有サーバ2の鍵開示処理部25から処理手順S6でパスワード共有サーバに送信した要求の結果を受信する。この結果は、成功の場合はパスワードであるが、失敗の場合はエラーを受信する。
 処理手順S8において、情報送受信部54がパスワード共有サーバからの応答がエラーか否かを調べる。エラーの場合、処理を終了する。エラーでない場合、処理手順S9に進む。
 処理手順S9において、情報送受信部54はパスワード共有サーバからパスワードを受信している。情報送受信部54は当該パスワードを鍵変形部66に送る。
 処理手順S10において、暗号鍵変形部66は、処理手順S4で受信した暗号鍵(K1)を処理手順S9で受信したパスワードで変形して、データ復号用暗号鍵(K)を得る。その際、処理手順S4で受信した鍵変形パラメータを使用する。パスワードによる暗号鍵の変形については既述の通りである。
 処理手順S11において、暗号鍵変形部66はデータ復号用暗号鍵(K)をデータ復号部61に送る。
 データ復号部61は、取得したデータ復号用暗号鍵(K)によって、入力された暗号化データ中の暗号化データ(D1)を復号し、復号したデータをテキスト及び画像(静止画像及び/又は動画像)などに再生する。
 [一実施の形態における変形例]
 上述した一実施の形態の鍵共有システム1においては、次に記載する変形例を採用することが可能である。
 (1)上述した一実施の形態の鍵共有システム1において、例えば、鍵共有サーバ2(2A/2B/2C)が鍵削除処理部26、鍵開示期間変更処理部27、及び鍵開示許容情報変更処理部28を更に含み、鍵登録クライアント端末3Aが鍵削除処理部37、鍵開示期間変更処理部38、及び鍵開示許容情報変更処理部39を更に含む構成を採ることが可能である。
 これにより、ユーザが鍵共有サーバ2に登録した暗号鍵を削除すること、ユーザが鍵共有サーバ2に登録した暗号鍵の開示期間を変更すること、及びユーザが鍵共有サーバ2に登録した暗号鍵の鍵開示許容情報を変更することを可能にする。
 (2)上述した一実施の形態の鍵共有システム1において、鍵共有サーバ2(2A/2B/2C)による鍵開示は、広告の視聴や課金と関連付ける事ができる。例えば、鍵共有サーバ2は、鍵開示を要求するユーザが広告動画を視聴した事を確認後に鍵を提供する。また、鍵共有サーバ2は、鍵開示を要求するユーザがサービス利用料金を支払った事を確認後に鍵を提供する。
 (3)上述した一実施の形態の鍵共有システム1において、識別トークンは認証済みユーザを示すものである。メールアドレス認証済みのユーザに対して、当該ユーザが保持する別のメールアドレスや電話番号などの登録を鍵共有サーバ2が要求して、二要素認証又は多要素認証を行ってもよい。このとき、本人確認の第2の要素としてスマートフォンを登録することが可能である。
 (4)上述した一実施の形態の鍵共有システム1において、鍵開示の安全性を高めるために、鍵共有サーバ2(2A/2B/2C)と、鍵取得クライアント端末3Bとの間で、鍵開示の際にワンタイムパスワードを用いてメールアドレスの再確認を行う構成を採ることが可能である。
 (5)上述した一実施の形態の鍵共有システム1におけるデータ暗号化用暗号鍵及びデータ復号用暗号鍵は、暗号鍵を生成する元となるデータに対応する暗号鍵生成元情報により代替可能である。
 (6)上述した一実施の形態の鍵共有システム1における第2の鍵登録クライアント端末3A2の変形例を述べる。当該変形例は、パスワード入力部62、パスワード鍵生成部63、及び暗号鍵ラップ部64を更に備える。パスワード入力部62に入力されたパスワードは、パスワード鍵生成部63に送られ、そこで生成されたパスワード鍵は暗号鍵ラップ部64に送られる。情報送受信部54は鍵共有サーバ2からデータ暗号化用暗号鍵に加えてデータ復号用暗号鍵も受信する。対称鍵暗号の場合、これらの暗号鍵は一致する。
 情報送受信部54は鍵共有サーバ2から受信したデータ復号用暗号鍵を暗号鍵ラップ部64に送付する。暗号鍵ラップ部64はパスワード鍵でデータ復号用暗号鍵を暗号化(ラップ)し、それを情報送受信部54に送る。情報送受信部54はラップされたデータ復号用暗号鍵を識別トークン保存部51に保存された識別トークンと共に鍵共有サーバ2に送る。データ復号用暗号鍵の鍵識別情報は、情報送受信部54が鍵共有サーバ2からデータ暗号化用暗号鍵とデータ復号用暗号鍵とを受信した際、又は情報送受信部54が鍵共有サーバ2にラップしたデータ復号用暗号鍵を送信した際に、返信として鍵共有サーバ2から受け取る。
 (7)上述した変形例(6)の第2の鍵登録クライアント端末3A2と通信する第2の鍵共有サーバ2Bの変形例を述べる。当該変形例の第2の処理部は、データ暗号化用暗号鍵に加えてデータ復号用暗号鍵を上記クライアント端末に送信する。この際、必ずしも暗号鍵の鍵識別情報を送付する必要はない。第2の処理部は更に上記鍵登録クライアント端末からパスワード鍵でラップされたデータ復号用暗号鍵を識別トークンと共に受信する。受信したラップされたデータ復号用暗号鍵は、第2の処理部が当該鍵登録クライアント端末から受信した鍵開示許容情報と関連付けてデータベースに保存する。第2の処理部は、データ復号用暗号鍵に対応する鍵識別情報を、データ復号用暗号鍵を鍵登録クライアント端末に送付する際、又はラップしたデータ復号用暗号鍵を鍵登録クライアント端末から受信した際の返信として、鍵登録クライアント端末に送信する。
 この変形例の第2の鍵登録クライアント端末の第3の処理部は、第2の鍵取得クライアント端末から受信した鍵識別情報に対して、当該鍵識別情報に関連づいたラップされたデータ復号用暗号鍵を送信する。
 (8)上述した一実施の形態の鍵共有システム1における第1の鍵登録クライアント端末3A1の変形例を述べる。当該変形例はパスワード入力部62を更に備える。情報送信部54は、識別トークンとデータ復号用暗号鍵と鍵開示許容情報とに加えて、パスワード入力部62に入力されたパスワードを鍵共有サーバ2に送信し、鍵識別情報を取得する。
 (9)上述した変形例(8)の第1の鍵登録クライアント端末3A1と通信する第1の鍵共有サーバ2Aの変形例を述べる。第2の処理部は識別トークンと、データ復号用暗号鍵と、鍵開示許容情報とに加えてパスワードを受信する。第2の処理部は、パスワードからパスワード鍵を生成し、当該パスワード鍵を用いて受信したデータ復号用暗号鍵を暗号化(ラップ)する。第2の処理部は、ラップしたデータ復号用暗号鍵と鍵開示許容情報とをデータベースに格納し、ラップしたデータ復号用暗号鍵と鍵開示許容情報とをデータベース上で特定する鍵識別情報をこの第1の鍵登録クライアント端末3A1に送信する。
 [一実施の形態及び変形例における効果]
 上述した一実施の形態及び変形例の鍵共有システム1においては、識別トークン、鍵開示許容情報、鍵識別情報、及び複数種類の鍵の連携利用により、暗号化対象データを暗号化した暗号化データを一層安全に共有するための鍵共有処理技術を実現することができる。これにより、既存技術の問題点を解消することができる。
 [他の変形例]
 上述した一実施の形態及び変形例における処理はコンピュータで実行可能なプログラムとして提供され、CD-ROMやフレキシブルディスクなどの非一時的コンピュータ可読記録媒体、更には通信回線を経て提供可能である。
 また、上述した一実施の形態及び変形例における各処理はその任意の複数又は全てを選択し組合せて実施することもできる。
100 パスワード共有システム
101 パスワード共有サーバ
102 第1のクライアント端末
103 第2のクライアント端末
104 識別トークン発行部
105 パスワード供給部
106 検証部
107 パスワード登録部
108 暗号鍵生成部,
109 暗号鍵第1加工部
110 パスワード開示部
111 第1の識別トークン保存部
112 パスワード開示許容情報入力部
113 第1の情報送受信部
114 データ暗号化部
115 データ作成部
116 第2の識別トークン保存部
117 暗号化データ取得部
118 第2の情報送受信部
119 暗号鍵第2加工部
120 データ復号部
121 データベース
122 レコード
131、132 識別トークン
133 パスワード
134 パスワード開示許容情報
135 パスワード識別情報
136 データ暗号化用暗号鍵
137 データ復号用暗号鍵
138 加工されたデータ復号用暗号鍵
139 暗号化データ
140 データ
1   鍵共有システム
2   鍵共有サーバ
2A  第1の鍵共有サーバ
2B  第2の鍵共有サーバ
2C  第3の鍵共有サーバ
3   クライアント端末
3A  鍵登録クライアント端末
3B  鍵取得クライアント端末
3A1 第1の鍵登録クライアント端末
3A2 第2の鍵登録クライアント端末
3A3 第3の鍵登録クライアント端末
3A4 第4の鍵登録クライアント端末
3B1 第1の鍵取得クライアント端末
3B2 第2の鍵取得クライアント端末
4   通信ネットワーク

Claims (42)

  1.  1台以上のパスワード共有サーバと、パスワード登録及びデータ出力の機能を有する1台以上の第1のクライアント端末と、該第1のクライアント端末から出力されたデータを読み取る機能を有する1台以上の第2のクライアント端末とを備えるパスワード共有システムであって、
     前記第1のクライアント端末及び前記第2のクライアント端末に、認証済みであることを示す識別トークンを発行する識別トークン発行部と、
     パスワード又は該パスワードに基づいて生成されるパスワード鍵であるパスワード情報を供給するパスワード供給部と、
     前記第1のクライアント端末が送信した識別トークンを検証する検証部と、
     前記検証部で前記識別トークンが正しいことが確認できた場合に限り、前記パスワード供給部が供給した前記パスワード情報と、前記第1のクライアント端末が送信した前記パスワードの開示許容範囲を指定するパスワード開示許容情報とを、前記パスワード共有サーバが備えるデータベース内のレコードに格納すると共に、該レコードを特定するパスワード識別情報を前記第1のクライアント端末に送信するパスワード登録部と、
     データ暗号化用暗号鍵とデータ復号用暗号鍵の組を生成する暗号鍵生成部と、
     前記暗号鍵生成部が生成した前記データ復号用暗号鍵又は前記データ暗号化用暗号鍵の少なくともいずれか一方に対して、前記パスワード供給部が供給した前記パスワード情報に基づいて第1の加工を行うことにより、第1の加工がされた又はされないデータ復号用暗号鍵及びデータ暗号化用暗号鍵を夫々第1加工後データ復号用暗号鍵及び第1加工後データ暗号化用暗号鍵として生成し前記第1のクライアント端末に入力させる暗号鍵第1加工部と、
     前記第2のクライアント端末からのパスワード問合せ情報に含まれる前記パスワード識別情報及び前記識別トークンを取得し、該取得したパスワード識別情報に対応する前記パスワード共有サーバが備える前記データベース内のレコードから前記パスワード情報及び前記パスワード開示許容情報を取得し、該取得した識別トークンに対応するユーザの情報を取得し、該取得したパスワード開示許容情報が示す前記開示許容範囲に前記ユーザが含まれていることが確認できた場合に限り、前記取得したパスワード情報を前記第2のクライアント端末に送信するパスワード開示部と、
     を備えるパスワード共有システム。
  2.  前記第1のクライアント端末は、
     前記識別トークン発行部が発行した前記識別トークンを保存する第1の識別トークン保存部と、
     前記パスワード開示許容情報を入力するパスワード開示許容情報入力部と、
     前記パスワード開示許容情報入力部が入力した前記パスワード開示許容情報と前記第1の識別トークン保存部が保存する前記識別トークンとを前記検証部及び前記パスワード登録部に向けて送信し、該送信に応答して前記パスワード登録部が送信した前記パスワード識別情報を受信する第1の情報送受信部と、
     暗号化対象データの入力に応じて、前記暗号鍵第1加工部が出力した前記第1加工後データ暗号化用暗号鍵を用いて前記暗号化対象データを暗号化し、該暗号化の結果得られる暗号化データを出力するデータ暗号化部と、
     前記第1の情報送受信部が受信した前記パスワード識別情報と、前記暗号鍵加工部が出力した前記第1加工後データ復号用暗号鍵と、前記データ暗号化部が出力した前記暗号化データとを含む前記データを出力するデータ作成部と、
     を備える請求項1に記載のパスワード共有システム。
  3.  前記第2のクライアント端末は、
     前記識別トークン発行部が発行した前記識別トークンを保存する第2の識別トークン保存部と、
     前記読み取ったデータから前記パスワード識別情報と、前記加工されたデータ復号用暗号鍵と、前記暗号化データを取得する暗号化データ取得部と、
     前記暗号化データ取得部が取得した前記パスワード識別情報と、前記第2の識別トークン保存部が保存する前記識別トークンとを前記パスワード問合せ情報として前記パスワード開示部に向けて送信し、該送信に応答して前記パスワード開示部が送信した前記パスワード情報を受信する第2の情報送受信部と、
     前記暗号化データ取得部が取得した前記第1加工後データ復号用暗号鍵に対して、前記第2の情報送受信部が受信した前記パスワード情報に基づいて第2の加工を行うことにより、第2の加工がされたデータ復号用暗号鍵を生成する暗号鍵第2加工部と、
     前記暗号鍵第2加工部が生成した前記第2の加工がされたデータ復号用暗号鍵を用いて、前記暗号化データ取得部が取得した前記暗号化データに対して復号処理を実行するデータ復号部と、
     を備える請求項1に記載のパスワード共有システム。
  4.  前記暗号鍵生成部、前記パスワード供給部、及び前記暗号鍵第1加工部を、前記第1のクライアント端末に具備し、
     前記第1のクライアント端末は、前記パスワード供給部が供給した前記パスワード情報を、前記パスワード登録部を具備するサーバに送信する、
     請求項1に記載のパスワード共有システム。
  5.  前記暗号鍵生成部及び前記暗号鍵第1加工部を、前記第1のクライアント端末に具備し、
     前記パスワード供給部を、サーバに具備し、
     前記パスワード供給部を具備するサーバは、前記パスワード供給部が供給した前記パスワード情報を、前記暗号鍵第1加工部を具備する前記第1のクライアント端末及び前記パスワード登録部を具備するサーバに送信する、
     請求項1に記載のパスワード共有システム。
  6.  前記パスワード供給部及び前記暗号鍵生成部を、前記第1のクライアント端末に具備し、
     前記暗号鍵第1加工部を、サーバに具備し、
     前記第1のクライアント端末は、前記パスワード供給部が供給した前記パスワード情報を、前記パスワード登録部を具備するサーバ及び前記暗号鍵第1加工部を具備するサーバに送信し、前記暗号鍵生成部が生成した前記データ復号用暗号鍵または前記データ暗号化用暗号鍵を、前記暗号鍵第1加工部を具備する前記サーバに送信し、
     前記暗号鍵第1加工部を具備する前記サーバは、前記暗号鍵第1加工部が生成した前記第1加工後データ復号用暗号鍵または前記第1加工後データ暗号化用暗号鍵を、前記第1のクライアント端末に送信する、
     請求項1に記載のパスワード共有システム。
  7.  前記暗号鍵生成部を、前記第1のクライアント端末に具備し、
     前記パスワード供給部及び前記暗号鍵第1加工部を、1台のサーバに共に又は前記サーバとは異なるサーバに分散して具備し、
     前記第1のクライアント端末は、前記暗号鍵生成部が生成した前記データ復号用暗号鍵または前記データ暗号化用暗号鍵を、前記暗号鍵第1加工部を具備するサーバに送信し、
     前記パスワード供給部を具備するサーバは、前記パスワード供給部が供給した前記パスワード情報を、前記パスワード登録部を具備するサーバ及び前記暗号鍵第1加工部を具備するサーバに送信し、
     前記暗号鍵第1加工部を具備するサーバは、前記暗号鍵第1加工部が生成した前記第1加工後データ復号用暗号鍵または前記第1加工後データ暗号化用暗号鍵を、前記第1のクライアント端末に送信する、
     請求項1に記載のパスワード共有システム。
  8.  前記パスワード供給部を、前記第1のクライアント端末に具備し、
     前記暗号鍵生成部及び前記暗号鍵第1加工部を、1台のサーバに共に又は1台以上のサーバに分散して具備し、
     前記第1のクライアント端末は、前記パスワード供給部が供給した前記パスワード情報を、前記パスワード登録部を具備するサーバ及び前記暗号鍵第1加工部を具備するサーバに送信し、
     前記暗号鍵生成部を具備するサーバは、前記暗号鍵生成部が生成した前記データ復号用暗号鍵または前記データ暗号化用暗号鍵を、前記暗号鍵第1加工部を具備するサーバに送信し、
     前記暗号鍵第1加工部を具備するサーバは、前記暗号鍵第1加工部が生成した前記第1加工後データ復号用暗号鍵または前記第1加工後データ暗号化用暗号鍵を、前記第1のクライアント端末に送信する、
     請求項1に記載のパスワード共有システム。
  9.  前記パスワード供給部及び前記暗号鍵第1加工部を、前記第1のクライアント端末に具備し、
     前記暗号鍵生成部を、サーバに具備し、
     第1のクライアント端末は、パスワード供給部が供給したパスワード情報を、前記パスワード登録部を具備するサーバに送信し、
     前記暗号鍵生成部を具備するサーバは、前記暗号鍵生成部が生成した前記データ暗号化用暗号鍵または前記データ復号用暗号鍵を、前記暗号鍵第1加工部109を具備する前記第1のクライアント端末に送信する、
     請求項1に記載のパスワード共有システム。
  10.  前記パスワード供給部及び前記暗号鍵生成部を、1台のサーバに共に又は1台以上のサーバに分散して具備し、
     前記暗号鍵第1加工部を、前記第1のクライアント端末に具備し、
     前記パスワード供給部を具備するサーバは、前記パスワード供給部が供給した前記パスワード情報を、前記パスワード登録部を具備するサーバ及び前記暗号鍵第1加工部を具備する前記第1のクライアント端末に送信し、
     前記暗号鍵生成部を具備するサーバは、前記暗号鍵生成部が生成した前記データ暗号化用暗号鍵または前記データ復号用暗号鍵を、前記暗号鍵第1加工部を具備する前記第1のクライアント端末に送信する、
     請求項1に記載のパスワード共有システム。
  11.  前記パスワード供給部、前記暗号鍵生成部、及び前記暗号鍵第1加工部を、1台のサーバに共に又は1台以上のサーバに分散して具備し、
     前記パスワード供給部を具備するサーバは、前記パスワード供給部が供給した前記パスワード情報を、前記パスワード登録部を具備するサーバ及び前記暗号鍵第1加工部を具備するサーバに送信し、
     前記暗号鍵生成部を具備するサーバは、前記暗号鍵生成部が生成した前記データ暗号化用暗号鍵又は前記データ復号用暗号鍵を、前記暗号鍵第1加工部を具備するサーバ及び前記第1のクライアント端末に送信し、
     前記暗号鍵第1加工部を具備するサーバは、前記暗号鍵第1加工部が生成した前記第1加工後データ復号用暗号鍵または前記第1加工後データ暗号化用暗号鍵を、前記第1のクライアント端末に送信する、
     請求項1に記載のパスワード共有システム。
  12.  前記暗号鍵第1加工部は、前記パスワード供給部が供給する前記パスワード情報がパスワードである場合は当該パスワードからパスワード鍵を生成して当該パスワード鍵を用い、前記パスワード供給部が供給する前記パスワード情報がパスワード鍵である場合は当該パスワード鍵を用いて、前記暗号鍵生成部が生成した前記データ復号用暗号鍵を暗号化するラップ処理を実行することにより、前記第1加工後データ復号用暗号鍵を生成して出力し、前記暗号鍵生成部が生成した前記データ暗号化用暗号鍵をそのまま前記第1加工後データ暗号化用暗号鍵として出力し、
     前記第1のクライアント端末は、前記暗号鍵第1加工部が出力した前記第1加工後データ暗号化用暗号鍵によって暗号化対象データを暗号化して暗号化データを生成し、前記暗号化データを前記暗号鍵第1加工部が出力した前記第1加工後データ復号用暗号鍵及び前記パスワード識別情報と共に前記第2のクライアント端末に向けて送信し、
     前記第2のクライアント端末は、前記第1のクライアント端末から受信した前記パスワード識別情報を含む前記パスワード問合せ情報の送信に応答して前記パスワード開示部から受信した前記パスワードに基づいて前記パスワード鍵を生成し、該パスワード鍵を用いて前記第1のクライアント端末から受信した前記第1加工後データ復号用暗号鍵から元の前記データ復号用暗号鍵を復号するアンラップ処理を実行し、前記アンラップ処理により出力される前記データ復号用暗号鍵を用いて前記第1のクライアント端末から受信した前記暗号化データを復号する、
     請求項1乃至11のいずれか1項に記載のパスワード共有システム。
  13.  前記暗号鍵第1加工部は、前記パスワード供給部が供給する前記パスワード情報である前記パスワードを用いて、前記暗号鍵生成部が生成した前記データ暗号化用暗号鍵を変形することにより、前記第1加工後データ暗号化用暗号鍵を生成して出力し、前記暗号鍵生成部が生成した前記データ復号用暗号鍵をそのまま前記第1加工後データ復号用暗号鍵として出力し、
     前記第1のクライアント端末は、前記暗号鍵第1加工部が出力した前記第1加工後データ暗号化用暗号鍵によって暗号化対象データを暗号化して暗号化データを生成し、前記暗号化データを前記暗号鍵第1加工部が出力した前記第1加工後データ復号用暗号鍵及び前記パスワード識別情報と共に前記第2のクライアント端末に向けて送信し、
     前記第2のクライアント端末は、前記第1のクライアント端末から受信した前記パスワード識別情報を含む前記パスワード問合せ情報の送信に応答して前記パスワード開示部から受信した前記パスワード情報である前記パスワードを用いて、前記第1のクライアント端末から受信した前記第1加工後データ復号用暗号鍵を変形する変形処理を実行し、前記変形処理により出力される変形されたデータ復号用暗号鍵を用いて前記第1のクライアント端末から受信した前記暗号化データを復号する、
     請求項1乃至11のいずれか1項に記載のパスワード共有システム。
  14.  前記検証部、前記パスワード登録部、及び前記パスワード開示部は、前記パスワード共有サーバに具備される、請求項1に記載のパスワード共有システム。
  15.  前記検証部、前記パスワード登録部、及び前記パスワード開示部は、前記パスワード共有サーバ以外の1台のサーバに共に又は1台以上のサーバに分散して具備される、請求項1に記載のパスワード共有システム。
  16.  前記パスワード開示許容情報は、ユーザ間の関係、ユーザのグループの指定、及びメールアドレスのリストの少なくとも1つを含む、
     請求項1乃至11のいずれか1項に記載のパスワード共有システム。
  17.  前記パスワード登録部は、
     前記第1のクライアント端末から前記識別トークンと共にパスワード開示期間を受信し、
     前記パスワード開示期間を前記データベース内の前記レコードに保存し、
     前記パスワード開示部は、
     前記第2のクライアント端末から受信した前記パスワード識別情報に対応する前記データベース内のレコードから、前記パスワードと共に前記パスワード開示期間を取得し、
     現在時刻が前記パスワード開示期間に含まれているときに限り、前記取得したパスワード情報を前記第2のクライアント端末に送信する、
     請求項1乃至11のいずれか1項に記載のパスワード共有システム。
  18.  前記第1のクライアント端末は、
     該第1のクライアント端末のユーザによりパスワード開示開始時刻又はパスワード開示終了時刻を前記パスワード開示期間として入力されるパスワード開示期間入力部を更に備え、
     前記第1の情報送受信部は、前記パスワード開示期間入力部により入力された前記パスワード開示期間を前記パスワード登録部に向けて送信する、
     請求項17に記載のパスワード共有システム。
  19.  前記パスワード登録部は、パスワードオーナ識別子又はパスワード取得用URL(ユニフォームリソースロケータ)を前記第1のクライアント端末に送信する、
     請求項又は1乃至3のいずれか1項に記載のパスワード共有システム。
  20.  前記パスワード開示部は、
     前記第2のクライアント端末から前記識別トークン及び前記パスワード識別情報と共に第1のパスワードオーナ識別子を受信し、
     前記取得したパスワード識別情報に対応する前記データベース内のレコードから前記パスワード情報と共に、第2のパスワードオーナ識別子を取得し、
     前記第1のパスワードオーナ識別子と前記第2のパスワードオーナ識別子とが一致しているときに限り、前記取得したパスワード情報を前記第2のクライアント端末に送信する、
     請求項1乃至11のいずれか1項に記載のパスワード共有システム。
  21.  前記第1加工後データ暗号化用暗号鍵及び前記第1加工後データ復号用暗号鍵の少なくとも一方は、暗号鍵を生成する元となるデータに対応する暗号鍵生成元情報により代替可能である、
     請求項又は1乃至11のいずれか1項に記載のパスワード共有システム。
  22.  前記データ作成部は、暗号化パラメータ、パスワード鍵導出パラメータ、鍵変形パラメータ、パスワードオーナID、パスワード取得用URL、パスワード開示期間、及びデータ作成日時の少なくとも1つを含む前記データを出力する、
     請求項2に記載のパスワード共有システム。
  23.  前記第1のクライアント端末が暗号化パラメータ、パスワード鍵導出パラメータ、又は鍵変形パラメータを含む前記データを出力するとき、前記暗号化データ取得部は前記読み取ったデータから夫々前記暗号化パラメータ、前記パスワード鍵導出パラメータ、又は前記鍵変形パラメータを取得し、
     前記データ復号部は、前記暗号化データ取得部が取得した前記暗号化パラメータを用いて前記暗号化データを復号し、
     前記暗号鍵第2加工部は、前記暗号化データ取得部が取得した前記パスワード鍵導出パラメータを用いて、前記パスワード開示部から受信した前記パスワード情報である前記パスワードに基づいて前記パスワード鍵を生成し、該パスワード鍵を用いて前記第1のクライアント端末から読み取った前記データから取得した前記加工されたデータ復号用暗号鍵を復号する、
     請求項3に記載のパスワード共有システム。
  24.  前記第1のクライアント端末が暗号化パラメータ、パスワード鍵導出パラメータ、又は鍵変形パラメータを含む前記データを出力するとき、前記暗号化データ取得部は、前記読み取ったデータから夫々前記暗号化パラメータ、前記パスワード鍵導出パラメータ、又は前記鍵変形パラメータを取得し、
     前記データ復号部は、前記暗号化データ取得部が取得した前記暗号化パラメータを用いて前記暗号化データを復号し、
     前記暗号鍵第2加工部は、前記暗号化データ取得部が取得した前記鍵変形パラメータを用いて、前記パスワード開示部から受信した前記パスワード情報である前記パスワードで前記第1のクライアント端末から読み取った前記データから取得した前記加工されたデータ復号用暗号鍵を変形することにより、前記暗号鍵生成部が生成した元の前記データ復号用暗号鍵を生成する、
     請求項3に記載のパスワード共有システム。
  25.  前記暗号化データ取得部は、前記読み取ったデータがパスワードオーナ識別子を含むとき、前記読み取ったデータから前記パスワードオーナ識別子を取得し、
     前記第2の情報送受信部は、前記暗号化データ取得部が取得した前記パスワードオーナ識別子を前記第1のパスワードオーナ識別子として前記パスワード開示部に送信する、
     請求項20に記載のパスワード共有システム。
  26.  前記暗号化データ取得部は、前記読み取ったデータが前記パスワード取得用URLを含むとき、前記読み取ったデータから前記パスワード取得用URLを取得し、
     前記第2の情報送受信部は、前記暗号化データ取得部が取得した前記パスワード取得用URLにアクセスして前記パスワード開示部と通信する、
     請求項22に記載のパスワード共有システム。
  27.  前記暗号化データ取得部は、前記読み取ったデータが前記パスワード開示期間又は前記データ作成日時を含むとき、前記読み取ったデータから前記パスワード開示期間又は前記データ作成日時を取得し、前記第2のクライアント端末のユーザに対して前記パスワード開示期間又は前記データ作成日時を表示するように処理する、
     請求項22に記載のパスワード共有システム。
  28.  前記第1のクライアント端末から前記識別トークンと前記パスワード識別情報を受信し、
     前記受信した識別トークンに対応するユーザ識別子を取得し、
     前記受信したパスワード識別情報に対応する前記データベース内のレコードから前記パスワード情報のパスワードオーナ識別子を取得し、
     前記ユーザ識別子と前記パスワードオーナ識別子とが一致した時に限り、前記受信したパスワード識別情報に対応する前記データベース内のレコード又は該レコード内のパスワード情報を削除する、
     請求項1乃至11のいずれか1項に記載のパスワード共有システム。
  29.  前記第1のクライアント端末から前記識別トークンと前記パスワード識別情報とパスワード開示期間とを受信し、
     前記受信した識別トークンに対応するユーザ識別子を取得し、
     前記受信パスワード識別情報に対応する前記データベース内のレコードから前記パスワード情報のパスワードオーナ識別子を取得し、
    前記ユーザ識別子と前記パスワードオーナ識別子とが一致した時に限り、前記受信したパスワード識別情報に対応する前記データベース内のレコードに登録されている前記パスワード開示期間を前記受信したパスワード開示期間を用いて変更する、
     請求項17に記載のパスワード共有システム。
  30.  前記パスワード供給部は、所定のコンピュータ・アルゴリズムに基づいて前記パスワードを生成する、請求項1乃至11のいずれか1項に記載のパスワード共有システム。
  31.  前記パスワード供給部は、ハードウェアが生成した乱数を基に前記パスワードを生成する、請求項1乃至11のいずれか1項に記載のパスワード共有システム。
  32.  前記パスワード供給部は、自然現象の観測によって取得したデータを基礎に前記パスワードを生成する、請求項1乃至11のいずれか1項に記載のパスワード共有システム。
  33.  前記パスワード供給部は、前記第1のクライアント端末を操作するユーザが入力部から入力する文字例として前記パスワードを生成する、請求項4、6、8、又は9のいずれか1項に記載のパスワード共有システム。
  34.  1台以上のパスワード共有サーバと、パスワード登録及びデータ出力の機能を有する1台以上の第1のクライアント端末と、該第1のクライアント端末から出力されたデータを読み取る機能を有する1台以上の第2のクライアント端末とを備えるパスワード共有システムに適用されるパスワード共有方法であって、
     前記第1のクライアント端末及び前記第2のクライアント端末に、認証済みであることを示す識別トークンを発行する識別トークン発行処理と、
     パスワード又は該パスワードに基づいて生成されるパスワード鍵であるパスワード情報を生成するパスワード生成処理と、
     前記第1のクライアント端末が送信した識別トークンを検証する検証処理と、
     前記検証処理で前記識別トークンが正しいことが確認できた場合に限り、前記パスワード生成処理で生成した前記パスワード情報と、前記第1のクライアント端末が送信した前記パスワードの開示許容範囲を指定するパスワード開示許容情報とを、前記パスワード共有サーバが備えるデータベース内のレコードに格納すると共に、該レコードを特定するパスワード識別情報を前記第1のクライアント端末に送信するパスワード登録処理と、
     データ暗号化用暗号鍵とデータ復号用暗号鍵の組を生成する暗号鍵生成処理と、
     前記暗号鍵生成処理で生成された前記データ復号用暗号鍵又は前記データ暗号化用暗号鍵の少なくともいずれか一方に対して、前記パスワード生成処理で生成した前記パスワード情報に基づいて第1の加工を行うことにより、第1の加工がされた又はされないデータ復号用暗号鍵及びデータ暗号化用暗号鍵を夫々第1加工後データ復号用暗号鍵及び第1加工後データ暗号化用暗号鍵として生成し前記第1のクライアント端末に入力させる暗号鍵第1加工処理と、
     前記第2のクライアント端末からのパスワード問合せ情報に含まれる前記パスワード識別情報及び前記識別トークンを取得し、該取得したパスワード識別情報に対応する前記パスワード共有サーバが備える前記データベース内のレコードから前記パスワード情報及び前記パスワード開示許容情報を取得し、該取得した識別トークンに対応するユーザの情報を取得し、該取得したパスワード開示許容情報が示す前記開示許容範囲に前記ユーザが含まれていることが確認できた場合に限り、前記取得したパスワード情報を前記第2のクライアント端末に送信するパスワード応答処理と、
     を実行するパスワード共有方法。
  35.  前記第1のクライアント端末において実行され、
     前記パスワード開示許容情報を入力するパスワード開示許容情報入力処理と、
     前記パスワード開示許容情報入力処理で入力した前記パスワード開示許容情報と自端末で保存している前記識別トークンとを前記検証処理及び前記パスワード登録処理のために送信し、該送信に応答して前記パスワード登録処理で送信された前記パスワード識別情報を受信する第1の情報送受信処理と、
     暗号化対象データの入力に応じて、前記暗号鍵第1加工処理で出力された前記第1加工後データ暗号化用暗号鍵を用いて前記暗号化対象データを暗号化し、該暗号化の結果得られる暗号化データを出力するデータ暗号化処理と、
     前記第1の情報送受信処理で受信された前記パスワード識別情報と、前記暗号鍵第1加工処理で出力された前記第1加工後データ復号用暗号鍵と、前記データ暗号化処理で出力された前記暗号化データとを含む前記データを出力するデータ作成処理と、
     を実行する請求項34に記載のパスワード共有方法。
  36.  前記第2のクライアント端末において実行され、
     前記読み取ったデータから前記パスワード識別情報と、前記加工されたデータ復号用暗号鍵と、前記暗号化データを取得する暗号化データ取得処理と、
     前記暗号化データ取得処理で取得した前記パスワード識別情報と、自端末で保存している前記識別トークンとを前記パスワード問合せ情報として前記パスワード応答処理のために送信し、該送信に応答して前記パスワード開示部が送信した前記パスワード情報を受信する第2の情報送受信処理と、
     前記暗号化データ取得処理で取得された前記第1加工後データ復号用暗号鍵に対して、前記第2の情報送受信処理で受信された前記パスワード情報に基づいて第2の加工を行うことにより、第2の加工がされたデータ復号用暗号鍵を生成する暗号鍵第2加工処理と、
     前記暗号鍵第2加工処理で生成された前記第2の加工がされたデータ復号用暗号鍵を用いて、前記暗号化データ取得処理で取得した前記暗号化データに対して復号処理を実行するデータ復号処理と、
     を実行する請求項34に記載のパスワード共有方法。
  37.  1台以上のパスワード共有サーバと、パスワード登録及びデータ出力の機能を有する1台以上の第1のクライアント端末と、該第1のクライアント端末から出力されたデータを読み取る機能を有する1台以上の第2のクライアント端末とを備えるパスワード共有システム内の1台以上のコンピュータに、
     前記第1のクライアント端末及び前記第2のクライアント端末に、認証済みであることを示す識別トークンを発行する識別トークン発行処理と、
     パスワード又は該パスワードに基づいて生成されるパスワード鍵であるパスワード情報を生成するパスワード生成処理と、
     前記第1のクライアント端末が送信した識別トークンを検証する検証処理と、
     前記検証処理で前記識別トークンが正しいことが確認できた場合に限り、前記パスワード生成処理で生成した前記パスワード情報と、前記第1のクライアント端末が送信した前記パスワードの開示許容範囲を指定するパスワード開示許容情報とを、前記パスワード共有サーバが備えるデータベース内のレコードに格納すると共に、該レコードを特定するパスワード識別情報を前記第1のクライアント端末に送信するパスワード登録処理と、
     データ暗号化用暗号鍵とデータ復号用暗号鍵の組を生成する暗号鍵生成処理と、
     前記暗号鍵生成処理で生成された前記データ復号用暗号鍵又は前記データ暗号化用暗号鍵の少なくともいずれか一方に対して、前記パスワード生成処理で生成した前記パスワード情報に基づいて第1の加工を行うことにより、第1の加工がされた又はされないデータ復号用暗号鍵及びデータ暗号化用暗号鍵を夫々第1加工後データ復号用暗号鍵及び第1加工後データ暗号化用暗号鍵として生成し前記第1のクライアント端末に入力させる暗号鍵第1加工処理と、
     前記第2のクライアント端末からのパスワード問合せ情報に含まれる前記パスワード識別情報及び前記識別トークンを取得し、該取得したパスワード識別情報に対応する前記パスワード共有サーバが備える前記データベース内のレコードから前記パスワード情報及び前記パスワード開示許容情報を取得し、該取得した識別トークンに対応するユーザの情報を取得し、該取得したパスワード開示許容情報が示す前記開示許容範囲に前記ユーザが含まれていることが確認できた場合に限り、前記取得したパスワード情報を前記第2のクライアント端末に送信するパスワード応答処理と、
     を全て又は分割して実行させるためのプログラム。
  38.  前記第1のクライアント端末のコンピュータに、
     前記パスワード開示許容情報を入力するパスワード開示許容情報入力処理と、
     前記パスワード開示許容情報入力処理で入力した前記パスワード開示許容情報と自端末で保存している前記識別トークンとを前記検証処理及び前記パスワード登録処理のために送信し、該送信に応答して前記パスワード登録処理で送信された前記パスワード識別情報を受信する第1の情報送受信処理と、
     暗号化対象データの入力に応じて、前記暗号鍵第1加工処理で出力された前記第1加工後データ暗号化用暗号鍵を用いて前記暗号化対象データを暗号化し、該暗号化の結果得られる暗号化データを出力するデータ暗号化処理と、
     前記第1の情報送受信処理で受信された前記パスワード識別情報と、前記暗号鍵第1加工処理で出力された前記第1加工後データ復号用暗号鍵と、前記データ暗号化処理で出力された前記暗号化データとを含む前記データを出力するデータ作成処理と、
     を実行させるための請求項37に記載のプログラム。
  39.  前記第2のクライアント端末のコンピュータに、
     前記読み取ったデータから前記パスワード識別情報と、前記加工されたデータ復号用暗号鍵と、前記暗号化データを取得する暗号化データ取得処理と、
     前記暗号化データ取得処理で取得した前記パスワード識別情報と、自端末で保存している前記識別トークンとを前記パスワード問合せ情報として前記パスワード応答処理のために送信し、該送信に応答して前記パスワード開示部が送信した前記パスワード情報を受信する第2の情報送受信処理と、
     前記暗号化データ取得処理で取得された前記第1加工後データ復号用暗号鍵に対して、前記第2の情報送受信処理で受信された前記パスワード情報に基づいて第2の加工を行うことにより、第2の加工がされたデータ復号用暗号鍵を生成する暗号鍵第2加工処理と、
     前記暗号鍵第2加工処理で生成された前記第2の加工がされたデータ復号用暗号鍵を用いて、前記暗号化データ取得処理で取得した前記暗号化データに対して復号処理を実行するデータ復号処理と、
     を実行させるための請求項38に記載のプログラム。
  40.  請求項1に記載のデータベースを具備すると共に、請求項1に記載の前記識別トークン発行部、前記パスワード供給部、前記検証部、前記パスワード登録部、前記暗号鍵生成部、前記暗号鍵加工部、又は前記パスワード開示部のいずれかを備えたサーバ装置。
  41.  請求項1乃至11のいずれか1項に記載の前記第1のクライアント端末の機能を備える端末装置。
  42.  請求項1乃至11のいずれか1項に記載の前記第2のクライアント端末の機能を備える端末装置。
PCT/JP2024/003917 2023-02-07 2024-02-06 パスワード共有システム、方法、プログラム、サーバ装置、及び端末装置 WO2024166910A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2023-017076 2023-02-07
JP2023017076 2023-02-07

Publications (1)

Publication Number Publication Date
WO2024166910A1 true WO2024166910A1 (ja) 2024-08-15

Family

ID=92262712

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2024/003917 WO2024166910A1 (ja) 2023-02-07 2024-02-06 パスワード共有システム、方法、プログラム、サーバ装置、及び端末装置

Country Status (1)

Country Link
WO (1) WO2024166910A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002335238A (ja) * 2001-04-05 2002-11-22 Lucent Technol Inc 通信方法
JP2008257720A (ja) * 2007-03-30 2008-10-23 Ricoh Co Ltd データを共有する手法
US20120204032A1 (en) * 2006-05-09 2012-08-09 Syncup Corporation Encryption key exchange system and method
US20130179951A1 (en) * 2012-01-06 2013-07-11 Ioannis Broustis Methods And Apparatuses For Maintaining Secure Communication Between A Group Of Users In A Social Network
JP2015510163A (ja) * 2012-01-08 2015-04-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソーシャル・ネットワーキング・ウェブ・サービスを介した機密情報アクセスのための方法、システム、コンピュータ・プログラム
KR101644168B1 (ko) * 2015-12-14 2016-07-29 스텔스소프트웨어 주식회사 소셜 네트워크 서비스를 이용한 메시지 보안 시스템 및 그 방법, 그리고 이 방법을 처리하는 컴퓨터 프로그램이 저장된 저장 매체

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002335238A (ja) * 2001-04-05 2002-11-22 Lucent Technol Inc 通信方法
US20120204032A1 (en) * 2006-05-09 2012-08-09 Syncup Corporation Encryption key exchange system and method
JP2008257720A (ja) * 2007-03-30 2008-10-23 Ricoh Co Ltd データを共有する手法
US20130179951A1 (en) * 2012-01-06 2013-07-11 Ioannis Broustis Methods And Apparatuses For Maintaining Secure Communication Between A Group Of Users In A Social Network
JP2015510163A (ja) * 2012-01-08 2015-04-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソーシャル・ネットワーキング・ウェブ・サービスを介した機密情報アクセスのための方法、システム、コンピュータ・プログラム
KR101644168B1 (ko) * 2015-12-14 2016-07-29 스텔스소프트웨어 주식회사 소셜 네트워크 서비스를 이용한 메시지 보안 시스템 및 그 방법, 그리고 이 방법을 처리하는 컴퓨터 프로그램이 저장된 저장 매체

Similar Documents

Publication Publication Date Title
US8059818B2 (en) Accessing protected data on network storage from multiple devices
JP4964213B2 (ja) 識別ベースの暗号化システム
US11741241B2 (en) Private data processing
JP6026385B2 (ja) 属性情報提供方法および属性情報提供システム
US20150256336A1 (en) End-To-End Encryption Method for Digital Data Sharing Through a Third Party
CN101815091A (zh) 密码提供设备、密码认证系统和密码认证方法
US20170279807A1 (en) Safe method to share data and control the access to these in the cloud
US20200035339A1 (en) Blockchain security system for secure record access across multiple computer systems
US10263789B1 (en) Auto-generation of security certificate
US20180227278A1 (en) Communication of Messages Over Networks
KR101648364B1 (ko) 대칭키 암호화와 비대칭키 이중 암호화를 복합적으로 적용한 암/복호화 속도개선 방법
Chinnasamy et al. A scalable multilabel‐based access control as a service for the cloud (SMBACaaS)
JP2007201522A (ja) 暗号通信システム、鍵共有方法、鍵提供装置、および情報処理装置
JP2018085681A (ja) 強化されたセキュリティを有する取引相互監視システム
WO2019163040A1 (ja) アクセス管理システム、及びそのプログラム
CN201717885U (zh) 密码提供设备和密码认证系统
WO2024166910A1 (ja) パスワード共有システム、方法、プログラム、サーバ装置、及び端末装置
KR102053993B1 (ko) 인증서를 이용한 사용자 인증 방법
CN113691495B (zh) 一种基于非对称加密的网络账户共享和分发系统及方法
KR20210109667A (ko) 보안 전자 데이터 전송을 위한 시스템 및 방법
WO2023127963A1 (ja) 鍵共有システム、方法、プログラム、サーバ装置、及び端末装置
US11394545B2 (en) Communication system, server device, user device, method, and computer program
KR20070062632A (ko) 암호화를 통한 이동통신 메시지 및 파일 보안 제공 방법
Sain et al. A communication security protocol for ubiquitous sensor networks
CN115720137A (zh) 一种信息管理的系统、方法以及装置

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: 24753353

Country of ref document: EP

Kind code of ref document: A1