JP4094758B2 - デ―タ置換・分割方法および装置 - Google Patents
デ―タ置換・分割方法および装置 Download PDFInfo
- Publication number
- JP4094758B2 JP4094758B2 JP01623899A JP1623899A JP4094758B2 JP 4094758 B2 JP4094758 B2 JP 4094758B2 JP 01623899 A JP01623899 A JP 01623899A JP 1623899 A JP1623899 A JP 1623899A JP 4094758 B2 JP4094758 B2 JP 4094758B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- value
- data
- bits
- bit
- 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
Images
Description
【発明の属する技術分野】
本発明は、特に暗号技術の分野で用いられるデータ置換処理および分割処理を効率的に行なうデータ置換・分割方法および装置とデータ置換・分割プログラムを記録した記録媒体に関するものである。
【0002】
【従来の技術】
従来、データを秘匿するためにデータの暗号化が行われる。このデータの暗号化を行う暗号化技術には、共通鍵暗号方式と公開鍵暗号方式がある。
【0003】
公開鍵暗号方式ではデータを暗号化する鍵と復号化する鍵が異なっており、通常は暗号化に用いる鍵を一般に公開し、復号化に用いる鍵は利用者が秘密に保持する。公開される暗号化に用いる鍵から復号化に用いる鍵を求めることは、現在の数学的理論および計算機の計算能力をもってしても現実的な時間には完了しないものと信じられている。
【0004】
一方、共通鍵暗号方式では、データを暗号化する鍵と復号化する鍵とは同一である。高速かつ安全な共通鍵暗号を構成するために、暗号化対象のデータを適当な長さのブロックに分割し、そのブロック毎に暗号化する方法をブロック暗号と呼ぶ。ブロック暗号の多くはFeistel network と呼ばれる構造をもつ。この構造では、2nビットの入力をnビットに分割し左右に振り分け、右側のnビットデータに対して関数fを作用させ、その出力を左側のnビットデータと排他的論理和を取り、左右データを交換して同様の操作を繰り返すものである。この構造については、「Bruce Schneier,Applied Cryptography,2nd edition,John-Wiley and Sons,p.347,1996」に示されている。
【0005】
また共通鍵暗号方式は、公開鍵暗号方式に比べて計算に必要な処理量が少なく、単位時間当たりで暗号処理できるデータ量は数十倍から数百倍多い。したがって高速な暗号処理が必要な場面においては共通鍵暗号方式がよく用いられる傾向にある。
【0006】
共通鍵暗号方式には、上記に述べた高速性のみならず、その安全性も必要とされる。近年いくつかの共通鍵暗号アルゴリズムに対する解読法が提案されている。そのため新しく開発される共通鍵アルゴリズムはこのような解読法に対して常に安全が確保されるようにしなければならない。これらの解読法については、「Bruce Schneier,Applied Cryptography,2nd edition,John-Wiley and Sons,pp.285-293,1996 」に示されている。
【0007】
これらの解読法を適用しづらくさせるような方法も研究されており、それらの方法を用いることにより共通鍵暗号アルゴリズムの安全性を高めることが期待できる。その方法の1つとして、基礎となる暗号アルゴリズムへの入力データと出力データとを攻撃者から守るために、暗号鍵から得られるある種の値と入力データおよび出力データとの排他的論理和を計算する手法がある。この方法については「Bruce Schneier,Applied Cryptography,2nd edition,John-Wiley and Sons,pp.366-367,1996 」に示されている。なお、近年、提案される共通鍵暗号アルゴリズムでは、この方法を用いて設計されているものが多い。
【0008】
上記方法を用いて、暗号鍵から得られるある種の値と排他的論理和を取った入力データは、基礎となる暗号アルゴリズムの入力データとなる。上記Feistel network を用いる場合、この入力データを左右へ分割することが必要となる。最近設計される共通鍵暗号アルゴリズムには、ただ左右へ入力データを分割するだけでなく、置換処理を行なった後に左右へ入力データを分割することで安全性の向上を達成しようとしているものも存在する。そのような例としてE2暗号がある(神田他、「128ビットブロック暗号E2の提案」、信学技報ISEC 98-12を参照のこと)。E2暗号ではBP関数と呼ばれる置換処理を定義し、その後Feistel network のために左右へ入力データを分割している。
【0009】
【発明が解決しようとする課題】
しかしながら、このBP関数を実装する場合、次のような問題点が指摘されていた。すなわち、BP関数ではバイト単位の置換処理が必要であるが、最近のMPUで実装されているワード単位のレジスタではマスク処理やシフト処理を伴うため処理時間がかかる点、及び、メモリへ一度コピーしてから置換処理を行なえたとしても、メモリアクセスにかかる時間が大きくなり処理時間がかかる点である。これは、上記に示したような共通鍵暗号方式への高速性を満足させることを困難にするものである。
【0010】
本発明は、このような背景のもとになされたものであり、ワード単位のレジスタを用いてE2暗号のBP関数での置換およびFeistel network での左右への分割を高速に処理する。E2暗号では、基礎となる暗号処理部はバイト単位の処理が行なわれるため、例えば右側にあるデータの並びは必ずしも仕様に沿う必要はない。すなわち、内部にある暗号処理部の実装部が、変更されたバイト列に対応しておけばよい。
【0011】
さらに、本発明では置換処理後に左右に分割されるバイトの組を、仕様とは異なる列順ではあるが正しく左右に組として分割する。近年のMPUでは内蔵されるレジスタ2つを連結させて仮想的に1つのレジスタとみなし、シフト処理を行ない上位側あるいは下位側のデータをレジスタに格納する命令が実装される場合もあり、このような装置が利用可能な場合はさらに効果的である。
【0012】
すなわち、本発明は共通鍵暗号方式における処理を高速に行い得るデータ置換・分割方法および装置とデータ置換・分割プログラムを記録した記録媒体を提供することを目的とする。
【0013】
【課題を解決するための手段】
前述した目的を達成するために、本発明のうちで請求項1記載の発明は、kを整数とし、4kビット長のレジスタを具備し、16個のkビットデータ{a4i+j}(0≦i≦3,0≦j≦3)を集合{a4(i+j mod 4)+j}(0≦i≦1,0≦j≦3)と集合{a4(i+j mod 4)+j}(2≦i≦3,0≦j≦3)とに置換し分割するデータ置換・分割方法であって、各0≦i≦3において、レジスタTi に{a4i+j}(0≦j≦3)を
【数5】
のように代入するステップと、レジスタT0 の値と(23k−2k )との論理積を取ったデータをレジスタT0 ′に代入し、レジスタT2 の値と(24k−23k+2k −1)との論理積を取ったデータをレジスタT2 ′に代入し、レジスタT0 ′の値とレジスタT2 ′の値との論理和をレジスタT4 に代入するステップと、レジスタT1 の値と(22k−1)との論理積を取ったデータをレジスタT1 ′に代入し、レジスタT3 の値と(24k−22k)との論理積を取ったデータをレジスタT3 ′に代入し、レジスタT1 ′の値とレジスタT3 ′との論理和をレジスタT5 に代入するステップと、レジスタT0 の値と(24k−23k+2k −1)との論理積を取ったデータをレジスタT0 ″に代入し、レジスタT2 の値と(23k−2k )との論理積を取ったデータをレジスタT2 ″に代入し、レジスタT0 ″の値とレジスタT2 ″との論理和をレジスタT6 に代入するステップと、レジスタT1 の値と(24k−22k)との論理積を取ったデータをレジスタT1 ″に代入し、レジスタT3 の値と(22k−1)との論理積を取ったデータをレジスタT3 ″に代入し、レジスタT1 ″の値とレジスタT3 ″との論理和をレジスタT7 に代入するステップと、レジスタT4 ,レジスタT5 とレジスタT6 ,レジスタT7 とを2つのグループとして出力するステップとを有することを要旨とする。
【0014】
また、本発明の請求項2記載の発明は、kを整数とし、4kビット長のレジスタを具備し、16個のkビットデータ{a4i+j}(0≦i≦3,0≦j≦3)を集合{a4(i+j mod 4)+j}(0≦i≦1,0≦j≦3)と集合{a4(i+j mod 4)+j}(2≦i≦3,0≦j≦3)とに置換し分割するデータ置換・分割方法であって、各0≦i≦3において、レジスタTi に{a4i+j}(0≦j≦3)を
【数6】
のように代入するステップと、レジスタT0 の値とレジスタT2 の値を各々一方の方向にkビットローテートするステップと、レジスタT0 とレジスタT2 を連結し8kビット長のレジスタとみなし、一方に2kビットシフトした後の一方端から4kビットをレジスタT4 とするステップと、レジスタT1 とレジスタT3 を連結し8kビット長のレジスタとみなし、一方に2kビットシフトした後の一方端から4kビットをレジスタT5 とするステップと、レジスタT2 とレジスタT0 を連結し8kビット長のレジスタとみなし、他方に2kビットシフトした後の他方端から4kビットをレジスタT6 とするステップと、レジスタT3 とレジスタT1 を連結し8kビット長のレジスタとみなし、他方に2kビットシフトした後の他方端から4kビットをレジスタT7 とするステップと、レジスタT4 ,レジスタT5 とレジスタT6 ,レジスタT7 とを2つのグループとして出力するステップとを有することを要旨とする。
【0015】
また、本発明の請求項3記載の発明は、kを整数とし、4kビット長のレジスタを具備し、16個のkビットデータ{a4i+j}(0≦i≦3,0≦j≦3)を集合{a4(i+j mod 4)+j}(0≦i≦1,0≦j≦3)と集合{a4(i+j mod 4)+j}(2≦i≦3,0≦j≦3)とに置換し分割するデータ置換・分割装置であって、各0≦i≦3において、レジスタTi に{a4i+j}(0≦j≦3)を
【数7】
のように代入する手段と、レジスタT0 の値と(23k−2k )との論理積を取ったデータをレジスタT0 ′に代入し、レジスタT2 の値と(24k−23k+2k −1)との論理積を取ったデータをレジスタT2 ′に代入し、レジスタT0 ′の値とレジスタT2 ′との論理和をレジスタT4 に代入する手段と、レジスタT1 の値と(22k−1)との論理積を取ったデータをレジスタT1 ′に代入し、レジスタT3 の値と(24k−22k)との論理積を取ったデータをレジスタT3 ′に代入し、レジスタT1 ′の値とレジスタT3 ′との論理和をレジスタT5 に代入する手段と、レジスタT0 の値と(24k−23k+2k −1)との論理積を取ったデータをレジスタT0 ″に代入し、レジスタT2 の値と(23k−2k )との論理積を取ったデータをレジスタT2 ″に代入し、レジスタT0 ″の値とレジスタT2 ″との論理和をレジスタT6 に代入する手段と、レジスタT1 の値と(24k−22k)との論理積を取ったデータをレジスタT1 ″に代入し、レジスタT3 の値と(22k−1)との論理積を取ったデータをレジスタT3 ″に代入し、レジスタT1 ″の値とレジスタT3 ″との論理和をレジスタT7 に代入する手段と、レジスタT4 ,レジスタT5 とレジスタT6 ,レジスタT7 とを2つのグループとして出力する手段とを有することを要旨とする。
【0016】
また、本発明の請求項4記載の発明は、kを整数とし、4kビット長のレジスタを具備し、16個のkビットデータ{a4i+j}(0≦i≦3,0≦j≦3)を集合{a4(i+j mod 4)+j}(0≦i≦1,0≦j≦3)と集合{a4(i+j mod 4)+j}(2≦i≦3,0≦j≦3)とに置換し分割するデータ置換・分割装置であって、各0≦i≦3において、レジスタTi に{a4i+j}(0≦j≦3)を
【数8】
のように代入する手段と、レジスタT0 の値とレジスタT2 の値を各々一方の方向にkビットローテートする手段と、レジスタT0 とレジスタT2 を連結し8kビット長のレジスタとみなし、一方に2kビットシフトした後の一方端から4kビットをレジスタT4 とする手段と、レジスタT1 とレジスタT3 を連結し8kビット長のレジスタとみなし、一方に2kビットシフトした後の一方端から4kビットをレジスタT5 とする手段と、レジスタT2 とレジスタT0 を連結し8kビット長のレジスタとみなし、他方に2kビットシフトした後の他方端から4kビットをレジスタT6 とする手段と、レジスタT3 とレジスタT1 を連結し8kビット長のレジスタとみなし、他方に2kビットシフトした後の他方端から4kビットをレジスタT7 とする手段と、レジスタT4 ,レジスタT5 とレジスタT6 ,レジスタT7 とを2つのグループとして出力する手段とを有することを要旨とする。
【0017】
また、本発明の請求項5記載の発明は、前記レジスタTi とレジスタTj とを連結し8kビット長のレジスタとみなし、一方または他方に2kビットシフトした後の一方端または他方端から4kビットをレジスタTk とする手段と、この手段のうちいくつかを、レジスタTi の値と(22k−1)との論理積を取ったデータをレジスタTi ′に代入し、レジスタTj の値と(24k−22k)との論理積を取ったデータをレジスタTj ′に代入し、レジスタTi ′の値とレジスタTj ′の値との論理和をレジスタTk に代入する手段とを有することを要旨とする。
【0020】
すなわち、本発明では、kを整数とし、4kビット長のレジスタをレジスタTi と表し、16個のkビットデータ{a4i+j}(0≦i≦3,0≦j≦3)をBP関数への入力とし、各0≦i≦3においてレジスタTi に{a4i+j}(0≦j≦3)を、
【数9】
のように代入する。
【0021】
以後、この形式で代入されていることを
Ti =[a4i+0 a4i+1 a4i+2 a4i+3]
のように記述する。
【0022】
ここで集合[L]と集合[R]を、
【数10】
[L]={a4(i+j mod 4)+j|0≦i≦1,0≦j≦3}
={a0 ,a3 ,a4 ,a5 ,a9 ,a10,a14,a15}
[R]={a4(i+j mod 4)+j|2≦i≦3,0≦j≦3}
={a1 ,a2 ,a6 ,a7 ,a8 ,a11,a12,a13}
とそれぞれ定義しておく。
【0023】
レジスタT0 とレジスタT2 のデータ並びは、両端に集合[L]または集合 [R]に属するデータが配置され、中央の2つに集合[R]または集合[L]に属するデータが配置されている。
【0024】
このままの配置では、シフト命令を用いてのデータの分離は困難であるため、レジスタT1 またはレジスタT3 のように、一方、例えば右側または他方、すなわち左側に集合[L]または集合[R]のデータをまとめる。そのため、まずレジスタT0 とレジスタT2 を一方方向に、すなわち右周りにkビットローテートさせる。
【0025】
結果として以下のようにデータが配置される。
【0026】
T0 =[a3 a0 a1 a2 ]
T1 =[a4 a5 a6 a7 ]
T2 =[a11 a8 a9 a10]
T3 =[a12 a13 a14 a15]
これによりレジスタTi (0≦i≦1)の上位2kビットには集合[L]に属するデータが配置され、下位2kビットには集合[R]に属するデータが配置される。また、レジスタTi (2≦i≦3)の上位2kビットには集合[R]に属するデータが配置され、下位2kビットには集合[L]に属するデータが配置される。
【0027】
次に、レジスタT0 とレジスタT2 を連結し8kビット長のレジスタとみなし、右に2kビットシフトした後の右から4kビットをレジスタT4 とし、レジスタT1 とレジスタT3 を連結し8kビット長のレジスタとみなし、右に2kビットシフトした後の右から4kビットをレジスタT5 とする。
【0028】
すなわち、
T4 =[a1 a2 a11 a8 ]
T5 =[a6 a7 a12 a13]
であって、これより、レジスタTi (4≦i≦5)は集合[R]に属するデータを過不足なく保持している。
【0029】
同様に、レジスタT2 とレジスタT0 を連結し8kビット長のレジスタとみなし、左に2kビットシフトした後の左から4kビットをレジスタT6 とし、レジスタT3 とレジスタT1 を連結し8kビット長のレジスタとみなし、左に2kビットシフトした後の左から4kビットをレジスタT7 とする。
【0030】
すなわち
T6 =[a9 a10 a3 a0 ]
T7 =[a14 a15 a4 a5 ]
であり、これより、レジスタTi (6≦i≦7)は集合[L]に属するデータを過不足なく保持している。
【0031】
【発明の実施の形態】
以下、図面を用いて本発明の実施の形態について説明する。
【0032】
図1は本発明の一実施の形態に係るデータ置換・分割装置の構成を示すブロック図である。
【0033】
図1に示すように、制御部1は本実施形態の処理における各処理部および処理器等のコントロールを行なうものである。データ記憶部11には予め入力データ{a4i+j}(0≦i≦3,0≦j≦3)を格納し、処理終了時には出力データを格納する。算術演算部13ではレジスタが具備され、ローテートやシフト処理が行なえる。
【0034】
図2および図3はE2暗号におけるBP関数のデータの置換処理を図示したものである。図2では、出力データの先頭4バイトが置換処理によってどのように構成されているのかを示している。図3では、この処理による集合[L]の要素を示している。
【0035】
図4では、本実施形態を実行することによってレジスタT6 およびレジスタT7 に格納されるデータの並びを示している。図3と比較することによりレジスタT6 およびレジスタT7 には集合[L]の要素がすべて含まれており、BP関数およびFeistel network の左右への振り分けが行なわれていることが判る。
【0036】
ここで請求項2,5,7に記載のローテートおよびシフトを用いる手法を選択した場合には、レジスタT6 およびレジスタT7 内のデータ並びは右2バイトと左2バイトが入れ替わる形になる。すなわち、図4で示されているレジスタT4 のデータ列[a9 a10 a3 a0 ]は[a3 a0 a9 a10]となる。しかしながら集合[L]の要素としては過不足なく、よって目的は達成される。
【0037】
上述したように、本実施形態により、E2暗号の仕様において、BP関数の入出力を左からそれぞれ4バイトずつまとめてレジスタに代入するならば、入力の1つのレジスタにある4バイトは、出力の4つのレジスタに1バイトずつ代入されていることになる。これにより、1つのレジスタに対して演算を行ない、その結果を1つのレジスタに格納するような、MPUにある多くの命令では、1つの演算命令に対して1バイトしか処理できない。
【0038】
従って、BP関数を実装するには16個の命令が最低限必要となる。実際には、マスク処理や論理和処理などで16以上の命令が必要である。
【0039】
なお、レジスタの各バイトを直接入命令に用いた場合には16命令で済む場合も考えられるが、一部のMPUではその構造上ペナルティが発生し、通常の16命令分以上の処理時間がかかることが判る。
【0040】
さらに、入力データを一旦メモリに書き込んだ後に、BP関数の置換を考慮してバイト単位にデータを読み込む方法もあるが、近年のMPUではメモリへのアクセスにはペナルティが発生する場合が多く、また上記と同様に構造上のペナルティが発生する場合もあり、やはり16命令分以上の処理時間がかかることが判る。
【0041】
本実施形態により、E2暗号のBP部分はローテート命令2つと2つのレジスタを連結したものを右または左にシフトし、右または左の該当データをレジスタに代入する命令4つで構成できる。後半の処理を行なう命令は、例えばIntel 80386 以降のMPUでは標準搭載されている命令であり、その実装には問題がない。従って、既存方法より高速にBP関数を実行できる。
【0042】
また、具体的にこの命令が実装されていないMPUではマスク命令2つと論理和命令1つで代用することができる。すなわち、ローテート後のレジスタT0 とレジスタT2 を連結し8kビット長のレジスタとみなし、右に2kビットシフトした後の右から4kビットをレジスタT5 とする手段においては、レジスタT0 と(22k−1)との論理積を取ったデータをレジスタT0 ′に代入し、レジスタT2 と(24k−22k)との論理積を取ったデータをレジスタT2 ′に代入し、レジスタT0 ′とレジスタT2 ′との論理和をレジスタT4 に代入すればよい。
【0043】
すなわち、
T0 ′=[0 0 a1 a2 ]
T2 ′=[a11 a8 0 0]
T4 =[a11 a8 a1 a2 ]
となる。
【0044】
この場合でも、ローテート命令2つを合わせて全体で14命令で記述できるため、既存方法より高速にBP関数を実行できる。
【0045】
なお、この場合のレジスタT4 は、前述のレジスタT4 の保持する値と比較すると、上位2つの値と下位2つの値が入れ違いとなっている点が異なる。しかしレジスタT4 が保持する値はa1 ,a2 ,a8 ,a11の4つであることに変わりはなく、従ってレジスタT4 とレジスタT5 とで集合[R]の値を過不足なく保持していることが保証される。
【0046】
以上のように本実施形態は、暗号技術で用いられるデータ置換処理および分割処理に関して、特にE2暗号のBP関数部の高速な実装を満足することができる。
【0047】
また、このようなE2暗号のBP関数等におけるデータ置換・分割演算は上述したデータ置換・分割プログラムにより実現され、該プログラムは記録媒体に記録して提供される。このようなデータ置換・分割プログラムが記録された記録媒体を利用して、そのデータ置換・分割プログラムの流通性を高めることができる。
【0048】
【発明の効果】
以上のように本発明は、共通鍵暗号方式におけるデータ置換処理および分割処理に関し、処理を高速に行い得る等の効果を奏する。
【図面の簡単な説明】
【図1】本発明に係るデータ置換・分割装置の一実施形態の概略の構成を示すブロック図である。
【図2】E2暗号のBP関数部の置換処理を説明する図である。
【図3】BP関数の出力データの一部を示した図である。
【図4】レジスタT4 とレジスタT5 の出力データを示した図である。
【符号の説明】
1 制御部
11 データ記憶部
13 算術演算部
13a レジスタ群
Claims (5)
- kを整数とし、4kビット長のレジスタを具備し、16個のkビットデータ{a4i+j}(0≦i≦3,0≦j≦3)を集合{a4(i+j mod 4)+j}(0≦i≦1,0≦j≦3)と集合{a4(i+j mod 4)+j}(2≦i≦3,0≦j≦3)とに置換し分割するデータ置換・分割方法であって、
各0≦i≦3において、レジスタTi に{a4i+j}(0≦j≦3)を
のように代入するステップと、
レジスタT0 の値と(23k−2k )との論理積を取ったデータをレジスタT0 ′に代入し、レジスタT2 の値と(24k−23k+2k −1)との論理積を取ったデータをレジスタT2 ′に代入し、レジスタT0 ′の値とレジスタT2 ′の値との論理和をレジスタT4 に代入するステップと、
レジスタT1 の値と(22k−1)との論理積を取ったデータをレジスタT1 ′に代入し、レジスタT3 の値と(24k−22k)との論理積を取ったデータをレジスタT3 ′に代入し、レジスタT1 ′の値とレジスタT3 ′との論理和をレジスタT5 に代入するステップと、
レジスタT0 の値と(24k−23k+2k −1)との論理積を取ったデータをレジスタT0 ″に代入し、レジスタT2 の値と(23k−2k )との論理積を取ったデータをレジスタT2 ″に代入し、レジスタT0 ″の値とレジスタT2 ″との論理和をレジスタT6 に代入するステップと、
レジスタT1 の値と(24k−22k)との論理積を取ったデータをレジスタT1 ″に代入し、レジスタT3 の値と(22k−1)との論理積を取ったデータをレジスタT3 ″に代入し、レジスタT1 ″の値とレジスタT3 ″との論理和をレジスタT7 に代入するステップと、
レジスタT4 ,レジスタT5 とレジスタT6 ,レジスタT7 とを2つのグループとして出力するステップと
を有することを特徴とするデータ置換・分割方法。 - kを整数とし、4kビット長のレジスタを具備し、16個のkビットデータ{a4i+j}(0≦i≦3,0≦j≦3)を集合{a4(i+j mod 4)+j}(0≦i≦1,0≦j≦3)と集合{a4(i+j mod 4)+j}(2≦i≦3,0≦j≦3)とに置換し分割するデータ置換・分割方法であって、
各0≦i≦3において、レジスタTi に{a4i+j}(0≦j≦3)を
のように代入するステップと、
レジスタT0 の値とレジスタT2 の値を各々一方の方向にkビットローテートするステップと、
レジスタT0 とレジスタT2 を連結し8kビット長のレジスタとみなし、一方に2kビットシフトした後の一方端から4kビットをレジスタT4 とするステップと、
レジスタT1 とレジスタT3 を連結し8kビット長のレジスタとみなし、一方に2kビットシフトした後の一方端から4kビットをレジスタT5 とするステップと、
レジスタT2 とレジスタT0 を連結し8kビット長のレジスタとみなし、他方に2kビットシフトした後の他方端から4kビットをレジスタT6 とするステップと、
レジスタT3 とレジスタT1 を連結し8kビット長のレジスタとみなし、他方に2kビットシフトした後の他方端から4kビットをレジスタT7 とするステップと、
レジスタT4 ,レジスタT5 とレジスタT6 ,レジスタT7 とを2つのグループとして出力するステップと
を有することを特徴とするデータ置換・分割方法。 - kを整数とし、4kビット長のレジスタを具備し、16個のkビットデータ{a4i+j}(0≦i≦3,0≦j≦3)を集合{a4(i+j mod 4)+j}(0≦i≦1,0≦j≦3)と集合{a4(i+j mod 4)+j}(2≦i≦3,0≦j≦3)とに置換し分割するデータ置換・分割装置であって、
各0≦i≦3において、レジスタTi に{a4i+j}(0≦j≦3)を
のように代入する手段と、
レジスタT0 の値と(23k−2k )との論理積を取ったデータをレジスタT0 ′に代入し、レジスタT2 の値と(24k−23k+2k −1)との論理積を取ったデータをレジスタT2 ′に代入し、レジスタT0 ′の値とレジスタT2 ′との論理和をレジスタT4 に代入する手段と、
レジスタT1 の値と(22k−1)との論理積を取ったデータをレジスタT1 ′に代入し、レジスタT3 の値と(24k−22k)との論理積を取ったデータをレジスタT3 ′に代入し、レジスタT1 ′の値とレジスタT3 ′との論理和をレジスタT5 に代入する手段と、
レジスタT0 の値と(24k−23k+2k −1)との論理積を取ったデータをレジスタT0 ″に代入し、レジスタT2 の値と(23k−2k )との論理積を取ったデータをレジスタT2 ″に代入し、レジスタT0 ″の値とレジスタT2 ″との論理和をレジスタT6 に代入する手段と、
レジスタT1 の値と(24k−22k)との論理積を取ったデータをレジスタT1 ″に代入し、レジスタT3 の値と(22k−1)との論理積を取ったデータをレジスタT3 ″に代入し、レジスタT1 ″の値とレジスタT3 ″との論理和をレジスタT7 に代入する手段と、
レジスタT4 ,レジスタT5 とレジスタT6 ,レジスタT7 とを2つのグループとして出力する手段と
を有することを特徴とするデータ置換・分割装置。 - kを整数とし、4kビット長のレジスタを具備し、16個のkビットデータ{a4i+j}(0≦i≦3,0≦j≦3)を集合{a4(i+j mod 4)+j}(0≦i≦1,0≦j≦3)と集合{a4(i+j mod 4)+j}(2≦i≦3,0≦j≦3)とに置換し分割するデータ置換・分割装置であって、
各0≦i≦3において、レジスタTi に{a4i+j}(0≦j≦3)を
のように代入する手段と、
レジスタT0 の値とレジスタT2 の値を各々一方の方向にkビットローテートする手段と、
レジスタT0 とレジスタT2 を連結し8kビット長のレジスタとみなし、一方に2kビットシフトした後の一方端から4kビットをレジスタT4 とする手段と、
レジスタT1 とレジスタT3 を連結し8kビット長のレジスタとみなし、一方に2kビットシフトした後の一方端から4kビットをレジスタT5 とする手段と、
レジスタT2 とレジスタT0 を連結し8kビット長のレジスタとみなし、他方に2kビットシフトした後の他方端から4kビットをレジスタT6 とする手段と、
レジスタT3 とレジスタT1 を連結し8kビット長のレジスタとみなし、他方に2kビットシフトした後の他方端から4kビットをレジスタT7 とする手段と、
レジスタT4 ,レジスタT5 とレジスタT6 ,レジスタT7 とを2つのグループとして出力する手段と
を有することを特徴とするデータ置換・分割装置。 - 前記レジスタTi とレジスタTj とを連結し8kビット長のレジスタとみなし、一方または他方に2kビットシフトした後の一方端または他方端から4kビットをレジスタTk とする手段と、
この手段のうちいくつかを、レジスタTi の値と(22k−1)との論理積を取ったデータをレジスタTi ′に代入し、レジスタTj の値と(24k−22k)との論理積を取ったデータをレジスタTj ′に代入し、レジスタTi ′の値とレジスタTj ′の値との論理和をレジスタTk に代入する手段と
を有することを特徴とする請求項4記載のデータ置換・分割装置。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP01623899A JP4094758B2 (ja) | 1999-01-25 | 1999-01-25 | デ―タ置換・分割方法および装置 |
| 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 (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP01623899A JP4094758B2 (ja) | 1999-01-25 | 1999-01-25 | デ―タ置換・分割方法および装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2000214769A JP2000214769A (ja) | 2000-08-04 |
| JP4094758B2 true JP4094758B2 (ja) | 2008-06-04 |
Family
ID=11910989
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP01623899A Expired - Lifetime JP4094758B2 (ja) | 1999-01-19 | 1999-01-25 | デ―タ置換・分割方法および装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4094758B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102598574B (zh) * | 2009-10-27 | 2014-12-17 | 日本电气株式会社 | 块加密装置、块加密方法以及程序 |
-
1999
- 1999-01-25 JP JP01623899A patent/JP4094758B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JP2000214769A (ja) | 2000-08-04 |
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 | |
| JP5417092B2 (ja) | 暗号化属性を用いて高速化された暗号法 | |
| US6189095B1 (en) | Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks | |
| EP1081889A2 (en) | Extended key generator, encryption / decryption unit, extended key generation method, and storage medium | |
| JP2000162965A (ja) | 暗復号装置及び記憶媒体 | |
| CN112287333B (zh) | 一种轻量级可调分组密码实现方法、系统、电子设备以及可读存储介质 | |
| JP2000305453A (ja) | 暗号化装置,復号装置,および暗号化・復号装置 | |
| JP2004531778A (ja) | データ暗号化のための方法および装置 | |
| US20010012362A1 (en) | Data encryptor/decryptor using variable in-place i/o | |
| WO2021129470A1 (zh) | 基于多项式完全同态的二进制数据加密系统及方法 | |
| JP2023130311A (ja) | サイドチャネル攻撃から電子コンピュータを保護する方法及び電子コンピュータ | |
| US20070064933A1 (en) | Method of symmetric key data encryption | |
| KR102393958B1 (ko) | 암호화 알고리즘이 적용된 시스템에서의 데이터 처리 방법 | |
| CN113541942B (zh) | 基于arx白盒分组密码的数字内容加解密方法 | |
| US20240078323A1 (en) | Counter tree | |
| US7720225B2 (en) | Table splitting for cryptographic processes | |
| JP5113630B2 (ja) | 秘密分散方法、プログラム、及び装置 | |
| CN119449308B (zh) | 一种基于rsa算法的加密方法 | |
| JP4094758B2 (ja) | デ―タ置換・分割方法および装置 | |
| CN117725605A (zh) | 一种远端自动编制电子档案文件信息保密的方法和系统 | |
| JP2008205753A (ja) | 信号処理装置 | |
| JPS6281145A (ja) | デ−タ暗号化方式 | |
| TWI895618B (zh) | 密碼裝置及其密碼方法 | |
| CN118233081B (zh) | 一种基于neon指令集的国密sm2底层模乘优化方法 | |
| JP5268413B2 (ja) | 開示制限処理装置及びデータ処理システム及びプログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050307 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071218 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080130 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080304 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080306 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110314 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110314 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120314 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130314 Year of fee payment: 5 |
|
| 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 |