"m×kビットの入力データをk個m,kはいずれも偶数のmビットワード以下単にワードという。x0,x1,...,xk-2,xk-1に分割し、ワードxii=0,2,...,k-2をF関数により鍵データを用いて変換を行い、ワードxi1に作用させたものをワードYi1として出力するとともに、ワードxiをそのままワードYiとして出力するF関数処理部と、前記ワードYii=0,1,...,k-1をs個s=2,4,...,mのサブワードYi,0,Yi,1,...,Yi,s-1に分割し、転置条件Pxx=1,2,...,s/2-1と転置条件Qxx=1,2,...,s/2-1により、サブワードYi,w[x]をサブワードZpx[i],w[y]に転置させ、サブワードYi,w[y]をサブワードZqx[i],w[x]に転置させ、ワードZi,0Zi,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]である、ことを特徴とする暗号処理装置。入力データをY0,Y1,...,Yk-1nビット×k個とし、出力データをZ0,Z1,...,Zk-1とし、Yii=0,1,...,k-1をs分割s=2,4,...,nしたものをYi,0,Yi,1,...,Yi,s-1とし、Ziをs分割したものをZi,0,Zi,1,...,Zi,s-1とした場合に、Ya,tt=0,1,...,s-1をZb,uu=0,1,...,s-1、u≠tに転置するときには、Yb,uをZa,tに転置する転置処理部を備えていることを特徴とする、k分割一般化Feistel構造に基づく暗号処理装置。m×kビットの入力データをk個m,kはいずれも偶数のmビットワード以下単にワードという。x0,x1,...,xk-2,xk-1に分割し、ワードxii=0,2,...,k-2をF関数により鍵データを用いて変換を行い、ワードxi1に作用させたものをワードYi1として出力するとともに、ワードxiをそのままワードYiとして出力するF関数処理部をさらに備えていることを特徴とする、請求項2に記載の暗号処理装置。m×kビットの平文または暗号文を前記F関数処理部に入力し、その出力を前記転置処理部に入力し、その出力を再度前記F関数処理部に入力することを所定のラウンド数にわたって繰り返し、最後にF関数処理を実施し、その出力を暗号文平文とすることで、m×kビットのデータを暗号化または復号化することを特徴とする、請求項1ないし3のいずれか1項に記載の暗号処理装置。前記F関数処理部からの出力および前記転置処理部からの出力を受けるとともに、前記所定のラウンド数にわたる繰り返しの最中である場合には前記転置処理部からの出力を選択して出力し、それ以外の場合には前記F関数処理部からの出力を選択して出力する第1セレクタと、前記平文または暗号文、および、前記第1のセレクタからの出力を受けるとともに、前記所定のラウンド数にわたる繰り返しの開始前である場合には前記平文または暗号文を選択して出力し、それ以外の場合には前記第1のセレクタからの出力を選択して出力する第2のセレクタと、をさらに備え、前記F関数処理部は、前記第2のセレクタからの出力を受けることを特徴とする、請求項4に記載の暗号処理装置。m×kビットの入力データをk個m,kはいずれも偶数のmビットワード以下単にワードという。x0,x1,...,xk-2,xk-1に分割し、ワードxii=0,2,...,k-2をF関数により鍵データを用いて変換を行い、ワードxi1に作用させたものをワードYi1とするとともに、ワードxiをそのままワードYiとする工程と、前記ワードYii=0,1,...,k-1をs個s=2,4,...,mのサブワードYi,0,Yi,1,...,Yi,s-1に分割し、転置条件Pxx=1,2,...,s/2-1と転置条件Qxx=1,2,...,s/2-1により、サブワードYi,w[x]をサブワードZpx[i],w[y]に転置させ、サブワードYi,w[y]をサブワードZqx[i],w[x]に転置させ、ワードZi,0Zi,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]である、ことを特徴とする暗号処理方法。入力データをY0,Y1,...,Yk-1nビット×k個とし、出力データをZ0,Z1,...,Zk-1とし、Yii=0,1,...,k-1をs分割s=2,4,...,nしたものをYi,0,Yi,1,...,Yi,s-1とし、Ziをs分割したものをZi,0,Zi,1,...,Zi,s-1とした場合に、Ya,tt=0,1,...,s-1をZb,uu=0,1,...,s-1、u≠tに転置するときには、Yb,uをZa,tに転置する工程を含むことを特徴とする、k分割一般化Feistel構造に基づく暗号処理方法。上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者によってなされたものである。上述の暗号化処理をハードウェア実装する方法について説明する。ハードウェア実装に用いられるデバイスとして、専用LSIやFPGAField-ProgrammableGateArrayが挙げられる。図8は、暗号化処理にFeistel構造を用いた場合の暗号化装置の構成を一例として示すブロック図である。図8を参照すると、暗号処理装置50は、拡大鍵生成部51およびデータ変換部52を備えている。拡大鍵生成部51は、外部から入力される秘密鍵から拡大鍵Kiを生成し、データ変換部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で拡大鍵データKiによる変換が行われる。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の視点に係る暗号処理装置は、m×kビットの入力データをk個m,kはいずれも偶数のmビットワード以下単にワードという。x0,x1,...,xk-2,xk-1に分割し、ワードxii=0,2,...,k-2をF関数により鍵データを用いて変換を行い、ワードxi1に作用させたものをワードYi1として出力するとともに、ワードxiをそのままワードYiとして出力するF関数処理部と、前記ワードYii=0,1,...,k-1をs個s=2,4,...,mのサブワードYi,0,Yi,1,...,Yi,s-1に分割し、転置条件Pxx=1,2,...,s/2-1と転置条件Qxx=1,2,...,s/2-1により、サブワードYi,w[x]をサブワードZpx[i],w[y]に転置させ、サブワードYi,w[y]をサブワードZqx[i],w[x]に転置させ、ワードZi,0Zi,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構造に基づく暗号処理装置は、入力データをY0,Y1,...,Yk-1nビット×k個とし、出力データをZ0,Z1,...,Zk-1とし、Yii=0,1,...,k-1をs分割s=2,4,...,nしたものをYi,0,Yi,1,...,Yi,s-1とし、Ziをs分割したものをZi,0,Zi,1,...,Zi,s-1とした場合に、Ya,tt=0,1,...,s-1をZb,uu=0,1,...,s-1、u≠tに転置するときには、Yb,uをZa,tに転置する転置処理部を備えている。本発明の第3の視点に係る暗号処理方法は、m×kビットの入力データをk個m,kはいずれも偶数のmビットワード以下単にワードという。x0,x1,...,xk-2,xk-1に分割し、ワードxii=0,2,...,k-2をF関数により鍵データを用いて変換を行い、ワードxi1に作用させたものをワードYi1とするとともに、ワードxiをそのままワードYiとする工程と、前記ワードYii=0,1,...,k-1をs個s=2,4,...,mのサブワードYi,0,Yi,1,...,Yi,s-1に分割し、転置条件Pxx=1,2,...,s/2-1と転置条件Qxx=1,2,...,s/2-1により、サブワードYi,w[x]をサブワードZpx[i],w[y]に転置させ、サブワードYi,w[y]をサブワードZqx[i],w[x]に転置させ、ワードZi,0Zi,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構造に基づく暗号処理方法は、入力データをY0,Y1,...,Yk-1nビット×k個とし、出力データをZ0,Z1,...,Zk-1とし、Yii=0,1,...,k-1をs分割s=2,4,...,nしたものをYi,0,Yi,1,...,Yi,s-1とし、Ziをs分割したものをZi,0,Zi,1,...,Zi,s-1とした場合に、Ya,tt=0,1,...,s-1をZb,uu=0,1,...,s-1、u≠tに転置するときには、Yb,uをZa,tに転置する工程を含む。本発明に係る暗号処理装置および暗号処理方法によると、一般化Feistel構造を用いた場合のF関数処理部の小型化のメリットを生かしつつ、暗号化処理と復号化処理との間で転置処理部を共有することで、暗号化処理のための転置処理部と復号化処理のための転置処理部とを切り替えるためのセレクタを不要とし、小規模な実装が可能な暗号処理装置を提供することができる。はじめに、本発明の概要について説明する。なお、この概要に付記した図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。図1を参照すると、本発明の暗号処理装置は、m×kビットの入力データをk個m,kはいずれも偶数のmビットワード以下単にワードという。x0,x1,...,xk-2,xk-1に分割し、ワードxii=0,2,...,k-2をF関数により鍵データを用いて変換を行い、ワードxi1に作用させたものをワードYi1として出力するとともに、ワードxiをそのままワードYiとして出力するF関数処理部103と、前記ワードYii=0,1,...,k-1をs個s=2,4,...,mのサブワードYi,0,Yi,1,...,Yi,s-1に分割し、転置条件Pxx=1,2,...,s/2-1と転置条件Qxx=1,2,...,s/2-1により、サブワードYi,w[x]をサブワードZpx[i],w[y]に転置させ、サブワードYi,w[y]をサブワードZqx[i],w[x]に転置させ、ワードZi,0Zi,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ビットワード以下単にワードという。x0,x1,...,xk-2,xk-1に分割し、ワードxii=0,2,...,k-2をF関数により鍵データを用いて変換を行い、ワードxi1に作用させたものをワードYi1として出力するとともに、ワードxiをそのままワードYiとして出力する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への入力データをY0,Y1,...,Y5とし、出力データをZ0,Z1,...,Z5とする。また、Yiを2分割したデータをYi,0,Yi,1とし、Ziを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,4Q1≡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への入力データをY0,Y1,...,Yk-1nビット×k個とし、転置処理部104からの出力データをZ0,Z1,...,Zk-1とする。また、Yii=0,1,...,k-1をs分割s=2,4,...,nしたものをYi,0,Yi,1,...,Yi,s-1とする。同様に、Ziをs分割したものをZi,0,Zi,1,...,Zi,s-1とする。このとき、転置処理部104は、Ya,tt=0,1,...,s-1をZb,uu=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個の入力データYiと出力データZiをそれぞれ4分割している点で、図2に示した第1の実施形態における転置処理部90と相違する。図2を参照すると、第1の実施形態においては、各入出力データYi,Ziを2分割し、転置処理Pとその逆転置処理Qとを組み合わせた。一方、図3を参照すると、本実施形態においては、転置処理P1とその逆転置処理Q1、転置処理P2とその逆転置処理Q2の4つ転置処理を組み合わせる。Yiを4分割したものをYi,0,Yi,1,Yi,2,Yi,3とする。同様に、Ziを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,4Q1≡q1[0],q1[1],q1[2],q1[3],q1[4],q1[5]=1,2,3,4,5,0P2≡p2[0],p2[1],p2[2],p2[3],p2[4],p2[5]=3,0,1,4,5,2Q2≡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に相当する。本発明の全開示請求の範囲を含むの枠内において、さらにその基本的技術思想に基づいて、実施形態の変更調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素各請求項の各要素、各実施例の各要素、各図面の各要素等を含むの多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。本発明は、音声通信端末やデータ通信装置などの通信データの秘匿や、ストレージ上の蓄積データの暗号化といった用途に適用できる。"