WO2022074757A1 - 制御方法、制御プログラム、および情報処理装置 - Google Patents
制御方法、制御プログラム、および情報処理装置 Download PDFInfo
- Publication number
- WO2022074757A1 WO2022074757A1 PCT/JP2020/037976 JP2020037976W WO2022074757A1 WO 2022074757 A1 WO2022074757 A1 WO 2022074757A1 JP 2020037976 W JP2020037976 W JP 2020037976W WO 2022074757 A1 WO2022074757 A1 WO 2022074757A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- business
- program
- execution
- code
- procedure
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 310
- 230000010365 information processing Effects 0.000 title claims description 5
- 238000004364 calculation method Methods 0.000 claims description 54
- 230000005540 biological transmission Effects 0.000 claims description 17
- 238000003860 storage Methods 0.000 description 27
- 238000005538 encapsulation Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 8
- 101150014174 calm gene Proteins 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 4
- 238000000926 separation method Methods 0.000 description 3
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000004801 process automation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
Definitions
- the present invention relates to a control method, a control program, and an information processing device.
- ICT Information and Communication Technology
- Patent Document 1 techniques related to protecting or controlling document components are known (eg, Patent Document 1).
- the business execution order may be defined in the business flow.
- the processing program by adding the calculation code to execute the calculation to the processing program corresponding to the first business is added to the processing program.
- a first program including the operation code and the operation code is generated, and the operation result obtained based on the execution of the operation is used to encrypt the second program corresponding to the second business to generate encrypted data.
- the process of transmitting the program of 1 and the encrypted data to the device corresponding to the first business is included.
- the business flow can be executed with high reliability.
- groupware equipped with a workflow system that supports the execution of business flows within the company is used.
- a mechanism called RPA (Robotic Process Automation) that automates work by a software robot is known.
- RPA Robot Process Automation
- the execution order of processes may be defined in the business flow. In this case, for example, even if the execution result of the business flow is obtained, it may not be known whether the obtained execution result is surely executed and obtained in a predetermined order.
- a terminal that executes a business flow is gimmicked by a cyber attack, it may be difficult to detect even if an illegal operation is performed.
- One example is a replay attack.
- the replay attack the log output by the terminal that executes the process of the business flow is stored, and the same log is transmitted even though the process is not executed at the time of executing the next process.
- a result that appears to be operating correctly is output even though the process has not been executed. In this case, it is difficult to detect that the business flow process is not actually executed even by looking at the execution result of the business flow.
- the result obtained by executing the robot in the previous process is often used by the robot in the next process. Therefore, if the steps of the flow are not executed in order, the desired result may not be obtained.
- the operation code for executing the operation is added to the program corresponding to the first business, and the first operation is performed.
- the program is generated.
- the encrypted data is generated by encrypting the second program corresponding to the second business by using the calculation result obtained based on the execution of the calculation. Then, the first program and the encrypted data generated in this way are transmitted to the device corresponding to the first business.
- the device that has received the first program and the encrypted data executes the first program, executes the first business, and acquires the calculation result.
- the encrypted second program cannot be decrypted. Therefore, it is possible to force the execution of the first program before the execution of the second program. Then, when the second business can be executed by executing the second program, it can be guaranteed that the first business has been completed.
- the embodiment will be described by taking a business flow as an example, but the application target of the embodiment is not limited to the business flow, and it is implemented for other processes for which the order of execution is required to be guaranteed.
- the morphology may be applied.
- FIG. 1 is a diagram illustrating the configuration of the control system 100 according to the embodiment.
- the control system 100 may include, for example, a server 101 and a terminal 102.
- the server 101 may be, for example, an information processing device such as a server computer, a personal computer, or a mobile computer.
- the terminal 102 may be an information processing device such as a personal computer, a mobile computer, a tablet terminal, a smartphone, a mobile phone, an inspection device, a manufacturing device, and a management device.
- the server 101 and the terminal 102 may communicate with each other via a network 105 such as the Internet and a private network.
- FIG. 2 is a diagram illustrating a functional block configuration of the server 101 according to the embodiment.
- the server 101 includes, for example, a control unit 201, a storage unit 202, and a communication unit 203.
- the control unit 201 includes, for example, a generation unit 211, an encryption unit 212, a transmission unit 213, and the like, and may also include other functional units.
- the storage unit 202 stores information such as business information 400, document 500, processing information 600, and notification destination information 700, which will be described later, for example.
- the communication unit 203 communicates with another device, for example, according to the instruction of the control unit 201. For example, the communication unit 203 communicates with the terminal 102. The details of each of these units and the details of the information stored in the storage unit 202 will be described later.
- FIG. 3 is a diagram illustrating a functional block configuration of the terminal 102 according to the embodiment.
- the terminal 102 includes, for example, a control unit 301, a storage unit 302, a communication unit 303, and a display unit 304.
- the control unit 301 includes, for example, an execution unit 311 and a transmission unit 312, and may also include other functional units.
- the storage unit 302 stores information such as encapsulation data described later, for example.
- the communication unit 303 communicates with another device, for example, according to the instruction of the control unit 301.
- the communication unit 303 communicates with the server 101 and another terminal 102.
- the display unit 304 may display information on a display screen, for example. The details of each of these units and the details of the information stored in the storage unit 302 will be described later.
- FIG. 4 is a diagram illustrating the business information 400 according to the embodiment.
- a document and a record associated with the business flow are registered.
- the template data of the document to be processed by the business flow is registered.
- Documents include, for example, contracts, invoices, requests, applications, and the like.
- a business flow executed for the document of the record is registered.
- a business flow including a plurality of processes such as approval and sending of an invoice is registered as a flow of invoice issuance business for the invoice.
- a business flow including a plurality of processes such as approval processing and sending processing of the purchase request form is registered as the flow of the purchase request for the purchase request form.
- the business flow of the business information 400 includes information on a person in charge of executing the process, a destination, and the like, in addition to the information indicating the processing contents such as approval and sending executed in each process. You may go out.
- FIG. 4 shows an example in which processes are divided in a business flow for each person in charge of business.
- the business flow may be, for example, BPMN (Business Process Model and Notation) data.
- the business flow may be, for example, BPEL (Business Process Execution Language) data in which the flow is described in XML.
- FIG. 5 is a diagram illustrating the document 500 according to the embodiment.
- an invoice template is shown as an example of Document 500.
- a person in charge of issuing an invoice may apply for a corresponding business flow using the entered document 500 after inputting information on the invoice in the invoice document 500.
- the person in charge puts information in the destination column (“invoice” column in FIG. 5), the invoice amount column, and the product name, unit price, and quantity column. You may enter it.
- the control unit 201 of the server 101 imparts the imprint of the person in charge and the approver (for example, the manager and the president) when generating the encapsulation data described later. good.
- the seal imprint may be, for example, an image stamped with a seal, and in one example, it may be an approver's seal such as a department manager's seal or a president's seal.
- the control unit 201 of the server 101 may add an electronic signature to the document after the input of the information to the document 500 is completed.
- FIG. 6 is a diagram illustrating the processing information 600 according to the embodiment.
- a record associating a process with a procedure that can be executed by a computer for executing the process is registered.
- a process executed in the process of the business flow of the business information 400 may be registered.
- a processing program for causing the computer to execute the processing of the record is described.
- the procedure may be written in a programming language such as Javascript® or may be written in another programming language.
- the procedure includes, in one example, an RPA robot.
- a mark may be added to the code that is the target of execution certification.
- "///// Execution certification target code: Start ////" indicating the start position of the execution certification target code in the procedure corresponding to the approval process and the end of the execution certification target code.
- the mark "///// Code to be certified for execution: End ////" indicating the position is included. Therefore, the control unit 201 can specify the position of the code to be the execution certification target from the mark in the procedure program.
- the specification of the position of the code to be the execution certification target is not limited to this, and by setting a predetermined condition for specifying the code corresponding to the execution certification target, the code satisfying the predetermined condition can be specified.
- the code to be certified for execution can be specified.
- the data in which the code to be the execution certification target is registered is stored in the storage unit 202 in advance, and the control unit 201 searches the registered code in the procedure to search the code to be the execution certification target. May be specified.
- the code to be certified for execution may be, for example, the code to be proved to have been executed in the execution of the procedure.
- the code to be certified for execution may be a code that is required to be completed in order to advance the business flow to the next process.
- the code for accepting the depression of the approval button may be used as the code for execution certification, and in the example of approval in FIG. 6, marks are written before and after the code for accepting the depression of the approval button.
- control unit 201 detects, for example, the position of the code to be the execution certification by the mark, and executes an operation for proving the execution of the code to be the execution certification according to the position of the code to be the execution certification.
- the operation code for executing the operation for proving the execution of the code to be the execution certification may be referred to as the execution certification operation code. Further details on adding the execution certification operation code to the procedure will be described later.
- the procedure does not have to describe the information of the notification destination to which the data is transmitted after the processing is completed.
- the control unit 201 may specify the information of the notification destination based on the information regarding the person in charge of the next process of the business flow of the business information 400, the destination, and the like, and write the information in the procedure.
- FIG. 7 is a diagram illustrating the notification destination information 700 according to the embodiment.
- the notification destination information 700 for example, the information of the notification destination for notifying the information in the process of the business flow registered in the business information 400 is registered.
- a record associated with a department name, a job title, a name, and a notification destination is registered in the notification destination information 700.
- the record registered in the notification destination information 700 may be, for example, information about a person in charge of a process of a business flow and a person in charge of a business partner who sends an execution result of the business flow.
- the control unit 201 can specify the notification destination to notify the information when the process of the business flow of the business information 400 is completed.
- the notification destination may be, for example, an e-mail address and a path to a predetermined folder on the network.
- FIG. 8 is a diagram illustrating an operation flow of an encapsulation data transmission process according to an embodiment.
- FIG. 9 is a diagram illustrating an approval procedure according to the embodiment.
- FIG. 9 shows, as an example, an approval program created by Javascript.
- the program of FIG. 9 is executed, for example, the window 1000 of FIG. 10 is displayed on the browser, and the approver can input the intention of approval by pressing the approval button.
- control unit 201 of the server 101 may start the operation flow of FIG. 8 when the execution instruction of the encapsulation data transmission process is input.
- the control unit 201 of the server 101 receives a business execution instruction from the terminal 102 used by the person in charge of the business.
- the person in charge of the business may connect to the server 101 via the terminal 102, for example, and acquire the template of the document corresponding to the business to be executed registered in the business information 400 from the server 101. Then, the person in charge may send the document in which the information is input to the template of the acquired document to the server 101 via the terminal 102, and input the business execution instruction to the server 101.
- the control unit 201 of the server 101 receives the input of the business execution instruction, the flow proceeds to S802.
- control unit 201 of the server 101 assigns an electronic signature to the document included in the received business execution instruction.
- the electronic signature may be, for example, an e-seal (Electronic seal) issued by the server 101.
- control unit 201 of the server 101 specifies the business flow corresponding to the received business execution instruction.
- the control unit 201 may specify the business flow corresponding to the document included in the received business execution instruction from the business information 400.
- the control unit 201 may read the business flow corresponding to the invoice from the business information 400.
- control unit 201 assigns a procedure to each process of the read business flow.
- control unit 201 may specify a procedure corresponding to the processing of each process of the business flow read from the business information 400 from the processing information 600 and assign it to each process.
- step 1) is an invoice process, and the control unit 201 may assign a procedure corresponding to the invoice process of the process information 600.
- control unit 201 inputs information to the procedure corresponding to each process.
- control unit 201 may input the notification destination information into the procedure.
- a code for specifying a notification destination is described in the procedure of FIG. 9 (for example, (1) of FIG. 9).
- the control unit 201 may write information indicating the notification destination in, for example, a code for designating the notification destination.
- the control unit 201 for example, based on the information of the person in charge or the destination set in the process of the business flow, the information of the notification destination corresponding to the person in charge or the destination of the next process is transmitted from the notification destination information 700. You may get it.
- the control unit 201 can notify the person in charge of the next process of the business flow or the person in charge of the business partner of the information obtained by the process of the process.
- control unit 201 may acquire the information of the notification destination to the person in charge of the business partner from the input document received in S801.
- the control unit 201 generates a challenge value for the procedure.
- the challenge value may be generated for each procedure corresponding to each process, for example. Further, in another example, a challenge value common to a plurality of procedures may be used.
- the challenge value can be obtained, for example, from a function that outputs a different result each time it is executed. Random functions, shuffle functions, etc. can be used as examples of functions that output different results each time they are executed.
- the challenge value may be a random number in one example.
- the control unit 201 generates an execution certification operation code using the challenge value, adds it to the procedure, and generates an additional procedure. Therefore, the additional procedure includes, for example, a procedure processing program and an execution certification operation code.
- the code from "//--attached by server--//" to "//--end--//” represents the code added to the procedure by the control unit 201. ..
- the execution certification operation code is, for example, a code for executing an operation for proving the execution of the code to be executed certification.
- the additional procedure generated by adding the execution certification operation code may be referred to as, for example, the first program and the second program.
- control unit 201 specifies the position of the code to be executed certification target satisfying a predetermined condition in the procedure, and adds the execution certification operation code to the procedure according to the position of the specified code to be executed certification target. Generate additional procedures.
- control unit 201 may add an execution certification operation code at the position of the mark indicating the position of the code to be executed certification by replacing the mark. By removing the mark, it is possible to make it difficult to identify where the code to be certified for execution is in the procedure, and it is possible to improve security.
- FIG. 9 a program that defines the operation contents of operation 1 and operation 2 as an execution certification operation code is described at the beginning of the procedure program ((2) in FIG. 9).
- an operation code for adding 384 to the variable: calanswer is described as operation 1: cal1.
- operation 2: cal2 an operation code for multiplying the variable: calanswer by 483 is described.
- the numerical value: 384 used for the operation of the operation 1: cal1 and the numerical value: 483 used for the operation of the operation 2: cal2 are both challenge values generated for the procedure.
- a challenge value is generated each time a business flow is executed, and an execution certification operation code that executes an operation using the generated challenge value is added to the procedure.
- the calculation result obtained based on the execution of the execution certification operation code can be different each time the business flow is executed. As a result, it is possible to deal with replay attacks and the like.
- control unit 201 may add a different execution certification operation code to the procedure of each process. Thereby, the security strength can be enhanced.
- control unit 201 may add an execution certification operation code common to the procedures of a plurality of steps.
- the control unit 201 generates a key using the operation result based on the execution of the operation indicated by the execution certification operation code added to the procedure.
- the control unit 201 may acquire an operation result by executing at least an execution certification operation code among the additional procedures generated in S807, and may generate a key using the operation result.
- the control unit 201 may use the calculation result as it is as a key.
- the control unit 201 may generate a key by a predetermined algorithm using the calculation result.
- the control unit 201 may acquire the hash value of the calculation result and generate a key using the obtained hash value by a common key cryptographic algorithm such as AES256, RC4, and DES.
- hash functions such as SHA256, SHA2, and MD5 can be used.
- control unit 201 executes the encapsulation process using the generated key. Then, in S810, the control unit 201 transmits the encapsulation data obtained in the encapsulation process to the execution terminal of the first step of the business flow, and this operation flow ends.
- the control unit 201 may acquire, for example, the destination of the execution terminal of the first process of the business flow from the notification destination information 700.
- control unit 201 may encrypt the procedure of the next process in the business flow by using, for example, the key generated for the procedure of the process. For example, when encryption is executed in this way, a key can be generated using the operation result obtained in the execution of the procedure, and the procedure in the next step can be decrypted using the generated key. ..
- control unit 201 may encrypt the document by using the key generated for the procedure of the final process. For example, when encryption is executed in this way, a key can be generated using the operation result obtained in the execution of the procedure in the last step, and the document can be decrypted using the generated key. ..
- the execution certification operation code added to the procedure As described above, when the code to be executed certification is executed in the execution of the procedure, the operation result that succeeds in decoding the procedure in the next step can be obtained. May have been added to.
- the execution certification operation code added to the procedure is such that if the code to be executed certification is not executed in the execution of the procedure, the operation result that succeeds in decoding the procedure in the next process cannot be obtained. May have been added. Then, for example, it is assumed that the procedure of the next process is successfully decoded by using the operation result obtained by executing the procedure, and the procedure of the next process can be executed. In this case, it can be proved that the code to be executed is surely executed in the procedure in which the operation result is obtained.
- the execution certification operation code may be added to the procedure so as to sandwich the code to be executed certification in the procedure, for example, as described in the description of the process of S807 described above. That is, for example, the control unit 201 executes the procedure so as to add the front operation code before the position of the code to be certified for execution and to add the rear operation code after the position of the code to be certified for execution. You may add a proof operation code. Further, the operation result in which the procedure of the next step is successfully decoded may be obtained, for example, when the operation of the rear operation code is executed using the primary operation result obtained by the execution of the front operation code.
- execution certification operation code may be added to the procedure in the form.
- the execution proof operation code may be added to the procedure so that the operation is executed using the return value of the function included in the code to be the execution proof.
- the return value can be obtained if the code to be certified for execution is executed in the execution of the procedure, but the return value cannot be obtained unless the code to be certified for execution is executed. Therefore, the calculation result can be different depending on whether or not the code to be certified for execution is executed.
- FIG. 11 is a diagram illustrating an operation flow of the encapsulation process according to the embodiment. For example, when the control unit 201 of the server 101 proceeds to S809 of the operation flow of FIG. 8, the operation flow of FIG. 11 may be started.
- the control unit 201 of the server 101 encrypts the document using the key obtained by using the calculation result in S808 for the additional procedure of the final process of the business flow, and generates the byte code of the document.
- the byte code may be, for example, data in a byte string obtained by encryption, and in one example, it may be represented by ASCII characters.
- Bytecode may be referred to as encrypted data, for example.
- the object of encryption may include the electronic signature of the document given in S802. Encryption may be performed, for example, using a common key cryptographic algorithm.
- control unit 201 of the server 101 associates the byte code of the document with the procedure of the last process as the processing target.
- the control unit 201 may store the bytecode in the procedure constant as shown in FIG. 9 (6).
- control unit 201 determines whether or not the process to be processed has a previous process. If the process to be processed has a previous process (YES in S1103), the flow proceeds to S1104.
- control unit 201 encrypts the procedure to be processed using the key obtained by using the calculation result in S808 for the additional procedure of the previous step.
- the encryption target may include the bytecode of the procedure located downstream of the procedure to be processed in the business flow and the bytecode of the document. Encryption may be performed, for example, using a common key cryptographic algorithm.
- control unit 201 associates the byte code obtained in the processing of S1104 with the procedure of the previous step as the processing target, and the flow returns to S1103.
- control unit 201 may store the bytecode in the constant of the procedure of the previous step to be processed, as shown in FIG. 9 (6).
- control unit 201 of the server 101 can generate the encapsulated data in which the procedure of the process of the business flow is encrypted according to the execution order of the process.
- the procedure of the first step of the business flow may be included without being encrypted.
- FIG. 12 is a diagram illustrating the flow of the encapsulation process according to the embodiment shown in the operation flow of FIG.
- FIG. 12A exemplifies a business flow including the three processes of steps 1 to 3, and as an operation result based on the execution of the operation shown in the execution certification operation code added to each process.
- the calculation result 1 to the calculation result 3 are shown.
- FIG. 12B illustrates the encryption of the document
- the control unit 201 encrypts the document using the calculation result 3: 678912 of the final step 3 and acquires the byte code of the document.
- FIG. 12 (c) illustrates the encryption of the procedure 3 of the process 3, which is the final process of the business flow.
- the control unit 201 adds the bytecode of the document obtained in FIG. 12B to the procedure of step 3, then encrypts it using the calculation result 2:345678 of step 2, and obtains the bytecode of the procedure of step 3. get.
- the bytecode of the procedure in step 3 may include, for example, the bytecode data of the document of FIG. 12B.
- FIG. 12 (d) exemplifies the encryption of the procedure 2 of the step 2, which is the step immediately before the step 3.
- the control unit 201 adds the byte code of the procedure of step 3 encrypted in FIG. 12 (c) to the procedure of step 2, and then encrypts it using the calculation result 1:123456 of step 1 to obtain the procedure of step 2. Get the bytecode.
- the byte code of the procedure of step 2 may include, for example, the byte code data of the procedure of step 3 of FIG. 12 (c).
- FIG. 12 (e) illustrates the transmission of encapsulated data.
- the control unit 201 transmits the encapsulated data obtained by adding the byte code of the procedure of step 2 encrypted in FIG. 12 (d) to the procedure of step 1 to the terminal 102 that executes step 1.
- the terminal 102 that executes step 1 When the terminal 102 that executes step 1 receives the encapsulation data, it can acquire the calculation result 1:123456 of step 1 by executing the procedure of step 1 of the received encapsulation data. Then, the byte code of the procedure of step 2 can be decoded by using the calculation result 1:123456 to acquire the procedure of step 2. After that, the document can be finally decoded by executing the procedure and repeating the decoding using the operation result obtained by executing the procedure. In addition, if the document is successfully decrypted, it can be guaranteed that the code to be certified for execution is executed in each process of the business flow and the corresponding procedure.
- FIG. 13 is a diagram illustrating an operation flow of execution processing of a process of a business flow according to an embodiment. For example, when the control unit 301 of the terminal 102 receives the encapsulated data, the operation flow of FIG. 13 may be started.
- the control unit 301 of the terminal 102 starts executing the procedure included in the received encapsulation data.
- the control unit 301 of the terminal 102 may execute the work of the process of the work flow corresponding to the procedure.
- the window 1000 may be displayed on the display screen of the display unit 304 of the terminal 102 to accept the input of the approval instruction, and the approval work may be executed.
- control unit 301 of the terminal 102 acquires the key using the operation result based on the execution of the execution certification operation code when the procedure is executed.
- control unit 301 of the terminal 102 decodes the byte code using the key. For example, as shown in FIG. 9 (7), if the same operation result as the operation result used for encryption at the time of generating the byte code is obtained, the data can be correctly decoded.
- the control unit 301 of the terminal 102 transmits the decoded data to the destination.
- the decoded data may be written to the procedure in the process of S805 by the server 101, for example.
- the decoded data may include the procedure of the next process and the remaining bytecode.
- the decoded data may include a document and a digital signature.
- FIG. 14 is a diagram illustrating the flow of decoding the encapsulated data according to the embodiment.
- FIG. 14A exemplifies a business flow including three steps from step 1 to step 3, and as an operation result based on the execution of the operation shown in the execution certification operation code added to each process.
- the calculation result 1 to the calculation result 3 are shown.
- FIG. 14 (b) illustrates the decoding of the encapsulated data.
- the control unit 301 of the terminal 102 that executes the first step 1 of the business flow executes the process of the process 1 by executing the procedure of the step 1. Further, the control unit 301 of the terminal 102 of the step 1 acquires the calculation result 1:123456 of the step 1 by executing the procedure of the step 1. Then, the control unit 301 of the terminal 102 of the step 1 decodes the byte code of the procedure of the step 2 using the calculation result 1:123456 and transmits it to the terminal 102 of the next step 2.
- FIG. 14 (c) illustrates the execution of step 2.
- the control unit 301 of the terminal 102 that executes the process 2 receives the procedure of the process 2
- the control unit 301 of the terminal 102 executes the process of the process 2 by executing the procedure of the process 2.
- the control unit 301 of the terminal 102 of the step 2 acquires the calculation result 2: 345678 of the step 2 by executing the procedure of the step 2.
- the control unit 301 of the terminal 102 of the step 2 decodes the byte code of the procedure of the step 3 using the calculation result 2: 345678 and transmits it to the terminal 102 of the next step 3.
- FIG. 14 (d) illustrates the execution of step 3.
- the control unit 301 of the terminal 102 that executes the process 3 receives the procedure of the process 3
- the control unit 301 of the terminal 102 executes the process of the process 3 by executing the procedure of the process 3.
- the control unit 301 of the terminal 102 of the step 3 acquires the calculation result 3: 678912 of the step 3 by executing the procedure of the step 3.
- the control unit 301 of the terminal 102 in step 3 decodes the byte code of the document using the calculation result 3: 678912 and acquires the document.
- FIG. 14 (e) illustrates the transmission of a document.
- the control unit 301 of the terminal 102 of the process 3 may transmit the transmission data including the acquired document to the destination specified in the process 3 of the business flow.
- the transmitted data may include an electronic signature for the document.
- a challenge value is generated each time the business flow is executed, and an execution certification calculation code using the challenge value is added to the process procedure. Therefore, each time the business flow is executed, the operation result obtained based on the execution of the operation shown in the execution certification operation code becomes a different value, and it is possible to deal with a replay attack or the like.
- FIGS. 13 and 14 of the above-described embodiment describe an example in which the control unit 301 of the terminal 102 executes up to the decoding of the byte code by using the calculation result obtained by executing the procedure. Is not limited to this.
- the control unit 301 of the terminal 102 bytes the terminal 102 that executes the next step with information (for example, an encryption key) for decoding the operation result or the byte code generated based on the operation result. You may notify with the code. That is, for example, instead of the above-mentioned processing of S1302 to S1304, the control unit 301 may transmit the operation result or information for decoding the byte code generated based on the operation result to the destination together with the byte code.
- information for example, an encryption key
- execution certification operation code may be added to the procedure to ensure that the plurality of codes contained in the procedure are executed in a predetermined order.
- FIG. 15 is a diagram illustrating the addition of an execution proof operation code for certifying the execution order of a plurality of codes in the procedure according to the embodiment.
- FIG. 15 illustrates an approval procedure.
- the codes from "//--attached by server--//” to "//--end--//” represent the codes added to the procedure by the control unit 201. ..
- three operations of operation 1: cal1, operation 2: cal2, and operation 3: cal3 are defined ((1) in FIG. 15).
- calanswer is first initialized to 0.
- operation 1 cal1 performs an operation of adding 384 to calanswer.
- Operation 2 cal2 performs an operation of multiplying calanswer by 483.
- Operation 3 cal3 performs an operation of dividing 936 from calanswer.
- the values of 384, 483, and 936 used in these operations may be challenge values.
- the code to be verified for execution is a function of display processing ((2) of FIG. 15) and a function of approval processing ((3) of FIG. 15).
- the control unit 201 adds the operation code of the operation 1 before the function of the display processing ((4) in FIG. 15). Further, the control unit 201 adds the operation code of the operation 2 after the function of the display processing and before the function of the approval processing ((5) in FIG. 15). Further, the control unit 201 adds the operation code of the operation 3 after the function of the approval process ((6) in FIG. 15).
- the control unit 301 of the terminal 102 executes the procedure of FIG. 15, if calanswer: 184536 is obtained as the operation result, the display processing function is executed, and then the approval processing function is executed.
- I can guarantee that. That is, according to the embodiment, it can be guaranteed that the plurality of codes included in the procedure are executed in a predetermined order. Then, by using the calculation result obtained when a plurality of codes are executed in a desired predetermined order in the procedure for encryption of the document and the procedure of the next process, the above-mentioned business flow processes are executed in order. You can also get the effect of making it.
- the processes of the business flow are executed and completed in the desired order. We can guarantee that you are there.
- the above-described embodiment can also be applied to automatic execution of work using RPA, for example, by using an RPA robot as a procedure.
- the server 101 may provide, for example, a service for generating encapsulated data.
- the server 101 may, for example, attach an e-seal issued by the server 101 to the data finally retrieved as a result of decryption of a document or the like.
- the service user can say that if the data to which the e-seal of the server 101 is attached is obtained from the encapsulation data, all the business flows corresponding to the encapsulation data are executed in the specified order. It becomes possible to interpret.
- the embodiments are not limited to this.
- the above-mentioned operation flow is an example, and the embodiment is not limited thereto.
- the operation flow may be executed by changing the order of processing, may include additional processing, or may omit some processing.
- the above-mentioned processing of S802 may be omitted.
- control unit 201 may combine other information such as a program of an additional procedure with the operation result and then apply it to a hash function to generate a key. Thereby, the security strength can be enhanced.
- the operation code for executing the calculation of the numerical value is exemplified as the execution certification operation code, but the embodiment is not limited to this.
- the operation performed by the execution certification operation code may include other operations such as concatenation of character strings.
- the operation executed by the execution certification operation code may be performed by using a more complicated operation such as a cryptographic calculation.
- FIGS. 12 and 14 described above describe an example in which encryption is performed sequentially from the final step of the business flow and the encrypted data is nested and encapsulated, but the embodiment is limited to this. It's not something.
- the encrypted bytecode and encrypted document in the subsequent step that have already been encrypted are not included in the encryption target. May be good.
- the calculation result of the execution certification operation code used for decrypting the encrypted data is obtained by executing the processes in the order specified in the business flow, so the execution order of the business should be enforced. Can be done.
- the target for which the execution timing is controlled in the embodiment is not limited to the procedure of the next process.
- the embodiment can be used to control the execution timing of any of the downstream procedures. Further, the embodiment can be used to control the execution timing of a plurality of downstream procedures. In this case, for example, the operation result obtained by executing the execution certification operation code added to a certain procedure may be used for encryption of a plurality of downstream procedures.
- the embodiment can be used to wait for the completion of execution of a plurality of upstream procedures and then control the execution of at least one procedure downstream to start.
- the plurality of operation results obtained by executing the execution certification operation code added to the plurality of procedures may be used for encryption of at least one procedure downstream of those procedures.
- control unit 201 of the server 101 operates as, for example, the generation unit 211. Further, in the process of S809, the control unit 201 of the server 101 operates as, for example, the encryption unit 212. In the process of S810, the control unit 201 of the server 101 operates as, for example, the transmission unit 213.
- control unit 301 of the terminal 102 operates as, for example, the execution unit 311. Further, in the process of S1304, the control unit 301 of the terminal 102 operates as, for example, the transmission unit 312.
- FIG. 16 is a diagram illustrating a hardware configuration of a computer 1600 for realizing the server 101 and the terminal 102 according to the embodiment.
- the hardware configuration for realizing the server 101 and the terminal 102 of FIG. 16 includes, for example, a processor 1601, a memory 1602, a storage device 1603, a reading device 1604, a communication interface 1606, and an input / output interface 1607.
- the processor 1601, the memory 1602, the storage device 1603, the reading device 1604, the communication interface 1606, and the input / output interface 1607 are connected to each other via, for example, the bus 1608.
- the processor 1601 may be, for example, a single processor, a multiprocessor, or a multicore.
- the processor 1601 uses the memory 1602 to execute, for example, a program describing the procedure of the above-mentioned operation flow, so that the above-mentioned control unit 201 of the server 101 or a part or all of the functions of the control unit 301 of the terminal 102 can be executed. May be provided.
- the processor 1601 of the server 101 operates as a generation unit 211, an encryption unit 212, and a transmission unit 213 by reading and executing a program stored in the storage device 1603.
- the processor 1601 of the terminal 102 operates as, for example, the execution unit 311 and the transmission unit 312 by reading and executing the program stored in the storage device 1603.
- the memory 1602 is, for example, a semiconductor memory, and may include a RAM area and a ROM area.
- the storage device 1603 is, for example, a semiconductor memory such as a hard disk or a flash memory, or an external storage device.
- RAM is an abbreviation for Random Access Memory.
- ROM is an abbreviation for Read Only Memory.
- the reading device 1604 accesses the removable storage medium 1605 according to the instructions of the processor 1601.
- the removable storage medium 1605 is realized by, for example, a semiconductor device, a medium in which information is input / output by magnetic action, a medium in which information is input / output by optical action, and the like.
- the semiconductor device is, for example, a USB (Universal Serial Bus) memory.
- the medium to which information is input / output by magnetic action is, for example, a magnetic disk.
- the medium to which information is input / output by optical action is, for example, a CD-ROM, a DVD, a Blu-ray Disc, or the like (Blu-ray is a registered trademark).
- CD is an abbreviation for Compact Disc.
- DVD is an abbreviation for Digital Versatile Disk.
- the storage unit 202 of the server 101 and the storage unit 302 of the terminal 102 described above include, for example, a memory 1602, a storage device 1603, and a removable storage medium 1605.
- the storage device 1603 of the server 101 stores business information 400, document 500, processing information 600, and notification destination information 700.
- the storage device 1603 of the terminal 102 may store, for example, the encapsulated data generated by the server 101.
- the communication interface 1606 communicates with other devices according to the instructions of the processor 1601.
- the communication interface 1606 is, for example, an example of the communication unit 203 of the server 101 and the communication unit 303 of the terminal 102 described above.
- the server 101 may communicate with a device such as a terminal 102 via, for example, the communication interface 1606.
- the terminal 102 may communicate with a device such as the server 101 and another terminal 102 via the communication interface 1606, for example.
- the input / output interface 1607 may be, for example, an interface between an input device and an output device.
- the input device is, for example, a device such as a keyboard, a mouse, or a touch panel that receives an instruction from a user.
- the output device is, for example, a display device such as a display and an audio device such as a speaker.
- Each program according to the embodiment is provided to the server 101 and the terminal 102 in the following form, for example. (1) It is pre-installed in the storage device 1603. (2) Provided by the removable storage medium 1605. (3) It is provided from a server such as a program server.
- the hardware configuration of the computer 1600 for realizing the server 101 and the terminal 102 described with reference to FIG. 16 is an example, and the embodiment is not limited thereto. For example, some of the above configurations may be deleted or new configurations may be added. Further, in another embodiment, for example, even if some or all the functions of the control unit 201 of the server 101 and the control unit 301 of the terminal 102 are implemented as hardware by FPGA, SoC, ASIC, PLD, or the like. good.
- FPGA is an abbreviation for Field Programmable Gate Array.
- SoC is an abbreviation for System-on-a-chip.
- ASIC is an abbreviation for Application Specific Integrated Circuit.
- PLD is an abbreviation for Programmable Logic Device.
- Control system 101 Server 102 Terminal 105 Network 201 Control unit 202 Storage unit 203 Communication unit 211 Generation unit 212 Encryption unit 213 Transmission unit 301 Control unit 302 Storage unit 303 Communication unit 304 Display unit 311 Execution unit 312 Transmission unit 400 Business information 500 Document 600 Processing information 700 Notification destination information 1000 Window 1600 Computer 1601 Processor 1602 Memory 1603 Storage device 1604 Reader 1605 Detachable storage medium 1606 Communication interface 1607 Input / output interface 1608 Bus
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一実施形態に係る制御方法は、第1の業務および第2の業務の実行指示を受け付けると、第1の業務と対応する処理プログラムに演算を実行させる演算コードを追加して、処理プログラムと演算コードとを含む第1のプログラムを生成し、演算の実行に基づき得られる演算結果を用いて、第2の業務と対応する第2のプログラムを暗号化して暗号化データを生成し、第1のプログラムと暗号化データとを、第1の業務と対応する装置に送信する、処理を含む。
Description
本発明は、制御方法、制御プログラム、および情報処理装置に関する。
ICT(Information and Communication Technology)技術の進歩により、業務を支援する様々な技術が開発されている。そして、業務フローを実行する際に、業務を支援する様々な技術を利用することで、業務の効率化を図ることができる。
一方で、サイバー犯罪が増加しており、業務を高い信頼性で実行するための技術への関心が高まっている。
これに関し、ドキュメント・コンポーネントを保護又は制御することに関連する技術が知られている(例えば、特許文献1)。
しかしながら、例えば、業務フローにおいて業務の実行順序が定められていることがある。この場合に、例えば、業務フローの実行において、業務を高い信頼性で実行することが難しいことがある。例えば、業務フローの実行結果が得られているとしても、得られた実行結果が定められた順序で業務を確実に実行して得られているかが分からないことがある。
1つの側面では、本発明は、業務フローを高い信頼性で実行するための技術を提供することを目的とする。
本発明の一つの態様の制御方法は、第1の業務および第2の業務の実行指示を受け付けると、第1の業務と対応する処理プログラムに演算を実行させる演算コードを追加して、処理プログラムと演算コードとを含む第1のプログラムを生成し、演算の実行に基づき得られる演算結果を用いて、第2の業務と対応する第2のプログラムを暗号化して暗号化データを生成し、第1のプログラムと暗号化データとを、第1の業務と対応する装置に送信する、処理を含む。
業務フローを高い信頼性で実行することができる。
以下、図面を参照しながら、本発明のいくつかの実施形態について詳細に説明する。なお、複数の図面において対応する要素には同一の符号を付す。
上述のように、ICT技術の進歩により、業務を支援する様々な技術が開発されている。そして、業務フローを実行する際に、業務を支援する様々な技術を利用することで、業務の効率化を図ることができる。
一例として、社内での業務フローの実行を支援するワークフローシステムなどを備えるグループウェアが利用されている。また、別な例として、業務をソフトウェアロボットにより自動化するRPA(Robotic Process Automation)と呼ばれる仕組みが知られている。RPAを導入することで、人手で行われていた処理をロボットに実行させることができる。そして、業務の実行の少なくとも一部をソフトウェアにより代行させて実行することで、業務の効率化や生産性の向上を図ることができる。
しかしながら、例えば、こうしたソフトウェアの支援を受けて業務を実行する場合に、業務を高信頼に実行することが難しいことがある。例えば、業務フローにおいて工程の実行順序が定められていることがある。この場合に、例えば、業務フローの実行結果が得られているとしても、得られた実行結果が定められた順序で業務を確実に実行して得られているかが分からないことがある。
例えば、業務フローを実行する端末にサイバー攻撃などにより仕掛けが施されていると、不正な動作が行われていても検出することが困難なことがある。一例として、リプレイ攻撃が挙げられる。リプレイ攻撃では、業務フローの工程を実行する端末が出力するログが記憶され、次回の工程の実行時に工程を実行していないにも関わらず同じログが送信される。このようなリプレイ攻撃を受けた場合、工程が実行されていないにもかかわらず、正しく動作しているようにみせかける結果が出力される。この場合、業務フローの実行結果を見ても、業務フローの工程が、実際には実行されていないことを検出することは困難である。
また、例えば、RPAでは、前工程のロボットの実行により得られた結果を、次工程のロボットが利用することもしばしばある。そのため、フローの各工程が順番通りに実行されないと、望まれる結果が得られないことがある。
そのため、例えば、業務フローの実行結果が得られた場合に、その実行結果が、定められた順序で工程を確実に実行して得られたことを保証することのできる技術の提供が求められている。
以下で述べる実施形態では、例えば、第1の業務および第2の業務の実行指示を受け付けた場合に、第1の業務と対応するプログラムに、演算を実行させる演算コードを追加して第1のプログラムが生成される。また、演算の実行に基づき得られる演算結果を用いて、第2の業務と対応する第2のプログラムを暗号化して暗号化データが生成される。そして、このように生成された第1のプログラムと暗号化データとが、第1の業務と対応する装置に送信される。
例えば、以上のように暗号化を実行することで、第1のプログラムと暗号化データとを受信した装置では、第1のプログラムを実行して第1の業務を実行し、演算結果を取得するまでは、暗号化された第2のプログラムの復号ができなくなる。従って、第2のプログラムの実行前に、第1のプログラムの実行を強制することができる。そして、第2のプログラムを実行して第2の業務が実行できた場合には、第1の業務が完了していることを保証することができる。以下、実施形態を更に詳細に説明する。
なお、以下の実施形態では、業務フローを例に実施形態を説明するが、実施形態の適用対象は業務フローに限定されるものではなく、実行の順序の保証が求められるその他の処理に、実施形態が適用されてもよい。
図1は、実施形態に係る制御システム100の構成を例示する図である。制御システム100は、例えば、サーバ101および端末102を含んでよい。サーバ101は、例えば、サーバコンピュータ、パーソナルコンピュータ、モバイルコンピュータなどの情報処理装置であってよい。また、端末102は、例えば、パーソナルコンピュータ、モバイルコンピュータ、タブレット端末、スマートフォン、携帯電話機、検査機器、製造機器、および管理機器などの情報処理装置であってよい。なお、サーバ101および端末102は、例えば、インターネットおよび構内ネットワークなどのネットワーク105を介して通信してよい。
図2は、実施形態に係るサーバ101の機能ブロック構成を例示する図である。サーバ101は、例えば、制御部201、記憶部202、および通信部203を含む。制御部201は、例えば生成部211、暗号化部212、および送信部213などを含み、またその他の機能部を含んでもよい。記憶部202は、例えば、後述する業務情報400、ドキュメント500、処理情報600、および通知先情報700などの情報を記憶している。通信部203は、例えば、制御部201の指示に従って他の装置と通信する。例えば、通信部203は、端末102と通信する。これらの各部の詳細および記憶部202に格納されている情報の詳細については後述する。
図3は、実施形態に係る端末102の機能ブロック構成を例示する図である。端末102は、例えば、制御部301、記憶部302、通信部303、および表示部304を含む。制御部301は、例えば実行部311、および送信部312などを含み、またその他の機能部を含んでもよい。記憶部302は、例えば、後述するカプセル化データなどの情報を記憶している。通信部303は、例えば、制御部301の指示に従って他の装置と通信する。例えば、通信部303は、サーバ101および他の端末102と通信する。表示部304は、例えば、表示画面に情報を表示してよい。これらの各部の詳細および記憶部302に格納されている情報の詳細については後述する。
図4は、実施形態に係る業務情報400を例示する図である。業務情報400には、例えば、ドキュメント、および業務フローを対応づけたレコードが登録されている。業務情報400のドキュメントには、例えば、業務フローによる処理対象となるドキュメントのテンプレートのデータが登録されている。ドキュメントは、例えば、契約書、請求書、依頼書、申請書などを含む。また、業務情報400の業務フローには、例えば、レコードのドキュメントに対して実行される業務フローが登録されている。例えば、図4では、請求書に対して、請求書の発行業務の流れとして、請求書の承認および送付などの複数の工程を含む業務フローが登録されている。また、購入依頼書に対して、購入依頼の流れとして、購入依頼書の承認処理および送付処理などの複数の工程を含む業務フローが登録されている。また、業務情報400の業務フローは、図4に示すように、各工程で実行される承認および送付などの処理内容を示す情報に加えて、処理を実行する担当者および宛先などに関する情報を含んでいてもよい。
なお、業務フローにおける工程の分離は、例えば、業務を実行する担当者、および業務が行われる端末102などに基づいて実行されてよい。また、実施形態に係る業務フローにおける工程の分離はこれに限定されるものではなく、その他の情報に基づいて分離が行われてもよい。図4では、業務を担当する担当者ごとに業務フローにおいて工程が分けられる例が示されている。業務フローは、例えば、BPMN(Business Process Model and Notation)のデータであってよい。或いは、業務フローは、例えば、フローをXMLで記述したBPEL(Business Process Execution Language)のデータであってもよい。
図5は、実施形態に係るドキュメント500を例示する図である。図5では、ドキュメント500の例として、請求書のテンプレートが示されている。例えば、請求書の発行業務を担当する担当者は、請求書のドキュメント500に、請求に関する情報を入力したあと、入力済みのドキュメント500を用いて対応する業務フローの申請を行ってよい。
例えば、図5の請求書のドキュメント500であれば、担当者は、あて先の欄(図5では「御中」の欄)、御請求金額の欄、並びに品名、単価、および個数の欄に情報を入力してよい。また、承認印の欄については、一例では、サーバ101の制御部201は、後述するカプセル化データの生成の際に、担当者および承認者(例えば、部長および社長など)の印影を付与してよい。なお、印影は、例えば、印鑑を押した画像であってよく、一例では、部長印や社長印などの承認者の印であってよい。また、サーバ101の制御部201は、ドキュメント500への情報の入力完了後に、ドキュメントに電子署名を付与してもよい。
図6は、実施形態に係る処理情報600を例示する図である。処理情報600には、処理と、その処理を実行するためのコンピュータが実行可能なプロシージャとを対応づけたレコードが登録されている。処理情報600の処理には、例えば、業務情報400の業務フローの工程で実行される処理が登録されていてよい。また、処理情報600のプロシージャには、例えば、レコードの処理をコンピュータに実行させるための処理プログラムが記述されている。例えば、プロシージャは、JavaScript(登録商標)などのプログラム言語で記述されていてよく、その他のプログラム言語で記述されていてもよい。プロシージャは、一例ではRPAのロボットを含む。
また、プロシージャのプログラムにおいて、実行証明対象となるコードにはマークが付加されていてよい。図6の例では、承認の処理と対応するプロシージャに実行証明対象のコードの開始位置を示す「////実行証明対象のコード:開始////」と、実行証明対象のコードの終了位置を示す「////実行証明対象のコード:終了////」のマークが含まれている。そのため、制御部201は、プロシージャのプログラムにおいて実行証明対象となるコードの位置をマークから特定することができる。なお、実行証明対象のコードの位置の特定は、これに限定されるものではなく、実行証明対象と対応するコードを特定するための所定の条件を設定することで、所定の条件を満たすコードとして実行証明対象となるコードを特定することができる。例えば、別の実施形態では実行証明対象となるコードを登録したデータを予め記憶部202に記憶しておき、制御部201は、登録されたコードをプロシージャ内で検索することで実行証明対象のコードを特定してもよい。
なお、実行証明対象のコードは、例えば、プロシージャの実行においって実行されたことを証明したい対象のコードであってよい。一例では、実行証明対象のコードは、業務フローを次の工程へと進める上で完了させることが要求されるコードであってよい。例えば、図6の承認の例では、承認の工程を次の工程に進めるためには、プロシージャを実行する担当者に、承認ボタンを押し下げさせて承認を得ることが要求される。そのため、承認ボタンの押し下げを受け付けるコードを実行証明対象のコードとしてよく、図6の承認の例では承認ボタンの押し下げを受け付けるコードの前後にマークが書き込まれている。そして、制御部201は、例えば、実行証明対象のコードの位置をマークにより検出し、実行証明対象のコードの位置に応じて、実行証明対象のコードの実行を証明するための演算を実行させる演算コードを追加することができる。なお、以下では、実行証明対象のコードの実行を証明するための演算を実行させる演算コードを、実行証明演算コードと呼ぶことがある。プロシージャへの実行証明演算コードの追加についての更なる詳細は後述する。
また、処理情報600においてプロシージャには、処理の完了後にデータを送信する通知先の情報が記述されていなくてもよい。一例では、制御部201は、業務情報400の業務フローの次工程の担当者および宛先などに関する情報に基づいて通知先の情報を特定し、プロシージャに書き込んでもよい。
図7は、実施形態に係る通知先情報700を例示する図である。通知先情報700には、例えば、業務情報400に登録されている業務フローの工程で情報を通知する通知先の情報が登録されている。例えば、図7では通知先情報700には、部署名、役職名、氏名、および通知先を対応づけたレコードが登録されている。通知先情報700に登録されるレコードは、例えば、業務フローの工程を担当する担当者および業務フローの実行結果を送付する取引先の担当者などについての情報であってよい。通知先情報700を参照することで、制御部201は、業務情報400の業務フローの工程が完了した際に情報を通知する通知先を特定することができる。通知先は、例えば、メールアドレス、およびネットワーク上の所定のフォルダへのパスなどであってよい。
図8は、実施形態に係るカプセル化データの送信処理の動作フローを例示する図である。また、図9は、実施形態に係る承認のプロシージャを例示する図である。図9には、例としてJavaScriptにより作成された承認のプログラムが示されている。図9のプログラムを実行すると、例えば、ブラウザに図10のウィンドウ1000が表示され、承認者は、承認ボタンを押し下げることで、承認の意思を入力することができる。
以下、図8および図9を参照して、実施形態に係るカプセル化データの送信処理について説明する。例えば、サーバ101の制御部201は、カプセル化データの送信処理の実行指示が入力されると、図8の動作フローを開始してよい。
S801においてサーバ101の制御部201は、業務の担当者が利用する端末102からの業務の実行指示を受け付ける。業務の担当者は、例えば、端末102を介してサーバ101に接続し、業務情報400に登録されている実行対象の業務と対応するドキュメントのテンプレートをサーバ101から取得してよい。そして、担当者は、取得したドキュメントのテンプレートに情報を入力したドキュメントを、端末102を介してサーバ101へと送信して、業務の実行指示をサーバ101に入力してよい。サーバ101の制御部201が、業務の実行指示の入力を受けると、フローはS802進む。
S802においてサーバ101の制御部201は、受け付けた業務の実行指示に含まれるドキュメントに電子署名を付与する。電子署名は、一例ではサーバ101が発行するeシール(Electronic seal)であってよい。
S803においてサーバ101の制御部201は、受信した業務の実行指示と対応する業務フローを特定する。例えば、制御部201は、受け付けた業務の実行指示に含まれるドキュメントと対応する業務フローを、業務情報400のうちから特定してよい。例えば、S801で受け付けた業務の実行指示に含まれるドキュメントが請求書である場合、制御部201は、請求書と対応する業務フローを業務情報400から読み出してよい。
S804において制御部201は、読み出した業務フローの各工程にプロシージャを割り当てる。例えば、制御部201は、業務情報400から読み出した業務フローの各工程の処理と対応するプロシージャを処理情報600から特定して、各工程に割り当ててよい。
一例として、業務情報400の請求書の業務フローでは、(工程1)および(工程2)は承認の処理であり、制御部201は、処理情報600の承認の処理と対応するプロシージャを割り当ててよい。また、請求書の業務フローでは、(工程3)は送付の処理であり、制御部201は、処理情報600の送付の処理と対応するプロシージャを割り当ててよい。
S805において制御部201は、各工程と対応するプロシージャに情報を入力する。例えば、制御部201は、プロシージャに通知先の情報を入力してよい。
例えば、図9のプロシージャには通知先を指定するためのコードが記述されている(例えば、図9の(1))。制御部201はS805において、例えば、通知先を指定するためのコードに、通知先を示す情報を書き込んでよい。なお、制御部201は、例えば、業務フローの工程に設定されている担当者または宛先の情報に基づいて、次の工程の担当者または宛先と対応する通知先の情報を、通知先情報700から取得してよい。それにより、制御部201は、工程の処理により得られた情報を業務フローの次の工程の担当者または取引先の担当者に通知することができる。
なお、上記においては、通知先情報700から取引先の担当者への通知先の情報を取得する例を述べているが、実施形態はこれに限定されるのもではない。別の例では、制御部201は、取引先の担当者への通知先の情報を、S801で受け付けた入力済みのドキュメントから取得してもよい。
S806において制御部201は、プロシージャに対してチャレンジ値を生成する。なお、チャレンジ値は、例えば、各工程と対応するプロシージャごとに生成されてよい。また、別の例では、複数のプロシージャにおいて共通するチャレンジ値が用いられてもよい。チャレンジ値は、例えば、実行のたびに異なる結果を出力する関数から取得することができる。実行のたびに異なる結果を出力する関数の例としては、ランダム関数、シャッフル関数など利用することができる。チャレンジ値は、一例では乱数であってよい。
S807において制御部201は、チャレンジ値を用いて実行証明演算コードを生成し、プロシージャに追加して、追加プロシージャを生成する。従って、追加プロシージャは、例えば、プロシージャの処理プログラム、および実行証明演算コードを含む。例えば、図9では、「//--attached by server--//」から「//--end--//」までのコードは、制御部201によってプロシージャに追加されたコードを表している。実行証明演算コードは、例えば、実行証明対象のコードの実行を証明するための演算を実行させるコードである。なお、実行証明演算コードの追加により生成された追加プロシージャは、例えば、第1のプログラムおよび第2のプログラムと呼ばれてもよい。
また、例えば、制御部201は、プロシージャにおいて所定の条件を満たす実行証明対象のコードの位置を特定し、特定した実行証明対象のコードの位置に応じて実行証明演算コードをプロシージャに追加して、追加プロシージャを生成する。一例では、制御部201は、実行証明対象のコードの位置を示すマークの位置に、マークと置き換えて、実行証明演算コードを追加してよい。なお、マークを削除することで、実行証明対象となるコードがプロシージャのどこにあるのかの特定を難しくすることができ、セキュリティの向上を図ることができる。
例えば、図9では、プロシージャのプログラムの最初に、実行証明演算コードとして演算1および演算2の演算内容を定義するプログラムが記述されている(図9の(2))。図9の例では演算1:cal1として、変数:calanswerに384を加算する演算コードが記述されている。また、演算2:cal2として、変数:calanswerに483を乗算する演算コードが記述されている。なお、演算1:cal1の演算に用いる数値:384および演算2:cal2の演算に用いる数値:483は、いずれもプロシージャに対して生成されたチャレンジ値である。例えば、業務フローの実行のたびにチャレンジ値を生成し、生成したチャレンジ値を用いる演算を実行する実行証明演算コードをプロシージャに追加する。それにより、業務フローの実行のたびに実行証明演算コードの実行に基づき得られる演算結果を異ならせることができる。その結果、リプレイ攻撃などに対処することができる。
また、図9のプログラムでは実行証明対象のコードとして承認処理の関数:executeApproval();が示されている(図9の(3))。そして、実行証明演算コードとして、実行証明対象のコードを挟むように演算1:cal1を実行する演算コードと、演算2:cal2を実行する演算コードとが追加されている(図9の(4)および(5))。この場合に、プロシージャの実行において演算1の演算コード→実行証明対象のコード→演算2の演算コードの順でプログラムが実行されると、後述する鍵の生成に用いる演算結果が得られるものとする。
例えば、図9のプログラムでは演算結果の取得に用いる変数:calanswerの値は初めに0に初期化される。その後、演算1:cal1の実行で384が加算され、calanswerは384となる。続いて、実行証明対象のコードの実行後に演算2が実行されると、483が乗算され、calanswer=384×483=185472となり、演算結果:185472が得られる。なお、例えば、プロシージャの実行において演算1および演算2が実行されなかったり、一方のみしか実行されなかったり、演算2→演算1のように異なる順序で実行されたりした場合、演算結果のcalanswerの値は185472とはならない。そのため、プロシージャを実行して演算結果のcalanswerの値が185472であれば、実行証明対象のコードが実行されたことを証明することができる。
なお、S807の処理では、制御部201は、各工程のプロシージャに異なる実行証明演算コードを追加してよい。それにより、セキュリティ強度を高めることができる。しかしながら、別の例では、制御部201は、複数の工程のプロシージャに共通する実行証明演算コードを追加してもよい。
続く、S808において制御部201は、プロシージャに追加した実行証明演算コードが示す演算の実行に基づく演算結果を用いて鍵を生成する。例えば、制御部201は、S807で生成した追加プロシージャのうちの少なくとも実行証明演算コードを実行することで演算結果を取得し、演算結果を用いて鍵を生成してよい。一例では、制御部201は、演算結果を、そのまま鍵として用いてもよい。また、別の例では制御部201は、演算結果を用いて所定のアルゴリズムで鍵を生成してもよい。例えば、制御部201は、演算結果のハッシュ値を取得し、得られたハッシュ値を用いてAES256、RC4、およびDESなどの共通鍵暗号のアルゴリズムにより鍵を生成してよい。なお、ハッシュ値の取得には、例えば、SHA256、SHA2、およびMD5などのハッシュ関数を利用することができる。
S809において制御部201は、生成した鍵を用いてカプセル化処理を実行する。そして、S810において制御部201は、カプセル化処理で得られたカプセル化データを、業務フローの最初の工程の実行端末に送信し、本動作フローは終了する。なお、制御部201は、例えば、業務フローの最初の工程の実行端末の宛先を通知先情報700から取得してよい。
また、S809で実行されるカプセル化処理では、制御部201は、例えば、工程のプロシージャに対して生成された鍵を用いて、業務フローにおいて次の工程のプロシージャを暗号化してよい。例えば、この様に暗号化を実行すると、プロシージャの実行において得られた演算結果を用いて鍵を生成することができ、生成した鍵を用いて次の工程のプロシージャを復号することが可能になる。
また、カプセル化処理において業務フローの最後の工程については、制御部201は、最後の工程のプロシージャに対して生成された鍵を用いて、ドキュメントを暗号化してよい。例えば、この様に暗号化を実行すると、最後の工程のプロシージャの実行において得られた演算結果を用いて鍵を生成することができ、生成した鍵を用いてドキュメントを復号することが可能になる。
また、プロシージャに追加される実行証明演算コードは、上述のように、プロシージャの実行において実行証明対象のコードが実行された場合に、次の工程のプロシージャの復号に成功する演算結果が得られるように追加されていてよい。一方で、プロシージャに追加される実行証明演算コードは、プロシージャの実行において実行証明対象のコードが実行されなかった場合には、次の工程のプロシージャの復号に成功する演算結果が得られなくなるように追加されていてよい。そして、例えば、プロシージャの実行で得られた演算結果を用いて、次工程のプロシージャの復号に成功し、次工程のプロシージャが実行できるようになったとする。この場合、その演算結果が得られたプロシージャにおいて実行証明対象のコードが確実に実行されたことを証明することができる。
なお、実行証明演算コードは、例えば、上述のS807の処理の説明で述べたように、プロシージャにおいて実行証明対象のコードを挟むようにプロシージャに追加されてよい。即ち、例えば、制御部201は、実行証明対象のコードの位置の前に前部演算コードを追加し、また、実行証明対象のコードの位置の後に後部演算コードを追加するように、プロシージャに実行証明演算コードを追加してよい。また、次の工程のプロシージャの復号が成功する演算結果は、例えば、前部演算コードの実行で得られる一次演算結果を用いて後部演算コードの演算が実行された場合に得られてよい。
例えば、このようにプロシージャに実行証明演算コードを追加することで、実行証明演算コードの実行に基づき得られる演算結果を用いて次の工程のプロシージャの復号に成功すれば、実行証明対象のコードが実行されたことを証明することが可能である。
なお、プロシージャへの実行証明演算コードの追加は、上記の例に限定されるものではない。例えば、実行証明対象のコードが実行された場合には復号に成功する演算結果が得られるが、実行証明対象のコードが実行されなかった場合には復号に成功する演算結果が得られなくなる他の形式でプロシージャに実行証明演算コードが追加されてもよい。
別な例としては、実行証明対象のコードに含まれる関数の戻り値を用いて演算を実行するように、実行証明演算コードがプロシージャに追加されてもよい。この場合、プロシージャの実行において実行証明対象のコードが実行されれば戻り値が得られるが、実行証明対象のコードが実行されなければ戻り値が得られなくなる。そのため、実行証明対象のコードが実行されたか否かに応じて演算結果を異ならせることができる。
続いて、図11および図12を参照して、実施形態に係るカプセル化処理の一例を更に詳細に説明する。
図11は、実施形態に係るカプセル化処理の動作フローを例示する図である。例えば、サーバ101の制御部201は、図8の動作フローのS809に進むと、図11の動作フローを開始してよい。
S1101においてサーバ101の制御部201は、業務フローの最後の工程の追加プロシージャについてS808で演算結果を用いて得た鍵を用いてドキュメントを暗号化し、ドキュメントのバイトコードを生成する。バイトコードは、例えば、暗号化により得られたバイト列のデータであってよく、一例では、アスキー文字で表されてよい。バイトコードは、例えば、暗号化データと呼ばれてもよい。また、暗号化の対象には、S802で付与したドキュメントの電子署名が含まれていてもよい。暗号化は、例えば、共通鍵暗号のアルゴリズムを用いて実行されてよい。
S1102においてサーバ101の制御部201は、最後の工程のプロシージャを処理対象として、ドキュメントのバイトコードを関連づける。一例では、制御部201は、図9の(6)に示すように、プロシージャの定数にバイトコードを格納してよい。
S1103において制御部201は、処理対象の工程に前工程があるか否かを判定する。処理対象の工程に前工程がある場合(S1103がYES)、フローはS1104に進む。
S1104において制御部201は、1つ前の工程の追加プロシージャについてS808で演算結果を用いて得た鍵を用いて処理対象のプロシージャを暗号化する。なお、暗号化の対象には、業務フローにおいて処理対象のプロシージャの下流に位置するプロシージャのバイトコードおよびドキュメントのバイトコードが含まれていてもよい。暗号化は、例えば、共通鍵暗号のアルゴリズムを用いて実行されてよい。
S1105において制御部201は、1つ前の工程のプロシージャを処理対象として、S1104の処理で得られたバイトコードを関連づけて、フローはS1103に戻る。一例では、制御部201は、図9の(6)に示すように、処理対象とした1つ前の工程のプロシージャの定数にバイトコードを格納してよい。
また、S1103において処理対象の工程より前に工程がない場合(S1103がNO)、本動作フローは終了し、フローはS810に進む。
以上の図11の動作フローにより、サーバ101の制御部201は、業務フローの工程のプロシージャが、工程の実行順序に従って暗号化されたカプセル化データを生成することができる。なお、カプセル化データでは、業務フローの最初の工程のプロシージャは暗号化されずに含まれていてよい。
図12は、図11の動作フローで示される実施形態に係るカプセル化処理の流れを例示する図である。
図12(a)では、工程1から工程3の3つの工程を含む業務フローが例示されており、また、各工程に追加された実行証明演算コードに示される演算の実行に基づく演算結果として、演算結果1から演算結果3が示されている。
また、図12(b)は、ドキュメントの暗号化を例示しており、制御部201は、最後の工程3の演算結果3:678912を用いてドキュメントを暗号化し、ドキュメントのバイトコードを取得する。
図12(c)は、業務フローの最後の工程である工程3のプロシージャ3の暗号化を例示している。制御部201は、工程3のプロシージャに図12(b)で得られたドキュメントのバイトコードを付加した後、工程2の演算結果2:345678を用いて暗号化し、工程3のプロシージャのバイトコードを取得する。なお、工程3のプロシージャのバイトコードには、例えば、図12(b)のドキュメントのバイトコードのデータが含まれていてよい。
図12(d)は、工程3の1つ前の工程である工程2のプロシージャ2の暗号化を例示している。制御部201は、工程2のプロシージャに図12(c)で暗号化した工程3のプロシージャのバイトコードを付加した後、工程1の演算結果1:123456を用いて暗号化し、工程2のプロシージャのバイトコードを取得する。なお、工程2のプロシージャのバイトコードには、例えば、図12(c)の工程3のプロシージャのバイトコードのデータが含まれていてよい。
図12(e)は、カプセル化データの送信を例示している。制御部201は、工程1のプロシージャに図12(d)で暗号化した工程2のプロシージャのバイトコードを付加して得たカプセル化データを、工程1を実行する端末102に送信する。
なお、工程1を実行する端末102は、カプセル化データを受信すると、受信したカプセル化データの工程1のプロシージャを実行することで、工程1の演算結果1:123456を取得することができる。そして、演算結果1:123456を用いて工程2のプロシージャのバイトコードを復号して、工程2のプロシージャを取得することができる。以降、プロシージャを実行し、プロシージャの実行で得られた演算結果を用いた復号を繰り返すことで、最終的にドキュメントを復号することができる。また、ドキュメントの復号に成功した場合、業務フローの各工程と対応するプロシージャにおいて実行証明対象のコードが実行されていることを保証することができる。
以下、図13および図14を参照して、端末102の制御部301が実行する業務フローの工程の実行処理を説明する。図13は、実施形態に係る業務フローの工程の実行処理の動作フローを例示する図である。例えば、端末102の制御部301は、カプセル化データを受信すると、図13の動作フローを開始してよい。
S1301において端末102の制御部301は、受信したカプセル化データに含まれるプロシージャの実行を開始する。それにより、端末102の制御部301は、プロシージャと対応する業務フローの工程の業務を実行してよい。例えば、承認のプロシージャでは、端末102の表示部304の表示画面にウィンドウ1000を表示させて承認指示の入力を受け付け、承認業務を実行してよい。
そして、S1302において端末102の制御部301は、プロシージャの実行の際に実行証明演算コードの実行に基づく演算結果を用いて鍵を取得する。
S1303において端末102の制御部301は、鍵を用いてバイトコードを復号する。例えば、図9の(7)に示すように、バイトコードの生成の際の暗号化に用いた演算結果と同じ演算結果が得られていれば、データを正しく復号することができる。
S1304において端末102の制御部301は、復号したデータを宛先に送信する。復号したデータを宛先は、例えば、サーバ101によるS805の処理でプロシージャに書き込まれていてよい。なお、例えば、実行したプロシージャが業務フローにおいて後続の工程を含む場合、復号したデータには、次工程のプロシージャと、残りのバイトコードが含まれていてよい。また、例えば、実行したプロシージャが業務フローにおいて最後の工程である場合、復号したデータにはドキュメントと電子署名とが含まれていてよい。
図14は、実施形態に係るカプセル化データの復号の流れを例示する図である。
図14(a)では、工程1から工程3の3つの工程を含む業務フローが例示されており、また、各工程に追加された実行証明演算コードに示される演算の実行に基づく演算結果として、演算結果1から演算結果3が示されている。
図14(b)は、カプセル化データの復号を例示している。業務フローの最初の工程1を実行する端末102の制御部301は、工程1のプロシージャを実行することで工程1の処理を実行する。また、工程1の端末102の制御部301は、工程1のプロシージャの実行により工程1の演算結果1:123456を取得する。そして、工程1の端末102の制御部301は、演算結果1:123456を用いて工程2のプロシージャのバイトコードを復号し、次の工程2の端末102に送信する。
図14(c)は、工程2の実行を例示している。工程2を実行する端末102の制御部301は、工程2のプロシージャを受信すると、工程2のプロシージャを実行することで工程2の処理を実行する。また、工程2の端末102の制御部301は、工程2のプロシージャの実行により工程2の演算結果2:345678を取得する。そして、工程2の端末102の制御部301は、演算結果2:345678を用いて工程3のプロシージャのバイトコードを復号し、次の工程3の端末102に送信する。
図14(d)は、工程3の実行を例示している。工程3を実行する端末102の制御部301は、工程3のプロシージャを受信すると、工程3のプロシージャを実行することで工程3の処理を実行する。また、工程3の端末102の制御部301は、工程3のプロシージャの実行により工程3の演算結果3:678912を取得する。そして、工程3の端末102の制御部301は、演算結果3:678912を用いてドキュメントのバイトコードを復号し、ドキュメントを取得する。
図14(e)は、ドキュメントの送信を例示している。工程3の端末102の制御部301は、取得したドキュメントを含む送信データを業務フローの工程3で指定された宛先に送信してよい。なお、送信データにはドキュメントに対する電子署名が含まれていてもよい。
以上で述べたように、実施形態に係るカプセル化処理を行うことで、カプセル化データからドキュメントを取得できた場合、業務フローの各工程が実行順序に従って実行されたことを保証することができる。
また、上述の実施形態では、業務フローの実行のたびにチャレンジ値を生成し、チャレンジ値を用いた実行証明演算コードを工程のプロシージャに追加している。そのため、業務フローの実行のたびに、実行証明演算コードに示される演算の実行に基づき得られる演算結果は異なる値となり、リプレイ攻撃などに対処することができる。
なお、上述の実施形態の図13および図14では、端末102の制御部301は、プロシージャの実行で得られた演算結果を用いてバイトコードの復号まで実行する例を述べているが、実施形態はこれに限定されるものではない。別の実施形態では端末102の制御部301は、次の工程を実行する端末102に、演算結果もしくは演算結果に基づき生成されるバイトコードを復号するための情報(例えば、暗号鍵など)をバイトコードとともに通知してもよい。即ち、例えば、上述のS1302~S1304の処理の代わりに、制御部301は、演算結果もしくは演算結果に基づき生成されるバイトコードを復号するための情報をバイトコードとともに宛先に送信してよい。
また、上述の実施形態では、プロシージャへの実行証明演算コードの追加により、1つの実行証明対象のコードの実行を証明する例を述べているが、実施形態はこれに限定されるものではない。別の実施形態では、プロシージャに含まれる複数のコードが所定の順序で実行されたことを保証するために、プロシージャに実行証明演算コードが追加されてもよい。
図15は、実施形態に係るプロシージャにおける複数のコードの実行順序の証明のための実行証明演算コードの追加を例示する図である。図15には、承認のプロシージャが例示されている。なお、図15において、「//--attached by server--//」から「//--end--//」までのコードは、制御部201によってプロシージャに追加されたコードを表している。そして、図15の例では、演算1:cal1、演算2:cal2、および演算3:cal3の3つの演算が定義されている(図15の(1))。
例えば、図15では、変数:calanswerはまず0に初期化される。また、演算1:cal1はcalanswerに384を加算する演算を行う。演算2:cal2はcalanswerに483を乗算する演算を行う。演算3:cal3はcalanswerから936を除算する演算を行う。なお、これらの演算で用いられる384、483、および936の値は、チャレンジ値であってよい。
また、図15の例では、実行証明対象のコードは、表示処理の関数(図15の(2))と、承認処理の関数(図15の(3))とであるものとする。この場合に、制御部201は、表示処理の関数の前に、演算1の演算コードを追加する(図15の(4))。また、制御部201は、表示処理の関数の後ろで、承認処理の関数の前に演算2の演算コードを追加する(図15の(5))。更に、制御部201は、承認処理の関数の後ろに演算3の演算コードを追加する(図15の(6))。
この場合、図15のプロシージャを実行すると、演算1、演算2、演算3の順序でコードが実行され、calanswerの値は(0+384)×483-936=184536となる(図15の(7))。一方で、演算の実行順序が異なっていたり、一部の演算が実行されなかったりすると、演算結果:184536は得られなくなる。
従って、例えば、端末102の制御部301が、図15のプロシージャを実行した際に、演算結果としてcalanswer:184536が得られれば、表示処理の関数が実行され、その後に承認処理の関数が実行されたことを保証することができる。即ち、実施形態によれば、プロシージャに含まれる複数のコードが所定の順序で実行されたことを保証することができる。そして、プロシージャ内で複数のコードが望ましい所定の順序で実行された場合に得られる演算結果を、ドキュメントおよび次工程のプロシージャの暗号化に用いることで、上述の業務フローの工程を順番通りに実行させる効果も得ることができる。
以上に述べたように実施形態によれば、カプセル化データの復号が完了し、例えば、ドキュメントなどのデータを取り出すことができた場合に、業務フローの工程が望ましい順序で実行され、完了していることを保証することができる。
また、実施形態によれば、或る工程の実行の前に、別の工程の実行を完了させることを強制することができる。換言すると、或る工程の実行するプロシージャの復号に成功していれば、その前の別のプロシージャの実行が完了していることを保証することができる。
また、上述の実施形態は、例えば、プロシージャとしてRPAのロボットを用いることで、RPAを用いた業務の自動実行にも適用することができる。
また、上述の実施形態においてサーバ101は、例えば、カプセル化データを生成するサービスを提供してもよい。この場合、サーバ101は、例えば、ドキュメントなどの復号の結果として最終的に取り出されるデータに対してサーバ101が発行したeシールを付与してよい。それにより、サービスの利用者は、カプセル化データからサーバ101のeシールが付与されたデータが得られていれば、カプセル化データと対応する業務フローが全て規定通りの順序で実行されていると解釈することが可能になる。
以上において、実施形態を例示したが、実施形態はこれに限定されるものではない。例えば、上述の動作フローは例示であり、実施形態はこれに限定されるものではない。可能な場合には、動作フローは、処理の順番を変更して実行されてもよく、別に更なる処理を含んでもよく、または、一部の処理が省略されてもよい。例えば、一実施形態においては、上述のS802の処理は省略されてもよい。
また、上述の実施形態のS808の処理では、追加プロシージャのうちの少なくとも実行証明演算コードを実行することで演算結果を取得し、演算結果を用いて鍵を生成する例を述べている。しかしながら、実施形態はこれに限定されるものではない。例えば、プロシージャに追加する実行証明演算コードの演算内容が予め決まっていれば、制御部201は、追加プロシージャを生成する前に、チャレンジ値が生成された時点で演算を実行して演算結果を取得することもできる。この場合、S808の処理は、S807の処理の前に実行されてもよい。
また、上述の実施形態では、得られた演算結果をハッシュ関数にかけて鍵を生成する例を述べているが、実施形態はこれに限定されるものではない。別の実施形態では、制御部201は、追加プロシージャのプログラムなどその他の情報を演算結果に結合してからハッシュ関数にかけて鍵を生成してもよい。それにより、セキュリティ強度を高めることができる。
また、上述の実施形態では実行証明演算コードとして、数値の計算を実行する演算コードを例示しているが、実施形態はこれに限定されるものではない。例えば、実行証明演算コードにより実行される演算は、文字列の結合など、その他の演算を含んでよい。更には、実行証明演算コードにより実行される演算は、暗号学的計算などより複雑な演算を用いて実施されてもよい。
また、別の実施形態では、例えば、プロシージャにダミーの実行証明演算コードを追加するなどして、どの関数をどの順番で実行するのが正しいのか、実際に正しい手順で処理が実行された場合にしか分からないようにしてもよい。それにより、セキュリティ強度を高めることができる。
また、上述の図12および図14では、業務フローの最後の工程から順次、暗号化を行い暗号化データが入れ子となってカプセル化される例を述べているが、実施形態はこれに限定されるものではない。別の実施形態では、後工程のプロシージャの暗号化の際に、既に暗号化されている後続の工程の暗号化されたバイトコードおよび暗号化されたドキュメントは、暗号化対象に含まれていなくてもよい。この場合にも、暗号化されたデータの復号に用いる実行証明演算コードの演算結果は、業務フローに規定された順序で工程を実行することで取得されるため、業務の実行順序を強制することができる。
また、実施形態において実行のタイミングが制御される対象は次の工程のプロシージャに限定されるものではない。実施形態は下流のいずれかのプロシージャの実行タイミングを制御するために利用することができる。更には、実施形態は下流の複数のプロシージャの実行タイミングを制御するために利用することができる。この場合、例えば、或るプロシージャに追加した実行証明演算コードの実行で得られる演算結果が、下流の複数のプロシージャの暗号化に用いられてよい。
或いは、実施形態は上流の複数のプロシージャの実行の完了を待ってから下流の少なくとも1つのプロシージャの実行が開始するように制御を行うため利用することができる。この場合、例えば、複数のプロシージャに追加された実行証明演算コードの実行で得られる複数の演算結果が、それらのプロシージャの下流の少なくとも1つのプロシージャの暗号化に用いられてもよい。
なお、上述の実施形態においてS807の処理ではサーバ101の制御部201は、例えば、生成部211として動作する。また、S809の処理ではサーバ101の制御部201は、例えば、暗号化部212として動作する。S810の処理ではサーバ101の制御部201は、例えば、送信部213として動作する。
また、上述の実施形態においてS1301の処理では端末102の制御部301は、例えば、実行部311として動作する。また、S1304の処理では端末102の制御部301は、例えば、送信部312として動作する。
図16は、実施形態に係るサーバ101および端末102を実現するためのコンピュータ1600のハードウェア構成を例示する図である。図16のサーバ101および端末102を実現するためのハードウェア構成は、例えば、プロセッサ1601、メモリ1602、記憶装置1603、読取装置1604、通信インタフェース1606、および入出力インタフェース1607を備える。なお、プロセッサ1601、メモリ1602、記憶装置1603、読取装置1604、通信インタフェース1606、入出力インタフェース1607は、例えば、バス1608を介して互いに接続されている。
プロセッサ1601は、例えば、シングルプロセッサであっても、マルチプロセッサやマルチコアであってもよい。プロセッサ1601は、メモリ1602を利用して例えば上述の動作フローの手順を記述したプログラムを実行することにより、上述したサーバ101の制御部201、または端末102の制御部301の一部または全部の機能を提供してよい。例えば、サーバ101のプロセッサ1601は、記憶装置1603に格納されているプログラムを読み出して実行することで、生成部211、暗号化部212、および送信部213として動作する。また、端末102のプロセッサ1601は、記憶装置1603に格納されているプログラムを読み出して実行することで、例えば、実行部311、および送信部312として動作する。
メモリ1602は、例えば半導体メモリであり、RAM領域およびROM領域を含んでいてよい。記憶装置1603は、例えばハードディスク、フラッシュメモリ等の半導体メモリ、または外部記憶装置である。なお、RAMは、Random Access Memoryの略称である。また、ROMは、Read Only Memoryの略称である。
読取装置1604は、プロセッサ1601の指示に従って着脱可能記憶媒体1605にアクセスする。着脱可能記憶媒体1605は、例えば、半導体デバイス、磁気的作用により情報が入出力される媒体、光学的作用により情報が入出力される媒体などにより実現される。なお、半導体デバイスは、例えば、USB(Universal Serial Bus)メモリである。また、磁気的作用により情報が入出力される媒体は、例えば、磁気ディスクである。光学的作用により情報が入出力される媒体は、例えば、CD-ROM、DVD、Blu-ray Disc等(Blu-rayは登録商標)である。CDは、Compact Discの略称である。DVDは、Digital Versatile Diskの略称である。
上述のサーバ101の記憶部202および端末102の記憶部302は、例えばメモリ1602、記憶装置1603、および着脱可能記憶媒体1605を含んでいる。例えば、サーバ101の記憶装置1603には、業務情報400、ドキュメント500、処理情報600、および通知先情報700が記憶されている。また、端末102の記憶装置1603には、例えば、サーバ101で生成されたカプセル化データが記憶されてよい。
通信インタフェース1606は、プロセッサ1601の指示に従って、他の装置と通信する。通信インタフェース1606は、例えば、上述のサーバ101の通信部203および端末102の通信部303の一例である。サーバ101は、例えば、通信インタフェース1606を介して端末102などの装置と通信してよい。また、端末102は、例えば、通信インタフェース1606を介してサーバ101および他の端末102などの装置と通信してよい。
入出力インタフェース1607は、例えば、入力装置および出力装置との間のインタフェースであってよい。入力装置は、例えばユーザからの指示を受け付けるキーボード、マウス、タッチパネルなどのデバイスである。出力装置は、例えばディスプレーなどの表示装置、およびスピーカなどの音声装置である。
実施形態に係る各プログラムは、例えば、下記の形態でサーバ101および端末102に提供される。
(1)記憶装置1603に予めインストールされている。
(2)着脱可能記憶媒体1605により提供される。
(3)プログラムサーバなどのサーバから提供される。
(1)記憶装置1603に予めインストールされている。
(2)着脱可能記憶媒体1605により提供される。
(3)プログラムサーバなどのサーバから提供される。
なお、図16を参照して述べたサーバ101および端末102を実現するためのコンピュータ1600のハードウェア構成は、例示であり、実施形態はこれに限定されるものではない。例えば、上述の構成の一部が、削除されてもよく、また、新たな構成が追加されてもよい。また、別の実施形態では、例えば、上述のサーバ101の制御部201および端末102の制御部301の一部または全部の機能がFPGA、SoC、ASIC、およびPLDなどによるハードウェアとして実装されてもよい。なお、FPGAは、Field Programmable Gate Arrayの略称である。SoCは、System-on-a-chipの略称である。ASICは、Application Specific Integrated Circuitの略称である。PLDは、Programmable Logic Deviceの略称である。
以上において、いくつかの実施形態が説明される。しかしながら、実施形態は上記の実施形態に限定されるものではなく、上述の実施形態の各種変形形態および代替形態を包含するものとして理解されるべきである。例えば、各種実施形態は、その趣旨および範囲を逸脱しない範囲で構成要素を変形して具体化できることが理解されよう。また、前述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、種々の実施形態が実施され得ることが理解されよう。更には、実施形態に示される全構成要素からいくつかの構成要素を削除して、または実施形態に示される構成要素にいくつかの構成要素を追加して種々の実施形態が実施され得ることが当業者には理解されよう。
100 制御システム
101 サーバ
102 端末
105 ネットワーク
201 制御部
202 記憶部
203 通信部
211 生成部
212 暗号化部
213 送信部
301 制御部
302 記憶部
303 通信部
304 表示部
311 実行部
312 送信部
400 業務情報
500 ドキュメント
600 処理情報
700 通知先情報
1000 ウィンドウ
1600 コンピュータ
1601 プロセッサ
1602 メモリ
1603 記憶装置
1604 読取装置
1605 着脱可能記憶媒体
1606 通信インタフェース
1607 入出力インタフェース
1608 バス
101 サーバ
102 端末
105 ネットワーク
201 制御部
202 記憶部
203 通信部
211 生成部
212 暗号化部
213 送信部
301 制御部
302 記憶部
303 通信部
304 表示部
311 実行部
312 送信部
400 業務情報
500 ドキュメント
600 処理情報
700 通知先情報
1000 ウィンドウ
1600 コンピュータ
1601 プロセッサ
1602 メモリ
1603 記憶装置
1604 読取装置
1605 着脱可能記憶媒体
1606 通信インタフェース
1607 入出力インタフェース
1608 バス
Claims (13)
- 第1の業務および第2の業務の実行指示を受け付けると、前記第1の業務と対応する処理プログラムに演算を実行させる演算コードを追加して、前記処理プログラムと前記演算コードとを含む第1のプログラムを生成し、
前記演算の実行に基づき得られる演算結果を用いて、前記第2の業務と対応する第2のプログラムを暗号化して暗号化データを生成し、
前記第1のプログラムと前記暗号化データとを、前記第1の業務と対応する装置に送信する、
処理を含む、コンピュータが実行する制御方法。 - 前記演算結果は、前記第1のプログラムのうちの少なくとも前記演算コードを実行することで得られる、ことを特徴とする請求項1に記載の制御方法。
- 前記生成する処理は、前記第1の業務と対応する前記処理プログラムに含まれる所定の条件を満たすコードの位置に応じて前記演算コードを追加する、ことを特徴とする請求項1または2に記載の制御方法。
- 前記生成する処理は、前記第1のプログラムの実行において前記所定の条件を満たすコードが実行された場合には前記演算結果が得られるが、前記所定の条件を満たすコードが実行されなかった場合には前記演算結果が得られなくなるように、前記演算コードを前記処理プログラムに追加して前記第1のプログラムを生成する、請求項3に記載の制御方法。
- 前記生成する処理は、前記所定の条件を満たすコードの位置の前に前部演算コードを追加し、かつ、前記所定の条件を満たすコードの位置の後ろに後部演算コードを追加するように、前記演算コードを前記処理プログラムに追加して前記第1のプログラムを生成し、
前記演算結果は、前記第1のプログラムの実行において、前記前部演算コードの実行により得られた一次演算結果を用いて前記後部演算コードが実行された場合に得られる、請求項3または4に記載の制御方法。 - 前記生成する処理は、前記所定の条件を満たすコードに含まれる関数の戻り値を用いて前記演算を実行するように前記演算コードを前記処理プログラムに追加して前記第1のプログラムを生成する、ことを特徴とする請求項3または4に記載の制御方法。
- 更に、実行のたびに異なる結果を出力する関数から取得したチャレンジ値を用いて前記演算を実行させる前記演算コードを生成する処理を含む、請求項1から請求項6のいずれか1項に記載の制御方法。
- 前記第2の業務は、業務フローにおいて前記第1の業務の実行が完了した後に実行が開始する業務であることを特徴とする、請求項1から7のいずれか1項に記載の制御方法。
- 前記生成する処理は、更に、前記第2の業務と対応する第2の処理プログラムに、第2の演算を実行させる第2の演算コードを追加して前記第2のプログラムを生成し、
前記暗号化する処理は、更に、前記第2の演算の実行に基づき得られる第2の演算結果を用いて、ドキュメントを含むデータを暗号化して第2の暗号化データを生成する、請求項1から8のいずれか1項に記載の制御方法。 - 前記ドキュメントを含む前記データは、前記ドキュメントに対して前記コンピュータが発行した電子署名を含む、請求項9に記載の制御方法。
- 第1の業務および第2の業務の実行指示を受け付けると、前記第1の業務と対応する処理プログラムに演算を実行させる演算コードを追加して、前記処理プログラムと前記演算コードとを含む第1のプログラムを生成し、
前記演算の実行に基づき得られる演算結果を用いて、前記第2の業務と対応する第2のプログラムを暗号化して暗号化データを生成し、
前記第1のプログラムと前記暗号化データとを、前記第1の業務と対応する装置に送信する、
処理をコンピュータに実行させる制御プログラム。 - 第1の業務および第2の業務の実行指示を受け付けると、前記第1の業務と対応する処理プログラムに演算を実行させる演算コードを追加して、前記処理プログラムと前記演算コードとを含む第1のプログラムを生成する生成部と、
前記演算の実行に基づき得られる演算結果を用いて、前記第2の業務と対応する第2のプログラムを暗号化して暗号化データを生成する暗号化部と、
前記第1のプログラムと前記暗号化データとを、前記第1の業務と対応する装置に送信する送信部と、
を含む、情報処理装置。 - 第1の業務と対応する処理プログラムに演算を実行させる演算コードが追加されている第1のプログラムと、第2の業務と対応する第2のプログラムが暗号化されている暗号化データとを受信すると、前記第1のプログラムを実行し、
前記第1のプログラムの実行において前記演算コードの実行に基づき得られる演算結果もしくは前記演算結果に基づき生成される前記暗号化データを復号するための情報を、前記暗号化データとともに前記第2の業務と対応する装置に送信すること、または、前記暗号化データを前記演算結果を用いて復号して得られた前記第2のプログラムを前記装置に送信することを実行する、
処理を含む、コンピュータが実行する制御方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022555023A JPWO2022074757A1 (ja) | 2020-10-07 | 2020-10-07 | |
EP20956705.6A EP4227836A4 (en) | 2020-10-07 | 2020-10-07 | CONTROL METHOD, CONTROL PROGRAM AND INFORMATION PROCESSING DEVICE |
PCT/JP2020/037976 WO2022074757A1 (ja) | 2020-10-07 | 2020-10-07 | 制御方法、制御プログラム、および情報処理装置 |
US18/180,253 US20230221987A1 (en) | 2020-10-07 | 2023-03-08 | Control method, non-transitory computer-readable recording medium storing control program, and information processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/037976 WO2022074757A1 (ja) | 2020-10-07 | 2020-10-07 | 制御方法、制御プログラム、および情報処理装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/180,253 Continuation US20230221987A1 (en) | 2020-10-07 | 2023-03-08 | Control method, non-transitory computer-readable recording medium storing control program, and information processing device |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022074757A1 true WO2022074757A1 (ja) | 2022-04-14 |
Family
ID=81125727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/037976 WO2022074757A1 (ja) | 2020-10-07 | 2020-10-07 | 制御方法、制御プログラム、および情報処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230221987A1 (ja) |
EP (1) | EP4227836A4 (ja) |
JP (1) | JPWO2022074757A1 (ja) |
WO (1) | WO2022074757A1 (ja) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10124596A (ja) * | 1996-10-25 | 1998-05-15 | Hitachi Ltd | ワークフロー管理システム |
JP2004145618A (ja) * | 2002-10-24 | 2004-05-20 | Canon System & Support Inc | 情報処理装置および文書認証方法およびプログラムおよび記録媒体 |
JP2005056418A (ja) | 2003-07-31 | 2005-03-03 | Internatl Business Mach Corp <Ibm> | ドキュメント・コンポーネント用セキュリティ・コンテナ |
JP2007304831A (ja) * | 2006-05-11 | 2007-11-22 | Fuji Xerox Co Ltd | 承認管理システム |
JP2008306406A (ja) * | 2007-06-06 | 2008-12-18 | Toshiba Corp | コンテンツ配信・閲覧システム、コンテンツ配信装置、コンテンツ閲覧装置及びプログラム |
JP2010146426A (ja) * | 2008-12-22 | 2010-07-01 | Canon It Solutions Inc | 文書管理装置及びその制御方法、文書管理システム、及びプログラム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080263366A1 (en) * | 2007-04-19 | 2008-10-23 | Microsoft Corporation | Self-verifying software to prevent reverse engineering and piracy |
-
2020
- 2020-10-07 EP EP20956705.6A patent/EP4227836A4/en not_active Withdrawn
- 2020-10-07 JP JP2022555023A patent/JPWO2022074757A1/ja not_active Withdrawn
- 2020-10-07 WO PCT/JP2020/037976 patent/WO2022074757A1/ja unknown
-
2023
- 2023-03-08 US US18/180,253 patent/US20230221987A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10124596A (ja) * | 1996-10-25 | 1998-05-15 | Hitachi Ltd | ワークフロー管理システム |
JP2004145618A (ja) * | 2002-10-24 | 2004-05-20 | Canon System & Support Inc | 情報処理装置および文書認証方法およびプログラムおよび記録媒体 |
JP2005056418A (ja) | 2003-07-31 | 2005-03-03 | Internatl Business Mach Corp <Ibm> | ドキュメント・コンポーネント用セキュリティ・コンテナ |
JP2007304831A (ja) * | 2006-05-11 | 2007-11-22 | Fuji Xerox Co Ltd | 承認管理システム |
JP2008306406A (ja) * | 2007-06-06 | 2008-12-18 | Toshiba Corp | コンテンツ配信・閲覧システム、コンテンツ配信装置、コンテンツ閲覧装置及びプログラム |
JP2010146426A (ja) * | 2008-12-22 | 2010-07-01 | Canon It Solutions Inc | 文書管理装置及びその制御方法、文書管理システム、及びプログラム |
Non-Patent Citations (1)
Title |
---|
See also references of EP4227836A4 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2022074757A1 (ja) | 2022-04-14 |
EP4227836A4 (en) | 2023-11-22 |
EP4227836A1 (en) | 2023-08-16 |
US20230221987A1 (en) | 2023-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3229397B1 (en) | Method for fulfilling a cryptographic request requiring a value of a private key | |
Prusty | Building blockchain projects | |
CN105103127A (zh) | 基于编译器的混淆 | |
JP5337411B2 (ja) | 情報秘匿化方法および情報秘匿化装置 | |
CN107612683B (zh) | 一种加解密方法、装置、系统、设备和存储介质 | |
JP2006338249A (ja) | コンテンツ保護装置及びコンテンツ保護解除装置 | |
CN106789058B (zh) | 一种代理重加密算法描述及解析方法 | |
CN114547558B (zh) | 授权方法、授权控制方法及装置、设备和介质 | |
Irviani et al. | Nur algorithm on data encryption and decryption | |
WO2020048290A1 (zh) | 用于发行证书的系统和方法 | |
JP2004171367A (ja) | 回路動作シミュレーション装置、回路動作シミュレーション方法、回路動作シミュレーションプログラム、および回路情報復号化プログラム | |
US20230196351A1 (en) | Transaction tracing method and apparatus based on blockchain | |
WO2022074757A1 (ja) | 制御方法、制御プログラム、および情報処理装置 | |
JP6064511B2 (ja) | 情報処理装置、情報処理システム、情報処理方法、プログラム | |
JP2012043242A (ja) | 暗号化文書生成装置及び暗号化文書生成プログラム | |
JP2018180408A (ja) | 暗号処理方法、暗号処理システム、暗号化装置、復号装置、プログラム | |
TW201804349A (zh) | 隨選碼解密 | |
CN103605927A (zh) | 一种基于嵌入式Linux系统实现加密和解密方法 | |
WO2020105156A1 (ja) | シナリオ生成装置、シナリオ生成方法およびシナリオ生成プログラム | |
CN111104693A (zh) | 一种Android平台软件数据破解方法、终端设备及存储介质 | |
JP6755539B2 (ja) | ネットワークに著作物を公開するための方法および装置 | |
CN108200058B (zh) | 聊天加密方法、装置、电子终端及可读存储介质 | |
JP4818279B2 (ja) | プログラム処理装置、プログラム処理方法及びプログラム | |
US20200126541A1 (en) | Phonetic Representor, System, and Method | |
JP5574550B2 (ja) | 情報秘匿化方法および情報秘匿化装置 |
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: 20956705 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2022555023 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2020956705 Country of ref document: EP Effective date: 20230508 |