WO2025225151A1 - 二重電子透かしシステム及び二重電子透かし方法 - Google Patents
二重電子透かしシステム及び二重電子透かし方法Info
- Publication number
- WO2025225151A1 WO2025225151A1 PCT/JP2025/005788 JP2025005788W WO2025225151A1 WO 2025225151 A1 WO2025225151 A1 WO 2025225151A1 JP 2025005788 W JP2025005788 W JP 2025005788W WO 2025225151 A1 WO2025225151 A1 WO 2025225151A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- token
- digital watermark
- tokens
- key
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/16—Program or content traceability, e.g. by watermarking
Definitions
- the present invention relates primarily to digital watermarking systems, and in particular to technology for embedding and detecting double digital watermarks.
- Digital watermarking technology is known as a technique for identifying the origin of digital content such as images and text generated by language models (see, for example, Patent Documents 1 and 2). Being able to identify the origin of data derived from a language model is extremely important in preventing the spread of misinformation and misuse by language models.
- a language model generates sequential data by predicting the next token from a sequence of previously generated tokens.
- One digital watermarking technique that focuses on the generation process of such language models is one that uses a key linked to the owner of the language model (see, for example, Non-Patent Document 1).
- the key and some of the tokens contained in the previously generated token sequence are input into a hash function, and based on the seed value obtained as the output, all token candidates are classified into a group with increased probability and a group without increased probability. Then, by increasing the probability of generating tokens belonging to the group with increased probability, a token appearance pattern uniquely linked to the key can be embedded as a digital watermark in the generated token sequence.
- the same process is repeated using the key used during generation, and the presence or absence of a digital watermark is determined based on the proportion of tokens belonging to the probability-increased group.
- the key and the tokens of the text to be detected are input into a hash function, starting from the beginning, to obtain groups with and without probability increase corresponding to the position of each target token. If the target token belongs to the probability-increased group, it is counted as a probability-increased token. By performing this operation on all tokens, the proportion of tokens belonging to the probability-increased group is calculated.
- the presence or absence of a digital watermark is determined probabilistically based on statistical hypothesis testing.
- the null hypothesis to be rejected is assumed to be that "a digital watermark using the corresponding key is not embedded in the given token sequence.” If a digital watermark using the corresponding key is not embedded, the probability distribution correction operation is not performed, and the proportion of tokens belonging to the probability-increased group will be approximately half. On the other hand, if a watermark is embedded, the proportion of tokens belonging to the probability-increased group will be higher than usual, and the degree of this bias can be calculated by calculating the z-score. Therefore, if a z-score is obtained that exceeds a sufficiently high threshold, the null hypothesis can be rejected with high confidence, and the digital watermark can be detected.
- Non-Patent Document 1 uses a single key for embedding and detecting digital watermarks. Therefore, if digital watermarks are embedded and detected using the technology described in Non-Patent Document 1, if the key is leaked, the same digital watermark can be reproduced by someone other than the original key owner, making it difficult to determine the source of the text.
- the present invention was made in consideration of the above-mentioned problems, and aims to provide technology that, when a digital watermark is embedded in text data generated by a language model, makes it possible to determine the source of the text data, even after one of the keys corresponding to the digital watermark has been leaked.
- the double digital watermarking system is a system comprising: a digital watermark embedding device that embeds a digital watermark in a token sequence generated by a language model in a process in which the language model generates a token sequence different from the token sequence received from a user in response to the token sequence received from the user, using a computer having at least a processor and a storage device; and a digital watermark detection device that detects, using a computer having at least a processor and a storage device, that the token sequence received from the user is one that was generated by the language model.
- the digital watermark embedding device has a first digital watermark token selection unit that classifies multiple tokens that are generated next from a first token included in a token sequence received from a user and a token sequence generated by a language model into either a first group or a second group using a first key and at least a hash function corresponding to the first key; a second digital watermark token selection unit that receives tokens belonging to the first group classified by the first digital watermark token selection unit and classifies multiple tokens that are generated next from a second token included in a token sequence received from a user and a token sequence generated by a language model into either a third group or a fourth group using a second key different from the first key and at least a hash function corresponding to the second key; and a token probability correction unit that increases the probability of tokens belonging to the first group and tokens belonging to the third group.
- the digital watermark detection device uses a first digital watermark token detection unit and a first key to calculate the number of tokens classified into a first group from the tokens classified into the first group by the first digital watermark token detection unit, and a second key to calculate the number of tokens classified into a third group from the tokens classified into the first group by the first digital watermark token detection unit.
- the digital watermark determination unit compares the first score and the second score with a predetermined threshold based on the number of tokens calculated by the first digital watermark token detection unit and a statistical test performed on the total number of tokens included in the received token sequence, and the number of tokens calculated by the second digital watermark token detection unit and the number of tokens classified into the first group by the first digital watermark token detection unit, to determine the presence or absence of the first digital watermark and the second digital watermark.
- the source of the text data can be determined even after one of the keys corresponding to the digital watermark has been leaked.
- 1 is a diagram showing an example of the configuration of an entire system including a double digital watermark system according to an embodiment
- 1 is a diagram illustrating an example of the configuration of a digital watermark embedding device that constitutes a double digital watermark system.
- 1 is a diagram illustrating an example of the configuration of a digital watermark detection device that constitutes a double digital watermark system.
- 10 is a flowchart showing an example of the flow of a digital watermark embedding process.
- 10 is a flowchart showing an example of the flow of a digital watermark detection process.
- first,” “second,” “third,” etc. are used to identify components and do not necessarily limit the number, order, or content.
- numbers used to identify components are used in different contexts, and numbers used in one context do not necessarily indicate the same configuration in another context. Furthermore, this does not prevent a component identified by a certain number from also serving the function of a component identified by another number.
- an "interface apparatus” may refer to one or more interface devices, which may be at least one of the following: One or more I/O (Input/Output) interface devices.
- the I/O (Input/Output) interface devices are interface devices for at least one of the I/O device and a remote display computer.
- the I/O interface device for the display computer may be a communications interface device.
- the at least one I/O device may be a user interface device, for example, either an input interface device such as a keyboard and a pointing device, or an output interface device such as a display device.
- One or more communication interface devices One or more communication interface devices.
- the one or more communication interface devices may be one or more communication interface devices of the same type (for example, one or more NICs (Network Interface Cards)) or two or more communication interface devices of different types (for example, a NIC and an HBA (Host Bus Adapter)).
- NICs Network Interface Cards
- HBA Hyper Bus Adapter
- possible networks accessed by the communication interface devices for communication include, but are not limited to, the Internet, a LAN (Local Area Network), a WAN (Wide Area Network), or a mobile phone network.
- memory refers to one or more memory devices, which are an example of one or more storage devices, and may typically be a primary storage device. At least one memory device in the memory may be a volatile memory device or a non-volatile memory device.
- storage may refer to one or more persistent storage devices, which are an example of one or more storage devices.
- a persistent storage device may typically be a non-volatile storage device (e.g., an auxiliary storage device), and more specifically, may be, for example, an HDD (Hard Disk Drive), an SSD (Solid State Drive), an NVMe (Non-Volatile Memory Express) drive, or an SCM (Storage Class Memory).
- HDD Hard Disk Drive
- SSD Solid State Drive
- NVMe Non-Volatile Memory Express
- SCM Storage Class Memory
- memory device may refer to at least memory, including memory and storage.
- a "processor,” which is a computing device, may be one or more processor devices.
- At least one processor device may typically be a microprocessor device such as a CPU (Central Processing Unit), but may also include other types of processor devices such as a GPU (Graphics Processing Unit).
- At least one processor device may be single-core or multi-core.
- At least one processor device may be a processor core.
- At least one processor device may be a broader processor device such as a hardware circuit that performs some or all of the processing (e.g., an FPGA (Field-Programmable Gate Array), a CPLD (Complex Programmable Logic Device), or an ASIC (Application Specific Integrated Circuit)).
- FPGA Field-Programmable Gate Array
- CPLD Complex Programmable Logic Device
- ASIC Application Specific Integrated Circuit
- information that produces an output in response to an input may be described using expressions such as "xxx database” or "xxx table,” but this information may be data of any structure (for example, structured or unstructured data), or may be a neural network that generates an output in response to an input, or a learning model such as a genetic algorithm or random forest. Therefore, "xxx database” or “xxx table” can be referred to as "xxx information.” Furthermore, in the following explanation, the structure of each database or table is an example, and one database or table may be divided into two or more databases or tables, or all or part of two or more databases or tables may be a single database or table.
- processing may be described using the "program" as the subject; however, because a program is executed by a processor to perform predetermined processing using a storage device and/or interface device, etc. as appropriate, the subject of the processing may also be the processor (or a device such as a controller having that processor).
- a program may also be installed on a device such as a computer from a program source.
- the program source may be, for example, a program distribution server or a computer-readable (e.g., non-transitory) recording medium.
- two or more programs may be realized as one program, and one program may be realized as two or more programs.
- the "double digital watermark system” may be a system (e.g., a cloud computing system) implemented on a group of physical computing resources (e.g., a cloud infrastructure), or a system (e.g., an on-premise system) composed of one or more physical computers.
- the double digital watermark system “displays" display information, it may mean displaying the display information on a display device possessed by the computer, or it may mean that the computer sends the display information to a display computer (in the latter case, the display information is displayed by the display computer).
- FIG. 1 is a diagram showing an example of the overall system configuration when a double digital watermarking system 1 is applied to an online text generation service.
- Double digital watermarking system 1 is a computer system that embeds digital watermarks twice using two different keys and is capable of determining the presence or absence of each of the two digital watermarks even during detection. It is realized by multiple computer devices or server devices, each equipped with the configurations described below.
- the double digital watermark system 1 is composed of at least a digital watermark embedding device 2, a digital watermark detection device 3, a first key memory device 5 that stores a first key 4, and a second key memory device 7 that stores a second key 6.
- the digital watermark embedding device 2 and the digital watermark detection device 3 are connected to the first key memory device 5 and the second key memory device 7, respectively, so that they can communicate data with each other via an appropriate communication network such as a dedicated line, as shown in FIG. 1.
- the digital watermark embedding device 2, the digital watermark detection device 3, the first key memory device 5, and the second key memory device 7 are connected to the communication network via wires via well-known communication equipment (not shown), but they may also be connected wirelessly.
- information input/output terminals 9 such as laptop PCs, tablets, smartphones, etc. owned by each user 8 of the double digital watermarking system 1 are connected to the digital watermark embedding device 2 and the digital watermark detection device 3 so that data can be communicated between them via an appropriate communication network 10 (hereinafter simply referred to as "network") such as the Internet or a dedicated line.
- network such as the Internet or a dedicated line.
- the digital watermark embedding device 2 is a server device that receives instructions for generating text sent from the information input/output terminal 9 by the user 8 of the double digital watermarking system 1, and returns the generated text with an embedded digital watermark.
- This digital watermark embedding device 2 uses the first key 4 received from the first key storage device 5 and the second key 6 received from the second key storage device 7 to embed two digital watermarks in the generated text that is returned to the user 8.
- the digital watermark detection device 3 is a server device that receives the text for which digital watermarks are to be detected, sent from the information input/output terminal 9 by the user 8 of the double digital watermark system 1, and returns the detection results of the two digital watermarks.
- This digital watermark detection device 3 uses the first key 4 received from the first key storage device 5 and the second key 6 received from the second key storage device 7 to verify whether each digital watermark is embedded in the received text for which digital watermarks are to be detected, and returns the results.
- the first key storage device 5 is a server device that stores the first key 4. This first key storage device 5 is used to transmit the first key 4 to the digital watermark embedding device 2 when embedding a digital watermark, and to transmit the first key 4 to the digital watermark detection device 3 when detecting a digital watermark.
- the second key storage device 7 is a server device that stores the second key 6. This second key storage device 7 is used to transmit the second key 6 to the digital watermark embedding device 2 when embedding a digital watermark, and to transmit the second key 6 to the digital watermark detection device 3 when detecting a digital watermark.
- the information input/output terminal 9 When embedding a digital watermark, the information input/output terminal 9 accepts input of instructions for generating text by the user 8 and transmits it to the digital watermark embedding device 2. When detecting a digital watermark, the information input/output terminal 9 accepts selection of text to be detected by the user 8 and transmits it to the digital watermark detection device 3.
- other computer devices may be connected via network 10 to the digital watermark embedding device 2 and/or digital watermark detection device 3 so that data can be transmitted between them.
- the other devices and network 10 may be connected via a wired or wireless connection via well-known communication equipment (not shown).
- the digital watermark embedding device 2, digital watermark detection device 3, first key storage device 5, and second key storage device 7 that make up the double digital watermarking system 1 have been described as being separate devices.
- these devices (2, 3, 5, 7) that make up the double digital watermarking system 1 may also be configured as the same device.
- the double digital watermarking system 1 may be configured, for example, as a computer system that includes some or all of these devices (2, 3, 5, 7).
- the double digital watermarking system 1 may be configured to include some or all of the functions performed by these devices (2, 3, 5, 7).
- Figure 2 is a diagram showing an example of the configuration of the digital watermark embedding device 2.
- this digital watermark embedding device 2 is realized by a computer having at least a storage device including memory 13 and storage 14, an interface device including at least a communication interface (hereinafter also referred to as "communication I/F") 15, and a processor 12 connected to these.
- the interface device may include an input interface (hereinafter also referred to as "input I/F”) and/or an output interface (hereinafter also referred to as "output I/F").
- the digital watermark embedding device 2 is implemented as a single general-purpose computer device equipped with one or more processors 12, one or more memories 13, one or more storages 14, one or more communication interfaces 15, one or more input interfaces (not shown), one or more output interfaces (not shown), and a bus 11 interconnecting these.
- Storage 14 is an auxiliary storage device consisting of a non-volatile memory element such as flash memory.
- Specific examples of storage 14 include an SSD (Solid State Drive) and an HDD (Hard Disk Drive).
- storage 14 stores various programs, such as a language model token generation program (hereinafter also referred to as the "language model token generation PG") 16, a first digital watermark token selection processing program (hereinafter also referred to as the “first digital watermark token selection processing PG") 17, a second digital watermark token selection processing program (hereinafter also referred to as the "second digital watermark token selection processing PG") 18, and a token probability correction processing program (hereinafter also referred to as the "token probability correction processing PG”) 19.
- languages model token generation program hereinafter also referred to as the "language model token generation PG”
- first digital watermark token selection processing program hereinafter also referred to as the "first digital watermark token selection processing PG”
- second digital watermark token selection processing PG also referred to as the "second digital
- the processor 12 executes the language model-based token generation program 16, the first digital watermark token selection processing program 17, the second digital watermark token selection processing program 18, and the token probability correction processing program 19, the functions of the functional units of the digital watermark embedding device 2, such as the language model-based token generation unit, the first digital watermark token selection processing unit, the second digital watermark token selection processing unit, and the token probability correction processing unit (all not shown), described below, are realized.
- the various programs described above are provided to the digital watermark embedding device 2 via various removable media such as CD-ROM or flash memory, or via the network 10, and are stored in non-volatile storage 14, which is a non-temporary storage medium. Therefore, it is preferable that the digital watermark embedding device 2 have an interface for reading data from the removable media.
- the various programs described above may be installed from a program source.
- the program source may be, for example, a program distribution computer or a computer-readable recording medium.
- the various programs described above may be composed of device drivers, an operating system, various application programs located at higher levels than these, and libraries that provide common functions to these programs.
- two or more programs may be realized as a single program, or one program may be realized as two or more programs.
- the storage 14 stores various information including at least a token dictionary 20 and language model weight information 21, as illustrated in Figure 2.
- Memory 13 is a main storage device consisting mainly of volatile memory elements such as RAM (Random Access Memory). Memory 13 also includes ROM consisting of non-volatile memory elements. ROM stores unchanging programs (e.g., BIOS) and the like. This memory 13 temporarily stores data representing various information read from storage 14, as well as various data obtained via the communication interface 15 and/or input interface.
- RAM Random Access Memory
- the processor 12 is a processor device such as a CPU (Central Processing Unit) and various coprocessors. By loading various computer programs, including the above programs (16-19), into memory 13 and executing them, the processor 12 performs overall control of the digital watermark embedding device 2 itself, and also controls a control unit (not shown) that performs various processes such as arithmetic processing and judgment processing.
- a control unit not shown
- the interface device includes a communication interface 15 that controls the communication section described below, an input interface that controls the input section described below, and an output interface that controls the output section described below.
- the communication interface 15 is a network interface device that controls communication with other devices, such as the first key memory device 5, the second key memory device 7, and the information input/output terminals 9 owned by each user 8 of the double digital watermark system 1, in accordance with a predetermined protocol.
- the input interface is an interface to which input devices (not shown), such as a keyboard, mouse, or touch panel, are connected and which receives input from the user 8.
- input devices such as a keyboard, mouse, or touch panel
- the output interface is an interface to which various display devices such as LCD displays and touch screens, or output devices such as printers (not shown), are connected, and which outputs the results of program execution in a format that can be viewed by user 8.
- digital watermark embedding device 2 may be an independent device or an embedded device.
- the digital watermark embedding device 2 is mainly composed of the following functional blocks: a control unit (not shown) realized by the aforementioned processor 12; a memory unit (not shown) realized by the aforementioned storage devices (13, 14); a communication unit (not shown) realized by the aforementioned communication interface 15; and a user interface unit (not shown) realized by the aforementioned input interface and output interface.
- the control unit performs various data processing operations based on the programs and data stored in the memory unit and the data acquired by the communication unit.
- the control unit also functions as an interface between the memory unit and the communication unit.
- the control unit has the following functional blocks: a language model token generation unit, a first digital watermark token selection processing unit, a second digital watermark token selection processing unit, and a token probability correction processing unit (none of which are shown).
- the language model token generation unit performs processing to generate tokens using a language model. Details of the processing performed by the language model token generation unit will be described later in relation to Figure 4.
- the first digital watermark token selection processing unit executes a process for selecting a first digital watermark token. Details of the process executed by the first digital watermark token selection processing unit will be described later in relation to Figure 4.
- the second digital watermark token selection processing unit executes a process for selecting a second digital watermark token. Details of the process executed by the second digital watermark token selection processing unit will be described later in relation to Figure 4.
- the token probability correction processing unit performs processing to correct the token probability. Details of the processing performed by the token probability correction processing unit will be described later in relation to Figure 4.
- the control unit is configured using the processor 12, and can realize these functional blocks by executing the aforementioned language model token generation program 16, first digital watermark token selection processing program 17, second digital watermark token selection processing program 18, and token probability correction processing program 19.
- the control unit may be configured using a logic circuit such as an FPGA (Field-Programmable Gate Array) or ASIC (Application Specific Integrated Circuit).
- the control unit may also be configured by combining the processor 12 with a logic circuit.
- the memory unit is configured using a storage device consisting of, for example, memory 13 and storage 14, and stores programs that supply various processing commands to the control unit, as well as data representing various information used in the processing executed by the control unit.
- the storage unit stores at least a database that manages the aforementioned token dictionary 20 and a database that manages language model weight information 21.
- the control unit can execute the aforementioned digital watermark embedding process (described in detail below in relation to Figure 4) by reading and writing data representing the various information managed by these databases to the memory unit.
- the communications unit is responsible for processing communications with the information input/output terminal 9 and other devices via the network 10.
- the communications unit is configured using, for example, a NIC (Network Interface Card) or HBA (Host Bus Adapter).
- the user interface section is composed of the input and output functional blocks.
- the input unit is responsible for input-related processing, such as accepting input operations from the user 8, among other user interface processing.
- the input unit is configured using input devices such as a keyboard, mouse, touch panel, etc., and detects various operations performed by the user 8.
- the output unit is responsible for output-related processes, such as displaying various screens on a display device and outputting audio, among other user interface-related processes.
- the output unit is configured using various display devices, such as an LCD display or touch screen.
- an input unit and/or output unit is not essential, for example, when remotely logging in to the digital watermark embedding device 2 from another external device such as an information input/output terminal 9, or when accepting input information from an external device or providing output information to an external device via the communication interface 15.
- the digital watermark embedding device 2 may have web server functionality and accept access from an external device using a specified protocol.
- each component of the digital watermark embedding device 2 is realized by hardware including the processor 12, storage devices such as memory 13 and storage 14, the bus 11 and interface device (15) that connect them, and software stored in the storage devices (13, 14) that supplies processing instructions to the computing unit (processor 12).
- each function of the digital watermark embedding device 2 is implemented as an integrated unit by a single computer device. However, each of these functions may also be implemented by multiple interconnected computers and/or server devices. Furthermore, the digital watermark embedding device 2 may be configured to include a general-purpose computer device such as a laptop PC and a web browser installed on it, or may be configured to include a web server or various mobile devices.
- the digital watermark embedding device 2 is a computer system configured on a single physical computer, or on multiple logically or physically configured computers, and may operate on a virtual computer built on multiple physical computer resources.
- functional units such as the language model token generation unit, first digital watermark token selection unit, second digital watermark token selection unit, and token probability correction unit may each operate on separate physical or logical computers, or multiple units may be combined to operate on a single physical or logical computer.
- each function is merely examples, and multiple functions may be combined into one function, or one function may be divided into multiple functions.
- the digital watermark embedding device 2 may have other functions in addition to the functions described above.
- the digital watermark embedding device 2 may be configured to include some of the various functions provided by other devices.
- Figure 3 is a diagram showing an example of the configuration of the digital watermark detection device 3.
- this digital watermark detection device 3 is realized by a computer having at least a storage device including a memory 24 and a storage 25, an interface device including at least a communication interface (hereinafter also referred to as "communication I/F") 26, and a processor 23 connected to these.
- the interface device may include an input interface (hereinafter also referred to as "input I/F”) and/or an output interface (hereinafter also referred to as "output I/F").
- the digital watermark detection device 3 is implemented as a single general-purpose computer device equipped with one or more processors 23, one or more memories 24, one or more storages 25, one or more communication interfaces 26, one or more input interfaces (not shown), one or more output interfaces (not shown), and a bus 22 interconnecting these.
- Storage 25 is an auxiliary storage device consisting of a non-volatile memory element such as flash memory. Specific examples of this storage 25 include an SSD (Solid State Drive) and an HDD (Hard Disk Drive). As shown in FIG. 3, storage 25 stores various programs such as a first digital watermark token detection processing program (hereinafter also referred to as the "first digital watermark token detection processing PG") 27, a second digital watermark token detection processing program (hereinafter also referred to as the “second digital watermark token detection processing PG”) 28, and a digital watermark judgment processing program (hereinafter also referred to as the "digital watermark judgment processing PG") 29, which will be described later. These programs are computer programs for implementing the functions required for the digital watermark detection device 3.
- first digital watermark token detection processing program hereinafter also referred to as the "first digital watermark token detection processing PG”
- second digital watermark token detection processing PG second digital watermark token detection processing program
- digital watermark judgment processing PG digital watermark judgment processing program
- the processor 23 executes the first digital watermark token detection processing program 27, the second digital watermark token detection processing program 28, and the digital watermark judgment processing program 29, the functions performed by each functional unit of the digital watermark detection device 3, such as the first digital watermark token detection processing unit, second digital watermark token detection processing unit, and digital watermark judgment processing unit, which will be described later, are realized.
- various programs including the first digital watermark token detection processing program 27, the second digital watermark token detection processing program 28, the digital watermark judgment processing program 29, etc. various processes are performed, including the process related to double digital watermark detection (hereinafter also referred to as "digital watermark detection process"), which will be described later in relation to FIG. 5.
- the various programs described above are provided to the digital watermark detection device 3 via various removable media such as CD-ROM or flash memory, or via the network 10, and are stored in non-volatile storage 25, which is a non-temporary storage medium. Therefore, it is preferable that the digital watermark detection device 3 have an interface for reading data from the removable media.
- the various programs described above may be installed from a program source.
- the program source may be, for example, a program distribution computer or a computer-readable recording medium.
- the various programs described above may be composed of device drivers, an operating system, various application programs located at higher levels than these, and libraries that provide common functions to these programs.
- two or more programs may be realized as a single program, or one program may be realized as two or more programs.
- the storage 25 stores various information including at least the token dictionary 20, as illustrated in Figure 3.
- Memory 24 is a main storage device consisting mainly of volatile memory elements such as RAM (Random Access Memory). Memory 24 also includes ROM consisting of non-volatile memory elements. ROM stores unchanging programs (e.g., BIOS) and the like. This memory 24 temporarily stores data representing various information read from storage 25, as well as various data obtained via the communication interface 26 and/or input interface.
- RAM Random Access Memory
- ROM Read Only Memory
- the processor 23 is a processor device such as a CPU (Central Processing Unit) and various coprocessors. By loading and executing various computer programs, including the first digital watermark token detection processing program 27, the second digital watermark token detection processing program 28, and the digital watermark judgment processing program 29, into the memory 24, the processor 23 performs overall control of the digital watermark detection device 3 itself and also controls a control unit (not shown) that performs various processes such as arithmetic processing and judgment processing.
- a control unit not shown
- the interface device includes a communication interface 26 that controls the communication section described below, an input interface that controls the input section described below, and an output interface that controls the output section described below.
- the communication interface 26 is a network interface device that controls communication with other devices, such as the first key memory device 5, the second key memory device 7, and the information input/output terminals 9 owned by each user 8 of the double digital watermark system 1, in accordance with a predetermined protocol.
- the input interface is an interface to which input devices (not shown), such as a keyboard, mouse, or touch panel, are connected and which receives input from the user 8.
- input devices such as a keyboard, mouse, or touch panel
- the output interface is an interface to which various display devices such as LCD displays and touch screens, or output devices such as printers (not shown), are connected, and which outputs the results of program execution in a format that can be viewed by user 8.
- digital watermark embedding device 2 may be an independent device or an embedded device.
- the digital watermark detection device 3 is composed of the following functional blocks: a control unit (not shown) realized mainly by the aforementioned processor 23; a memory unit (not shown) realized by the aforementioned storage devices (24, 25); a communication unit (not shown) realized by the aforementioned communication interface 26; and a user interface unit (not shown) realized by the aforementioned input interface and output interface.
- the control unit performs various data processing operations based on the programs and data stored in the memory unit and the data acquired by the communication unit.
- the control unit also functions as an interface between the memory unit and the communication unit.
- the control unit has functional blocks: a first digital watermark token detection processing unit, a second digital watermark token detection processing unit, and a digital watermark judgment processing unit (none of which are shown).
- the first digital watermark token detection processing unit performs processing to detect tokens related to the first digital watermark. Details of the processing performed by the first digital watermark token detection processing unit will be described later in relation to Figure 5.
- the second digital watermark token detection processing unit executes processing to detect tokens related to the second digital watermark. Details of the processing executed by the second digital watermark token detection processing unit will be described later in relation to Figure 5.
- the digital watermark determination processing unit performs processing to determine the presence or absence of each double digital watermark. Details of the processing performed by the digital watermark determination processing unit will be described later in relation to Figure 5.
- the control unit is configured using the processor 23, and can realize these functional blocks by executing the aforementioned first digital watermark token detection processing program 27, second digital watermark token detection processing program 28, and digital watermark determination processing program 29.
- the control unit may be configured using a logic circuit such as an FPGA (Field-Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit).
- the control unit may also be configured by combining the processor 23 with a logic circuit.
- the memory unit is configured using a storage device consisting of, for example, memory 24 and storage 25, and stores programs that supply various processing commands to the control unit, as well as data representing various information used in the processing executed by the control unit.
- the memory unit stores at least a database that manages the aforementioned token dictionary 20.
- the control unit can execute various processes, including the aforementioned digital watermark detection process (described in detail below in relation to Figure 5), by reading and writing data representing various information managed by the database to the storage unit.
- the communications unit is responsible for processing communications with the information input/output terminal 9 and other devices via the network 10.
- the communications unit is configured using, for example, a NIC (Network Interface Card) or HBA (Host Bus Adapter).
- the user interface section is composed of the input and output functional blocks.
- the input unit is responsible for input-related processing, such as accepting input operations from the user 8, among other user interface processing.
- the input unit is configured using input devices such as a keyboard, mouse, touch panel, etc., and detects various operations performed by the user 8.
- the output unit is responsible for output-related processes, such as displaying various screens on a display device and outputting audio, among other user interface-related processes.
- the output unit is configured using various display devices, such as an LCD display or touch screen.
- the digital watermark detection device 3 may have web server functionality and be able to receive access from an external device using a specified protocol.
- each component of the digital watermark detection device 3 is realized by hardware including the processor 23, storage devices such as memory 24 and storage 25, the bus 22 and interface device (26) that connect them, and software stored in the storage devices (24, 25) that supplies processing instructions to the computing unit (processor 23).
- each function of the digital watermark detection device 3 is implemented integrally by a single computer device. However, each of these functions may also be implemented by multiple interconnected computers and/or server devices. Furthermore, the digital watermark detection device 3 may be configured to include a general-purpose computer device such as a laptop PC and a web browser installed on it, or may be configured to include a web server or various mobile devices.
- the digital watermark detection device 3 is a computer system configured on a single physical computer, or on multiple logically or physically configured computers, and may operate on a virtual computer built on multiple physical computer resources.
- functional units such as the first digital watermark token detection processing unit, second digital watermark token detection processing unit, and digital watermark judgment processing unit may each operate on separate physical or logical computers, or multiple units may be combined to operate on a single physical or logical computer.
- each function is merely examples, and multiple functions may be combined into one function, or one function may be divided into multiple functions.
- the digital watermark detection device 3 may have other functions in addition to the functions described above.
- the digital watermark detection device 3 may be configured to include some of the various functions provided by other devices.
- FIG. 4 is a flowchart 400 showing an example of the flow of a digital watermark embedding process.
- the digital watermark embedding process illustrated in Figure 4 is primarily performed in the digital watermark embedding device 2 that constitutes the double digital watermark system 1.
- step S401 the control unit of the digital watermark embedding device 2 executes a process to receive, via the communication unit, an instruction statement for generating text that is input by the user 8 to the information input/output terminal 9 and transmitted from the information input/output terminal 9. As a result, the instruction statement is received via the communication unit.
- the control unit of the digital watermark embedding device 2 proceeds to step S402.
- step S402 the control unit of the digital watermark embedding device 2 causes the language model token generation unit to generate a seed value from the first key 4 received from the first key memory device 5 and the Nth token from the end of the text (the combination of the instruction received in step S401 and the generated tokens), and the first digital watermark token selection processing unit executes a process of selecting some tokens (hereinafter, these tokens will be referred to as "first digital watermark tokens") to be subjected to probability increasing processing from the multiple tokens stored in the token dictionary 20 in storage 14 based on the generated seed value.
- the seed value is generated by the language model token generation unit inputting the Nth token from the end of the text into a hash function.
- the number of tokens input to the hash function at this time may be single or multiple.
- the first digital watermark token selection processing unit can select multiple tokens from the text and input them to the hash function.
- These processes in step S402 are performed by the processor 12 executing the language model token generation program 16 and the first digital watermark token selection processing program 17. As a result, a seed value is generated from the first key 4 and the Nth token before the end of the text, and a first digital watermark token is selected based on the generated seed value.
- the control unit of the digital watermark embedding device 2 proceeds to step S403.
- step S403 the control unit of the digital watermark embedding device 2 causes the language model token generation unit to generate a seed value from the second key 6 received from the second key memory device 7 and the M tokens before the end of the text (the combination of the instruction received in step S401 and the generated tokens), and the second digital watermark token selection processing unit executes a process to select some tokens (hereinafter, these tokens will be referred to as "second digital watermark tokens") from the first digital watermark tokens selected in step S402 based on the generated seed value, for which further probability increase processing will be performed.
- the seed value is generated by the language model token generation unit inputting the M tokens before the end of the text into a hash function.
- the number of tokens input to the hash function at this time may be single or multiple.
- the second digital watermark token selection processing unit can select multiple tokens from the text and input them to the hash function.
- These processes in step S403 are performed by the processor 12 executing the language model token generation program 16 and the second digital watermark token selection processing program 18. As a result, a seed value is generated from the second key 6 and the M tokens before the end of the text, and a second digital watermark token is selected based on the generated seed value.
- the control unit of the digital watermark embedding device 2 proceeds to step S404.
- step S404 the control unit of the digital watermark embedding device 2 causes the token probability correction processing unit to execute processing to correct the probability distribution related to the token generation probability for each of the first digital watermark token selected in step S402 and the second digital watermark token selected in step S403. Specifically, this correction is performed by obtaining the token generation probability distribution calculated by the language model-based token generation unit for each of the first digital watermark token and the second digital watermark token, and increasing the probability by an arbitrary value based on the obtained token generation probability distribution.
- This processing in step S404 is performed by the processor 12 executing the token probability correction processing program 19. As a result, the probability distributions of the first digital watermark token and the second digital watermark token are corrected.
- the control unit of the digital watermark embedding device 2 proceeds to step S405.
- step S405 the control unit of the digital watermark embedding device 2 causes the language model token generation unit to execute processing to generate the next token using the language model.
- This next token is constructed by obtaining the language model weight information 21 stored in the storage 14, and for the generated next token, a probability distribution is calculated from the text (a combination of the instruction received in step S401 and the previously generated token). Furthermore, when the probability distribution is calculated for the next token, probability correction is performed for each of the first digital watermark token and the second digital watermark token using processing similar to step S404.
- This processing in step S405 is performed by the processor 12 executing the language model token generation program 16. As a result, the next token is generated using the language model.
- the control unit of the digital watermark embedding device 2 proceeds to step S406.
- step S406 the control unit of the digital watermark embedding device 2 executes a process in which the language model token generation unit determines whether the generated token is an end symbol.
- This process in step S406 is performed by the processor 12 executing the language model token generation program 16. If it is determined in step S406 that the generated token is an end symbol (step S406: YES), the process proceeds to step S407. On the other hand, if it is determined in step S406 that the generated token is not an end symbol (step S406: NO), the process returns to step S402.
- step S407 if it is determined in step S406 that the token generated by the language model token generation unit is an end symbol (step S406: YES), the control unit of the digital watermark embedding device 2 executes processing to transmit the text generated in response to the instruction input by the user 8 to the information input/output terminal 9 held by the user 8. As a result, the text generated in response to the instruction input by the user 8 is transmitted to the information input/output terminal 9 of the user 8.
- the control unit of the digital watermark embedding device 2 terminates the digital watermark embedding processing shown in flowchart 400 of FIG. 4.
- FIG. 5 is a flowchart 500 showing an example of the flow of a digital watermark detection process.
- the digital watermark detection process illustrated in Figure 5 is primarily performed in the digital watermark detection device 3 that constitutes the double digital watermark system 1.
- step S501 the control unit of the digital watermark detection device 3 executes a process of receiving, via the communication unit, the text to be checked for the presence or absence of a digital watermark (hereinafter also referred to as "digital watermark detection target text") that the user 8 has input to the information input/output terminal 9 and that has been transmitted from the information input/output terminal 9.
- digital watermark detection target text a digital watermark that the user 8 has input to the information input/output terminal 9 and that has been transmitted from the information input/output terminal 9.
- the digital watermark detection target text is received via the communication unit.
- step S502 the control unit of the digital watermark detection device 3 causes the first digital watermark token detection processing unit to input the first key 4 received from the first key storage device 5 and the token N tokens before the target token into a hash function to generate a seed value, and executes a process to determine whether the target token belongs to the tokens for which probability is increased based on the generated seed value. Specifically, this determination process is performed by selecting a first digital watermark token from multiple tokens in the token dictionary 20 stored in storage 25 based on the generated seed value, and determining whether the target token is included in those tokens.
- the target token included in this first digital watermark token will hereinafter be referred to as the first detected token.
- step S502 are performed by the processor 23 executing the first digital watermark token detection processing program 27. As a result, it is determined whether the target token belongs to the tokens for which probability is increased based on the seed value generated from the first key 4 and the token N tokens before the target token.
- the control unit of the digital watermark detection device 3 proceeds to step S503.
- step S503 the control unit of the digital watermark detection device 3 causes the second digital watermark token detection processing unit to input the second key 6 received from the second key storage device 7 and the token M tokens before the target token into a hash function to generate a seed value, and executes a process to determine whether the target token belongs to the tokens for which probability is increased based on the generated seed value. Specifically, this determination process is performed by further selecting a second digital watermark token from the first digital watermark token selected in step S502 and determining whether the target token is included in these tokens. The target token included in this second digital watermark token will hereinafter be referred to as the second detected token.
- These processes in step S503 are performed by the processor 23 executing the second digital watermark token detection processing program 28.
- step S503 it is determined whether the target token belongs to the tokens for which probability is increased based on the seed value generated from the second key 6 and the token M tokens before the target token.
- step S504 the control unit of the digital watermark detection device 3 causes the digital watermark determination processing unit to execute processing to determine whether the number of remaining detection target tokens is 0, i.e., whether there are any remaining detection target tokens.
- This processing in step S504 is performed by the processor 23 executing the digital watermark determination processing program 29. If it is determined in step S504 that the number of remaining detection target tokens is 0 and that there are no more (step S504: YES), proceed to step S505. On the other hand, if it is determined in step S504 that the number of remaining detection target tokens is not 0 and that there are still remaining detection target tokens (step S504: NO), return to step S502 again.
- step S505 the control unit of the digital watermark detection device 3 performs a statistical test using the digital watermark determination processing unit to determine the presence or absence of each of the first digital watermark and the second digital watermark based on the first detected token and the number of all tokens contained in the received text, and the number of second detected tokens and first digital watermark tokens, and executes a process to determine the presence or absence of each of the first digital watermark and the second digital watermark based on a z-score that is arbitrarily set as a threshold value.
- the score z1 used to determine the presence or absence of a first digital watermark is calculated using the following formula, given the number of first detected tokens SG_1 obtained as a result of the determination process in step S502 and the total number of tokens T included in the digital watermark detection target text.
- this score z1 is equal to or greater than an arbitrary threshold, the digital watermark determination processing unit determines that the first digital watermark is present in the digital watermark detection target text. On the other hand, if this score z1 is less than an arbitrary threshold, the digital watermark determination processing unit determines that the first digital watermark is not present in the digital watermark detection target text.
- the score z2 used to determine whether or not a second digital watermark is present is calculated using the following formula, given the number of second detected tokens SG_2 obtained as a result of the determination process in step S503 and the number of first detected tokens SG_1.
- this score z2 is equal to or greater than an arbitrary threshold, the digital watermark determination processing unit determines that the second digital watermark is present in the digital watermark detection target text. On the other hand, if this score z2 is less than the arbitrary threshold, the digital watermark determination processing unit determines that the second digital watermark is not present in the digital watermark detection target text.
- step S505 the control unit of the digital watermark detection device 3 proceeds to step S506.
- step S506 the control unit of the digital watermark detection device 3 executes a process of transmitting the determination results regarding the presence or absence of the first digital watermark and the second digital watermark for the digital watermark detection target text sent by the user 8 in step S501 to the information input/output terminal 9 held by the user 8 via the communication unit.
- the determination results regarding the presence or absence of the first digital watermark and the second digital watermark for the digital watermark detection target text are transmitted to the information input/output terminal 9 of the user 8.
- the control unit of the digital watermark detection device 3 terminates the digital watermark detection process shown in flowchart 500 of FIG. 5.
- the double digital watermark system 1 is a system comprising: a digital watermark embedding device 2, which embeds a digital watermark in a token sequence generated by a language model in a process in which the language model generates a token sequence different from the token sequence received from a user 8, using a computer having at least a processor 12 and a memory device (13, 14); and a digital watermark detection device 3, which detects, based on the token sequence received from user 8, that the token sequence was generated by the language model, using a computer having at least a processor 23 and a memory device (24, 25).
- the digital watermark embedding device 2 has a first digital watermark token selection unit that classifies multiple tokens that are generated next from a first token included in a token sequence received from a user 8 and a token sequence generated by a language model into either a first group or a second group using a first key (first key) 4 and at least a hash function corresponding to the first key 4; a second digital watermark token selection unit that receives tokens belonging to the first group classified by the first digital watermark token selection unit and classifies multiple tokens that are generated next from a second token included in a token sequence received from a user 8 and a token sequence generated by a language model into either a third group or a fourth group using a second key (second key) 6 that is different from the first key 4 and at least a hash function corresponding to the second key 6; and a token probability correction unit that increases the probability of tokens belonging to the first group and tokens belonging to the third group.
- the electronic watermark detection device 3 uses a first electronic watermark token detection unit to calculate the number of tokens classified into a first group using a first token contained in a token sequence received from a user 8 and a first key 4, and a second electronic watermark token detection unit to calculate the number of tokens classified into a third group using a second key 6 from the tokens classified into the first group by the first electronic watermark token detection unit, and a digital watermark judgment unit to determine the presence or absence of each of the first and second electronic watermarks by comparing the first score and the second score with a predetermined threshold based on a first score calculated by a statistical test from the number of tokens calculated by the first electronic watermark token detection unit and the total number of tokens contained in the received token sequence, and a second score calculated by a statistical test from the number of tokens calculated by the second electronic watermark token detection unit and the number of tokens classified into the first group by the first electronic watermark token detection unit.
- the digital watermark embedding device 2 constituting the double digital watermarking system 1 sets two different keys, the first key 4 and the second key 6, when embedding a digital watermark in text data generated by a language model. Therefore, as described above, the digital watermark is embedded twice by overlapping the two different digital watermarks, the first digital watermark and the second digital watermark.
- the digital watermark detection device 3 constituting the double digital watermarking system 1 uses the two different keys, the first key 4 and the second key 6, respectively, when detecting the presence or absence of a digital watermark, as described above, to determine the presence or absence of each of the two different digital watermarks, the first digital watermark and the second digital watermark.
- a user 8 of the double digital watermarking system 1 can determine the source of the text data by using the second key 6, even if one of the keys corresponding to the digital watermark, i.e., the first key 4, is leaked.
- the token sequence includes one of text represented by a plurality of letters, Braille, numbers, and/or symbols, and a melody represented by a plurality of musical notes.
- a token string is text represented by a sequence of multiple characters.
- the hash function corresponding to the second key 6 is different from the hash function corresponding to the first key 4.
- the data generated by the language model is text, but the present invention can be applied to generating any data consisting of a token sequence.
- control lines and information lines shown are those considered necessary for explanation, and do not necessarily represent all control lines and information lines necessary for implementation. For example, it is safe to assume that in reality, almost all components are interconnected.
- each functional unit of the double digital watermarking system 1 described above is merely one example.
- the layout of each functional unit can be changed to an optimal layout in terms of the performance, processing efficiency, communication efficiency, etc. of the hardware and software provided in the double digital watermarking system 1.
- the aforementioned configurations, functions, processing units, processing means, etc. may be realized in part or in whole in hardware, for example by designing them as integrated circuits, or may be realized in software by having the processors (12, 23) interpret and execute programs that realize the respective functions.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
Abstract
言語モデルが生成したテキストデータに電子透かしが埋め込まれている場合に、当該電子透かしに対応する一つの鍵が漏洩した後においても、当該テキストデータの生成元を判別することが可能な技術を提供する。 二重電子透かしシステムにおいて、電子透かし埋め込み装置は、第一の電子透かしトークン選定部により、前記ユーザから受信したトークン列及び前記言語モデルが生成したトークン列に含まれる第一のトークンから次に発生する複数のトークンを、第一の鍵と少なくとも前記第一の鍵に対応するハッシュ関数とを用いて第一のグループ又は第二のグループのいずれかに分類し、第二の電子透かしトークン選定部により、前記第一の電子透かしトークン選定部が分類した前記第一のグループに属するトークンを受信し、前記ユーザから受信したトークン列及び前記言語モデルが生成したトークン列に含まれる第二のトークンから次に発生する複数のトークンを、前記第一の鍵と異なる第二の鍵と少なくとも前記第二の鍵に対応するハッシュ関数とを用いて第三のグループ又は第四のグループのいずれかに分類し、トークン確率補正部により、前記第一のグループに属するトークン及び前記第三のグループに属するトークンの確率を増加させる。
Description
本発明は、主に電子透かしシステムに関し、特に、二重電子透かしの埋め込み及び検出を行う技術に関する。
言語モデルが生成する画像やテキスト等のデジタルコンテンツに対して、これらのデータの生成元を判別する技術として、電子透かし技術が知られている(例えば特許文献1~2)。言語モデル由来のデータに対し、生成元の判別を可能にすることは、言語モデルによる誤情報の拡散や悪用等を防ぐ上で非常に重要である。言語モデルでは、生成済みのトークン列から次のトークンを順に予測することで系列データを生成する。このような言語モデルの生成プロセスに着目した電子透かし技術として、言語モデルの所有者と紐づいた鍵を利用する手法が提案されている(例えば非特許文献1)。この手法では、鍵と生成済みのトークン列に含まれる一部のトークンをハッシュ関数に入力し、出力として得られたシード値をもとに、全てのトークン候補を確率増加有りグループと確率増加無しグループに分類する。その後、確率増加有りグループに属するトークンの生成確率を増加させることで、生成するトークン列に対して、鍵に一意に紐づいたトークン出現パターンを電子透かしとして埋め込むことができる。
電子透かしの検出においては、生成時に利用した鍵を再度用いて同様のプロセスを再現し、確率増加有りグループに属するトークンの割合の大きさにより、電子透かしの有無を決定する。具体的には、鍵と検出対象のテキストのトークンを先頭から順にハッシュ関数に入力することで、各検出対象のトークン位置に対応する確率増加有りと確率増加無しのグループを得る。対象のトークンが確率増加有りのグループに属している場合、確率増加有りトークンとしてカウントする。このような操作を全トークンに対して行うことで、確率増加有りグループに属するトークンの割合を計算する。続いて、統計的仮説検定に基づき、電子透かしの有無を確率的に決定する。ここで、棄却する帰無仮説として「与えられたトークン列に該当の鍵による電子透かしは埋め込まれていない」と仮定する。該当の鍵による電子透かしが埋め込まれていない場合、確率分布補正の操作は実行されないため、確率増加有りグループに属するトークンの割合は確率的におよそ半分となる。一方で、透かしが埋め込まれている場合、確率増加有りグループに属するトークンの割合は通常よりも高くなり、zスコアを計算することでこの偏りの度合いを計算することができる。従って、十分に高い閾値を超えるzスコアを得た場合、高い確信度で帰無仮説を棄却し、結果的に電子透かしを検出することができる。
John Kirchenbauer,Jonas Geiping,Yuxin Wen,Jonathan Katz,Ian Miers,and Tom Goldstein. 2023. A watermark for large language models. arXiv preprint arXiv:2301.10226
非特許文献1に記載の技術では、電子透かしの埋め込み及び検出に、単一の鍵が用いられる。そのため、非特許文献1に記載の技術によって電子透かしの埋め込み及び検出を行うと、鍵が漏洩した場合に、本来の鍵の所有者以外の者によって同一の電子透かしが再現されうることから、テキストの生成元を判別することが難しい。
本発明は、上記の課題に鑑みてなされたものであり、言語モデルが生成したテキストデータに電子透かしが埋め込まれている場合に、当該電子透かしに対応する一つの鍵が漏洩した後においても、当該テキストデータの生成元を判別することが可能な技術の提供を目的とする。
本発明による二重電子透かしシステムは、プロセッサと記憶装置とを少なくとも有するコンピュータにより、ユーザから受信したトークン列に応じて言語モデルが当該トークン列と異なるトークン列を生成する過程において、言語モデルが生成したトークン列に電子透かしを埋め込む電子透かし埋め込み装置と、プロセッサと記憶装置とを少なくとも有するコンピュータにより、ユーザから受信したトークン列に基づいて、言語モデルにより生成されたトークン列であることを検出する電子透かし検出装置とを備えるシステムである。電子透かし埋め込み装置は、第一の電子透かしトークン選定部により、ユーザから受信したトークン列及び言語モデルが生成したトークン列に含まれる第一のトークンから次に発生する複数のトークンを、第一の鍵と少なくとも第一の鍵に対応するハッシュ関数とを用いて第一のグループ又は第二のグループのいずれかに分類し、第二の電子透かしトークン選定部により、第一の電子透かしトークン選定部が分類した第一のグループに属するトークンを受信し、ユーザから受信したトークン列及び言語モデルが生成したトークン列に含まれる第二のトークンから次に発生する複数のトークンを、第一の鍵と異なる第二の鍵と少なくとも第二の鍵に対応するハッシュ関数とを用いて第三のグループ又は第四のグループのいずれかに分類し、トークン確率補正部により、第一のグループに属するトークン及び第三のグループに属するトークンの確率を増加させる。電子透かし検出装置は、第一の電子透かしトークン検出部により、ユーザから受信したトークン列に含まれる第一のトークンと第一の鍵とを用いて、第一のグループに分類されるトークンの数を算出し、第二の電子透かしトークン検出部により、第一の電子透かしトークン検出部において第一のグループに分類されたトークンから第二の鍵を用いて第三のグループに分類されるトークンの数を算出し、電子透かし判定部により、第一の電子透かしトークン検出部において算出されたトークンの数と受信したトークン列に含まれる全トークン数から行われる統計的検定により計算される第一のスコアと、第二の電子透かしトークン検出部において算出されたトークンの数と第一の電子透かしトークン検出部において第一のグループに分類されたトークンの数から行われる統計的検定により計算される第二のスコアとに基づいて、所定の閾値と第一のスコア及び第二のスコアとの比較により、第一の電子透かし及び第二の電子透かしのそれぞれの有無を決定する。
その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄、及び図面により明らかにされる。
本発明によれば、言語モデルが生成したテキストデータに電子透かしが埋め込まれている場合に、当該電子透かしに対応する一つの鍵が漏洩した後においても、当該テキストデータの生成元を判別することができる。
以下、本発明の実施形態について、図面を用いて詳細に説明する。ただし、本発明は以下に例示する実施形態の記載内容に限定されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変形した例も含まれる。例えば、下記の実施形態は本発明を詳細に説明したものであり、必ずしも説明に含まれる全ての構成を備えるものに限定されない。
以下に説明する発明の構成において、同一の部分及び/又は要素、あるいは同様な機能を有する部分及び/又は要素には同一の符号を異なる図面間で共通して用い、重複する説明は省略することがある。
また、同一の部分及び/又は要素、あるいは同様な機能を有する部分及び/又は要素が複数存在する場合に、当該複数の部分及び/又は要素を区別するために、同一の符号に異なる添字を付して説明することがある。他方、当該複数の部分及び/又は要素を区別する必要がない場合には、添字を省略して説明することがある。
本明細書等における「第一」、「第二」、「第三」等の表記は、構成要素を識別するために付するものであり、必ずしも、数、順序、もしくはその内容を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
本明細書及び/又は図面において示す各構成の位置、大きさ、形状、範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲等を表していない場合がある。このため、本発明は、必ずしも、本明細書及び/又は図面に開示された位置、大きさ、形状、範囲等に限定されない。
本明細書において単数形で表される構成要素は、特段文脈で明らかに示されない限り、複数形を含むものとする。
また、以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つでよい。
・一つ以上のI/O(Input/Output)インターフェースデバイス。I/O(Input/Output)インターフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのI/Oデバイスは、ユーザーインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力インターフェースデバイスと、表示デバイスのような出力インターフェースデバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。なお、通信インターフェースデバイスが通信に際してアクセスするネットワークとしては、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)、あるいは携帯電話網等を想定しうるが、これらに限定されるものではない。
・一つ以上のI/O(Input/Output)インターフェースデバイス。I/O(Input/Output)インターフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのI/Oデバイスは、ユーザーインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力インターフェースデバイスと、表示デバイスのような出力インターフェースデバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。なお、通信インターフェースデバイスが通信に際してアクセスするネットワークとしては、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)、あるいは携帯電話網等を想定しうるが、これらに限定されるものではない。
また、以下の説明では、「メモリ」は、一つ以上の記憶デバイスの一例である一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
また、以下の説明では、「ストレージ」は、一つ以上の記憶デバイスの一例である一つ以上の永続記憶デバイスでよい。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよく、具体的には、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、NVMe(Non-Volatile Memory Express)ドライブ、又は、SCM(Storage Class Memory)でよい。
また、以下の説明では、「記憶装置」は、メモリとストレージとの少なくともメモリでよい。
また、以下の説明では、演算装置である「プロセッサ」は、一つ以上のプロセッサデバイスでよい。少なくとも一つのプロセッサデバイスは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスでよいが、GPU(Graphics Processing Unit)のような他種のプロセッサデバイスを含んでいてもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも一つのプロセッサデバイスは、処理の一部又は全部を行うハードウェア回路(例えばFPGA(Field-Programmable Gate Array)、CPLD(Complex Programmable Logic Device)、又はASIC(Application Specific Integrated Circuit))といった広義のプロセッサデバイスでもよい。
また、以下の説明では、「xxxデータベース」や「xxxテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよいし(例えば、構造化データでもよいし非構造化データでもよいし)、入力に対する出力を発生するニューラルネットワーク、遺伝的アルゴリズムやランダムフォレストに代表されるような学習モデルでもよい。従って、「xxxデータベース」や「xxxテーブル」を「xxx情報」と換言することができる。また、以下の説明において、各データベースやテーブルの構成は一例であり、一つのデータベースやテーブルは、二つ以上のデータベースやテーブルに分割されてもよいし、二つ以上のデータベースやテーブルの全部又は一部が一つのデータベースやテーブルであってもよい。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶装置及び/又はインターフェース装置等を用いながら行うため、処理の主語が、プロセッサ(あるいは、そのプロセッサを有するコントローラのようなデバイス)とされてもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な(例えば非一時的な)記録媒体であってもよい。また、以下の説明において、二つ以上のプログラムが一つのプログラムとして実現されてもよいし、一つのプログラムが二つ以上のプログラムとして実現されてもよい。
また、以下の説明では、「二重電子透かしシステム」は、物理的な計算リソース群(例えば、クラウド基盤)上に実現されたシステム(例えば、クラウドコンピューティングシステム)でもよいし、一つ以上の物理的な計算機で構成されたシステム(例えば、オンプレミス型のシステム)でもよい。二重電子透かしシステムが表示用情報を「表示する」ことは、計算機が有する表示デバイスに表示用情報を表示することであってもよいし、計算機が表示用計算機に表示用情報を送信することであってもよい(後者の場合は表示用計算機によって表示用情報が表示される)。
<システム構成例>
まず、本実施形態に係る二重電子透かしシステム1の構成例について、図1~3を用いて説明する。
まず、本実施形態に係る二重電子透かしシステム1の構成例について、図1~3を用いて説明する。
(二重電子透かしシステム1の構成例)
図1は、二重電子透かしシステム1をオンラインテキスト生成サービスに適用した場合のシステム全体の構成の一例を示した図である。
図1は、二重電子透かしシステム1をオンラインテキスト生成サービスに適用した場合のシステム全体の構成の一例を示した図である。
二重電子透かしシステム1は、二つの異なる鍵を用いて、二重に電子透かしの埋め込みを行い、検出時においても二つの電子透かしそれぞれについて有無の判定を行うことが可能なコンピュータシステムであり、それぞれ後述の各構成を備える複数のコンピュータ装置又はサーバ装置によって実現される。
二重電子透かしシステム1は、図1に例示したように、電子透かし埋め込み装置2と、電子透かし検出装置3と、第一鍵4を保管する第一鍵記憶装置5と、第二鍵6を保管する第二鍵記憶装置7とを少なくとも含んで構成される。このうち、電子透かし埋め込み装置2及び電子透かし検出装置3は、それぞれ、図1に例示したように、第一鍵記憶装置5及び第二鍵記憶装置7と専用回線等の適宜な通信ネットワークを介して相互にデータ通信可能に接続されている。なお、電子透かし埋め込み装置2、電子透かし検出装置3、第一鍵記憶装置5及び第二鍵記憶装置7と、通信ネットワークとは、それぞれ周知の通信用機器(不図示)を介して有線で接続されるが、無線で接続されてもよい。
また、電子透かし埋め込み装置2及び電子透かし検出装置3に対しては、図1に例示したように、二重電子透かしシステム1のユーザ8の各々が保有するラップトップPCやタブレット、スマートフォン等の情報入出力端末9が、インターネットや専用回線等の適宜な通信ネットワーク(以下、単に「ネットワーク」とも称する)10を介して相互にデータ通信可能に接続されている。なお、各情報入出力端末9とネットワーク10とは、それぞれ無線で接続されるが、有線で接続されてもよい。
電子透かし埋め込み装置2は、二重電子透かしシステム1のユーザ8が情報入出力端末9から送信したテキスト生成のための指示文を受信し、電子透かしを埋め込んだ生成テキストを返信するサーバ装置である。この電子透かし埋め込み装置2は、第一鍵記憶装置5から受信した第一鍵4と、第二鍵記憶装置7から受信した第二鍵6とを用いて、ユーザ8に返信する生成テキストに対して二つの電子透かしの埋め込みを行う。
電子透かし検出装置3は、二重電子透かしシステム1のユーザ8が情報入出力端末9から送信した電子透かし検出対象のテキストを受信し、二つの電子透かしの検出結果を返信するサーバ装置である。この電子透かし検出装置3は、第一鍵記憶装置5から受信した第一鍵4と、第二鍵記憶装置7から受信した第二鍵6とを用いて、受信した電子透かし検出対象のテキストに各電子透かしが埋め込まれているか否かを検証し、その結果を返信する。
第一鍵記憶装置5は、第一鍵4を保管するサーバ装置である。この第一鍵記憶装置5は、電子透かし埋め込み時においては、電子透かし埋め込み装置2に第一鍵4を送信し、電子透かし検出時においては、電子透かし検出装置3に第一鍵4を送信するために利用される。
第二鍵記憶装置7は、第二鍵6を保管するサーバ装置である。この第二鍵記憶装置7は、電子透かし埋め込み時においては、電子透かし埋め込み装置2に第二鍵6を送信し、電子透かし検出時においては、電子透かし検出装置3に第二鍵6を送信するために利用される。
情報入出力端末9は、電子透かしの埋め込み時には、ユーザ8によるテキスト生成のための指示文の入力操作を受け付けて、電子透かし埋め込み装置2に送信する。また、情報入出力端末9は、電子透かし検出時には、ユーザ8による電子透かし検出対象のテキストの選択操作を受け付けて、電子透かし検出装置3に送信する。
なお、電子透かし埋め込み装置2及び/又は電子透かし検出装置3に対しては、ネットワーク10を介して他のコンピュータ装置やサーバ装置等(以下、「他の装置」とも称する)がデータ通信可能に接続されていてもよい。この場合、当該他の装置と、ネットワーク10とは、周知の通信用機器(不図示)を介して有線で接続されてもよいし、無線で接続されてもよい。
また、本実施形態では、二重電子透かしシステム1を構成する電子透かし埋め込み装置2や電子透かし検出装置3、第一鍵記憶装置5、第二鍵記憶装置7が別々の装置からなるものとして説明した。しかしながら、二重電子透かしシステム1を構成するこれらの装置(2、3、5、7)は、同一の装置によって構成されていてもよい。この場合、二重電子透かしシステム1は、例えば、これらの装置(2、3、5、7)の一部又は全部を含むコンピュータシステムとして構成されていてもよい。また、例えば、二重電子透かしシステム1は、これらの装置(2、3、5、7)が担う一部又は全部の機能を含む形で構成されていてもよい。
(電子透かし埋め込み装置2の構成例)
次に、二重電子透かしシステム1を構成する電子透かし埋め込み装置2の構成の一例について、図2を用いて説明する。
次に、二重電子透かしシステム1を構成する電子透かし埋め込み装置2の構成の一例について、図2を用いて説明する。
図2は、電子透かし埋め込み装置2の構成の一例を概略的に示した図である。
この電子透かし埋め込み装置2は、図2に例示したように、メモリ13及びストレージ14を含む記憶装置と、少なくとも通信インターフェース(以下、「通信I/F」とも称する)15を含むインターフェース装置と、それらに接続されたプロセッサ12とを少なくとも有する計算機によって実現される。また、この電子透かし埋め込み装置2において、インターフェース装置は、入力インターフェース(以下、「入力I/F」とも称する)及び/又は出力インターフェース(以下、「出力I/F」とも称する)を含んでいてもよい。
以下の説明は、電子透かし埋め込み装置2が、一つ以上のプロセッサ12、一つ以上のメモリ13、一つ以上のストレージ14、一つ以上の通信インターフェース15、一つ以上の入力インターフェース(不図示)、一つ以上の出力インターフェース(不図示)、及びそれらを相互に接続するバス11を備える一台の汎用コンピュータ装置により実現されているものとして行う。
ストレージ14は、フラッシュメモリ(Flash Memory)のような不揮発性記憶素子からなる補助記憶デバイスである。このストレージ14の具体例としては、SSD(Solid State Drive)やHDD(Hard Disk Drive)等が挙げられる。ストレージ14は、図2に例示したように、後述する言語モデルによるトークン生成プログラム(以下、「言語モデルによるトークン生成PG」とも称する)16や、第一電子透かしトークン選定処理プログラム(以下、「第一電子透かしトークン選定処理PG」とも称する)17、第二電子透かしトークン選定処理プログラム(以下、「第二電子透かしトークン選定処理PG」とも称する)18、トークン確率補正処理プログラム(以下、「トークン確率補正処理PG」とも称する)19等の各種プログラムを格納する。これらのプログラムは、電子透かし埋め込み装置2として必要な機能を実装するためのコンピュータプログラムである。
すなわち、言語モデルによるトークン生成プログラム16や第一電子透かしトークン選定処理プログラム17、第二電子透かしトークン選定処理プログラム18、トークン確率補正処理プログラム19がプロセッサ12により実行されることで、後述する言語モデルによるトークン生成部や第一電子透かしトークン選定処理部、第二電子透かしトークン選定処理部、トークン確率補正処理部(いずれも不図示)等の、電子透かし埋め込み装置2が有する各機能部が担う機能が実現される。換言すると、言語モデルによるトークン生成プログラム16や第一電子透かしトークン選定処理プログラム17、第二電子透かしトークン選定処理プログラム18、トークン確率補正処理プログラム19がプロセッサ12により実行されることで、図4に関連して後述する、二重電子透かしの埋め込みに係る処理(以下、「電子透かし埋め込み処理」とも称する)を含む各種処理が行われる。
なお、上記の各種プログラムは、CD-ROMやフラッシュメモリ等の各種リムーバブルメディア又はネットワーク10を介して電子透かし埋め込み装置2に提供され、非一時的記憶媒体である不揮発性のストレージ14に格納される。そのため、電子透かし埋め込み装置2は、当該リムーバブルメディアからデータを読み込むためのインターフェースを有することが好ましい。
また、上記の各種プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えばプログラム配布計算機や、計算機が読み取り可能な記録媒体等であってもよい。また、上記の各種プログラムは、デバイスドライバ、オペレーティングシステム、それらの上位層に位置する各種アプリケーションプログラム、また、これらのプログラムに共通機能を提供するライブラリによって構成されてもよい。更に、二つ以上のプログラムが一つの当該プログラムとして実現されてもよいし、一つの当該プログラムが二つ以上のプログラムとして実現されてもよい。
また、ストレージ14は、図2に例示したように、トークン辞書20や言語モデルの重み情報21を少なくとも含む各種情報を格納する。
メモリ13は、主にRAM(Random Access Memory)のような揮発性記憶素子からなる主記憶デバイスである。また、メモリ13は、不揮発性記憶素子からなるROMを含む。ROMは、不変のプログラム(例えば、BIOS)等を格納する。このメモリ13には、ストレージ14から読み込んだ各種情報を表すデータや、通信インターフェース15及び/又は入力インターフェースを介して取得した各種データが一時的に保持される。
また、このメモリ13には、図2に例示したように、前述の言語モデルによるトークン生成プログラム16や第一電子透かしトークン選定処理プログラム17、第二電子透かしトークン選定処理プログラム18、トークン確率補正処理プログラム19がプロセッサ12により実行される際に、ストレージ14に格納されたこれらのプログラム(16~19)が読み込まれて一時的に保持される。
プロセッサ12は、CPU(Central Processing Unit)及び各種コプロセッサ(Co-processor)等のプロセッサデバイスである。このプロセッサ12は、上記のプログラム(16~19)を含む各種コンピュータプログラムをメモリ13に呼び出して実行することにより、電子透かし埋め込み装置2自体の統括制御を行うとともに、演算処理や判定処理等の各種処理を行う制御部(不図示)を司る。
インターフェース装置は、後述の通信部を司る通信インターフェース15と、後述の入力部を司る入力インターフェースと、後述の出力部を司る出力インターフェースとを含む。
通信インターフェース15は、所定のプロトコルに従って、第一鍵記憶装置5や第二鍵記憶装置7、二重電子透かしシステム1の各ユーザ8が保有する情報入出力端末9等の他の装置との通信を制御するネットワークインターフェース装置である。
入力インターフェースは、例えばキーボードやマウス、タッチパネル等といった入力装置(不図示)が接続され、ユーザ8からの入力を受けるインターフェースである。
出力インターフェースは、例えば液晶ディスプレイやタッチスクリーン等の各種の表示装置や、プリンタ等の出力装置(不図示)が接続され、プログラムの実行結果をユーザ8が視認可能な形式で出力するインターフェースである。
なお、電子透かし埋め込み装置2は、独立した装置である他、組み込み機器であってもよい。
(電子透かし埋め込み装置2の機能ブロック例)
次に、図2に例示した電子透かし埋め込み装置2が備える各種機能のブロックの一例について説明する。なお、以下に説明する各ブロックは、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
次に、図2に例示した電子透かし埋め込み装置2が備える各種機能のブロックの一例について説明する。なお、以下に説明する各ブロックは、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
電子透かし埋め込み装置2は、主に前述のプロセッサ12により実現される制御部(不図示)と、前述の記憶装置(13、14)により実現される記憶部(不図示)と、前述の通信インターフェース15により実現される通信部(不図示)と、前述の入力インターフェース及び出力インターフェースにより実現されるユーザーインターフェース部(不図示)との各機能ブロックを備えて構成される。
制御部は、記憶部が格納しているプログラムやデータ、及び、通信部により取得されたデータに基づいて各種データ処理を実行する。制御部は、記憶部及び通信部のインターフェースとしても機能する。
制御部は、言語モデルによるトークン生成部、第一電子透かしトークン選定処理部、第二電子透かしトークン選定処理部及びトークン確率補正処理部(いずれも不図示)の各機能ブロックを有する。
言語モデルによるトークン生成部は、言語モデルによるトークンを生成する処理を実行する。言語モデルによるトークン生成部により実行される当該処理の詳細は、図4に関連して後述する。
第一電子透かしトークン選定処理部は、第一電子透かしトークンを選定する処理を実行する。第一電子透かしトークン選定処理部により実行される当該処理の詳細は、図4に関連して後述する。
第二電子透かしトークン選定処理部は、第二電子透かしトークンを選定する処理を実行する。第二電子透かしトークン選定処理部により実行される当該処理の詳細は、図4に関連して後述する。
トークン確率補正処理部は、トークン確率を補正する処理を実行する。トークン確率補正処理部により実行される当該処理の詳細は、図4に関連して後述する。
制御部は、プロセッサ12を用いて構成され、前述の言語モデルによるトークン生成プログラム16や第一電子透かしトークン選定処理プログラム17、第二電子透かしトークン選定処理プログラム18、トークン確率補正処理プログラム19を実行することによって、これらの機能ブロックを実現することができる。なお、プロセッサ12の代わりに、例えばFPGA(Field-Programmable Gate Array)やASIC(Application Specific Integrated Circuit)等の論理回路を用いて制御部を構成してもよい。また、プロセッサ12と論理回路との組合せによって制御部を構成してもよい。
記憶部は、例えばメモリ13及びストレージ14からなる記憶装置を用いて構成されており、制御部に各種処理命令を供給するプログラム、及び制御部が実行する処理において用いられる各種情報を表すデータを格納する。
記憶部は、前述のトークン辞書20を管理するデータベースや、言語モデルの重み情報21を管理するデータベースを少なくとも格納する。
制御部は、これらのデータベースが管理する各種情報を表すデータを記憶部に読み書きすることで、前述の電子透かし埋め込み処理(図4に関連して詳細後述)を実行することができる。
通信部は、ネットワーク10を介して行われる、情報入出力端末9や他の装置等との通信処理を担当する。通信部は、例えばNIC(Network Interface Card)やHBA(Host Bus Adapter)等を用いて構成される。
ユーザーインターフェース部は、入力部及び出力部の各機能ブロックを含んで構成される。
入力部は、ユーザーインターフェースに関する処理のうち、ユーザ8からの入力操作の受け付け等、入力に関する処理を担当する。入力部は、例えばキーボードやマウス、タッチパネル等といった入力装置を用いて構成され、ユーザ8による各種操作を検出する。
出力部は、ユーザーインターフェースに関する処理のうち、表示装置への各種画面の表示や音声出力等、出力に関する処理を担当する。出力部は、例えば液晶ディスプレイやタッチスクリーン等の各種の表示装置を用いて構成される。
なお、例えば、情報入出力端末9のような別の外部機器から電子透かし埋め込み装置2に対してリモートログインを行う場合や、通信インターフェース15を介して、外部機器からの入力情報の受け付けや、外部機器への出力情報の提供を行う場合等には、入力部及び/又は出力部の搭載は必須ではない。この場合、電子透かし埋め込み装置2は、ウェブサーバの機能を有することで、所定のプロトコルによるアクセスを外部機器から受け付けてもよい。
すなわち、電子透かし埋め込み装置2の各構成要素は、プロセッサ12、メモリ13やストレージ14といった記憶装置、それらを連結するバス11やインターフェース装置(15)を含むハードウェアと、記憶装置(13、14)に格納され、演算器(プロセッサ12)に処理命令を供給するソフトウェアによって実現される。
電子透かし埋め込み装置2の機能に関する上記の説明は、電子透かし埋め込み装置2の各機能が一台のコンピュータ装置により一体的に実現されているものとして行った。しかしながら、これらの各機能は、相互に接続された複数台のコンピュータ装置及び/又はサーバ装置によって実現されてもよい。また、電子透かし埋め込み装置2は、ラップトップPC等の汎用コンピュータ装置と、これにインストールされたウェブブラウザとを含む構成であってもよいし、ウェブサーバや各種携帯機器を含む構成であってもよい。
電子透かし埋め込み装置2は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。例えば、言語モデルによるトークン生成部や第一電子透かしトークン選定処理部、第二電子透かしトークン選定処理部、トークン確率補正処理部等の機能部は、各々別個の物理的又は論理的な計算機上で動作するものであってよく、また、複数が組み合わされて一つの物理的又は論理的な計算機上で動作するものであってもよい。
また、上記の各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
また、電子透かし埋め込み装置2が、上記の各機能に加えて、更に別の機能を備えていてもよい。例えば、電子透かし埋め込み装置2は、前述したように、他の装置が備える各種機能の一部を含む形で構成されていてもよい。
(電子透かし検出装置3の構成例)
次に、二重電子透かしシステム1を構成する電子透かし検出装置3の構成の一例について、図3を用いて説明する。
次に、二重電子透かしシステム1を構成する電子透かし検出装置3の構成の一例について、図3を用いて説明する。
図3は、電子透かし検出装置3の構成の一例を概略的に示した図である。
この電子透かし検出装置3は、図3に例示したように、メモリ24及びストレージ25を含む記憶装置と、少なくとも通信インターフェース(以下、「通信I/F」とも称する)26を含むインターフェース装置と、それらに接続されたプロセッサ23とを少なくとも有する計算機によって実現される。また、この電子透かし検出装置3において、インターフェース装置は、入力インターフェース(以下、「入力I/F」とも称する)及び/又は出力インターフェース(以下、「出力I/F」とも称する)を含んでいてもよい。
以下の説明は、電子透かし検出装置3が、一つ以上のプロセッサ23、一つ以上のメモリ24、一つ以上のストレージ25、一つ以上の通信インターフェース26、一つ以上の入力インターフェース(不図示)、一つ以上の出力インターフェース(不図示)、及びそれらを相互に接続するバス22を備える一台の汎用コンピュータ装置により実現されているものとして行う。
ストレージ25は、フラッシュメモリ(Flash Memory)のような不揮発性記憶素子からなる補助記憶デバイスである。このストレージ25の具体例としては、SSD(Solid State Drive)やHDD(Hard Disk Drive)等が挙げられる。ストレージ25は、図3に例示したように、後述する第一電子透かしトークン検出処理プログラム(以下、「第一電子透かしトークン検出処理PG」とも称する)27や、第二電子透かしトークン検出処理プログラム(以下、「第二電子透かしトークン検出処理PG」とも称する)28、電子透かし判定処理プログラム(以下、「電子透かし判定処理PG」とも称する)29等の各種プログラムを格納する。これらのプログラムは、電子透かし検出装置3として必要な機能を実装するためのコンピュータプログラムである。
すなわち、第一電子透かしトークン検出処理プログラム27や第二電子透かしトークン検出処理プログラム28、電子透かし判定処理プログラム29がプロセッサ23により実行されることで、後述する第一電子透かしトークン検出処理部や第二電子透かしトークン検出処理部、電子透かし判定処理部等の、電子透かし検出装置3が有する各機能部が担う機能が実現される。換言すると、第一電子透かしトークン検出処理プログラム27や第二電子透かしトークン検出処理プログラム28、電子透かし判定処理プログラム29等を含む各種プログラムがプロセッサ23により実行されることで、図5に関連して後述する、二重電子透かしの検出に係る処理(以下、「電子透かし検出処理」とも称する)を含む各種処理が行われる。
なお、上記の各種プログラムは、CD-ROMやフラッシュメモリ等の各種リムーバブルメディア又はネットワーク10を介して電子透かし検出装置3に提供され、非一時的記憶媒体である不揮発性のストレージ25に格納される。そのため、電子透かし検出装置3は、当該リムーバブルメディアからデータを読み込むためのインターフェースを有することが好ましい。
また、上記の各種プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えばプログラム配布計算機や、計算機が読み取り可能な記録媒体等であってもよい。また、上記の各種プログラムは、デバイスドライバ、オペレーティングシステム、それらの上位層に位置する各種アプリケーションプログラム、また、これらのプログラムに共通機能を提供するライブラリによって構成されてもよい。更に、二つ以上のプログラムが一つの当該プログラムとして実現されてもよいし、一つの当該プログラムが二つ以上のプログラムとして実現されてもよい。
また、ストレージ25は、図3に例示したように、トークン辞書20を少なくとも含む各種情報を格納する。
メモリ24は、主にRAM(Random Access Memory)のような揮発性記憶素子からなる主記憶デバイスである。また、メモリ24は、不揮発性記憶素子からなるROMを含む。ROMは、不変のプログラム(例えば、BIOS)等を格納する。このメモリ24には、ストレージ25から読み込んだ各種情報を表すデータや、通信インターフェース26及び/又は入力インターフェースを介して取得した各種データが一時的に保持される。
また、このメモリ24には、図3に例示したように、前述の第一電子透かしトークン検出処理プログラム27や第二電子透かしトークン検出処理プログラム28、電子透かし判定処理プログラム29がプロセッサ23により実行される際に、ストレージ25に格納されたこれらのプログラム(27~29)が読み込まれて一時的に保持される。
プロセッサ23は、CPU(Central Processing Unit)及び各種コプロセッサ(Co-processor)等のプロセッサデバイスである。このプロセッサ23は、上記の第一電子透かしトークン検出処理プログラム27や第二電子透かしトークン検出処理プログラム28、電子透かし判定処理プログラム29等を含む各種コンピュータプログラムをメモリ24に呼び出して実行することにより、電子透かし検出装置3自体の統括制御を行うとともに、演算処理や判定処理等の各種処理を行う制御部(不図示)を司る。
インターフェース装置は、後述の通信部を司る通信インターフェース26と、後述の入力部を司る入力インターフェースと、後述の出力部を司る出力インターフェースとを含む。
通信インターフェース26は、所定のプロトコルに従って、第一鍵記憶装置5や第二鍵記憶装置7、二重電子透かしシステム1の各ユーザ8が保有する情報入出力端末9等の他の装置との通信を制御するネットワークインターフェース装置である。
入力インターフェースは、例えばキーボードやマウス、タッチパネル等といった入力装置(不図示)が接続され、ユーザ8からの入力を受けるインターフェースである。
出力インターフェースは、例えば液晶ディスプレイやタッチスクリーン等の各種の表示装置や、プリンタ等の出力装置(不図示)が接続され、プログラムの実行結果をユーザ8が視認可能な形式で出力するインターフェースである。
なお、電子透かし埋め込み装置2は、独立した装置である他、組み込み機器であってもよい。
(電子透かし検出装置3の機能ブロック例)
次に、図3に例示した電子透かし検出装置3が備える各種機能のブロックの一例について説明する。なお、以下に説明する各ブロックは、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
次に、図3に例示した電子透かし検出装置3が備える各種機能のブロックの一例について説明する。なお、以下に説明する各ブロックは、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
電子透かし検出装置3は、主に前述のプロセッサ23により実現される制御部(不図示)と、前述の記憶装置(24、25)により実現される記憶部(不図示)と、前述の通信インターフェース26により実現される通信部(不図示)と、前述の入力インターフェース及び出力インターフェースにより実現されるユーザーインターフェース部(不図示)との各機能ブロックを備えて構成される。
制御部は、記憶部が格納しているプログラムやデータ、及び、通信部により取得されたデータに基づいて各種データ処理を実行する。制御部は、記憶部及び通信部のインターフェースとしても機能する。
制御部は、第一電子透かしトークン検出処理部、第二電子透かしトークン検出処理部及び電子透かし判定処理部(いずれも不図示)の各機能ブロックを有する。
第一電子透かしトークン検出処理部は、第一電子透かしに係るトークンを検出する処理を実行する。第一電子透かしトークン検出処理部により実行される当該処理の詳細は、図5に関連して後述する。
第二電子透かしトークン検出処理部は、第二電子透かしに係るトークンを検出する処理を実行する。第二電子透かしトークン検出処理部により実行される当該処理の詳細は、図5に関連して後述する。
電子透かし判定処理部は、二重電子透かしの各々について有無を判定する処理を実行する。電子透かし判定処理部により実行される当該処理の詳細は、図5に関連して後述する。
制御部は、プロセッサ23を用いて構成され、前述の第一電子透かしトークン検出処理プログラム27や第二電子透かしトークン検出処理プログラム28、電子透かし判定処理プログラム29を実行することによって、これらの機能ブロックを実現することができる。なお、プロセッサ23の代わりに、例えばFPGA(Field-Programmable Gate Array)やASIC(Application Specific Integrated Circuit)等の論理回路を用いて制御部を構成してもよい。また、プロセッサ23と論理回路との組合せによって制御部を構成してもよい。
記憶部は、例えばメモリ24及びストレージ25からなる記憶装置を用いて構成されており、制御部に各種処理命令を供給するプログラム、及び制御部が実行する処理において用いられる各種情報を表すデータを格納する。
記憶部は、前述のトークン辞書20を管理するデータベースを少なくとも格納する。
制御部は、当該データベースが管理する各種情報を表すデータを記憶部に読み書きすることで、前述の電子透かし検出処理(図5に関連して詳細後述)を含む各種処理を実行することができる。
通信部は、ネットワーク10を介して行われる、情報入出力端末9や他の装置等との通信処理を担当する。通信部は、例えばNIC(Network Interface Card)やHBA(Host Bus Adapter)等を用いて構成される。
ユーザーインターフェース部は、入力部及び出力部の各機能ブロックを含んで構成される。
入力部は、ユーザーインターフェースに関する処理のうち、ユーザ8からの入力操作の受け付け等、入力に関する処理を担当する。入力部は、例えばキーボードやマウス、タッチパネル等といった入力装置を用いて構成され、ユーザ8による各種操作を検出する。
出力部は、ユーザーインターフェースに関する処理のうち、表示装置への各種画面の表示や音声出力等、出力に関する処理を担当する。出力部は、例えば液晶ディスプレイやタッチスクリーン等の各種の表示装置を用いて構成される。
なお、例えば、情報入出力端末9のような別の外部機器から電子透かし検出装置3に対してリモートログインを行う場合や、通信インターフェース26を介して、外部機器からの入力情報の受け付けや、外部機器への出力情報の提供を行う場合等には、入力部及び/又は出力部の搭載は必須ではない。この場合、電子透かし検出装置3は、ウェブサーバの機能を有することで、所定のプロトコルによるアクセスを外部機器から受け付けてもよい。
すなわち、電子透かし検出装置3の各構成要素は、プロセッサ23、メモリ24やストレージ25といった記憶装置、それらを連結するバス22やインターフェース装置(26)を含むハードウェアと、記憶装置(24、25)に格納され、演算器(プロセッサ23)に処理命令を供給するソフトウェアによって実現される。
電子透かし検出装置3の機能に関する上記の説明は、電子透かし検出装置3の各機能が一台のコンピュータ装置により一体的に実現されているものとして行った。しかしながら、これらの各機能は、相互に接続された複数台のコンピュータ装置及び/又はサーバ装置によって実現されてもよい。また、電子透かし検出装置3は、ラップトップPC等の汎用コンピュータ装置と、これにインストールされたウェブブラウザとを含む構成であってもよいし、ウェブサーバや各種携帯機器を含む構成であってもよい。
電子透かし検出装置3は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。例えば、第一電子透かしトークン検出処理部や第二電子透かしトークン検出処理部、電子透かし判定処理部等の機能部は、各々別個の物理的又は論理的な計算機上で動作するものであってよく、また、複数が組み合わされて一つの物理的又は論理的な計算機上で動作するものであってもよい。
また、上記の各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
また、電子透かし検出装置3が、上記の各機能に加えて、更に別の機能を備えていてもよい。例えば、電子透かし検出装置3は、前述したように、他の装置が備える各種機能の一部を含む形で構成されていてもよい。
<処理フロー例>
次に、二重電子透かしシステム1で実行される電子透かし埋め込み処理及び電子透かし検出処理の一連の流れについて、図4~5を用いて説明する。
次に、二重電子透かしシステム1で実行される電子透かし埋め込み処理及び電子透かし検出処理の一連の流れについて、図4~5を用いて説明する。
(電子透かし埋め込み処理)
図4は、電子透かし埋め込み処理の流れの一例を示したフローチャート400である。
図4は、電子透かし埋め込み処理の流れの一例を示したフローチャート400である。
図4に例示した電子透かし埋め込み処理は、主に二重電子透かしシステム1を構成する電子透かし埋め込み装置2において実行される処理である。
ステップS401において、電子透かし埋め込み装置2の制御部は、ユーザ8が情報入出力端末9に対して入力し、当該情報入出力端末9から送信したテキスト生成のための指示文を、通信部を介して受信する処理を実行する。これにより、当該指示文が通信部を介して受信される。電子透かし埋め込み装置2の制御部は、ステップS401による処理が完了すると、ステップS402に進む。
ステップS402において、電子透かし埋め込み装置2の制御部は、言語モデルによるトークン生成部により、第一鍵記憶装置5から受信した第一鍵4と、テキスト(ステップS401で受信された指示文と、生成済みのトークンとを結合したもの)の最後尾からN個前のトークンとからシード値を生成し、第一電子透かしトークン選定処理部により、生成されたシード値に基づいて、ストレージ14内のトークン辞書20に格納された複数のトークンから確率増加処理を行う一部のトークン(以下、これらのトークンを「第一電子透かしトークン」と称する)を選定する処理を実行する。なお、当該シード値は、言語モデルによるトークン生成部が、当該テキストの最後尾からN個前のトークンをハッシュ関数に入力することで生成される。また、その際にハッシュ関数に入力されるトークンの数は、単一であってもよいし、複数であってもよい。すなわち、第一電子透かしトークン選定処理部は、当該テキストから複数のトークンを選択してハッシュ関数に入力することもできる。ステップS402におけるこれらの処理は、言語モデルによるトークン生成プログラム16及び第一電子透かしトークン選定処理プログラム17をプロセッサ12が実行することでなされる。これにより、第一鍵4と、テキストの最後尾からN個前のトークンとからシード値が生成され、生成されたシード値に基づいて第一電子透かしトークンが選定される。電子透かし埋め込み装置2の制御部は、ステップS402による処理が完了すると、ステップS403に進む。
ステップS403において、電子透かし埋め込み装置2の制御部は、言語モデルによるトークン生成部により、第二鍵記憶装置7から受信した第二鍵6と、テキスト(ステップS401で受信された指示文と、生成済みのトークンとを結合したもの)の最後尾からM個前のトークンとからシード値を生成し、第二電子透かしトークン選定処理部により、生成されたシード値に基づいて、ステップS402で選定された第一電子透かしトークンから更に確率増加処理を行う一部のトークン(以下、これらのトークンを「第二電子透かしトークン」と称する)を選定する処理を実行する。なお、当該シード値は、言語モデルによるトークン生成部が、当該テキストの最後尾からM個前のトークンをハッシュ関数に入力することで生成される。また、その際にハッシュ関数に入力されるトークンの数は、単一であってもよいし、複数であってもよい。すなわち、第二電子透かしトークン選定処理部は、当該テキストから複数のトークンを選択してハッシュ関数に入力することもできる。ステップS403におけるこれらの処理は、言語モデルによるトークン生成プログラム16及び第二電子透かしトークン選定処理プログラム18をプロセッサ12が実行することでなされる。これにより、第二鍵6と、テキストの最後尾からM個前のトークンとからシード値が生成され、生成されたシード値に基づいて第二電子透かしトークンが選定される。電子透かし埋め込み装置2の制御部は、ステップS403による処理が完了すると、ステップS404に進む。
ステップS404において、電子透かし埋め込み装置2の制御部は、トークン確率補正処理部により、ステップS402で選定された第一電子透かしトークンと、ステップS403で選定された第二電子透かしトークンとのそれぞれについて、トークンの生成確率に係る確率分布を補正する処理を実行する。当該補正は、具体的には、第一電子透かしトークン及び第二電子透かしトークンのそれぞれについて、言語モデルによるトークン生成部が算出したトークン生成確率分布を取得し、取得されたトークン生成確率分布を基に、任意の値で確率を増加させることで行われる。ステップS404におけるこの処理は、トークン確率補正処理プログラム19をプロセッサ12が実行することでなされる。これにより、第一電子透かしトークン及び第二電子透かしトークンの確率分布が補正される。電子透かし埋め込み装置2の制御部は、ステップS404による処理が完了すると、ステップS405に進む。
ステップS405において、電子透かし埋め込み装置2の制御部は、言語モデルによるトークン生成部により、次のトークンを引き続き言語モデルによって生成する処理を実行する。この次のトークンは、ストレージ14に格納された言語モデルの重み情報21を取得することで構築され、また、生成された当該次のトークンについては、テキスト(ステップS401で受信された指示文と、生成済みのトークンとを結合したもの)から確率分布が計算される。更に、当該次のトークンについて確率分布の計算が行われる際には、ステップS404と同様の処理により、第一電子透かしトークン及び第二電子透かしトークンのそれぞれについて、確率補正が行われる。ステップS405におけるこの処理は、言語モデルによるトークン生成プログラム16をプロセッサ12が実行することでなされる。これにより、次のトークンが引き続き言語モデルにより生成される。電子透かし埋め込み装置2の制御部は、ステップS405による処理が完了すると、ステップS406に進む。
ステップS406において、電子透かし埋め込み装置2の制御部は、言語モデルによるトークン生成部により、生成したトークンが終了記号か否かを判定する処理を実行する。ステップS406におけるこの処理は、言語モデルによるトークン生成プログラム16をプロセッサ12が実行することでなされる。生成したトークンが終了記号であるとステップS406で判定された場合(ステップS406:YES)は、ステップS407に進む。他方、生成したトークンが終了記号でないとステップS406で判定された場合(ステップS406:NO)は、再びステップS402に戻る。
ステップS407において、電子透かし埋め込み装置2の制御部は、言語モデルによるトークン生成部によって生成されたトークンが終了記号であるとステップS406で判定された場合(ステップS406:YES)、当該ユーザ8が入力した指示文に応じて生成したテキストを、当該ユーザ8が保有する情報入出力端末9に送信する処理を実行する。これにより、当該ユーザ8が入力した指示文に応じて生成されたテキストが、当該ユーザ8の情報入出力端末9に送信される。電子透かし埋め込み装置2の制御部は、ステップS407による処理が完了すると、図4のフローチャート400に示した電子透かし埋め込み処理を終了する。
(電子透かし検出処理)
図5は、電子透かし検出処理の流れの一例を示したフローチャート500である。
図5は、電子透かし検出処理の流れの一例を示したフローチャート500である。
図5に例示した電子透かし検出処理は、主に二重電子透かしシステム1を構成する電子透かし検出装置3において実行される処理である。
ステップS501において、電子透かし検出装置3の制御部は、ユーザ8が情報入出力端末9に対して入力し、当該情報入出力端末9から送信した、電子透かしの有無を調べる対象のテキスト(以下、「電子透かし検出対象テキスト」とも称する)を、通信部を介して受信する処理を実行する。これにより、当該電子透かし検出対象テキストが通信部を介して受信される。電子透かし検出装置3の制御部は、ステップS501による処理が完了すると、ステップS502に進む。
ステップS502において、電子透かし検出装置3の制御部は、第一電子透かしトークン検出処理部により、第一鍵記憶装置5から受信した第一鍵4と、検出対象のトークンからN個前のトークンとをハッシュ関数に入力してシード値を生成し、生成されたシード値に基づいて、検出対象のトークンが確率増加させるトークンに属するか否かを判定する処理を実行する。この判定処理は、具体的には、ストレージ25に格納されたトークン辞書20にある複数のトークンから第一電子透かしトークンを生成されたシード値に基づいて選定し、それらのトークンに検出対象のトークンが含まれているか否かを判定することでなされる。この第一電子透かしトークンに含まれる検出対象のトークンを、以下、第一検出トークンとも称する。ステップS502におけるこれらの処理は、第一電子透かしトークン検出処理プログラム27をプロセッサ23が実行することでなされる。これにより、第一鍵4と、検出対象のトークンからN個前のトークンとから生成されたシード値に基づいて、当該検出対象のトークンが確率増加させるトークンに属するか否かが判定される。電子透かし検出装置3の制御部は、ステップS502による処理が完了すると、ステップS503に進む。
ステップS503において、電子透かし検出装置3の制御部は、第二電子透かしトークン検出処理部により、第二鍵記憶装置7から受信した第二鍵6と、検出対象のトークンからM個前のトークンとをハッシュ関数に入力してシード値を生成し、生成されたシード値に基づいて、検出対象のトークンが確率増加させるトークンに属するか否かを判定する処理を実行する。この判定処理は、具体的には、ステップS502で選定された第一電子透かしトークンから、更に第二電子透かしトークンを選定し、それらのトークンに検出対象のトークンが含まれているか否かを判定することでなされる。この第二電子透かしトークンに含まれる検出対象のトークンを、以下、第二検出トークンとも称する。ステップS503におけるこれらの処理は、第二電子透かしトークン検出処理プログラム28をプロセッサ23が実行することでなされる。これにより、第二鍵6と、検出対象のトークンからM個前のトークンとから生成されたシード値に基づいて、当該検出対象のトークンが確率増加させるトークンに属するか否かが判定される。電子透かし検出装置3の制御部は、ステップS503による処理が完了すると、ステップS504に進む。
ステップS504において、電子透かし検出装置3の制御部は、電子透かし判定処理部により、残りの検出対象トークンの数が0か否か、すなわち残りの検出対象トークンが無いか否かを判定する処理を実行する。ステップS504におけるこの処理は、電子透かし判定処理プログラム29をプロセッサ23が実行することでなされる。残りの検出対象トークンの数は0であり、最早存在しないとステップS504で判定された場合(ステップS504:YES)は、ステップS505に進む。他方、残りの検出対象トークンは0ではなく、未だ存在するとステップS504で判定された場合(ステップS504:NO)は、再びステップS502に戻る。
(ステップSP12)
ステップS505において、電子透かし検出装置3の制御部は、電子透かし判定処理部により、第一検出トークン及び受信したテキストに含まれる全トークンの数と、第二検出トークン及び第一電子透かしトークンの数とから統計的検定を実施し、任意に閾値として設定されたzスコアに基づいて、第一電子透かし及び第二電子透かしのそれぞれの有無を判定する処理を実行する。
ステップS505において、電子透かし検出装置3の制御部は、電子透かし判定処理部により、第一検出トークン及び受信したテキストに含まれる全トークンの数と、第二検出トークン及び第一電子透かしトークンの数とから統計的検定を実施し、任意に閾値として設定されたzスコアに基づいて、第一電子透かし及び第二電子透かしのそれぞれの有無を判定する処理を実行する。
ここで、第一電子透かしの有無の判定に使用されるスコアz1は、ステップS502の判定処理の結果として得られる第一検出トークンの数SG_1と、電子透かし検出対象テキストに含まれるトークンの合計数Tとを与えることで、以下の式により算出される。
このスコアz1が任意の閾値以上である場合、電子透かし判定処理部は、第一電子透かしが電子透かし検出対象テキストに存在すると判定する。他方、このスコアz1が任意の閾値未満の場合、電子透かし判定処理部は、第一電子透かしが電子透かし検出対象テキストに存在しないと判定する。
また、第二電子透かしの有無の判定に使用されるスコアz2は、ステップS503の判定処理の結果として得られる第二検出トークンの数SG_2と、第一検出トークンの数SG_1とを与えることで、以下の式により算出される。
このスコアz2が任意の閾値以上である場合、電子透かし判定処理部は、第二電子透かしが電子透かし検出対象テキストに存在すると判定する。他方、このスコアz2が任意の閾値未満の場合、電子透かし判定処理部は、第二電子透かしが電子透かし検出対象テキストに存在しないと判定する。
これにより、第一検出トークン及び受信したテキストに含まれる全トークンの数と、第二検出トークン及び第一電子透かしトークンの数とから統計的検定が実施され、任意に閾値として設定されたzスコアに基づいて、第一電子透かし及び第二電子透かしのそれぞれの有無が判定される。電子透かし検出装置3の制御部は、ステップS505による処理が完了すると、ステップS506に進む。
ステップS506において、電子透かし検出装置3の制御部は、ステップS501でユーザ8が送信した電子透かし検出対象テキストについて、第一電子透かし及び第二電子透かしのそれぞれの有無に関する判定結果を、通信部を介して当該ユーザ8が保有する情報入出力端末9に送信する処理を実行する。これにより、当該電子透かし検出対象テキストについて、第一電子透かし及び第二電子透かしのそれぞれの有無に関する判定結果が、当該ユーザ8の情報入出力端末9に送信される。電子透かし検出装置3の制御部は、ステップS506による処理が完了すると、図5のフローチャート500に示した電子透かし検出処理を終了する。
以上説明した本発明の実施形態は、以下のように総括される。
(1)二重電子透かしシステム1は、プロセッサ12と記憶装置(13、14)とを少なくとも有するコンピュータにより、ユーザ8から受信したトークン列に応じて言語モデルが当該トークン列と異なるトークン列を生成する過程において、言語モデルが生成したトークン列に電子透かしを埋め込む電子透かし埋め込み装置2と、プロセッサ23と記憶装置(24、25)とを少なくとも有するコンピュータにより、ユーザ8から受信したトークン列に基づいて、言語モデルにより生成されたトークン列であることを検出する電子透かし検出装置3とを備えるシステムである。電子透かし埋め込み装置2は、第一の電子透かしトークン選定部により、ユーザ8から受信したトークン列及び言語モデルが生成したトークン列に含まれる第一のトークンから次に発生する複数のトークンを、第一鍵(第一の鍵)4と少なくとも第一鍵4に対応するハッシュ関数とを用いて第一のグループ又は第二のグループのいずれかに分類し、第二の電子透かしトークン選定部により、第一の電子透かしトークン選定部が分類した第一のグループに属するトークンを受信し、ユーザ8から受信したトークン列及び言語モデルが生成したトークン列に含まれる第二のトークンから次に発生する複数のトークンを、第一鍵4と異なる第二鍵(第二の鍵)6と少なくとも第二鍵6に対応するハッシュ関数とを用いて第三のグループ又は第四のグループのいずれかに分類し、トークン確率補正部により、第一のグループに属するトークン及び第三のグループに属するトークンの確率を増加させる。電子透かし検出装置3は、第一の電子透かしトークン検出部により、ユーザ8から受信したトークン列に含まれる第一のトークンと第一鍵4とを用いて、第一のグループに分類されるトークンの数を算出し、第二の電子透かしトークン検出部により、第一の電子透かしトークン検出部において第一のグループに分類されたトークンから第二鍵6を用いて第三のグループに分類されるトークンの数を算出し、電子透かし判定部により、第一の電子透かしトークン検出部において算出されたトークンの数と受信したトークン列に含まれる全トークン数から行われる統計的検定により計算される第一のスコアと、第二の電子透かしトークン検出部において算出されたトークンの数と第一の電子透かしトークン検出部において第一のグループに分類されたトークンの数から行われる統計的検定により計算される第二のスコアとに基づいて、所定の閾値と第一のスコア及び第二のスコアとの比較により、第一の電子透かし及び第二の電子透かしのそれぞれの有無を決定する。このようにしたので、二重電子透かしシステム1を構成する電子透かし埋め込み装置2は、言語モデルが生成したテキストデータに電子透かしを埋め込む際に、第一鍵4及び第二鍵6の二つの異なる鍵を設定するため、前述したように、第一電子透かし及び第二電子透かしの二つの異なる電子透かしを重ね合わせるようにして、二重に電子透かしの埋め込みを行う。そして、二重電子透かしシステム1を構成する電子透かし検出装置3は、電子透かしの有無を検出する際に、前述したように、二重に設定された第一鍵4及び第二鍵6の二つの異なる鍵をそれぞれ用いて、第一電子透かし及び第二電子透かしの二つの異なる電子透かしのそれぞれについて、その有無の判定を行う。その結果、二重電子透かしシステム1のユーザ8は、言語モデルが生成したテキストデータに電子透かしが埋め込まれている場合に、当該電子透かしに対応する一つの鍵、すなわち第一鍵4が漏洩した場合においても、第二鍵6を用いることで、当該テキストデータの生成元を判別することができる。
(2)トークン列は、複数の文字、点字、数字及び/又は記号により表現されたテキストと、複数の音符により表現された旋律とのいずれか一つを含む。
(3)トークン列は、複数の文字の連なりによって表現されたテキストである。
(4)第一鍵4に対応するハッシュ関数と、第二鍵6に対応するハッシュ関数とは同一である。
(5)第二鍵6に対応するハッシュ関数は、第一鍵4に対応するハッシュ関数と異なる。
なお、本発明は上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲内で、任意の構成要素を用いて実施可能である。
なお、本実施形態の場合、言語モデルが生成するデータはテキストとしているが、本発明は、トークン列から構成されるあらゆるデータ生成に適用可能である。
上記実施形態はあくまで一例であり、発明の特徴が損なわれない限り、本発明はこれらの内容に限定されるものではない。また、上記ではさまざまな実施形態を説明したが、本発明はこれらの内容に限定されるものではなく、また、これらの内容の全てが本発明の解決手段に必須であるとは限らない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
上記の各図において、制御線や情報線は説明上必要と考えられるものを示しており、必ずしも実装上必要な全ての制御線や情報線を示しているとは限らない。例えば、実際には殆ど全ての構成が相互に接続されていると考えてもよい。
また、以上に説明した二重電子透かしシステム1の各機能部の配置形態は一例に過ぎない。各機能部の配置形態は、二重電子透かしシステム1が備えるハードウェアやソフトウェアの性能、処理効率、通信効率等の観点から最適な配置形態に変更し得る。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサ(12、23)がそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
1…二重電子透かしシステム
Claims (6)
- プロセッサと記憶装置とを少なくとも有するコンピュータにより、ユーザから受信したトークン列に応じて言語モデルが当該トークン列と異なるトークン列を生成する過程において、前記言語モデルが生成したトークン列に電子透かしを埋め込む電子透かし埋め込み装置と、
プロセッサと記憶装置とを少なくとも有するコンピュータにより、前記ユーザから受信したトークン列に基づいて、前記言語モデルにより生成されたトークン列であることを検出する電子透かし検出装置と
を備える二重電子透かしシステムであって、
前記電子透かし埋め込み装置は、
第一の電子透かしトークン選定部により、前記ユーザから受信したトークン列及び前記言語モデルが生成したトークン列に含まれる第一のトークンから次に発生する複数のトークンを、第一の鍵と少なくとも前記第一の鍵に対応するハッシュ関数とを用いて第一のグループ又は第二のグループのいずれかに分類し、
第二の電子透かしトークン選定部により、前記第一の電子透かしトークン選定部が分類した前記第一のグループに属するトークンを受信し、前記ユーザから受信したトークン列及び前記言語モデルが生成したトークン列に含まれる第二のトークンから次に発生する複数のトークンを、前記第一の鍵と異なる第二の鍵と少なくとも前記第二の鍵に対応するハッシュ関数とを用いて第三のグループ又は第四のグループのいずれかに分類し、
トークン確率補正部により、前記第一のグループに属するトークン及び前記第三のグループに属するトークンの確率を増加させ、
前記電子透かし検出装置は、
第一の電子透かしトークン検出部により、前記ユーザから受信したトークン列に含まれる前記第一のトークンと前記第一の鍵とを用いて、前記第一のグループに分類されるトークンの数を算出し、
第二の電子透かしトークン検出部により、前記第一の電子透かしトークン検出部において前記第一のグループに分類されたトークンから前記第二の鍵を用いて前記第三のグループに分類されるトークンの数を算出し、
電子透かし判定部により、前記第一の電子透かしトークン検出部において算出されたトークンの数と前記受信したトークン列に含まれる全トークン数から行われる統計的検定により計算される第一のスコアと、前記第二の電子透かしトークン検出部において算出されたトークンの数と前記第一の電子透かしトークン検出部において前記第一のグループに分類されたトークンの数から行われる統計的検定により計算される第二のスコアとに基づいて、所定の閾値と前記第一のスコア及び前記第二のスコアとの比較により、第一の電子透かし及び第二の電子透かしのそれぞれの有無を決定する、
二重電子透かしシステム。 - 請求項1に記載の二重電子透かしシステムであって、
前記トークン列は、
複数の文字、点字、数字及び/又は記号により表現されたテキストと、
複数の音符により表現された旋律と
のいずれか一つを含む、二重電子透かしシステム。 - 請求項2に記載の二重電子透かしシステムであって、
前記トークン列は、複数の文字の連なりによって表現されたテキストである、二重電子透かしシステム。 - 請求項1に記載の二重電子透かしシステムであって、
前記第一の鍵に対応するハッシュ関数と前記第二の鍵に対応するハッシュ関数とは同一である、二重電子透かしシステム。 - 請求項1に記載の二重電子透かしシステムであって、
前記第二の鍵に対応するハッシュ関数は、前記第一の鍵に対応するハッシュ関数と異なる、二重電子透かしシステム。 - 二重電子透かしの埋め込み及び検出を行う方法であって、
プロセッサと記憶装置とを少なくとも有するコンピュータにより、ユーザから受信したトークン列に応じて言語モデルが当該トークン列と異なるトークン列を生成する過程において、前記言語モデルが生成したトークン列に電子透かしを埋め込む電子透かし埋め込み装置と、
プロセッサと記憶装置とを少なくとも有するコンピュータにより、前記ユーザから受信したトークン列に基づいて、前記言語モデルにより生成されたトークン列であることを検出する電子透かし検出装置と
を備える二重電子透かしシステムによって実施され、
前記電子透かし埋め込み装置は、
第一の電子透かしトークン選定部により、前記ユーザから受信したトークン列及び前記言語モデルが生成したトークン列に含まれる第一のトークンから次に発生する複数のトークンを、第一の鍵と少なくとも前記第一の鍵に対応するハッシュ関数とを用いて第一のグループ又は第二のグループのいずれかに分類し、
第二の電子透かしトークン選定部により、前記第一の電子透かしトークン選定部が分類した前記第一のグループに属するトークンを受信し、前記ユーザから受信したトークン列及び前記言語モデルが生成したトークン列に含まれる第二のトークンから次に発生する複数のトークンを、前記第一の鍵と異なる第二の鍵と少なくとも前記第二の鍵に対応するハッシュ関数とを用いて第三のグループ又は第四のグループのいずれかに分類し、
トークン確率補正部により、前記第一のグループに属するトークン及び前記第三のグループに属するトークンの確率を増加させ、
前記電子透かし検出装置は、
第一の電子透かしトークン検出部により、前記ユーザから受信したトークン列に含まれる前記第一のトークンと前記第一の鍵とを用いて、前記第一のグループに分類されるトークンの数を算出し、
第二の電子透かしトークン検出部により、前記第一の電子透かしトークン検出部において前記第一のグループに分類されたトークンから前記第二の鍵を用いて前記第三のグループに分類されるトークンの数を算出し、
電子透かし判定部により、前記第一の電子透かしトークン検出部において算出されたトークンの数と前記受信したトークン列に含まれる全トークン数から行われる統計的検定により計算される第一のスコアと、前記第二の電子透かしトークン検出部において算出されたトークンの数と前記第一の電子透かしトークン検出部において前記第一のグループに分類されたトークンの数から行われる統計的検定により計算される第二のスコアとに基づいて、所定の閾値と前記第一のスコア及び前記第二のスコアとの比較により、第一の電子透かし及び第二の電子透かしのそれぞれの有無を決定する、
方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2024071078A JP2025166897A (ja) | 2024-04-25 | 2024-04-25 | 二重電子透かしシステム及び二重電子透かし方法 |
| JP2024-071078 | 2024-04-25 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025225151A1 true WO2025225151A1 (ja) | 2025-10-30 |
Family
ID=97489883
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2025/005788 Pending WO2025225151A1 (ja) | 2024-04-25 | 2025-02-20 | 二重電子透かしシステム及び二重電子透かし方法 |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP2025166897A (ja) |
| WO (1) | WO2025225151A1 (ja) |
-
2024
- 2024-04-25 JP JP2024071078A patent/JP2025166897A/ja active Pending
-
2025
- 2025-02-20 WO PCT/JP2025/005788 patent/WO2025225151A1/ja active Pending
Non-Patent Citations (1)
| Title |
|---|
| JOHN KIRCHENBAUER; JONAS GEIPING; YUXIN WEN; JONATHAN KATZ; IAN MIERS; TOM GOLDSTEIN: "A Watermark for Large Language Models", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 6 June 2023 (2023-06-06), 201 Olin Library Cornell University Ithaca, NY 14853, XP091528982 * |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2025166897A (ja) | 2025-11-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10095610B2 (en) | Testing applications with a defined input format | |
| KR20210090576A (ko) | 품질을 관리하는 방법, 장치, 기기, 저장매체 및 프로그램 | |
| WO2021196935A1 (zh) | 数据校验方法、装置、电子设备和存储介质 | |
| JP7430625B2 (ja) | バージョン検証装置、バージョン検証システム及びバージョン検証方法 | |
| CN115687146A (zh) | Bios测试方法、装置、计算机设备和存储介质 | |
| US10902221B1 (en) | Social hash for language models | |
| CN111738290A (zh) | 图像检测方法、模型构建和训练方法、装置、设备和介质 | |
| CN114419403B (zh) | 用于检测模型的方法和装置 | |
| CN119150302B (zh) | 一种基于大语言模型的软件安全漏洞智能挖掘方法及系统 | |
| JP2025166897A (ja) | 二重電子透かしシステム及び二重電子透かし方法 | |
| CN120688606A (zh) | 文本处理方法、装置、电子设备及介质 | |
| CN120724146A (zh) | 基于自动生成ai的数字孪生 | |
| CN118981773A (zh) | 一种源代码漏洞预测方法、装置、电子设备和介质 | |
| CN108683749B (zh) | 一种随机邮箱地址的判断方法、设备和介质 | |
| CN118839026A (zh) | 纹章库构建方法、纹章检索方法、存储介质以及终端 | |
| CN110929033A (zh) | 长文本分类方法、装置、计算机设备及存储介质 | |
| US20250103905A1 (en) | System and method for detecting abnormality | |
| JP2022151502A (ja) | プログラム、情報処理装置、及び方法 | |
| CN116894133B (zh) | 项目业务页面展示方法、装置、设备和计算机可读介质 | |
| US20260099608A1 (en) | Security graph cardinality reduction in network-based computer systems | |
| JP2021149138A (ja) | 情報処理装置、学習提案プログラム、及び学習提案方法 | |
| US12530543B2 (en) | Implementing controllable lyrics generation | |
| KR102791415B1 (ko) | 다단 탐지를 이용한 텍스트 기반 개인정보 식별 방법 및 장치 | |
| US20250190811A1 (en) | Method for training multimodal large model and electronic device | |
| US20250259015A1 (en) | Information processing apparatus, control method of information processing apparatus, and non-transitory computer-readable storage medium |
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: 25794172 Country of ref document: EP Kind code of ref document: A1 |