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

JP2017129779A - Cipher generation device, data transmission system, cipher generation method, and data transmission method - Google Patents

Cipher generation device, data transmission system, cipher generation method, and data transmission method Download PDF

Info

Publication number
JP2017129779A
JP2017129779A JP2016009852A JP2016009852A JP2017129779A JP 2017129779 A JP2017129779 A JP 2017129779A JP 2016009852 A JP2016009852 A JP 2016009852A JP 2016009852 A JP2016009852 A JP 2016009852A JP 2017129779 A JP2017129779 A JP 2017129779A
Authority
JP
Japan
Prior art keywords
random number
encryption
ciphertext
cipher
unit
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
Application number
JP2016009852A
Other languages
Japanese (ja)
Inventor
鈴木 秀一
Shuichi Suzuki
秀一 鈴木
山▲崎▼ 亮
Akira Yamazaki
亮 山▲崎▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tokyo Denki University
Original Assignee
Tokyo Denki University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tokyo Denki University filed Critical Tokyo Denki University
Priority to JP2016009852A priority Critical patent/JP2017129779A/en
Publication of JP2017129779A publication Critical patent/JP2017129779A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a cipher generation device for increasing safety of cipher.SOLUTION: An encryption unit 2020 generates a cipher text from a plain text by using a cipher key and a random number. A random number information output unit 2040 outputs random number information before the encryption part 2020 acquires both the plain text and the cipher key. A cipher output unit 2060 outputs the cipher text generated by the encryption unit 2020. In a cipher generation device 2000, the encryption unit 2020 generates the cipher text from data obtained by connecting the plain text with the random number, or the cipher output unit 2060 outputs both the cipher text and the random number.SELECTED DRAWING: Figure 1

Description

本発明は、暗号技術に関する。   The present invention relates to cryptographic technology.

装置間で安全に情報をやりとりするために、暗号が用いられる。送信側の装置では、送信先の装置に伝達したい情報(以下、平文)を暗号鍵を用いて暗号化して、暗号文を生成する。送信先の装置では、この暗号文を取得し、復号鍵を用いて暗号文を復号することで、平文を復元する。   Cryptography is used to exchange information securely between devices. The transmission side device encrypts information (hereinafter, plaintext) to be transmitted to the transmission destination device using an encryption key to generate a ciphertext. The transmission destination device acquires this ciphertext and decrypts the ciphertext using the decryption key, thereby restoring the plaintext.

暗号処理に関する先行技術を示す文献として、例えば特許文献1や2がある。特許文献1の暗号化装置は、暗号化対象の情報の価値に基づいて、暗号化の強度を決定する。特許文献2は、本発明者が発明した再配置暗号方式を開示している。   For example, Patent Documents 1 and 2 are documents showing prior art related to cryptographic processing. The encryption device of Patent Literature 1 determines the strength of encryption based on the value of information to be encrypted. Patent Document 2 discloses a rearrangement encryption scheme invented by the present inventors.

特開2006−94241号公報JP 2006-94241 A 特許第4737334号公報Japanese Patent No. 4737334

暗号文に対する攻撃の一つとして、インサイダー攻撃と呼ばれるものがある。インサイダー攻撃は、暗号化の処理を行う装置やその装置で用いられる暗号プログラムの制作者や管理者等が、その装置や暗号プログラムが行う処理の中に不正な処理を含めることで、ユーザに気付かれないように平文や暗号鍵の内容を漏洩させるという攻撃である。   One attack against ciphertext is called an insider attack. An insider attack can be recognized by a device that performs encryption processing or the creator or administrator of a cryptographic program used in that device by including unauthorized processing in the processing performed by that device or cryptographic program. It is an attack that leaks the contents of plaintext and encryption keys so that they will not.

本発明者は、特許文献2に開示されている再配置暗号方式、及び Initial Value(IV)として乱数を用いる暗号利用モードの Advanced Encryption Standard(AES)暗号方式に、インサイダー攻撃に対する脆弱性があることを見出した。特許文献1は、このようなインサイダー攻撃について記載していない。   The present inventor is vulnerable to an insider attack in the rearrangement encryption method disclosed in Patent Document 2 and the Advanced Encryption Standard (AES) encryption method in the encryption usage mode using a random number as the initial value (IV). I found. Patent Document 1 does not describe such an insider attack.

本発明は、以上の課題を鑑みてなされたものである。本発明の目的は暗号の安全性を高める技術を提供することである。   The present invention has been made in view of the above problems. An object of the present invention is to provide a technique for improving the security of encryption.

本発明の暗号生成装置は、1)暗号鍵及び乱数を用いて、平文から暗号文を生成する暗号化部と、2)前記暗号化部が前記平文及び前記暗号鍵の双方を取得する前に、前記乱数を特定する乱数情報を出力する、乱数情報出力部と、3)前記暗号文を出力する暗号出力部と、を有する。4)前記暗号化部は前記平文と前記乱数とを結合したデータから前記暗号文を生成するか、又は前記暗号出力部は前記暗号文と前記乱数を共に出力する。   The cipher generation apparatus of the present invention includes 1) an encryption unit that generates ciphertext from plaintext using an encryption key and a random number, and 2) before the encryption unit acquires both the plaintext and the encryption key. A random number information output unit that outputs random number information that identifies the random number; and 3) an encryption output unit that outputs the ciphertext. 4) The encryption unit generates the ciphertext from data obtained by combining the plaintext and the random number, or the cipher output unit outputs both the ciphertext and the random number.

本発明のデータ伝送システムは、本発明の暗号生成装置、及び受信装置を有する。受信装置は、1)前記暗号出力部によって出力された情報及び前記乱数情報を受信する受信部と、2)前記暗号出力部によって出力された情報及び前記乱数情報を用いて、前記暗号文の安全性を検証する安全性検証部と、を有する。   The data transmission system of the present invention includes the encryption generation apparatus and the reception apparatus of the present invention. The receiving apparatus includes: 1) a receiving unit that receives the information output by the cipher output unit and the random number information; and 2) a safety of the ciphertext using the information output by the cipher output unit and the random number information. And a safety verification unit for verifying safety.

本発明の暗号生成方法は、コンピュータによって実行される。当該暗号生成方法は、1)暗号鍵及び乱数を用いて、平文から暗号文を生成する暗号化ステップと、2)前記暗号化ステップにおいて、前記平文及び前記暗号鍵の双方を取得する前に、前記乱数を特定する乱数情報を出力する、乱数情報出力ステップと、3)前記暗号文を出力する暗号出力ステップと、を有する。さらに、4)前記暗号化ステップにおいて前記平文と前記乱数とを結合したデータから前記暗号文を生成するか、又は前記暗号出力ステップにおいて前記暗号文と前記乱数を共に出力する。   The cipher generation method of the present invention is executed by a computer. The cipher generation method includes 1) an encryption step of generating a ciphertext from plaintext using an encryption key and a random number; and 2) before acquiring both the plaintext and the encryption key in the encryption step, A random number information output step for outputting random number information for specifying the random number; and 3) an encrypted output step for outputting the ciphertext. And 4) generating the ciphertext from data obtained by combining the plaintext and the random number in the encryption step, or outputting both the ciphertext and the random number in the cipher output step.

本発明のデータ伝送方法は、暗号生成装置と受信装置とを有するデータ伝送システムによって実行される。当該データ伝送方法は、1)暗号生成装置が、暗号鍵及び乱数を用いて、平文から暗号文を生成する暗号化ステップと、2)暗号生成装置が、前記暗号化ステップにおいて、前記平文及び前記暗号鍵の双方を取得する前に、前記乱数を特定する乱数情報を出力する、乱数情報出力ステップと、3)暗号生成装置が、前記暗号文を出力する暗号出力ステップと、4)受信装置が、前記暗号出力ステップにおいて出力された情報及び前記乱数情報を受信する受信ステップと、5)受信装置が、前記受信ステップにおいて受信された、前記暗号出力ステップにおいて出力された情報及び前記乱数情報を用いて、前記暗号文の安全性を検証する安全性検証ステップと、を有する。さらに、6)前記暗号化ステップにおいて前記平文と前記乱数とを結合したデータから前記暗号文を生成するか、又は前記暗号出力ステップにおいて前記暗号文と前記乱数を共に出力する。   The data transmission method of the present invention is executed by a data transmission system having a cipher generation device and a reception device. The data transmission method includes: 1) an encryption step in which an encryption generation device generates an encrypted text from plaintext using an encryption key and a random number; and 2) an encryption generation device in which the plaintext and the A random number information output step for outputting random number information for specifying the random number before acquiring both of the encryption keys, 3) an encryption output step for outputting the ciphertext, and 4) a receiving device A receiving step for receiving the information output in the cipher output step and the random number information, and 5) the receiving device uses the information output in the cipher output step and the random number information received in the receiving step. And a security verification step for verifying the security of the ciphertext. Further, 6) the ciphertext is generated from data obtained by combining the plaintext and the random number in the encryption step, or the ciphertext and the random number are output together in the cipher output step.

本発明によれば、暗号の安全性を高める技術が提供される。   According to the present invention, a technique for improving the security of encryption is provided.

実施形態1に係る暗号生成装置を例示するブロック図である。1 is a block diagram illustrating a cipher generation device according to Embodiment 1. FIG. AES 暗号方式を用いる場合におけるインサイダー攻撃を例示する図である。It is a figure which illustrates the insider attack in the case of using an AES encryption method. 再配置暗号方式について、インサイダー攻撃を含む暗号生成処理を例示するフローチャートである。It is a flowchart which illustrates the encryption production | generation process containing an insider attack about a rearrangement encryption system. 暗号生成装置を実現する計算機の構成を例示する図である。It is a figure which illustrates the structure of the computer which implement | achieves a encryption production | generation apparatus. 実施形態1の暗号生成装置によって実行される処理の流れを例示するフローチャートである。3 is a flowchart illustrating an example of a flow of processing executed by the cipher generation device according to the first embodiment. 実施形態2に係る暗号生成装置を例示するブロック図である。6 is a block diagram illustrating a cipher generation device according to Embodiment 2. FIG. 実施形態2の方法1を概念的に示した図である。It is the figure which showed the method 1 of Embodiment 2 notionally. 実施形態2の方法2を概念的に示した図である。It is the figure which showed the method 2 of Embodiment 2 notionally. 実施形態3の方法1を概念的に示した図である。It is the figure which showed the method 1 of Embodiment 3 notionally. 実施形態3の方法2を概念的に示した図である。It is the figure which showed the method 2 of Embodiment 3 notionally. 実施形態4の暗号システムを例示するブロック図である。FIG. 10 is a block diagram illustrating a cryptographic system according to a fourth embodiment.

以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。また、各ブロック図において、矢印の流れは、情報の流れを示している。さらに、各ブロック図において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を示している。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. In all the drawings, the same reference numerals are given to the same components, and the description will be omitted as appropriate. In each block diagram, the flow of arrows indicates the flow of information. Further, in each block diagram, each block indicates a functional unit configuration, not a hardware unit configuration.

[実施形態1]
<概要>
図1は、実施形態1に係る暗号生成装置2000を例示するブロック図である。暗号生成装置2000は、暗号化部2020、乱数情報出力部2040、及び暗号出力部2060を有する。暗号化部2020は、暗号鍵及び乱数を用いて、平文から暗号文を生成する。乱数情報出力部2040は、暗号化部2020が平文及び暗号鍵の双方を取得する前に乱数情報を出力する。つまり乱数情報出力部2040は、1)暗号化部2020が平文を取得した後かつ暗号鍵を取得する前、2)暗号化部2020が暗号鍵を取得した後かつ平文を取得する前、又は3)暗号化部2020が平文を取得する前かつ暗号鍵を取得する前のいずれかのタイミングで、乱数情報を出力する。ここで、乱数情報は、暗号化部2020によって取得される乱数を特定する情報である。暗号出力部2060は、暗号化部2020によって生成された暗号文を出力する。
[Embodiment 1]
<Overview>
FIG. 1 is a block diagram illustrating a cipher generation device 2000 according to the first embodiment. The cipher generation device 2000 includes an encryption unit 2020, a random number information output unit 2040, and an encryption output unit 2060. The encryption unit 2020 generates a ciphertext from the plaintext using the encryption key and a random number. The random number information output unit 2040 outputs random number information before the encryption unit 2020 acquires both the plaintext and the encryption key. That is, the random number information output unit 2040 is 1) after the encryption unit 2020 acquires the plaintext and before acquiring the encryption key, 2) after the encryption unit 2020 acquires the encryption key and before acquiring the plaintext, or 3 ) The random number information is output at any timing before the encryption unit 2020 acquires the plaintext and before the encryption key is acquired. Here, the random number information is information for specifying a random number acquired by the encryption unit 2020. The cipher output unit 2060 outputs the ciphertext generated by the encryption unit 2020.

暗号生成装置2000は、以下の2つの前提条件の内、少なくとも一方を満たす。一つ目の前提条件は、暗号化部2020が、平文と乱数とを結合したデータから暗号文を生成することである。二つ目の条件は、暗号出力部2060が、暗号文と乱数を共に出力することである。以下、前者を第1前提条件、後者を第2前提条件と呼ぶ。   The cipher generation device 2000 satisfies at least one of the following two preconditions. The first precondition is that the encryption unit 2020 generates a ciphertext from data obtained by combining a plaintext and a random number. The second condition is that the cipher output unit 2060 outputs both the ciphertext and the random number. Hereinafter, the former is called a first precondition and the latter is called a second precondition.

前述した前提条件のどちらが満たされるのかは、暗号化部2020が利用する暗号方式によって異なる。以下、それぞれについて説明する。   Which of the above-mentioned preconditions is satisfied depends on the encryption method used by the encryption unit 2020. Each will be described below.

<第1前提条件が満たされる場合について>
第1前提条件が満たされる場合、暗号化部2020は、再配置暗号方式を利用する。再配置暗号方式は特許文献2に開示されている暗号方式である。以下、再配置暗号方式の概略を説明する。なお、再配置暗号方式の詳細な説明は、特許文献2に開示されている。
<When the first precondition is satisfied>
When the first precondition is satisfied, the encryption unit 2020 uses a rearrangement encryption method. The rearrangement encryption method is an encryption method disclosed in Patent Document 2. The outline of the rearrangement encryption method will be described below. A detailed description of the rearrangement encryption method is disclosed in Patent Document 2.

暗号化部2020は、第1の疑似乱数 R を取得する。暗号化部2020は、R を初期値として第2の疑似乱数 R2 を生成する。暗号化部2020は、R2を用いて平文をストリーム暗号化し、中間データ M' を生成する。暗号化部2020は、第1の疑似乱数 R 及び中間データ M' について、再配置表 K を SBOX として用いて、非線形な一体化をする。最後に暗号化部2020は、この一体化されたデータを再配置表 K を用いて再配置することで、最終的な暗号文 C を出力する。ここで、再配置暗号方式では、暗号鍵が再配置表 K として用いられる。   The encryption unit 2020 acquires the first pseudo random number R. The encryption unit 2020 generates a second pseudo random number R2 using R as an initial value. The encryption unit 2020 stream-encrypts the plain text using R2 to generate intermediate data M ′. The encryption unit 2020 performs nonlinear integration on the first pseudorandom number R and the intermediate data M ′ using the rearrangement table K as the SBOX. Finally, the encryption unit 2020 rearranges the integrated data using the rearrangement table K, and outputs the final ciphertext C. Here, in the rearrangement encryption method, the encryption key is used as the rearrangement table K.

上述のように、再配置暗号方式では、乱数(第1の疑似乱数 R)と平文とを結合したデータ(中間データ Cx)を暗号化することで、暗号文が生成される。よって、暗号化部2020が再配置暗号方式で暗号化を行う場合、第1前提条件が満たされる。   As described above, in the rearrangement encryption method, ciphertext is generated by encrypting data (intermediate data Cx) obtained by combining a random number (first pseudorandom number R) and plaintext. Therefore, when the encryption unit 2020 performs encryption using the rearrangement encryption method, the first precondition is satisfied.

<第2前提条件が満たされる場合について>
第2前提条件が満たされるのは、例えば暗号化部2020が Initial Value(IV)として乱数を用いる Advanced Encryption Standard(AES)暗号方式で暗号文を生成する場合である。AES 暗号方式では、IV を用いる暗号利用モード(以下、IV モード)が広く利用されている。ここで、IV モードには、CBC モード(Cipher Block Chaining Mode)、CTR モード(Counter Mode)、CFB モード(Cipher Feedback Mode)、及び OFB モード(Output Feedback Mode)などがある。
<When the second precondition is satisfied>
The second precondition is satisfied, for example, when the encryption unit 2020 generates a ciphertext using the Advanced Encryption Standard (AES) encryption method using a random number as the Initial Value (IV). In the AES encryption method, an encryption usage mode using IV (hereinafter referred to as IV mode) is widely used. Here, the IV mode includes a CBC mode (Cipher Block Chaining Mode), a CTR mode (Counter Mode), a CFB mode (Cipher Feedback Mode), and an OFB mode (Output Feedback Mode).

これらの暗号利用モードの AES 暗号方式では、暗号文の提供先に対し、暗号文のヘッダに IV を付加したデータを提供する。そのため、暗号化部2020は、暗号文及び IV を共に出力する。   In these cipher usage mode AES cryptosystems, the ciphertext provider is provided with data with IV added to the ciphertext header. Therefore, the encryption unit 2020 outputs the ciphertext and IV together.

なお、上述の各暗号利用モードにおける具体的な暗号処理は既知の技術であるため、その説明は省略する。   In addition, since the concrete encryption process in each above-mentioned encryption utilization mode is a known technique, the description is abbreviate | omitted.

<作用・効果>
第1前提条件又は第2前提条件が満たされる暗号方式にはインサイダー攻撃に対する脆弱性が存在する。インサイダー攻撃は、「暗号生成装置や暗号生成装置で用いられる暗号プログラムを制作者などが、暗号生成装置で行われる処理に不正な処理を含めることで、暗号生成装置のユーザに気づかれずに暗号鍵や平文の内容を漏洩させる」という攻撃である。
<Action and effect>
Cryptographic methods that satisfy the first precondition or the second precondition have vulnerability to insider attacks. Insider attacks are: “The encryption key used by the creator of the encryption generation device or the encryption program used by the encryption generation device is not recognized by the user of the encryption generation device by including an unauthorized process in the processing performed by the encryption generation device. And the contents of plaintext are leaked.

以下、インサイダー攻撃について具体的に説明する。まず、AES 暗号方式におけるインサイダー攻撃の例を説明する。このインサイダー攻撃は、「暗号化の処理で用いられる乱数に、平文又は暗号鍵に関する情報を含める」というものである。例えば攻撃者は、暗号化の処理で用いる乱数を生成するプログラムを、「暗号鍵 K を暗号化した値 e(K) を算出し、この e(K) の値を乱数として出力する」というものとして実装する。ここで、e(K) は、暗号文を復号するプログラムにおいて用いられる復号用関数 d によって復号できる。ただし、攻撃者は暗号プログラムの制作者等であるため、復号用関数 d を知っている。上述のインサイダー攻撃により、攻撃者は、平文や暗号鍵を取得することができる。   Hereinafter, the insider attack will be described in detail. First, an example of an insider attack in the AES encryption method will be described. This insider attack is “include information on plaintext or encryption key in the random number used in the encryption process”. For example, an attacker can use a program that generates a random number to be used for encryption processing: `` Calculate the value e (K) obtained by encrypting the encryption key K and output the value of e (K) as a random number. '' Implement as Here, e (K) can be decrypted by a decryption function d used in a program for decrypting ciphertext. However, the attacker knows the decryption function d because it is the creator of the encryption program. By the above-mentioned insider attack, the attacker can obtain a plaintext or an encryption key.

図2は、AES 暗号方式を用いる場合におけるインサイダー攻撃を例示する図である。図2(a)は、AES 暗号方式について、インサイダー攻撃を含む暗号生成処理を例示している。暗号生成処理は、前述したように、暗号鍵 K を暗号化して、e(K) を算出する。そして暗号生成処理は、e(K) をIV として用いて、平文 M を AES 暗号方式で暗号化し、暗号文 I(K, M)を生成する。暗号生成処理は、IV として用いた e(K) を暗号文 I(K, M) のヘッダに付加したデータを出力する。例えばこのデータはネットワークを介し、受信装置へ送信される。   FIG. 2 is a diagram illustrating an insider attack when the AES encryption method is used. FIG. 2A illustrates a cipher generation process including an insider attack for the AES encryption method. In the encryption generation process, as described above, the encryption key K is encrypted and e (K) is calculated. The cipher generation process encrypts plaintext M using the AES encryption method using e (K) as IV to generate ciphertext I (K, M). The cipher generation process outputs data with e (K) used as IV added to the header of ciphertext I (K, M). For example, this data is transmitted to the receiving device via the network.

インサイダー攻撃の攻撃者は、上記データを取得する。図2(b)は、暗号文 I(K, M) に e(K) が付加されたデータを取得した攻撃者が行う処理の流れを例示している。攻撃者は、取得した暗号文 I(K, M) のヘッダに付加されている e(K) が、復号用関数 d を用いて復号できることを知っている。そこで攻撃者は、復号用関数 d で e(K) を復号することで、暗号鍵 K を取得する。さらに攻撃者は、取得した暗号鍵 K を用いて暗号文 I(K,M) を復号し、平文 M を取得する。このようにして、攻撃者は暗号鍵及び平文を取得することができる。   An insider attack attacker obtains the above data. FIG. 2B illustrates a flow of processing performed by an attacker who has acquired data in which e (K) is added to the ciphertext I (K, M). The attacker knows that e (K) added to the header of the obtained ciphertext I (K, M) can be decrypted using the decryption function d. Therefore, the attacker obtains the encryption key K by decrypting e (K) with the decryption function d. Furthermore, the attacker uses the acquired encryption key K to decrypt the ciphertext I (K, M) and obtains the plaintext M. In this way, the attacker can obtain the encryption key and plaintext.

次に、再配置暗号方式におけるインサイダー攻撃の例を説明する。このインサイダー攻撃は、「暗号文の所定位置に暗号鍵の情報が含まれるまで暗号化を繰り返す(乱数を変更する)ことで、暗号文の所定位置に暗号鍵の情報が含まれるようにする」というものである。   Next, an example of an insider attack in the rearrangement encryption method will be described. This insider attack is “by repeating encryption (changing the random number) until the encryption key information is included in the predetermined position of the ciphertext so that the encryption key information is included in the predetermined position of the ciphertext”. That's it.

図3は、再配置暗号方式について、インサイダー攻撃を含む暗号生成処理を例示するフローチャートである。暗号生成処理は第1の疑似乱数 R を生成する(S202)。暗号生成処理は R を初期値として第2の疑似乱数 R2 を生成する(S204)。暗号生成処理は、R2 を用いて平文 M をストリーム暗号化して、中間データ M' を生成する(S206)。暗号生成処理は、暗号鍵 K を用いて中間データ M' を暗号化し、暗号文 C を生成する(S208)。暗号生成処理は、(C の先頭の2バイト mod Length(K))+1を算出し、この値を x とする(S210)。ここで、Length(K) は、暗号鍵 K のサイズをビットの単位で出力する関数である。暗号生成処理は、K の x ビット目と C の17ビット目とを比較する(S212)。これらの値が同じであれば(S212:YES)、暗号生成処理は暗号文 C を出力する(S214)。一方、これらの値が異なれば(S212:NO)、暗号生成処理はS202に戻る。   FIG. 3 is a flowchart illustrating cipher generation processing including an insider attack for the rearrangement encryption method. The encryption generation process generates a first pseudorandom number R (S202). The cipher generation process generates a second pseudo random number R2 with R as an initial value (S204). In the cipher generation process, the plaintext M is stream-encrypted using R2 to generate intermediate data M ′ (S206). In the encryption generation process, the intermediate data M ′ is encrypted using the encryption key K, and the ciphertext C is generated (S208). The cipher generation processing calculates (the first two bytes mod length (K)) + 1 of C and sets this value as x (S210). Here, Length (K) is a function that outputs the size of the encryption key K in units of bits. The cipher generation processing compares the x-th bit of K with the 17th bit of C (S212). If these values are the same (S212: YES), the cipher generation process outputs ciphertext C (S214). On the other hand, if these values are different (S212: NO), the cipher generation processing returns to S202.

以上の動作により、出力される暗号文 C の17ビット目は、K の x ビット目の値と同一になる。つまり攻撃者は、暗号文 C を復号しなくても、暗号文 C の 17 ビット目を見ることで、K の x ビット目の値を知ることができる。ここで x の値は C の値によって異なる。そのため攻撃者は、暗号化生成装置から送信される暗号文 C を繰り返し取得することで、各暗号文 C から、K のそれぞれ異なるビットの値を知ることができる。最終的に攻撃者は、K の全体を把握することができる。なお、S210における「2バイト」やS212における「17ビット目」はあくまで例示であり、これらの値は任意に変更可能である。   With the above operation, the 17th bit of the output ciphertext C is the same as the value of the xth bit of K. That is, the attacker can know the value of the xth bit of K by looking at the 17th bit of the ciphertext C without decrypting the ciphertext C. Here, the value of x depends on the value of C. Therefore, the attacker can know the value of each different bit of K from each ciphertext C by repeatedly obtaining the ciphertext C transmitted from the encryption generation device. Eventually, the attacker can grasp the entire K. Note that “2 bytes” in S210 and “17th bit” in S212 are merely examples, and these values can be arbitrarily changed.

以上のように、IV を用いる AES 暗号方式や再配置暗号方式には、インサイダー攻撃に対する脆弱性が存在する。   As described above, AES encryption methods and rearrangement encryption methods using IV are vulnerable to insider attacks.

なお、インサイダー攻撃を行う攻撃者は、暗号生成装置2000から出力される情報(暗号文など)を取得し、その情報を利用してインサイダー攻撃を行う。一般に、暗号文はネットワークを介してやりとりされることが多い。例えば、メールの送信元が暗号生成装置2000である場合、暗号生成装置2000は、メールの本文や添付ファイルを暗号化して暗号文を生成し、この暗号文を送信する。そのため、例えば攻撃者は、暗号生成装置2000がネットワークを介して他の装置と行う通信を盗聴することで、暗号文などを取得できる。このような盗聴の方法は既知の技術であるため、その実現方法については説明を省略する。   An attacker who performs an insider attack acquires information (ciphertext or the like) output from the cipher generation device 2000, and uses that information to perform an insider attack. In general, ciphertext is often exchanged via a network. For example, when the mail transmission source is the cipher generation apparatus 2000, the cipher generation apparatus 2000 generates a ciphertext by encrypting the mail text and attached file, and transmits the ciphertext. For this reason, for example, an attacker can obtain ciphertext or the like by eavesdropping on communication performed by the cryptographic generation apparatus 2000 with another apparatus via the network. Since such an eavesdropping method is a known technique, a description of the realization method is omitted.

上述のインサイダー攻撃では必然的に、平文や暗号鍵を取得した後において、乱数の生成又は変更が行われる。AES 暗号方式の場合、乱数に平文や暗号鍵の情報を含めるため、平文や暗号鍵を取得した後に、乱数の値の生成又は変更が行われる。また再配置暗号方式の場合、平文や暗号鍵の情報が暗号文の所定位置に含まれるまで暗号生成処理が繰り返されるため、それに伴って第1の疑似乱数 R の値が変更される。このことから、暗号化部2020が平文や暗号鍵を取得する前に乱数が生成されており、さらにはその乱数が変更されなければ、インサイダー攻撃は行われていないこととなる。よって、暗号化部2020が平文や暗号鍵を取得する前に乱数が生成されており、さらにはその乱数が変更されていないことを確認できれば、インサイダー攻撃が行われていないことを確認できる。   In the above-mentioned insider attack, a random number is generated or changed inevitably after obtaining a plaintext or an encryption key. In the case of the AES encryption method, since the plaintext and the encryption key information are included in the random number, after the plaintext and the encryption key are acquired, the value of the random number is generated or changed. In the case of the rearrangement encryption method, since the cipher generation process is repeated until the plaintext and encryption key information are included in a predetermined position of the ciphertext, the value of the first pseudorandom number R is changed accordingly. For this reason, a random number is generated before the encryption unit 2020 acquires a plaintext or an encryption key, and if the random number is not changed, an insider attack is not performed. Therefore, if the encryption unit 2020 generates a random number before acquiring the plaintext and the encryption key, and further confirms that the random number has not been changed, it can be confirmed that no insider attack has been performed.

そこで本実施形態の暗号生成装置2000は、暗号化部2020によって平文及び暗号鍵の双方が取得される前に、暗号化部2020が暗号化に利用する乱数を特定する乱数情報を出力する。こうすることで、暗号化部2020が暗号化に別の乱数を用いた場合、つまりはインサイダー攻撃が行われた場合に、乱数が異なっていることを検出することができる。よって、本実施形態によれば、再配置暗号方式や AES 暗号方式を利用する暗号装置等におけるインサイダー攻撃に対する安全性を向上することができる。   Therefore, before the encryption unit 2020 obtains both the plaintext and the encryption key, the cipher generation device 2000 according to the present embodiment outputs random number information that identifies the random number that the encryption unit 2020 uses for encryption. This makes it possible to detect that the random numbers are different when the encryption unit 2020 uses another random number for encryption, that is, when an insider attack is performed. Therefore, according to the present embodiment, it is possible to improve the security against an insider attack in a cryptographic device or the like using a rearrangement encryption method or an AES encryption method.

<<証明>>
例として、再配置暗号とハッシュ関数が安全ならば、乱数情報として乱数のハッシュ値を出力する場合に、再配置暗号がインサイダー攻撃に対して安全であることの証明を示する。まず乱数情報出力部2040は、第1の疑似乱数 R を生成し、そのハッシュ値 h(R) を生成する。ここで、h はハッシュ関数であり、衝突困難性を有するとする。
<< Proof >>
As an example, if the rearrangement cipher and the hash function are safe, a proof that the rearrangement cipher is safe against the insider attack when the hash value of the random number is output as the random number information is shown. First, the random number information output unit 2040 generates a first pseudorandom number R and generates a hash value h (R). Here, h is a hash function and has collision difficulty.

上述したインサイダー攻撃を行う場合、暗号文の所定位置に暗号鍵の情報が含まれるようになるまで暗号化を繰り返すため、第1の疑似乱数 R の値が変化する。ここで、暗号文が出力された際における第1の疑似乱数の値を R' とする。ここで、第1の疑似乱数の値が変化したことがユーザに気付かれないようにするためには、乱数のハッシュ値が変化しないようにしなければならない。つまり、h(R) = h(R') を満たす必要がある。   When the insider attack described above is performed, since the encryption is repeated until the encryption key information is included in a predetermined position of the ciphertext, the value of the first pseudorandom number R changes. Here, let R ′ be the value of the first pseudorandom number when the ciphertext is output. Here, in order to prevent the user from noticing that the value of the first pseudo random number has changed, the hash value of the random number must be prevented from changing. That is, it is necessary to satisfy h (R) = h (R ′).

しかし、ハッシュ関数 h は衝突困難性を有するため、h(R) = h(R') であり、なおかつ R ≠ R' となるような R、R' の組を効率よく見つけることができない。よって、h(R) = h(R') であり、なおかつ R ≠ R' となることは、ハッシュ関数 h が衝突困難性を有することと矛盾する。よって、暗号化部2020において第1の疑似乱数 R が変化してしまう上述したインサイダー攻撃を行うことはできない。   However, since the hash function h has difficulty in collision, a pair of R and R ′ such that h (R) = h (R ′) and R ≠ R ′ cannot be found efficiently. Therefore, h (R) = h (R ′) and R ≠ R ′ contradict that the hash function h has difficulty in collision. Therefore, the above-described insider attack in which the first pseudorandom number R changes in the encryption unit 2020 cannot be performed.

なお、乱数を変化させる以外に平文や暗号鍵の内容を漏洩させる方法として、暗号文に対して平文や暗号鍵の情報を別途付加する方法が考えられる。しかし、この方法では暗号化部2020から出力されるデータのデータ長が変化する。   As a method for leaking the contents of the plaintext and the encryption key in addition to changing the random number, a method of separately adding plaintext and encryption key information to the ciphertext is conceivable. However, in this method, the data length of data output from the encryption unit 2020 changes.

例えば、平文を M、ゼロパディングした平文を M0、暗号文を C、暗号鍵を K、あるデータ X のデータ長を Length(X) と表記する。この場合、AES 暗号方式及び再配置暗号方式では、Length(M0) = Length(C)、Length(K) > 0 となる。よって、暗号文 C に暗号鍵 K の情報を付加すると、Length(M0) + Length(K) > Length(C) となり、データ長が大きくなる。よって、暗号化部2020から出力されるデータ長を監視することで、暗号文に暗号鍵や平文の情報を別途付加する攻撃を阻止することができる。   For example, the plaintext is M, the plaintext with zero padding is M0, the ciphertext is C, the encryption key is K, and the data length of some data X is Length (X). In this case, in the AES encryption method and the rearrangement encryption method, Length (M0) = Length (C) and Length (K)> 0. Therefore, if the information of the encryption key K is added to the ciphertext C, Length (M0) + Length (K)> Length (C), and the data length increases. Therefore, by monitoring the data length output from the encryption unit 2020, it is possible to prevent an attack that separately adds an encryption key or plaintext information to the ciphertext.

また、上述の様に暗号文に対して平文や暗号鍵の情報を別途付加したデータを圧縮することによって元の暗号文のデータ長と同じにすることで、データ長を見てもインサイダー攻撃が行われたことが分からないようにすることも考えられる。しかしこの方法では、ユーザが暗号文を復号できなくなる。そして、ユーザは、暗号文を復号できない場合、暗号文に対して何らかの攻撃が行われた可能性があることを把握することができる。よって、このようにデータの圧縮を行う方法でも、インサイダー攻撃を行うことはできない。   In addition, by compressing data in which plaintext and encryption key information are separately added to the ciphertext as described above, the data length is made the same as the data length of the original ciphertext. It may be possible not to know what has been done. However, this method makes it impossible for the user to decrypt the ciphertext. Then, when the ciphertext cannot be decrypted, the user can grasp that there is a possibility that some kind of attack has been performed on the ciphertext. Therefore, an insider attack cannot be performed even by such a method of compressing data.

<ハードウエア構成>
暗号生成装置2000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、暗号生成装置2000の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
<Hardware configuration>
Each functional component of the cryptographic generation apparatus 2000 may be realized by hardware (for example, a hard-wired electronic circuit) that implements each functional component, or a combination of hardware and software (for example: It may be realized by a combination of an electronic circuit and a program for controlling it). Hereinafter, the case where each functional component of the cryptographic generation apparatus 2000 is realized by a combination of hardware and software will be further described.

計算機1000は、Personal Computer(PC)、サーバマシン、タブレット端末、又はスマートフォンなど、種々の計算機である。計算機1000は、暗号生成装置2000を実現するために設計された専用の計算機であってもよいし、汎用の計算機であってもよい。   The computer 1000 is a variety of computers such as a personal computer (PC), a server machine, a tablet terminal, or a smartphone. The computer 1000 may be a dedicated computer designed to realize the encryption generation device 2000, or may be a general-purpose computer.

図4は、暗号生成装置2000を実現する計算機1000の構成を例示する図である。計算機1000は、バス1020、プロセッサ1040、メモリ1060、ストレージ1080、及び入出力インタフェース1100を有する。バス1020は、プロセッサ1040、メモリ1060、及びストレージ1080が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ1040などを互いに接続する方法は、バス接続に限定されない。プロセッサ1040は、CPU (Central Processing Unit) や GPU (Graphics Processing Unit) などの演算処理装置である。メモリ1060は、RAM (Random Access Memory) や ROM (Read Only Memory) などのメモリである。ストレージ1080は、ハードディスク、SSD (Solid State Drive)、又はメモリカードなどの記憶装置である。また、ストレージ1080は、RAM や ROM などのメモリであってもよい。   FIG. 4 is a diagram illustrating a configuration of a computer 1000 that implements the encryption generation apparatus 2000. The computer 1000 includes a bus 1020, a processor 1040, a memory 1060, a storage 1080, and an input / output interface 1100. The bus 1020 is a data transmission path for the processor 1040, the memory 1060, and the storage 1080 to transmit / receive data to / from each other. However, the method of connecting the processors 1040 and the like is not limited to bus connection. The processor 1040 is an arithmetic processing device such as a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit). The memory 1060 is a memory such as a RAM (Random Access Memory) or a ROM (Read Only Memory). The storage 1080 is a storage device such as a hard disk, an SSD (Solid State Drive), or a memory card. The storage 1080 may be a memory such as a RAM or a ROM.

入出力インタフェース1100は、計算機1000と入出力デバイスとを接続するためのインタフェースである。例えば入出力インタフェース1100には、キーボードやディスプレイ装置などが接続される。   The input / output interface 1100 is an interface for connecting the computer 1000 and an input / output device. For example, a keyboard and a display device are connected to the input / output interface 1100.

ストレージ1080は暗号生成装置2000の各機能を実現するプログラムモジュールを記憶している。プロセッサ1040は、これら各プログラムモジュールを実行することで、そのプログラムモジュールに対応する各機能を実現する。   The storage 1080 stores program modules that implement the functions of the cryptographic generation apparatus 2000. The processor 1040 implements each function corresponding to the program module by executing each program module.

計算機1000のハードウエア構成は図4に示した構成に限定されない。例えば、各プログラムモジュールはメモリ1060に格納されてもよい。この場合、計算機1000は、ストレージ1080を備えていなくてもよい。   The hardware configuration of the computer 1000 is not limited to the configuration shown in FIG. For example, each program module may be stored in the memory 1060. In this case, the computer 1000 may not include the storage 1080.

<処理の流れ>
図5は、実施形態1の暗号生成装置2000によって実行される処理の流れを例示するフローチャートである。乱数情報出力部2040は、乱数情報を出力する(S102)。暗号化部2020は、平文及び暗号鍵を取得する(S104)。暗号化部2020は、平文を暗号化して暗号文を生成する(S106)。暗号出力部2060は、暗号文を出力する(S108)。
<Process flow>
FIG. 5 is a flowchart illustrating the flow of processing executed by the cipher generation device 2000 according to the first embodiment. The random number information output unit 2040 outputs random number information (S102). The encryption unit 2020 acquires a plaintext and an encryption key (S104). The encryption unit 2020 encrypts the plain text and generates a cipher text (S106). The cipher output unit 2060 outputs the ciphertext (S108).

<暗号化部2020の詳細>
暗号化部2020は、平文及び暗号鍵を取得する。ここで、平文は任意のデータである。例えば平文は、文字列、画像データ、又は音声データなどである。暗号化部2020が平文を取得する方法は様々である。例えば暗号化部2020は、ユーザによって入力される平文を取得する。また例えば、暗号化部2020は、暗号生成装置2000の内部又は外部に設けられている記憶装置に記憶されている平文を取得する。
<Details of Encryption Unit 2020>
The encryption unit 2020 acquires a plaintext and an encryption key. Here, plain text is arbitrary data. For example, plain text is a character string, image data, audio data, or the like. There are various methods for the encryption unit 2020 to acquire the plaintext. For example, the encryption unit 2020 acquires plain text input by the user. Further, for example, the encryption unit 2020 acquires plaintext stored in a storage device provided inside or outside the encryption generation device 2000.

暗号化部2020が暗号鍵を取得する方法は様々である。例えば暗号化部2020は、ユーザによって入力される暗号鍵を取得する。また例えば、暗号化部2020は、暗号生成装置2000の内部又は外部に設けられている記憶装置に記憶されている暗号鍵を取得する   There are various methods for the encryption unit 2020 to obtain the encryption key. For example, the encryption unit 2020 acquires an encryption key input by the user. For example, the encryption unit 2020 obtains an encryption key stored in a storage device provided inside or outside the encryption generation device 2000.

暗号化部2020が平文を暗号化する方法については、前述した通りである。   The method for encrypting the plaintext by the encryption unit 2020 is as described above.

<乱数情報出力部2040の詳細>
乱数情報出力部2040は、乱数を生成し、その乱数を特定する乱数情報を出力する(S102)。例えば乱数情報は、特定する乱数そのものを示す。また例えば乱数情報は、特定する乱数から算出されたハッシュ値を示す。このハッシュ値の算出に用いるハッシュ関数は、衝突困難性を有する任意のハッシュ関数(例えば SHA-1)である。なお、乱数からハッシュ値を生成する処理は、乱数情報出力部2040によって行われてもよいし、乱数情報出力部2040の外部で行われてもよい。後者の場合、乱数情報出力部2040は乱数のハッシュ値を取得し、そのハッシュ値を乱数情報として出力する。
<Details of Random Number Information Output Unit 2040>
The random number information output unit 2040 generates a random number and outputs random number information that identifies the random number (S102). For example, the random number information indicates the specified random number itself. In addition, for example, the random number information indicates a hash value calculated from the specified random number. The hash function used for calculating the hash value is an arbitrary hash function (for example, SHA-1) having collision difficulty. Note that the process of generating a hash value from a random number may be performed by the random number information output unit 2040 or may be performed outside the random number information output unit 2040. In the latter case, the random number information output unit 2040 acquires a hash value of the random number and outputs the hash value as random number information.

なお、乱数情報出力部2040が乱数を生成する方法には、既知の様々な方法が利用できる。   Various known methods can be used for the random number information output unit 2040 to generate a random number.

ここで、暗号化部2020が再配置暗号方式で暗号化を行う場合、乱数情報出力部2040が出力する乱数情報によって特定される乱数は、第1の疑似乱数 R である。そのために、乱数情報出力部2040は第1の疑似乱数 R を生成する。暗号化部2020は、乱数情報出力部2040によって生成された第1の疑似乱数 R を用いて暗号化を行う。   Here, when the encryption unit 2020 performs encryption by the rearrangement encryption method, the random number specified by the random number information output by the random number information output unit 2040 is the first pseudo-random number R. For this purpose, the random number information output unit 2040 generates a first pseudorandom number R. The encryption unit 2020 performs encryption using the first pseudo-random number R generated by the random number information output unit 2040.

<暗号出力部2060の詳細>
暗号出力部2060は、暗号文を出力する(S108)。ここで、暗号出力部2060が暗号文を出力する方法は任意である。例えば暗号出力部2060は、暗号文を記憶装置に出力することで、記憶装置に暗号文を記憶させる。また例えば暗号出力部2060は、ネットワークを介して暗号文を送信する。
<Details of Encryption Output Unit 2060>
The cipher output unit 2060 outputs the ciphertext (S108). Here, the method by which the cipher output unit 2060 outputs the ciphertext is arbitrary. For example, the cipher output unit 2060 stores the ciphertext in the storage device by outputting the ciphertext to the storage device. For example, the encryption output unit 2060 transmits the ciphertext via the network.

暗号出力部2060は、暗号文のみを出力してもよいし、暗号文と別の情報を共に出力してもよい。ただし、暗号化部2020が AES 暗号方式で暗号化を行う場合(第2前提条件が満たされる場合)、暗号出力部2060は暗号文と乱数とを共に出力する。   The cipher output unit 2060 may output only the ciphertext, or may output information other than the ciphertext. However, when the encryption unit 2020 performs encryption using the AES encryption method (when the second precondition is satisfied), the encryption output unit 2060 outputs both the ciphertext and the random number.

[実施形態2]
図6は、実施形態2に係る暗号生成装置2000を例示するブロック図である。本実施形態における暗号化部2020は、再配置暗号方式で暗号化を行う。つまり、本実施形態においては、前述した第1前提条件が満たされる。また、実施形態2の暗号生成装置2000は、安全性検証部2080をさらに有する。安全性検証部2080は、暗号出力部2060によって出力された暗号文の安全性を検証する。具体的には、安全性検証部2080は、上記暗号文についてインサイダー攻撃が行われたか否かを判定する。以下、その方法を具体的に2つ例示する。
[Embodiment 2]
FIG. 6 is a block diagram illustrating a cipher generation device 2000 according to the second embodiment. The encryption unit 2020 in the present embodiment performs encryption using a rearrangement encryption method. That is, in the present embodiment, the first precondition described above is satisfied. The cipher generation device 2000 according to the second embodiment further includes a security verification unit 2080. The security verification unit 2080 verifies the safety of the ciphertext output by the encryption output unit 2060. Specifically, the security verification unit 2080 determines whether an insider attack has been performed on the ciphertext. Hereinafter, two specific methods will be exemplified.

<方法1>
本方法は、乱数情報が乱数を示す場合において安全性検証部2080が実行する方法である。図7は、実施形態2の方法1を概念的に示した図である。安全性検証部2080は、暗号化部2020によって生成された暗号文を復号する。その結果、安全性検証部2080は、平文と乱数とを得る。そして、安全性検証部2080は、この乱数と、乱数情報出力部2040によって出力された乱数情報が示す乱数とが一致するか否かを判定する。
<Method 1>
This method is a method executed by the security verification unit 2080 when the random number information indicates a random number. FIG. 7 is a diagram conceptually illustrating the method 1 of the second embodiment. The security verification unit 2080 decrypts the ciphertext generated by the encryption unit 2020. As a result, the safety verification unit 2080 obtains a plaintext and a random number. Then, the safety verification unit 2080 determines whether the random number matches the random number indicated by the random number information output by the random number information output unit 2040.

これらの乱数が一致すれば、暗号化部2020によって平文及び暗号鍵が取得された前後において、乱数が変化していないこととなる。よって、インサイダー攻撃が行われていないことが分かる。一方、暗号文を復号して得られた乱数と、乱数情報が示す乱数とが一致しない場合、暗号化部2020によって平文及び暗号鍵が取得された前後において、乱数が変化していることとなる。つまり、インサイダー攻撃が行われている可能性があることが分かる。   If these random numbers match, the random number has not changed before and after the plaintext and the encryption key are acquired by the encryption unit 2020. Therefore, it can be seen that no insider attack has been performed. On the other hand, when the random number obtained by decrypting the ciphertext does not match the random number indicated by the random number information, the random number has changed before and after the plaintext and the encryption key are acquired by the encryption unit 2020. . In other words, it can be seen that an insider attack may have been performed.

<方法2>
本方法は、乱数情報が乱数のハッシュ値を示す場合において安全性検証部2080が実行する方法である。図8は、実施形態2の方法2を概念的に示した図である。まず安全性検証部2080は、方法1と同様に、暗号文を復号して平文と乱数とを得る。次に、安全性検証部2080はこの乱数のハッシュ値を算出する。このハッシュ値の算出に用いられるハッシュ関数は、乱数情報出力部2040がハッシュ値の算出に利用するハッシュ関数と同じハッシュ関数である。そして、安全性検証部2080は、算出したハッシュ値と、乱数情報が示すハッシュ値とが一致するか否かを判定する。
<Method 2>
This method is a method executed by the security verification unit 2080 when the random number information indicates a hash value of a random number. FIG. 8 is a diagram conceptually illustrating the method 2 of the second embodiment. First, as in Method 1, the security verification unit 2080 decrypts the ciphertext and obtains plaintext and a random number. Next, the security verification unit 2080 calculates a hash value of this random number. The hash function used for calculating the hash value is the same hash function as that used by the random number information output unit 2040 for calculating the hash value. Then, the security verification unit 2080 determines whether or not the calculated hash value matches the hash value indicated by the random number information.

これらのハッシュ値が一致すれば、暗号化部2020によって平文及び暗号鍵が取得された前後において、乱数が変化していないこととなる。一方、暗号文を復号して得られた乱数から算出したハッシュ値と、乱数情報が示すハッシュ値とが一致しない場合、暗号化部2020によって平文及び暗号鍵が取得された前後において、乱数が変化していることとなる。よって、方法1の場合と同様に、暗号化部2020によって平文及び暗号鍵が取得された前後において、乱数が変化しているか否かを把握することができるため、インサイダー攻撃が行われていないかどうかを把握することができる。   If these hash values match, the random number has not changed before and after the plaintext and the encryption key are acquired by the encryption unit 2020. On the other hand, if the hash value calculated from the random number obtained by decrypting the ciphertext does not match the hash value indicated by the random number information, the random number changes before and after the plaintext and the encryption key are acquired by the encryption unit 2020. Will be doing. Therefore, as in the case of Method 1, since it is possible to determine whether or not the random number has changed before and after the plaintext and the encryption key are acquired by the encryption unit 2020, whether or not an insider attack has been performed. I can figure out.

なお、上述の各方法では、安全性検証部2080が暗号文を復号できることを前提としている。そのために、安全性検証部2080は、暗号化部2020によって生成された暗号文を復号するための復号鍵を取得する。例えば復号鍵は、暗号生成装置2000の内部又は外部に設けられた記憶装置に記憶されている。なお、暗号化を行う装置では、暗号化に用いる暗号鍵だけでなく、その暗号文の復号に用いる復号鍵も用意されていることが一般的である。   Each method described above assumes that the security verification unit 2080 can decrypt the ciphertext. For this purpose, the security verification unit 2080 obtains a decryption key for decrypting the ciphertext generated by the encryption unit 2020. For example, the decryption key is stored in a storage device provided inside or outside the cipher generation device 2000. Note that in an apparatus that performs encryption, not only an encryption key used for encryption but also a decryption key used for decrypting the ciphertext is generally prepared.

[実施形態3]
実施形態3に係る暗号生成装置2000は、実施形態2の暗号生成装置2000と同様に図6で表される。本実施形態における暗号化部2020は、IV を用いる AES 暗号方式で暗号化を行う。つまり、本実施形態においては、第2前提条件が満たされる。さらに、実施形態3の暗号生成装置2000は、実施形態2の暗号生成装置2000と同様に安全性検証部2080を有する。以下、本実施形態の安全性検証部2080の動作の例を具体的に2つ例示する。
[Embodiment 3]
The cipher generation apparatus 2000 according to the third embodiment is represented in FIG. 6 similarly to the cipher generation apparatus 2000 of the second embodiment. The encryption unit 2020 in the present embodiment performs encryption using the AES encryption method using IV. That is, in the present embodiment, the second precondition is satisfied. Further, the cryptographic generation apparatus 2000 according to the third embodiment includes a security verification unit 2080 as in the cryptographic generation apparatus 2000 according to the second embodiment. Hereinafter, two specific examples of the operation of the safety verification unit 2080 of this embodiment will be exemplified.

<方法1>
本方法は、乱数情報が乱数を示す場合において安全性検証部2080が実行する方法である。図9は、実施形態3の方法1を概念的に示した図である。本実施形態では、暗号出力部2060によって、暗号文と共に乱数が出力される。安全性検証部2080は、暗号出力部2060によって暗号文と共に出力された乱数と、乱数情報出力部2040によって出力された乱数情報が示す乱数とが一致するか否かを判定する。これらの乱数が一致すれば、暗号化部2020によって平文及び暗号鍵が取得された前後において、乱数が変化していないこととなる。一方、これらの乱数が一致しなければ、暗号化部2020によって平文及び暗号鍵が取得された前後において、乱数が変化したこととなる。よって、実施形態2で説明した安全性検証部2080と同様に、暗号化部2020によって平文及び暗号鍵が取得された前後において乱数が変化したか否かを把握できるため、インサイダー攻撃が行われたか否かを把握することができる。
<Method 1>
This method is a method executed by the security verification unit 2080 when the random number information indicates a random number. FIG. 9 is a diagram conceptually illustrating the method 1 of the third embodiment. In the present embodiment, the cipher output unit 2060 outputs a random number together with the ciphertext. The security verification unit 2080 determines whether the random number output together with the ciphertext by the encryption output unit 2060 matches the random number indicated by the random number information output by the random number information output unit 2040. If these random numbers match, the random number has not changed before and after the plaintext and the encryption key are acquired by the encryption unit 2020. On the other hand, if these random numbers do not match, the random number has changed before and after the plaintext and the encryption key are acquired by the encryption unit 2020. Therefore, in the same manner as the security verification unit 2080 described in the second embodiment, whether or not an insider attack has been performed can be determined whether or not the random number has changed before and after the plaintext and the encryption key are acquired by the encryption unit 2020. It is possible to grasp whether or not.

<方法2>
本方法は、乱数情報が乱数のハッシュ値を示す場合において安全性検証部2080が実行する方法である。図10は、実施形態3の方法2を概念的に示した図である。安全性検証部2080は、暗号出力部2060によって暗号文と共に出力された乱数のハッシュ値を算出する。このハッシュ値の算出に用いられるハッシュ関数は、乱数情報出力部2040がハッシュ値の算出に利用するハッシュ関数と同じハッシュ関数である。そして、安全性検証部2080は、算出したハッシュ値と、乱数情報が示すハッシュ値とが一致するか否かを判定する。これらのハッシュ値が一致すれば、暗号化部2020によって平文及び暗号鍵が取得された前後において、乱数が変化していないこととなる。一方、これらのハッシュ値が一致しなければ、暗号化部2020によって平文及び暗号鍵が取得された前後において、乱数が変化したこととなる。よって、実施形態2で説明した安全性検証部2080と同様に、暗号化部2020によって平文及び暗号鍵が取得された前後において乱数が変化したか否かを把握できるため、インサイダー攻撃が行われたか否かを把握することができる。
<Method 2>
This method is a method executed by the security verification unit 2080 when the random number information indicates a hash value of a random number. FIG. 10 is a diagram conceptually illustrating the method 2 of the third embodiment. The security verification unit 2080 calculates a hash value of the random number output together with the ciphertext by the encryption output unit 2060. The hash function used for calculating the hash value is the same hash function as that used by the random number information output unit 2040 for calculating the hash value. Then, the security verification unit 2080 determines whether or not the calculated hash value matches the hash value indicated by the random number information. If these hash values match, the random number has not changed before and after the plaintext and the encryption key are acquired by the encryption unit 2020. On the other hand, if these hash values do not match, the random number has changed before and after the encryption unit 2020 acquires the plaintext and the encryption key. Therefore, in the same manner as the security verification unit 2080 described in the second embodiment, whether or not an insider attack has been performed can be determined whether or not the random number has changed before and after the plaintext and the encryption key are acquired by the encryption unit 2020. It is possible to grasp whether or not.

なお、本実施形態の場合、安全性検証部2080は暗号文を復号する必要がない。   In the present embodiment, the security verification unit 2080 does not need to decrypt the ciphertext.

[実施形態4]
図11は、実施形態4のデータ伝送システム4000を例示するブロック図である。実施形態4において、暗号生成装置2000は、受信装置3000と通信可能に(例えばネットワークを介して)接続されている。暗号生成装置2000は、暗号出力部2060によって出力される情報、及び乱数情報出力部2040によって出力される乱数情報を、受信装置3000へ送信する。前述したように暗号出力部2060から出力される情報は、暗号文のみ、暗号文と乱数、又は暗号文と乱数のハッシュ値などである。受信装置3000は、暗号生成装置2000から送信された情報を受信する。受信装置3000は、受信した暗号文を復号して平文を取得する。これにより、受信装置3000のユーザは、平文の内容を知ることができる。例えば平文が、暗号生成装置2000のユーザが作成したメールの文章であれば、受信装置3000は、そのメールを読むことができる。
[Embodiment 4]
FIG. 11 is a block diagram illustrating a data transmission system 4000 according to the fourth embodiment. In the fourth embodiment, the cipher generation device 2000 is connected to the receiving device 3000 so as to be communicable (for example, via a network). The cipher generation device 2000 transmits the information output by the encryption output unit 2060 and the random number information output by the random number information output unit 2040 to the receiving device 3000. As described above, the information output from the cipher output unit 2060 is only the ciphertext, the ciphertext and the random number, or the hash value of the ciphertext and the random number. The receiving device 3000 receives the information transmitted from the cipher generation device 2000. Receiving device 3000 decrypts the received ciphertext and obtains plaintext. Thereby, the user of the receiving device 3000 can know the contents of the plain text. For example, if the plain text is a text of an email created by a user of the encryption generation device 2000, the receiving device 3000 can read the email.

さらに、受信装置3000は、受信した暗号文の安全性を検証する。つまり、実施形態2や実施形態3で説明した安全性検証部2080による動作と同様の動作が、受信装置3000において行われる。   Furthermore, the receiving device 3000 verifies the security of the received ciphertext. That is, the same operation as that performed by the safety verification unit 2080 described in the second and third embodiments is performed in the receiving device 3000.

上記機能を実現するため、受信装置3000は受信部3020及び安全性検証部3040を有する。受信部3020は、暗号出力部2060によって出力される情報、及び乱数情報を取得する。前述したように、暗号出力部2060によって出力される情報は、暗号文のみ、暗号文と乱数、又は暗号文と乱数のハッシュ値などである。   In order to implement the above functions, the receiving device 3000 includes a receiving unit 3020 and a safety verification unit 3040. The receiving unit 3020 acquires information output by the encryption output unit 2060 and random number information. As described above, the information output by the cipher output unit 2060 is only a ciphertext, a ciphertext and a random number, or a hash value of a ciphertext and a random number.

<暗号化部2020が再配置暗号方式で暗号化を行う場合>
安全性検証部3040は、受信部3020が受信した暗号文を用い、実施形態2で説明した各方法と同様の方法により、インサイダー攻撃が行われていないかどうかを判定する。
<When the encryption unit 2020 performs encryption by the rearrangement encryption method>
The security verification unit 3040 uses the ciphertext received by the reception unit 3020 to determine whether or not an insider attack has been performed by the same method as that described in the second embodiment.

なおこの場合、安全性検証部3040は、暗号文を復号して乱数を得る必要がある。この点、受信装置3000は取得した暗号文を復号する装置であるため、暗号文を復号するための復号鍵を有している。そのため、安全性検証部3040は、この復号鍵を用いて暗号文を復号することができる。   In this case, the security verification unit 3040 needs to decrypt the ciphertext and obtain a random number. In this regard, the receiving device 3000 is a device that decrypts the acquired ciphertext, and thus has a decryption key for decrypting the ciphertext. Therefore, the security verification unit 3040 can decrypt the ciphertext using this decryption key.

<暗号化部2020が AES 暗号方式で暗号化を行う場合>
安全性検証部3040は、受信部3020が受信した暗号文及び乱数を用い、実施形態3で説明した各方法で、インサイダー攻撃が行われていないかどうかを判定する。
<When the encryption unit 2020 performs encryption using the AES encryption method>
The security verification unit 3040 uses the ciphertext and the random number received by the reception unit 3020 to determine whether or not an insider attack has been performed by each method described in the third embodiment.

<作用・効果>
本実施形態によれば、暗号生成装置2000から出力される暗号文の安全性を、受信装置3000において検証することができる。具体的には、暗号生成装置2000から出力される暗号文についてインサイダー攻撃が行われていないかどうかを検証することができる。そのため、受信装置3000のユーザは、インサイダー攻撃が行われていないことを確認した上で、安心して暗号生成装置2000との間で暗号文のやりとりをすることができる。
<Action and effect>
According to the present embodiment, the security of the ciphertext output from the cipher generation device 2000 can be verified by the receiving device 3000. Specifically, it is possible to verify whether or not an insider attack has been performed on the ciphertext output from the cipher generation device 2000. Therefore, the user of the receiving device 3000 can exchange the ciphertext with the cipher generation device 2000 with peace of mind after confirming that no insider attack has been performed.

以上、図面を参照して本発明の実施形態及び実施例について述べたが、これらは本発明の例示であり、上記実施形態や実施例の組み合わせ、及び上記実施形態や実施例以外の様々な構成を採用することもできる。   As mentioned above, although embodiment and Example of this invention were described with reference to drawings, these are illustrations of this invention, the combination of the said embodiment and Example, and various structures other than the said embodiment and Example Can also be adopted.

以下、参考形態の例を付記する。
1. 暗号鍵及び乱数を用いて、平文から暗号文を生成する暗号化部と、
前記暗号化部が前記平文及び前記暗号鍵の双方を取得する前に、前記乱数を特定する乱数情報を出力する、乱数情報出力部と、
前記暗号文を出力する暗号出力部と、を有し、
前記暗号化部は前記平文と前記乱数とを結合したデータから前記暗号文を生成するか、又は前記暗号出力部は前記暗号文と前記乱数を共に出力する、暗号生成装置。
2. 前記暗号化部は、再配置暗号方式で前記平文を暗号化することで前記暗号文を生成する、1.に記載の暗号生成装置。
3. 前記乱数情報は、前記乱数か、又は所定のハッシュ関数を用いて前記乱数から算出されたハッシュ値を示す、1.又は2.に記載の暗号生成装置。
4. 前記暗号出力部によって出力される情報及び前記乱数情報出力部によって出力される前記乱数情報を用いて、前記暗号文の安全性を検証する安全性検証部を有する、1.乃至3.いずれか一つに記載の暗号生成装置。
5. 前記暗号化部は、前記平文と前記乱数とを結合したデータを前記暗号鍵で暗号化して前記暗号文を生成し、
前記乱数情報は前記乱数を示し、
前記安全性検証部は、暗号文を復号することで暗号化に用いられた乱数を復元し、その乱数と前記乱数情報によって示される乱数とが一致するか否かを判定することで、前記暗号文の安全性を検証する、4.に記載の暗号生成装置。
6. 前記暗号化部は、前記平文と前記乱数とを結合したデータを前記暗号鍵で暗号化して前記暗号文を生成し、
前記乱数情報は、所定のハッシュ関数を用いて前記乱数から算出したハッシュ値を示し、
前記安全性検証部は、前記暗号文を復号することで暗号化に用いられた乱数を復元し、前記所定のハッシュ関数を用いて前記復元した乱数のハッシュ値を算出し、そのハッシュ値と前記乱数情報によって示されるハッシュ値とが一致するか否かを判定することで、前記暗号文の安全性を検証する、4.に記載の暗号生成装置。
7. 前記暗号出力部は前記暗号文と前記乱数を共に出力し、
前記乱数情報は前記乱数を示し、
前記安全性検証部は、前記暗号出力部によって出力される乱数と、前記乱数情報によって示される乱数とが一致するか否かを判定することで、前記暗号文の安全性を検証する、4.に記載の暗号生成装置。
8. 前記暗号出力部は前記暗号文と前記乱数を共に出力し、
前記乱数情報は、所定のハッシュ関数を用いて前記乱数から算出したハッシュ値を示し、
前記安全性検証部は、前記所定のハッシュ関数を用いて、前記暗号出力部によって出力された乱数からハッシュ値を算出し、そのハッシュ値と前記乱数情報によって示されるハッシュ値とが一致するか否かを判定することで、前記暗号文の安全性を検証する、4.に記載の暗号生成装置。
9. 1.乃至8.いずれか一つに記載の暗号生成装置、及び受信装置を有するデータ伝送システムであって、
前記受信装置は、
前記暗号出力部によって出力された情報及び前記乱数情報を受信する受信部と、
前記受信部によって受信された、前記暗号出力部によって出力された情報及び前記乱数情報を用いて、前記暗号文の安全性を検証する安全性検証部と、を有するデータ伝送システム。
10. 9.に記載の受信装置。
11. コンピュータによって実行される暗号生成方法であって、
暗号鍵及び乱数を用いて、平文から暗号文を生成する暗号化ステップと、
前記暗号化ステップにおいて、前記平文及び前記暗号鍵の双方を取得する前に、前記乱数を特定する乱数情報を出力する、乱数情報出力ステップと、
前記暗号文を出力する暗号出力ステップと、を有し、
前記暗号化ステップにおいて前記平文と前記乱数とを結合したデータから前記暗号文を生成するか、又は前記暗号出力ステップにおいて前記暗号文と前記乱数を共に出力する、暗号生成方法。
12. 前記暗号化ステップにおいて、再配置暗号方式で前記平文を暗号化することで前記暗号文を生成する、11.に記載の暗号生成方法。
13. 前記乱数情報は、前記乱数か、又は所定のハッシュ関数を用いて前記乱数から算出されたハッシュ値を示す、11.又は12.に記載の暗号生成方法。
14. 前記暗号出力ステップにおいて出力される情報及び前記乱数情報出力部において出力される前記乱数情報を用いて、前記暗号文の安全性を検証する安全性検証ステップを有する、11.乃至13.いずれか一つに記載の暗号生成方法。
15. 前記暗号化ステップにおいて、前記平文と前記乱数とを結合したデータを前記暗号鍵で暗号化して前記暗号文を生成し、
前記乱数情報は前記乱数を示し、
前記安全性検証ステップにおいて、暗号文を復号することで暗号化に用いられた乱数を復元し、その乱数と前記乱数情報によって示される乱数とが一致するか否かを判定することで、前記暗号文の安全性を検証する、14.に記載の暗号生成方法。
16. 前記暗号化ステップにおいて、前記平文と前記乱数とを結合したデータを前記暗号鍵で暗号化して前記暗号文を生成し、
前記乱数情報は、所定のハッシュ関数を用いて前記乱数から算出したハッシュ値を示し、
前記安全性検証ステップにおいて、前記暗号文を復号することで暗号化に用いられた乱数を復元し、前記所定のハッシュ関数を用いて前記復元した乱数のハッシュ値を算出し、そのハッシュ値と前記乱数情報によって示されるハッシュ値とが一致するか否かを判定することで、前記暗号文の安全性を検証する、14.に記載の暗号生成方法。
17. 前記暗号出力ステップにおいて前記暗号文と前記乱数を共に出力し、
前記乱数情報は前記乱数を示し、
前記安全性検証ステップにおいて、前記暗号出力ステップによって出力される乱数と、前記乱数情報によって示される乱数とが一致するか否かを判定することで、前記暗号文の安全性を検証する、14.に記載の暗号生成方法。
18. 前記暗号出力ステップにおいて前記暗号文と前記乱数を共に出力し、
前記乱数情報は、所定のハッシュ関数を用いて前記乱数から算出したハッシュ値を示し、
前記安全性検証ステップにおいて、前記所定のハッシュ関数を用いて、前記暗号出力ステップによって出力された乱数からハッシュ値を算出し、そのハッシュ値と前記乱数情報によって示されるハッシュ値とが一致するか否かを判定することで、前記暗号文の安全性を検証する、14.に記載の暗号生成方法。
19. 暗号生成装置と受信装置とを有するデータ伝送システムによって実行されるデータ伝送方法であって、
暗号生成装置が、暗号鍵及び乱数を用いて、平文から暗号文を生成する暗号化ステップと、
暗号生成装置が、前記暗号化ステップにおいて、前記平文及び前記暗号鍵の双方を取得する前に、前記乱数を特定する乱数情報を出力する、乱数情報出力ステップと、
暗号生成装置が、前記暗号文を出力する暗号出力ステップと、
受信装置が、前記暗号出力ステップにおいて出力された情報及び前記乱数情報を受信する受信ステップと、
受信装置が、前記受信ステップにおいて受信された、前記暗号出力ステップにおいて出力された情報及び前記乱数情報を用いて、前記暗号文の安全性を検証する安全性検証ステップと、を有し、
前記暗号化ステップにおいて前記平文と前記乱数とを結合したデータから前記暗号文を生成するか、又は前記暗号出力ステップにおいて前記暗号文と前記乱数を共に出力する、データ伝送方法。
20. 19.に記載のデータ伝送方法において受信装置が行う各ステップを有する受信方法。
21. 11.乃至18.いずれか一つに記載の暗号生成方法における各ステップをコンピュータに実行させるプログラム。
22. 20.に記載の受信方法における各ステップをコンピュータに実行させるプログラム。
Hereinafter, examples of the reference form will be added.
1. An encryption unit that generates ciphertext from plaintext using an encryption key and a random number;
A random number information output unit that outputs random number information that identifies the random number before the encryption unit acquires both the plaintext and the encryption key;
A cipher output unit for outputting the ciphertext,
The cipher generation device, wherein the encryption unit generates the ciphertext from data obtained by combining the plaintext and the random number, or the cipher output unit outputs both the ciphertext and the random number.
2. The encryption unit generates the ciphertext by encrypting the plaintext using a rearrangement encryption method. The cipher generation device described in 1.
3. The random number information indicates the random number or a hash value calculated from the random number using a predetermined hash function. Or 2. The cipher generation device described in 1.
4). 1. a security verification unit that verifies the security of the ciphertext using the information output by the cipher output unit and the random number information output by the random number information output unit; To 3. The cipher generation device according to any one of the above.
5. The encryption unit generates the ciphertext by encrypting data obtained by combining the plaintext and the random number with the encryption key,
The random number information indicates the random number,
The security verification unit restores the random number used for encryption by decrypting the ciphertext, and determines whether the random number and the random number indicated by the random number information match, thereby determining the encryption 3. Verify the safety of the sentence. The cipher generation device described in 1.
6). The encryption unit generates the ciphertext by encrypting data obtained by combining the plaintext and the random number with the encryption key,
The random number information indicates a hash value calculated from the random number using a predetermined hash function,
The security verification unit restores a random number used for encryption by decrypting the ciphertext, calculates a hash value of the restored random number using the predetermined hash function, and the hash value and the 3. Verifying the security of the ciphertext by determining whether or not the hash value indicated by the random number information matches. The cipher generation device described in 1.
7). The cipher output unit outputs both the ciphertext and the random number,
The random number information indicates the random number,
3. The security verification unit verifies the security of the ciphertext by determining whether or not the random number output by the encryption output unit matches the random number indicated by the random number information. The cipher generation device described in 1.
8). The cipher output unit outputs both the ciphertext and the random number,
The random number information indicates a hash value calculated from the random number using a predetermined hash function,
The safety verification unit calculates a hash value from the random number output by the cryptographic output unit using the predetermined hash function, and whether or not the hash value and the hash value indicated by the random number information match 3. Verifying the security of the ciphertext by determining whether The cipher generation device described in 1.
9. 1. To 8. A data transmission system comprising the cipher generation device according to any one of the above and a reception device,
The receiving device is:
A receiving unit that receives the information output by the encryption output unit and the random number information;
A data transmission system comprising: a safety verification unit that verifies the security of the ciphertext using the information output by the encryption output unit and the random number information received by the reception unit.
10. 9. The receiving device described in 1.
11. A cipher generation method executed by a computer,
An encryption step for generating ciphertext from plaintext using an encryption key and a random number;
In the encryption step, before acquiring both the plaintext and the encryption key, a random number information output step for outputting random number information specifying the random number;
A cipher output step for outputting the ciphertext,
A cipher generation method of generating the ciphertext from data obtained by combining the plaintext and the random number in the encryption step, or outputting both the ciphertext and the random number in the cipher output step.
12 10. In the encryption step, the ciphertext is generated by encrypting the plaintext using a rearrangement encryption method. The cipher generation method described in 1.
13. 10. The random number information indicates the random number or a hash value calculated from the random number using a predetermined hash function. Or 12. The cipher generation method described in 1.
14 10. a security verification step of verifying the security of the ciphertext using the information output in the cipher output step and the random number information output in the random number information output unit; Thru 13. The encryption generation method according to any one of the above.
15. In the encryption step, the ciphertext is generated by encrypting data obtained by combining the plaintext and the random number with the encryption key,
The random number information indicates the random number,
In the security verification step, the ciphertext is decrypted to restore the random number used for the encryption, and it is determined whether or not the random number and the random number indicated by the random number information match. Verify the safety of the sentence, 14. The cipher generation method described in 1.
16. In the encryption step, the ciphertext is generated by encrypting data obtained by combining the plaintext and the random number with the encryption key,
The random number information indicates a hash value calculated from the random number using a predetermined hash function,
In the security verification step, the random number used for encryption is restored by decrypting the ciphertext, the hash value of the restored random number is calculated using the predetermined hash function, and the hash value and the 13. Verifying the security of the ciphertext by determining whether or not the hash value indicated by the random number information matches, The cipher generation method described in 1.
17. Outputting both the ciphertext and the random number in the cipher output step;
The random number information indicates the random number,
13. In the security verification step, the security of the ciphertext is verified by determining whether or not the random number output by the encryption output step matches the random number indicated by the random number information; The cipher generation method described in 1.
18. Outputting both the ciphertext and the random number in the cipher output step;
The random number information indicates a hash value calculated from the random number using a predetermined hash function,
In the security verification step, a hash value is calculated from the random number output by the cryptographic output step using the predetermined hash function, and whether or not the hash value and the hash value indicated by the random number information match 13. verifying the security of the ciphertext by determining whether The cipher generation method described in 1.
19. A data transmission method executed by a data transmission system having a cipher generation device and a reception device,
An encryption step in which an encryption generation device generates an encrypted text from plaintext using an encryption key and a random number;
A cipher generation device that outputs random number information for identifying the random number before acquiring both the plaintext and the encryption key in the encryption step;
A cipher generation device that outputs the ciphertext;
A receiving step in which the receiving device receives the information output in the encryption output step and the random number information;
A security verification step for verifying the security of the ciphertext using the information output in the cipher output step and the random number information received by the reception device in the reception step; and
A data transmission method, wherein the ciphertext is generated from data obtained by combining the plaintext and the random number in the encryption step, or the ciphertext and the random number are output together in the cipher output step.
20. 19. A receiving method comprising the steps performed by the receiving device in the data transmission method according to claim 1.
21. 11. To 18. A program for causing a computer to execute each step in the encryption generation method according to any one of the above.
22. 20. The program which makes a computer perform each step in the receiving method of description.

1000 計算機
1020 バス
1040 プロセッサ
1060 メモリ
1080 ストレージ
1100 入出力インタフェース
2000 暗号生成装置
2020 暗号化部
2040 乱数情報出力部
2060 暗号出力部
2080 安全性検証部
3000 受信装置
3020 受信部
3040 安全性検証部
4000 データ伝送システム
1000 Computer 1020 Bus 1040 Processor 1060 Memory 1080 Storage 1100 I / O interface 2000 Cryptographic generator 2020 Encryption unit 2040 Random number information output unit 2060 Cryptographic output unit 2080 Safety verification unit 3000 Receiving device 3020 Receiving unit 3040 Safety verification unit 4000 Data transmission system

Claims (15)

暗号鍵及び乱数を用いて、平文から暗号文を生成する暗号化部と、
前記暗号化部が前記平文及び前記暗号鍵の双方を取得する前に、前記乱数を特定する乱数情報を出力する、乱数情報出力部と、
前記暗号文を出力する暗号出力部と、を有し、
前記暗号化部は前記平文と前記乱数とを結合したデータから前記暗号文を生成するか、又は前記暗号出力部は前記暗号文と前記乱数を共に出力する、暗号生成装置。
An encryption unit that generates ciphertext from plaintext using an encryption key and a random number;
A random number information output unit that outputs random number information that identifies the random number before the encryption unit acquires both the plaintext and the encryption key;
A cipher output unit for outputting the ciphertext,
The cipher generation device, wherein the encryption unit generates the ciphertext from data obtained by combining the plaintext and the random number, or the cipher output unit outputs both the ciphertext and the random number.
前記暗号化部は、再配置暗号方式で前記平文を暗号化することで前記暗号文を生成する、請求項1に記載の暗号生成装置。   The cipher generation device according to claim 1, wherein the encryption unit generates the ciphertext by encrypting the plaintext using a rearrangement encryption method. 前記乱数情報は、前記乱数か、又は所定のハッシュ関数を用いて前記乱数から算出されたハッシュ値を示す、請求項1又は2に記載の暗号生成装置。   The cipher generation device according to claim 1, wherein the random number information indicates the random number or a hash value calculated from the random number using a predetermined hash function. 前記暗号出力部によって出力される情報及び前記乱数情報出力部によって出力される前記乱数情報を用いて、前記暗号文の安全性を検証する安全性検証部を有する、請求項1乃至3いずれか一項に記載の暗号生成装置。   4. The apparatus according to claim 1, further comprising a security verification unit that verifies the security of the ciphertext using the information output by the cipher output unit and the random number information output by the random number information output unit. The cipher generation device according to the item. 前記暗号化部は、前記平文と前記乱数とを結合したデータを前記暗号鍵で暗号化して前記暗号文を生成し、
前記乱数情報は前記乱数を示し、
前記安全性検証部は、暗号文を復号することで暗号化に用いられた乱数を復元し、その乱数と前記乱数情報によって示される乱数とが一致するか否かを判定することで、前記暗号文の安全性を検証する、請求項4に記載の暗号生成装置。
The encryption unit generates the ciphertext by encrypting data obtained by combining the plaintext and the random number with the encryption key,
The random number information indicates the random number,
The security verification unit restores the random number used for encryption by decrypting the ciphertext, and determines whether the random number and the random number indicated by the random number information match, thereby determining the encryption The code | symbol production | generation apparatus of Claim 4 which verifies the safety | security of a sentence.
前記暗号化部は、前記平文と前記乱数とを結合したデータを前記暗号鍵で暗号化して前記暗号文を生成し、
前記乱数情報は、所定のハッシュ関数を用いて前記乱数から算出したハッシュ値を示し、
前記安全性検証部は、前記暗号文を復号することで暗号化に用いられた乱数を復元し、前記所定のハッシュ関数を用いて前記復元した乱数のハッシュ値を算出し、そのハッシュ値と前記乱数情報によって示されるハッシュ値とが一致するか否かを判定することで、前記暗号文の安全性を検証する、請求項4に記載の暗号生成装置。
The encryption unit generates the ciphertext by encrypting data obtained by combining the plaintext and the random number with the encryption key,
The random number information indicates a hash value calculated from the random number using a predetermined hash function,
The security verification unit restores a random number used for encryption by decrypting the ciphertext, calculates a hash value of the restored random number using the predetermined hash function, and the hash value and the The cipher generation device according to claim 4, wherein the ciphertext security is verified by determining whether or not the hash value indicated by the random number information matches.
前記暗号出力部は前記暗号文と前記乱数を共に出力し、
前記乱数情報は前記乱数を示し、
前記安全性検証部は、前記暗号出力部によって出力される乱数と、前記乱数情報によって示される乱数とが一致するか否かを判定することで、前記暗号文の安全性を検証する、請求項4に記載の暗号生成装置。
The cipher output unit outputs both the ciphertext and the random number,
The random number information indicates the random number,
The safety verification unit verifies the safety of the ciphertext by determining whether or not a random number output by the encryption output unit matches a random number indicated by the random number information. 4. The cipher generation device according to 4.
前記暗号出力部は前記暗号文と前記乱数を共に出力し、
前記乱数情報は前記乱数から算出したハッシュ値を示し、
前記安全性検証部は、前記所定のハッシュ関数を用いて、前記暗号出力部によって出力された乱数からハッシュ値を算出し、そのハッシュ値と前記乱数情報によって示されるハッシュ値とが一致するか否かを判定することで、前記暗号文の安全性を検証する、請求項4に記載の暗号生成装置。
The cipher output unit outputs both the ciphertext and the random number,
The random number information indicates a hash value calculated from the random number,
The safety verification unit calculates a hash value from the random number output by the cryptographic output unit using the predetermined hash function, and whether or not the hash value and the hash value indicated by the random number information match The cipher generation device according to claim 4, wherein security of the ciphertext is verified by determining whether the ciphertext is safe.
請求項1乃至8いずれか一項に記載の暗号生成装置、及び受信装置を有するデータ伝送システムであって、
前記受信装置は、
前記暗号出力部によって出力された情報及び前記乱数情報を受信する受信部と、
前記受信部によって受信された、前記暗号出力部によって出力された情報及び前記乱数情報を用いて、前記暗号文の安全性を検証する安全性検証部と、を有するデータ伝送システム。
A data transmission system comprising the cipher generation device according to any one of claims 1 to 8 and a reception device,
The receiving device is:
A receiving unit that receives the information output by the encryption output unit and the random number information;
A data transmission system comprising: a safety verification unit that verifies the security of the ciphertext using the information output by the encryption output unit and the random number information received by the reception unit.
請求項9に記載の受信装置。   The receiving device according to claim 9. コンピュータによって実行される暗号生成方法であって、
暗号鍵及び乱数を用いて、平文から暗号文を生成する暗号化ステップと、
前記暗号化ステップにおいて、前記平文及び前記暗号鍵の双方を取得する前に、前記乱数を特定する乱数情報を出力する、乱数情報出力ステップと、
前記暗号文を出力する暗号出力ステップと、を有し、
前記暗号化ステップにおいて前記平文と前記乱数とを結合したデータから前記暗号文を生成するか、又は前記暗号出力ステップにおいて前記暗号文と前記乱数を共に出力する、暗号生成方法。
A cipher generation method executed by a computer,
An encryption step for generating ciphertext from plaintext using an encryption key and a random number;
In the encryption step, before acquiring both the plaintext and the encryption key, a random number information output step for outputting random number information specifying the random number;
A cipher output step for outputting the ciphertext,
A cipher generation method of generating the ciphertext from data obtained by combining the plaintext and the random number in the encryption step, or outputting both the ciphertext and the random number in the cipher output step.
暗号生成装置と受信装置とを有するデータ伝送システムによって実行されるデータ伝送方法であって、
暗号生成装置が、暗号鍵及び乱数を用いて、平文から暗号文を生成する暗号化ステップと、
暗号生成装置が、前記暗号化ステップにおいて、前記平文及び前記暗号鍵の双方を取得する前に、前記乱数を特定する乱数情報を出力する、乱数情報出力ステップと、
暗号生成装置が、前記暗号文を出力する暗号出力ステップと、
受信装置が、前記暗号出力ステップにおいて出力された情報及び前記乱数情報を受信する受信ステップと、
受信装置が、前記受信ステップにおいて受信された、前記暗号出力ステップにおいて出力された情報及び前記乱数情報を用いて、前記暗号文の安全性を検証する安全性検証ステップと、を有し、
前記暗号化ステップにおいて前記平文と前記乱数とを結合したデータから前記暗号文を生成するか、又は前記暗号出力ステップにおいて前記暗号文と前記乱数を共に出力する、データ伝送方法。
A data transmission method executed by a data transmission system having a cipher generation device and a reception device,
An encryption step in which an encryption generation device generates an encrypted text from plaintext using an encryption key and a random number;
A cipher generation device that outputs random number information for identifying the random number before acquiring both the plaintext and the encryption key in the encryption step;
A cipher generation device that outputs the ciphertext;
A receiving step in which the receiving device receives the information output in the encryption output step and the random number information;
A security verification step for verifying the security of the ciphertext using the information output in the cipher output step and the random number information received by the reception device in the reception step; and
A data transmission method, wherein the ciphertext is generated from data obtained by combining the plaintext and the random number in the encryption step, or the ciphertext and the random number are output together in the cipher output step.
請求項12に記載のデータ伝送方法において受信装置が行う各ステップを有する受信方法。   The data transmission method according to claim 12, comprising a step performed by the receiving device. 請求項11に記載の暗号生成方法における各ステップをコンピュータに実行させるプログラム。   The program which makes a computer perform each step in the encryption production | generation method of Claim 11. 請求項13に記載の受信方法における各ステップをコンピュータに実行させるプログラム。   The program which makes a computer perform each step in the receiving method of Claim 13.
JP2016009852A 2016-01-21 2016-01-21 Cipher generation device, data transmission system, cipher generation method, and data transmission method Pending JP2017129779A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016009852A JP2017129779A (en) 2016-01-21 2016-01-21 Cipher generation device, data transmission system, cipher generation method, and data transmission method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016009852A JP2017129779A (en) 2016-01-21 2016-01-21 Cipher generation device, data transmission system, cipher generation method, and data transmission method

Publications (1)

Publication Number Publication Date
JP2017129779A true JP2017129779A (en) 2017-07-27

Family

ID=59395487

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016009852A Pending JP2017129779A (en) 2016-01-21 2016-01-21 Cipher generation device, data transmission system, cipher generation method, and data transmission method

Country Status (1)

Country Link
JP (1) JP2017129779A (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10154976A (en) * 1996-11-22 1998-06-09 Toshiba Corp Tamper-free system
JP2008124987A (en) * 2006-11-15 2008-05-29 Mitsubishi Electric Corp Cipher communication apparatus and cipher communication system and cipher communication method and program
JP4737334B2 (en) * 2007-03-19 2011-07-27 学校法人東京電機大学 Encryption device, decryption device, encryption program, decryption program, and recording medium

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10154976A (en) * 1996-11-22 1998-06-09 Toshiba Corp Tamper-free system
JP2008124987A (en) * 2006-11-15 2008-05-29 Mitsubishi Electric Corp Cipher communication apparatus and cipher communication system and cipher communication method and program
JP4737334B2 (en) * 2007-03-19 2011-07-27 学校法人東京電機大学 Encryption device, decryption device, encryption program, decryption program, and recording medium

Similar Documents

Publication Publication Date Title
US12101415B2 (en) Method of RSA signature or decryption protected using a homomorphic encryption
US10623176B2 (en) Authentication encryption method, authentication decryption method, and information-processing device
US11063743B2 (en) Method of RSA signature of decryption protected using assymetric multiplicative splitting
CN113711564A (en) Computer-implemented method and system for encrypting data
CN113726725A (en) Data encryption and decryption method and device, electronic equipment and storage medium
CN114095170A (en) Data processing method, device, system and computer readable storage medium
US12107965B2 (en) Data encryption and integrity verification
MAQABLEH Analysis and design security primitives based on chaotic systems for ecommerce
US9800410B1 (en) Data encryption system and method
US20110317840A1 (en) System and method of performing authentication
CN106534077B (en) A kind of identifiable proxy re-encryption system and method based on symmetric cryptography
WO2018047120A1 (en) A system and method for data block modification detection and authentication codes
JP6631989B2 (en) Encryption device, control method, and program
CN110474967B (en) Block chain experiment system and method
Alrammahi et al. Development of Advanced Encryption Standard (AES) Cryptography Algorithm for Wi-Fi Security Protocol
JP2017129779A (en) Cipher generation device, data transmission system, cipher generation method, and data transmission method
JP2007521676A (en) Generation and verification of Diffie-Hellman digital signatures
Mohamed et al. Cryptography concepts: Confidentiality
KR20150103394A (en) Cryptography system and cryptographic communication method thereof
US11477024B2 (en) Information processing apparatus and information processing method
US20240356727A1 (en) Method and Apparatus for Activating a Remote Device
CN102474413A (en) Private key compression
Khan et al. In-Depth Analysis of Cryptographic Algorithms for Cloud-Database Security
Abikoye et al. Symmetric and Asymmetric Based Encryption Model for Mobile Commerce
ONASHOGA et al. A SECURED EMBEDDED SCHEME BASED ON MULTI-CRYPTOGRAPHIC PROTOCOLS

Legal Events

Date Code Title Description
A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20160209

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181228

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20190122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20190122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200107

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200309

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200707