JP2001013870A - Method of common key enciphering or deciphering, and recording medium with common key ciphering or deciphering program recorded thereon - Google Patents

Method of common key enciphering or deciphering, and recording medium with common key ciphering or deciphering program recorded thereon

Info

Publication number
JP2001013870A
JP2001013870A JP11184453A JP18445399A JP2001013870A JP 2001013870 A JP2001013870 A JP 2001013870A JP 11184453 A JP11184453 A JP 11184453A JP 18445399 A JP18445399 A JP 18445399A JP 2001013870 A JP2001013870 A JP 2001013870A
Authority
JP
Japan
Prior art keywords
original
vector
random number
mapping
numbers
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
JP11184453A
Other languages
Japanese (ja)
Inventor
Akio Imoto
明夫 井本
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP11184453A priority Critical patent/JP2001013870A/en
Publication of JP2001013870A publication Critical patent/JP2001013870A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide a common key ciphering method virtually disabling a known plaintext attack and a selected plaintext attack. SOLUTION: The disclosed common key enciphering method enciphers a plaintext by preparing a table of random digits and a reading mechanism 1, an indirect index array 2, and a four-dimensional matrix 4 with constant coefficients beforehand, deciding display start positions of each step of the table of random digits from a secret key 6, calculating (p+q) pieces of original maps by the table of random digits and the reading mechanism 1 every time m-bytes of character string is taken out of a plaintext, generating a 1st indirect index array presenting a composited map of the p-pieces of original lamp numbers and a 2nd indirect index array presenting a composited map of the q-pieces of original map numbers, converting the character string taken out of the plaintext data by the 1st indirect index array, converting the character string of this conversion result by integrating it with m-dimensional matrix with constant coefficients, and storing in the ciphertext a character string obtained by converting the character string of the conversion result by the 2nd indirect index array.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】この発明は、暗号化処理と復
号化処理とに共通の秘密鍵を用いる、共通鍵暗号化又は
復号化方法並びに共通鍵暗号化又は復号化プログラムを
記録した記憶媒体に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a common key encryption or decryption method using a common secret key for encryption and decryption, and a storage medium storing a common key encryption or decryption program. .

【0002】[0002]

【従来の技術】従来、この種の暗号化方式は、秘密鍵の
内容を知らずに、暗号文に対して解読を試みる攻撃者に
対して、暗号化されたデータの安全性を確保することを
目的として用いられている。例えば、ブロック型暗号化
方式としては、現在、米国において標準化されている暗
号化規格である、DES(Data Encryption Standard)
暗号によるものが、広く使用されている。しかしなが
ら、DESでは、選択平文攻撃によって、差分解析法と
呼ばれる手段で解読され、また、既知平文攻撃によっ
て、線形解読法と呼ばれる手段で解読される危険があ
る。これは、DESでは、転置以外には、排他的論理和
という、線形の性質を持つ変換しか行っていないためで
ある。
2. Description of the Related Art Conventionally, this type of encryption system is designed to secure the security of encrypted data against an attacker who attempts to decrypt a ciphertext without knowing the contents of a secret key. Used for purposes. For example, DES (Data Encryption Standard), which is an encryption standard currently standardized in the United States, is used as a block type encryption system.
Cryptography is widely used. However, in DES, there is a risk of being decrypted by a means called a differential analysis method by a selective plaintext attack and by a means called a linear decryption method by a known plaintext attack. This is because the DES performs only a transformation having a linear property, that is, an exclusive OR, other than the transposition.

【0003】また、DESは、計算機上のプログラムと
しては、処理が遅いが、これによって、攻撃者が専用の
ハードウェアを用いた場合に、攻撃者だけが有利になっ
て、利用者が不利になるという欠点につながる。これ
は、DESは、転置及びビットごとの排他的論理和とい
う、計算機上では実行速度の遅い処理を多用しているた
めである。これに対して、特開平10−123949号
(特願平9−217299号)公報には、DES暗号を
改良して、差分解析に対して安全性を強化する技術が開
示されている。しかしながら、この従来技術によって
も、依然として、計算機上のプログラムとしては、処理
が遅いという問題が残っている。これは、この従来技術
においても、やはり、ビット転置という、計算機上では
実行速度の遅い処理が多用されているためである。
[0003] In addition, DES is slow as a program on a computer, but when an attacker uses dedicated hardware, only the attacker has an advantage and the user has a disadvantage. Disadvantage. This is because DES makes heavy use of transposition and exclusive OR for each bit, which are slow in execution speed on a computer. On the other hand, Japanese Patent Application Laid-Open No. Hei 10-123949 (Japanese Patent Application No. 9-217299) discloses a technique in which DES encryption is improved to enhance security against differential analysis. However, this conventional technique still has a problem that the processing is slow as a program on a computer. This is because, even in this conventional technique, a process that is slow in execution speed on a computer, that is, bit transposition, is often used.

【0004】一方、別の暗号化方式として、ストリーム
型暗号化方式がある。例えば、特開平9−288565
号(特願平8−99985号)公報においては、カオス
軌道に沿った実数値の乱数列を生成して使用する技術が
開示されている。しかしながら、この従来技術では、ア
ーキテクチャの異なる複数の計算機上で、同じ動作を保
証することが困難であるという問題がある。これは、実
数値の乱数列を、実数演算の繰り返しによって算出する
ので、計算機のアーキテクチャの僅かな違いによって、
発生する乱数列が異なるものになってしまうことがある
ためである。また、上記の従来技術では、乱数列が短周
期に陥る危険性に関して、このような危険の回避を保証
できないという問題がある。これは、カオスを発生する
自励系の実数演算では、周期点を発見することが難しい
反面、短周期に陥っていないことの保証もしていないた
めである。
On the other hand, as another encryption method, there is a stream type encryption method. For example, Japanese Patent Application Laid-Open No. 9-288565
In Japanese Unexamined Patent Application Publication No. 8-99985, a technique for generating and using a real-valued random number sequence along a chaotic orbit is disclosed. However, this conventional technique has a problem that it is difficult to guarantee the same operation on a plurality of computers having different architectures. This is because the real-valued random number sequence is calculated by repeating the real number operation, so due to a slight difference in the computer architecture,
This is because the generated random number sequence may be different. Further, in the above-described conventional technology, there is a problem that it is not possible to guarantee the avoidance of such a risk with respect to the risk that the random number sequence falls into a short period. This is because, in the real number operation of the self-excited system that generates chaos, it is difficult to find a periodic point, but it does not guarantee that it is not in a short period.

【0005】[0005]

【発明が解決しようとする課題】この発明は、上述の事
情に鑑みてなされたものであって、暗号化処理と復号化
処理とに共通の鍵を用いる、共通鍵暗号化方式であっ
て、既知平文攻撃並びに選択平文攻撃を、事実上不可能
にする、共通鍵暗号化又は復号化方法並びに共通鍵暗号
化又は復号化プログラムを記録した記憶媒体を提供する
ことを目的としている。
SUMMARY OF THE INVENTION The present invention has been made in view of the above circumstances, and is a common key encryption system using a common key for encryption processing and decryption processing. It is an object of the present invention to provide a common key encryption or decryption method and a storage medium recording a common key encryption or decryption program, which makes a known plaintext attack and a selective plaintext attack virtually impossible.

【0006】[0006]

【課題を解決するための手段】上記課題を解決するた
め、請求項1記載の発明は、共通鍵暗号化方法に係り、
長周期の乱数表と、該乱数表の表示値に基づき(p+
q)個(p,qは任意の自然数。以下、省略)の原写像
番号を算出する読み出し機構と、それぞれの原写像を表
す間接指標配列と、定数係数のm次行列とを予め用意
し、秘密鍵を指定したとき、該秘密鍵から前記乱数表の
表示開始位置を決定したのち、平文データからmバイト
の文字列を取り出すごとに、上記乱数表と読み出し機構
によって、上記(p+q)個の原写像の番号の算出を行
い、該(p+q)個の原写像番号中のp個の原写像番号
に示される原写像の合成写像を表す第1の間接指標配列
と、前記(p+q)個の原写像番号中のq個の原写像番
号に示される原写像の合成写像を表す第2の間接指標配
列とを作成して、上記平文データから取り出された文字
列を上記第1の間接指標配列で変換し、次に該変換結果
の文字列を上記定数係数のm次行列との積算で変換し、
さらに該変換結果の文字列を上記第2の間接指標配列で
変換して得た文字列を、暗文データ中のmバイトの文字
列として暗文データに格納する処理を、上記平文データ
からのmバイトの文字列の読み出しごとに、上記乱数表
の各段の表示位置を1個ずつずらしながら繰り返すこと
によって、平文の暗号化を行うことを特徴としている。
Means for Solving the Problems To solve the above problems, the invention according to claim 1 relates to a common key encryption method,
Based on a long-period random number table and the display value of the random number table, (p +
q) (p and q are arbitrary natural numbers; hereinafter, abbreviated) read-out mechanisms for calculating the original mapping numbers, an indirect index array representing each original mapping, and an m-th order matrix of constant coefficients are prepared in advance. When the secret key is designated, the display start position of the random number table is determined from the secret key, and each time an m-byte character string is extracted from the plaintext data, the (p + q) The number of the original mapping is calculated, a first indirect index array representing a composite mapping of the original mappings indicated by the p original mapping numbers in the (p + q) original mapping numbers, and the (p + q) And a second indirect index array representing a composite mapping of the original mappings indicated by the q original mapping numbers in the original mapping numbers, and converting the character string extracted from the plaintext data into the first indirect index array And then convert the resulting string to the constant Converted by multiplication of the number of m-order matrix,
Further, a process of storing a character string obtained by converting the character string obtained as a result of the conversion using the second indirect index array into the ciphertext data as a m-byte character string in the ciphertext data includes: Each time a character string of m bytes is read, plain text is encrypted by repeating the display position of each row of the random number table while shifting it one by one.

【0007】また、請求項2記載の発明は、共通鍵復号
化方法に係り、長周期の乱数表と、該乱数表の表示値に
基づき(p+q)個の原写像番号を算出する読み出し機
構と、それぞれの原写像の逆写像を表す間接指標配列
と、定数係数のm次行列の逆行列とを予め用意し、秘密
鍵を指定したとき、該秘密鍵から前記乱数表の表示開始
位置を決定したのち、暗文データからmバイトの文字列
を取り出すごとに、上記乱数表と読み出し機構によっ
て、上記(p+q)個の原写像の番号の算出を行い、該
(p+q)個の原写像番号中のp個の原写像番号に示さ
れる原写像の暗号化時と逆順の配列の逆写像の合成写像
を表す第1の間接指標配列と、前記(p+q)個の原写
像番号中のq個の原写像番号に示される原写像の暗号化
時と逆順の配列の逆写像の合成写像を表す第2の間接指
標配列とを作成して、上記暗文データから取り出された
文字列を上記第2の間接指標配列で変換し、次に該変換
結果の文字列を上記定数係数のm次行列の逆行列との積
算で変換し、さらに該変換結果の文字列を上記第1の間
接指標配列で変換して得た文字列を、平文データ中のm
バイトの文字列として平文データに格納する処理を、上
記暗文データからのmバイトの文字列の読み出しごと
に、上記乱数表の各段の表示位置を暗号化時と逆方向に
1個ずつずらしながら繰り返すことによって、暗文の復
号化を行うことを特徴としている。
According to a second aspect of the present invention, there is provided a common key decryption method, comprising: a long-period random number table; and a reading mechanism for calculating (p + q) original mapping numbers based on the display value of the random number table. An indirect index array representing an inverse mapping of each original mapping and an inverse matrix of an m-th order matrix of constant coefficients are prepared in advance, and when a secret key is designated, a display start position of the random number table is determined from the secret key. After that, every time an m-byte character string is extracted from the ciphertext data, the numbers of the (p + q) original mappings are calculated by the random number table and the reading mechanism, and the (p + q) original mapping numbers are calculated. A first indirect index array representing a composite mapping of the inverse mapping of the order of the original mappings indicated by the p original mapping numbers in the order of the encryption, and q of the (p + q) original mapping numbers Reverse mapping of the array in the reverse order of the encryption of the original mapping indicated by the original mapping number And a second indirect index array representing the composite map of the above is converted, and the character string extracted from the ciphertext data is converted by the second indirect index array. The conversion is performed by multiplying the coefficient by the inverse matrix of the m-th order matrix, and the character string obtained by converting the conversion result using the first indirect index array is represented by m in the plaintext data.
The process of storing the character string of bytes in the plaintext data is such that the display position of each row of the random number table is shifted one by one in the direction opposite to that at the time of encryption every time the character string of m bytes is read from the ciphertext data. It is characterized in that the encryption is decrypted by repeating the above.

【0008】また、請求項3記載の発明は、共通鍵暗号
化方法に係り、長周期の乱数表と、該乱数表の表示値に
基づき(p+q)個の原写像番号を算出する読み出し機
構と、それぞれの原写像を表す間接指標配列と、定数係
数のm次行列とを予め用意し、秘密鍵を指定したとき、
該秘密鍵から前記乱数表の表示開始位置を決定したの
ち、平文データからmバイトの所定数の要素分のベクト
ルを取り出すごとに、上記乱数表と読み出し機構によっ
て、上記要素数回分の読み出しと上記(p+q)個の原
写像の番号の算出を行って、要素ごとに使用する前記
(p+q)個の原写像番号中のp個の原写像番号を第1
の作業ベクトルに格納するとともに、要素ごとに使用す
る前記(p+q)個の原写像番号中のq個の原写像番号
を第2の作業ベクトルに格納し、上記平文データから取
り出したベクトルの各要素を、上記第1の作業ベクトル
の各要素に含まれる、上記第p個の原写像番号が指し示
す原写像を用いて変換し、次に該変換結果のベクトルの
各要素を上記定数係数のm次行列との積算で変換し、さ
らに該変換結果のベクトルの各要素を、上記第2の作業
ベクトルの各要素に含まれる、上記第q個の原写像番号
が指し示す原写像を用いて変換して得たベクトルを、暗
文データ中のmバイトの所定数の要素分のベクトルとし
て暗文データに格納する処理を、平文データからのmバ
イトの所定数の要素分のベクトルの読み出しごとに、上
記乱数表の各段の表示位置を1個ずつずらしながら繰り
返すことによって、平文の暗号化を行うことを特徴とし
ている。
According to a third aspect of the present invention, there is provided a symmetric key encryption method, comprising: a long-period random number table; and a reading mechanism for calculating (p + q) original mapping numbers based on display values of the random number table. , An indirect index array representing each original mapping and an m-th order matrix of constant coefficients are prepared in advance, and when a secret key is designated,
After determining the display start position of the random number table from the secret key, every time a vector of a predetermined number of m-byte elements is extracted from the plaintext data, the random number table and the reading mechanism read out the elements several times and read the same. The numbers of the (p + q) original mappings are calculated, and the p original mapping numbers in the (p + q) original mapping numbers used for each element are set to the first.
And the q original mapping numbers in the (p + q) original mapping numbers used for each element are stored in the second working vector, and each element of the vector extracted from the plaintext data is stored. Is converted using an original mapping indicated by the p-th original mapping number included in each element of the first work vector, and then each element of the vector of the conversion result is converted into an m-th order of the constant coefficient. It converts by multiplication with a matrix, and further converts each element of the vector of the conversion result using the original mapping indicated by the q-th original mapping number included in each element of the second work vector. The process of storing the obtained vector in the ciphertext data as a vector of a predetermined number of m-byte elements in the ciphertext data is performed by reading the vector of the predetermined number of m-byte elements from the plaintext data. Of each row of the random number table By repeated while shifting the shown position one by one, it is characterized by performing the encryption of the plaintext.

【0009】また、請求項4記載の発明は、共通鍵復号
化方法に係り、長周期の乱数表と、該乱数表の表示値に
基づき(p+q)個の原写像番号を算出する読み出し機
構と、それぞれの原写像の逆写像を表す間接指標配列
と、定数係数のm次行列の逆行列とを予め用意し、秘密
鍵を指定したとき、該秘密鍵から前記乱数表の表示開始
位置を決定したのち、暗文データからmバイトの所定数
の要素分のベクトルを取り出すごとに、上記乱数表と読
み出し機構によって、上記要素数回分の読み出しと上記
(p+q)個の原写像の番号の算出を行って、要素ごと
に使用する前記(p+q)個の原写像番号中のp個の原
写像番号を暗号化時と逆順に第1の作業ベクトルに格納
するとともに、要素ごとに使用する前記(p+q)個の
原写像番号中のq個の原写像番号を暗号化時と逆順に第
2の作業ベクトルに格納し、上記暗文データから取り出
したベクトルの各要素を、上記第2の作業ベクトルの各
要素に含まれる、上記q個の原写像番号が指し示す原写
像の逆写像を用いて変換し、次に該変換結果のベクトル
の各要素を上記定数係数のm次行列の逆行列との積算で
変換し、さらに該変換結果のベクトルの各要素を、上記
第1の作業ベクトルの各要素に含まれる、上記p個の原
写像番号が指し示す原写像の逆写像を用いて変換して得
たベクトルを、平文データ中のmバイトの所定数の要素
分のベクトルとして平文データに格納する処理を、暗文
データからのmバイトの所定数の要素分のベクトルの読
み出しごとに、上記乱数表の各段の表示位置を暗号化時
と逆方向に1個ずつずらしながら繰り返すことによっ
て、暗文の復号化を行うことを特徴としている。
According to a fourth aspect of the present invention, there is provided a symmetric key decryption method, comprising: a long-period random number table; and a reading mechanism for calculating (p + q) original mapping numbers based on display values of the random number table. An indirect index array representing an inverse mapping of each original mapping and an inverse matrix of an m-th order matrix of constant coefficients are prepared in advance, and when a secret key is designated, a display start position of the random number table is determined from the secret key. After that, every time a vector of a predetermined number of m-byte elements is extracted from the ciphertext data, the random number table and the reading mechanism read out the elements several times and calculate the numbers of the (p + q) original maps. Then, the p original mapping numbers in the (p + q) original mapping numbers used for each element are stored in the first work vector in the reverse order of the encryption, and the (p + q) used for each element is stored. Q) of the original mapping numbers The original mapping numbers are stored in the second work vector in the reverse order of the encryption, and each element of the vector extracted from the ciphertext data is replaced with the q original work numbers included in each element of the second work vector. The conversion is performed using the inverse mapping of the original mapping indicated by the mapping number, and then each element of the vector of the conversion result is converted by multiplication with the inverse matrix of the m-th order matrix of the constant coefficient. A vector obtained by transforming each element using the inverse mapping of the original mappings indicated by the p original mapping numbers included in each element of the first working vector is defined by m bytes in plaintext data. The process of storing in the plaintext data as a vector of a number of elements is performed by reading the display position of each row of the random number table every time a vector of a predetermined number of m-byte elements is read from the ciphertext data. Repeat while shifting one by one in the direction By Succoth, it is characterized by performing decoding of Kurabun.

【0010】また、請求項5記載の発明は、共通鍵暗号
化プログラムを記録した記憶媒体に係り、請求項1記載
の共通鍵暗号化方法を実行するプログラムを記録したコ
ンピュータ読み取り可能な記録媒体であって、長周期の
乱数表と、該乱数表の表示値に基づき(p+q)個の原
写像番号を算出する読み出し機構と、それぞれの原写像
を表す間接指標配列と、定数係数のm次行列とを予め用
意し、秘密鍵を指定したとき、該秘密鍵から前記乱数表
の表示開始位置を決定したのち、平文データからmバイ
トの文字列を取り出すごとに、上記乱数表と読み出し機
構によって、上記(p+q)個の原写像の番号の算出を
行い、該(p+q)個の原写像番号中のp個の原写像番
号に示される原写像の合成写像を表す第1の間接指標配
列と、前記(p+q)個の原写像番号中のq個の原写像
番号に示される原写像の合成写像を表す第2の間接指標
配列とを作成して、上記平文データから取り出された文
字列を上記第1の間接指標配列で変換し、次に該変換結
果の文字列を上記定数係数のm次行列との積算で変換
し、さらに該変換結果の文字列を上記第2の間接指標配
列で変換して得た文字列を、暗文データ中のmバイトの
文字列として暗文データに格納する処理を、上記平文デ
ータからのmバイトの文字列の読み出しごとに、上記乱
数表の各段の表示位置を1個ずつずらしながら繰り返す
ことによって、平文の暗号化を行うプログラムを記録し
たことを特徴としている。
According to a fifth aspect of the present invention, there is provided a storage medium storing a common key encryption program, and a computer readable storage medium storing a program for executing the common key encryption method according to the first aspect. A long-period random number table, a read-out mechanism for calculating (p + q) original mapping numbers based on display values of the random number table, an indirect index array representing each original mapping, and an m-th order matrix of constant coefficients Are prepared in advance, and when a secret key is designated, a display start position of the random number table is determined from the secret key, and each time an m-byte character string is extracted from the plaintext data, Calculating a number of the (p + q) original mappings, a first indirect index array representing a composite mapping of the original mappings indicated by the p original mapping numbers in the (p + q) original mapping numbers, (P + ) Original mapping numbers, and a second indirect index array representing a composite mapping of the original mappings indicated by the q original mapping numbers, and converting the character string extracted from the plaintext data into the first The conversion is performed using an indirect index array, the converted character string is converted by multiplying the constant coefficient with the m-th order matrix, and the converted character string is further converted using the second indirect index array. The process of storing the character string in the ciphertext data as the m-byte character string in the ciphertext data is performed by reading the display position of each row of the random number table every time the m-byte character string is read from the plaintext data. It is characterized in that a program for encrypting a plaintext is recorded by repeating it while shifting it one by one.

【0011】また、請求項6記載の発明は、共通鍵復号
化プログラムを記録した記憶媒体に係り、請求項2記載
の共通鍵復号化方法を実行するプログラムを記録したコ
ンピュータ読み取り可能な記録媒体であって、長周期の
乱数表と、該乱数表の表示値に基づき(p+q)個の原
写像番号を算出する読み出し機構と、それぞれの原写像
の逆写像を表す間接指標配列と、定数係数のm次行列の
逆行列とを予め用意し、秘密鍵を指定したとき、該秘密
鍵から前記乱数表の表示開始位置を決定したのち、暗文
データからmバイトの文字列を取り出すごとに、上記乱
数表と読み出し機構によって、上記(p+q)個の原写
像の番号の算出を行い、該(p+q)個の原写像番号中
のp個の原写像番号に示される原写像の暗号化時と逆順
の配列の逆写像の合成写像を表す第1の間接指標配列
と、前記(p+q)個の原写像番号中のq個の原写像番
号に示される原写像の暗号化時と逆順の配列の逆写像の
合成写像を表す第2の間接指標配列とを作成して、上記
暗文データから取り出された文字列を上記第2の間接指
標配列で変換し、次に該変換結果の文字列を上記定数係
数のm次行列の逆行列との積算で変換し、さらに該変換
結果の文字列を上記第1の間接指標配列で変換して得た
文字列を、平文データ中のmバイトの文字列として平文
データに格納する処理を、上記暗文データからのmバイ
トの文字列の読み出しごとに、上記乱数表の各段の表示
位置を暗号化時と逆方向に1個ずつずらしながら繰り返
すことによって、暗文の復号化を行うプログラムを記録
したことを特徴としている。
According to a sixth aspect of the present invention, there is provided a storage medium storing a common key decryption program, and a computer readable storage medium storing a program for executing the common key decryption method according to the second aspect. A long-period random number table, a read-out mechanism for calculating (p + q) original mapping numbers based on the display values of the random number table, an indirect index array representing an inverse mapping of each original mapping, and a constant coefficient When an inverse matrix of an m-th order matrix is prepared in advance, and a secret key is designated, a display start position of the random number table is determined from the secret key. The numbers of the (p + q) original mappings are calculated by a random number table and a readout mechanism, and the order of the original mappings indicated by the p original mapping numbers in the (p + q) original mapping numbers is the reverse of that at the time of encryption. Of the inverse map of the array It represents a composite mapping of a first indirect index array representing a mapping and an inverse mapping of an array in an order reverse to that at the time of encryption of the original mapping indicated by the q original mapping numbers in the (p + q) original mapping numbers. A second indirect index array is created, and the character string extracted from the ciphertext data is converted by the second indirect index array. Is converted by multiplication with the inverse matrix of the above, and a character string obtained by converting the character string resulting from the conversion with the first indirect index array is stored in the plaintext data as a m-byte character string in the plaintext data. Each time the m-byte character string is read from the ciphertext data, the process is repeated while shifting the display position of each row of the random number table one by one in a direction opposite to the encryption, thereby decoding the ciphertext. Is recorded.

【0012】また、請求項7記載の発明は、共通鍵暗号
化プログラムを記録した記憶媒体に係り、請求項3記載
の共通鍵暗号化方法を実行するプログラムを記録したコ
ンピュータ読み取り可能な記録媒体であって、長周期の
乱数表と、該乱数表の表示値に基づき(p+q)個の原
写像番号を算出する読み出し機構と、それぞれの原写像
を表す間接指標配列と、定数係数のm次行列とを予め用
意し、秘密鍵を指定したとき、該秘密鍵から前記乱数表
の表示開始位置を決定したのち、平文データからmバイ
トの所定数の要素分のベクトルを取り出すごとに、上記
乱数表と読み出し機構によって、上記要素数回分の読み
出しと上記(p+q)個の原写像の番号の算出を行っ
て、要素ごとに使用する前記(p+q)個の原写像番号
中のp個の原写像番号を第1の作業ベクトルに格納する
とともに、要素ごとに使用する前記(p+q)個の原写
像番号中のq個の原写像番号を第2の作業ベクトルに格
納し、上記平文データから取り出したベクトルの各要素
を、上記第1の作業ベクトルの各要素に含まれる、上記
p個の原写像番号が指し示す原写像を用いて変換し、次
に該変換結果のベクトルの各要素を上記定数係数のm次
行列との積算で変換し、さらに該変換結果のベクトルの
各要素を、上記第2の作業ベクトルの各要素に含まれ
る、上記q個の原写像番号が指し示す原写像を用いて変
換して得たベクトルを、暗文データ中のmバイトの所定
数の要素分のベクトルとして暗文データに格納する処理
を、平文データからのmバイトの所定数の要素分のベク
トルの読み出しごとに、上記乱数表の各段の表示位置を
1個ずつずらしながら繰り返すことによって、平文の暗
号化を行うプログラムを記録したことを特徴としてい
る。
According to a seventh aspect of the present invention, there is provided a storage medium storing a common key encryption program, and a computer readable storage medium storing a program for executing the common key encryption method according to the third aspect. A long-period random number table, a read-out mechanism for calculating (p + q) original mapping numbers based on display values of the random number table, an indirect index array representing each original mapping, and an m-th order matrix of constant coefficients Are prepared in advance, and when a secret key is designated, the display start position of the random number table is determined from the secret key. Each time a vector of a predetermined number of m bytes is extracted from the plaintext data, the random number table is extracted. And the reading mechanism perform reading of the element several times and calculation of the numbers of the (p + q) original mappings, and the p original mapping numbers in the (p + q) original mapping numbers used for each element Is stored in a first work vector, and q original mapping numbers in the (p + q) original mapping numbers used for each element are stored in a second work vector, and a vector extracted from the plaintext data is stored. Are converted using the original mappings indicated by the p original mapping numbers included in each element of the first work vector, and then each element of the vector of the conversion result is converted to the constant coefficient The conversion is performed by multiplication with the m-th order matrix, and each element of the vector of the conversion result is further converted using the original mapping indicated by the q original mapping numbers included in each element of the second work vector. The process of storing the obtained vector in the ciphertext data as a vector for a predetermined number of m-byte elements in the ciphertext data is performed every time a vector for a predetermined number of m-byte elements is read from the plaintext data. Each of the above random number tables By repeated while shifting the display position of the one by one, it is characterized by recording a program for encrypting plaintext.

【0013】また、請求項8記載の発明は、共通鍵復号
化プログラムを記録した記憶媒体に係り、請求項4記載
の共通鍵復号化方法を実行するプログラムを記録したコ
ンピュータ読み取り可能な記録媒体であって、長周期の
乱数表と、該乱数表の表示値に基づき(p+q)個の原
写像番号を算出する読み出し機構と、それぞれの原写像
の逆写像を表す間接指標配列と、定数係数のm次行列の
逆行列とを予め用意し、秘密鍵を指定したとき、該秘密
鍵から前記乱数表の表示開始位置を決定したのち、暗文
データからmバイトの所定数の要素分のベクトルを取り
出すごとに、上記乱数表と読み出し機構によって、上記
要素数回分の読み出しと上記(p+q)個の原写像の番
号の算出を行って、要素ごとに使用する前記(p+q)
個の原写像番号中のp個の原写像番号を暗号化時と逆順
に第1の作業ベクトルに格納するとともに、要素ごとに
使用する前記(p+q)個の原写像番号中のq個の原写
像番号を暗号化時と逆順に第2の作業ベクトルに格納
し、上記暗文データから取り出したベクトルの各要素
を、上記第2の作業ベクトルの各要素に含まれる、上記
q個の原写像番号が指し示す原写像の逆写像を用いて変
換し、次に該変換結果のベクトルの各要素を上記定数係
数のm次行列の逆行列との積算で変換し、さらに該変換
結果のベクトルの各要素を、上記第1の作業ベクトルの
各要素に含まれる、上記p個の原写像番号が指し示す原
写像の逆写像を用いて変換して得たベクトルを、平文デ
ータ中のmバイトの所定数の要素分のベクトルとして平
文データに格納する処理を、暗文データからのmバイト
の所定数の要素分のベクトルの読み出しごとに、上記乱
数表の各段の表示位置を暗号化時と逆方向に1個ずつず
らしながら繰り返すことによって、暗文の復号化を行う
プログラムを記録したことを特徴としている。
The invention according to claim 8 relates to a storage medium storing a common key decryption program, and a computer readable recording medium storing a program for executing the common key decryption method according to claim 4. A long-period random number table, a read-out mechanism for calculating (p + q) original mapping numbers based on the display values of the random number table, an indirect index array representing an inverse mapping of each original mapping, and a constant coefficient When an inverse matrix of an m-th order matrix is prepared in advance and a secret key is specified, a display start position of the random number table is determined from the secret key, and then a vector of a predetermined number of m-byte elements is obtained from the ciphertext data. Each time it is taken out, the above-mentioned random number table and read-out mechanism are used to read out the element several times and calculate the numbers of the (p + q) original mappings, and use the (p + q) for each element.
The p original mapping numbers in the original mapping numbers are stored in the first working vector in the reverse order of the encryption, and the q original mapping numbers in the (p + q) original mapping numbers used for each element are stored. The mapping numbers are stored in the second work vector in the reverse order of the encryption, and each element of the vector extracted from the ciphertext data is replaced with the q original maps included in each element of the second work vector. The conversion is performed using the inverse mapping of the original mapping indicated by the number, and then each element of the vector of the conversion result is converted by multiplication with the inverse matrix of the m-order matrix of the constant coefficient. A vector obtained by transforming an element using the inverse mapping of the original mappings indicated by the p original mapping numbers included in each element of the first work vector is converted into a predetermined number of m bytes in the plaintext data. To store in plaintext data as a vector of Is repeated while shifting the display position of each row of the random number table one by one in a direction opposite to that at the time of encryption every time a vector of a predetermined number of m-byte elements is read from the encrypted data. The program is characterized by recording a program for decrypting.

【0014】[0014]

【作用】この発明の構成では、平文の暗号化を行う場合
には、秘密鍵が与えられると、乱数表と読み出し機構の
上での表示開始位置が定まる。次に、平文データから、
平文データ中のmバイト文字列を読み出す度に、乱数表
と読み出し機構から値を読み出して、使用する(p+
q)個の原写像の番号を決定する。平文データ中のmバ
イトの文字列は、まず原写像のp個の原写像番号の合成
写像である間接指標配列によって変換され、次にm次の
行列との積算によって変換され、最後に、原写像のq個
の原写像番号の合成写像である間接指標配列によって変
換されて、暗文データ中のmバイトの文字列が生成され
る。逆に、暗文の復号化を行う場合には、秘密鍵が与え
られると、乱数表と読み出し機構の上での表示開始位置
が定まる。次に、暗文データから、暗文データ中のmバ
イト文字列を読み出す度に、乱数表と読み出し機構から
値を読み出して、使用する(p+q)個の原写像の番号
を決定する。暗文データ中のmバイト文字列は、まず原
写像のq個の原写像番号の逆順の逆写像の合成写像であ
る間接指標配列によって変換され、次にm次の行列の逆
行列との積算によって変換され、最後に、原写像のp個
の原写像番号の逆順の逆写像の合成写像である間接指標
配列によって変換されて、平文データ中のmバイトの文
字列が生成される。
According to the structure of the present invention, when a plaintext is encrypted, a display start position on the random number table and the reading mechanism is determined when a secret key is given. Next, from the plaintext data,
Each time the m-byte character string in the plaintext data is read, the value is read from the random number table and the reading mechanism and used (p +
q) Determine the numbers of the original maps. The m-byte character string in the plaintext data is first converted by an indirect index array, which is a composite mapping of the p original mapping numbers of the original mapping, and then converted by multiplication with an m-th order matrix. The conversion is performed by an indirect index array, which is a composite mapping of q original mapping numbers of the mapping, to generate an m-byte character string in the ciphertext data. Conversely, when decrypting a ciphertext, when a secret key is given, the display start position on the random number table and the reading mechanism is determined. Next, every time an m-byte character string in the ciphertext data is read from the ciphertext data, a value is read from the random number table and the reading mechanism, and the numbers of (p + q) original maps to be used are determined. The m-byte character string in the ciphertext data is first converted by an indirect index array, which is a composite map of the inverse mapping of the q original mapping numbers of the original mapping, and then multiplied by the inverse matrix of the m-th order matrix And finally converted by an indirect index array, which is a composite mapping of the inverse mapping of the p original mapping numbers of the original mapping, to generate an m-byte character string in the plaintext data.

【0015】また、この発明の別の構成では、平文の暗
号化を行う場合には、秘密鍵が与えられると、乱数表の
上での表示開始位置が定まる。次に、平文データから、
平文データ中のmバイト×所定要素数のベクトルを読み
出す度に、乱数表と読み出し機構から値を読み出して、
使用する(p+q)個の原写像の番号を決定する。平文
データ中のmバイト×所定要素数のベクトルは、まず要
素ごとに使用するp個の原写像番号を格納した作業ベク
トルの原写像を用いて変換(リストベクトルロード)さ
れ、次にm次の行列との積算によって変換され、最後
に、要素ごとに使用するq個の原写像番号を格納した作
業ベクトルの原写像を用いて変換(リストベクトルロー
ド)されて、暗文データ中のmバイト×所定要素数のベ
クトルが生成される。逆に、暗文の復号化を行う場合に
は、秘密鍵が与えられると、乱数表の上での表示開始位
置が定まる。次に、暗文データから、暗文データ中のm
バイト×所定要素数のベクトルを読み出す度に、乱数表
と読み出し機構から値を読み出して、使用する(p+
q)個の原写像の番号を決定する。暗文データ中のmバ
イト×所定要素数のベクトルは、まず要素ごとに使用す
るq個の原写像番号を、逆順に格納した作業ベクトルの
逆写像を用いて変換(リストベクトルロード)され、次
に、m次の逆行列との積算によって変換され、最後に、
要素ごとに使用するp個の原写像番号を、逆順に格納し
た作業ベクトルの逆写像を用いて変換(リストベクトル
ロード)されて、平文データ中のmバイト×所定要素数
のベクトルが生成される。
In another configuration of the present invention, when encrypting plaintext, a display start position on a random number table is determined when a secret key is given. Next, from the plaintext data,
Each time a vector of m bytes x a predetermined number of elements in the plaintext data is read, a value is read from the random number table and the reading mechanism,
The number of (p + q) original maps to be used is determined. A vector of m bytes × predetermined number of elements in the plaintext data is first converted (list vector load) using an original mapping of a work vector storing p original mapping numbers used for each element, and then the m-th order vector is loaded. It is converted by multiplication with a matrix, and finally converted (list vector loading) using an original mapping of a work vector storing q original mapping numbers used for each element, and m bytes in the ciphertext data. A vector having a predetermined number of elements is generated. Conversely, when decrypting a ciphertext, when a secret key is given, a display start position on a random number table is determined. Next, from the ciphertext data, m
Each time a vector of byte × predetermined number of elements is read, a value is read from the random number table and the reading mechanism and used (p +
q) Determine the numbers of the original maps. The vector of m bytes × predetermined number of elements in the ciphertext data is first converted (list vector loading) by using the inverse mapping of the work vector stored in the reverse order of q original mapping numbers used for each element. Is converted by multiplication with the inverse matrix of order m, and finally,
The p original mapping numbers used for each element are converted (list vector loaded) using the inverse mapping of the work vector stored in reverse order, and a vector of m bytes in the plaintext data × a predetermined number of elements is generated. .

【0016】したがって、この発明による暗文に対し
て、秘密鍵を知らずに解読を試みる者にとっては、既知
平文攻撃から乱数表と読み出し機構の上の表示開始位置
を知ることができない。また、既知の平文と暗文の組み
合わせ、又は選択した平文と暗文の組み合わせから、差
分をとって解析することもできない。また、選択平文攻
撃を繰り返して、平文mバイトの総当たりを試行するこ
とも事実上できない。また、秘密鍵を総当たりで試行す
ることもできない。また、間接指標配列を総当たりで試
行することも、間接指標配列の原写像の順列の総当たり
を試行することもできない。このように、この発明によ
れば、データを暗号化する場合に、長周期の乱数表と、
乱数によって間接指標配列の順列を変化させる機構と、
間接指標配列による変換で定数系列行列との積算を挟む
形の合成写像とを用いることによって、既知平文攻撃並
びに選択平文攻撃を、事実上不可能にすることができ
る。
Therefore, a person who attempts to decrypt the ciphertext according to the present invention without knowing the secret key cannot know the display start position on the random number table and the reading mechanism from the known plaintext attack. In addition, it is not possible to analyze by taking a difference from a combination of a known plaintext and a plaintext or a selected combination of a plaintext and a plaintext. Further, it is practically impossible to repeat the selective plaintext attack and try a brute force of m bytes of plaintext. Also, it is not possible to try a brute force secret key. In addition, it is not possible to try the indirect index array by brute force or the brute force permutation of the original mapping of the indirect index array. As described above, according to the present invention, when encrypting data, a long-period random number table,
A mechanism for changing the permutation of the indirect index array by a random number,
By using a composite mapping that sandwiches the integration with the constant series matrix in the conversion using the indirect index array, the known plaintext attack and the selected plaintext attack can be made virtually impossible.

【0017】[0017]

【発明の実施の形態】最初に、この発明の実施の形態に
おいて用いられる写像の仕組みについて、図を参照しな
がら、簡単に説明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS First, a mapping mechanism used in an embodiment of the present invention will be briefly described with reference to the drawings.

【0018】近代以降の暗号においては、対象とする範
囲の文字を、何らかの手法で数値と対応させることが必
須である。対象とする文字の範囲は、前提とする通信路
の種類によってさまざまである。また、文字と数値との
対応のさせかたも、使用する暗号化の方式によっていろ
いろである。
In post-modern cryptography, it is essential that characters in a target range be associated with numerical values by some method. The range of target characters varies depending on the type of communication channel assumed. The correspondence between characters and numeric values also varies depending on the encryption method used.

【0019】図1は、写像において、文字と数値を対応
させる場合の例を示し、対象文字が89種類の場合の、
文字−数値間の対応を例示している。図1に示された例
では、英字,数字,及びいくつかの記号を含む89種類
の文字を対象とした場合に、0〜88の整数値と対応さ
せた例を示している。以降の説明においては、89種類
の文字を、89を法とする剰余類の元と同一視するもの
とし、89を法とする剰余類をZ|89と表記する(式
(1)参照)。 Z|89={0,1,…,88} …(1) なお、剰余類の法、すなわち対象とする文字の種類の数
が素数でない場合には、後述する定数係数行列の選択に
おいて、特別の注意が必要である。
FIG. 1 shows an example in which characters and numerical values are associated with each other in a mapping.
2 illustrates a correspondence between a character and a numerical value. The example shown in FIG. 1 shows an example in which 89 types of characters including alphabetic characters, numerals, and some symbols are associated with integer values of 0 to 88. In the following description, 89 types of characters are assumed to be the same as the elements of the cosets modulo 89, and the cosets modulo 89 are denoted as Z | 89 (see equation (1)). Z | 89 = {0, 1,..., 88} (1) In addition, if the modulus of the coset is not a prime number, that is, if the number of target character types is not a prime number, special Attention is necessary.

【0020】次に、この発明において用いられる間接指
標配列による写像の仕組みについて説明する。図2は、
この発明の実施の形態における間接指標配列による写像
の仕組みについて示したものであって、(a)は指標と
間接指標配列による写像の説明、(b)は写像の例、
(c)は合成写像の例をそれぞれ示している。図2
(a)に示すように、指標xを間接指標配列c(j)
(j=0〜88)で変換すると、y=c(x)になる。
指標配列x(i)(i=0〜3)を、間接指標配列c
(j)(j=0〜88)で変換すると、配列y(i)=
c(x(i))になる。図2(b)に示すように、指標
配列(50,60,70,80)を、間接指標配列(2
(0番),3,…,52(50番),…,62(60
番),…,88(86番),0,1(88番))で変換
すると、配列(52,62,72,82)になる。ま
た、図2(c)に示すように、指標配列(50,60,
70,80)を、間接指標配列(2(0番),3,…,
52(50番),…,62(60番),…,88(86
番),0,1(88番))で変換し、さらに、間接指標
配列(1(0番),2,3,…,53(52番),…,
63(62番),…,83(82番),…,88,0
(88番))で変換すると、配列(53,63,73,
83)になる。
Next, the mechanism of mapping using the indirect index array used in the present invention will be described. FIG.
FIGS. 4A and 4B illustrate a mechanism of mapping using an indirect index array according to an embodiment of the present invention, wherein FIG. 4A illustrates mapping using an index and an indirect index array, FIG.
(C) shows an example of the combined mapping. FIG.
As shown in (a), an index x is converted to an indirect index array c (j).
When converted by (j = 0 to 88), y = c (x).
The index array x (i) (i = 0 to 3) is replaced with an indirect index array c
When converted by (j) (j = 0 to 88), the array y (i) =
c (x (i)). As shown in FIG. 2B, the index array (50, 60, 70, 80) is replaced with the indirect index array (2
(No. 0), 3, ..., 52 (No. 50), ..., 62 (60
, 88 (86), 0, 1 (88)), it becomes an array (52, 62, 72, 82). Further, as shown in FIG. 2C, the index array (50, 60,
70, 80) by the indirect index array (2 (0th), 3,...,
52 (No. 50), ..., 62 (No. 60), ..., 88 (86
), 0, 1 (88), and indirect index arrays (1 (0), 2, 3, ..., 53 (52), ...,
63 (No. 62), ..., 83 (No. 82), ..., 88, 0
(No. 88)), the array (53, 63, 73,
83).

【0021】この発明の実施の形態における以降の説明
において、間接指標配列とは、Z|89の元を1個ずつ
任意の順序で配列したものである。すなわち、c(j)
(j=0〜88)が間接指標配列である場合は、式
(2)及び式(3)に示す関係が成り立つ。 ∀j∈Z|89 c(j)∈Z|89 …(2) ∀i,j∈Z|89 i≠j→c(i)≠c(j) …(3) 間接指標配列は、1個の元又は任意の個数の元の配列
を、別の文字で置き換える旨の、全単射の写像を表すこ
とができる。変換される対象となる文字をxとすると、
当然、x∈Z|89である。これを間接指標配列c
(j)で変換した写像の行き先は、c(x)である。間
接指標配列は、何個かの元の配列を変換することもでき
る。例えば、変換される対象となる4個の文字の配列
を、x(i)(i=0〜3)とすると、当然、0≦i≦
3のそれぞれのiについて、x(i)∈Z|89であ
る。これを間接指標配列c(j)で変換した写像の行き
先は、c(x(i))である。
In the following description of the embodiment of the present invention, an indirect index array is an array of elements of Z | 89 arranged one by one in an arbitrary order. That is, c (j)
When (j = 0 to 88) is an indirect index array, the relationships shown in Expressions (2) and (3) hold. ∀j∈Z | 89 c (j) ∈Z | 89 (2) ∀i, j∈Z | 89 i ≠ j → c (i) ≠ c (j) (3) One indirect index array , Or an array of any number of elements, can be represented as a bijective mapping, replacing another character. Assuming that the character to be converted is x,
Naturally, x∈Z | 89. This is called the indirect index array c
The destination of the mapping converted in (j) is c (x). The indirect index array can also transform some original arrays. For example, if an array of four characters to be converted is x (i) (i = 0 to 3), naturally, 0 ≦ i ≦
For each i in 3, x (i) ∈Z | 89. The destination of the mapping obtained by converting this with the indirect index array c (j) is c (x (i)).

【0022】以降の説明では、変換される対象となる元
又は元の配列を、指標又は指標配列と呼ぶ。これは、変
換される対象の元が、間接指標配列の添字として、行き
先を示す指標となっているためである。間接指標配列に
よる写像の合成写像は、間接指標配列で表すことができ
る。間接指標配列c1(j),c2(j)(i=0〜8
8)があったとき、指標xをまずc1(j)で変換し、
それからc2(j)で変換した合成写像の行き先は、c
2(c1(x))である。c1(j)による変換に続い
てc2(j)による変換を行うという合成写像は、間接
指標配列c2(c1(j))で表される。
In the following description, the original or original array to be converted is referred to as an index or an index array. This is because the element to be converted is an index indicating the destination as a subscript of the indirect index array. The composite mapping of the mapping by the indirect index array can be represented by the indirect index array. Indirect index arrays c1 (j), c2 (j) (i = 0 to 8
8), the index x is first converted by c1 (j),
Then, the destination of the composite map converted by c2 (j) is c
2 (c1 (x)). A composite mapping that performs conversion by c2 (j) following conversion by c1 (j) is represented by an indirect index array c2 (c1 (j)).

【0023】図3は、この発明の実施の形態における間
接指標配列による写像の逆写像について示したものであ
って、(a)は逆写像を表す間接指標配列の説明、
(b)は逆写像を表す間接指標配列の例をそれぞれ示し
ている。
FIG. 3 shows the inverse mapping of the mapping by the indirect index array according to the embodiment of the present invention. FIG. 3A shows the description of the indirect index array representing the inverse mapping.
(B) shows an example of an indirect index array representing an inverse mapping, respectively.

【0024】図3(a)に示すように、指標配列x
(i)(i=0〜88)を間接指標配列c(j)(j=
0〜88)で変換して、配列(0,1,…,88)にな
る場合、配列x(i)(i=0〜88)を間接指標配列
とみなして表される写像は、配列c(j)の表す写像の
逆写像である。
As shown in FIG. 3A, the index array x
(I) (i = 0 to 88) is converted to an indirect index array c (j) (j =
0 to 88) to obtain an array (0, 1,..., 88), the mapping expressed by regarding the array x (i) (i = 0 to 88) as an indirect index array is represented by an array c It is a reverse mapping of the mapping represented by (j).

【0025】図3(b)に示すように、指標配列(8
7,88,0(2番),1,…,48(50番),…,
58(60番),…,85(87番),86(88
番))を、間接指標配列(2(0番),3,…,52
(50番),…,62(60番),…,88(86
番),0,1(88番))で変換すると、配列(0,
1,2,…,87,88)になる。
As shown in FIG. 3B, the index array (8
7,88,0 (2nd), 1, ..., 48 (50th), ...,
58 (No. 60), ..., 85 (No. 87), 86 (88
)) Is replaced with an indirect index array (2 (0), 3,..., 52
(No. 50), ..., 62 (No. 60), ..., 88 (86
), 0, 1 (No. 88)), the array (0,
1, 2, ..., 87, 88).

【0026】間接指標配列による写像には、必ず1個の
逆写像が存在する。任意の間接指標配列c(j)(j=
0〜88)に対して、ただ1個の指標配列x(j)(j
=0〜88)が存在し、c(x(j))=(0,1,
…,88)となる。なぜならば、定義から、間接指標配
列とは、Z|89の元が1個ずつ並んだものだからであ
る。(0,1,…,88)は、恒等写像であるから、上
記の場合に、x(j)はc(j)による変換の逆写像を
表す間接指標配列である。
There is always one inverse mapping in the mapping by the indirect index array. Arbitrary indirect index array c (j) (j =
0 to 88), only one index array x (j) (j
= 0-88), and c (x (j)) = (0, 1,
..., 88). This is because, by definition, an indirect index array is one in which elements of Z | 89 are arranged one by one. Since (0, 1,..., 88) is an identity mapping, in the above case, x (j) is an indirect index array representing an inverse mapping of the conversion by c (j).

【0027】図4は、この発明の実施の形態における行
列の積算による写像の仕組みについて示したものであっ
て、(a)は行列の積算による写像の説明、(b)は行
列の積算による写像の例をそれぞれ示している。図4
(a)に示すように、指標配列x(i)(i=0〜3)
を、行列f(i,j)(i,j=0〜3)との積算で変
換すると、式(4)に示す配列が与えられる。
FIGS. 4A and 4B show the mechanism of mapping by matrix multiplication in the embodiment of the present invention, wherein FIG. 4A shows a description of mapping by matrix multiplication, and FIG. 4B shows mapping by matrix multiplication. Are respectively shown. FIG.
As shown in (a), an index array x (i) (i = 0 to 3)
Is converted by multiplication with a matrix f (i, j) (i, j = 0 to 3) to obtain an array shown in Expression (4).

【0028】[0028]

【数1】 (Equation 1)

【0029】図4(b)に示すように、配列(1,2,
3,4)を、式(5)に示す行列との積で変換すると、
式(6)で表される指標配列(1,3,4,5)にな
る。
As shown in FIG. 4B, the array (1, 2, 2,
(3, 4) is converted by the product of the matrix shown in equation (5),
The index array (1, 3, 4, 5) represented by Expression (6) is obtained.

【0030】[0030]

【数2】 (Equation 2)

【0031】[0031]

【数3】 (Equation 3)

【0032】行列の積算による写像の仕組みは、次のよ
うなものである。いま、x(i)はZ|89の元を、い
くつか並べた配列であって、例えば、4個の要素を持つ
配列とする。4次の正方行列f(i,j)(i,j=0
〜3)があったとき、89を法とする行列とベクトルと
の積fxは、Z|89の元を4個並べた配列である。n
次の正方行列の積算は、Z|89の元を4個並べた配列
から、Z|89の元を4個並べた配列への写像である。
The mechanism of mapping by multiplication of matrices is as follows. Now, x (i) is an array in which some elements of Z | 89 are arranged, for example, an array having four elements. Fourth-order square matrix f (i, j) (i, j = 0
33), the product fx of the matrix modulo 89 and the vector is an array in which four elements of Z | 89 are arranged. n
The following square matrix integration is a mapping from an array in which four elements of Z | 89 are arranged to an array in which four elements of Z | 89 are arranged.

【0033】図5は、この発明の実施の形態における逆
行列の積算による逆写像の仕組みについて示したもので
あって、(a)は逆行列の積算による逆写像の説明、
(b)は逆写像を表す逆行列の例をそれぞれ示してい
る。図5(a)に示すように、行列g(i,j)(i,
j=0〜3)と、行列f(i,j)(i,j=0〜3)
との積が単位行列である場合、行列gとの積算による変
換は、行列fとの積算による変換の逆写像である。図5
(b)及び式(7)に示すように、行列gと行列fとの
積が単位行列である場合、
FIG. 5 shows the mechanism of the inverse mapping based on the integration of the inverse matrix in the embodiment of the present invention.
(B) shows an example of an inverse matrix representing an inverse mapping, respectively. As shown in FIG. 5A, the matrix g (i, j) (i,
j = 0-3) and a matrix f (i, j) (i, j = 0-3)
Is a unit matrix, the conversion by integration with the matrix g is an inverse mapping of the conversion by integration with the matrix f. FIG.
As shown in (b) and equation (7), when the product of matrix g and matrix f is a unit matrix,

【0034】[0034]

【数4】 (Equation 4)

【0035】行列gとの積算による変換は、行列fとの
積算による変換の逆写像である。逆行列の積算による逆
写像の仕組みは、次のようなものである。いま、行列f
に対して、逆行列gが存在したとき、行列gの積算によ
る写像は、行列gの積算による写像の逆写像を表す。
The conversion by integration with the matrix g is an inverse mapping of the conversion by integration with the matrix f. The mechanism of the inverse mapping by the integration of the inverse matrix is as follows. Now, the matrix f
On the other hand, when the inverse matrix g exists, the mapping based on the integration of the matrix g represents the inverse mapping of the mapping based on the integration of the matrix g.

【0036】逆行列は、任意の行列fに対して常に存在
するわけではない。特に、剰余類の法として素数でない
数を選んだときは、注意が必要である。この発明の実施
例では、定数係数の行列fと定数係数の逆行列gとの組
み合わせを用いる。行列fに対して、逆行列が存在する
場合、行列fは、Z|89の元を4個並べた配列から、
Z|89の元を4個並べた配列への、全単射の写像であ
る。
The inverse matrix does not always exist for any matrix f. In particular, care must be taken when choosing a non-prime number as the modulus of the coset. In the embodiment of the present invention, a combination of the constant coefficient matrix f and the constant coefficient inverse matrix g is used. When an inverse matrix exists for the matrix f, the matrix f is obtained by arranging four elements of Z | 89 from:
This is a bijective mapping to an array in which four elements of Z | 89 are arranged.

【0037】以下、図面を参照して、この発明の実施の
形態について説明する。説明は、実施例を用いて具体的
に行う。 ◇第1実施例 図6は、この発明の第1実施例である共通鍵暗号化又は
復号化方法において、使用開始以前に決定し配布される
事項を説明する図、図7,図8は、同実施例の方法にお
ける暗号化と復号化の手順を説明する図である。この例
においては、図6に示す、乱数表と読み出し機構1と、
原写像0〜67を表す間接指標配列2と、原写像0〜6
7の逆写像を表す間接指標配列3と、定数係数の4次行
列f4と、fの逆行列g5とは、共通鍵暗号化又は復号
化方法の使用開始以前に、別途決定され、配布されてい
るものとする。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. The description will be specifically made using an embodiment. FIG. 6 is a diagram for explaining items determined and distributed before the start of use in the common key encryption or decryption method according to the first embodiment of the present invention. FIG. 4 is a diagram for explaining procedures of encryption and decryption in the method of the embodiment. In this example, the random number table and the reading mechanism 1 shown in FIG.
An indirect index array 2 representing the original maps 0 to 67;
7, an indirect index array 3 representing an inverse mapping, a fourth-order matrix f4 of constant coefficients, and an inverse matrix g5 of f are separately determined and distributed before starting to use the common key encryption or decryption method. Shall be

【0038】乱数表と読み出し機構1は、ランダムな整
数値を収容した10段の乱数表を装備している。この乱
数表の各段の長さは、順に、89,83,79,…,4
7のように、互いに素の関係になっている。読み出し機
構は、適当な位置から読み出しを開始して、各段の現在
の表示位置からそれぞれ1個の表示値を読み出し、10
種類の、各段の表示値の重み付き和b1〜b10を採取
して、それぞれの重み付き和の、68を法とする剰余c
1〜c10を算出する。この場合の重みは適当に定めれ
ばよく、重みの種類ごとに重み付き和が求められる。読
み出し機構は、1回の読み出しを行うごとに、各段にお
ける表示位置を1個ずつ右へずらしてゆく。この乱数表
の周期は、Π(89,83,…,47)であり、1.8
×10 程度である。原写像0〜67を表す間接指標
配列2は、68個の間接指標配列を並べたものである。
各間接指標配列の内容は、適当な乱数を用いて作成する
ことが望ましい。また、間接指標配列の数は、例えば後
述のように、原写像の組み合わせの総当たりを試行する
攻撃方法の場合と、乱数表の表示開始位置の総当たりを
試行する攻撃方法の場合とで、試行回数と実行時間を勘
案しながら、適当な値を選択すればよい。
The random number table and the reading mechanism 1 are equipped with a 10-stage random number table containing random integer values. The length of each row of the random number table is 89, 83, 79,.
As shown in FIG. 7, they are relatively prime. The reading mechanism starts reading from an appropriate position, reads one display value from the current display position of each stage, and reads out one display value.
The weighted sums b1 to b10 of the display values of each stage of the types are collected, and the remainder c of each weighted sum modulo 68
1 to c10 are calculated. The weight in this case may be determined appropriately, and a weighted sum is obtained for each type of weight. The reading mechanism shifts the display position in each stage one by one to the right each time reading is performed. The period of this random number table is Π (89, 83,..., 47), and is 1.8.
× 10 about 1 8. The indirect index array 2 representing the original mappings 0 to 67 is obtained by arranging 68 indirect index arrays.
It is desirable to create the contents of each indirect index array using an appropriate random number. Also, the number of indirect index arrays is, for example, as described later, in the case of an attack method of trying a brute force combination of original maps and in the case of an attack method of trying a brute force display position of a random number table. An appropriate value may be selected in consideration of the number of trials and the execution time.

【0039】原写像0〜67の逆写像を表す間接指標配
列3は、間接指標配列2の各配列に対して、それぞれの
逆写像を表す間接指標配列を並べたものである。間接指
標配列3を作成するためには、元数89個のソートとい
う操作を、68回行うだけでよい。定数系列の4次行列
fと、fの逆行例gは、逆行列が1個存在するように選
ばれた、適当な行列である。定数系列の4次行列fに
は、単位行列を選んではならないのはもちろんだが、図
5の(b)に示されたような疎行列も好ましくなく、密
行列を選ぶことが望ましい。また、行列の次数は、4次
に限らず、例えば4次の倍数で任意に選ぶことができる
が、この際、行列の次数と、1回の処理で取り扱う文字
列のバイト数とが等しくなるようにすることが必要であ
る。
The indirect index array 3 representing the inverse mapping of the original mappings 0 to 67 is obtained by arranging the indirect index array representing the inverse mapping for each array of the indirect index array 2. In order to create the indirect index array 3, the operation of sorting 89 elements is performed only 68 times. The fourth order matrix f of the constant series and the inverse example g of f are appropriate matrices selected such that one inverse matrix exists. Of course, a unit matrix should not be selected for the fourth-order matrix f of the constant series, but a sparse matrix such as that shown in FIG. 5B is also not preferred, and it is desirable to select a dense matrix. The order of the matrix is not limited to the fourth order, and can be arbitrarily selected, for example, a multiple of the fourth order. In this case, the order of the matrix is equal to the number of bytes of the character string handled in one process. It is necessary to do so.

【0040】次に、図7,図8を用いて、この例の方法
によって、平文の暗号化と、暗文の復号化とを行う場合
の手順を説明する。まず、発信者に秘密鍵6を指定させ
ることによって、この秘密鍵6から乱数表の各段の開始
位置を決定する。秘密鍵6は、その長さを例えば89種
類の文字の内から指定する場合には、10バイト以上を
入力させることが推奨される。秘密鍵6から10種類の
任意の重みを付けた重み付き和a1〜a10を採取し、
それぞれ89を法とする剰余,83を法とする剰余,
…,47を法とする剰余を算出して、乱数表の1段目,
2段目,…,10段目の表示開始位置を決定する(手順
S1)。最初、平文データから、4バイトずつの文字列
7を順次取り出し(手順S2)、文字列の取り出しごと
に、乱数表と読み出し機構1から値を読み出して、使用
する原写像の番号c1〜c5と、c6〜c10を決定す
る。
Next, a procedure for encrypting a plaintext and decrypting a ciphertext by the method of this example will be described with reference to FIGS. First, the sender specifies the secret key 6 to determine the starting position of each stage of the random number table from the secret key 6. When the length of the secret key 6 is specified from, for example, 89 types of characters, it is recommended to input 10 bytes or more. From the secret key 6, weighted sums a1 to a10 with 10 arbitrary weights are collected,
The remainder modulo 89, the remainder modulo 83, respectively
…, Calculate the remainder modulo 47, and in the first row of the random number table,
The display start position of the second tier,..., Tenth tier is determined (procedure S1). First, the character string 7 of 4 bytes is sequentially extracted from the plain text data (step S2). Each time the character string is extracted, the value is read out from the random number table and the reading mechanism 1, and the numbers c1 to c5 of the original mappings to be used , C6 to c10 are determined.

【0041】次に、2に示す原写像0を表す間接指標配
列〜原写像67を表す間接指標配列から、c1番〜c5
番の配列を取り出し、これらの合成写像を表す間接指標
配列d1を作成する(手順S3)。同様に、間接指標配
列2から、c6番〜c10番の配列を取り出し、これら
の合成写像を表す間接指標配列d2を作成する(手順S
4)。そして、平文データ中の4バイト文字列を、ま
ず、間接指標配列d1で変換し(手順S5)、次に変換
結果の文字列を、行列fとの積算で変換し(手順S
6)、さらにこの変換結果の文字列を、間接指標配列d
2で変換して(手順S7)、変換結果の文字列を暗文デ
ータ中の4バイト文字列8として格納する(手順S
8)。次に、乱数表の各段の表示位置を1個ずつ右へ移
動させ、平文データから次の4バイト文字列を読み出し
て、以下、上記と同様の処理を繰り返す。平文データ
の、4バイトに満たない終端部分の処理については、例
えば、適当なデータをパディングして4バイトの倍数に
なるような調整を行えばよく、この発明の本質には無関
係である。
Next, from the indirect index array representing the original mapping 0 to the indirect index array representing the original mapping 67 shown in FIG.
Then, the array of number is taken out, and an indirect index array d1 representing these composite maps is created (step S3). Similarly, arrays c6 to c10 are extracted from the indirect index array 2, and an indirect index array d2 representing a composite map of these is created (procedure S
4). Then, the 4-byte character string in the plaintext data is first converted by the indirect index array d1 (step S5), and then the converted character string is converted by multiplication with the matrix f (step S5).
6) Further, the character string of this conversion result is stored in the indirect index array d.
2 (step S7), and stores the character string resulting from the conversion as a 4-byte character string 8 in the ciphertext data (step S7).
8). Next, the display position of each row of the random number table is moved to the right one by one, the next 4-byte character string is read from the plaintext data, and the same processing as above is repeated thereafter. Regarding the processing of the end portion of the plaintext data of less than 4 bytes, for example, appropriate data may be padded and adjusted so as to be a multiple of 4 bytes, which is irrelevant to the nature of the present invention.

【0042】受信者が、このようにして生成された暗文
の復号化を行う場合にも、上記の秘密鍵6を使用する。
暗号化時と同様に、乱数表の各段の表示開始位置を決定
する。暗文データから4バイトの文字列を取り出すごと
に、暗号化の場合と同様に、原写像の番号c1〜c10
を算出する。次に、3に示す原写像0の逆写像を表す間
接指標配列〜原写像67の逆写像を表す間接指標配列か
ら、c10番〜c6番の逆写像の配列を取り出し、これ
らの合成写像を表す間接指標配列e2を作成する(手順
S9)。この際、注意すべきことは、暗号化時には、c
6,c7,…,c10の順に合成したのに対し、復号化
時には、逆写像を、c10,c9,…,c6の順に合成
する点である。
The above-mentioned secret key 6 is also used when the recipient decrypts the encrypted text thus generated.
As in the case of the encryption, the display start position of each row of the random number table is determined. Each time a 4-byte character string is extracted from the ciphertext data, the numbers c1 to c10 of the original maps are obtained in the same manner as in the encryption.
Is calculated. Next, an array of inverse maps c10 to c6 is extracted from the indirect index array representing the inverse mapping of the original mapping 0 to the indirect index array representing the inverse mapping of the original mapping 67 shown in 3 and represents a composite mapping of these. An indirect index array e2 is created (procedure S9). At this time, it should be noted that at the time of encryption, c
6, c7,..., C10, whereas the inverse map is synthesized in the order of c10, c9,.

【0043】次に、同様に、間接指標配列3からc5番
〜c1番の逆写像の配列を取り出し、これらの合成写像
を表す間接指標配列e1を作成する(手順S10)。こ
の場合も、暗号化の場合とは逆の順序で合成することに
注意する必要がある。なお手順S9と手順S10は、ど
ちらを先に行ってもよい。そして、暗文データ中の4バ
イト文字列8を、まず間接指標配列e2で変換し手順S
11)、次に変換結果の文字列を、逆行列gとの積算で
変換し(手順S12)、さらにこの変換結果の文字列
を、間接指標配列e1で変換して(手順S13)、変換
結果の文字列を平文データ中の4バイト文字列として格
納する(手順S14)。暗文データの、4バイトに満た
ない終端部分の処理については、平文データの暗号化の
場合と同様に処置すればよい。
Next, similarly, an array of inverse mappings of c5 to c1 is extracted from the indirect index array 3, and an indirect index array e1 representing these composite maps is created (step S10). It should be noted that, in this case as well, the composition is performed in the reverse order of the encryption. Either step S9 or step S10 may be performed first. Then, the 4-byte character string 8 in the ciphertext data is first converted by the indirect index array e2 and the procedure S
11) Next, the character string of the conversion result is converted by multiplication with the inverse matrix g (step S12), and the character string of the conversion result is further converted by the indirect index array e1 (step S13). Is stored as a 4-byte character string in the plaintext data (step S14). The processing of the end portion of the encrypted data that is less than 4 bytes may be performed in the same manner as in the case of encrypting the plaintext data.

【0044】以下、この例の共通鍵暗号化方法による暗
文に対して、秘密鍵を知らずに解読を試みた場合の、解
読の可能性について検討する。いま、攻撃者が、暗号化
の方法のうち、秘密鍵以外の部分、すなわち乱数表と読
み出し機構1と、原写像0〜67を表す間接指標配列2
と、原写像0〜67の逆写像を表す間接指標配列3と、
定数係数の4次行列f4と、fの逆行列g5とを入手し
ていると仮定すると、この場合、攻撃者は、秘密鍵6を
知らないので、乱数表と読み出し機構1の上の表示開始
位置を、直接には求められない。
In the following, the possibility of deciphering the ciphertext by the common key encryption method of this example without knowing the secret key will be examined. Now, the attacker determines that the encryption method other than the secret key, that is, the random number table and the reading mechanism 1, and the indirect index array 2 representing the original maps 0 to 67.
And an indirect index array 3 representing an inverse mapping of the original mappings 0 to 67;
Assuming that the quaternary matrix f4 of the constant coefficient and the inverse matrix g5 of f have been obtained, in this case, the attacker does not know the secret key 6, so that the display on the random number table and the reading mechanism 1 starts. The location cannot be determined directly.

【0045】また、攻撃者が、例えば先頭の4バイトに
関して、平文と暗文の組み合わせを入手したと仮定する
と、この場合、原写像0〜67のうち、どれとどれがc
1〜c10として選ばれたかわからないため、間接指標
配列d1,d2は、攻撃者にとって未知の写像である。
ここで攻撃者が解くべき問題は、「既知の4バイトの文
字列が、未知の間接指標配列d1,既知の行列fとの積
算,未知の間接指標配列d2を経て、既知の4バイトの
文字列となった場合の、間接指標配列d1,d2を求め
よ。また、乱数表上の表示位置を求めよ。」ということ
になるが、この問題を解析的な手法で解くことはできな
い。
Assuming that the attacker has obtained a combination of plaintext and ciphertext for, for example, the first four bytes, in this case, which and which of the original maps 0 to 67 are c
Since it is not known that the indices are selected as 1 to c10, the indirect index arrays d1 and d2 are mappings unknown to the attacker.
Here, the problem to be solved by the attacker is as follows: “A known 4-byte character string is added to an unknown indirect index array d1 and a known matrix f. Find the indirect index arrays d1 and d2 in the case of a sequence. Find the display position on the random number table. "However, this problem cannot be solved by an analytical method.

【0046】また、攻撃者が、既知の平文と暗文の組み
合わせ、又は、選択した平文と暗文の組み合わせから、
差分をとって解析することを考えたと仮定すると、この
発明の暗文は、間接指標配列による変換という、線形的
な性質とは無縁の写像であって、行列の積算による変換
を挟んだ形になっているので、差分解析は不可能であ
る。
Further, the attacker can select a combination of a known plaintext and a plaintext or a selected combination of a plaintext and a plaintext,
Assuming that the analysis is performed by taking the difference, the secret sentence of the present invention is a mapping that is not related to the linear property of the conversion by the indirect index array, and is a form sandwiching the conversion by the integration of the matrix. Therefore, differential analysis is impossible.

【0047】また、攻撃者が、例えば先頭の4バイトに
関して、平文と暗文の組み合わせを多数入手して、対応
表を作ることで問題を解くことに代えようとしたと仮定
すると、この場合は、単純に計算すれば、89すな
わち6千2百万個以上程度の組み合わせを入手しなけれ
ばならない。既知平文攻撃とは、なんらかの事情で、平
文が既知であるもののうち、相手側が同じ秘密鍵を用い
て暗号化した暗文を入手できた場合に成立するものであ
るが、相手側が、6千2百万回も同じ秘密鍵を用いるこ
とを期待しても、それは、事実上不可能である。
Assume that the attacker obtains a large number of combinations of plaintext and encrypted text for the first four bytes, for example, and tries to solve the problem by creating a correspondence table. if simply calculated, it must obtain a combination of degree 89 4 i.e. 62 million or more. The known plaintext attack is established when, for some reason, the plaintext is known and the plaintext obtained by using the same secret key can encrypt the plaintext. It is virtually impossible to expect to use the same secret key a million times.

【0048】また、攻撃者が、以下のような選択平文攻
撃を試みた場合を仮定する。すなわち、全文が一定の4
バイトの文字列の繰り返しであるような平文データ、例
えば、「comp」,「entr」,「conc」,
「symm」,「able」,「then」,「tha
n」,「here」等のような4バイトの文字列の繰り
返しの平文データを作成する。そして、平文中に出現す
る頻度が高いと思われる文字列をつぎつぎに試行し、相
手側に同じ秘密鍵で暗号化させて、暗文を入手する。ま
た、同様に、上記の文字列が4バイトの整数倍の区切り
に対して、1バイト,2バイト,又は3バイト目に出現
した場合に相当する平文データを作成し、相手側に同じ
秘密鍵で暗号化させて、暗文を入手する。
It is also assumed that the attacker attempts a selective plaintext attack as described below. That is, the whole sentence is constant 4
Plain text data that is a repetition of a byte string, such as "comp", "entr", "conc",
"Symm", "able", "then", "tha
Create plain text data consisting of repeating 4-byte character strings such as "n" and "here". Then, a character string that appears to appear frequently in the plaintext is tried one after another, and the other party is encrypted with the same secret key to obtain a ciphertext. Similarly, plaintext data corresponding to the case where the above-mentioned character string appears at the 1st byte, 2nd byte, or 3rd byte with respect to an integer multiple of 4 bytes is created, and the same secret key is sent to the other party. To obtain the encrypted text.

【0049】つまり、出現する頻度が高いと思われる文
字列1個につき、4通りの平文データを選択する。そし
て、対応表を作って目的の暗文と比較すれば、目的の暗
文中の一定の位置に一定の文字列が出現した場合、当該
位置の平文が判明する。ただし、この手法での攻撃を意
味のあるものにするためには、どんなに少なくても、5
0種類の文字列×4回程度以上の試行が必須と考えられ
る。選択平文攻撃とは、攻撃者が選択した平文を、なん
らかの詐術を用いて、相手側に秘密鍵で暗号化させて、
その暗文を入手することによって成立する。しかしなが
ら、200回以上もの選択平文攻撃を仕掛けられるなど
ということは、現実には考えられないことである。もし
も、それが可能なほどの事情があるならば、秘密鍵を教
えてもらうことのほうが、よほど簡単であろう。
That is, four types of plaintext data are selected for each character string that appears to appear frequently. Then, when a correspondence table is created and compared with the target ciphertext, if a certain character string appears at a certain position in the target ciphertext, the plaintext at that position is found. However, in order for attacks using this technique to be meaningful, no less than 5
It is considered that zero or more types of character strings x about four or more trials are essential. Selective plaintext attack is to encrypt the plaintext selected by the attacker with the secret key using some form of fraud,
It is established by obtaining the secret sentence. However, the fact that 200 or more selective plaintext attacks can be launched cannot be considered in reality. If you can do that, it would be much easier to get your secret key.

【0050】また、攻撃者が、乱数表と読み出し機構1
を用い、表示開始位置の総当たりを試行したと仮定す
る。既述の通り、乱数表の周期は、1.8×1018
度である。そこで、1秒間に1億回の試行を行うことが
可能な計算機又は専用のハードウェアがあったとして
も、この試行には、570年以上かかることになる。
Also, the attacker can use the random number table and the readout mechanism 1
It is assumed that the brute force of the display start position is tried using As described above, the cycle of the random number table is about 1.8 × 10 18 . Therefore, even if there is a computer or dedicated hardware capable of performing 100 million trials per second, this trial will take 570 years or more.

【0051】また、攻撃者が、秘密鍵の総当たりを試行
したと仮定する。発信者が秘密鍵の長さとして10バイ
トの文字列を用いていて、「10バイト」という長さだ
けが既知であったとすると、可能な組み合わせは、31
×1018程度である。そこで、1秒間に1億回の試行
を行うことが可能な計算機又は専用のハードウェアがあ
ったとしても、この試行には、9800年以上かかるこ
とになる。
It is also assumed that the attacker has attempted a brute force secret key. Assuming that the sender uses a character string of 10 bytes as the length of the secret key and only the length of “10 bytes” is known, a possible combination is 31
It is about × 10 18 . Therefore, even if there is a computer or dedicated hardware capable of performing 100 million trials per second, this trial will take 9800 years or more.

【0052】また、攻撃者が、間接指標配列d1,d2
の総当たりを試行したと仮定すると、89の階乗は、1
6×10135 程度であるから、間接指標配列そのも
のの可能性をいちいち試すなどということは、絶対不可
能なことである。そこで、原写像0〜67のうち、10
個のものが選ばれて合成されることから、可能な順列を
総当たりで試行することになるが、可能な順列は68
10であって、2×10 18程度になり、上記の場合と
同じ条件として、600年以上かかることになる。
Also, if the attacker determines that the indirect index arrays d1, d2
, The factorial of 89 is 1
6 × 10135Indirect index array itself
It's absolutely impossible to try each possibility
It is good. Therefore, among the original maps 0 to 67, 10
Possible combinations are selected and synthesized.
A brute force attempt will be made, but possible permutations are 68
10And 2 × 10 18Will be about
The same condition would take over 600 years.

【0053】この例の方法は、古典的な暗号化方式と比
較すれば、「無限に近い長さの周期を持つ多表式暗号
と、綴字換字暗号とを組み合わせたもの」に相当する。
将来、計算機又は専用ハードウェアで実現できる実行速
度が著しく改善され、上記各例で説明したような総当た
りが可能になった場合には、乱数表の段数及び各段の幅
と、合成写像に用いる間接指標配列の個数を定量的に増
やすだけで対応でき、暗号化方式自体の定性的改変は必
要とされない。
The method of this example is equivalent to “a combination of a polytable encryption having a period of almost infinite length and a spelling / replacement encryption” as compared with a classic encryption method.
In the future, if the execution speed that can be realized by a computer or dedicated hardware is significantly improved and brute force as described in each of the above examples becomes possible, the number of stages in the random number table and the width of each stage, and the composite mapping It can be dealt with only by quantitatively increasing the number of indirect index sequences to be used, and qualitative modification of the encryption method itself is not required.

【0054】このように、この例の共通鍵暗号化又は復
号化方法によれば、長周期の乱数表と、乱数によって間
接指標配列の順列を変化させる機構と、間接指標配列に
よる変換で定数係数行列との積算を挟む形の合成写像と
を有しているので、既知平文攻撃並びに選択平文攻撃を
事実上不可能にすることができる。
As described above, according to the common key encryption / decryption method of this example, a long-period random number table, a mechanism for changing the permutation of the indirect index array by using random numbers, and a constant coefficient Since it has a composite map in which the matrix and the multiplication are interposed, the known plaintext attack and the selected plaintext attack can be made virtually impossible.

【0055】◇第2実施例 図9は、この発明の第2実施例である共通鍵暗号化又は
復号化方法において、使用開始前に決定し配布される事
項を説明する図、図10,図11は、同実施例の方法に
おける暗号化と復号化の手順を説明する図である。この
例においては、図9に示す、乱数表と読み出し機構11
と、原写像0〜67を表す間接指標配列12と、原写像
0〜67の逆写像を表す間接指標配列13と、定数係数
の4次行列f14と、fの逆行列g15とは、共通鍵暗
号化又は復号化方法の使用開始前に、別途決定され、配
布されているものとする。
Second Embodiment FIG. 9 is a diagram for explaining items to be determined and distributed before the start of use in a common key encryption or decryption method according to a second embodiment of the present invention. FIG. 11 is a view for explaining the procedure of encryption and decryption in the method of the embodiment. In this example, the random number table and the reading mechanism 11 shown in FIG.
And an indirect index array 12 representing the original mappings 0 to 67, an indirect index array 13 representing the inverse mapping of the original mappings 0 to 67, a fourth order matrix f14 of constant coefficients, and an inverse matrix g15 of f are a common key. It shall be determined and distributed separately before the use of the encryption or decryption method is started.

【0056】ここで、乱数表と読み出し機構11,原写
像0〜67を表す間接指標配列12,原写像0〜67の
逆写像を表す間接指標配列13,定数係数の4次行列f
14,fの逆行列g15は、それぞれ、図6に示され
た、乱数表と読み出し機構1,原写像0〜67を表す間
接指標配列2,原写像0〜67の逆写像を表す間接指標
配列3,定数係数の4次行列f4,fの逆行列g5と同
様なので、以下、これらについての詳細な説明は省略す
る。
Here, a random number table and readout mechanism 11, an indirect index array 12 representing the original mappings 0 to 67, an indirect index array 13 representing the inverse mapping of the original mappings 0 to 67, and a quaternary matrix f of constant coefficients
The inverse matrix g15 of 14 and f is a random number table and a readout mechanism 1, an indirect index array representing the original mappings 0 to 67, and an indirect index array representing the inverse mapping of the original mappings 0 to 67, respectively, shown in FIG. 3, the same as the inverse matrix g5 of the quaternary matrices f4 and f of the constant coefficients, and a detailed description thereof will be omitted below.

【0057】次に、図10,図11を用いて、この例の
方法によって、平文の暗号化と、暗文の復号化とを行う
際の手順を説明する。まず、発信者に秘密鍵16を指定
させることによって、この秘密鍵16から乱数表の各段
の開始位置を決定する手順は、図7,図8に示された第
1実施例の場合と同様である(手順P1)。最初、平文
データから、4バイト×256要素のベクトル17を取
り出し(手順P2)、乱数表と読み出し機構11から2
56回分の読み出しと、使用する原写像の番号c1〜c
10の算出を行い、要素ごとに使用する原写像番号c1
〜c5を格納した作業ベクトル18に格納し(手順P
3)、要素ごとに使用する原写像番号c6〜c10を格
納した作業ベクトル19に格納する(手順P4)。な
お、平文データから取り出すバイト数は、4バイトに限
らないことは第1実施例の場合と同様であり、これと行
列の次数との関係も同様である。また、要素数も256
要素に限らず、例えば、512要素でもよい。
Next, a procedure for encrypting a plaintext and decrypting a ciphertext by the method of this example will be described with reference to FIGS. First, the procedure for determining the starting position of each stage of the random number table from the secret key 16 by designating the secret key 16 by the sender is the same as that of the first embodiment shown in FIGS. (Procedure P1). First, a vector 17 of 4 bytes × 256 elements is extracted from the plaintext data (procedure P2), and the random number table and the reading mechanism 11
56 readings and the original mapping numbers c1 to c to be used
10 is calculated, and the original mapping number c1 used for each element
To c5 are stored in the stored work vector 18 (procedure P
3) Store the original mapping numbers c6 to c10 used for each element in the work vector 19 (step P4). Note that the number of bytes extracted from the plaintext data is not limited to 4 bytes as in the case of the first embodiment, and the relationship between this and the order of the matrix is also the same. Also, the number of elements is 256
Not limited to elements, for example, 512 elements may be used.

【0058】次に、平文データ中の4バイト×256要
素のベクトル17の各要素を、要素ごとに使用する原写
像番号c1〜c5を格納した作業ベクトル18の各要素
に含まれる、c1〜c5が指し示すところの原写像を用
いて変換する(手順P5)。この操作はリストベクトル
ロードと呼ばれ、ベクトルパイプライン演算器を持つ計
算機では、高速に実行できる。次に、上記の操作で得ら
れたベクトルの各要素を、行列fとの積算で変換する
(手順P6)。この操作は線形演算であり、ベクトルパ
イプライン演算器を持つ計算機では、高速に実行でき
る。次に、上記の操作で得られたベクトルの各要素を、
要素ごとに使用するc6〜c10を格納した作業ベクト
ル19の各要素に含まれる、原写像番号c6〜c10が
指し示すところの原写像を用いて変換する(手順P
7)。この操作は、上記と同様にリストベクトルロード
であり、ベクトルパイプライン演算器を持つ計算機で
は、高速に実行できる。そして、変換結果のベクトルの
各要素を、暗文データ中の4バイト×256要素のベク
トルとして、暗文データ中に格納する(手順P8)。
Next, each element of the vector 17 of 4 bytes × 256 elements in the plain text data is included in each element of the work vector 18 storing the original mapping numbers c1 to c5 used for each element. Is converted using the original mapping pointed to by (step P5). This operation is called a list vector load, and can be executed at high speed by a computer having a vector pipeline operation unit. Next, each element of the vector obtained by the above operation is converted by integration with the matrix f (procedure P6). This operation is a linear operation, and can be executed at high speed by a computer having a vector pipeline operation unit. Next, each element of the vector obtained by the above operation is
Conversion is performed using the original mappings indicated by the original mapping numbers c6 to c10 included in each element of the work vector 19 storing c6 to c10 used for each element (procedure P
7). This operation is a list vector load similarly to the above, and can be executed at high speed by a computer having a vector pipeline arithmetic unit. Then, each element of the vector of the conversion result is stored in the ciphertext data as a vector of 4 bytes × 256 elements in the ciphertext data (procedure P8).

【0059】このようにして作成された暗文を復号化す
る際には、第1実施例の場合と同様に、逆写像,逆行列
を用いて同様の手順によって行うことができる。暗号化
時と同様に、乱数表の各段の表示開始位置を決定する。
暗文データから4バイト×256要素のベクトル20を
取り出すごとに、乱数表と読み出し機構11から256
回分の読み出しと、使用する原写像の番号c1〜c10
の算出を行って、要素ごとに使用する原写像番号c10
〜c6を格納した作業ベクトル21に格納し(手順P
9)、要素ごとに使用する原写像番号c5〜c1を格納
した作業ベクトル22に格納する(手順P10)。な
お、手順P9と手順P10は、どちらを先に行ってもよ
い。
The decryption of the thus-prepared ciphertext can be performed by the same procedure using the inverse mapping and the inverse matrix, as in the first embodiment. As in the case of the encryption, the display start position of each row of the random number table is determined.
Each time the 4-byte × 256-element vector 20 is extracted from the ciphertext data, the random number table and the reading mechanism 11
Number of times of reading and numbers c1 to c10 of original maps to be used
Is calculated, and the original mapping number c10 used for each element is calculated.
To c6 are stored in the stored work vector 21 (procedure P
9) The original mapping numbers c5 to c1 to be used for each element are stored in the work vector 22 which stores them (procedure P10). Either procedure P9 or procedure P10 may be performed first.

【0060】次に、暗文データ中の4バイト×256要
素のベクトル20の各要素を、要素ごとに使用する原写
像番号c10〜c6を格納した作業ベクトル21の各要
素に含まれる、c10〜c6が指し示すところの原写像
の逆写像を用いて変換(リストベクトルロード)し(手
順P11)、変換結果の4バイト×256要素のベクト
ルの各要素を、行列fの逆行列gとの積算で変換(線形
演算)し(手順P12)、変換結果の4バイト×256
要素のベクトルの各要素を、要素ごとに使用する原写像
番号c5〜c1を格納した作業ベクトル22の各要素に
含まれる、c5〜c1が指し示すところの原写像の逆写
像を用いて変換(リストベクトルロード)して(手順P
13)、変換結果の4バイト×256要素のベクトルを
平文データ中の4ハイト×256要素のベクトルとし
て、平文データに格納する(手順P14)。暗文データ
の、4バイトに満たない終端部分の処理については、平
文データの暗号化の場合と同様に処置すればよい。
Next, each element of the vector 20 of 4 bytes × 256 elements in the ciphertext data is stored in each of the elements of the work vector 21 storing the original mapping numbers c10 to c6 used for each element. Conversion (list vector loading) is performed using the inverse mapping of the original mapping indicated by c6 (procedure P11), and each element of the 4-byte × 256-element vector resulting from the conversion is integrated with the inverse matrix g of the matrix f. Conversion (linear operation) (procedure P12), 4 bytes × 256 of the conversion result
Each element of the element vector is transformed using the inverse mapping of the original mapping pointed to by c5 to c1 included in each element of the work vector 22 storing the original mapping numbers c5 to c1 used for each element (list Vector loading) (procedure P
13) Store the 4-byte × 256-element vector of the conversion result in the plaintext data as a 4-height × 256-element vector in the plaintext data (procedure P14). The processing of the end portion of the encrypted data that is less than 4 bytes may be performed in the same manner as in the case of encrypting the plaintext data.

【0061】このように、この例の共通鍵暗号化方法に
よれば、長周期の乱数表と、乱数によって間接指標配列
の順列を変化させる機構と、間接指標配列による変換で
定数係数行列との積算を挟む形の合成写像とを有してい
るので、既知平文攻撃並びに選択平文攻撃を事実上不可
能にすることができる。
As described above, according to the common key encryption method of this example, a long-period random number table, a mechanism for changing the permutation of the indirect index array by random numbers, and a constant coefficient matrix by conversion using the indirect index array are used. Since it has a composite map sandwiching the multiplication, the known plaintext attack and the selected plaintext attack can be made virtually impossible.

【0062】この例の共通鍵暗号化方法による暗文に対
しても、既知平文攻撃並びに選択平文攻撃が事実上不可
能である。その理由は、第1実施例について説明したの
と同様なので、詳細な説明は省略する。
It is virtually impossible to perform a known plaintext attack and a selective plaintext attack on a ciphertext by the common key encryption method of this example. The reason is the same as that described in the first embodiment, and a detailed description thereof will be omitted.

【0063】以上、この発明の実施例を図面により詳述
してきたが、具体的な構成はこの実施例に限られたもの
ではなく、この発明の要旨を逸脱しない範囲の設計の変
更等があってもこの発明に含まれる。例えば、この発明
をソフトウェアによって実現する場合は、ハードウェア
として、汎用機,ワークステーション,パーソナルコン
ピュータ等、適当なコンピュータシステムを備え、これ
にこの発明の方法を実行するためのプログラムを装備す
ることによって容易に実現できる。さらに、このような
プログラムを、処理装置が読み取り可能な、任意の形式
の媒体に記録した状態で予め用意することによって、同
様なシステムを具備する場合に、同一の方法を普遍的に
実現することができる。
Although the embodiment of the present invention has been described in detail with reference to the drawings, the specific configuration is not limited to this embodiment, and there may be changes in the design without departing from the gist of the present invention. Even this is included in the present invention. For example, when the present invention is realized by software, an appropriate computer system such as a general-purpose machine, a workstation, a personal computer, or the like is provided as hardware, and a program for executing the method of the present invention is provided therein. Can be easily realized. Furthermore, by preparing such a program in advance in a state in which the program is recorded on a medium of any format that is readable by the processing device, the same method can be universally realized when a similar system is provided. Can be.

【0064】[0064]

【発明の効果】以上説明したように、この発明によれ
ば、長周期の乱数表と、乱数により間接指標配列の順序
を変化させる機構と、間接指標配列による変換で定数係
数との積算を挟む形の合成写像とを有しているので、既
知平文攻撃並びに選択平文攻撃を事実上不可能とする、
共通化鍵暗号化又は復号化方法を実現するとともに、共
通鍵暗号化又は復号化プログラムを記録した記憶媒体を
提供することができる。
As described above, according to the present invention, a long-period random number table, a mechanism for changing the order of the indirect index array by random numbers, and integration of a constant coefficient by conversion using the indirect index array are interposed. Since it has a composite map of the form, it is virtually impossible to make known plaintext attacks and selective plaintext attacks.
It is possible to provide a storage medium that records a common key encryption or decryption program while realizing a common key encryption or decryption method.

【図面の簡単な説明】[Brief description of the drawings]

【図1】写像において、文字と数値を対応させる場合の
例を示す図である。
FIG. 1 is a diagram illustrating an example of a case where a character is associated with a numerical value in a mapping.

【図2】この発明の一実施の形態における間接指標配列
による写像の仕組みについて示す図である。
FIG. 2 is a diagram illustrating a mechanism of mapping using an indirect index array according to an embodiment of the present invention;

【図3】同実施の形態における間接指標配列による写像
の逆写像について示すための図である。
FIG. 3 is a diagram showing a reverse mapping of a mapping by an indirect index array according to the embodiment;

【図4】同実施の形態における行列の積算による写像の
仕組みについて示すための図である。
FIG. 4 is a diagram showing a mechanism of mapping by multiplication of matrices in the embodiment.

【図5】同実施の形態における逆行列の積算による逆写
像の仕組みについて示すための図である。
FIG. 5 is a diagram showing a mechanism of inverse mapping by multiplication of an inverse matrix in the embodiment.

【図6】この発明の第1実施例である共通鍵暗号化又は
復号化方法において、使用開始以前に決定し配布される
事項を説明する図である。
FIG. 6 is a diagram for explaining items to be determined and distributed before the start of use in the common key encryption or decryption method according to the first embodiment of the present invention.

【図7】同実施例の方法における暗号化と復号化の手順
を説明する図である。
FIG. 7 is a diagram illustrating the procedure of encryption and decryption in the method of the embodiment.

【図8】同実施例の方法における暗号化と復号化の手順
を説明する図である。
FIG. 8 is a diagram illustrating the procedure of encryption and decryption in the method of the embodiment.

【図9】この発明の第2実施例である共通鍵暗号化又は
復号化方法において、使用開始前に決定し配布される事
項を説明する図である。
FIG. 9 is a diagram for explaining items to be determined and distributed before starting use in a common key encryption or decryption method according to a second embodiment of the present invention.

【図10】同実施例の方法における暗号化と復号化の手
順を説明する図である。
FIG. 10 is a diagram illustrating the procedure of encryption and decryption in the method of the embodiment.

【図11】同実施例の方法における暗号化と復号化の手
順を説明する図である。
FIG. 11 is a diagram illustrating the procedure of encryption and decryption in the method of the embodiment.

【符号の説明】[Explanation of symbols]

1,11 乱数表と読み出し機構 2,12 原写像0〜67を表す間接指標配列 3,13 原写像0〜67の逆写像を表す間接指標
配列 4,14 定数係数の4次行列 5,15 定数係数の4次行列の逆行列 6,16 秘密鍵 7 平文データ中の4バイト文字列 8 暗文データ中の4バイト文字列 17 平文データ中の4バイト×256要素のベク
トル 20 暗文データ中の4バイト×256要素のベク
トル
1,11 random number table and readout mechanism 2,12 indirect index array representing original mapping 0-67 3,13 indirect index array representing inverse mapping of original mapping 0-67 4,14 fourth order matrix of constant coefficient 5,15 constant Inverse matrix of coefficient fourth order matrix 6, 16 Secret key 7 4-byte character string in plaintext data 8 4-byte character string in plaintext data 17 Vector of 4 bytes x 256 elements in plaintext data 20 4 bytes x 256 element vector

Claims (8)

【特許請求の範囲】[Claims] 【請求項1】 長周期の乱数表と、該乱数表の表示値に
基づき(p+q)個の原写像番号を算出する読み出し機
構と、それぞれの原写像を表す間接指標配列と、定数係
数のm次行列とを予め用意し、 秘密鍵を指定したとき、該秘密鍵から前記乱数表の表示
開始位置を決定したのち、 平文データからmバイトの文字列を取り出すごとに、前
記乱数表と読み出し機構によって、前記(p+q)個の
原写像の番号の算出を行い、該(p+q)個の原写像番
号中のp個の原写像番号に示される原写像の合成写像を
表す第1の間接指標配列と、前記(p+q)個の原写像
番号中のq個の原写像番号に示される原写像の合成写像
を表す第2の間接指標配列とを作成して、前記平文デー
タから取り出された文字列を前記第1の間接指標配列で
変換し、次に該変換結果の文字列を前記定数係数のm次
行列との積算で変換し、さらに該変換結果の文字列を前
記第2の間接指標配列で変換して得た文字列を、暗文デ
ータ中のmバイトの文字列として暗文データに格納する
処理を、前記平文データからのmバイトの文字列の読み
出しごとに、前記乱数表の各段の表示位置を1個ずつず
らしながら繰り返すことによって、平文の暗号化を行う
ことを特徴とする共通鍵暗号化方法。
1. A long-period random number table, a read-out mechanism for calculating (p + q) original mapping numbers based on display values of the random number table, an indirect index array representing each original mapping, and a constant coefficient m The following matrix is prepared in advance, and when a secret key is designated, a display start position of the random number table is determined from the secret key, and each time an m-byte character string is extracted from plaintext data, the random number table and the reading mechanism are read out. Calculating the numbers of the (p + q) original mappings, and the first indirect index array representing the composite mapping of the original mappings indicated by the p original mapping numbers in the (p + q) original mapping numbers And a second indirect index array representing a composite map of the original mappings indicated by the q original mapping numbers in the (p + q) original mapping numbers, and a character string extracted from the plaintext data. Is converted by the first indirect index array, and then The character string resulting from the conversion is converted by multiplication with the m-th order matrix of the constant coefficient, and the character string obtained by converting the character string resulting from the conversion with the second indirect index array is used in the ciphertext data. By repeating the process of storing the m-byte character string in the ciphertext data while reading the m-byte character string from the plaintext data while shifting the display position of each row of the random number table one by one, A common key encryption method, comprising:
【請求項2】 長周期の乱数表と、該乱数表の表示値に
基づき(p+q)個の原写像番号を算出する読み出し機
構と、それぞれの原写像の逆写像を表す間接指標配列
と、定数係数のm次行列の逆行列とを予め用意し、秘密
鍵を指定したとき、該秘密鍵から前記乱数表の表示開始
位置を決定したのち、 暗文データからmバイトの文字列を取り出すごとに、前
記乱数表と読み出し機構によって、前記(p+q)個の
原写像の番号の算出を行い、該(p+q)個の原写像番
号中のp個の原写像番号に示される原写像の暗号化時と
逆順の配列の逆写像の合成写像を表す第1の間接指標配
列と、前記(p+q)個の原写像番号中のq個の原写像
番号に示される原写像の暗号化時と逆順の配列の逆写像
の合成写像を表す第2の間接指標配列とを作成して、前
記暗文データから取り出された文字列を前記第2の間接
指標配列で変換し、次に該変換結果の文字列を前記定数
係数のm次行列の逆行列との積算で変換し、さらに該変
換結果の文字列を前記第1の間接指標配列で変換して得
た文字列を、平文データ中のmバイトの文字列として平
文データに格納する処理を、前記暗文データからのmバ
イトの文字列の読み出しごとに、前記乱数表の各段の表
示位置を暗号化時と逆方向に1個ずつずらしながら繰り
返すことによって、暗文の復号化を行うことを特徴とす
る共通鍵復号化方法。
2. A long-period random number table, a reading mechanism for calculating (p + q) original mapping numbers based on display values of the random number table, an indirect index array representing a reverse mapping of each original mapping, and a constant When an inverse matrix of an m-th order matrix of coefficients is prepared in advance, and a secret key is designated, after determining the display start position of the random number table from the secret key, every time a m-byte character string is extracted from the ciphertext data, The number of the (p + q) original mappings is calculated by the random number table and the reading mechanism, and when the original mappings indicated by the p original mapping numbers in the (p + q) original mapping numbers are encrypted, A first indirect index array representing a composite map of an inverse mapping of an array in the reverse order to the above, and an array in an order reverse to that at the time of encryption of the original mapping indicated by q original mapping numbers in the (p + q) original mapping numbers And a second indirect index array representing a composite map of the inverse map of The character string extracted from the memorized sentence data is converted by the second indirect index array, and then the converted character string is converted by multiplication with the inverse matrix of the m-order matrix of the constant coefficient. A process of storing a character string obtained by converting the character string of the conversion result using the first indirect index array into the plaintext data as a character string of m bytes in the plaintext data is performed by using m bytes of the ciphertext data. A common key decryption method, wherein a ciphertext is decrypted by repeating the display position of each row of the random number table one by one in a direction opposite to that in the encryption at every reading of the character string. .
【請求項3】 長周期の乱数表と、該乱数表の表示値に
基づき(p+q)個の原写像番号を算出する読み出し機
構と、それぞれの原写像を表す間接指標配列と、定数係
数のm次行列とを予め用意し、 秘密鍵を指定したとき、該秘密鍵から前記乱数表の表示
開始位置を決定したのち、 平文データからmバイトの所定数の要素分のベクトルを
取り出すごとに、前記乱数表と読み出し機構によって、
前記要素数回分の読み出しと前記(p+q)個の原写像
の番号の算出を行って、要素ごとに使用する前記(p+
q)個の原写像番号中のp個の原写像番号を第1の作業
ベクトルに格納するとともに、要素ごとに使用する前記
(p+q)個の原写像番号中のq個の原写像番号を第2
の作業ベクトルに格納し、前記平文データから取り出し
たベクトルの各要素を、前記第1の作業ベクトルの各要
素に含まれる、前記p個の原写像番号が指し示す原写像
を用いて変換し、次に該変換結果のベクトルの各要素を
前記定数係数のm次行列との積算で変換し、さらに該変
換結果のベクトルの各要素を、前記第2の作業ベクトル
の各要素に含まれる、前記q個の原写像番号が指し示す
原写像を用いて変換して得たベクトルを、暗文データ中
のmバイトの所定数の要素分のベクトルとして暗文デー
タに格納する処理を、平文データからのmバイトの所定
数の要素分のベクトルの読み出しごとに、前記乱数表の
各段の表示位置を1個ずつずらしながら繰り返すことに
よって、平文の暗号化を行うことを特徴とする共通鍵暗
号化方法。
3. A long-period random number table, a reading mechanism for calculating (p + q) original mapping numbers based on display values of the random number table, an indirect index array representing each original mapping, and a constant coefficient m The following matrix is prepared in advance, and when a secret key is designated, a display start position of the random number table is determined from the secret key, and every time a vector of a predetermined number of m bytes is extracted from plaintext data, By the random number table and the reading mechanism,
By reading out the element several times and calculating the numbers of the (p + q) original mappings, the (p +
q) The original mapping numbers of the original mapping numbers are stored in the first work vector, and the q original mapping numbers of the (p + q) original mapping numbers used for each element are stored in the first working vector. 2
, And converts each element of the vector extracted from the plaintext data using an original mapping indicated by the p original mapping numbers included in each element of the first work vector. Is converted by multiplying each element of the vector of the conversion result with the m-th order matrix of the constant coefficient, and further, each element of the vector of the conversion result is included in each element of the second work vector, q The process of storing a vector obtained by converting using the original mappings indicated by the original mapping numbers into the ciphertext data as a vector of a predetermined number of m-byte elements in the ciphertext data, A common key encryption method, characterized in that plain text encryption is performed by repeating the display position of each row of the random number table one by one every time a vector of a predetermined number of elements of bytes is read.
【請求項4】 長周期の乱数表と、該乱数表の表示値に
基づき(p+q)個の原写像番号を算出する読み出し機
構と、それぞれの原写像の逆写像を表す間接指標配列
と、定数係数のm次行列の逆行列とを予め用意し、 秘密鍵を指定したとき、該秘密鍵から前記乱数表の表示
開始位置を決定したのち、 暗文データからmバイトの所定数の要素分のベクトルを
取り出すごとに、前記乱数表と読み出し機構によって、
前記要素数回分の読み出しと前記(p+q)個の原写像
番号の算出を行って、要素ごとに使用する前記(p+
q)個の原写像番号中のp個の原写像番号を暗号化時と
逆順に第1の作業ベクトルに格納するとともに、要素ご
とに使用する前記(p+q)個の原写像番号中のq個の
原写像番号を暗号化時と逆順に第2の作業ベクトルに格
納し、前記暗文データから取り出したベクトルの各要素
を、前記第2の作業ベクトルの各要素に含まれる、前記
q個の原写像番号が指し示す原写像の逆写像を用いて変
換し、次に該変換結果のベクトルの各要素を前記定数係
数のm次行列の逆行列との積算で変換し、さらに該変換
結果のベクトルの各要素を、前記第1の作業ベクトルの
各要素に含まれる、前記p個の原写像番号が指し示す原
写像の逆写像を用いて変換して得たベクトルを、平文デ
ータ中のmバイトの所定数の要素分のベクトルとして平
文データに格納する処理を、暗文データからのmバイト
の所定数の要素分のベクトルの読み出しごとに、前記乱
数表の各段の表示位置を暗号化時と逆方向に1個ずつず
らしながら繰り返すことによって、暗文の復号化を行う
ことを特徴とする共通鍵復号化方法。
4. A long-period random number table, a reading mechanism for calculating (p + q) original mapping numbers based on display values of the random number table, an indirect index array representing inverse mapping of each original mapping, and a constant When an inverse matrix of an m-th order matrix of coefficients is prepared in advance and a secret key is designated, a display start position of the random number table is determined from the secret key. Every time a vector is taken out, the random number table and the reading mechanism
By reading out the element several times and calculating the (p + q) original mapping numbers, the (p +
q) The p original mapping numbers in the original mapping numbers are stored in the first work vector in the reverse order of the encryption, and the q number in the (p + q) original mapping numbers used for each element. Are stored in the second work vector in the reverse order of the time of encryption in the second work vector, and each element of the vector extracted from the ciphertext data is replaced with the q number of elements included in each element of the second work vector. The conversion is performed using the inverse mapping of the original mapping indicated by the original mapping number, and then each element of the vector of the conversion result is converted by multiplication with the inverse matrix of the m-th order matrix of the constant coefficient. Are converted using the inverse mapping of the original mappings indicated by the p original mapping numbers included in each element of the first working vector, and m bytes of the plaintext data are obtained. Store in plaintext data as a vector of a predetermined number of elements The process is repeated by shifting the display position of each row of the random number table one by one in a direction opposite to that at the time of encryption every time a vector of a predetermined number of m-byte elements is read from the ciphertext data. A common key decryption method characterized by decrypting a sentence.
【請求項5】 請求項1記載の共通鍵暗号化方法を実行
するプログラムを記録したコンピュータ読み取り可能な
記録媒体であって、長周期の乱数表と、該乱数表の表示
値に基づき(p+q)個の原写像番号を算出する読み出
し機構と、それぞれの原写像を表す間接指標配列と、定
数係数のm次行列とを予め用意し、秘密鍵を指定したと
き、該秘密鍵から前記乱数表の表示開始位置を決定した
のち、平文データからmバイトの文字列を取り出すごと
に、前記乱数表と読み出し機構によって、前記(p+
q)個の原写像の番号の算出を行い、該(p+q)個の
原写像番号中のp個の原写像番号に示される原写像の合
成写像を表す第1の間接指標配列と、前記(p+q)個
の原写像番号中のq個の原写像番号に示される原写像の
合成写像を表す第2の間接指標配列とを作成して、前記
平文データから取り出された文字列を前記第1の間接指
標配列で変換し、次に該変換結果の文字列を前記定数係
数のm次行列との積算で変換し、さらに該変換結果の文
字列を前記第2の間接指標配列で変換して得た文字列
を、暗文データ中のmバイトの文字列として暗文データ
に格納する処理を、前記平文データからのmバイトの文
字列の読み出しごとに、前記乱数表の各段の表示位置を
1個ずつずらしながら繰り返すことによって、平文の暗
号化を行うプログラムを記録したことを特徴とする共通
鍵暗号化プログラムを記録した記憶媒体。
5. A computer-readable recording medium having recorded thereon a program for executing the common key encryption method according to claim 1, wherein (p + q) based on a long-period random number table and a display value of the random number table. Readout mechanism for calculating the number of original mapping numbers, an indirect index array representing each original mapping, and an m-th order matrix of constant coefficients are prepared in advance, and when a secret key is specified, the random number table of the random number table is determined from the secret key. After determining the display start position, each time an m-byte character string is extracted from the plaintext data, the (p +
calculating the numbers of q) original mappings, a first indirect index array representing a composite mapping of the original mappings indicated by p original mapping numbers in the (p + q) original mapping numbers, and and a second indirect index array representing a composite map of the original mappings indicated by the q original mapping numbers in the (p + q) original mapping numbers, and converting the character string extracted from the plaintext data into the first And then convert the character string of the conversion result by multiplication with the m-th order matrix of the constant coefficient, and further convert the character string of the conversion result by the second indirect index array. The process of storing the obtained character string in the ciphertext data as a m-byte character string in the ciphertext data is performed by reading the m-byte character string from the plaintext data every time the m-byte character string is read out. The program that encrypts plaintext by repeating A storage medium storing a common key encrypted program, characterized by recording a.
【請求項6】 請求項2記載の共通鍵復号化方法を実行
するプログラムを記録したコンピュータ読み取り可能な
記録媒体であって、長周期の乱数表と、該乱数表の表示
値に基づき(p+q)個の原写像番号を算出する読み出
し機構と、それぞれの原写像の逆写像を表す間接指標配
列と、定数係数のm次行列の逆行列とを予め用意し、秘
密鍵を指定したとき、該秘密鍵から前記乱数表の表示開
始位置を決定したのち、暗文データからmバイトの文字
列を取り出すごとに、前記乱数表と読み出し機構によっ
て、前記(p+q)個の原写像の番号の算出を行い、該
(p+q)個の原写像番号中のp個の原写像番号に示さ
れる原写像の暗号化時と逆順の配列の逆写像の合成写像
を表す第1の間接指標配列と、前記(p+q)個の原写
像番号中のq個の原写像番号に示される原写像の暗号化
時と逆順の配列の逆写像の合成写像を表す第2の間接指
標配列とを作成して、前記暗文データから取り出された
文字列を前記第2の間接指標配列で変換し、次に該変換
結果の文字列を前記定数係数のm次行列の逆行列との積
算で変換し、さらに該変換結果の文字列を前記第1の間
接指標配列で変換して得た文字列を、平文データ中のm
バイトの文字列として平文データに格納する処理を、前
記暗文データからのmバイトの文字列の読み出しごと
に、前記乱数表の各段の表示位置を暗号化時と逆方向に
1個ずつずらしながら繰り返すことによって、暗文の復
号化を行うプログラムを記録したことを特徴とする共通
鍵復号化プログラムを記録した記憶媒体。
6. A computer-readable recording medium storing a program for executing the common key decryption method according to claim 2, wherein (p + q) based on a long-period random number table and a display value of the random number table. A readout mechanism for calculating the number of original mappings, an indirect index array representing an inverse mapping of each original mapping, and an inverse matrix of an m-th order matrix of constant coefficients are prepared in advance. After determining the display start position of the random number table from the key, every time an m-byte character string is extracted from the ciphertext data, the random number table and the reading mechanism calculate the numbers of the (p + q) original maps. , A first indirect index array representing a composite map of a reverse mapping of an order reverse to that at the time of encryption of the original mappings indicated by the p original mapping numbers in the (p + q) original mapping numbers, and (p + q Q) elements in the) original mapping numbers A second indirect index array representing a composite mapping of the inverse mapping in the reverse order to that of the encryption of the original mapping indicated by the mapping number, and forming the character string extracted from the ciphertext data into the second The conversion is performed by an indirect index array, and then the converted character string is converted by multiplication with the inverse matrix of the m-th order matrix of the constant coefficient, and the converted character string is further converted by the first indirect index array. The character string obtained by
The process of storing the plaintext data as a byte character string is such that the display position of each row of the random number table is shifted one by one in the direction opposite to that at the time of encryption every time the m-byte character string is read from the ciphertext data. A storage medium storing a common key decryption program characterized by recording a program for decrypting a ciphertext by repeating the above process.
【請求項7】 請求項3記載の共通鍵暗号化方法を実行
するプログラムを記録したコンピュータ読み取り可能な
記録媒体であって、長周期の乱数表と、該乱数表の表示
値に基づき(p+q)個の原写像番号を算出する読み出
し機構と、それぞれの原写像を表す間接指標配列と、定
数係数のm次行列とを予め用意し、秘密鍵を指定したと
き、該秘密鍵から前記乱数表の表示開始位置を決定した
のち、平文データからmバイトの所定数の要素分のベク
トルを取り出すごとに、前記乱数表と読み出し機構によ
って、前記要素数回分の読み出しと前記(p+q)個の
原写像の番号の算出を行って、要素ごとに使用する前記
(p+q)個の原写像番号中のp個の原写像番号を第1
の作業ベクトルに格納するとともに、要素ごとに使用す
る前記(p+q)個の原写像番号中のq個の原写像番号
を第2の作業ベクトルに格納し、前記平文データから取
り出したベクトルの各要素を、前記第1の作業ベクトル
の各要素に含まれる、前記p個の原写像番号が指し示す
原写像を用いて変換し、次に該変換結果のベクトルの各
要素を前記定数係数のm次行列との積算で変換し、さら
に該変換結果のベクトルの各要素を、前記第2の作業ベ
クトルの各要素に含まれる、前記q個の原写像番号が指
し示す原写像を用いて変換して得たベクトルを、暗文デ
ータ中のmバイトの所定数の要素分のベクトルとして暗
文データに格納する処理を、平文データからのmバイト
の所定数の要素分のベクトルの読み出しごとに、前記乱
数表の各段の表示位置を1個ずつずらしながら繰り返す
ことによって、平文の暗号化を行うプログラムを記録し
たことを特徴とする共通鍵暗号化プログラムを記録した
記憶媒体。
7. A computer-readable recording medium having recorded thereon a program for executing the common key encryption method according to claim 3, wherein (p + q) based on a long-period random number table and a display value of the random number table. Readout mechanism for calculating the number of original mapping numbers, an indirect index array representing each original mapping, and an m-th order matrix of constant coefficients are prepared in advance, and when a secret key is specified, the random number table of the random number table is determined from the secret key. After the display start position is determined, every time a vector of a predetermined number of m bytes of elements is extracted from the plaintext data, the random number table and the reading mechanism read out the elements several times and obtain the (p + q) original maps. Numbers are calculated, and p original mapping numbers in the (p + q) original mapping numbers used for each element are set to the first.
, And the q original mapping numbers in the (p + q) original mapping numbers used for each element are stored in the second working vector, and each element of the vector extracted from the plaintext data is stored. Is converted using the source mappings indicated by the p source mapping numbers included in each element of the first working vector, and then each element of the vector of the conversion result is converted into an m-th order matrix of the constant coefficient. , And each element of the vector of the conversion result is obtained by converting using the original mapping indicated by the q original mapping numbers included in each element of the second work vector. The process of storing a vector in the ciphertext data as a vector of a predetermined number of m-byte elements in the ciphertext data is performed by reading the random number table every time a vector of a predetermined number of m-byte elements is read from plaintext data. Display of each column of By repeated while shifting the location one by one, the storage medium in which a common key encryption program characterized by recording a program for encrypting plaintext.
【請求項8】 請求項4記載の共通鍵復号化方法を実行
するプログラムを記録したコンピュータ読み取り可能な
記録媒体であって、長周期の乱数表と、該乱数表の表示
値に基づき(p+q)個の原写像番号を算出する読み出
し機構と、それぞれの原写像の逆写像を表す間接指標配
列と、定数係数のm次行列の逆行列とを予め用意し、秘
密鍵を指定したとき、該秘密鍵から前記乱数表の表示開
始位置を決定したのち、暗文データからmバイトの所定
数の要素分のベクトルを取り出すごとに、前記乱数表と
読み出し機構によって、前記要素数回分の読み出しと前
記(p+q)個の原写像の番号の算出を行って、要素ご
とに使用する前記(p+q)個の原写像番号中のp個の
原写像番号を暗号化時と逆順に第1の作業ベクトルに格
納するとともに、要素ごとに使用する前記(p+q)個
の原写像番号中のq個の原写像番号を暗号化時と逆順に
第2の作業ベクトルに格納し、前記暗文データから取り
出したベクトルの各要素を、前記第2の作業ベクトルの
各要素に含まれる、前記q個の原写像番号が指し示す原
写像の逆写像を用いて変換し、次に該変換結果のベクト
ルの各要素を前記定数係数のm次行列の逆行列との積算
で変換し、さらに該変換結果のベクトルの各要素を、前
記第1の作業ベクトルの各要素に含まれる、前記p個の
原写像番号が指し示す原写像の逆写像を用いて変換して
得たベクトルを、平文データ中のmバイトの所定数の要
素分のベクトルとして平文データに格納する処理を、暗
文データからのmバイトの所定数の要素分のベクトルの
読み出しごとに、前記乱数表の各段の表示位置を暗号化
時と逆方向に1個ずつずらしながら繰り返すことによっ
て、暗文の復号化を行うプログラムを記録したことを特
徴とする共通鍵復号化プログラムを記録した記憶媒体。
8. A computer-readable recording medium on which a program for executing the common key decryption method according to claim 4 is recorded, based on a long-period random number table and a display value of the random number table (p + q). A readout mechanism for calculating the number of original mappings, an indirect index array representing an inverse mapping of each original mapping, and an inverse matrix of an m-th order matrix of constant coefficients are prepared in advance. After determining the display start position of the random number table from the key, every time a vector of a predetermined number of m bytes of elements is extracted from the ciphertext data, the random number table and the reading mechanism read out the element several times and execute the ( The numbers of (p + q) original mappings are calculated, and the p original mapping numbers of the (p + q) original mapping numbers used for each element are stored in the first work vector in the reverse order of the encryption. Along with Q original mapping numbers in the (p + q) original mapping numbers used for each element are stored in the second working vector in the reverse order of the encryption, and each element of the vector extracted from the ciphertext data is stored. , Using the inverse mapping of the q original mappings contained in each element of the second working vector, and then converting each element of the vector of the conversion result to the constant coefficient m Inverse transformation of the original mapping indicated by the p original mapping numbers included in each element of the first working vector, wherein each element of the vector resulting from the transformation is converted by integration with the inverse matrix of the next matrix Is stored in the plaintext data as a vector of a predetermined number of m-byte elements in the plaintext data, and a process of storing a vector of a predetermined number of m-byte elements from the ciphertext data is performed. For each read, each stage of the random number table By repeated while shifting the shown position one by one during encryption and backward, storage medium storing a common key decryption program characterized by recording a program for decoding the Kurabun.
JP11184453A 1999-06-29 1999-06-29 Method of common key enciphering or deciphering, and recording medium with common key ciphering or deciphering program recorded thereon Pending JP2001013870A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11184453A JP2001013870A (en) 1999-06-29 1999-06-29 Method of common key enciphering or deciphering, and recording medium with common key ciphering or deciphering program recorded thereon

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11184453A JP2001013870A (en) 1999-06-29 1999-06-29 Method of common key enciphering or deciphering, and recording medium with common key ciphering or deciphering program recorded thereon

Publications (1)

Publication Number Publication Date
JP2001013870A true JP2001013870A (en) 2001-01-19

Family

ID=16153423

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11184453A Pending JP2001013870A (en) 1999-06-29 1999-06-29 Method of common key enciphering or deciphering, and recording medium with common key ciphering or deciphering program recorded thereon

Country Status (1)

Country Link
JP (1) JP2001013870A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10341096A1 (en) * 2003-09-05 2005-03-31 Giesecke & Devrient Gmbh Transition between masked representations of a value in cryptographic calculations
US7412054B2 (en) 2004-05-04 2008-08-12 International Business Machines Corporation Matrix encryption method and system
US7593525B1 (en) 2002-08-02 2009-09-22 Multiple Shift Key, Inc. Patternless encryption and decryption system and method
JP2011145464A (en) * 2010-01-14 2011-07-28 Nihon Univ Device and program for generation of pseudo-random number
CN113076554A (en) * 2021-03-12 2021-07-06 广西东信易联科技有限公司 Physical examination data safe storage method based on block chain
CN117176474A (en) * 2023-11-02 2023-12-05 深圳市国芯物联科技有限公司 Encryption protection method and system for RFID data
CN117440372A (en) * 2023-12-20 2024-01-23 商飞智能技术有限公司 Zero trust authentication method and device for wireless network

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7593525B1 (en) 2002-08-02 2009-09-22 Multiple Shift Key, Inc. Patternless encryption and decryption system and method
DE10341096A1 (en) * 2003-09-05 2005-03-31 Giesecke & Devrient Gmbh Transition between masked representations of a value in cryptographic calculations
US8290145B2 (en) 2003-09-05 2012-10-16 Giesecke & Devrient Gmbh Transition between masked representations of a value during cryptographic calculations
US7412054B2 (en) 2004-05-04 2008-08-12 International Business Machines Corporation Matrix encryption method and system
JP2011145464A (en) * 2010-01-14 2011-07-28 Nihon Univ Device and program for generation of pseudo-random number
CN113076554A (en) * 2021-03-12 2021-07-06 广西东信易联科技有限公司 Physical examination data safe storage method based on block chain
CN113076554B (en) * 2021-03-12 2022-10-11 广西东信易联科技有限公司 Physical examination data safe storage method based on block chain
CN117176474A (en) * 2023-11-02 2023-12-05 深圳市国芯物联科技有限公司 Encryption protection method and system for RFID data
CN117176474B (en) * 2023-11-02 2024-01-19 深圳市国芯物联科技有限公司 Encryption protection method and system for RFID data
CN117440372A (en) * 2023-12-20 2024-01-23 商飞智能技术有限公司 Zero trust authentication method and device for wireless network

Similar Documents

Publication Publication Date Title
US7864952B2 (en) Data processing systems with format-preserving encryption and decryption engines
US6185679B1 (en) Method and apparatus for a symmetric block cipher using multiple stages with type-1 and type-3 feistel networks
US6185304B1 (en) Method and apparatus for a symmetric block cipher using multiple stages
US8855296B2 (en) Data processing systems with format-preserving encryption and decryption engines
Andem A cryptanalysis of the tiny encryption algorithm
KR100363457B1 (en) Mapping Repertoire for Cryptosystems
CA2162125C (en) A repertoire of mappings for a cryptosystem
US6192129B1 (en) Method and apparatus for advanced byte-oriented symmetric key block cipher with variable length key and block
US6189095B1 (en) Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks
US20020141573A1 (en) Data decryption methodology
JPH11509940A (en) Cryptographic method and apparatus for non-linearly combining data blocks and keys
US6956951B2 (en) Extended key preparing apparatus, extended key preparing method, recording medium and computer program
Zhang et al. Cryptanalysis of image scrambling based on chaotic sequences and Vigenère cipher
JP3180836B2 (en) Cryptographic communication device
US20050175176A1 (en) Primitives for fast secure hash functions and stream ciphers
Natarajan et al. A novel approach for data security enhancement using multi level encryption scheme
Ahmad et al. Distributed text-to-image encryption algorithm
JP2001013870A (en) Method of common key enciphering or deciphering, and recording medium with common key ciphering or deciphering program recorded thereon
Shi et al. Exploiting non-full key additions: full-fledged automatic Demirci-Selcuk meet-in-the-middle cryptanalysis of skinny
Galbreath Cryptography for Internet and database applications: developing secret and public key techniques with Java
McKague Design and analysis of RC4-like stream ciphers
Gupta et al. Enhancement of security using B-RSA algorithm
US7505586B2 (en) Method for computer-based encryption and decryption of data
KR101790325B1 (en) Encryption and Decryption System
Kashyap et al. Security techniques using Enhancement of AES Encryption