WO2021001989A1 - チャットボットシステム、情報処理装置、情報処理方法及びプログラム - Google Patents

チャットボットシステム、情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
WO2021001989A1
WO2021001989A1 PCT/JP2019/026634 JP2019026634W WO2021001989A1 WO 2021001989 A1 WO2021001989 A1 WO 2021001989A1 JP 2019026634 W JP2019026634 W JP 2019026634W WO 2021001989 A1 WO2021001989 A1 WO 2021001989A1
Authority
WO
WIPO (PCT)
Prior art keywords
chatbot
cid
user
private key
policy
Prior art date
Application number
PCT/JP2019/026634
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 日本電信電話株式会社
Priority to JP2021529653A priority Critical patent/JP7215580B2/ja
Priority to US17/619,886 priority patent/US11882208B2/en
Priority to PCT/JP2019/026634 priority patent/WO2021001989A1/ja
Publication of WO2021001989A1 publication Critical patent/WO2021001989A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • 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
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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
    • H04L9/0861Generation of secret information including derivation or calculation 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Definitions

  • the present invention relates to a chatbot system, an information processing device, an information processing method and a program.
  • the chatbot system has been known for some time.
  • the chatbot system is a system that provides users with data and functions in an external service by exchanging messages (for example, voice, text, etc.) via a chat server.
  • messages for example, voice, text, etc.
  • Meekan Scheduling Robot for Slack is known as a chatbot system that operates on Slacks (registered trademark) (see, for example, Non-Patent Document 1).
  • Meekan Scheduling Robot for Slack ⁇ URL: https://slack.com/apps/A0G51AT60-meekan-scheduling>
  • An embodiment of the present invention has been made in view of the above points, and an object of the present invention is to control the use of data obtained from an external service in a chatbot system.
  • the chatbot system is a chatbot system including a plurality of user terminals, a chatbot, and a chat server, and the chatbot is acquired from an external service.
  • a policy-based cipher is generated by the cipher policy attribute-based cipher encryption algorithm by inputting a list including the message creation means for creating a message from the data and the user ID of the user terminal having the authority to use the data.
  • the user terminal has an encryption means and a transmission means for transmitting the policy-based encryption text to the chat server, and the user terminal has a receiving means for receiving the policy-based encryption text from the chat server and its own user ID. It is characterized by having a decryption means for decrypting the policy-attached cipher using the attributed private key generated based on the above.
  • chatbot use processing is started by receiving data from an external service by a chatbot (Example 1). It is a figure for demonstrating the flow of the case where the chatbot use processing is started by the message transmission by a user terminal (Example 2). It is a figure for demonstrating the flow of the case where the chatbot use process is started by the message transmission by a user terminal (Example 3).
  • the external service is an arbitrary service provided by an external service provider, and examples thereof include various services such as a customer management service, a schedule service, a cloud storage service, and a project management service.
  • a conventional chatbot system includes a chat server, a plurality of external services, a plurality of chatbots, and a plurality of user terminals, and includes a chat server and a user terminal, and a chat server. Communicate between chatbots and between chatbots and external services.
  • the chatbot is, for example, a server or system equipped with a program or the like that functions as a chatbot.
  • An external service is a server or system that provides this service.
  • Each user terminal (or each user who uses the user terminal) has a unique finite symbol string represented by, for example, a name, a telephone number, an email address, a nickname, an integer, a random character string, or a combination thereof. It is determined in. This symbol string is generally called a "user ID”.
  • chatbot ID a finite symbol string represented by a chatbot name, an integer, a random character string, etc. is uniquely defined. This symbol string is generally called a "chatbot ID”.
  • the user IDs of all user terminals and the chatbot IDs of all chatbots are stored.
  • the total number of user terminals is N
  • the total number of chatbots is L
  • the user IDs are "UID 1 " to "UID N”
  • the chatbot IDs are "CID 1 " to "CID L”.
  • the processing is as follows in steps 1-1 to 1-2.
  • Step 1-1 The user UID i transmits the message M and its own user ID "UID i " to the chat server.
  • Step 1-2 When the chat server receives the message M and the user ID "UID i ", it receives all user terminals (that is, user UID 1 to user UID N ) and all chatbots (that is, chatbot CID 1). -The message M and the user ID "UID i " are transmitted to the chatbot CID L ). It should be noted that, at this time, there is also If you do not want to send the message M and the user ID "UID i" to the user UID i.
  • the processing is as follows in steps 2-1 to 2-2.
  • Step 2-1 The chatbot CID j transmits the message M and its own chatbot ID "CID j " to the chat server.
  • Step 2-2 Chat server receives the message M and the user ID "CID j" for all user terminals and all chat bots, and the message M and the chatbot ID "CID j" Send. It should be noted that, at this time, the chat bot CID j in some cases you do not want to send the message M and the chat bot ID "CID j".
  • the chatbot sends a message
  • the message is sent only to the user terminal CID 1 to the user terminal CID N in step 2-2 (that is, to the chatbot CID 1 to the chatbot CID L) . (Do not send message) in some cases.
  • chat servers also have a message storage function, and such chat servers are also called "business chat servers".
  • the business chat server has a table for storing messages. An example of this table is shown in Table 1 below.
  • the business chat server associates the message ID that identifies the message with the sender's user ID or chatbot ID before or after sending the message in steps 1-2 and 2-2 above. Save the message by adding a row to the table.
  • the user UID i (1 ⁇ i ⁇ N) When acquiring a message stored in the business chat server, the user UID i (1 ⁇ i ⁇ N) sends a message acquisition request to the business chat server.
  • the message acquisition request includes, for example, "a request for specifying a message ID to be acquired”, "a request for acquiring a message containing a specific keyword”, "a request for acquiring all messages", and the like.
  • Examples of the data in the external service include schedule information, customer information, task information, and the like.
  • examples of the functions of the external service include viewing and editing data, sending and receiving e-mails, and voting functions. Data and functions of such external services are generally available only to authorized users.
  • each user terminal is identified by an ID different from the user ID of the chatbot system. Therefore, it is assumed that each user terminal is uniquely defined with a finite symbol string represented by an integer, a name, a telephone number, an e-mail address, a nickname, a random character string, or a combination thereof.
  • each chatbot is uniquely defined with a finite symbol string represented by a chatbot name, an integer, a random character string, or the like. These symbol strings are called "client IDs".
  • a user terminal (or chatbot) for which the client ID "OID" is defined has viewing authority for data D stored in an external service, that is, the user terminal (or the chatbot) is included in the list defined for data D. It means that the client ID of the chatbot) is registered.
  • the list is not fixed and may change over time. Therefore, the user terminal (or chatbot) having the viewing authority for the data D may not have the viewing authority with the passage of time.
  • a random character string or bit string exists uniquely for each client ID and is stored in the chatbot and the external service.
  • This random character string or bit string is called "proxy authentication information”.
  • proxy authentication information As a technology for sharing proxy authentication information between a chatbot and an external service in this way, for example, there is "OAout2.0, ⁇ URL: https://tools.ietf.org/html/rfc6749>” and the like. ..
  • the user terminal for which the client ID "OID" is defined has viewing authority for the data D in the external service, and the proxy authentication information for the client ID "OID” is represented as "Cert".
  • the process when the chatbot acquires the data D is as follows in steps 3-1 to 3-2.
  • Step 3-1 The chatbot sends the client ID "OID", the data acquisition request Req, and the proxy authentication information Cert to the external service.
  • Procedure 3-2 The external service confirms that Celt is the proxy authentication information of OID, and confirms that OID has the viewing authority for the data D requested by Req. When it is confirmed that the Celt is the proxy authentication information of the OID and the OID has the viewing authority, the external service transmits the data D to the chatbot. On the other hand, if this is not the case, the external service will stop processing. If there are a plurality of data requested by Req, the external service transmits only the data for which the OID has the viewing authority to the chatbot.
  • chatbot CID i as in (1 ⁇ i ⁇ L) which is P i number of external services are connected, each of the external service "S i 1", “S i 2",..., It is expressed as "S i Pi ".
  • client ID which is defined in the external service S i k (1 ⁇ k ⁇ P i) and the "OID i k, 1" - "OID i k, N + L.
  • Each chat bot CID i, each external service S to the i k, client ID "OID i k, j" corresponding to the user ID "UID j" and, chat bot ID of the chat bot other than its own “CID j client ID "OID i k, N + j" corresponding with are stored using a table or the like. However, not all correspondences are saved, and there may be a user ID or chatbot ID in which the client ID is not saved. If the correspondence between the user ID and the client ID and the correspondence between the chatbot ID and the client ID are stored in the chatbot, the proxy authentication information corresponding to the client ID is stored in the chatbot. It is assumed that it has been done.
  • chatbot CID 1 it illustrates an example of a table correspondence between the user ID and the client ID to the external service S 1 2 is stored in Table 2 below.
  • chatbot CID 1 illustrates an example of a table correspondence between the chatbot ID and client ID to the external service S 1 2 is stored in Table 3 below.
  • the chatbot CID i has a table in which the correspondence between the user ID and the client ID is stored for each external service, and the correspondence between the chatbot ID and the client ID. Holds a table in which is stored.
  • the table in which the correspondence between the user ID (or chatbot ID), the client ID, and the proxy authentication information is stored is also referred to as a “proxy authentication information table”.
  • the chatbot CID i is, for example, "receives the message M and the user ID” UID j "from the chat server”, “receives the message M and the chatbot ID” CID j “from the chat server”, and “designates”.
  • “Chatbot processing” is performed under conditions such as “conditions such as when the time has come for the chatbot to start spontaneously”.
  • the chatbot process the "data acquisition process of the external service” and the “message transmission process” are executed 0 or once or more, respectively, according to the conditions and the processing procedure defined by the chatbot.
  • Chatbot processing is executed for the external service of the data acquisition destination (that is, the external service to which the data acquisition request is sent), the data acquisition request, etc., which are the data acquisition destinations required for input when executing the "data acquisition process of the external service". It is preset inside the chatbot according to the timing and conditions.
  • the data acquisition request is a fixed value Req" if it contains certain wording and "the received message, destination external service S i k of "data acquisition process of the external service”, the data acquisition request is created based on the message "," data acquisition "external service to be executed after obtaining the data from the S i k destination external service process "S i k', data acquisition request is set as such” is created on the basis of the data obtained from the S i k.
  • the following (1) and (2) show the input and processing contents of "data acquisition processing of external service” and “message transmission processing”, respectively.
  • Step 4-1 Data acquisition process for external services [Input] - the destination external service S i k ⁇ Data acquisition request Req Client ID "OID i k, j" -List DL of data acquired from external services [Processing content] Step 4-1: Chat bot CID i, the external client ID "OID i k, j" and, this client ID "OID i k, j" proxy authentication information Cert i k of, and j, and a data acquisition request Req to send to the service S i k.
  • Step 4-2 External service S i k is, OID i k, j and Cert i k, and receives the j and Req, confirmed that the Cert i k, j is the proxy authentication information of the OID i k, j while, OID i k for the requested data D in Req, j to confirm that with viewing rights. Then, when they are confirmed, the external service S i k transmits data D to chatbot CID i.
  • Step 4-3 chatbot CID i receives the D from the external service S i k.
  • Step 4-4 The chatbot CID i is saved in the list DL.
  • Step 5-1 The chatbot CID i selects some data D 1 ′ to D q ′ from the list DL of the data acquired from the external service, and then sends these D 1 ′ to D q ′ as a message M. Convert to ′ (or create message M ′ from these D 1 ′ to D q ′). If there is no data acquired from the external service (that is, the list DL is empty), the chatbot CID i creates a message M'according to a predetermined process inside the chatbot.
  • Step 5-2 The chatbot CID i transmits its own chatbot ID "CID i " and the message M'to the chat server.
  • chatbot process is as follows in steps 6-1 to 6-4.
  • Step 6-1 The chatbot CID i (1 ⁇ i ⁇ L) starts the chatbot process.
  • Step 6-2 Chatbot CID i determines one user ID or chatbot ID to be used in the chatbot process.
  • the chatbot CID i receives the received user ID "UID j ". It is defined as the user ID used in the chatbot process.
  • the chatbot CID i receives the received chatbot ID "CID j ". It is defined as the chatbot ID used in the chatbot process.
  • Step 6-3 The chatbot CID i prepares an empty list DL that stores the data of the external service acquired in the chatbot process, and follows the conditions and processing procedure specified by the chatbot, "of the external service.
  • the "data acquisition process” and the “message transmission process” are executed 0 or once or more, respectively.
  • Step 6-4 When executing the "data acquisition process of the external service” chat bot CID i, in accordance with settings that are defined within chatbot, and a destination external service S i k and data acquisition request Req Determine as input. Further, chatbot CID i, as a client ID, client ID "OID i k, j" corresponding to the user ID specified in the above procedure 6-2 "UID j" or chatbot ID "CID j" or “OID i k, N + j "is used as an input. Further, the chatbot CID i uses the list DL prepared in step 6-3 above as an input. Incidentally, the "data acquisition process of the external service", data D acquired from the external service S i k is added to the list DL.
  • Step 6-5 When executing the "message transmission process", the chatbot CID i uses the list DL for storing the data of the external service as an input. The chatbot ID "CID i " and the message M'are transmitted to the chat server by the "message transmission process”.
  • Non-Patent Document 1 For details of the chatbot processing described above, refer to, for example, Non-Patent Document 1 and the like described above.
  • the data of the external service can be viewed basically only by the user terminal having the viewing authority for the data of the external service.
  • a data acquisition request is sent to an external service by using the proxy authentication information of the user terminal or the chatbot that sent the message, and the data is acquired from the external service. That is, the chatbot confirms only the presence or absence of viewing authority of the user terminal or chatbot that sent the message, acquires data from an external service, and creates and sends a message from the acquired data.
  • the chat server uses the existing service, it is not possible to let the chat server control the destination. Therefore, in the conventional chatbot system, a user terminal or a chatbot that does not have the viewing authority of the external service may be able to view the data of the external service.
  • the user terminal UID 1, the user terminal UID 2, the user terminal UID 3 and chatbot CID 1 is connected to the chat server, the data D 1 are stored in the external service, the user terminal to the data D 1 It is assumed that only UID 1 and user terminal UID 2 have viewing authority. In this case, the user terminal UID 1 utilizes a chatbot to share data D 1, it is possible everyone to view data D 1. That is, the user terminal UID no viewing authority of the data D 1 3 also would be able to browse the data D 1.
  • the business chat server stores the message in which the data of the external service is converted. At this time, even if the viewing authority of the original data stored in the external service is changed, this change is not reflected in the message stored in the business chat server.
  • the data contained in the message stored in the business chat server can be viewed indefinitely.
  • the user terminal UID 2 has the viewing authority to the data D of the external service at a certain point in the past, but the viewing authority is changed after that, and the user terminal UID 2 no longer has the viewing authority. Even if there is, the user terminal UID 2 can browse the data contained in the message stored in the business chat server.
  • chatbot system 1 only the user terminal having the data viewing authority set on the external service side can view the data.
  • chatbot system 1 has a message (data of an external service) stored in the chat server only during the period in which the viewing authority is valid. Make the message generated from) viewable.
  • the chatbot system 1 uses ciphertext policy attribute-based encryption (CP-ABE).
  • CP-ABE ciphertext policy attribute-based encryption
  • CP-ABE is an encryption method that can decrypt a ciphertext only with a private key that satisfies the decryption condition (policy) by associating the user's attribute with the private key with the attribute and the decryption condition (policy) with the ciphertext with the policy.
  • the CP-ABE is composed of a setup algorithm (Setup), a key generation algorithm (KeyGen), an encryption algorithm (Enc), and a decryption algorithm (Dec).
  • Setup is a probabilistic algorithm that outputs a public key and a master private key by inputting an attribute set and security parameters.
  • KeyGen is a probabilistic algorithm that inputs a master private key and attributes and outputs one attributed private key.
  • Enc is a probabilistic algorithm that outputs one ciphertext with a policy by inputting a public key, plaintext to be encrypted, and a policy.
  • Dec is a deterministic algorithm that outputs plaintext by inputting a private key with attributes and a ciphertext with a policy.
  • the chatbot system 1 includes a chat server 10, a plurality of user terminals 20, one or more first chatbots 31, and one or more second chatbots. 32, a plurality of external services 40, and one or more key issuing stations 50 are included.
  • both the first chatbot 31 and the second chatbot 32 do not necessarily have to be included, and either the first chatbot 31 or the second chatbot 32 may be included. The other does not have to be included.
  • chatbot 30 the first chatbot 31 and the second chatbot 32 are collectively referred to as “chatbot 30”.
  • chatbot system 1 between the chat server 10 and the user terminal 20, between the chat server 10 and the chatbot 30, the chatbot 30 and the external service 40, the user terminal 20 and the key issuing station 50, and chat. Communication is performed by each of the bot 30 and the key issuing station 50.
  • the key issuing station 50 is a server or system equipped with a program or the like that functions as a key issuing station.
  • the chatbot 30 is, for example, a server or a system equipped with a program or the like that functions as a chatbot.
  • the external service 40 is a server or system that provides this service.
  • the key issuing station 50 has a key issuing processing unit 501 and a storage unit 502.
  • the key issuance processing unit 501 is realized by a process in which one or more programs installed in a computer (information processing device) or the like are executed by a processor or the like.
  • the storage unit 502 can be realized by using, for example, an auxiliary storage device or the like.
  • the key issuance processing unit 501 performs setup processing and private key issuance processing.
  • the setup process the public key mpk and the master private key msk are generated by the setup algorithm Setup, the public key mpk is transmitted to the chatbot 30, and the master private key msk is stored in the storage unit 502.
  • the TK UID is used to authenticate whether or not the UID is a valid user ID, and this authentication is successful.
  • the key generation algorithm KeyGen generates an attributed secret key having a UID as an attribute, and then transmits this attributed secret key to the user terminal 20.
  • the chatbot ID "CID” and the authentication information TK CID are received from the second chatbot 32, the TK CID is used to authenticate whether or not the CID is a valid chatbot ID.
  • the key generation algorithm KeyGen generates an attributed private key with CID as an attribute, and then transmits this attributed private key to the second chatbot 32.
  • the chat server 10 is a business chat server
  • the attributed secret in which the current time is added as an attribute in addition to the user ID or chatbot ID when the attributed private key is generated in the private key issuing process. Generate a key.
  • the first chatbot 31 includes a chat processing unit 311, an encryption processing unit 312, and a storage unit 313.
  • the chat processing unit 311 and the encryption processing unit 312 are realized by processing one or more programs installed in a computer (information processing device) or the like to be executed by a processor or the like.
  • the storage unit 313 can be realized by using, for example, an auxiliary storage device or the like.
  • the storage unit 313 stores the key issuing station ID that uniquely identifies the key issuing station 50 and the public key acquired from the key issuing station 50 corresponding to this key issuing station ID.
  • the above-mentioned table (a table in which the correspondence between the user ID and the client ID is stored, a table in which the correspondence between the chatbot ID and the client ID is stored, and the like) is stored in the storage unit 313.
  • the chat server 10 is a business chat server
  • the decipherable period width T (where T is an integer of 1 or more) is stored in the storage unit 313. It is assumed that the storage unit 313 does not acquire the public key from two or more key issuing stations 50.
  • Chat processing unit 311 performs chatbot processing.
  • the encryption processing unit 312 encrypts the message using the public key stored in the storage unit 313. Therefore, the first chatbot 31 is a "chatbot with an encryption function".
  • chatbot process of the first chatbot 31 is changed as follows from the chatbot process described in the above "conventional chatbot system”.
  • chatbot CID i The first chatbot 31 (here, referred to as “chatbot CID i ”) is, for example, “receives message M and user ID“ UID j ”from chat server 10” and “message M from chat server 10”. And, “chatbot processing” is performed under conditions such as “receives the chatbot ID” CID j "" and "conditions that the chatbot 30 voluntarily starts at a designated time”. In the chatbot process, the "data acquisition process of the external service” and the “message transmission process” are executed 0 or once or more, respectively, according to the conditions and the processing procedure defined in the chatbot 30.
  • Chatbot processing is executed for the external service 40 (that is, the external service to which the data acquisition request is sent) and the data acquisition request of the data acquisition destination required for input when executing the "data acquisition process of the external service". It is preset inside the chatbot 30 according to the timing and conditions.
  • the data acquisition request is a fixed value Req" if it contains certain wording and "the received message, destination external service S i k of "data acquisition process of the external service”, the data acquisition request is created based on the message "," data acquisition "external service to be executed after obtaining the data from the S i k destination external service process "S i k', data acquisition request is set as such” is created on the basis of the data obtained from the S i k. Further, the "message transmission process” is executed after the “external service data acquisition process” is executed one or more times.
  • the table DL is a table including a column (data column) in which data acquired from the external service 40 is stored and a column (viewing authority list column) in which a list of viewing authority for this data is stored. ..
  • Step 7-1 Chat bot CID i, the external client ID "OID i k, j" and, this client ID "OID i k, j" proxy authentication information Cert i k of, and j, and a data acquisition request Req to send to the service S i k.
  • Step 7-2 Confirm that the external service S i k is, OID i k, j and Cert i k, and receives the j and Req, Cert i k, j is the proxy authentication information of the OID i k, j while, OID i k for the requested data D in Req, j to confirm that with viewing rights. Then, when they are confirmed, the external service S i k transmits data D to chatbot CID i.
  • Step 7-3 chatbot CID i receives the D from the external service S i k.
  • Step 7-4 Chat bot CID i is, to get a list I of the client ID with the viewing rights of D from the external service S i k.
  • Step 7-5 The chatbot CID i is included in the list ID by using the correspondence between the client ID and the user ID and the correspondence between the client ID and the chatbot ID in the table stored in the storage unit 313. Create a list I'that collects all the user IDs and chatbot IDs corresponding to the client IDs.
  • Step 7-6 The chatbot CID i stores D and I'in association with each other in the table DL (that is, D is a data column and I'is a viewing authority list column, and these D and I'are stored. Store the associated row in the table DL).
  • the table DL is a table including a data column and a viewing authority list column.
  • Step 8-1 The chatbot CID i selects some data D 1 ′ to D q ′ from the data column of the table DL, and then converts these D 1 ′ to D q ′ into a message M ′ ( or, create a message M'these D 1 ' ⁇ D q') to.
  • Step 8-2 chatbot CID i takes the viewing authority list I 1 ' ⁇ I q' respectively corresponding to D 1 ' ⁇ D q' selected in the previous step 8-1 from table DL, viewing these to create a list I'a collection of user ID and chat bot ID common to the authorization list I 1 ' ⁇ I q'.
  • Step 8-3 The chatbot CID i encrypts the message M'with the public key and generates a ciphertext with a policy.
  • the policy used for encryption is "decryptable when the attribute" UID "or" CID "of the private key with an attribute is included in the list I'".
  • the policy used for encryption is that the current time at the time of encryption is t, and the attribute "UID” or “CID” of the private key with an attribute and the attribute "time s" are used.
  • the attribute "UID” or “CID” is included in the list I'and t ⁇ s ⁇ t + T is satisfied, decoding is possible. ”
  • Step 8-4 The chatbot CID i transmits its own chatbot ID "CID i " and a ciphertext with a policy (that is, an encrypted message M') to the chat server 10.
  • a policy that is, an encrypted message M'
  • chatbot process is as follows in steps 9-1 to 9-4.
  • Step 9-1 The chatbot CID i starts the chatbot process.
  • Step 9-2 Chatbot CID i determines one user ID or chatbot ID to be used in the chatbot process.
  • the chatbot CID i receives the received user ID "UID j ". , Determined as the user ID used in the chatbot process.
  • the chatbot CID i receives the received chatbot ID "CID j ". It is defined as the chatbot ID used in the chatbot process.
  • Step 9-3 The chatbot CID i prepares an empty table DL for storing the data of the external service 40 acquired in the chatbot process and the viewing authority list thereof, and the conditions and processing defined by the chatbot 30. According to the procedure, the "data acquisition process of the external service” and the “message transmission process” are executed 0 or once or more, respectively.
  • Step 9-4 When executing the "data acquisition process of the external service” chat bot CID i, in accordance with settings that are defined within chatbot 30, a destination outside the service S i k and data acquisition request Req Is determined as an input. Further, chatbot CID i, as a client ID, client ID "OID i k, j" corresponding to the user ID specified in the above procedure 9-1 "UID j" or chatbot ID "CID j" or “OID i k, N + j "is used as an input. Further, the chatbot CID i uses the table DL prepared in step 6-4 above as an input. Incidentally, the "data acquisition process of the external service", and the data D obtained from the external service S i k, browsing authorization list is added to the table DL for the data D.
  • Step 9-5 When executing the "message transmission process", the chatbot CID i uses the table DL for storing the data of the external service 40 and the viewing authority list thereof for input. The chatbot ID "CID i " and the encrypted message M'are transmitted to the chat server by the "message transmission process”.
  • the second chatbot 32 includes a chat processing unit 321, an encryption processing unit 322, a decryption processing unit 323, and a storage unit 324.
  • the chat processing unit 321 and the encryption processing unit 322 and the decryption processing unit 323 are realized by processing one or more programs installed in a computer (information processing device) or the like to be executed by a processor or the like.
  • the storage unit 324 can be realized by using, for example, an auxiliary storage device or the like. Since the chat processing unit 321 and the encryption processing unit 322 are the same as the chat processing unit 311 and the encryption processing unit 312 of the first chatbot 31, their description will be omitted.
  • the storage unit 324 in addition to the same information or data as the first chatbot 31, the authentication token corresponding to each key issuing station ID is stored.
  • a table in which the private key with an attribute is stored is also stored in the storage unit 324. This table contains a key issuer ID column and an attributed private key column.
  • the decryption processing unit 323 determines whether or not the message needs to be decrypted, and if decryption is necessary, selects the key issuing station ID and then issues the selected key. The message is decrypted using the private key with the attribute corresponding to the station ID. Therefore, the second chatbot 32 is a "chatbot with encryption and decryption functions".
  • the received message is encrypted. Judge whether it is a sentence or not. " Further, as a method of selecting the key issuing station ID at the time of decryption, for example, "using the chatbot ID of the message sender", “selecting all the candidate key issuing stations 50" and the like can be mentioned.
  • this request includes its own chatbot ID and an authentication token corresponding to the key issuing station 50.
  • the second chatbot 32 has a new attribute if the private key with the attribute acquired from the key issuing station 50 in the past has passed the decryptable period width or more from the acquired time. Request the key issuing station 50 to issue the private key. On the other hand, if the decryptable period width or more has not passed, the second chatbot 32 uses the private key with the attribute acquired in the past. Further, when there is no private key with an attribute acquired in the past, the second chatbot 32 selects the key issuing station ID of the key issuing station 50 of the transmission destination to which the request is transmitted by the method described above. The attributed private key acquired from the key issuing station 50 is stored in a table stored in the storage unit 324.
  • the user terminal 20 includes a chat processing unit 201, a decoding processing unit 202, and a storage unit 203.
  • the chat processing unit 201 and the decoding processing unit 202 are realized by a process in which one or more programs installed in the user terminal 20 are executed by a processor or the like.
  • the storage unit 203 can be realized by using, for example, an auxiliary storage device or the like.
  • the storage unit 203 In the storage unit 203, its own user ID "UID" and the authentication token TK UID corresponding to each key issuing station 50 are stored. Further, the storage unit 203 also stores a table in which the private key with an attribute is stored. This table contains a key issuer ID column and an attributed private key column.
  • the chat processing unit 201 performs processing such as creating and sending a message.
  • the decryption processing unit 202 determines whether or not the message needs to be decrypted, and if decryption is necessary, selects the key issuing station ID and then issues the selected key.
  • the message is decrypted using the private key with the attribute corresponding to the station ID. Therefore, the user terminal 20 is a "user terminal with a decoding function".
  • the received message is encrypted. Judge whether it is a sentence or not. " Further, as a method of selecting the key issuing station ID at the time of decryption, for example, "using the chatbot ID of the message sender", “selecting all the candidate key issuing stations 50" and the like can be mentioned.
  • this request includes its own user ID "UID” and an authentication token TK UID corresponding to the key issuing station 50. ..
  • the user terminal 20 decrypts the message, if the attributed private key acquired from the key issuing station 50 in the past has passed the decryptable period width or more from the acquired time, the user terminal 20 has a new attributed private key. Request issuance from the key issuing office 50. On the other hand, if the decryptable period width or more has not passed, the user terminal 20 uses the private key with the attribute acquired in the past. If there is no private key with an attribute acquired in the past, the user terminal 20 selects the key issuing station ID of the key issuing station 50 of the transmission destination to which the request is transmitted by the method described above. The attributed private key acquired from the key issuing station 50 is stored in a table stored in the storage unit 324.
  • a user ID or a chatbot ID is added as an attribute of the private key with an attribute, and the data of the external service 40 is browsed according to the policy set in the ciphertext with the policy. Only the authorized user terminal 20 can view the data.
  • the chat server 10 is a business chat server
  • the current time is added as an attribute of the private key with an attribute, and a message in which the data of the external service 40 is converted by the policy set in the ciphertext with a policy is displayed.
  • the chatbot system 1 can control the use of data obtained from the external service 40.
  • chatbot system 1 ⁇ Hardware configuration of chatbot system 1>
  • the user terminal 20, the chatbot 30, and the key issuing station 50 can be realized by using, for example, the hardware of the computer 600 shown in FIG.
  • the computer 600 shown in FIG. 4 includes an input device 601, a display device 602, an external I / F 603, a RAM (Random Access Memory) 604, a ROM (Read Only Memory) 605, a processor 606, and a communication I /. It has an F607 and an auxiliary storage device 608. Each of these hardware is connected to each other so as to be able to communicate with each other via bus B.
  • the input device 601 is, for example, a keyboard, a mouse, a touch panel, or the like.
  • the display device 602 is, for example, a display or the like.
  • the computer that realizes the chatbot 30 and the key issuing station 50 may not include at least one of the input device 601 and the display device 602.
  • the external I / F 603 is an interface with an external device.
  • the external device includes a recording medium 603a and the like.
  • the computer 600 can read and write the recording medium 603a and the like via the external I / F 603.
  • Examples of the recording medium 603a include a CD (Compact Disc), a DVD (Digital Versatile Disk), an SD memory card (Secure Digital memory card), a USB (Universal Serial Bus) memory card, and the like.
  • RAM 604 is a volatile semiconductor memory that temporarily holds programs and data.
  • ROM 605 is a non-volatile semiconductor memory capable of holding programs and data even when the power is turned off.
  • the processor 606 is, for example, an arithmetic unit such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), or an FPGA (field-programmable gate array).
  • a CPU Central Processing Unit
  • GPU Graphics Processing Unit
  • FPGA field-programmable gate array
  • the communication I / F 607 is an interface for connecting the computer 600 to the communication network.
  • the auxiliary storage device 608 is, for example, an HDD (Hard Disk Drive), an SSD (Solid State Drive), or the like.
  • the user terminal 20, the chatbot 30, and the key issuing station 50 can realize various processes described later by having the hardware configuration of the computer 600 shown in FIG.
  • the chatbot 30 and the key issuing station 50 may be realized by the hardware configuration of a plurality of computers 600.
  • the computer 600 may include a plurality of processors 606 and a plurality of memories (RAM 604, ROM 605, auxiliary storage device 608, etc.).
  • FIG. 5 is a diagram for explaining the flow of the setup process and the private key issuance process according to the present embodiment.
  • Step S101 described below is a setup process
  • steps S102 to S103 and steps S104 to S105 are a private key issuance process (user terminal) and a private key issuance process (chatbot), respectively.
  • the setup process is generally executed once when the chatbot system 1 is constructed, and then the private key issuance process (user terminal) and the private key issuance process (chatbot) are performed by the user terminal 20 or the second chatbot 32. Is repeated each time there is a need for.
  • the private key issuing process (user terminal) of steps S102 to S103 is repeatedly executed.
  • the private key issuance process (chatbot) of steps S104 to S105 is repeatedly executed.
  • Step S101 First, the key issuance processing unit 501 of the key issuing station 50 generates a public key mpk and a master private key msk by the setup algorithm Setup, transmits the public key mpk to the chatbot 30, and also sends the public key mpk to the chatbot 30.
  • the msk is stored in the storage unit 502.
  • Step S102 The key issuance processing unit 501 of the key issuing station 50 receives the user ID “UID” and the authentication information TK UID from the user terminal 20.
  • Step S103 Upon receiving the user ID "UID" and the authentication information TK UID , the key issuance processing unit 501 of the key issuing station 50 authenticates whether or not the UID is a valid user ID using the TK UID. .. Then, when the key issuance processing unit 501 succeeds in this authentication, the key generation algorithm KeyGen generates an attributed private key having a UID as an attribute, and then transmits the attributed private key to the user terminal 20.
  • chat server 10 is a business chat server (Example 2)
  • private key with an attribute is generated
  • the current time is added as an attribute in addition to the user ID.
  • Generate a private key when the chat server 10 is a business chat server (Example 2), when the private key with an attribute is generated, the current time is added as an attribute in addition to the user ID.
  • Step S104 The key issuance processing unit 501 of the key issuing station 50 receives the chatbot ID “CID” and the authentication information TK CID from the second chatbot 32.
  • Step S105 When the key issuance processing unit 501 of the key issuing station 50 receives the chatbot ID "CID" and the authentication information TK CID , the TK CID is used to authenticate whether or not the CID is a valid chatbot ID. If the key issuance processing unit 501 succeeds in this authentication, the key generation algorithm KeyGen generates an attributed private key with a CID as an attribute, and then uses this attributed private key as the second chat. Send to bot 32.
  • chat server 10 is a business chat server (Example 2)
  • an attribute in which the current time is added as an attribute in addition to the chatbot ID when the private key with an attribute is generated. Generate a private key with.
  • the chatbot system 1 does not include the second chatbot 32, the above steps S104 and S105 are not executed.
  • Example 1 a case where the chat server 10 is not a business chat server (that is, a case where it is a normal chat server) will be described.
  • -Preparation IDSET is a set of user ID and chatbot ID.
  • the encryption method is composed of four algorithms (Setup, KeyGen, Enc, Dec), and satisfies the following requirements.
  • k represents a security parameter.
  • Examples of encryption methods that satisfy such requirements include ciphertext policy attribute-based encryption and the like.
  • Table 4 is stored in the storage unit 203 of the user terminal 20.
  • Table 4 shows the tables stored in the storage unit 203 of the user UID l .
  • This table includes a chatbot ID column, a key issuing authority ID column, an authentication token column, and a private key column.
  • a chatbot ID In each column, a chatbot ID, a key issuing station ID, an authentication token, and an attributed private key are stored.
  • the user terminal 20 receives the chatbot ID and the message from the chat server 10, the user terminal 20 can obtain an attributed private key for decrypting the message by referring to this table.
  • the table as shown in Table 4 above is also referred to as a “private key table”.
  • the line where the attributed private key is not stored even though the key issuing station ID and the authentication token are stored is the case where the attributed private key has not been acquired yet. Further, the line in which the key issuing station ID and the authentication token are not stored is a line corresponding to the chatbot ID of the conventional chatbot (that is, the chatbot having no encryption function).
  • FIG. 6 is a diagram for explaining a flow when the chatbot use process is started by transmitting a message by the user terminal 20 (Example 1).
  • a series of processes when the user terminal 20 having the user ID "UID j " uses the chatbot is as follows.
  • Step S201 The chat processing unit 201 of the user UID j creates the message M, and then transmits the message M and its own user ID "UID j " to the chat server 10.
  • Step S202 When the chat server 10 receives M and UID j , all the user terminals 20 (user UID 1 to UID N ) and chatbot 30 (chatbot CID 1 to chat) connected to the chat server 10 are connected. M and UID j are transmitted to the bot CID L ).
  • Step S203 The chat processing unit 201 of each user UID i (1 ⁇ i ⁇ N) and the chat processing unit 311 (or chat processing unit 321) of each chatbot CID i (1 ⁇ i ⁇ L) are M and UID j. To receive.
  • chatbot CID i is a chatbot 30 (that is, a chatbot with an encryption function or a chatbot with an encryption and decryption function).
  • Step S204 Next, based on the chat processing unit 311 (or chat processing unit 321) of the chatbot CID i and the message M received in the above step S203, the chatbot processing is performed or the chatbot processing is not performed. Decide if you want to stop. In the following, the description will be continued assuming that the chatbot process is performed.
  • chatbot CID i in the subsequent steps S205 to S211 means the first chatbot 31.
  • chatbot processing unit 311 may be read as “chat processing unit 321" or the like.
  • Step S205 First, the chat processing unit 311 creates an empty table DL for storing the data acquired from the external service 40.
  • This table contains a data column and a view permission list column.
  • Step S206 the chat processing unit 311 of the chatbot CID i includes a message M received from the chat server 10, based on the table DL, external service S i k to transmit data acquisition request (1 ⁇ k ⁇ P j) Select to create a data acquisition request Req q .
  • Step S207 The chat processing unit 311 of the chatbot CID i creates an empty list Iq for registering a user ID and a chatbot ID having viewing authority for the data acquired from the external service 40.
  • Step S208 The chat processing unit 311 of the chatbot CID i repeats the following steps 10-1 to 10-3 for each user ID “UID j ” (1 ⁇ j ⁇ N).
  • Step 10-1 Chat processing unit 311 of the chat bot CID i, the client ID "OID i k, j" corresponding to the UID j and, OID i k, proxy authentication information Cert i k of j, and j, Req q to send the door to external service S i k. If there is no client ID corresponding to the UID j , the chat processing unit 311 executes steps 10-1 to 10-3 with the next UID j + 1 .
  • Step 10-2 External service S i k are, OID i k, j and Cert i k, receives a j and Req q, the Cert i k, j is the substitute authentication information OID i k, j with verify, OID i k, j to confirm that with viewing rights for the requested data D q in Req q. Then, when they are confirmed, the external service S i k transmits the D q chat bot CID i.
  • the Cert i k, j is OID i k, OID i k to the proxy authentication If it is not the information and data D q of j, j does not have permission to view, the external service S i k is, viewing rights Sends information indicating that the chatbot does not have CID i .
  • Step 10-3 Chat processing unit 311 of the chatbot CID i, when receiving the D q from the external service S i k, and registers the UID j in the list I q.
  • Step S209 The chat processing unit 311 of the chatbot CID i repeats the following steps 11-1 to 11-3 for each chatbot ID “CID j ” (1 ⁇ j ⁇ L).
  • Step 11-1 Chat processing unit 311 of the chat bot CID i is, CID j to the corresponding client ID "OID i k, N + j" and, and the OID i k, proxy authentication information of N + j Cert i k, N + j, Req q to send the door to external service S i k. If there is no client ID corresponding to CID j , the chat processing unit 311 executes steps 11-1 to 11-3 with the next CID j + 1 .
  • Step 11-2 External service S i k are, OID i k, N + j and Cert i k, when receiving the N + j and Req q, the Cert i k, N + j is the substitute authentication information OID i k, N + j with verify, OID i k for the requested data D q in Req q, N + j to confirm that with viewing rights. Then, when they are confirmed, the external service S i k transmits the D q chat bot CID i.
  • the N + j does not have permission to view the external service S i k is viewing authority Sends information indicating that the chatbot does not have CID i .
  • Step 11-3 Chat processing unit 311 of the chatbot CID i, when receiving the D q from the external service S i k, and registers the CID j in the list I q.
  • Step S210 The chat processing unit 311 of the chatbot CID i stores the data D q and the list I q in association with each other in the table DL.
  • Step S211 Next, the chatbot CID i creates and encrypts a message according to the following steps 12-1 to 12-5, and sends the message to the chat server 10.
  • Step 12-1 The chat processing unit 311 of the chatbot CID i selects data D 1 to D q'from the data column of the table DL based on the message M and the table DL.
  • Step 12-2 Next, the chat processing unit 311 of the chatbot CID i creates a message M'from D 1 to D q'selected in the above step 12-1.
  • Step 12-3 Then, the chat processor 311 of the chatbot CID i is, D 1 ⁇ list I 1 corresponding to the D q' 'taken out ⁇ I q', I 1' common to ⁇ I q' Create a list I that collects the registered user IDs and chatbot IDs.
  • Step 12-4 Next, the encryption processing unit 312 of the chatbot CID i obtains the message C (I) encrypted by Enc (I, mpk, M') ⁇ C (I) .
  • Step 12-5 The chat processor 311 of the chatbot CID i sends its chatbot ID as "CID i" message and C (I) to the chat server 10.
  • Step S212 the chat server 10 receives the CID i and C (I), and transmits the CID i and C (I) to the user UID 1 ⁇ User UID N and chatbot CID 1 ⁇ chatbot CID L.
  • Step S213 User UID 1 to user UID N and chatbot CID 1 to chatbot CID L receive CID i and C (I) , respectively.
  • Step S214 Then, the user UID 1 to the user UID N and the chatbot CID 1 to the chatbot CID L decode the message C (I) .
  • the user UID j decodes C (I) in steps 13-1 to 13-5 will be described, and in steps 14-1 to 14-5, the chatbot CID 1 to chatbot CID L will be described .
  • the chatbot CID j which is the second chatbot 32 (that is, a chatbot with encryption and decryption functions ) , decrypts C (I) will be described.
  • Step 13-1 When the decryption processing unit 202 of the user UID j confirms that the received CID is the chatbot ID, it is stored in the storage unit 203. Using the private key table, the private key sk j with an attribute corresponding to this chatbot ID is acquired.
  • Step 13-2 On the other hand, when the private key with the attribute corresponding to the chatbot ID is not stored in the private key table, the decryption processing unit 202 of the user UID j sets the chatbot ID in the private key table. Select the corresponding key issuer ID. Then, the decryption processing unit 202 of the user UID j transmits the authentication tokens TK l j and the UID j corresponding to the chatbot ID to the key issuing station 50 of the selected key issuing station ID in the private key table. ..
  • the authentication token TK l j represents, for example, an authentication token held by the user UID j and corresponding to the key issuing station ID “KGC l ”.
  • Step 13-4 The key issuance processing unit 501 of the key issuing station 50 transmits the attributed private key sk (UID) to the user UID j .
  • UID attributed private key sk
  • Step 13-5 The decryption processing unit 202 of the user UID j uses the attributed private key sk j acquired in step 13-1 above as sk (UID) , or with the attribute transmitted in step 13-4 above. Using the private key sk (UID) , Dec (sk (uid) , C (I) ) ⁇ M'decodes C (I) to obtain the message M'.
  • Step 14-1 When the decryption processing unit 323 of the chatbot CID j confirms that the received CID is the chatbot ID, it is stored in the storage unit 324.
  • the private key sk j with an attribute corresponding to this chatbot ID is acquired by using the private key table.
  • Step 14-2 On the other hand, when the private key with the attribute corresponding to the chatbot ID is not stored in the private key table, the decryption processing unit 323 of the chatbot CID j will use the chatbot ID in the private key table. Select the key issuing station ID corresponding to. The decryption processing unit 323 of the chatbot CID j is in the secret key table, transmits the authentication token TK l j and CID j corresponding to the chatbot ID, the key issuing authority 50 for the selected key issuing station ID To do.
  • the authentication token TK l j represents, for example, an authentication token held by the CID j and corresponding to the key issuing station ID “KGC l ”.
  • Step 14-4 The key issuance processing unit 501 of the key issuing station 50 transmits the attributed private key sk (CID) to the chatbot CID j .
  • Step 14-5 The decryption processing unit 323 of the chatbot CID j uses the private key with attributes sk j acquired in step 14-1 above as sk (CID) , or the attribute transmitted in step 14-4 above. Using the attached private key sk (CID) , C (I) is decrypted by Dec (sk (Cid) , C (I) ) ⁇ M', and the message M'is obtained.
  • FIG. 7 is a diagram for explaining a flow when the chatbot 30 starts the chatbot use process by receiving data from the external service 40 (Example 1).
  • a series of processes when the user terminal 20 having the user ID "UID j " uses the chatbot is as follows.
  • the "chatbot CID i " is assumed to be the first chatbot 31.
  • the "chat processing unit 311" may be read as the "chat processing unit 321" or the like.
  • Step S301 the chat processing unit 311 of the chatbot CID i receives the data D from the external service S i k, starts chatbot process.
  • Step S302 The chat processing unit 311 of the chatbot CID i creates a data acquisition request Req to acquire the data D.
  • Step S303 The chat processing unit 311 of the chatbot CID i creates an empty list I (viewing authority list) for registering the user ID and the chatbot ID having the viewing authority for the data D.
  • Step S304 The chat processing unit 311 of the chatbot CID i repeats the following steps 15-1 to 15-3 for each user ID “UID j ” (1 ⁇ j ⁇ N).
  • Step 15-1 Chat processing unit 311 of the chat bot CID i, the client ID "OID i k, j" corresponding to the UID j and, OID i k, proxy authentication information Cert i k of j, and j, and Req and transmits to the external service S i k. If there is no client ID corresponding to the UID j , the chat processing unit 311 executes steps 15-1 to 15-3 with the next UID j + 1 .
  • Step 15-2 External service S i k are, OID i k, j and Cert i k, receives a j and Req q, the Cert i k, j is the substitute authentication information OID i k, j with verify, OID i k, j to confirm that with viewing rights for the requested data D in Req. Then, when they are confirmed, the external service S i k transmits the D to chatbot CID i.
  • Cert i k, j is OID i k, OID i k for the case and data D is not a substitute authentication information of j, if j does not have permission to view, external service S i k is, the viewing rights Sends information indicating that it does not have to the chatbot CID i .
  • Step 15-3 Chat processing unit 311 of the chatbot CID i, when receiving the D from the external service S i k, and registers the UID j in the list I.
  • Step S305 The chat processing unit 311 of the chatbot CID i repeats the following steps 16-1 to 16-3 for each chatbot ID “CID j ” (1 ⁇ j ⁇ L).
  • Step 16-1 Chat processing unit 311 of the chat bot CID i, the client ID "OID i k, N + j" corresponding to the CID j and, OID i k, proxy authentication information of N + j Cert i k, and N + j, and Req and transmits to the external service S i k. If there is no client ID corresponding to CID j , the chat processing unit 311 executes steps 16-1 to 16-3 with the next CID j + 1 .
  • Step 16-2 make sure that the external service S i k is, OID i k, N + j and Cert i k, and receives the N + j and Req, Cert i k, N + j is the proxy authentication information of the OID i k, N + j while, OID i k for the requested data D in Req, N + j to confirm that with viewing rights. Then, when they are confirmed, the external service S i k transmits the D to chatbot CID i.
  • Cert i k, N + j is OID i k, N + j OID i k for the case and data D is not a substitute authentication information, if the N + j does not have permission to view, external service S i k is, the viewing rights Sends information indicating that it does not have to the chatbot CID i .
  • Step 16-3 Chat processing unit 311 of the chatbot CID i, when receiving the D from the external service S i k, and registers the CID j in the list I.
  • Step S306 The chat processing unit 311 of the chatbot CID i creates and encrypts a message according to the following steps 17-1 to 17-3, and sends the message to the chat server 10.
  • Step 17-1 The chat processing unit 311 of the chatbot CID i creates a message M'from the data D.
  • Step 17-2 Next, the encryption processing unit 312 of the chatbot CID i obtains the message C (I) encrypted by Enc (I, mpk, M') ⁇ C (I) .
  • Step 17-3 The chat processor 311 of the chatbot CID i sends its chatbot ID as "CID i" message and C (I) to the chat server 10.
  • Step S307 the chat server 10 receives the CID i and C (I), and transmits the CID i and C (I) to the user UID 1 ⁇ User UID N and chatbot CID 1 ⁇ chatbot CID L.
  • Step S308 User UID 1 to User UID N and Chatbot CID 1 to Chatbot CID L receive CID i and C (I) , respectively.
  • Step S309 Then, the user UID 1 to the user UID N and the chatbot CID 1 to the chatbot CID L decode the message C (I) .
  • These decoding processes are the same as those in steps 13-1 to 13-5 and steps 14-1 to 14-5 in S214 described above.
  • Example 2 a case where the chat server 10 is a business chat server (that is, a case where the chat server 10 stores a message) will be described.
  • IDSET be a set of user IDs and chatbot IDs
  • ID be a subset of IDSETs
  • N 1 be a positive integer
  • set [0, N 1 ] ⁇ 0, 1, 2, ..., N 1 ⁇ . ..
  • the encryption method is composed of four algorithms (Setup, KeyGen, Enc, Dec), and satisfies the following requirements.
  • k represents a security parameter.
  • Setup algorithm Setup (1 k ) ⁇ (mpk, msk)
  • Key generation algorithm KeyGen (id, t, mpk, msk) ⁇ sk (id, t) for id ⁇ IDSET
  • t Encryption algorithm Plaintext for M, S ⁇ ID, [t 1 , t 2 ] ⁇ [0, N 1 ]
  • Examples of encryption methods that satisfy such requirements include ciphertext policy attribute-based encryption and the like.
  • FIG. 8 is a diagram for explaining the flow when the chatbot usage process is started by transmitting a message by the user terminal 20 (Example 2).
  • a series of processes when the user terminal 20 having the user ID "UID j " uses the chatbot is as follows.
  • steps S401 to S410 are the same as steps S201 to S210 in FIG. 6, the description thereof will be omitted.
  • Step S411 The chatbot CID i creates and encrypts a message according to the following steps 17-1 to 17-5, and sends the message to the chat server 10.
  • Step 17-1 The chat processing unit 311 of the chatbot CID i selects data D 1 to D q'from the data column of the table DL based on the message M and the table DL.
  • Step 17-2 Next, the chat processing unit 311 of the chatbot CID i creates a message M'from D 1 to D q'selected in the above step 12-1.
  • Step 17-3 Then, the chat processor 311 of the chatbot CID i is, D 1 ⁇ list I 1 corresponding to the D q' 'taken out ⁇ I q', I 1' common to ⁇ I q' Create a list I that collects the registered user IDs and chatbot IDs.
  • the encrypted message (this encrypted message is represented by Cq ) is obtained.
  • T is the decodable period width.
  • Step 17-5 The chat processor 311 of the chatbot CID i is its own chatbot ID "CID i" transmits the message C q to the chat server 10.
  • Step S412 the chat server 10 receives the CID i and C q, sends the CID i and C q for a user UID 1 ⁇ User UID N and chatbot CID 1 ⁇ chatbot CID L.
  • Step S413 User UID 1 to user UID N and chatbot CID 1 to chatbot CID L receive CID i and C q , respectively.
  • Step S414 User UID 1 to user UID N and chatbot CID 1 to chatbot CID L decode message C q .
  • the case where the user UID j decodes C q in steps 18-1 to 18-5 will be described, and in steps 19-1 to 19-5, among the chatbot CIDs 1 to chatbot CID L , A case where the chatbot CID j, which is the second chatbot 32 (that is, the chatbot with encryption and decryption functions), decrypts C q will be described.
  • Step 18-1 When the decryption processing unit 202 of the user UID j confirms that the received CID is the chatbot ID, the private key stored in the storage unit 203 is stored. The table is used to acquire the attributed private key sk j corresponding to this chatbot ID.
  • Step 18-2 On the other hand, when the private key with the attribute corresponding to the chatbot ID is not stored in the private key table, the decryption processing unit 202 of the user UID j sets the chatbot ID in the private key table. Select the corresponding key issuer ID. Then, the decryption processing unit 202 of the user UID j transmits the authentication tokens TK l j and the UID j corresponding to the chatbot ID to the key issuing station 50 of the selected key issuing station ID in the private key table. ..
  • Step 18-4 The key issuance processing unit 501 of the key issuing station 50 transmits the attributed private key sk (UID, s) to the user UID j .
  • Step 18-5 The decryption processing unit 202 of the user UID j was transmitted using the attributed private key sk j acquired in step 18-1 above as sk (UID, s) or in step 18-4 above. Using the attributed private key sk (UID, s)
  • Step 19-1 When the decryption processing unit 323 of the chatbot CID j confirms that the received CID is the chatbot ID, it is stored in the storage unit 324. Using the private key table, the private key sk j with an attribute corresponding to this chatbot ID is acquired.
  • Step 19-2 On the other hand, when the private key with an attribute corresponding to the chatbot ID is not stored in the private key table, the decryption processing unit 323 of the chatbot CID j will use the chatbot ID in the private key table. Select the key issuing station ID corresponding to. The decryption processing unit 323 of the chatbot CID j is in the secret key table, transmits the authentication token TK l j and CID j corresponding to the chatbot ID, the key issuing authority 50 for the selected key issuing station ID To do.
  • Step 19-4 The key issuance processing unit 501 of the key issuing station 50 transmits the attributed private key sk (CID, s) to the chatbot CID j .
  • Step 19-5 decryption processing unit 323 of the chatbot CID j is sent the acquired Attributed secret key sk j of the above procedure 19-1 as sk (CID, s), or by the above procedure 19-4 Using the private key sk (CID, s) with attributes
  • Example 3 a case where there is only one key issuing station 50 will be described.
  • the attributed private key and the authentication token are stored in the storage unit 203 of the user terminal 20 and the storage unit 324 of the second chatbot 32, Often, the private key table does not have to be stored. If the private key with an attribute has not yet been obtained from the key issuing station 50, only the authentication token is stored. However, the chatbot ID that decrypts using this attributed private key may be associated with the authentication token (and the attributed private key).
  • chatbot ID of the conventional chatbot cannot be associated with the private key with attributes, while the chatbot ID of the chatbot 30 can be associated with the private key with attributes. Therefore, the message and the chatbot ID Is received from the chat server 10, it is possible to determine from the chatbot ID whether or not it is necessary to decrypt this message.
  • FIG. 9 is a diagram for explaining a flow when the chatbot use process is started by transmitting a message by the user terminal 20 (Example 3).
  • a series of processes when the user terminal 20 having the user ID "UID j " uses the chatbot is as follows.
  • steps S501 to S513 are the same as steps S401 to S413 in FIG. 8, the description thereof will be omitted.
  • Step S514 User UID 1 to User UID N and Chatbot CID 1 to Chatbot CID L decode message C q .
  • the case where the user UID j decodes C q in steps 20-1 to 20-5 will be described, and in steps 21-1 to 21-5, among the chatbot CIDs 1 to chatbot CID L , A case where the chatbot CID j, which is the second chatbot 32 (that is, the chatbot with encryption and decryption functions), decrypts C q will be described.
  • Step 20-1 When the decoding processing unit 202 of the user UID j confirms that the received CID is a chatbot ID, it has an attribute stored in the storage unit 203. Obtain the private key sk j .
  • Step 20-2 On the other hand, when the attributed private key is not stored in the storage unit 203, the decryption processing unit 202 of the user UID j sets the authentication tokens TK j and UID j stored in the storage unit 203. It is transmitted to the key issuing station 50.
  • Step 20-3 When the key issuance processing unit 501 of the key issuing station 50 receives the UID j and the TK j , it verifies that the UID j is correct by using the authentication token TK j . Then, when the correctness is verified, the key issuance processing unit 501 obtains the attributed private key sk (UID, s) in the same manner as in the above procedure 18-3.
  • Step 20-4 The key issuance processing unit 501 of the key issuing station 50 transmits the attributed private key sk (UID, s) to the user UID j .
  • Step 20-5 The decryption processing unit 202 of the user UID j is transmitted using the attributed private key sk j acquired in the above step 20-1 as sk (UID, s) or in the above step 20-4. Using the attributed private key sk (UID, s) , C q is decrypted and the message M'is obtained in the same manner as in step 18-5 above.
  • Step 21-1 When the decryption processing unit 323 of the chatbot CID j confirms that the received CID is the chatbot ID, it is stored in the storage unit 324. Get the attributed private key sk j .
  • Step 21-2 On the other hand, if the attribute with the private key is not stored in the storage unit 324, decoding unit 323 of the chatbot CID j includes an authentication token TK j and CID j stored in the storage unit 324 Is transmitted to the key issuing station 50.
  • Step 21-3 When the key issuance processing unit 501 of the key issuing station 50 receives the CID j and the TK j , it verifies that the CID j is correct by using the authentication token TK j . Then, when the correctness is verified, the key issuance processing unit 501 obtains the attributed private key sk (CID, s) in the same manner as in step 19-3 above.
  • Step 21-4 The key issuance processing unit 501 of the key issuing station 50 transmits the attributed private key sk (CID, s) to the chatbot CID j .
  • Step 21-5 decryption processing unit 323 of the chatbot CID j is sent the acquired Attributed secret key sk j of the above procedure 21-1 as sk (CID, s), or by the above procedure 21-4 Using the attributed private key sk (CID, s) , C q is decrypted and the message M'is obtained in the same manner as in step 19-5 above.
  • Example 4 Hereinafter, as the fourth embodiment, the case where the proxy authentication information of each external service 40 is the same will be described.
  • the proxy authentication information may be the same for the plurality of external services 40 for the same user terminal 20.
  • the information stored in the proxy authentication information table stored in the storage unit 313 of the first chatbot 31 and the storage unit 324 of the second chatbot 32 is different.
  • a proxy authentication information table as shown in Tables 5 and 6 below is stored.
  • Table 5 above are proxy authentication information table substitute authentication information of the external service S 1 is stored. Further, Table 6 above are proxy authentication information table substitute authentication information of the external service S 1 is stored.
  • Example 5 a case where the time setting method is different from that of Example 2 will be described.
  • This embodiment is the same as that of the second embodiment except for the encryption algorithm.
  • IDSET is a set of user IDs and chatbot IDs
  • ID is a subset of IDSETs
  • the encryption method is composed of four algorithms (Setup, KeyGen, Enc, Dec), and satisfies the following requirements.
  • k represents a security parameter.
  • Setup algorithm Setup (1 k ) ⁇ (mpk, msk)
  • Key generation algorithm KeyGen (id, t, mpk, msk) ⁇ sk (id, t) for id ⁇ IDSET , t
  • Encryption algorithm Plaintext M, S ⁇ ID, t, T: For positive integers, Enc (S, t, t + T, mpk, M) ⁇ C (S, t, T)
  • Decoding algorithm Dec (sk (id, t) , C (S, t, T) ) ⁇ M'
  • the above encryption method shall satisfy the following legitimacy requirements.
  • the present embodiment is the same as that of the second embodiment except that the above four algorithms (Setup, KeyGen, Enc, Dec) are used (that is, each algorithm of the second embodiment is replaced with the algorithm of the present embodiment). This is Example 5).
  • Chatbot system 10 Chat server 20 User terminal 31 First chatbot 32 Second chatbot 40 External service 201 Chat processing unit 202 Decryption processing unit 203 Storage unit 311 Chat processing unit 312 Encryption processing unit 313 Storage unit 321 Chat Processing unit 322 Encryption processing unit 323 Decryption processing unit 324 Storage unit 401 Key issuance processing unit 402 Storage unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

複数のユーザ端末と、チャットボットと、チャットサーバとが含まれるチャットボットシステムであって、前記チャットボットは、外部サービスから取得したデータからメッセージを作成するメッセージ作成手段と、前記データの利用権限を有するユーザ端末のユーザIDが含まれるリストを入力として、暗号文ポリシー属性ベース暗号の暗号化アルゴリズムによりポリシー付き暗号文を生成する暗号化手段と、前記ポリシー付き暗号文を前記チャットサーバに送信する送信手段と、を有し、前記ユーザ端末は、前記チャットサーバからポリシー付き暗号文を受信する受信手段と、自身のユーザIDに基づき生成された属性付き秘密鍵を用いて、前記ポリシー付き暗号文を復号する復号手段と、を有することを特徴とする。

Description

チャットボットシステム、情報処理装置、情報処理方法及びプログラム
 本発明は、チャットボットシステム、情報処理装置、情報処理方法及びプログラムに関する。
 チャットボットシステムが従来から知られている。チャットボットシステムとは、チャットサーバを介したメッセージ(例えば、音声やテキスト等)のやり取りによって、ユーザに対して外部サービス内のデータや機能を提供するシステムである。例えば、Slacks(登録商標)上で動作するチャットボットシステムとして、Meekan Scheduling Robot for Slackが知られている(例えば非特許文献1参照)。
Meekan Scheduling Robot for Slack<URL:https://slack.com/apps/A0G51AT60-meekan-scheduling>
 しかしながら、従来のチャットボットシステムでは、同じチャットボットシステムに接続している他のユーザやチャットボットが外部サービスの利用権限を持たない場合であっても、当該外部サービスから取得されたデータの閲覧等の利用ができてしまうことがあった。
 本発明の実施形態は、上記の点に鑑みてなされたもので、チャットボットシステムにおいて外部サービスから得られたデータの利用を制御することを目的とする。
 上記目的を達成するため、本発明の実施形態におけるチャットボットシステムは、複数のユーザ端末と、チャットボットと、チャットサーバとが含まれるチャットボットシステムであって、前記チャットボットは、外部サービスから取得したデータからメッセージを作成するメッセージ作成手段と、前記データの利用権限を有するユーザ端末のユーザIDが含まれるリストを入力として、暗号文ポリシー属性ベース暗号の暗号化アルゴリズムによりポリシー付き暗号文を生成する暗号化手段と、前記ポリシー付き暗号文を前記チャットサーバに送信する送信手段と、を有し、前記ユーザ端末は、前記チャットサーバからポリシー付き暗号文を受信する受信手段と、自身のユーザIDに基づき生成された属性付き秘密鍵を用いて、前記ポリシー付き暗号文を復号する復号手段と、を有することを特徴とする。
 チャットボットシステムにおいて外部サービスから得られたデータの利用を制御することができる。
従来のチャットボットシステムの全体構成の一例を説明するための図である。 本実施形態に係るチャットボットシステムの全体構成の一例を説明するための図である。 本実施形態に係るチャットボットシステムの機能構成の一例を説明するための図である。 コンピュータのハードウェア構成の一例を説明するための図である。 本実施形態に係るセットアップ処理及び秘密鍵発行処理の流れを説明するための図である。 ユーザ端末によるメッセージ送信でチャットボット利用処理が開始する場合(実施例1)の流れを説明するための図である。 チャットボットが外部サービスからデータを受信することでチャットボット利用処理が開始する場合(実施例1)の流れを説明するための図である。 ユーザ端末によるメッセージ送信でチャットボット利用処理が開始する場合(実施例2)の流れを説明するための図である。 ユーザ端末によるメッセージ送信でチャットボット利用処理が開始する場合(実施例3)の流れを説明するための図である。
 以下、本発明の実施形態(以降、「本実施形態」とも表す。)について説明する。本実施形態では、外部サービスから得られたデータの利用を制御することができるチャットボットシステム1について説明する。なお、外部サービスとは、外部のサービス提供者によって提供される任意のサービスのことであり、例えば、顧客管理サービス、スケジュールサービス、クラウドストレージサービス、プロジェクト管理サービス等の種々のサービスが挙げられる。
 <従来のチャットボットシステム>
 本実施形態に係るチャットボットシステム1の説明をする前に、従来のチャットボットシステムの全体構成やその動作、チャットボットシステムに一般に用いられる用語等について説明する。
 図1に示すように、従来のチャットボットシステムには、チャットサーバと、複数の外部サービスと、複数のチャットボットと、複数のユーザ端末とが含まれ、チャットサーバとユーザ端末間、チャットサーバとチャットボット間、チャットボットと外部サービス間のそれぞれで通信を行う。なお、チャットボットとは、例えば、チャットボットとして機能するプログラム等が搭載されたサーバ又はシステムのことである。また、外部サービスは、このサービスを提供するサーバ又はシステムのことである。
 各ユーザ端末(又は、ユーザ端末を利用する各ユーザ)には、例えば、氏名、電話番号、メールアドレス、ニックネーム、整数、ランダムな文字列又はこれらの組み合わせ等で表現される有限の記号列が一意に定められる。この記号列は、一般に「ユーザID」と呼ばれる。
 また、各チャットボットにも、例えば、チャットボット名、整数、ランダムな文字列等で表現される有限の記号列が一意に定められる。この記号列は、一般に「チャットボットID」と呼ばれる。
 各ユーザ端末には、全てのユーザ端末のユーザIDと、全てのチャットボットのチャットボットIDとが保存されている。以降では、全ユーザ端末数をN、全チャットボット数をLとして、ユーザIDを「UID」~「UID」、チャットボットIDを「CID」~「CID」とする。
 以降では、簡単のため、i=1,・・・、Nとして、「ユーザID「UID」が定められているユーザ端末」を「ユーザ端末UID」又は単に「ユーザUID」とも表す。同様に、j=1,・・・,Lとして、「チャットボットID「CID」が定められているチャットボット」を「チャットボットCID」とも表す。
 このとき、例えば、ユーザID「UID」が定められているユーザ端末がメッセージを送信する場合の処理は、以下の手順1-1~手順1-2のようになる。
 手順1-1:ユーザUIDは、メッセージMと自身のユーザID「UID」とをチャットサーバに送信する。
 手順1-2:チャットサーバは、メッセージMとユーザID「UID」とを受信すると、全てのユーザ端末(つまり、ユーザUID~ユーザUID)と全てのチャットボット(つまり、チャットボットCID~チャットボットCID)とに対して、当該メッセージMとユーザID「UID」とを送信する。なお、このとき、ユーザUIDにはメッセージMとユーザID「UID」とを送信しない場合もある。
 同様に、例えば、チャットボットCIDがメッセージを送信する場合の処理は、以下の手順2-1~手順2-2のようになる。
 手順2-1:チャットボットCIDは、メッセージMと自身のチャットボットID「CID」とをチャットサーバに送信する。
 手順2-2:チャットサーバは、メッセージMとユーザID「CID」とを受信すると、全てのユーザ端末と全てのチャットボットとに対して、当該メッセージMとチャットボットID「CID」とを送信する。なお、このとき、チャットボットCIDにはメッセージMとチャットボットID「CID」とを送信しない場合もある。
 なお、チャットボットがメッセージを送信する場合、チャットボットシステムによっては手順2-2でユーザ端末CID~ユーザ端末CIDのみにメッセージを送信する(つまり、チャットボットCID~チャットボットCIDにはメッセージを送信しない)場合もある。
 また、一部のチャットサーバにはメッセージを保存機能もあり、このようなチャットサーバは「ビジネスチャットサーバ」とも呼ばれる。ビジネスチャットサーバにはメッセージを保存するテーブルが用意されている。このテーブルの一例を以下の表1に示す。
Figure JPOXMLDOC01-appb-T000001
 ビジネスチャットサーバは、上記の手順1-2や手順2-2でメッセージを送信する前又は後で、メッセージを識別するメッセージIDと当該メッセージと送信元のユーザID又はチャットボットIDとを対応付けた行をテーブルに追加することでメッセージを保存する。
 ビジネスチャットサーバに保存されているメッセージを取得する場合には、ユーザUID(1≦i≦N)は、メッセージ取得リクエストをビジネスチャットサーバに送信する。メッセージ取得リクエストには、例えば、「取得対象のメッセージIDを指定したリクエスト」、「特定のキーワードを含むメッセージを取得するリクエスト」、「全てのメッセージを取得するためのリクエスト」等がある。
 次に、外部サービスについて説明する。外部サービス内のデータとしては、例えば、スケジュール情報、顧客情報、タスク情報等が挙げられる。また、外部サービスの機能としては、例えば、データの閲覧や編集、メールの送受信、投票機能等が挙げられる。このような外部サービスのデータや機能は許可されたユーザのみが利用できることが一般的である。
 ここでは、データの閲覧機能を例として、チャットボットと接続される外部サービスの処理について説明する。通常、外部サービスでは、チャットボットシステムのユーザIDとは異なるIDでユーザ端末を識別する。そのため、各ユーザ端末には、整数、氏名、電話番号、メールアドレス、ニックネーム、ランダムな文字列又はこれらの組み合わせ等で表現される有限の記号列が一意に定められているものとする。同様に、各チャットボットにも、チャットボット名、整数、ランダムな文字列等で表現される有限の記号列が一意に定められる。これらの記号列を「クライアントID」と呼ぶ。
 外部サービス内には複数のデータが保存されており、各データに対してクライアントIDのリストが定められている。クライアントID「OID」が定められているユーザ端末(又はチャットボット)が外部サービスに保存されたデータDに閲覧権限を持つとは、データDに対して定められたリストに当該ユーザ端末(又は当該チャットボット)のクライアントIDが登録されていること指す。リストは固定されたものではなく、時間の経過と共に変更されることもある。そのため、データDに閲覧権限を持つユーザ端末(又はチャットボット)が、時間の経過により閲覧権限を持たなくなることもある。
 各クライアントIDに対してランダムな文字列又はビット列が一意に存在し、チャットボットと外部サービスとに保存されている。このランダムな文字列又はビット列を「代理認証情報」と呼ぶ。このようにチャットボットと外部サービスとの間で代理認証情報を共有する技術としては、例えば、「OAuth2.0,<URL:https://tools.ietf.org/html/rfc6749>」等がある。
 クライアントID「OID」が定められているユーザ端末が、外部サービス内のデータDに閲覧権限を持ち、クライアントID「OID」に対する代理認証情報を「Cert」と表す。チャットボットがデータDを取得する場合の処理は、以下の手順3-1~手順3-2のようになる。
 手順3-1:チャットボットは、クライアントID「OID」とデータ取得リクエストReqと代理認証情報Certとを外部サービスに送信する。
 手順3-2:外部サービスは、CertがOIDの代理認証情報であることを確認し、Reqで要求されたデータDに対して、OIDが閲覧権限を持つことを確認する。CertがOIDの代理認証情報であり、かつ、OIDが閲覧権限を持つことが確認された場合には、外部サービスは、データDをチャットボットに送信する。一方で、そうでない場合には、外部サービスは処理を停止する。なお、Reqで要求されたデータが複数存在する場合、外部サービスは、OIDが閲覧権限を持つデータのみをチャットボットに送信する。
 以上のチャットサーバ及び外部サービスを用いて、チャットボットは次のように動作する。まず、チャットボットCID(1≦i≦L)にはP個の外部サービスが接続しているものとして、それぞれの外部サービスを「S 」,「S 」,・・・,「S Pi」と表す。また、外部サービスS (1≦k≦P)で定められているクライアントIDを「OID k,1」~「OID k,N+L」とする。
 各チャットボットCIDには、各外部サービスS に対して、ユーザID「UID」に対応するクライアントID「OID k,j」と、自身以外のチャットボットのチャットボットID「CIDに対応するクライアントID「OID k,N+j」とがテーブル等を用いて保存されている。ただし、全ての対応関係が保存されているわけではなく、クライアントIDが保存されていないユーザIDやチャットボットIDが存在する場合もある。また、ユーザIDとクライアントIDとの対応関係やチャットボットIDとクライアントIDとの対応関係がチャットボットに保存されている場合には、当該チャットボットには、クライアントIDに対応する代理認証情報が保存されているものとする。
 例えば、チャットボットCIDが保持するテーブルのうち、外部サービスS に対するユーザIDとクライアントIDとの対応関係が格納されたテーブルの一例を以下の表2に示す。
Figure JPOXMLDOC01-appb-T000002
 同様に、例えば、チャットボットCIDが保持するテーブルのうち、外部サービスS に対するチャットボットIDとクライアントIDとの対応関係が格納されたテーブルの一例を以下の表3に示す。
Figure JPOXMLDOC01-appb-T000003
 なお、上記の表2及び表3以外にも、チャットボットCIDは、外部サービス毎に、ユーザIDとクライアントIDとの対応関係が格納されたテーブルと、チャットボットIDとクライアントIDとの対応関係が格納されたテーブルとを保持している。以降では、このように、ユーザID(又はチャットボットID)とクライアントIDと代理認証情報との対応関係が格納されたテーブルを「代理認証情報テーブル」とも表す。
 ここで、チャットボットCIDは、例えば、「チャットサーバからメッセージM及びユーザID「UID」を受信する」、「チャットサーバからメッセージM及びチャットボットID「CID」を受信する」、「指定時刻になった等のチャットボットが自発的に起動する条件を満たす」等の条件により「チャットボット処理」を行う。チャットボット処理では、チャットボットで定められた条件や処理手順に従い、「外部サービスのデータ取得処理」と「メッセージの送信処理」とをそれぞれ0又は1回以上実行する。
 「外部サービスのデータ取得処理」を実行する際の入力に必要なデータの取得先の外部サービス(つまり、データ取得リクエストの送信先外部サービス)やデータ取得リクエスト等は、チャットボット処理が実行されるタイミングや条件に対応して、チャットボット内部に予め設定されている。例えば、「処理開始直後に実行される「外部サービスのデータ取得処理」の送信先外部サービスはS 、データ取得リクエストは固定値Req」や「受信したメッセージに特定の文言が含まれる場合、「外部サービスのデータ取得処理」の送信先外部サービスはS 、データ取得リクエストはメッセージを基に作成される」、「S からデータを取得した後に実行される「外部サービスのデータ取得処理」の送信先外部サービスはS k´、データ取得リクエストはS から取得したデータを基に作成される」等のように設定される。
 以下の(1)及び(2)に、「外部サービスのデータ取得処理」及び「メッセージの送信処理」の入力及び処理内容をそれぞれ示す。
 (1)外部サービスのデータ取得処理
 [入力]
 ・送信先外部サービスS
 ・データ取得リクエストReq
 ・クライアントID「OID k,j
 ・外部サービスから取得したデータのリストDL
 [処理内容]
 手順4-1:チャットボットCIDは、クライアントID「OID k,j」と、このクライアントID「OID k,j」の代理認証情報Cert k,jと、データ取得リクエストReqとを外部サービスS に送信する。
 手順4-2:外部サービスS は、OID k,jとCert k,jとReqとを受信すると、Cert k,jがOID k,jの代理認証情報であることを確認すると共に、Reqで要求されたデータDに対してOID k,jが閲覧権限を持つことを確認する。そして、これらが確認された場合、外部サービスS は、データDをチャットボットCIDに送信する。
 手順4-3:チャットボットCIDは、外部サービスS からDを受信する。
 手順4-4:チャットボットCIDは、リストDLに保存する。
 (2)メッセージの送信処理
 [入力]
 ・外部サービスから取得したデータのリストDL
 [処理内容]
 手順5-1:チャットボットCIDは、外部サービスから取得したデータのリストDLからいくつかのデータD´~D´を選択した上で、これらのD´~D´をメッセージM´に変換(又は、これらのD´~D´からメッセージM´を作成)する。なお、外部サービスから取得したデータがない場合(つまり、リストDLが空である場合)、チャットボットCIDは、チャットボット内部で予め定められた処理に従ってメッセージM´を作成する。
 手順5-2:チャットボットCIDは、自身のチャットボットID「CID」とメッセージM´とをチャットサーバに送信する。
 また、チャットボット処理は、以下の手順6-1~手順6-4のようになる。
 手順6-1:チャットボットCID(1≦i≦L)は、チャットボット処理を開始する。
 手順6-2:チャットボットCIDは、チャットボット処理の中で利用するユーザID又はチャットボットIDを1つ定める。ここで、例えば、「チャットサーバからメッセージM及びユーザID「UID」を受信する」によりチャットボット処理が開始された場合には、チャットボットCIDは、受信したユーザID「UID」を、チャットボット処理の中で利用するユーザIDとして定める。一方で、「チャットサーバからメッセージM及びチャットボットID「CID」を受信する」によりチャットボット処理が開始された場合には、チャットボットCIDは、受信したチャットボットID「CID」を、チャットボット処理の中で利用するチャットボットIDとして定める。
 手順6-3:チャットボットCIDは、チャットボット処理の中で取得する外部サービスのデータを保存する空のリストDLを用意し、チャットボットで定められた条件や処理手順に従い、「外部サービスのデータ取得処理」と「メッセージの送信処理」とをそれぞれ0又は1回以上実行する。
 手順6-4:「外部サービスのデータ取得処理」を実行する場合には、チャットボットCIDは、チャットボット内部で定められた設定に従い、送信先外部サービスS とデータ取得リクエストReqとを入力として決定する。また、チャットボットCIDは、クライアントIDとして、上記の手順6-2で定めたユーザID「UID」又はチャットボットID「CID」に対応するクライアントID「OID k,j」又は「OID k,N+j」を入力として用いる。更に、チャットボットCIDは、上記の手順6-3で用意したリストDLを入力として用いる。なお、「外部サービスのデータ取得処理」により、外部サービスS から取得されたデータDがリストDLに追加される。
 手順6-5:「メッセージの送信処理」を実行する場合には、チャットボットCIDは、外部サービスのデータを保存するリストDLを入力に用いる。なお、「メッセージの送信処理」により、チャットボットID「CID」及びメッセージM´がチャットサーバに送信される。
 なお、上記で説明したチャットボット処理の詳細については、例えば、上記の非特許文献1等を参照されたい。
 <本実施形態の概略>
 ここで、チャットボットシステムにおいて、外部サービスのデータを閲覧できるのは、基本的に外部サービスのデータに対して閲覧権限を持つユーザ端末だけである必要がある。これに対して、上述した従来のチャットボットシステムでは、メッセージを送信したユーザ端末又はチャットボットの代理認証情報を使って外部サービスにデータ取得リクエストを送信し、外部サービスからデータを取得していた。つまり、チャットボットは、メッセージを送信したユーザ端末又はチャットボットの閲覧権限の有無のみを確認し、外部サービスからデータを取得し、この取得したデータからメッセージの作成及び送信を行っていた。他方で、チャットサーバは既存のサービスを用いるため、チャットサーバに送信先の制御を行わせることはできない。このため、従来のチャットボットシステムでは、外部サービスの閲覧権限を持たないユーザ端末やチャットボットが、外部サービスのデータを閲覧できてしまう場合がある。
 例えば、ユーザ端末UID、ユーザ端末UID、ユーザ端末UID及びチャットボットCIDがチャットサーバに接続されており、外部サービスにデータDが保存されており、このデータDにはユーザ端末UID及びユーザ端末UIDのみが閲覧権限を持つものとする。この場合に、ユーザ端末UIDがデータDを共有するためにチャットボットを利用すると、全員がデータDを閲覧することが可能となる。すなわち、データDの閲覧権限を持たないユーザ端末UIDもデータDを閲覧することができてしまう。
 また、ビジネスチャットサーバを用いたチャットボットシステムの場合、上記の閲覧権限に関する問題に加えて、データの閲覧権限が変更された後にも当該データを利用できてしまうという問題がある。つまり、ビジネスチャットサーバには、外部サービスのデータが変換されたメッセージが保存される。このとき、外部サービスに保存されている元のデータの閲覧権限が変更されたとしても、この変更はビジネスチャットサーバに保存されているメッセージには反映されない。
 したがって、例えば、外部サービスに保存されている元のデータに有効期限があるような場合であっても、ビジネスチャットサーバに保存されるメッセージに含まれるデータは無期限に閲覧できてしまう。また、例えば、過去の或る時点ではユーザ端末UIDは外部サービスのデータDに閲覧権限を持っていたが、その後に閲覧権限が変更され、ユーザ端末UIDが閲覧権限を持たなくなった場合であっても、ユーザ端末UIDは、ビジネスチャットサーバに保存されているメッセージに含まれるデータを閲覧できてします。
 そこで、本実施形態に係るチャットボットシステム1では、外部サービス側で設定されているデータの閲覧権限を持つユーザ端末のみ当該データを閲覧可能であるようにする。また、チャットサーバとしてビジネスチャットサーバが用いられている場合には、本実施形態に係るチャットボットシステム1は、閲覧権限が有効な期間内のみ、チャットサーバに保存されているメッセージ(外部サービスのデータから生成されたメッセージ)を閲覧可能にする。
 このために、本実施形態に係るチャットボットシステム1では、暗号文ポリシー属性ベース暗号(CP-ABE:Ciphertext policy Attribute-Based Encryption)を利用する。
 CP-ABEは、属性付き秘密鍵にユーザの属性を関連付けると共に、ポリシー付き暗号文に復号条件(ポリシー)を関連付けて、復号条件(ポリシー)を満たす秘密鍵でのみ暗号文を復号可能な暗号方式である。CP-ABEは、セットアップアルゴリズム(Setup)と、鍵生成アルゴリズム(KeyGen)と、暗号化アルゴリズム(Enc)と、復号アルゴリズム(Dec)とで構成される。
 Setupは、属性集合とセキュリティパラメータとを入力として、公開鍵とマスター秘密鍵とを出力する確率的アルゴリズムである。
 KeyGenは、マスター秘密鍵と属性とを入力として、属性付き秘密鍵を1つ出力する確率的アルゴリズムである。
 Encは、公開鍵と暗号化対象の平文とポリシーとを入力として、ポリシー付き暗号文を1つ出力する確率的アルゴリズムである。
 Decは、属性付き秘密鍵とポリシー付き暗号文とを入力として、平文を出力する確定的アルゴリズムである。
 なお、CP-ABEの詳細については、例えば、「T.Okamoto, K.Takashima, "Fully Secure Functional Encryption with General Relations from the Decisional Linear Assumption" , CRYPTO 2010」等の文献を参照されたい。
 <チャットボットシステム1の全体構成>
 図2に示すように、本実施形態に係るチャットボットシステム1には、チャットサーバ10と、複数のユーザ端末20と、1以上の第1のチャットボット31と、1以上の第2のチャットボット32と、複数の外部サービス40と、1以上の鍵発行局50とが含まれる。ただし、第1のチャットボット31と第2のチャットボット32とは必ずしも両方が含まれている必要はなく、第1のチャットボット31又は第2のチャットボット32のいずれか一方が含まれていれば他方は含まれている必要はない。以降では、第1のチャットボット31及び第2のチャットボット32を総称して「チャットボット30」と表す。
 また、本実施形態に係るチャットボットシステム1では、チャットサーバ10とユーザ端末20間、チャットサーバ10とチャットボット30間、チャットボット30と外部サービス40間、ユーザ端末20と鍵発行局50及びチャットボット30と鍵発行局50のそれぞれで通信を行う。なお、鍵発行局50とは、鍵発行局として機能するプログラム等が搭載されたサーバ又はシステムのことである。また、上述したように、チャットボット30とは、例えば、チャットボットとして機能するプログラム等が搭載されたサーバ又はシステムのことである。更に、上述したように、外部サービス40は、このサービスを提供するサーバ又はシステムのことである。
 なお、以降の本実施形態の説明でも、i=1,・・・、Nとして、「ユーザID「UID」が定められているユーザ端末20」を「ユーザ端末UID」又は単に「ユーザUID」とも表す。同様に、特に断らない限り、j=1,・・・,Lとして、「チャットボットID「CID」が定められているチャットボット30」を「チャットボットCID」とも表す。同様に、チャットボットCID(1≦i≦L)にはP個の外部サービス40が接続しているものとして、それぞれの外部サービス40を「S 」,「S 」,・・・,「S Pi」と表す。その他の記号についても上記の「従来のチャットボットシステム」で用いたものと同様の記号を利用する。
 <チャットボットシステム1の機能構成>
 次に、本実施形態に係るチャットボットシステム1に含まれるユーザ端末20、チャットボット30及び鍵発行局50の機能構成について説明する。
  ≪鍵発行局50≫
 図3に示すように、本実施形態に係る鍵発行局50は、鍵発行処理部501と、記憶部502とを有する。鍵発行処理部501は、コンピュータ(情報処理装置)等にインストールされた1以上のプログラムがプロセッサ等に実行させる処理により実現される。また、記憶部502は、例えば補助記憶装置等を用いて実現可能である。
 鍵発行処理部501は、セットアップ処理と秘密鍵発行処理とを行う。セットアップ処理では、セットアップアルゴリズムSetupにより、公開鍵mpkとマスター秘密鍵mskとを生成し、公開鍵mpkをチャットボット30に送信すると共に、マスター秘密鍵mskを記憶部502に保存する。
 秘密鍵発行処理では、ユーザID「UID」と認証情報TKUIDとをユーザ端末20から受信すると、TKUIDを用いてUIDが正当なユーザIDであるか否かの認証を行い、この認証が成功した場合に、鍵生成アルゴリズムKeyGenによりUIDを属性とした属性付き秘密鍵を生成した上で、この属性付き秘密鍵を当該ユーザ端末20に送信する。また、秘密鍵発行処理では、チャットボットID「CID」と認証情報TKCIDとを第2のチャットボット32から受信すると、TKCIDを用いてCIDが正当なチャットボットIDであるか否かの認証を行い、この認証が成功した場合に、鍵生成アルゴリズムKeyGenによりCIDを属性とした属性付き秘密鍵を生成した上で、この属性付き秘密鍵を当該第2のチャットボット32に送信する。
 なお、チャットサーバ10がビジネスチャットサーバである場合には、秘密鍵発行処理において属性付き秘密鍵を生成する際に、ユーザID又はチャットボットIDに加えて、現在時刻を属性として追加した属性付き秘密鍵を生成する。
  ≪第1のチャットボット31≫
 図3に示すように、本実施形態に係る第1のチャットボット31には、チャット処理部311と、暗号化処理部312と、記憶部313とが含まれる。チャット処理部311及び暗号化処理部312は、コンピュータ(情報処理装置)等にインストールされた1以上のプログラムがプロセッサ等に実行させる処理により実現される。また、記憶部313は、例えば補助記憶装置等を用いて実現可能である。
 記憶部313には、鍵発行局50を一意に識別する鍵発行局IDや、この鍵発行局IDに対応する鍵発行局50から取得した公開鍵が保存される。また、記憶部313には、上述したテーブル(ユーザIDとクライアントIDとの対応関係が格納されたテーブル、チャットボットIDとクライアントIDとの対応関係が格納されたテーブル等)が保存されている。更に、チャットサーバ10がビジネスチャットサーバである場合には、記憶部313には、復号可能期間幅T(ただし、Tは1以上整数)が保存される。なお、記憶部313には、2つ以上の鍵発行局50から公開鍵を取得することはないものとする。
 チャット処理部311は、チャットボット処理を行う。暗号化処理部312は、チャットボット処理中において、記憶部313に記憶されている公開鍵を用いて、メッセージを暗号化する。したがって、第1のチャットボット31は、「暗号化機能付きチャットボット」のことである。
 第1のチャットボット31の「チャットボット処理」は、上記の「従来のチャットボットシステム」で説明したチャットボット処理から以下のように変更される。
 第1のチャットボット31(ここでは、「チャットボットCID」とする。)は、例えば、「チャットサーバ10からメッセージM及びユーザID「UID」を受信する」、「チャットサーバ10からメッセージM及びチャットボットID「CID」を受信する」、「指定時刻になった等のチャットボット30が自発的に起動する条件を満たす」等の条件により「チャットボット処理」を行う。チャットボット処理では、チャットボット30で定められた条件や処理手順に従い、「外部サービスのデータ取得処理」と「メッセージの送信処理」とをそれぞれ0又は1回以上実行する。
 「外部サービスのデータ取得処理」を実行する際の入力に必要なデータの取得先の外部サービス40(つまり、データ取得リクエストの送信先外部サービス)やデータ取得リクエスト等は、チャットボット処理が実行されるタイミングや条件に対応して、チャットボット30内部に予め設定されている。例えば、「処理開始直後に実行される「外部サービスのデータ取得処理」の送信先外部サービスはS 、データ取得リクエストは固定値Req」や「受信したメッセージに特定の文言が含まれる場合、「外部サービスのデータ取得処理」の送信先外部サービスはS 、データ取得リクエストはメッセージを基に作成される」、「S からデータを取得した後に実行される「外部サービスのデータ取得処理」の送信先外部サービスはS k´、データ取得リクエストはS から取得したデータを基に作成される」等のように設定される。また、「メッセージの送信処理」は、「外部サービスのデータ取得処理」が1回以上実行された後に実行される。
 以下の(1´)及び(2´)に、「外部サービスのデータ取得処理」及び「メッセージの送信処理」の入力及び処理内容をそれぞれ示す。
 (1´)外部サービスのデータ取得処理
 [入力]
 ・送信先外部サービスS
 ・データ取得リクエストReq
 ・クライアントID「OID k,j
 ・外部サービスから取得したデータのテーブルDL。ここで、テーブルDLは、外部サービス40から取得したデータが格納されるカラム(データカラム)と、このデータに対する閲覧権限のリストが格納されるカラム(閲覧権限リストカラム)とが含まれるテーブルである。
 [処理内容]
 手順7-1:チャットボットCIDは、クライアントID「OID k,j」と、このクライアントID「OID k,j」の代理認証情報Cert k,jと、データ取得リクエストReqとを外部サービスS に送信する。
 手順7-2:外部サービスS は、OID k,jとCert k,jとReqとを受信すると、Cert k,jがOID k,jの代理認証情報であることを確認すると共に、Reqで要求されたデータDに対してOID k,jが閲覧権限を持つことを確認する。そして、これらが確認された場合、外部サービスS は、データDをチャットボットCIDに送信する。
 手順7-3:チャットボットCIDは、外部サービスS からDを受信する。
 手順7-4:チャットボットCIDは、外部サービスS からDの閲覧権限を持つクライアントIDのリストIを取得する。
 手順7-5:チャットボットCIDは、記憶部313に保存されているテーブルにおけるクライアントIDとユーザIDとの対応関係及びクライアントIDとチャットボットIDとの対応関係を用いて、リストIDに含まれるクライアントIDに対応するユーザID及びチャットボットIDを全て集めたリストI´を作成する。
 手順7-6:チャットボットCIDは、DとI´とを対応付けてテーブルDLに格納する(つまり、Dをデータカラム、I´を閲覧権限リストカラムとして、これらのDとI´とを対応付けた行をテーブルDLに格納する)。
 (2´)メッセージの送信処理
 [入力]
 ・外部サービスから取得したデータのテーブルDL。上述したように、テーブルDLは、データカラムと閲覧権限リストカラムとが含まれるテーブルである。
 [処理内容]
 手順8-1:チャットボットCIDは、テーブルDLのデータカラムからいくつかのデータD´~D´を選択した上で、これらのD´~D´をメッセージM´に変換(又は、これらのD´~D´からメッセージM´を作成)する。
 手順8-2:チャットボットCIDは、上記の手順8-1で選択したD´~D´にそれぞれ対応する閲覧権限リストI´~I´をテーブルDLから取り出し、これらの閲覧権限リストI´~I´に共通するユーザID及びチャットボットIDを集めたリストI´を作成する。
 手順8-3:チャットボットCIDは、メッセージM´を公開鍵で暗号化し、ポリシー付き暗号文を生成する。このとき、暗号化に利用するポリシーは、「属性付き秘密鍵の属性「UID」又は「CID」が、リストI´に含まれる場合に復号可能」とする。
 なお、チャットサーバ10がビジネスチャットサーバである場合、暗号化に利用するポリシーは、暗号化時点の現在時刻をtとして、「属性付き秘密鍵の属性「UID」又は「CID」と属性「時刻s」とについて、属性「UID」又は「CID」がリストI´に含まれ、かつ、t≦s≦t+Tを満たす場合に復号可能」とする。
 手順8-4:チャットボットCIDは、自身のチャットボットID「CID」とポリシー付き暗号文(つまり、暗号化されたメッセージM´)とをチャットサーバ10に送信する。
 また、チャットボット処理は、以下の手順9-1~手順9-4のようになる。
 手順9-1:チャットボットCIDは、チャットボット処理を開始する。
 手順9-2:チャットボットCIDは、チャットボット処理の中で利用するユーザID又はチャットボットIDを1つ定める。ここで、例えば、「チャットサーバ10からメッセージM及びユーザID「UID」を受信する」によりチャットボット処理が開始された場合には、チャットボットCIDは、受信したユーザID「UID」を、チャットボット処理の中で利用するユーザIDとして定める。一方で、「チャットサーバからメッセージM及びチャットボットID「CID」を受信する」によりチャットボット処理が開始された場合には、チャットボットCIDは、受信したチャットボットID「CID」を、チャットボット処理の中で利用するチャットボットIDとして定める。
 手順9-3:チャットボットCIDは、チャットボット処理の中で取得する外部サービス40のデータ及びその閲覧権限リストを保存する空のテーブルDLを用意し、チャットボット30で定められた条件や処理手順に従い、「外部サービスのデータ取得処理」と「メッセージの送信処理」とをそれぞれ0又は1回以上実行する。
 手順9-4:「外部サービスのデータ取得処理」を実行する場合には、チャットボットCIDは、チャットボット30内部で定められた設定に従い、送信先外部サービスS とデータ取得リクエストReqとを入力として決定する。また、チャットボットCIDは、クライアントIDとして、上記の手順9-1で定めたユーザID「UID」又はチャットボットID「CID」に対応するクライアントID「OID k,j」又は「OID k,N+j」を入力として用いる。更に、チャットボットCIDは、上記の手順6-4で用意したテーブルDLを入力として用いる。なお、「外部サービスのデータ取得処理」により、外部サービスS から取得されたデータDと、このデータDに対する閲覧権限リストとがテーブルDLに追加される。
 手順9-5:「メッセージの送信処理」を実行する場合には、チャットボットCIDは、外部サービス40のデータ及びその閲覧権限リストを保存するテーブルDLを入力に用いる。なお、「メッセージの送信処理」により、チャットボットID「CID」及び暗号化されたメッセージM´がチャットサーバに送信される。
  ≪第2のチャットボット32≫
 図3に示すように、本実施形態に係る第2のチャットボット32には、チャット処理部321と、暗号化処理部322と、復号処理部323と、記憶部324とが含まれる。チャット処理部321、暗号化処理部322及び復号処理部323は、コンピュータ(情報処理装置)等にインストールされた1以上のプログラムがプロセッサ等に実行させる処理により実現される。また、記憶部324は、例えば補助記憶装置等を用いて実現可能である。なお、チャット処理部321及び暗号化処理部322は、第1のチャットボット31のチャット処理部311及び暗号化処理部312とそれぞれ同様であるため、その説明を省略する。
 記憶部324には、第1のチャットボット31と同様の情報又はデータに加えて、各鍵発行局IDに対応する認証トークンが保存されている。また、記憶部324には、属性付き秘密鍵が格納されるテーブルも保存されている。このテーブルには、鍵発行局IDカラムと属性付き秘密鍵カラムとが含まれる。
 復号処理部323は、チャットサーバ10からメッセージを受信すると、このメッセージの復号が必要か否かを判断し、復号が必要な場合には、鍵発行局IDを選択した上で、選択した鍵発行局IDに対応する属性付き秘密鍵を用いてメッセージを復号する。したがって、第2のチャットボット32は、「暗号化及び復号機能付きチャットボット」のことである。
 ここで、復号が必要か否かを判断する方法としては、例えば、「メッセージの送信元のチャットボットIDを基に判断する」、「改ざん検知機能付き暗号方式を用いて、受信したメッセージが暗号文か否かを判断する」等が挙げられる。また、復号時の鍵発行局IDを選択する方法としては、例えば、「メッセージの送信元のチャットボットIDを用いる」、「候補となる全ての鍵発行局50を選択する」等が挙げられる。
 第2のチャットボット32が鍵発行局50に対して属性付き認証鍵をリクエストする際には、このリクエストには、自身のチャットボットIDと鍵発行局50に対応する認証トークンとが含まれる。
 第2のチャットボット32は、メッセージを復号する時点において、過去に鍵発行局50から取得した属性付き秘密鍵が、当該取得した時刻から復号可能期間幅以上経過していれば、新たな属性付き秘密鍵の発行を鍵発行局50にリクエストする。一方で、復号可能期間幅以上経過していない場合は、第2のチャットボット32は、過去に取得した属性付き秘密鍵を使用する。また、過去に取得した属性付き秘密鍵が無い場合、第2のチャットボット32は、リクエストを送信する送信先の鍵発行局50の鍵発行局IDを上述した方法により選択する。なお、鍵発行局50から取得された属性付き秘密鍵は、記憶部324に保存されているテーブルに格納される。
  ≪ユーザ端末20≫
 図3に示すように、本実施形態に係るユーザ端末20には、チャット処理部201と、復号処理部202と、記憶部203とが含まれる。チャット処理部201及び復号処理部202は、ユーザ端末20にインストールされた1以上のプログラムがプロセッサ等に実行させる処理により実現される。また、記憶部203は、例えば補助記憶装置等を用いて実現可能である。
 記憶部203には、自身のユーザID「UID」と各鍵発行局50に対応する認証トークンTKUIDとが保存されている。また、記憶部203には、属性付き秘密鍵が格納されるテーブルも保存されている。このテーブルには、鍵発行局IDカラムと属性付き秘密鍵カラムとが含まれる。
 チャット処理部201は、メッセージの作成や送信等の処理を行う。復号処理部202は、チャットサーバ10からメッセージを受信すると、このメッセージの復号が必要か否かを判断し、復号が必要な場合には、鍵発行局IDを選択した上で、選択した鍵発行局IDに対応する属性付き秘密鍵を用いてメッセージを復号する。したがって、ユーザ端末20は、「復号機能付きユーザ端末」のことである。
 ここで、復号が必要か否かを判断する方法としては、例えば、「メッセージの送信元のチャットボットIDを基に判断する」、「改ざん検知機能付き暗号方式を用いて、受信したメッセージが暗号文か否かを判断する」等が挙げられる。また、復号時の鍵発行局IDを選択する方法としては、例えば、「メッセージの送信元のチャットボットIDを用いる」、「候補となる全ての鍵発行局50を選択する」等が挙げられる。
 ユーザ端末20が鍵発行局50に対して属性付き認証鍵をリクエストする際には、このリクエストには、自身のユーザID「UID」と鍵発行局50に対応する認証トークンTKUIDとが含まれる。
 ユーザ端末20は、メッセージを復号する時点において、過去に鍵発行局50から取得した属性付き秘密鍵が、当該取得した時刻から復号可能期間幅以上経過していれば、新たな属性付き秘密鍵の発行を鍵発行局50にリクエストする。一方で、復号可能期間幅以上経過していない場合は、ユーザ端末20は、過去に取得した属性付き秘密鍵を使用する。また、過去に取得した属性付き秘密鍵が無い場合、ユーザ端末20は、リクエストを送信する送信先の鍵発行局50の鍵発行局IDを上述した方法により選択する。なお、鍵発行局50から取得された属性付き秘密鍵は、記憶部324に保存されているテーブルに格納される。
 以上の本実施形態に係るチャットボットシステム1では、属性付き秘密鍵の属性としてユーザID又はチャットボットIDが追加され、ポリシー付き暗号文に設定されるポリシーによって、外部サービス40のデータに対して閲覧権限を持つユーザ端末20だけが当該データを閲覧することが可能となる。また、チャットサーバ10がビジネスチャットサーバである場合には、属性付き秘密鍵の属性として現在時刻が追加され、ポリシー付き暗号文に設定されるポリシーによって、外部サービス40のデータが変換されたメッセージがチャットサーバ10に保存されても、チャットボット30がデータを取得した時点の閲覧権限で一定期間内のみ閲覧が可能であり、復号可能期間経過後は閲覧できなくなるようにすることが可能となる。これにより、本実施形態に係るチャットボットシステム1では、外部サービス40から得られたデータの利用を制御することができるようになる。
 <チャットボットシステム1のハードウェア構成>
 次に、本実施形態に係るチャットボットシステム1に含まれるユーザ端末20、チャットボット30及び鍵発行局50を実現する装置又はシステムのハードウェアについて説明する。ユーザ端末20、チャットボット30及び鍵発行局50は、例えば、図4に示すコンピュータ600のハードウェアを用いて実現可能である。
 図4に示すコンピュータ600には、入力装置601と、表示装置602と、外部I/F603と、RAM(Random Access Memory)604と、ROM(Read Only Memory)605と、プロセッサ606と、通信I/F607と、補助記憶装置608とを有する。これら各ハードウェアは、それぞれがバスBを介して相互に通信可能に接続されている。
 入力装置601は、例えばキーボードやマウス、タッチパネル等である。表示装置602は、例えばディスプレイ等である。なお、チャットボット30や鍵発行局50を実現するコンピュータには入力装置601及び表示装置602の少なくとも一方が含まれていなくてもよい。
 外部I/F603は、外部装置とのインタフェースである。外部装置には、記録媒体603a等がある。コンピュータ600は、外部I/F603を介して、記録媒体603a等の読み取りや書き込みを行うことができる。記録媒体603aとしては、例えば、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等が挙げられる。
 RAM604は、プログラムやデータを一時保持する揮発性の半導体メモリである。ROM605は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。
 プロセッサ606は、例えばCPU(Central Processing Unit)やGPU(Graphics Processing Unit)、FPGA(field-programmable gate array)等の演算装置である。
 通信I/F607は、コンピュータ600を通信ネットワークに接続するためのインタフェースである。補助記憶装置608は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等である。
 本実施形態に係るユーザ端末20、チャットボット30及び鍵発行局50は、図4に示すコンピュータ600のハードウェア構成を有することにより、後述する各種処理を実現することができる。なお、チャットボット30や鍵発行局50は、複数台のコンピュータ600のハードウェア構成により実現されていてもよい。また、コンピュータ600には、複数のプロセッサ606や複数のメモリ(RAM604、ROM605、補助記憶装置608等)が含まれていてもよい。
 <実施例>
 以降では、本実施形態に係るチャットボットシステム1の実施例1~実施例5について説明する。
  ≪セットアップ処理及び秘密鍵発行処理≫
 まず、各実施例に共通する処理としてセットアップ処理及び鍵発行処理について説明する。図5は、本実施形態に係るセットアップ処理及び秘密鍵発行処理の流れを説明するための図である。なお、以降で説明するステップS101はセットアップ処理であり、ステップS102~ステップS103及びステップS104~ステップS105はそれぞれ秘密鍵発行処理(ユーザ端末)及び秘密鍵発行処理(チャットボット)である。セットアップ処理は一般にチャットボットシステム1の構築時に1度実行され、その後、秘密鍵発行処理(ユーザ端末)及び秘密鍵発行処理(チャットボット)はユーザ端末20又は第2のチャットボット32で秘密鍵発行の必要が生じるたびに繰り返し実行される。すなわち、ユーザ端末20で秘密鍵発行の必要が生じるたびにステップS102~ステップS103の秘密鍵発行処理(ユーザ端末)が繰り返し実行される。同様に、第2のチャットボット32で秘密鍵発行の必要が生じるたびにステップS104~ステップS105の秘密鍵発行処理(チャットボット)が繰り返し実行される。
 ステップS101:まず、鍵発行局50の鍵発行処理部501は、セットアップアルゴリズムSetupにより、公開鍵mpkとマスター秘密鍵mskとを生成し、公開鍵mpkをチャットボット30に送信すると共に、マスター秘密鍵mskを記憶部502に保存する。
 ステップS102:鍵発行局50の鍵発行処理部501は、ユーザID「UID」と認証情報TKUIDとをユーザ端末20から受信する。
 ステップS103:鍵発行局50の鍵発行処理部501は、ユーザID「UID」と認証情報TKUIDとを受信すると、TKUIDを用いてUIDが正当なユーザIDであるか否かの認証を行う。そして、鍵発行処理部501は、この認証に成功した場合、鍵生成アルゴリズムKeyGenによりUIDを属性とした属性付き秘密鍵を生成した上で、この属性付き秘密鍵を当該ユーザ端末20に送信する。
 なお、上述したように、チャットサーバ10がビジネスチャットサーバである場合(実施例2)には、属性付き秘密鍵を生成する際に、ユーザIDに加えて、現在時刻を属性として追加した属性付き秘密鍵を生成する。
 ステップS104:鍵発行局50の鍵発行処理部501は、チャットボットID「CID」と認証情報TKCIDとを第2のチャットボット32から受信する。
 ステップS105:鍵発行局50の鍵発行処理部501は、チャットボットID「CID」と認証情報TKCIDとを受信すると、TKCIDを用いてCIDが正当なチャットボットIDであるか否かの認証を行う、そして、鍵発行処理部501は、この認証に成功した場合、鍵生成アルゴリズムKeyGenによりCIDを属性とした属性付き秘密鍵を生成した上で、この属性付き秘密鍵を当該第2のチャットボット32に送信する。
 なお、上述したように、チャットサーバ10がビジネスチャットサーバである場合(実施例2)には、属性付き秘密鍵を生成する際に、チャットボットIDに加えて、現在時刻を属性として追加した属性付き秘密鍵を生成する。ただし、チャットボットシステム1に第2のチャットボット32が含まれない場合には、上記のステップS104及びステップS105は実行されない。
 (実施例1)
 以降では、実施例1として、チャットサーバ10がビジネスチャットサーバでない場合(つまり、通常のチャットサーバである場合)について説明する。
 ・準備
 IDSETをユーザID及びチャットボットIDの集合とする。本実施例では、暗号方式は4つアルゴリズム(Setup,KeyGen,Enc,Dec)の4つのアルゴリズムで構成されており、以下の要件を満たすものとする。なお、ここではkはセキュリティパラメータを表す。
 セットアップアルゴリズム:Setup(1)→(mpk,msk)
 鍵生成アルゴリズム:ID∈IDSETに対して、KeyGen(ID,mpk,msk)→sk(ID)
 暗号化アルゴリズム:平文をMとして、I⊂IDSETに対して、Enc(I,mpk,M)→C(I)
 復号アルゴリズム:Dec(sk(ID),C(I))→M´
 また、上記の暗号方式は以下の正当性の要件を満たすものとする。
Figure JPOXMLDOC01-appb-M000004
 このような要件を満たす暗号方式としては、例えば、暗号文ポリシー属性ベース暗号等がある。
 また、本実施例では、ユーザ端末20の記憶部203には、以下の表4に示すテーブルが保存されている。表4は、ユーザUIDの記憶部203に記憶されているテーブルを示している。
Figure JPOXMLDOC01-appb-T000005
 このテーブルには、チャットボットIDカラムと、鍵発行局IDカラムと、認証トークンカラムと、秘密鍵カラムとが含まれる。それぞれのカラムには、チャットボットIDと、鍵発行局IDと、認証トークンと、属性付き秘密鍵とが格納される。ユーザ端末20は、チャットボットIDとメッセージとをチャットサーバ10から受信した場合に、このテーブルを参照することで、このメッセージを復号するための属性付き秘密鍵を得ることができる。以降では、上記の表4に示すようなテーブルを「秘密鍵テーブル」とも表す。
 なお、鍵発行局ID及び認証トークンが格納されているにも関わらず属性付き秘密鍵が格納されていない行は、未だ属性付き秘密鍵が取得されていない場合である。また、鍵発行局ID及び認証トークンも格納されていない行は、従来のチャットボット(つまり、暗号化機能を有しないチャットボット)のチャットボットIDに対応する行である。
 なお、上記の表4に示すテーブルと同様のテーブルは、第2のチャットボット32の記憶部324にも記憶されているものとする。
  ≪ユーザ端末20によるメッセージ送信でチャットボット処理が開始する場合≫
 図6は、ユーザ端末20によるメッセージ送信でチャットボット利用処理が開始する場合(実施例1)の流れを説明するための図である。このとき、ユーザID「UID」を持つユーザ端末20がチャットボットを利用する際の一連の処理は以下のようになる。
 ステップS201:ユーザUIDのチャット処理部201は、メッセージMを作成した上で、メッセージMと自身のユーザID「UID」とをチャットサーバ10に送信する。
 ステップS202:チャットサーバ10は、M及びUIDを受信すると、このチャットサーバ10に接続している全てのユーザ端末20(ユーザUID~ユーザUID)及びチャットボット30(チャットボットCID~チャットボットCID)に対して、M及びUIDを送信する。
 ステップS203:各ユーザUID(1≦i≦N)のチャット処理部201及び各チャットボットCID(1≦i≦L)のチャット処理部311(又はチャット処理部321)は、M及びUIDを受信する。
 以降では、チャットボットCID(1≦i≦L)のうち、チャットボット30の動作について説明する。従来のチャットボットの動作については、「従来のチャットボットシステム」で説明した動作を行う。したがって、以降の「チャットボットCID」は、チャットボット30(つまり、暗号化機能付きチャットボット又は暗号化及び復号機能付きチャットボット)のことである。
 ステップS204:次に、チャットボットCIDのチャット処理部311(又はチャット処理部321)、上記のステップS203で受信したメッセージMに基づいて、チャットボット処理を行うか又はチャットボット処理を行わずに停止するかを決定する。以降では、チャットボット処理を行うものとして説明を続ける。
 また、簡単のため、以降では、第1のチャットボット31がチャットボット処理を行うものとして説明する。したがって、以降のステップS205~ステップS211における「チャットボットCID」は、第1のチャットボット31を意味する。なお、第2のチャットボット32がチャットボット処理を行う場合には、以降の「チャット処理部311」を「チャット処理部321」等に読み替えればよい。
 ステップS205:まず、チャット処理部311は、外部サービス40から取得したデータを保存するための空のテーブルDLを作成する。このテーブルには、データカラムと、閲覧権限リストカラムとが含まれる。
 チャットボット処理の途中で外部サービス40からデータを取得する必要がある場合、「外部サービスからデータを取得する処理」が実行される。以降のステップS206~ステップS210では、一例として、q回目の「外部サービスからデータを取得する処理」について説明する。
 ステップS206:チャットボットCIDのチャット処理部311は、チャットサーバ10から受信したメッセージMと、テーブルDLとに基づいて、データ取得リクエストを送信する外部サービスS (1≦k≦P)を選択し、データ取得リクエストReqを作成する。
 ステップS207:チャットボットCIDのチャット処理部311は、外部サービス40から取得したデータに対して閲覧権限を持つユーザID及びチャットボットIDを登録するための空のリストIを作成する。
 ステップS208:チャットボットCIDのチャット処理部311は、各ユーザID「UID」(1≦j≦N)に対して、以下の手順10-1~手順10-3を繰り返す。
 手順10-1:チャットボットCIDのチャット処理部311は、UIDに対応するクライアントID「OID k,j」と、OID k,jの代理認証情報Cert k,jと、Reqとを外部サービスS に送信する。なお、UIDに対応するクライアントIDがない場合、チャット処理部311は、次のUIDj+1で手順10-1~手順10-3を実行する。
 手順10-2:外部サービスS は、OID k,jとCert k,jとReqとを受信すると、Cert k,jがOID k,jの代理認証情報であることを確認すると共に、Reqで要求されたデータDに対してOID k,jが閲覧権限を持つことを確認する。そして、これらが確認された場合、外部サービスS は、DをチャットボットCIDに送信する。一方で、Cert k,jがOID k,jの代理認証情報でない場合やデータDに対してOID k,jが閲覧権限を持たない場合は、外部サービスS は、閲覧権限を持たないことを示す情報をチャットボットCIDに送信する。
 手順10-3:チャットボットCIDのチャット処理部311は、外部サービスS からDを受信した場合、リストIにUIDを登録する。
 ステップS209:チャットボットCIDのチャット処理部311は、各チャットボットID「CID」(1≦j≦L)に対して、以下の手順11-1~手順11-3を繰り返す。
 手順11-1:チャットボットCIDのチャット処理部311は、CIDに対応するクライアントID「OID k,N+j」と、OID k,N+jの代理認証情報Cert k,N+jと、Reqとを外部サービスS に送信する。なお、CIDに対応するクライアントIDがない場合、チャット処理部311は、次のCIDj+1で手順11-1~手順11-3を実行する。
 手順11-2:外部サービスS は、OID k,N+jとCert k,N+jとReqとを受信すると、Cert k,N+jがOID k,N+jの代理認証情報であることを確認すると共に、Reqで要求されたデータDに対してOID k,N+jが閲覧権限を持つことを確認する。そして、これらが確認された場合、外部サービスS は、DをチャットボットCIDに送信する。一方で、Cert k,N+jがOID k,N+jの代理認証情報でない場合やデータDに対してOID k,N+jが閲覧権限を持たない場合は、外部サービスS は、閲覧権限を持たないことを示す情報をチャットボットCIDに送信する。
 手順11-3:チャットボットCIDのチャット処理部311は、外部サービスS からDを受信した場合、リストIにCIDを登録する。
 ステップS210:チャットボットCIDのチャット処理部311は、データDとリストIとを対応付けてテーブルDLに格納する。
 ステップS211:次に、チャットボットCIDは、以下の手順12-1~手順12-5によりメッセージを作成及び暗号化し、チャットサーバ10に送信する。
 手順12-1:チャットボットCIDのチャット処理部311は、メッセージMとテーブルDLとに基づいて、このテーブルDLのデータカラムからデータD~Dq´を選択する。
 手順12-2:次に、チャットボットCIDのチャット処理部311は、上記の手順12-1で選択したD~Dq´からメッセージM´を作成する。
 手順12-3:次に、チャットボットCIDのチャット処理部311は、D~Dq´にそれぞれ対応するリストI´~Iq´を取り出し、I´~Iq´に共通して登録されているユーザID及びチャットボットIDを集めたリストIを作成する。
 手順12-4:次に、チャットボットCIDの暗号化処理部312は、Enc(I,mpk,M´)→C(I)により暗号化されたメッセージC(I)を得る。
 手順12-5:そして、チャットボットCIDのチャット処理部311は、自身のチャットボットID「CID」とメッセージC(I)とをチャットサーバ10に送信する。
 ステップS212:チャットサーバ10は、CID及びC(I)を受信すると、ユーザUID~ユーザUID及びチャットボットCID~チャットボットCIDに対してCID及びC(I)を送信する。
 ステップS213:ユーザUID~ユーザUID及びチャットボットCID~チャットボットCIDは、それぞれCID及びC(I)を受信する。
 ステップS214:そして、ユーザUID~ユーザUID及びチャットボットCID~チャットボットCIDは、メッセージC(I)を復号する。以降では、手順13-1~手順13-5でユーザUIDがC(I)を復号する場合について説明し、手順14-1~手順14-5で、チャットボットCID~チャットボットCIDのうち、第2のチャットボット32(つまり、暗号化及び復号機能付きチャットボット)であるチャットボットCIDがC(I)を復号する場合について説明する。
 ・ユーザUIDがC(I)を復号する場合
 手順13-1:ユーザUIDの復号処理部202は、受信したCIDがチャットボットIDであることを確認すると、記憶部203に記憶されている秘密鍵テーブルを用いて、このチャットボットIDに対応する属性付き秘密鍵skを取得する。
 手順13-2:一方で、当該チャットボットIDに対応する属性付き秘密鍵が秘密鍵テーブルに格納されていない場合、ユーザUIDの復号処理部202は、当該秘密鍵テーブルにおいて当該チャットボットIDに対応する鍵発行局IDを選択する。そして、ユーザUIDの復号処理部202は、当該秘密鍵テーブルにおいて、当該チャットボットIDに対応する認証トークンTK とUIDとを、選択した鍵発行局IDの鍵発行局50に送信する。なお、認証トークンTK は、例えば、ユーザUIDが保持している、鍵発行局ID「KGC」に対応する認証トークンを表す。

 手順13-3:鍵発行局50の鍵発行処理部501は、UID及びTK を受信すると、この認証トークンTK を用いて、UIDが正しいことを検証する。そして、正しいことが検証された場合、鍵発行処理部501は、UID=UIDとして、KeyGen(UID,mpk,msk)→sk(UID)により属性付き秘密鍵sk(UID)を得る。
 手順13-4:鍵発行局50の鍵発行処理部501は、属性付き秘密鍵sk(UID)をユーザUIDに送信する。
 手順13-5:ユーザUIDの復号処理部202は、上記の手順13-1の取得した属性付き秘密鍵skをsk(UID)として、又は上記の手順13-4で送信された属性付き秘密鍵sk(UID)を用いて、Dec(sk(uid),C(I))→M´によりC(I)を復号し、メッセージM´を得る。
 ・チャットボットCIDがC(I)を復号する場合
 手順14-1:チャットボットCIDの復号処理部323は、受信したCIDがチャットボットIDであることを確認すると、記憶部324に記憶されている秘密鍵テーブルを用いて、このチャットボットIDに対応する属性付き秘密鍵skを取得する。
 手順14-2:一方で、当該チャットボットIDに対応する属性付き秘密鍵が秘密鍵テーブルに格納されていない場合、チャットボットCIDの復号処理部323は、当該秘密鍵テーブルにおいて当該チャットボットIDに対応する鍵発行局IDを選択する。そして、チャットボットCIDの復号処理部323は、当該秘密鍵テーブルにおいて、当該チャットボットIDに対応する認証トークンTK とCIDとを、選択した鍵発行局IDの鍵発行局50に送信する。なお、認証トークンTK は、例えば、CIDが保持している、鍵発行局ID「KGC」に対応する認証トークンを表す。
 手順14-3:鍵発行局50の鍵発行処理部501は、CID及びTK を受信すると、この認証トークンTK を用いて、CIDが正しいことを検証する。そして、正しいことが検証された場合、鍵発行処理部501は、CID=CIDとして、KeyGen(CID,mpk,msk)→sk(CID)により属性付き秘密鍵sk(CID)を得る。
 手順14-4:鍵発行局50の鍵発行処理部501は、属性付き秘密鍵sk(CID)をチャットボットCIDに送信する。
 手順14-5:チャットボットCIDの復号処理部323は、上記の手順14-1の取得した属性付き秘密鍵skをsk(CID)として、又は上記の手順14-4で送信された属性付き秘密鍵sk(CID)を用いて、Dec(sk(Cid),C(I))→M´によりC(I)を復号し、メッセージM´を得る。
  ≪チャットボット30が外部サービス40からデータを受信することでチャットボット利用が開始する場合≫
 図7は、チャットボット30が外部サービス40からデータを受信することでチャットボット利用処理が開始する場合(実施例1)の流れを説明するための図である。このとき、ユーザID「UID」を持つユーザ端末20がチャットボットを利用する際の一連の処理は以下のようになる。なお、以降では、簡単のため、「チャットボットCID」は第1のチャットボット31であるものとする。「チャットボットCID」が第2のチャットボット32である場合には、「チャット処理部311」を「チャット処理部321」等に読み替えればよい。
 ステップS301:チャットボットCIDのチャット処理部311は、外部サービスS からデータDを受信すると、チャットボット処理を開始する。
 ステップS302:チャットボットCIDのチャット処理部311は、当該データDを取得するデータ取得リクエストReqを作成する。
 ステップS303:チャットボットCIDのチャット処理部311は、当該データDに対して閲覧権限を持つユーザID及びチャットボットIDを登録するための空のリストI(閲覧権限リスト)を作成する。
 ステップS304:チャットボットCIDのチャット処理部311は、各ユーザID「UID」(1≦j≦N)に対して、以下の手順15-1~手順15-3を繰り返す。
 手順15-1:チャットボットCIDのチャット処理部311は、UIDに対応するクライアントID「OID k,j」と、OID k,jの代理認証情報Cert k,jと、Reqとを外部サービスS に送信する。なお、UIDに対応するクライアントIDがない場合、チャット処理部311は、次のUIDj+1で手順15-1~手順15-3を実行する。
 手順15-2:外部サービスS は、OID k,jとCert k,jとReqとを受信すると、Cert k,jがOID k,jの代理認証情報であることを確認すると共に、Reqで要求されたデータDに対してOID k,jが閲覧権限を持つことを確認する。そして、これらが確認された場合、外部サービスS は、DをチャットボットCIDに送信する。一方で、Cert k,jがOID k,jの代理認証情報でない場合やデータDに対してOID k,jが閲覧権限を持たない場合は、外部サービスS は、閲覧権限を持たないことを示す情報をチャットボットCIDに送信する。
 手順15-3:チャットボットCIDのチャット処理部311は、外部サービスS からDを受信した場合、リストIにUIDを登録する。
 ステップS305:チャットボットCIDのチャット処理部311は、各チャットボットID「CID」(1≦j≦L)に対して、以下の手順16-1~手順16-3を繰り返す。
 手順16-1:チャットボットCIDのチャット処理部311は、CIDに対応するクライアントID「OID k,N+j」と、OID k,N+jの代理認証情報Cert k,N+jと、Reqとを外部サービスS に送信する。なお、CIDに対応するクライアントIDがない場合、チャット処理部311は、次のCIDj+1で手順16-1~手順16-3を実行する。
 手順16-2:外部サービスS は、OID k,N+jとCert k,N+jとReqとを受信すると、Cert k,N+jがOID k,N+jの代理認証情報であることを確認すると共に、Reqで要求されたデータDに対してOID k,N+jが閲覧権限を持つことを確認する。そして、これらが確認された場合、外部サービスS は、DをチャットボットCIDに送信する。一方で、Cert k,N+jがOID k,N+jの代理認証情報でない場合やデータDに対してOID k,N+jが閲覧権限を持たない場合は、外部サービスS は、閲覧権限を持たないことを示す情報をチャットボットCIDに送信する。
 手順16-3:チャットボットCIDのチャット処理部311は、外部サービスS からDを受信した場合、リストIにCIDを登録する。
 ステップS306:チャットボットCIDのチャット処理部311は、以下の手順17-1~手順17-3によりメッセージを作成及び暗号化し、チャットサーバ10に送信する。
 手順17-1:チャットボットCIDのチャット処理部311は、データDからメッセージM´を作成する。
 手順17-2:次に、チャットボットCIDの暗号化処理部312は、Enc(I,mpk,M´)→C(I)により暗号化されたメッセージC(I)を得る。
 手順17-3:そして、チャットボットCIDのチャット処理部311は、自身のチャットボットID「CID」とメッセージC(I)とをチャットサーバ10に送信する。
 ステップS307:チャットサーバ10は、CID及びC(I)を受信すると、ユーザUID~ユーザUID及びチャットボットCID~チャットボットCIDに対してCID及びC(I)を送信する。
 ステップS308:ユーザUID~ユーザUID及びチャットボットCID~チャットボットCIDは、それぞれCID及びC(I)を受信する。
 ステップS309:そして、ユーザUID~ユーザUID及びチャットボットCID~チャットボットCIDは、メッセージC(I)を復号する。これらの復号処理は、上記のS214の手順13-1~手順13-5及び手順14-1~手順14-5と同様である。
 (実施例2)
 以降では、実施例2として、チャットサーバ10がビジネスチャットサーバである場合(つまり、チャットサーバ10がメッセージを保存する場合)について説明する。
 ・準備
 IDSETをユーザID及びチャットボットIDの集合、IDをIDSETの部分集合、Nを正の整数として[0,N]={0,1,2,・・・,N}とする。本実施例では、暗号方式は4つアルゴリズム(Setup,KeyGen,Enc,Dec)の4つのアルゴリズムで構成されており、以下の要件を満たすものとする。なお、ここではkはセキュリティパラメータを表す。
 セットアップアルゴリズム:Setup(1)→(mpk,msk)
 鍵生成アルゴリズム:id∈IDSET、tに対して、KeyGen(id,t,mpk,msk)→sk(id,t)
 暗号化アルゴリズム:平文をM、S⊂ID、[t,t]⊂[0,N]に対して、
Figure JPOXMLDOC01-appb-M000006
 復号アルゴリズム:
Figure JPOXMLDOC01-appb-M000007
 また、上記の暗号方式は以下の正当性の要件を満たすものとする。
Figure JPOXMLDOC01-appb-M000008
 このような要件を満たす暗号方式としては、例えば、暗号文ポリシー属性ベース暗号等がある。
 また、本実施例でも、ユーザ端末20の記憶部203や第2のチャットボット32の記憶部324には、上記の表4に示したような秘密鍵テーブルが保存されているもとする。
  ≪ユーザ端末20によるメッセージ送信でチャットボット処理が開始する場合≫
 図8は、ユーザ端末20によるメッセージ送信でチャットボット利用処理が開始する場合(実施例2)の流れを説明するための図である。このとき、ユーザID「UID」を持つユーザ端末20がチャットボットを利用する際の一連の処理は以下のようになる。
 ステップS401~ステップS410は、図6のステップS201~ステップS210とそれぞれ同様であるため、その説明を省略する。
 ステップS411:チャットボットCIDは、以下の手順17-1~手順17-5によりメッセージを作成及び暗号化し、チャットサーバ10に送信する。
 手順17-1:チャットボットCIDのチャット処理部311は、メッセージMとテーブルDLとに基づいて、このテーブルDLのデータカラムからデータD~Dq´を選択する。
 手順17-2:次に、チャットボットCIDのチャット処理部311は、上記の手順12-1で選択したD~Dq´からメッセージM´を作成する。
 手順17-3:次に、チャットボットCIDのチャット処理部311は、D~Dq´にそれぞれ対応するリストI´~Iq´を取り出し、I´~Iq´に共通して登録されているユーザID及びチャットボットIDを集めたリストIを作成する。
 手順17-4:次に、チャットボットCIDの暗号化処理部312は、I=Iとして、
Figure JPOXMLDOC01-appb-M000009
により暗号化されたメッセージ(この暗号化されたメッセージをCと表す。)を得る。ここで、Tは復号可能期間幅である。
 手順17-5:そして、チャットボットCIDのチャット処理部311は、自身のチャットボットID「CID」とメッセージCとをチャットサーバ10に送信する。
 ステップS412:チャットサーバ10は、CID及びCを受信すると、ユーザUID~ユーザUID及びチャットボットCID~チャットボットCIDに対してCID及びCを送信する。
 ステップS413:ユーザUID~ユーザUID及びチャットボットCID~チャットボットCIDは、それぞれCID及びCを受信する。
 ステップS414:ユーザUID~ユーザUID及びチャットボットCID~チャットボットCIDは、メッセージCを復号する。以降では、手順18-1~手順18-5でユーザUIDがCを復号する場合について説明し、手順19-1~手順19-5で、チャットボットCID~チャットボットCIDのうち、第2のチャットボット32(つまり、暗号化及び復号機能付きチャットボット)であるチャットボットCIDがCを復号する場合について説明する。
 ・ユーザUIDがCを復号する場合
 手順18-1:ユーザUIDの復号処理部202は、受信したCIDがチャットボットIDであることを確認すると、記憶部203に記憶されている秘密鍵テーブルを用いて、このチャットボットIDに対応する属性付き秘密鍵skを取得する。
 手順18-2:一方で、当該チャットボットIDに対応する属性付き秘密鍵が秘密鍵テーブルに格納されていない場合、ユーザUIDの復号処理部202は、当該秘密鍵テーブルにおいて当該チャットボットIDに対応する鍵発行局IDを選択する。そして、ユーザUIDの復号処理部202は、当該秘密鍵テーブルにおいて、当該チャットボットIDに対応する認証トークンTK とUIDとを、選択した鍵発行局IDの鍵発行局50に送信する。
 手順18-3:鍵発行局50の鍵発行処理部501は、UID及びTK を受信すると、この認証トークンTK を用いて、UIDが正しいことを検証する。そして、正しいことが検証された場合、鍵発行処理部501は、UID=UID、現在時刻をsとして、
Figure JPOXMLDOC01-appb-M000010
により属性付き秘密鍵sk(UID,s)を得る。
 手順18-4:鍵発行局50の鍵発行処理部501は、属性付き秘密鍵sk(UID,s)をユーザUIDに送信する。
 手順18-5:ユーザUIDの復号処理部202は、上記の手順18-1の取得した属性付き秘密鍵skをsk(UID,s)として、又は上記の手順18-4で送信された属性付き秘密鍵sk(UID,s)を用いて、
Figure JPOXMLDOC01-appb-M000011
によりCを復号し、メッセージM´を得る。
 ・チャットボットCIDがCを復号する場合
 手順19-1:チャットボットCIDの復号処理部323は、受信したCIDがチャットボットIDであることを確認すると、記憶部324に記憶されている秘密鍵テーブルを用いて、このチャットボットIDに対応する属性付き秘密鍵skを取得する。
 手順19-2:一方で、当該チャットボットIDに対応する属性付き秘密鍵が秘密鍵テーブルに格納されていない場合、チャットボットCIDの復号処理部323は、当該秘密鍵テーブルにおいて当該チャットボットIDに対応する鍵発行局IDを選択する。そして、チャットボットCIDの復号処理部323は、当該秘密鍵テーブルにおいて、当該チャットボットIDに対応する認証トークンTK とCIDとを、選択した鍵発行局IDの鍵発行局50に送信する。
 手順19-3:鍵発行局50の鍵発行処理部501は、CID及びTK を受信すると、この認証トークンTK を用いて、CIDが正しいことを検証する。そして、正しいことが検証された場合、鍵発行処理部501は、CID=CID、現在時刻をsとして、
Figure JPOXMLDOC01-appb-M000012
により属性付き秘密鍵sk(CID,s)を得る。
 手順19-4:鍵発行局50の鍵発行処理部501は、属性付き秘密鍵sk(CID,s)をチャットボットCIDに送信する。
 手順19-5:チャットボットCIDの復号処理部323は、上記の手順19-1の取得した属性付き秘密鍵skをsk(CID,s)として、又は上記の手順19-4で送信された属性付き秘密鍵sk(CID,s)を用いて、
Figure JPOXMLDOC01-appb-M000013
によりCを復号し、メッセージM´を得る。
 (実施例3)
 以降では、実施例3として、鍵発行局50が1つのみである場合について説明する。ここで、鍵発行局50が1つのみである場合、ユーザ端末20の記憶部203及び第2のチャットボット32の記憶部324には、属性付き秘密鍵と認証トークンとが保存されていればよく、秘密鍵テーブルが保存されていなくてもよい。なお、鍵発行局50から属性付き秘密鍵を未だ取得していない場合には認証トークンのみが保存されている。ただし、この属性付き秘密鍵を用いて復号を行うチャットボットIDが、当該認証トークン(及び当該属性付き秘密鍵)に対応付けられていてもよい。これにより、従来のチャットボットのチャットボットIDには属性付き秘密鍵が対応付けられない一方で、チャットボット30のチャットボットIDには属性付き秘密鍵を対応付けることができるため、メッセージ及びチャットボットIDをチャットサーバ10から受信した場合に、このメッセージを復号する必要があるか否かをチャットボットIDから判断することが可能となる。
 なお、上述した属性付き秘密鍵に関する条件と鍵発行局50が1つであることの条件以外の条件は実施例2と同様であるとする。
  ≪ユーザ端末20によるメッセージ送信でチャットボット処理が開始する場合≫
 図9は、ユーザ端末20によるメッセージ送信でチャットボット利用処理が開始する場合(実施例3)の流れを説明するための図である。このとき、ユーザID「UID」を持つユーザ端末20がチャットボットを利用する際の一連の処理は以下のようになる。
 ステップS501~ステップS513は、図8のステップS401~ステップS413とそれぞれ同様であるため、その説明を省略する。
 ステップS514:ユーザUID~ユーザUID及びチャットボットCID~チャットボットCIDは、メッセージCを復号する。以降では、手順20-1~手順20-5でユーザUIDがCを復号する場合について説明し、手順21-1~手順21-5で、チャットボットCID~チャットボットCIDのうち、第2のチャットボット32(つまり、暗号化及び復号機能付きチャットボット)であるチャットボットCIDがCを復号する場合について説明する。
 ・ユーザUIDがCを復号する場合
 手順20-1:ユーザUIDの復号処理部202は、受信したCIDがチャットボットIDであることを確認すると、記憶部203に記憶されている属性付き秘密鍵skを取得する。
 手順20-2:一方で、属性付き秘密鍵が記憶部203に保存されていない場合、ユーザUIDの復号処理部202は、記憶部203に保存されている認証トークンTKとUIDとを鍵発行局50に送信する。
 手順20-3:鍵発行局50の鍵発行処理部501は、UID及びTKを受信すると、この認証トークンTKを用いて、UIDが正しいことを検証する。そして、正しいことが検証された場合、鍵発行処理部501は、上記の手順18-3と同様に、属性付き秘密鍵sk(UID,s)を得る。
 手順20-4:鍵発行局50の鍵発行処理部501は、属性付き秘密鍵sk(UID,s)をユーザUIDに送信する。
 手順20-5:ユーザUIDの復号処理部202は、上記の手順20-1の取得した属性付き秘密鍵skをsk(UID,s)として、又は上記の手順20-4で送信された属性付き秘密鍵sk(UID,s)を用いて、上記の手順18-5と同様に、Cを復号し、メッセージM´を得る。
 ・チャットボットCIDがCを復号する場合
 手順21-1:チャットボットCIDの復号処理部323は、受信したCIDがチャットボットIDであることを確認すると、記憶部324に記憶されている属性付き秘密鍵skを取得する。
 手順21-2:一方で、属性付き秘密鍵が記憶部324に保存されていない場合、チャットボットCIDの復号処理部323は、記憶部324に保存されている認証トークンTKとCIDとを鍵発行局50に送信する。
 手順21-3:鍵発行局50の鍵発行処理部501は、CID及びTKを受信すると、この認証トークンTKを用いて、CIDが正しいことを検証する。そして、正しいことが検証された場合、鍵発行処理部501は、上記の手順19-3と同様に、属性付き秘密鍵sk(CID,s)を得る。
 手順21-4:鍵発行局50の鍵発行処理部501は、属性付き秘密鍵sk(CID,s)をチャットボットCIDに送信する。
 手順21-5:チャットボットCIDの復号処理部323は、上記の手順21-1の取得した属性付き秘密鍵skをsk(CID,s)として、又は上記の手順21-4で送信された属性付き秘密鍵sk(CID,s)を用いて、上記の手順19-5と同様に、Cを復号し、メッセージM´を得る。
 (実施例4)
 以降では、実施例4として、各外部サービス40の代理認証情報が同じである場合について説明する。例えば、同一のサービス提供者が複数の外部サービス40を提供している場合等には、同一のユーザ端末20に関して、これら複数の外部サービス40で代理認証情報が同じであることがある。
 本実施例では、第1のチャットボット31の記憶部313や第2のチャットボット32の記憶部324に保存されている代理認証情報テーブルに格納される情報が異なる。実施例2の或るチャットボット30の記憶部313(又は記憶部324)には、例えば、以下の表5及び表6に示すような代理認証情報テーブルが保存されている。
Figure JPOXMLDOC01-appb-T000014
Figure JPOXMLDOC01-appb-T000015
 上記の表5は、外部サービスSの代理認証情報が格納された代理認証情報テーブルである。また、上記の表6は、外部サービスSの代理認証情報が格納された代理認証情報テーブルである。
 このとき、本実施例では、各jに対して、OID1,j=OID2,jかつCert1,j=Cert2,jである(つまり、ユーザIDが同一であれば、クライアントID及び代理認証情報も同一である。)。このことは、チャットボットIDに対するクライアントID及び代理認証情報の対応関係が格納された代理認証情報テーブルについても同様である。なお、上記では外部サービス40毎に代理認証情報テーブルが保持されている場合について説明したが、OID1,j=OID2,jかつCert1,j=Cert2,jであるため、各チャットボット30は、全ての外部サービス40に対して共通のユーザIDに関する代理認証情報テーブルを1つのみ保持していてもよい。同様に、全ての外部サービス40に対して共通のチャットボットIDに関する代理認証情報テーブルを1つのみ保持していてもよい。
 なお、本実施例は、上記の代理認証情報テーブル以外については、実施例1と同様である。
 (実施例5)
 以降では、実施例5として、実施例2とは時間の設定方法が異なる場合について説明する。本実施例では、暗号方式のアルゴリズム以外は、実施例2と同様である。
 本実施例では、IDSETをユーザID及びチャットボットIDの集合、IDをIDSETの部分集合、Nを正の整数として[0,N]={0,1,2,・・・,N}とする。本実施例では、暗号方式は4つアルゴリズム(Setup,KeyGen,Enc,Dec)の4つのアルゴリズムで構成されており、以下の要件を満たすものとする。なお、ここではkはセキュリティパラメータを表す。
 セットアップアルゴリズム:Setup(1)→(mpk,msk)
 鍵生成アルゴリズム:id∈IDSET、tに対して、KeyGen(id,t,mpk,msk)→sk(id,t)
 暗号化アルゴリズム:平文をM、S⊂ID、t,T:正の整数に対して、Enc(S,t,t+T,mpk,M)→C(S,t,T)
 復号アルゴリズム:Dec(sk(id,t),C(S,t,T))→M´
 また、上記の暗号方式は以下の正当性の要件を満たすものとする。
Figure JPOXMLDOC01-appb-M000016
 本実施例では、上記の4つアルゴリズム(Setup,KeyGen,Enc,Dec)を用いること以外は、実施例2と同様である(つまり、実施例2の各アルゴリズムを、本実施例のアルゴリズムに置き換えたものが実施例5である。)。
 本発明は、具体的に開示された上記の実施形態に限定されるものではなく、請求の範囲の記載から逸脱することなく、種々の変形や変更、組み合わせ等が可能である。
 1    チャットボットシステム
 10   チャットサーバ
 20   ユーザ端末
 31   第1のチャットボット
 32   第2のチャットボット
 40   外部サービス
 201  チャット処理部
 202  復号処理部
 203  記憶部
 311  チャット処理部
 312  暗号化処理部
 313  記憶部
 321  チャット処理部
 322  暗号化処理部
 323  復号処理部
 324  記憶部
 401  鍵発行処理部
 402  記憶部

Claims (8)

  1.  複数のユーザ端末と、チャットボットと、チャットサーバとが含まれるチャットボットシステムであって、
     前記チャットボットは、
     外部サービスから取得したデータからメッセージを作成するメッセージ作成手段と、
     前記データの利用権限を有するユーザ端末のユーザIDが含まれるリストIを入力として、暗号文ポリシー属性ベース暗号の暗号化アルゴリズムによりポリシー付き暗号文を生成する暗号化手段と、
     前記ポリシー付き暗号文を前記チャットサーバに送信する送信手段と、を有し、
     前記ユーザ端末は、
     前記チャットサーバからポリシー付き暗号文を受信する受信手段と、
     自身のユーザIDに基づき生成された属性付き秘密鍵を用いて、前記ポリシー付き暗号文を復号する復号手段と、
     を有することを特徴とするチャットボットシステム。
  2.  前記チャットボットシステムには、鍵発行局が含まれ、
     前記鍵発行局は、
     前記ユーザ端末のユーザIDを入力として、暗号文ポリシー属性ベース暗号の鍵生成アルゴリズムにより前記属性付き秘密鍵を生成する生成手段、を有することを特徴とする請求項1に記載のチャットボットシステム。
  3.  前記チャットサーバには、前記チャットボットから受信したポリシー付き暗号文が保存され、
     前記暗号化手段は、
     前記リストIと、復号が可能な時間幅を示す時間幅とを入力として、前記暗号化アルゴリズムによりポリシー付き暗号文を生成し、
     前記生成手段は、
     前記ユーザIDと、現在時刻とを入力として、前記鍵生成アルゴリズムにより前記属性付き秘密鍵を生成する、ことを特徴とする請求項2に記載のチャットボットシステム。
  4.  前記復号手段は、
     前記属性付き秘密鍵が存在しない場合、自身のユーザIDを前記鍵発行局に送信することで前記属性付き秘密鍵を生成し、生成された秘密鍵を用いて、前記ポリシー付き暗号文を復号する、ことを特徴とする請求項2又は3に記載のチャットボットシステム。
  5.  前記チャットボットには、第1のチャットボットと、第2のチャットボットとが含まれ、
     前記第1のチャットボットは、
     前記メッセージ作成手段と、前記暗号化手段と、前記送信手段とを有し、
     前記第2のチャットボットは、
     前記メッセージ作成手段と、前記暗号化手段と、前記送信手段と、
     前記チャットサーバからポリシー付き暗号文を受信する第2の受信手段と、
     自身のチャットボットIDに基づき生成された秘密鍵を用いて、前記ポリシー付き暗号文を復号する第2の復号手段と、を有することを特徴とする請求項1乃至4の何れか一項に記載のチャットボットシステム。
  6.  複数のユーザ端末とチャットボットとに接続される情報処理装置であって、
     セキュリティパラメータを入力として、暗号文ポリシー属性ベース暗号のセットアップアルゴリズムにより公開鍵とマスター秘密鍵とを生成するセットアップ手段と、
     前記ユーザ端末からの要求に応じて、前記ユーザ端末のユーザIDを入力として、前記チャットボットで暗号化されたポリシー付き暗号文を復号するための属性付き秘密鍵を生成する秘密鍵生成手段と、
     を有することを特徴とする情報処理装置。
  7.  複数のユーザ端末と、チャットボットと、チャットサーバとが含まれるチャットボットシステムに用いられる情報処理方法であって、
     前記チャットボットが、
     外部サービスから取得したデータからメッセージを作成するメッセージ作成手順と、
     前記データの利用権限を有するユーザ端末のユーザIDが含まれるリストIを入力として、暗号文ポリシー属性ベース暗号の暗号化アルゴリズムによりポリシー付き暗号文を生成する暗号化手順と、
     前記ポリシー付き暗号文を前記チャットサーバに送信する送信手順と、を実行し、
     前記ユーザ端末が、
     前記チャットサーバからポリシー付き暗号文を受信する受信手順と、
     自身のユーザIDに基づき生成された属性付き秘密鍵を用いて、前記ポリシー付き暗号文を復号する復号手順と、
     を実行することを特徴とする情報処理方法。
  8.  複数のユーザ端末とチャットボットとに接続される情報処理装置を、
     セキュリティパラメータを入力として、暗号文ポリシー属性ベース暗号のセットアップアルゴリズムにより公開鍵とマスター秘密鍵とを生成するセットアップ手段、
     前記ユーザ端末からの要求に応じて、前記ユーザ端末のユーザIDを入力として、前記チャットボットで暗号化されたポリシー付き暗号文を復号するための属性付き秘密鍵を生成する秘密鍵生成手段、
     として機能させるためのプログラム。
PCT/JP2019/026634 2019-07-04 2019-07-04 チャットボットシステム、情報処理装置、情報処理方法及びプログラム WO2021001989A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2021529653A JP7215580B2 (ja) 2019-07-04 2019-07-04 チャットボットシステム及び情報処理方法
US17/619,886 US11882208B2 (en) 2019-07-04 2019-07-04 Chatbot system, information processing apparatus, information processing method and program
PCT/JP2019/026634 WO2021001989A1 (ja) 2019-07-04 2019-07-04 チャットボットシステム、情報処理装置、情報処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/026634 WO2021001989A1 (ja) 2019-07-04 2019-07-04 チャットボットシステム、情報処理装置、情報処理方法及びプログラム

Publications (1)

Publication Number Publication Date
WO2021001989A1 true WO2021001989A1 (ja) 2021-01-07

Family

ID=74100307

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/026634 WO2021001989A1 (ja) 2019-07-04 2019-07-04 チャットボットシステム、情報処理装置、情報処理方法及びプログラム

Country Status (3)

Country Link
US (1) US11882208B2 (ja)
JP (1) JP7215580B2 (ja)
WO (1) WO2021001989A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115209360A (zh) * 2022-07-15 2022-10-18 烽火通信科技股份有限公司 基于对象的聚合容器数据传输方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009033402A (ja) * 2007-07-26 2009-02-12 Mitsubishi Electric Corp Idベース暗号システム及び送信端末装置及び配送サーバ装置及び受信端末装置
WO2019088279A1 (ja) * 2017-11-06 2019-05-09 日本電信電話株式会社 データ共有方法、データ共有システム、データ共有サーバ、通信端末、プログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2898624B1 (en) * 2012-09-21 2018-02-07 Nokia Technologies Oy Method and apparatus for providing access control to shared data based on trust level
US9647968B2 (en) * 2015-03-25 2017-05-09 Pypestream Inc Systems and methods for invoking chatbots in a channel based communication system
US10735384B2 (en) * 2017-02-17 2020-08-04 Whatsapp Inc. Techniques for key ratcheting with multiple step sizes
JP2018200602A (ja) * 2017-05-29 2018-12-20 パナソニックIpマネジメント株式会社 データ転送方法およびコンピュータプログラム
CN109691010B (zh) * 2017-07-06 2021-01-08 北京嘀嘀无限科技发展有限公司 用于数据传输的系统和方法
JP2019057093A (ja) * 2017-09-20 2019-04-11 富士ゼロックス株式会社 情報処理装置及びプログラム
US11570268B2 (en) * 2017-09-21 2023-01-31 Microsoft Technology Licensing, Llc Proxy system for bot connectivity to communication channels
US10855440B1 (en) * 2017-11-08 2020-12-01 Wickr Inc. Generating new encryption keys during a secure communication session
US10897432B2 (en) * 2017-12-04 2021-01-19 Microsoft Technology Licensing, Llc Chat-enabled messaging
JP6936169B2 (ja) * 2018-02-27 2021-09-15 ヤフー株式会社 認証器管理装置、認証器管理方法、認証器管理プログラム及び認証器管理システム
CN110377240A (zh) * 2018-04-13 2019-10-25 富士施乐株式会社 消息提供装置、消息提供方法以及非暂时计算机可读介质
US11050723B1 (en) * 2018-12-29 2021-06-29 Whatsapp Inc. Methods and systems for transmitting anonymized information

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009033402A (ja) * 2007-07-26 2009-02-12 Mitsubishi Electric Corp Idベース暗号システム及び送信端末装置及び配送サーバ装置及び受信端末装置
WO2019088279A1 (ja) * 2017-11-06 2019-05-09 日本電信電話株式会社 データ共有方法、データ共有システム、データ共有サーバ、通信端末、プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115209360A (zh) * 2022-07-15 2022-10-18 烽火通信科技股份有限公司 基于对象的聚合容器数据传输方法和装置

Also Published As

Publication number Publication date
JP7215580B2 (ja) 2023-01-31
US20220368519A1 (en) 2022-11-17
JPWO2021001989A1 (ja) 2021-01-07
US11882208B2 (en) 2024-01-23

Similar Documents

Publication Publication Date Title
Liu et al. Two-factor data security protection mechanism for cloud storage system
US20100017599A1 (en) Secure digital content management using mutating identifiers
US8817986B2 (en) Cross enterprise communication
EP1805638A1 (en) Contents encryption method, system and method for providing contents through network using the encryption method
US10250576B2 (en) Communication of messages over networks
CN101103591A (zh) 在装置之间移动版权对象的方法以及基于移动方法和装置使用内容对象的方法和装置
JP2011530248A (ja) 暗号化されたメッセージ交換のための方法及び装置
JP6049914B2 (ja) 暗号システム、鍵生成装置及び再暗号化装置
JP2016158189A (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
CN110708291B (zh) 分布式网络中数据授权访问方法、装置、介质及电子设备
CN112784284B (zh) 加密处理系统、加密处理方法以及记录介质
US8732481B2 (en) Object with identity based encryption
WO2012053886A1 (en) A method and system for file encryption and decryption in a server
WO2021001989A1 (ja) チャットボットシステム、情報処理装置、情報処理方法及びプログラム
JP6320943B2 (ja) 鍵共有装置、鍵共有システム、鍵共有方法、プログラム
KR20080039089A (ko) 디지털 저작권 관리 방법 및 장치
JP5643251B2 (ja) 秘密情報通知システム、秘密情報通知方法、プログラム
JP2010272899A (ja) 鍵生成システム及び鍵生成方法及びブラインドサーバ装置及びプログラム
CN113691495B (zh) 一种基于非对称加密的网络账户共享和分发系统及方法
JP2001125481A (ja) 暗号通信端末、暗号通信センター装置及び暗号通信システム並びに記録媒体
JP7254296B2 (ja) 鍵交換システム、情報処理装置、鍵交換方法及びプログラム
JP6813705B1 (ja) コンテンツ利用システム、コンテンツ利用方法、ユーザ端末、プログラムおよび配信サーバ
JP6167598B2 (ja) 情報処理装置、情報処理方法、および、コンピュータ・プログラム
JP6907111B2 (ja) 電子証明書管理システムおよび電子証明書管理方法
Jang et al. Trusted Email protocol: Dealing with privacy concerns from malicious email intermediaries

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021529653

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19935998

Country of ref document: EP

Kind code of ref document: A1