Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4094758B2 - デ―タ置換・分割方法および装置 - Google Patents
[go: Go Back, main page]

JP4094758B2 - デ―タ置換・分割方法および装置 - Google Patents

デ―タ置換・分割方法および装置 Download PDF

Info

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
Application number
JP01623899A
Other languages
English (en)
Other versions
JP2000214769A (ja
Inventor
広樹 植田
和麻呂 青木
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.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
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 Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Priority to JP01623899A priority Critical patent/JP4094758B2/ja
Priority to US09/487,597 priority patent/US6578061B1/en
Publication of JP2000214769A publication Critical patent/JP2000214769A/ja
Priority to US10/419,241 priority patent/US6850960B2/en
Priority to US10/419,244 priority patent/US6859818B2/en
Application granted granted Critical
Publication of JP4094758B2 publication Critical patent/JP4094758B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、特に暗号技術の分野で用いられるデータ置換処理および分割処理を効率的に行なうデータ置換・分割方法および装置とデータ置換・分割プログラムを記録した記録媒体に関するものである。
【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
Figure 0004094758
のように代入するステップと、レジスタ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】
Figure 0004094758
のように代入するステップと、レジスタ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】
Figure 0004094758
のように代入する手段と、レジスタ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】
Figure 0004094758
のように代入する手段と、レジスタ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】
Figure 0004094758
のように代入する。
【0021】
以後、この形式で代入されていることを
i =[a4i+04i+14i+24i+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】
0 =[a3 0 1 2
1 =[a4 5 6 7
2 =[a118 9 10
3 =[a12131415
これによりレジスタ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】
すなわち、
4 =[a1 2 118
5 =[a6 7 1213
であって、これより、レジスタTi (4≦i≦5)は集合[R]に属するデータを過不足なく保持している。
【0029】
同様に、レジスタT2 とレジスタT0 を連結し8kビット長のレジスタとみなし、左に2kビットシフトした後の左から4kビットをレジスタT6 とし、レジスタT3 とレジスタT1 を連結し8kビット長のレジスタとみなし、左に2kビットシフトした後の左から4kビットをレジスタT7 とする。
【0030】
すなわち
6 =[a9 103 0
7 =[a14154 5
であり、これより、レジスタ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 103 0 ]は[a3 0 9 10]となる。しかしながら集合[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】
すなわち、
0 ′=[0 0 a1 2
2 ′=[a118 0 0]
4 =[a118 1 2
となる。
【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)

  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)を
    Figure 0004094758
    のように代入するステップと、
    レジスタ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つのグループとして出力するステップと
    を有することを特徴とするデータ置換・分割方法。
  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)を
    Figure 0004094758
    のように代入するステップと、
    レジスタ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つのグループとして出力するステップと
    を有することを特徴とするデータ置換・分割方法。
  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)を
    Figure 0004094758
    のように代入する手段と、
    レジスタ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つのグループとして出力する手段と
    を有することを特徴とするデータ置換・分割装置。
  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)を
    Figure 0004094758
    のように代入する手段と、
    レジスタ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つのグループとして出力する手段と
    を有することを特徴とするデータ置換・分割装置。
  5. 前記レジスタTi とレジスタTj とを連結し8kビット長のレジスタとみなし、一方または他方に2kビットシフトした後の一方端または他方端から4kビットをレジスタTk とする手段と、
    この手段のうちいくつかを、レジスタTi の値と(22k−1)との論理積を取ったデータをレジスタTi ′に代入し、レジスタTj の値と(24k−22k)との論理積を取ったデータをレジスタTj ′に代入し、レジスタTi ′の値とレジスタTj ′の値との論理和をレジスタTk に代入する手段と
    を有することを特徴とする請求項4記載のデータ置換・分割装置。
JP01623899A 1999-01-19 1999-01-25 デ―タ置換・分割方法および装置 Expired - Lifetime JP4094758B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102598574B (zh) * 2009-10-27 2014-12-17 日本电气株式会社 块加密装置、块加密方法以及程序

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