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 PDFInfo
- 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
Links
Images
Abstract
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.
暗号文に対する攻撃の一つとして、インサイダー攻撃と呼ばれるものがある。インサイダー攻撃は、暗号化の処理を行う装置やその装置で用いられる暗号プログラムの制作者や管理者等が、その装置や暗号プログラムが行う処理の中に不正な処理を含めることで、ユーザに気付かれないように平文や暗号鍵の内容を漏洩させるという攻撃である。 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.
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。また、各ブロック図において、矢印の流れは、情報の流れを示している。さらに、各ブロック図において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を示している。 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
暗号生成装置2000は、以下の2つの前提条件の内、少なくとも一方を満たす。一つ目の前提条件は、暗号化部2020が、平文と乱数とを結合したデータから暗号文を生成することである。二つ目の条件は、暗号出力部2060が、暗号文と乱数を共に出力することである。以下、前者を第1前提条件、後者を第2前提条件と呼ぶ。
The
前述した前提条件のどちらが満たされるのかは、暗号化部2020が利用する暗号方式によって異なる。以下、それぞれについて説明する。
Which of the above-mentioned preconditions is satisfied depends on the encryption method used by the
<第1前提条件が満たされる場合について>
第1前提条件が満たされる場合、暗号化部2020は、再配置暗号方式を利用する。再配置暗号方式は特許文献2に開示されている暗号方式である。以下、再配置暗号方式の概略を説明する。なお、再配置暗号方式の詳細な説明は、特許文献2に開示されている。
<When the first precondition is satisfied>
When the first precondition is satisfied, the
暗号化部2020は、第1の疑似乱数 R を取得する。暗号化部2020は、R を初期値として第2の疑似乱数 R2 を生成する。暗号化部2020は、R2を用いて平文をストリーム暗号化し、中間データ M' を生成する。暗号化部2020は、第1の疑似乱数 R 及び中間データ M' について、再配置表 K を SBOX として用いて、非線形な一体化をする。最後に暗号化部2020は、この一体化されたデータを再配置表 K を用いて再配置することで、最終的な暗号文 C を出力する。ここで、再配置暗号方式では、暗号鍵が再配置表 K として用いられる。
The
上述のように、再配置暗号方式では、乱数(第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
<第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
これらの暗号利用モードの 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
なお、上述の各暗号利用モードにおける具体的な暗号処理は既知の技術であるため、その説明は省略する。 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
上述のインサイダー攻撃では必然的に、平文や暗号鍵を取得した後において、乱数の生成又は変更が行われる。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
そこで本実施形態の暗号生成装置2000は、暗号化部2020によって平文及び暗号鍵の双方が取得される前に、暗号化部2020が暗号化に利用する乱数を特定する乱数情報を出力する。こうすることで、暗号化部2020が暗号化に別の乱数を用いた場合、つまりはインサイダー攻撃が行われた場合に、乱数が異なっていることを検出することができる。よって、本実施形態によれば、再配置暗号方式や AES 暗号方式を利用する暗号装置等におけるインサイダー攻撃に対する安全性を向上することができる。
Therefore, before the
<<証明>>
例として、再配置暗号とハッシュ関数が安全ならば、乱数情報として乱数のハッシュ値を出力する場合に、再配置暗号がインサイダー攻撃に対して安全であることの証明を示する。まず乱数情報出力部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
上述したインサイダー攻撃を行う場合、暗号文の所定位置に暗号鍵の情報が含まれるようになるまで暗号化を繰り返すため、第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
なお、乱数を変化させる以外に平文や暗号鍵の内容を漏洩させる方法として、暗号文に対して平文や暗号鍵の情報を別途付加する方法が考えられる。しかし、この方法では暗号化部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
例えば、平文を 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
また、上述の様に暗号文に対して平文や暗号鍵の情報を別途付加したデータを圧縮することによって元の暗号文のデータ長と同じにすることで、データ長を見てもインサイダー攻撃が行われたことが分からないようにすることも考えられる。しかしこの方法では、ユーザが暗号文を復号できなくなる。そして、ユーザは、暗号文を復号できない場合、暗号文に対して何らかの攻撃が行われた可能性があることを把握することができる。よって、このようにデータの圧縮を行う方法でも、インサイダー攻撃を行うことはできない。 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
計算機1000は、Personal Computer(PC)、サーバマシン、タブレット端末、又はスマートフォンなど、種々の計算機である。計算機1000は、暗号生成装置2000を実現するために設計された専用の計算機であってもよいし、汎用の計算機であってもよい。
The
図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
入出力インタフェース1100は、計算機1000と入出力デバイスとを接続するためのインタフェースである。例えば入出力インタフェース1100には、キーボードやディスプレイ装置などが接続される。
The input /
ストレージ1080は暗号生成装置2000の各機能を実現するプログラムモジュールを記憶している。プロセッサ1040は、これら各プログラムモジュールを実行することで、そのプログラムモジュールに対応する各機能を実現する。
The
計算機1000のハードウエア構成は図4に示した構成に限定されない。例えば、各プログラムモジュールはメモリ1060に格納されてもよい。この場合、計算機1000は、ストレージ1080を備えていなくてもよい。
The hardware configuration of the
<処理の流れ>
図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
<暗号化部2020の詳細>
暗号化部2020は、平文及び暗号鍵を取得する。ここで、平文は任意のデータである。例えば平文は、文字列、画像データ、又は音声データなどである。暗号化部2020が平文を取得する方法は様々である。例えば暗号化部2020は、ユーザによって入力される平文を取得する。また例えば、暗号化部2020は、暗号生成装置2000の内部又は外部に設けられている記憶装置に記憶されている平文を取得する。
<Details of
The
暗号化部2020が暗号鍵を取得する方法は様々である。例えば暗号化部2020は、ユーザによって入力される暗号鍵を取得する。また例えば、暗号化部2020は、暗号生成装置2000の内部又は外部に設けられている記憶装置に記憶されている暗号鍵を取得する
There are various methods for the
暗号化部2020が平文を暗号化する方法については、前述した通りである。
The method for encrypting the plaintext by the
<乱数情報出力部2040の詳細>
乱数情報出力部2040は、乱数を生成し、その乱数を特定する乱数情報を出力する(S102)。例えば乱数情報は、特定する乱数そのものを示す。また例えば乱数情報は、特定する乱数から算出されたハッシュ値を示す。このハッシュ値の算出に用いるハッシュ関数は、衝突困難性を有する任意のハッシュ関数(例えば SHA-1)である。なお、乱数からハッシュ値を生成する処理は、乱数情報出力部2040によって行われてもよいし、乱数情報出力部2040の外部で行われてもよい。後者の場合、乱数情報出力部2040は乱数のハッシュ値を取得し、そのハッシュ値を乱数情報として出力する。
<Details of Random Number
The random number
なお、乱数情報出力部2040が乱数を生成する方法には、既知の様々な方法が利用できる。
Various known methods can be used for the random number
ここで、暗号化部2020が再配置暗号方式で暗号化を行う場合、乱数情報出力部2040が出力する乱数情報によって特定される乱数は、第1の疑似乱数 R である。そのために、乱数情報出力部2040は第1の疑似乱数 R を生成する。暗号化部2020は、乱数情報出力部2040によって生成された第1の疑似乱数 R を用いて暗号化を行う。
Here, when the
<暗号出力部2060の詳細>
暗号出力部2060は、暗号文を出力する(S108)。ここで、暗号出力部2060が暗号文を出力する方法は任意である。例えば暗号出力部2060は、暗号文を記憶装置に出力することで、記憶装置に暗号文を記憶させる。また例えば暗号出力部2060は、ネットワークを介して暗号文を送信する。
<Details of
The
暗号出力部2060は、暗号文のみを出力してもよいし、暗号文と別の情報を共に出力してもよい。ただし、暗号化部2020が AES 暗号方式で暗号化を行う場合(第2前提条件が満たされる場合)、暗号出力部2060は暗号文と乱数とを共に出力する。
The
[実施形態2]
図6は、実施形態2に係る暗号生成装置2000を例示するブロック図である。本実施形態における暗号化部2020は、再配置暗号方式で暗号化を行う。つまり、本実施形態においては、前述した第1前提条件が満たされる。また、実施形態2の暗号生成装置2000は、安全性検証部2080をさらに有する。安全性検証部2080は、暗号出力部2060によって出力された暗号文の安全性を検証する。具体的には、安全性検証部2080は、上記暗号文についてインサイダー攻撃が行われたか否かを判定する。以下、その方法を具体的に2つ例示する。
[Embodiment 2]
FIG. 6 is a block diagram illustrating a
<方法1>
本方法は、乱数情報が乱数を示す場合において安全性検証部2080が実行する方法である。図7は、実施形態2の方法1を概念的に示した図である。安全性検証部2080は、暗号化部2020によって生成された暗号文を復号する。その結果、安全性検証部2080は、平文と乱数とを得る。そして、安全性検証部2080は、この乱数と、乱数情報出力部2040によって出力された乱数情報が示す乱数とが一致するか否かを判定する。
<Method 1>
This method is a method executed by the
これらの乱数が一致すれば、暗号化部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
<方法2>
本方法は、乱数情報が乱数のハッシュ値を示す場合において安全性検証部2080が実行する方法である。図8は、実施形態2の方法2を概念的に示した図である。まず安全性検証部2080は、方法1と同様に、暗号文を復号して平文と乱数とを得る。次に、安全性検証部2080はこの乱数のハッシュ値を算出する。このハッシュ値の算出に用いられるハッシュ関数は、乱数情報出力部2040がハッシュ値の算出に利用するハッシュ関数と同じハッシュ関数である。そして、安全性検証部2080は、算出したハッシュ値と、乱数情報が示すハッシュ値とが一致するか否かを判定する。
<Method 2>
This method is a method executed by the
これらのハッシュ値が一致すれば、暗号化部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
なお、上述の各方法では、安全性検証部2080が暗号文を復号できることを前提としている。そのために、安全性検証部2080は、暗号化部2020によって生成された暗号文を復号するための復号鍵を取得する。例えば復号鍵は、暗号生成装置2000の内部又は外部に設けられた記憶装置に記憶されている。なお、暗号化を行う装置では、暗号化に用いる暗号鍵だけでなく、その暗号文の復号に用いる復号鍵も用意されていることが一般的である。
Each method described above assumes that the
[実施形態3]
実施形態3に係る暗号生成装置2000は、実施形態2の暗号生成装置2000と同様に図6で表される。本実施形態における暗号化部2020は、IV を用いる AES 暗号方式で暗号化を行う。つまり、本実施形態においては、第2前提条件が満たされる。さらに、実施形態3の暗号生成装置2000は、実施形態2の暗号生成装置2000と同様に安全性検証部2080を有する。以下、本実施形態の安全性検証部2080の動作の例を具体的に2つ例示する。
[Embodiment 3]
The
<方法1>
本方法は、乱数情報が乱数を示す場合において安全性検証部2080が実行する方法である。図9は、実施形態3の方法1を概念的に示した図である。本実施形態では、暗号出力部2060によって、暗号文と共に乱数が出力される。安全性検証部2080は、暗号出力部2060によって暗号文と共に出力された乱数と、乱数情報出力部2040によって出力された乱数情報が示す乱数とが一致するか否かを判定する。これらの乱数が一致すれば、暗号化部2020によって平文及び暗号鍵が取得された前後において、乱数が変化していないこととなる。一方、これらの乱数が一致しなければ、暗号化部2020によって平文及び暗号鍵が取得された前後において、乱数が変化したこととなる。よって、実施形態2で説明した安全性検証部2080と同様に、暗号化部2020によって平文及び暗号鍵が取得された前後において乱数が変化したか否かを把握できるため、インサイダー攻撃が行われたか否かを把握することができる。
<Method 1>
This method is a method executed by the
<方法2>
本方法は、乱数情報が乱数のハッシュ値を示す場合において安全性検証部2080が実行する方法である。図10は、実施形態3の方法2を概念的に示した図である。安全性検証部2080は、暗号出力部2060によって暗号文と共に出力された乱数のハッシュ値を算出する。このハッシュ値の算出に用いられるハッシュ関数は、乱数情報出力部2040がハッシュ値の算出に利用するハッシュ関数と同じハッシュ関数である。そして、安全性検証部2080は、算出したハッシュ値と、乱数情報が示すハッシュ値とが一致するか否かを判定する。これらのハッシュ値が一致すれば、暗号化部2020によって平文及び暗号鍵が取得された前後において、乱数が変化していないこととなる。一方、これらのハッシュ値が一致しなければ、暗号化部2020によって平文及び暗号鍵が取得された前後において、乱数が変化したこととなる。よって、実施形態2で説明した安全性検証部2080と同様に、暗号化部2020によって平文及び暗号鍵が取得された前後において乱数が変化したか否かを把握できるため、インサイダー攻撃が行われたか否かを把握することができる。
<Method 2>
This method is a method executed by the
なお、本実施形態の場合、安全性検証部2080は暗号文を復号する必要がない。
In the present embodiment, the
[実施形態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
さらに、受信装置3000は、受信した暗号文の安全性を検証する。つまり、実施形態2や実施形態3で説明した安全性検証部2080による動作と同様の動作が、受信装置3000において行われる。
Furthermore, the
上記機能を実現するため、受信装置3000は受信部3020及び安全性検証部3040を有する。受信部3020は、暗号出力部2060によって出力される情報、及び乱数情報を取得する。前述したように、暗号出力部2060によって出力される情報は、暗号文のみ、暗号文と乱数、又は暗号文と乱数のハッシュ値などである。
In order to implement the above functions, the
<暗号化部2020が再配置暗号方式で暗号化を行う場合>
安全性検証部3040は、受信部3020が受信した暗号文を用い、実施形態2で説明した各方法と同様の方法により、インサイダー攻撃が行われていないかどうかを判定する。
<When the
The
なおこの場合、安全性検証部3040は、暗号文を復号して乱数を得る必要がある。この点、受信装置3000は取得した暗号文を復号する装置であるため、暗号文を復号するための復号鍵を有している。そのため、安全性検証部3040は、この復号鍵を用いて暗号文を復号することができる。
In this case, the
<暗号化部2020が AES 暗号方式で暗号化を行う場合>
安全性検証部3040は、受信部3020が受信した暗号文及び乱数を用い、実施形態3で説明した各方法で、インサイダー攻撃が行われていないかどうかを判定する。
<When the
The
<作用・効果>
本実施形態によれば、暗号生成装置2000から出力される暗号文の安全性を、受信装置3000において検証することができる。具体的には、暗号生成装置2000から出力される暗号文についてインサイダー攻撃が行われていないかどうかを検証することができる。そのため、受信装置3000のユーザは、インサイダー攻撃が行われていないことを確認した上で、安心して暗号生成装置2000との間で暗号文のやりとりをすることができる。
<Action and effect>
According to the present embodiment, the security of the ciphertext output from the
以上、図面を参照して本発明の実施形態及び実施例について述べたが、これらは本発明の例示であり、上記実施形態や実施例の組み合わせ、及び上記実施形態や実施例以外の様々な構成を採用することもできる。 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
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.
前記乱数情報は前記乱数を示し、
前記安全性検証部は、暗号文を復号することで暗号化に用いられた乱数を復元し、その乱数と前記乱数情報によって示される乱数とが一致するか否かを判定することで、前記暗号文の安全性を検証する、請求項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.
前記受信装置は、
前記暗号出力部によって出力された情報及び前記乱数情報を受信する受信部と、
前記受信部によって受信された、前記暗号出力部によって出力された情報及び前記乱数情報を用いて、前記暗号文の安全性を検証する安全性検証部と、を有するデータ伝送システム。 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.
暗号鍵及び乱数を用いて、平文から暗号文を生成する暗号化ステップと、
前記暗号化ステップにおいて、前記平文及び前記暗号鍵の双方を取得する前に、前記乱数を特定する乱数情報を出力する、乱数情報出力ステップと、
前記暗号文を出力する暗号出力ステップと、を有し、
前記暗号化ステップにおいて前記平文と前記乱数とを結合したデータから前記暗号文を生成するか、又は前記暗号出力ステップにおいて前記暗号文と前記乱数を共に出力する、暗号生成方法。 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.
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)
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 |
-
2016
- 2016-01-21 JP JP2016009852A patent/JP2017129779A/en active Pending
Patent Citations (3)
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 |