JP3401207B2 - Substitution substitution device and program recording medium thereof - Google Patents
Substitution substitution device and program recording medium thereofInfo
- Publication number
- JP3401207B2 JP3401207B2 JP07125599A JP7125599A JP3401207B2 JP 3401207 B2 JP3401207 B2 JP 3401207B2 JP 07125599 A JP07125599 A JP 07125599A JP 7125599 A JP7125599 A JP 7125599A JP 3401207 B2 JP3401207 B2 JP 3401207B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- substitution
- sum
- stored
- storage means
- 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.)
- Expired - Lifetime
Links
Description
【0001】[0001]
【発明の属する技術分野】この発明は、主に暗号技術で
用いられる換字置換装置及びそのプログラム記録媒体に
関するものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a substitution character replacing device mainly used in encryption technology and its program recording medium.
【0002】[0002]
【従来の技術】データを秘匿するためには暗号化技術が
有効である。暗号化の方法は共通鍵暗号と公開鍵暗号が
ある。共通鍵暗号では、暗号作成側と暗号復号側で同一
の鍵を用い、この鍵は秘密に管理されている。一方、公
開鍵暗号では暗号文作成の鍵と暗号文復号の鍵は異なっ
ており、暗号文作成の鍵は公開しても、他方の鍵は現実
的な時間内に求まらないと広く信じられている。2. Description of the Related Art Encryption technology is effective for concealing data. There are common key cryptography and public key cryptography as the encryption method. In common key cryptography, the same key is used on the cipher creation side and the cipher decryption side, and this key is secretly managed. On the other hand, in public key cryptography, the key for ciphertext creation and the key for ciphertext decryption are different, and it is widely believed that even if the key for ciphertext creation is made public, the other key cannot be obtained within a realistic time. Has been.
【0003】高速かつ安全な共通鍵暗号を構成するため
に、暗号化対象のデータを適当な長さのブロックに分割
し、そのブロック毎に暗号化する方法をブロック暗号と
呼ぶ。この様な暗号方式として代表的なDES暗号の構
成は、例えば「池野,小山:“現代暗号理論”,電子通
信学会,pp.41−62,1986」に示されてい
る。A method of dividing data to be encrypted into blocks of an appropriate length and encrypting each block in order to construct a high-speed and secure common key encryption is called a block cipher. A typical configuration of the DES encryption as such an encryption method is shown in, for example, "Ikeno, Koyama:" Modern Cryptography ", The Institute of Electronics and Communication Engineers, pp. 41-62, 1986".
【0004】このDES暗号を含め、多くの共通鍵暗号
は換字(substitution)と、置換(permutation)の組合
せから構成されている。換字置換はかなり広い概念であ
るが、近年ソフトウェア実装の要請から
という形の換字置換が多く用いられてきている。ここで
演算は全て環R上での演算を用い置換を
で、換字をsj :R→R(j=1,2,…,n)とす
る。つまり、行列の積を置換と考える。Many common key ciphers, including this DES cipher, are composed of a combination of substitution and permutation. Substitution substitution is a fairly broad concept, but in recent years due to the demand for software implementation. Substitution substitution of the form is often used. Here, all the operations are performed on the ring R and the replacement is performed. Then, the substitution is s j : R → R (j = 1, 2, ..., N). In other words, consider the product of matrices as permutation.
【0005】式(1)に示される換字置換は文献「V.
Rijmen,et al.:“The Cipher SHARK”,Fast Softwar
e Encryption−Third International Workshop,Lectur
e Notes in Computer Science 1039,pp. 99−111 ,Sp
ringer-Verlag ,1996」(以下『文献S』と略す)で定
義されているSHARK 暗号でも使われている。文献Sに
は、
(j=1,2,…,n)
で示される関数SPj の出力値をメモリなどに事前計算
することにより式(1)を効率的に計算する方法も示さ
れている。The substitution substitution shown in the equation (1) is described in the document "V.
Rijmen, et al .: “The Cipher SHARK”, Fast Softwar
e Encryption-Third International Workshop, Lectur
e Notes in Computer Science 1039, pp. 99-111, Sp
Ringer-Verlag, 1996 ”(hereinafter referred to as“ reference S ”) is also used in the SHARK cipher. In the document S, There is also shown a method of efficiently calculating the equation (1) by pre-calculating the output value of the function SP j represented by (j = 1, 2, ..., N) in a memory or the like.
【0006】また、換字置換を利用する暗号では処理の
最後に置換を行なわず、換字のみを利用することがあ
る。つまり、
の処理も暗号実装上必要である。Rの大きさが計算機内
での計算の基本単位であるワード長より小さい場合、素
直な実装では、個々のsj (xj )を計算した後に、s
j (xj )の計算値をベクトルの正しい場所に移動する
必要がある。この場合は、式(1)の例と同様にして、
と変形し、予めj番目以外は0となるように位置を合わ
せた表を事前計算しておけば、位置合わせの処理が必要
なくなる。In addition, in a cipher that uses substitution substitution, substitution may not be performed at the end of the process and only substitution may be used. That is, The process of is also necessary for cryptographic implementation. If the size of R is smaller than the word length, which is the basic unit of calculation in the computer, in a straightforward implementation, after calculating each s j (x j ), s
The calculated value of j (x j ) needs to be moved to the correct place in the vector. In this case, in the same way as the example of the formula (1), If the table is preliminarily calculated such that the positions are adjusted so that the positions other than the j-th position will be 0, the position adjustment process becomes unnecessary.
【0007】[0007]
【発明が解決しようとする課題】上で示した文献Sに示
されている換字置換の計算は、メモリ参照回数が多く、
また必要とするメモリ量が多い。この発明は、メモリ参
照回数、必要メモリ量を削減する換字置換装置を提供す
ることを目的とする。The calculation of substitution substitution shown in the above-mentioned document S requires a large number of memory references,
It also requires a large amount of memory. An object of the present invention is to provide a substitution character replacing device that reduces the number of memory references and the required memory amount.
【0008】[0008]
【課題を解決するための手段】現実の換字置換では式
(1)で示したような一般的な形ではなく、以下のよう
な性質を持っていることが多い。
・pijやsj のいくつかは共通
・入力や出力の行を入れ換えても、他の部分でこの入れ
換えを処理速度をかえることなく吸収でき、アルゴリズ
ム的に等価に変換できる
また、
・計算機内の計算の基本単位であるワードを格納するレ
ジスタにRn の元を格納し、要素ごとの演算が可能も、
Intel社のプロセッサに実装されているMMX命令
に代表される様に最近のプロセッサでは実現されていた
り、Rn の要素ごとの演算がほとんどのプロセッサで実
行可能な論理積などで実現されるようなRを使うことも
多いので、現実的な仮定と考えられる。The actual substitution substitution does not have the general form shown in the equation (1) but has the following properties in many cases.・ Some of p ij and s j are common ・ Even if the input and output lines are exchanged, this exchange can be absorbed in other parts without changing the processing speed, and the algorithm can be equivalently converted. By storing the element of R n in the register that stores the word that is the basic unit of calculation of
It is realized in a recent processor as typified by the MMX instruction implemented in the Intel processor, or the operation for each element of R n is realized by a logical product that can be executed by most processors. Since R is often used, it is considered a realistic assumption.
【0009】この発明はこれらの性質を利用し、メモリ
参照回数、メモリ必要量を削減する。つまりこの発明に
よれば、環R上の換字置換
pij∈R,sj :R→R
i=1,2,…,m
j=1,2,…,n
のpijのいくつかが等しい,またはsj のいくつかが等
しいときに、置換を表現する行列Pの行を並び変えるこ
とにより、換字置換を実行する際に必要なR上のベクト
ルvl ∈Rr (vl は、次元rはm以下で、個々のベク
トルの次元は異なっていてもよい)および関数Sk :R
→Rr (但しk=1,2,…,n,r≦m)を予め計算
した結果を記憶手段に記憶しておき、入力xi に対して
記憶手段からSk を読み出してベクトルSk (xi )の
計算結果を求め、行列Pの第k列を構成するのに必要な
ベクトルの組{vl }を記憶手段から読み出しベクトル
ukを作成し、uk ◇Sk (xi )(◇はベクトル要素
ごとの積)を計算し、これらを加算してデータ列yi を
得る。The present invention utilizes these characteristics to reduce the number of memory references and the memory requirement. That is, according to the present invention, the substitution substitution on the ring R p ij ∈ R, s j : R → R i = 1,2, ..., m j = 1,2, ..., n if some of p ij are equal or some of s j are equal, permutation By rearranging the rows of the matrix P that expresses, the vector v l εR r on R required when performing substitution substitution (v l has a dimension r of m or less, and individual vectors have different dimensions). And the function S k : R
→ The result of previously calculating R r (where k = 1, 2, ..., N, r ≦ m) is stored in the storage means, and S k is read from the storage means for the input x i to obtain the vector S k. The calculation result of (x i ) is obtained, a set of vectors {v l } required to form the k-th column of the matrix P is read out from the storage means, and a vector u k is created, and u k ◇ S k (x i ) (⋄ is a product for each vector element) and these are added to obtain a data string y i .
【0010】[0010]
【発明の実施の形態】以下ではこの発明の実施例を示
す。現実のほとんどの換字置換ではRとして体を用いて
いるので、ここでは、Rを単位的環(乗法の単位元1を
含む)に制限する。また、個々の例では、話を単純にす
るため式(1)の計算はpij∈{0,1}で、sj が全
て同一の場合を説明する。sj が複数種ある場合やpij
が0、1以外の値を取る場合でもいくつか等しいものが
ある場合、下記実施例よりは効率が落ちるが、文献Sに
示される従来法よりは効率的に処理可能である。第1の実施例
式(1)を計算する場合を考える。式(2)はsj が全
てsの場合は、
と書ける。ここで◇はベクトルの要素ごとの積を表す。BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of the present invention will be described below. Since most of the actual substitution substitutions use a field as R, we limit R to a unitary ring (including the multiplicative identity element 1). Further, in each example, for simplification of the description, the calculation of the equation (1) is p ij ε {0, 1}, and the case where all s j are the same will be described. If there are multiple types of s j or p ij
When there are some values other than 0 and 1, if there are some equal values, the efficiency is lower than that of the following example, but the processing can be performed more efficiently than the conventional method shown in document S. First Example Consider a case where the formula (1) is calculated. In equation (2), if s j are all s, Can be written. Here, ◇ represents the product of each element of the vector.
【0011】この式により、予めSを計算し、メモリに
記憶しておけば、式(1)はSの値を得るためにx1 〜
xn についてのメモリ参照がn回、◇を実行するための
ベクトルの要素ごとの積がn回、n個の縦ベクトルの加
算がn−1回で式(1)を計算できることが分かる。従
来はSP1 〜SPn を記憶したがこの実施例ではSだけ
であるから記憶量が1/nになる。第2の実施例
計算の単位がR<(m+1)/2> より小さい環境で(<(m+
1)/2>は(m+1)/2以下の最大の整数)、式
(1)を計算する場合を考える。以下の例は一般のPで
も適用可能であるが、わかり易さのためE2暗号(例え
ば、文献「神田ら:“128ビットブロック暗号E2の
提案”,電子情報通信学会,情報セキュリティ研究会,
ISEC98−12」)で用いられている行列
という換字置換にこの発明を適用することを考える。こ
こで、式(4)の行列中の横線は見易さのためにいれた
ものである。またE2暗号では、最後に置換なしの換字
も必要であることに注意する。If S is calculated in advance by this formula and stored in the memory, the formula (1) is obtained from x 1 to obtain the value of S.
It can be seen that the equation (1) can be calculated with n times of memory reference for x n , n times of element-wise product of the vector for executing ◇, and n−1 times of addition of n vertical vectors. Conventionally, SP 1 to SP n are stored, but since only S is stored in this embodiment, the storage amount becomes 1 / n. Second Example In an environment where the unit of calculation is smaller than R <(m + 1) / 2> (<(m +
1) / 2> is the maximum integer less than or equal to (m + 1) / 2), and consider the case of calculating equation (1). The following example can be applied to a general P, but for the sake of clarity, E2 encryption (for example, "Kanda et al .:" Proposal of 128-bit block cipher E2 "", IEICE, Information Security Research Group,
Matrix used in ISEC98-12 ") Consider applying the present invention to the substitution substitution. Here, the horizontal line in the matrix of equation (4) is included for ease of viewing. Also note that the E2 cipher also requires a final substitution without substitution.
【0012】このPを用いた換字置換を文献Sの方針で
実現するには、Pの上半部の部分行列各4要素の縦ベク
トルは0を1個含む4種類であり、下半部の部分行列の
左の4つも0を1つ含む4種類であり、その右の4つは
ゼロを2つ含む4種類である。従って
の計算が必要である。In order to realize the substitution substitution using this P according to the policy of Document S, there are four types of vertical vectors of each four elements of the upper half of the partial matrix of P, including one 0, and the lower half of The left four sub-matrices are also four types that include one zero, and the four four to the right are four types that include two zeros. Therefore Needs to be calculated.
【0013】この場合、R4 の元を#R個(ここで#は
集合の要素数)格納するのに必要なメモリ量を1単位
(以下メモリ量の単位は全てこの定義に従うものとす
る)として、
───────────────────
必要メモリ量 12
換字置換処理のテーブル参照回数 16
換字置換処理の加算回数 14
───────────────────
となる。In this case, the memory amount required to store #R elements of R 4 (where # is the number of elements of the set) is one unit (hereinafter, the unit of memory amount is all in accordance with this definition). ─────────────────── Required memory 12 Number of table references for substitution substitution processing 16 Number of additions for substitution substitution processing 14 ─────────── ─────────
【0014】この実施例ではPの各行を入れ換えること
により計算順序を
と変更する。上記行列中の縦線、横線は以降の説明の分
かり易さのため記入したものであり、特別の意味はな
い。この変更によると必要となる表は、0を1個含む4
要素の縦ベクトルの4種類の他に、0を2個含むもの
と、1のみのものと、1を1個のみ含むものとである
が、1を1個含むものは、置換に利用するものを換字に
も利用する。よって記憶する表は
だけで済み、x0 ,x1 ,x2 ,x3 に対応するメモリ
参照および加算は共通化できるので
────────────────────
必要メモリ量 10
換字置換処理のテーブル参照回数 12
換字置換処理の加算回数 11
────────────────────
と文献Sの方法に比べて、メモリ量、参照回数、加算回
数の全てを減らすことができる。ここで、左辺のy
i (0≦i≦7)の並びは「課題を解決するための手
段」の項に述べたように性能低下を招かないことに注意
すべきである。第3の実施例
第2の実施例と同様に、計算の単位がR<(m+1)/2> より
小さい環境、かつシフト演算
などが高速に実行できる環境で、式(1)を計算する場
合を考える。In this embodiment, the calculation order is changed by replacing the rows of P. To change. The vertical and horizontal lines in the above matrix are entered for the sake of easy understanding of the description below, and have no special meaning. According to this change, the required table is 4 including one 0.
In addition to four types of vertical vectors of elements, there are two zeros, ones only, and ones only, but ones containing one is used for replacement. Is also used for substituting. Therefore, the table to be stored is Since the memory references and additions corresponding to x 0 , x 1 , x 2 , x 3 can be made common, the required memory amount is required. ──────────────────── 10 Number of table references for substitution substitution process 12 Number of additions for substitution substitution process 11 ───────────────────── , The total number of additions can be reduced. Where y on the left side
It should be noted that the sequence of i (0 ≦ i ≦ 7) does not cause performance degradation as described in the section “Means for solving the problem”. Third Embodiment Similar to the second embodiment, the environment where the unit of calculation is smaller than R <(m + 1) / 2> and the shift operation is performed. Consider a case where Expression (1) is calculated in an environment in which, for example, can be executed at high speed.
【0015】また、第2の実施例と同様に以下の例では
一般のPでも適用可能であるが、わかり易さのためE2
暗号で用いられている行列P(式(3)参照)及び換字
置換(式(4)参照)を考察する。第2の実施例と同様
にこの実施例ではPの各行を入れ換えることにより計算
順序を
と変更すると、必要となる表について、x4 ,x5 ,x
6 ,x7 に対応する部分はy0 ,y1 ,y3 ,y2 に対
してはメモリ参照をそのまま用い、y6 ,y7 ,y5 ,
y4 に対してはy0 ,y1 ,y3 ,y2 でのメモリ参照
の結果をそれぞれ下1、下2、上1、上2要素シフトす
ることにより、つまり、Pの右上の部分行列の左から1
番目の縦ベクトルを下1だけ要素シフトして、右下の部
分行列の左から1番目の縦ベクトルを得、右上の部分行
列の左から2番目の縦ベクトルを下2だけ要素シフトし
て右下の部分行列の左から2番目の縦ベクトルを得、以
下同様に右上の部分行列の左から3番目、4番目の縦ベ
クトルを上1、上2要素シフトによりそれぞれ右下の部
分行列の左から3番目、4番目の縦ベクトルを得ること
ができることを利用すると、記憶する表としては、
だけで済み、k要素上シフト演算をSUk ,k要素下シ
フト演算をSDk とし、
と計算できる。またx0 ,x1 ,x2 ,x3 に対応する
メモリ参照および加算は第2の実施例と同様共通化でき
るので、
────────────────────
必要メモリ量 8
換字置換処理のテーブル参照回数 8
換字置換処理の加算回数 11
換字置換処理のシフト回数 4
────────────────────
と、文献Sの方法に比べて、メモリ量、参照回数、加算
回数をことごとく減らすことができる。この実施例にお
いても、左辺のyi (0≦i≦7)の並びは「課題を解
決するための手段」の項に述べたように性能低下を招か
ないことに注意すべきである。第4の実施例
この場合も一般のPでも適用可能であるが、わかり易さ
のためE2暗号で用いられている行列P(式(3)参
照)及び換字置換(式(4)参照)が標数2であるRに
ついて定義されている場合について考察する。Further, as in the second embodiment, a general P can be applied in the following example, but E2 is used for the sake of simplicity.
Consider the matrix P (see equation (3)) and substitution substitution (see equation (4)) used in cryptography. Similar to the second embodiment, in this embodiment, the calculation order is changed by replacing each row of P. , The required tables are x 4 , x 5 , x
The memory reference is used as it is for y 0 , y 1 , y 3 , and y 2 in the portions corresponding to 6 and x 7 , and y 6 , y 7 , y 5 , and
For y 4 , by shifting the results of memory references at y 0 , y 1 , y 3 , y 2 by lower 1, lower 2, upper 1, upper 2 elements, respectively, that is, the upper right submatrix of P From the left
The first vertical vector from the left of the lower right submatrix is obtained by element-shifting the second vertical vector by the lower one, and the second vertical vector from the left of the upper right submatrix is shifted by the lower two elements to the right. The second vertical vector from the left of the lower submatrix is obtained, and the third and fourth vertical vectors from the left of the upper right submatrix are similarly shifted to the left of the lower right submatrix by shifting the upper 1 and upper 2 elements, respectively. Using the fact that the 3rd and 4th vertical vectors can be obtained from, And the k element up shift operation is SU k , and the k element down shift operation is SD k , Can be calculated. Further, the memory references and additions corresponding to x 0 , x 1 , x 2 , x 3 can be made common as in the second embodiment, so that ─────────────────── ── Required memory 8 Number of table references for substitution substitution processing 8 Number of additions for substitution substitution processing 11 Number of shifts for substitution substitution processing 4 ──────────────────── Compared with the method of Document S, the memory amount, the number of references, and the number of additions can all be reduced. Also in this embodiment, it should be noted that the arrangement of y i (0 ≦ i ≦ 7) on the left side does not cause performance degradation as described in the section “Means for solving the problem”. Fourth Embodiment In this case as well, general P can be applied, but the matrix P (see equation (3)) and substitution substitution (see equation (4)) used in the E2 cipher are standard for the sake of clarity. Consider the case defined for R, which is the number 2.
【0016】第3の実施例と同様にPの各行を入れ変え
て
を得る。As in the third embodiment, the rows of P are replaced with each other. To get
【0017】ここで、上記行列の右上と右下の部分行列
が成り立つ。ここでRとして標数2の環を考えているこ
とに注意。Here, the upper and lower right submatrixes of the above matrix Holds. Note that we are considering a ring of characteristic 2 as R here.
【0018】このとき第3の実施例と同様に、
という表を予め準備しておけば、式(5)から
と計算できる。この場合
───────────────────────────
換字置換処理のテーブル参照回数(SPj の計算) 8
換字置換処理の加算回数(+の計算) 9
換字置換処理のシフト回数(SUとSDの計算) 2
───────────────────────────
と第3の実施例よりも更に加算回数とシフト回数を減ら
すことができる。第5の実施例
プロセッサによってはシフト計算SU,SDの他にn要
素に対する下k要素ローテイト計算
RDk (x)=SDk (x)+SUn-k (x)
も利用可能な場合がある。At this time, similarly to the third embodiment, If you prepare the table in advance, from formula (5) Can be calculated. In this case: ─────────────────────────── Substitution substitution table reference count (calculation of SP j ) 8 Substitution substitution addition count ( Calculation of +) 9 Number of shifts in substitution substitution processing (calculation of SU and SD) 2 ───────────────────────────── and the third The number of additions and the number of shifts can be reduced more than in the embodiment. Fifth Embodiment Depending on the processor, the lower k element rotation calculation RD k (x) = SD k (x) + SU nk (x) for n elements may be used in addition to the shift calculations SU and SD.
【0019】この場合は第4の実施例中で、式(6)の
計算にRDを利用し、
とすることができる。この場合、
───────────────────────────
換字置換処理のテーブル参照回数(SPj の計算) 8
換字置換処理の加算回数(±の計算) 8
換字置換処理のローテイト回数(RDの計算) 1
───────────────────────────
と第4の実施例に比べてさらに加算回数などを減らすこ
とができる。In this case, in the fourth embodiment, RD is used for the calculation of equation (6), Can be In this case: ─────────────────────────── Table reference count of substitution substitution (calculation of SP j ) 8 Addition count of substitution substitution (Calculation of ±) 8 Rotation number of substitution processing (calculation of RD) 1 ───────────────────────────── and the fourth implementation The number of additions and the like can be further reduced compared to the example.
【0020】第1の実施例の機能構成を図1に示す。入
力手段11により入力データxi が記憶装置12のxi
格納領域13に格納され、記憶装置12のvk 格納領域
14に置換ベクトルvk ∈Rr が格納され、またSk 格
納領域15に換字関数Sk が格納されている。更にwk
格納領域16に作業用のベクトルwk が格納され、また
k格納領域17に作業パラメータkが格納される。演算
装置18内のk初期化手段19によりkが0に初期設定
され、Sk 演算手段21により、入力データx i により
Sk 格納領域15が読み出されベクトルSk (xi )の
計算結果がwkとしてwk 格納領域16に格納される。
記憶手段12からvk とwk が読み出され、これらの要
素ごとの積がvk ◇Sk 演算手段22により計算され、
その計算結果により、wk が更新される。k更新手段2
3によりk格納領域17のkが+1されて更新される。
Sk 演算手段21、vk ◇Sk 演算手段22、k更新手
段23がk=nになるまで順次動作され、記憶装置12
内の各wk が読み出され、それらの和が計算され、その
計算結果が出力手段25により出力される。The functional configuration of the first embodiment is shown in FIG. Entering
Input data x by force means 11iIs x in the storage device 12i
V stored in the storage area 13 and stored in the storage device 12.kStorage area
Replace vector v with 14k∈ RrIs stored, and SkCase
Substitution function S in storage area 15kIs stored. Further wk
Vector w for work in storage area 16kIs stored
The work parameter k is stored in the k storage area 17. Calculation
K is initialized to 0 by the k initialization means 19 in the device 18.
And SkThe input data x is calculated by the calculation means 21. iBy
SkThe storage area 15 is read and the vector Sk(Xi)of
The calculation result is wkAs wkIt is stored in the storage area 16.
From storage means 12 vkAnd wkIs read and these
The product of each element is vk◇ SkCalculated by the calculation means 22,
According to the calculation result, wkWill be updated. k updating means 2
By 3, the k in the k storage area 17 is incremented by 1 and updated.
SkComputing means 21, vk◇ SkComputing means 22, k update hand
The stages 23 are sequentially operated until k = n, and the storage device 12
Each w inkAre read out, their sum is calculated, and
The calculation result is output by the output means 25.
【0021】第2の実施例と対応する機能構成において
は図2に図1と対応する部分に同一番号を付けて示すよ
うにvk 格納領域14とSk 格納領域15の代りにSP
k 格納領域31が設けられ、これにSPk が格納され、
SPk 演算手段32により入力データxi に応じてSP
k (xi )を演算した結果を得てベクトルwk として領
域16に格納する。その他は図1と同様である。In the functional configuration corresponding to the second embodiment, as shown in FIG. 2 by giving the same numbers to the portions corresponding to FIG. 1, SP is used instead of the v k storage area 14 and the S k storage area 15.
A k storage area 31 is provided, in which SP k is stored,
SP k calculation means 32 outputs SP according to the input data x i.
The result of calculating k (x i ) is obtained and stored in the area 16 as a vector w k . Others are the same as in FIG.
【0022】第3の実施例に対応するものにおいては、
読み出されたSPk (xi )に対するシフト処理がシフ
ト手段33で行われ、そのシフトされたSPk (xi )
がベクトルwk として領域16に格納される。In the one corresponding to the third embodiment,
The shift means 33 performs shift processing on the read SP k (x i ) and the shifted SP k (x i )
Is stored in the area 16 as a vector w k .
【0023】[0023]
【発明の効果】この発明により、換字置換を計算する場
合に必要となるメモリ量、およびメモリアクセス回数の
削減が計られ、高速に処理できるようになった。As described above, according to the present invention, it is possible to reduce the amount of memory required for calculating substitution substitution and the number of times of memory access, and to perform high-speed processing.
【図1】この発明の実施例の機能構成を示すブロック
図。FIG. 1 is a block diagram showing a functional configuration of an embodiment of the present invention.
【図2】この発明の他の実施例の機能構成を示すブロッ
ク図。FIG. 2 is a block diagram showing a functional configuration of another embodiment of the present invention.
フロントページの続き (56)参考文献 特開 昭60−167062(JP,A) The Cipher SHARK, Lecture Notes in C omputer Science,1996 年 3月11日,Vol.1039,p.99− 111 (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 610 JICSTファイル(JOIS)Continuation of the front page (56) Reference JP-A-60-167062 (JP, A) The Cipher SHARK, Right Notes in Computer Science, March 11, 1996, Vol. 1039, p. 99-111 (58) Fields surveyed (Int.Cl. 7 , DB name) G09C 1/00 610 JISST file (JOIS)
Claims (5)
yi を出力する換字置換装置において、同一の下記関数SP lj (x j )が増加するように 行列P
の行を並び変えた行列のj列の各要素にs j (x j )を乗
算する関数 【数2】 (但し、t:{1,2,・・・,m}→{1,2,・・
・,m}は置換、ql,rlは1以上n以下の自然数で
ql≦rl)を予め計算した結果を格納すると共に、n
個のベクトルwk ∈Rm 、整数kを記憶する記憶手段
と、 入力データ列xj を記憶手段に記憶する入力手段と、 整数kを0にセットするk初期化手段と、 記憶手段に記憶されたkをk+1に更新するk更新手段
と、 記憶手段から入力データxk を読み出し、各l(l=
1,2,・・・,b(j)、b(j)は1以上m以下の
自然数)に対してSPlj(xk )を記憶手段から読み出
し、並べ変えたPの第k列に対応するように計算結果を
連結させm次元ベクトルとし、これをwk として記憶手
段に記憶されたwk を更新するSPk 演算手段と、 記憶手段に記憶されたkを読み出し、k=nになるまで
SPk 演算手段、k更新手段を順次動作させる制御手段
と、 記憶手段に記憶された各wk を読み出し、それらの和を
計算し出力する出力手段とを具備する換字置換装置。1. Substitution substitution on the ring R In the substitution-substitution device that substitute-substitutes the input data string x j and outputs the data string y i , the same function SP lj (x j ) below is increased by the matrix P
Multiply each element in column j of the matrix in which the rows of are rearranged by s j (x j ).
Function to calculate [Equation 2] (However, t: {1,2, ..., m} → {1,2, ...
, M} is a permutation, ql and rl are natural numbers of 1 or more and n or less, and ql ≦ rl) is stored, and n is stored.
Vectors w k εR m , storage means for storing the integer k, input means for storing the input data string x j in the storage means, k initialization means for setting the integer k to 0, and storage in the storage means K update means for updating the stored k to k + 1, and read the input data x k from the storage means, and each l (l = l
1, 2, ..., b (j) , b (j) is 1 or more and m or less
SP lj (x k ) for the natural number ) is read from the storage means, the calculation results are concatenated so as to correspond to the rearranged k-th column of P to form an m-dimensional vector, and this is stored in the storage means as w k. SP k calculation means for updating w k , k stored in the storage means, and control means for sequentially operating the SP k calculation means and k update means until k = n, and stored in the storage means A substitution substituting device comprising an output means for reading out each w k , calculating the sum of them, and outputting the sum.
の縦ベクトルをその縦方向にシフトして記憶手段に記憶
されたwk を更新するシフト演算手段を含むことを特徴
とする請求項1記載の換字置換装置。2. The read vector SP k (x i )
Substitution substitution apparatus according to claim 1, characterized in that it comprises a shift operation means for updating the w k stored in the shift to the storage means in its longitudinal direction vertical vector of.
lj(xk )の和を計算して和ベクトルを求める手段と、 上記和ベクトルを計算する途中で得られた部分和ベクト
ルに対し、その縦ベクトルごとに異なる量で縦方向にシ
フト演算を行って複数の縦ベクトルを得る手段と、 これら複数の縦ベクトルと上記和ベクトルを加算して加
算ベクトルを得る手段と、 上記加算ベクトルと上記和ベクトルを連結してm次元ベ
クトルとして出力する手段とを有することを特徴とする
請求項1記載の換字置換装置。3. The read several vector SPs
means for determining the sum vector sum calculated in lj (x k), with respect to the partial sum vector obtained in the course of calculating the sum vector, shea longitudinally in different amounts for each the column vector <br / > Means for performing a vertical operation to obtain a plurality of vertical vectors, means for adding a plurality of these vertical vectors and the above sum vector to obtain an addition vector, and a method for connecting the above addition vector and the above sum vector as an m-dimensional vector substitution substitution apparatus according to claim 1, further comprising a means for outputting.
lj(xk )の和を計算して和ベクトルを求める手段と、 上記和ベクトルを計算する途中で得られた部分和ベクト
ルに対し縦方向にローテイト計算して縦ベクトルを得る
手段と、 この縦ベクトルと上記和ベクトルを加算して加算ベクト
ルを得る手段と、 上記加算ベクトルと上記和ベクトルを連結してm次元ベ
クトルとして出力する手段とを有することを特徴とする
請求項1記載の換字置換装置。4. The read several vector SPs
means for calculating the sum vector by calculating the sum of lj (x k ), and means for vertically calculating the partial sum vector obtained during the calculation of the sum vector to obtain a vertical vector, means for obtaining a sum vector by adding the vector and the sum vector, substitution replacement device according to claim 1, characterized in that it has a means for outputting the m-dimensional vector connecting the add vector and the sum vector .
換装置としてコンピュータを機能させるためのプログラ
ムを記録したコンピュータ読み取り可能な記録媒体。 5. A substitution device according to any one of claims 1 to 4.
A program for making a computer function as an exchange device.
A computer-readable recording medium in which a program is recorded.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07125599A JP3401207B2 (en) | 1999-01-25 | 1999-03-17 | Substitution substitution device and program recording medium thereof |
US09/487,597 US6578061B1 (en) | 1999-01-19 | 2000-01-19 | Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon |
US10/419,241 US6850960B2 (en) | 1999-01-19 | 2003-04-21 | Inverse calculation apparatus and recording medium having stored thereon a program for executing inverse calculation |
US10/419,244 US6859818B2 (en) | 1999-01-19 | 2003-04-21 | Method and apparatus for permuting input data and recording medium having stored thereon a program for executing permutation |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1552599 | 1999-01-25 | ||
JP11-15525 | 1999-01-25 | ||
JP07125599A JP3401207B2 (en) | 1999-01-25 | 1999-03-17 | Substitution substitution device and program recording medium thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000284691A JP2000284691A (en) | 2000-10-13 |
JP3401207B2 true JP3401207B2 (en) | 2003-04-28 |
Family
ID=26351700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP07125599A Expired - Lifetime JP3401207B2 (en) | 1999-01-19 | 1999-03-17 | Substitution substitution device and program recording medium thereof |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3401207B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4527960B2 (en) * | 2003-10-22 | 2010-08-18 | 日本電信電話株式会社 | Substitution substitution device, substitution substitution method, substitution substitution program, substitution substitution recording medium |
AU2019322590B2 (en) * | 2018-08-13 | 2021-12-16 | Nippon Telegraph And Telephone Corporation | Secure joining system, method, secure computing apparatus and program |
-
1999
- 1999-03-17 JP JP07125599A patent/JP3401207B2/en not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
The Cipher SHARK,Lecture Notes in Computer Science,1996年 3月11日,Vol.1039,p.99−111 |
Also Published As
Publication number | Publication date |
---|---|
JP2000284691A (en) | 2000-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6578061B1 (en) | Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon | |
Boura et al. | Efficient MILP modelings for sboxes and linear layers of SPN ciphers | |
Aboytes-González et al. | Design of a strong S-box based on a matrix approach | |
US7451288B2 (en) | Word-individual key generation | |
US8855298B2 (en) | Table lookup operation on masked data | |
WO2009093601A1 (en) | Data converter, data conversion method, and computer program | |
JPH06236148A (en) | Data processing system for executing data-encrypting algorithm, wherein performance in ansi x3.92 data-encrypting algorithm standard is strengthened | |
JPS63287882A (en) | Cryptographer | |
SE1350203A1 (en) | Device encryption process and process for unsafe environments | |
Zhdanov et al. | Block symmetric cryptographic algorithm based on principles of variable block length and many-valued logic | |
US20110261958A1 (en) | Table splitting for cryptographic processes | |
CN108063760B (en) | Method and system for block encryption and method for block decryption | |
JP7060115B2 (en) | Secret array access device, secret array access method, and program | |
JP3401207B2 (en) | Substitution substitution device and program recording medium thereof | |
Zajac et al. | Cryptographic properties of small bijective S-boxes with respect to modular addition | |
Egorova et al. | Algorithm of multidimensional data transmission using extremal uniform hypergraphs | |
JP3907976B2 (en) | Arithmetic apparatus and arithmetic method using SPN structure in F function | |
JP5354914B2 (en) | Encryption processing device, decryption processing device, and program | |
JP3492988B2 (en) | Data conversion device and program recording medium thereof | |
CN111108540A (en) | Secret reading/writing device, secret reading/writing method, and program | |
JP3490365B2 (en) | Replacement calculation device and its program recording medium | |
JP7186136B2 (en) | Data comparison device, data comparison system, and data comparison method | |
WO2023281694A1 (en) | Secure computation system, device, method, and program | |
US20240187209A1 (en) | Data encryption and decryption using screens and lfsr-generated logic blocks | |
JP3736731B2 (en) | Replacement processing apparatus and program recording medium thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080221 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090221 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090221 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100221 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110221 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110221 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120221 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130221 Year of fee payment: 10 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |