JP5929757B2 - 暗号処理装置および暗号処理方法 - Google Patents

暗号処理装置および暗号処理方法 Download PDF

Info

Publication number
JP5929757B2
JP5929757B2 JP2012544226A JP2012544226A JP5929757B2 JP 5929757 B2 JP5929757 B2 JP 5929757B2 JP 2012544226 A JP2012544226 A JP 2012544226A JP 2012544226 A JP2012544226 A JP 2012544226A JP 5929757 B2 JP5929757 B2 JP 5929757B2
Authority
JP
Japan
Prior art keywords
processing unit
transposition
word
output
data
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.)
Active
Application number
JP2012544226A
Other languages
English (en)
Other versions
JPWO2012067052A1 (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.)
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
Publication of JPWO2012067052A1 publication Critical patent/JPWO2012067052A1/ja
Application granted granted Critical
Publication of JP5929757B2 publication Critical patent/JP5929757B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI

Description

[関連出願についての記載]
本発明は、日本国特許出願:特願2010−254804号(2010年11月15日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、暗号処理装置および暗号処理方法に関し、特に、データを通信または蓄積する際に共通鍵ブロック暗号に基づいてデータを秘匿ないし解読する暗号処理装置および暗号処理方法に関する。
通信データまたは蓄積データを秘匿する技術として、共通鍵ブロック暗号が知られている。ブロック暗号においては、暗号化すべきデータをブロック長と呼ばれる所定の単位に区切って暗号化が行われる。代表的なブロック暗号として、1970年代に提案されたDES(Data Encryption Standard)がある。DESは、データ攪拌部の構造としてFeistel構造を採用している。
図4は、mビットの平文Pからmビットの暗号文Cを生成するrラウンドFeistel構造による暗号化処理を示す図である。Feistel構造1ラウンド分の処理は、F関数処理部10と転置処理部11とを含む。F関数処理部10は、2つのm/2ビットデータと鍵データKを入力とし、一方のデータをそのまま出力するとともに、一方のデータにF関数で鍵データKによる変換を行ったものと他方のデータとの間で排他的論理和(図4の+に丸印記号。以下、「XOR」という。)を求めて出力する。転置処理部11は、受け取った2つのデータを入れ替えて出力する。最終の第rラウンドのみ転置処理手部11を行わず、F関数処理部10による処理のみを行う。
図5は、図4の暗号化処理に対応する復号化処理を示す図である。図5の復号化処理は、図4の暗号化処理と同一のF関数処理部10と転置処理部11とを含む。Feistel構造による復号化は、暗号化処理を逆順(図4を下から遡る)で行えばよい。
F関数処理部10および転置処理部11は、いずれも上下対称な構造を有する。また、図4の暗号化処理、および、図5の復号化処理は、全体としても上下対称な構造を有する。したがって、各ラウンドで使用する鍵データの使用順序を逆にするだけで、暗号化と復号化の双方が可能となる。このように、DESによると、暗号化処理と復号化処理との間でラウンド処理を共有することができ、AES(Advanced Encryption Standard)に代表されるSPN(Substitution Permutation Network)構造と比較して実装規模を削減することができる。
また、Feistel構造の分割数を2以上に拡張した一般化Feistel構造が知られている(非特許文献1)。非特許文献1においては、一般化Feistel構造は、Feistel−Type Transformation(FTT)と呼ばれている。非特許文献1では、Type−1からType−3までの3種類の構造が提案されているが、ここではType−2について説明する。以下、特に断らない限り、「一般化Feistel構造」は、Type−2の一般化Feistel構造をいう。
図6は、一般化Feistel構造を一例として示す図である。図は、データを8分割する一般化Feistel構造の暗号化処理を示す。一般化Feistel構造1ラウンド分の処理は、F関数処理部30と転置処理部31とを含む。F関数処理部30は、F関数処理部10を4並列として構成される。一般にk分割の場合には、F関数処理部30は、F関数処理部10をk/2並列として構成される。F関数処理部30は、8つのm/8ビットデータを2つ対にした4組のデータについてF関数による変換処理を行い、8つのデータを出力する。転置処理部31は、8つのデータを左に巡回シフトする。最終の第rラウンドのみ転置処理部31の処理を行わず、F関数処理部30の処理のみを行う。
なお、転置処理部31における転置処理を巡回シフト以外とした一般化Feistel構造も、特願2009−246306号において提案されている。
図7は、図6の暗号化処理に対応する復号化処理を示す図である。復号化処理におけるF関数処理部30と、暗号化処理におけるF関数処理部30は、同一である。しかしながら、転置処理部40は転置処理部31を上下反転させたものであるから、転置処理部40と暗号化処理における転置処理部31とは異なっている。
以上より、Feistel構造では、暗号化処理と復号化処理との間でF関数処理部10および転置処理部11を共有することができる。一方、一般化Feistel構造では、暗号化処理と復号化処理との間で転置処理部を共有することはできない。
一例として、特許文献1に、拡張型Feistel型共通鍵ブロック暗号処理において、暗号化関数と復号関数とを共通化した構成が記載されている。
特開2008−058826号公報
Y.Zheng,T.Matsumoto,H.Imai,"On the Construction of Block Ciphers Provably Secure and Not Relying on Any Unproved Hypotheses,"CRYPTO 1989,LNCS vol.435,pp.461−480,Springer−Verlag,1990.
上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者によってなされたものである。
上述の暗号化処理をハードウェア実装する方法について説明する。ハードウェア実装に用いられるデバイスとして、専用LSIやFPGA(Field−Programmable Gate Array)が挙げられる。
図8は、暗号化処理にFeistel構造を用いた場合の暗号化装置の構成を一例として示すブロック図である。図8を参照すると、暗号処理装置50は、拡大鍵生成部51およびデータ変換部52を備えている。
拡大鍵生成部51は、外部から入力される秘密鍵から拡大鍵Kを生成し、データ変換部52へ送出する。なお、拡大鍵生成部51は外部から入力される暗号化/復号化信号に応じて、暗号化または復号化のいずれかの拡大鍵を生成する。
データ変換部52は、平文P(または暗号文C)を受け、拡大鍵生成部51から受けた拡大鍵データを用いて、暗号化処理(または復号化処理)を行い、暗号文C(または平文P)を生成して出力する。
図9は、データ変換部52の詳細を示す図である。図9を参照すると、データ変換部52は、セレクタ60、64、レジスタ61、F関数処理部62、および、転置処理部63を備えている。ただし、図9は、1ラウンドあたりの暗号化処理のデータパスを示すことを目的とし、ループ(ラウンド)処理などの制御部は省略されている。図9を参照して、平文P(または暗号文C)の入力から暗号文C(または平文P)の出力までの流れを説明する。
入力された平文P(または暗号文C)は、セレクタ60を介してレジスタ61に保存される。暗号化(復号化)処理の開始時には、セレクタ60は平文P(または暗号文C)を選択する。一方、ラウンド処理が開始されると、セレクタ60はセレクタ64からの出力データを選択する。規定のラウンド数に達するまで、以下の処理を繰り返す。
レジスタ61に保持されたデータは、F関数処理部62で拡大鍵データKによる変換が行われる。F関数処理部62から出力されたmビットデータは、2分岐する。分岐した一方のmビットデータは、そのままセレクタ64へ入力される。他方のmビットデータは、転置処理部63でm/2ビットのデータに分割され、入れ替えた状態でセレクタ64へ入力される。セレクタ64は、ラウンド情報(非図示)に応じて2入力の一方を選択する。第1ラウンドから第r−1ラウンドまでの処理の場合には、セレクタ64は転置処理部63からの出力データを選択してセレクタ60に入力する。一方、第rラウンドの処理の場合には、セレクタ64はF関数処理部62からの出力データを選択してセレクタ60へ入力する。レジスタ61のデータが読み出されてから書き戻されるまでの処理が1ラウンド分の処理に相当する。
一方、図10は、暗号化処理に一般化Feistel構造を用いた場合の暗号化装置の構成を一例として示すブロック図である。図10を参照すると、暗号処理装置70は、拡大鍵生成部51およびデータ変換部53を備えている。暗号処理装置70は、暗号化/復号化信号がデータ変換部53にも入力されている点において、図8の暗号処理装置50と相違する。
図11は、データ変換部53の詳細を示す図である。図11を参照すると、データ変換部53は、セレクタ80、85、86、レジスタ81、F関数処理部82、および、転置処理部83、84を備えている。ここでは、図11に示したデータ変換部53と図9に示したデータ変換部52との差分について説明する。一般化Feistel構造を用いていることから、暗号化用の転置処理部83と復号化用の転置処理部84とが必要となる。このとき、暗号化または復号化に応じて、転置処理部83および転置処理部84からの出力を選択するセレクタ85が必要とされる。F関数処理部82から出力されたmビットデータの各ビットは、3分岐する。第1のmビットデータはそのままセレクタ86へ入力され、第2のmビットデータは転置処理部83へ入力され、第3のmビットデータは転置処理部84へ入力される。セレクタ85は、外部から入力される暗号化/復号化信号に応じて、転置処理部83および転置処理部84から出力されたデータのうちの一方を出力選択してセレクタ86に出力する。
以上により、暗号化処理と復号化処理との間で、Feistel構造の転置処理を共有することができる。一方、一般化Feistel構造では、暗号化用転置処理と復号化用転置処理を共通化することができないため、暗号化と復号化とを切り替えるセレクタ85が必要となる。したがって、一般化Feistel構造においては、ハードウェア実装の規模の増大を招くという問題がある。また、セレクタ85自体は、暗号の強度にはなんら寄与しない。したがって、セレクタ85による処理は、小規模化を進める上では無駄な処理といえる。
なお、特許文献1に記載された暗号処理装置においては、ラウンド鍵を入れ替えることでスワップ処理の共有を実現している。しかしながら、ラウンド鍵を入れ替えるためには、暗号化と復号化を認識して鍵を入れ替えるか否かを切り替えるための処理が必要とされる。したがって、切り替え処理が鍵スケジュール(すなわち、秘密鍵からラウンド鍵を生成する関数)に移動したにすぎず、特許文献1に記載された暗号処理装置によると、ハードウェア実装の規模を削減することは困難である。
そこで、一般化Feistel構造を用いた場合のF関数処理部の小型化のメリットを生かしつつ、暗号化処理と復号化処理との間で転置処理部を共有することで、暗号化処理のための転置処理部と復号化処理のための転置処理部とを切り替えるためのセレクタを不要とし、小規模な実装が可能な暗号処理装置を提供することが課題となる。本発明の目的は、かかる課題を解決する暗号処理装置および暗号処理方法を提供することにある。
本発明の第1の視点に係る暗号処理装置は、一般化Feistel構造に基づく暗号処理装置であって、
m×kビットの入力データをk個(m,kはいずれも偶数)のmビットワード(以下単に「ワード」という。)x,x,…,xk−2,xk−1に分割し、ワードx(i=0,2,…,k−2)をF関数により鍵データを用いて変換を行い、ワードxi+1に作用させたものをワードYi+1として出力するとともに、ワードxをそのままワードYとして出力するF関数処理部と、
前記ワードY(i=0,1,…,k−1)をs個(s=2,4,…,m)のサブワードYi,0,Yi,1,…,Yi,s−1に分割し、転置条件Px(x=1,2,…,s/2−1)と転置条件Qx(x=1,2,…,s/2−1)により、サブワードYi,w[x]をサブワードZpx[i],w[y]に転置させ、サブワードYi,w[y]をサブワードZqx[i],w[x]に転置させ、ワードZi,0i,1…Zi,s−1を第iのワードとして出力する転置処理部と、を備え、
前記転置条件Px=(px[0],px[1],px[2],…,px[k−1])は、第iのサブワードを第px[i]のサブワードに転置するとともに、i≠jならばpx[i]≠px[j]であり、
前記転置条件Qx=(qx[0],qx[1],qx[2],…,qx[k−1])は、第iのサブワードを第qx[i]のサブワードに転置するとともに、i≠jならばqx[i]≠qx[j]であり、
qx[px[i]]=iであり、
前記w[t](t=0,1,…,s−1)は、w[t]∈{0,1,2,…,s−1}であり、t≠Tならばw[t]≠w[T]である。
本発明の第2の視点に係る、k分割一般化Feistel構造に基づく暗号処理装置は、
入力データをY,Y,…,Yk−1(nビット×k個)とし、出力データをZ,Z,…,Zk−1とし、Y(i=0,1,…,k−1)をs分割(s=2,4,…,n)したものをYi,0,Yi,1,…,Yi,s−1とし、Zをs分割したものをZi,0,Zi,1,…,Zi,s−1とした場合に、Ya,t(t=0,1,…,s−1)をZb,u(u=0,1,…,s−1、u≠t)に転置するときには、Yb,uをZa,tに転置する転置処理部を備えている。
本発明の第3の視点に係る暗号処理方法は、一般化Feistel構造に基づく暗号処理装置が、
m×kビットの入力データをk個(m,kはいずれも偶数)のmビットワード(以下単に「ワード」という。)x,x,…,xk−2,xk−1に分割し、ワードx(i=0,2,…,k−2)をF関数により鍵データを用いて変換を行い、ワードxi+1に作用させたものをワードYi+1とするとともに、ワードxをそのままワードYとする工程と、
前記ワードY(i=0,1,…,k−1)をs個(s=2,4,…,m)のサブワードYi,0,Yi,1,…,Yi,s−1に分割し、転置条件Px(x=1,2,…,s/2−1)と転置条件Qx(x=1,2,…,s/2−1)により、サブワードYi,w[x]をサブワードZpx[i],w[y]に転置させ、サブワードYi,w[y]をサブワードZqx[i],w[x]に転置させ、ワードZi,0i,1…Zi,s−1を第iのワードとする工程と、を含み、
前記転置条件Px=(px[0],px[1],px[2],…,px[k−1])は、第iのサブワードを第px[i]のサブワードに転置するとともに、i≠jならばpx[i]≠px[j]であり、
前記転置条件Qx=(qx[0],qx[1],qx[2],…,qx[k−1])は、第iのサブワードを第qx[i]のサブワードに転置するとともに、i≠jならばqx[i]≠qx[j]であり、
qx[px[i]]=iであり、
前記w[t](t=0,1,…,s−1)は、w[t]∈{0,1,2,…,s−1}であり、t≠Tならばw[t]≠w[T]である。
本発明の第4の視点に係る、暗号処理方法は、k分割一般化Feistel構造に基づく暗号処理装置が、
入力データをY,Y,…,Yk−1(nビット×k個)とし、出力データをZ,Z,…,Zk−1とし、Y(i=0,1,…,k−1)をs分割(s=2,4,…,n)したものをYi,0,Yi,1,…,Yi,s−1とし、Zをs分割したものをZi,0,Zi,1,…,Zi,s−1とした場合に、Ya,t(t=0,1,…,s−1)をZb,u(u=0,1,…,s−1、u≠t)に転置するときには、Yb,uをZa,tに転置する工程を含む。
本発明に係る暗号処理装置および暗号処理方法によると、一般化Feistel構造を用いた場合のF関数処理部の小型化のメリットを生かしつつ、暗号化処理と復号化処理との間で転置処理部を共有することで、暗号化処理のための転置処理部と復号化処理のための転置処理部とを切り替えるためのセレクタを不要とし、小規模な実装が可能な暗号処理装置を提供することができる。
本発明の転置処理を適用した一般化Feistel構造をハードウェア実装したときのデータパスを表す図である。 第1の実施形態の転置処理例を示す図である。 第2の実施形態の転置処理例を示す図である。 rラウンドFeistel構造の暗号化処理を示す図である。 rラウンドFeistel構造の復号化処理を示す図である。 8分割一般化Feistel構造の暗号化処理1ラウンド分を示す図である。 8分割一般化Feistel構造の復号化処理1ラウンド分を示す図である。 Feistel構造を用いた暗号化装置の構成を示すブロック図である。 Feistel構造をハードウェア実装したときのデータパスを示す図である。 一般化Feistel構造を用いた暗号化装置の構成を示すブロック図である。 一般化Feistel構造をハードウェア実装したときのデータパスを示す図である。
はじめに、本発明の概要について説明する。なお、この概要に付記した図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
図1を参照すると、本発明の暗号処理装置は、m×kビットの入力データをk個(m,kはいずれも偶数)のmビットワード(以下単に「ワード」という。)x,x,…,xk−2,xk−1に分割し、ワードx(i=0,2,…,k−2)をF関数により鍵データを用いて変換を行い、ワードxi+1に作用させたものをワードYi+1として出力するとともに、ワードxをそのままワードYとして出力するF関数処理部(103)と、前記ワードY(i=0,1,…,k−1)をs個(s=2,4,…,m)のサブワードYi,0,Yi,1,…,Yi,s−1に分割し、転置条件Px(x=1,2,…,s/2−1)と転置条件Qx(x=1,2,…,s/2−1)により、サブワードYi,w[x]をサブワードZpx[i],w[y]に転置させ、サブワードYi,w[y]をサブワードZqx[i],w[x]に転置させ、ワードZi,0i,1…Zi,s−1を第iのワードとして出力する転置処理部(104)と、を備えている。
暗号処理装置は、m×kビットの平文または暗号文をF関数処理部(103)に入力し、その出力を転置処理部(104)に入力し、その出力を再度F関数処理部(103)に入力することを所定のラウンド数にわたって繰り返し、最後にF関数処理を実施し、その出力を暗号文(平文)とすることで、m×kビットのデータを暗号化または復号化する。
ここで、転置条件Px=(px[0],px[1],px[2],…,px[k−1])は、第iのサブワードを第px[i]のサブワードに転置するとともに、i≠jならばpx[i]≠px[j]である。また、転置条件Qx=(qx[0],qx[1],qx[2],…,qx[k−1])は、第iのサブワードを第qx[i]のサブワードに転置するとともに、i≠jならばqx[i]≠qx[j]である。さらに、qx[px[i]]=iである。また、w[t](t=0,1,…,s−1)は、w[t]∈{0,1,2,…,s−1}であり、t≠Tならばw[t]≠w[T]である。
また、図1を参照すると、暗号処理装置は、F関数処理部(103)からの出力および転置処理部(104)からの出力を受けるとともに、上記所定のラウンド数にわたる繰り返しの最中である場合には転置処理部(104)からの出力を選択して出力し、それ以外の場合にはF関数処理部(103)からの出力を選択して出力する第1セレクタ(105)と、平文または暗号文、および、第1のセレクタ(105)からの出力を受けるとともに、上記所定のラウンド数にわたる繰り返しの開始前である場合には平文または暗号文を選択して出力し、それ以外の場合には第1のセレクタ(105)からの出力を選択して出力する第2のセレクタ(101)と、をさらに備えていてもよい。このとき、F関数処理部(103)は、第2のセレクタ(101)からの出力を受ける。
かかる暗号処理装置によると、一般化Feistel構造を用いた場合のF関数処理部の小型化のメリットを生かしつつ、暗号化処理と復号化処理との間で転置処理部(104)を共有することで、暗号化処理のための転置処理部と復号化処理のための転置処理部とを切り替えるためのセレクタが不要となる。したがって、かかる暗号処理装置によると、小規模な実装が可能となる。
本発明において、以下の形態が可能である。
[形態1]
前記第1の視点に係る暗号処理装置のとおりである。
[形態2]
前記第2の視点に係る暗号処理装置のとおりである。
[形態3]
暗号処理装置は、m×kビットの入力データをk個(m,kはいずれも偶数)のmビットワード(以下単に「ワード」という。)x,x,…,xk−2,xk−1に分割し、ワードx(i=0,2,…,k−2)をF関数により鍵データを用いて変換を行い、ワードxi+1に作用させたものをワードYi+1として出力するとともに、ワードxをそのままワードYとして出力するF関数処理部をさらに備えていることが好ましい。
[形態4]
暗号処理装置は、m×kビットの平文または暗号文を前記F関数処理部に入力し、その出力を前記転置処理部に入力し、その出力を再度前記F関数処理部に入力することを所定のラウンド数にわたって繰り返し、最後にF関数処理を実施し、その出力を暗号文(平文)とすることで、m×kビットのデータを暗号化または復号化するようにしてもよい。
[形態5]
暗号処理装置は、前記F関数処理部からの出力および前記転置処理部からの出力を受けるとともに、前記所定のラウンド数にわたる繰り返しの最中である場合には前記転置処理部からの出力を選択して出力し、それ以外の場合には前記F関数処理部からの出力を選択して出力する第1セレクタと、前記平文または暗号文、および、前記第1のセレクタからの出力を受けるとともに、前記所定のラウンド数にわたる繰り返しの開始前である場合には前記平文または暗号文を選択して出力し、それ以外の場合には前記第1のセレクタからの出力を選択して出力する第2のセレクタと、をさらに備え、前記F関数処理部は、前記第2のセレクタからの出力を受けるようにしてもよい。
[形態6]
前記第3の視点に係る暗号処理方法のとおりである。
[形態7]
前記第4の視点に係る暗号処理方法のとおりである。
(実施形態1)
第1の実施形態に係る暗号処理装置ついて、図面を参照して詳細に説明する。本実施形態においては、暗号処理装置全体の構成は、一例として、図8に示すブロック図の構成とする。
図1は、本実施形態の暗号処理装置におけるデータ変換部100をハードウェア実装した場合の構成を示す図である。すなわち、本実施形態では、図8の暗号処理装置50におけるデータ変換部52を、図1に示すデータ変換部100とする。図1を参照すると、データ変換部100は、セレクタ101、105、レジスタ102、F関数処理部103、および、転置処理部104を備えている。
データ変換部100によって、平文P(または暗号文C)から暗号文C(または平文P)を生成する手順は、図9に示したデータ変換部52における手順と同様である。
F関数処理部103は、図11に示したデータ変換部53において、F関数処理部82が6分割である場合に相当する。
図2は、6分割一般化Feistel構造に対して本発明の転置処理を適用したものである(1ラウンド分)。本実施形態では、図1の転置処理部104は、図2の転置処理部90によって構成されている。
転置処理部90への入力データをY,Y,…,Yとし、出力データをZ,Z,…,Zとする。また、Yを2分割したデータをYi,0,Yi,1とし、Zを2分割したデータをZi,0,Zi,1とする。
転置処理P1および転置処理Q1は、それぞれ次のとおりである。
P1≡(p1[0],p1[1],p1[2],p1[3],p1[4],p1[5])
=(5,0,1,2,3,4)
Q1≡(q1[0],q1[1],q1[2],q1[3],q1[4],q1[5])
=(1,2,3,4,5,0)
ここで、Yi,0をZp1[i],1へ転置させ、Yi,1をZq1[i],0へ転置させる。例えば、i=0の場合、Y0,0はZ5,1へ転置し、Y5,1はZ0,0へ転置する。
図2の転置処理部90において、実線は転置処理P1に相当し、破線は転置処理Q1に相当する。
図10に示した暗号処理装置70のデータ変換部53は、図11に示すように、暗号化用の転置処理部83および復号化用の転置処理部84を必要とし、これらの出力を選択するためのセレクタ85を必要とする。
一方、本実施形態のデータ変換部100は、暗号化処理と復号化処理との間で、転置処理部104を共有することができる。したがって、データ変換部100は、図11のセレクタ85に相当するセレクタを必要としない。このとき、データ変換部100は、図11の暗号化/復号化信号に相当する切り替えのための信号も必要としない。
なお、本実施形態は、いかなる分割数(偶数)kについても適用することができる。任意の分割数kについて本実施形態の構成を説明すると、次のとおりである。すなわち、本実施形態の暗号処理装置は、k分割一般化Feistel構造の転置処理部として、次の転置処理部104を備えていることになる。転置処理部104への入力データをY,Y,…,Yk−1(nビット×k個)とし、転置処理部104からの出力データをZ,Z,…,Zk−1とする。また、Y(i=0,1,…,k−1)をs分割(s=2,4,…,n)したものをYi,0,Yi,1,…,Yi,s−1とする。同様に、Zをs分割したものをZi,0,Zi,1,…,Zi,s−1とする。このとき、転置処理部104は、Ya,t(t=0,1,…,s−1)をZb,u(u=0,1,…,s−1、u≠t)に転置するとき、Yb,uをZa,tに転置する。
ハードウェア実装において、転置処理部104は単なる配線に過ぎない。したがって、接続元と接続先をどのように変えようとも実装規模には影響しない。一般化Feistel構造の転置処理を本実施形態の転置処理部104を用いて行うことにより、暗号化および復号化において転置処理部104を共有することができる。したがって、分割したデータサイズで転置を行う一般化Feistel構造で必要とされた転置処理切り替え用のセレクタが不要となる。ゆえに、本実施形態に係る暗号処理装置によると、ハードウェア実装の規模を削減することができる。
(実施形態2)
次に、第2の実施形態に係る暗号処理装置について、図面を参照して説明する。本実施形態においても、第1の実施形態と同様に、暗号処理装置全体の構成は、一例として、図8に示すブロック図の構成とする。また、本実施形態においても、図8の暗号処理装置50におけるデータ変換部52を、図1に示すデータ変換部100とする。
図3は、本実施形態における転置処理部110の構成を示す図である。本実施形態では、図1の転置処理部104は、図3の転置処理部110によって構成されている。
図3を参照すると、本実施形態においては、転置処理部110への6個の入力データYと出力データZをそれぞれ4分割している点で、図2に示した第1の実施形態における転置処理部90と相違する。
図2を参照すると、第1の実施形態においては、各入出力データY,Zを2分割し、転置処理Pとその逆転置処理Qとを組み合わせた。一方、図3を参照すると、本実施形態においては、転置処理P1とその逆転置処理Q1、転置処理P2とその逆転置処理Q2の4つ転置処理を組み合わせる。
を4分割したものをYi,0,Yi,1,Yi,2,Yi,3とする。同様に、Zを4分割したものをZi,0,Zi,1,Zi,2,Zi,3とする。
このとき、Yi,tをZp1[i],uへ転置し、Yi,vをZp2[i],wへ転置し、Yi,wをZq2[i],vへ転置し、Yi,uをZq1[i],tへ転置する。
図3の転置処理部110の転置処理P1、Q1、P2、Q2は、それぞれ以下のとおりである。
P1≡(p1[0],p1[1],p1[2],p1[3],p1[4],p1[5])
=(5,0,1,2,3,4)
Q1≡(q1[0],q1[1],q1[2],q1[3],q1[4],q1[5])
=(1,2,3,4,5,0)
P2≡(p2[0],p2[1],p2[2],p2[3],p2[4],p2[5])
=(3,0,1,4,5,2)
Q2≡(q2[0],q2[1],q2[2],q2[3],q2[4],q2[5])
=(1,2,5,0,3,4)
また、t=0,u=3,v=1,w=2であるが、他の組み合わせとすることも可能である。
図3の転置処理部110において、細実線は転置処理P1に相当し、太実線は転置処理P2に相当し、破線は転置処理Q1に相当し、点線はQ2に相当する。
本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施例の各要素、各図面の各要素等を含む)の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
本発明は、音声通信端末やデータ通信装置などの通信データの秘匿や、ストレージ上の蓄積データの暗号化といった用途に適用できる。
10、30、62、82、103 F関数処理部
11、31、40、63、83、84、90、104、110 転置処理部
50、70 暗号処理装置
51 拡大鍵生成部
52、53、100 データ変換部
60、64、80、85、86、101、105 セレクタ
61、81、102 レジスタ
C 暗号文
P 平文

Claims (7)

  1. m×kビットの入力データをk個(m,kはいずれも偶数)のmビットワード(以下単に「ワード」という。)x,x,…,xk−2,xk−1に分割し、ワードx(i=0,2,…,k−2)をF関数により鍵データを用いて変換を行い、ワードxi+1に作用させたものをワードYi+1として出力するとともに、ワードxをそのままワードYとして出力するF関数処理部と、
    前記ワードY(i=0,1,…,k−1)をs個(s=2,4,…,m)のサブワードYi,0,Yi,1,…,Yi,s−1に分割し、転置条件Px(x=1,2,…,s/2−1)と転置条件Qx(x=1,2,…,s/2−1)により、サブワードYi,w[x]をサブワードZpx[i],w[y]に転置させ、サブワードYi,w[y]をサブワードZqx[i],w[x]に転置させ、ワードZi,0i,1…Zi,s−1を第iのワードとして出力する転置処理部と、を備え、
    前記転置条件Px=(px[0],px[1],px[2],…,px[k−1])は、第iのサブワードを第px[i]のサブワードに転置するとともに、i≠jならばpx[i]≠px[j]であり、
    前記転置条件Qx=(qx[0],qx[1],qx[2],…,qx[k−1])は、第iのサブワードを第qx[i]のサブワードに転置するとともに、i≠jならばqx[i]≠qx[j]であり、
    qx[px[i]]=iであり、
    前記w[t](t=0,1,…,s−1)は、w[t]∈{0,1,2,…,s−1}であり、t≠Tならばw[t]≠w[T]である、ことを特徴とする一般化Feistel構造に基づく暗号処理装置。
  2. 入力データをY,Y,…,Yk−1(nビット×k個)とし、出力データをZ,Z,…,Zk−1とし、Y(i=0,1,…,k−1)をs分割(s=2,4,…,n)したものをYi,0,Yi,1,…,Yi,s−1とし、Zをs分割したものをZi,0,Zi,1,…,Zi,s−1とした場合に、Ya,t(t=0,1,…,s−1)をZb,u(u=0,1,…,s−1、u≠t)に転置するときには、Yb,uをZa,tに転置する転置処理部を備えていることを特徴とする、k分割一般化Feistel構造に基づく暗号処理装置。
  3. m×kビットの入力データをk個(m,kはいずれも偶数)のmビットワード(以下単に「ワード」という。)x,x,…,xk−2,xk−1に分割し、ワードx(i=0,2,…,k−2)をF関数により鍵データを用いて変換を行い、ワードxi+1に作用させたものをワードYi+1として出力するとともに、ワードxをそのままワードYとして出力するF関数処理部をさらに備えていることを特徴とする、請求項2に記載の暗号処理装置。
  4. m×kビットの平文または暗号文を前記F関数処理部に入力し、その出力を前記転置処理部に入力し、その出力を再度前記F関数処理部に入力することを所定のラウンド数にわたって繰り返し、最後にF関数処理を実施し、その出力を暗号文(平文)とすることで、m×kビットのデータを暗号化または復号化することを特徴とする、請求項1ないし3のいずれか1項に記載の暗号処理装置。
  5. 前記F関数処理部からの出力および前記転置処理部からの出力を受けるとともに、前記所定のラウンド数にわたる繰り返しの最中である場合には前記転置処理部からの出力を選択して出力し、それ以外の場合には前記F関数処理部からの出力を選択して出力する第1セレクタと、
    前記平文または暗号文、および、前記第1のセレクタからの出力を受けるとともに、前記所定のラウンド数にわたる繰り返しの開始前である場合には前記平文または暗号文を選択して出力し、それ以外の場合には前記第1のセレクタからの出力を選択して出力する第2のセレクタと、をさらに備え、
    前記F関数処理部は、前記第2のセレクタからの出力を受けることを特徴とする、請求項4に記載の暗号処理装置。
  6. 一般化Feistel構造に基づく暗号処理装置が、m×kビットの入力データをk個(m,kはいずれも偶数)のmビットワード(以下単に「ワード」という。)x,x,…,xk−2,xk−1に分割し、ワードx(i=0,2,…,k−2)をF関数により鍵データを用いて変換を行い、ワードxi+1に作用させたものをワードYi+1とするとともに、ワードxをそのままワードYとする工程と、
    前記ワードY(i=0,1,…,k−1)をs個(s=2,4,…,m)のサブワードYi,0,Yi,1,…,Yi,s−1に分割し、転置条件Px(x=1,2,…,s/2−1)と転置条件Qx(x=1,2,…,s/2−1)により、サブワードYi,w[x]をサブワードZpx[i],w[y]に転置させ、サブワードYi,w[y]をサブワードZqx[i],w[x]に転置させ、ワードZi,0i,1…Zi,s−1を第iのワードとする工程と、を含み、
    前記転置条件Px=(px[0],px[1],px[2],…,px[k−1])は、第iのサブワードを第px[i]のサブワードに転置するとともに、i≠jならばpx[i]≠px[j]であり、
    前記転置条件Qx=(qx[0],qx[1],qx[2],…,qx[k−1])は、第iのサブワードを第qx[i]のサブワードに転置するとともに、i≠jならばqx[i]≠qx[j]であり、
    qx[px[i]]=iであり、
    前記w[t](t=0,1,…,s−1)は、w[t]∈{0,1,2,…,s−1}であり、t≠Tならばw[t]≠w[T]である、ことを特徴とする暗号処理方法。
  7. k分割一般化Feistel構造に基づく暗号処理装置が、入力データをY,Y,…,Yk−1(nビット×k個)とし、出力データをZ,Z,…,Zk−1とし、Y(i=0,1,…,k−1)をs分割(s=2,4,…,n)したものをYi,0,Yi,1,…,Yi,s−1とし、Zをs分割したものをZi,0,Zi,1,…,Zi,s−1とした場合に、Ya,t(t=0,1,…,s−1)をZb,u(u=0,1,…,s−1、u≠t)に転置するときには、Yb,uをZa,tに転置する工程を含むことを特徴とする、暗号処理方法。
JP2012544226A 2010-11-15 2011-11-14 暗号処理装置および暗号処理方法 Active JP5929757B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010254804 2010-11-15
JP2010254804 2010-11-15
PCT/JP2011/076136 WO2012067052A1 (ja) 2010-11-15 2011-11-14 暗号処理装置および暗号処理方法

Publications (2)

Publication Number Publication Date
JPWO2012067052A1 JPWO2012067052A1 (ja) 2014-05-12
JP5929757B2 true JP5929757B2 (ja) 2016-06-08

Family

ID=46083980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012544226A Active JP5929757B2 (ja) 2010-11-15 2011-11-14 暗号処理装置および暗号処理方法

Country Status (3)

Country Link
US (1) US9124420B2 (ja)
JP (1) JP5929757B2 (ja)
WO (1) WO2012067052A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8958550B2 (en) 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008051829A (ja) * 2006-07-28 2008-03-06 Sony Corp 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
WO2009075337A1 (ja) * 2007-12-13 2009-06-18 Nec Corporation 暗号化方法及び復号化方法、装置並びにプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1157020C (zh) * 1997-04-23 2004-07-07 松下电器产业株式会社 提高了安全性的密码处理装置
JP4967544B2 (ja) 2006-09-01 2012-07-04 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5532560B2 (ja) * 2008-08-25 2014-06-25 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008051829A (ja) * 2006-07-28 2008-03-06 Sony Corp 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
WO2009075337A1 (ja) * 2007-12-13 2009-06-18 Nec Corporation 暗号化方法及び復号化方法、装置並びにプログラム
US20100266122A1 (en) * 2007-12-13 2010-10-21 Nec Corporation Encryption method, decryption method, device, and program

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JPN6011065464; 白井太三,渋谷香士,秋下徹,盛合志帆,岩田哲: '"128ビットブロック暗号CLEFIAのハードウェア実装評価"' 電子情報通信学会技術研究報告 Vol.107,No.141, 20070713, p.29-36, 社団法人電子情報通信学会 *
JPN6011065465; Tomoyasu Suzaki and Kazuhiko Minematsu: '"Improving the Generalized Feistel"' LNCS, Fast Software Encryption Vol.6147, 201002, p.19-39 *
JPN7011004482; 洲崎智保,角尾幸保,久保博靖,川幡剛嗣: '"一般化Feistel構造に拡散層を組み合わせた構造の提案"' 2008年暗号と情報セキュリティシンポジウム 3A1 共通鍵暗号(1), 20080122, 3A1-1, 社団法人電子情報通信学会 *

Also Published As

Publication number Publication date
JPWO2012067052A1 (ja) 2014-05-12
US9124420B2 (en) 2015-09-01
WO2012067052A1 (ja) 2012-05-24
US20130223624A1 (en) 2013-08-29

Similar Documents

Publication Publication Date Title
Wu et al. Automatic search of truncated impossible differentials for word-oriented block ciphers
JP4967544B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5822970B2 (ja) 擬似ランダム生成、データ暗号化、およびメッセージ暗号化ハッシングのための暗号化デバイス
JP5402632B2 (ja) 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラム
JP4486680B2 (ja) Rc4暗号化を実行するための装置および方法
WO2003100751A1 (fr) Dispositif et procede de conversion de donnees
US9800406B2 (en) Technologies for modifying a first cryptographic cipher with operations of a second cryptographic cipher
JPH0863097A (ja) データを暗号化するための対称暗号化方法およびシステム
CN111064562A (zh) 一种fpga上的aes算法的实现方法
JP2014197913A (ja) 暗号化装置、暗号化方法及びプログラム
JP6052166B2 (ja) 暗号化方法、暗号化装置および暗号化プログラム
JP2004157535A (ja) データ暗号化方法
JP5929757B2 (ja) 暗号処理装置および暗号処理方法
Blaze et al. The MacGuffin block cipher algorithm
Labbi et al. Symmetric encryption algorithm for RFID systems using a dynamic generation of key
Mohammed et al. A Proposed Non Feistel Block Cipher Algorithm
KR20130126924A (ko) 암호 처리 장치 및 암호 처리 방법, 및 프로그램
Abbas et al. Audio cryptosystem based on LFSH and Chaotic map with ECC key management
JP2005045699A (ja) ディジタル情報伝送システム及びディジタル情報伝送方法
JPH0418734B2 (ja)
Shukla et al. Enyo: A Multistage Partition and Transposition Based Cipher
JP5223245B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2004347885A (ja) 暗号化装置処理方法、暗号復号装置処理方法、これらの装置及びプログラム
Kidney An investigation of data dependent structures in cryptographic ciphers
Jaquet-Chiffelle A new basic component for E/D similar iterated block cipher

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141003

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160307

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: 20160405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160418

R150 Certificate of patent or registration of utility model

Ref document number: 5929757

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150