JP5488608B2 - ブロック暗号装置、ブロック暗号化方法およびプログラム - Google Patents

ブロック暗号装置、ブロック暗号化方法およびプログラム Download PDF

Info

Publication number
JP5488608B2
JP5488608B2 JP2011538431A JP2011538431A JP5488608B2 JP 5488608 B2 JP5488608 B2 JP 5488608B2 JP 2011538431 A JP2011538431 A JP 2011538431A JP 2011538431 A JP2011538431 A JP 2011538431A JP 5488608 B2 JP5488608 B2 JP 5488608B2
Authority
JP
Japan
Prior art keywords
block
node
mod
replacement
color
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
JP2011538431A
Other languages
English (en)
Other versions
JPWO2011052587A1 (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
Priority to JP2011538431A priority Critical patent/JP5488608B2/ja
Publication of JPWO2011052587A1 publication Critical patent/JPWO2011052587A1/ja
Application granted granted Critical
Publication of JP5488608B2 publication Critical patent/JP5488608B2/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

[関連出願についての記載]
本発明は、日本国特許出願:特願2009−246307号(2009年10月27日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、ブロック暗号装置、ブロック暗号化方法およびプログラムに関し、特に、特に、Feistel置換を用いたブロック暗号装置、ブロック暗号化方法およびプログラムに関する。
ブロック暗号とは、共通鍵暗号の一種であり、ある定められたブロックサイズの平文を鍵を用いて暗号化する技術である。ブロック暗号の代表的な構成方法として、Feistel置換を用いる方式がある。Feistel置換は、1ブロックを二つの単位ブロックA、Bに分割し、ラウンド関数と呼ばれる鍵付きの非線形関数に片方の単位ブロックAを入力し、その出力を他方の単位ブロックBへ排他的論理和したのち、単位ブロックをスワップして出力するものである。具体的には、ラウンド関数Fと入力(A,B)に対して(B,B+F(A))を出力する。この処理を所定のラウンド数分繰り返して、暗号文を生成する。
上記のFeistel置換を一般化し、1ブロックを二つ以上に分割して、単位ブロック二つごとにFeistel置換を適用する方法も知られており、一般化Feistelネットワーク(Generalized Feistel Network;GFN)とも呼ばれている。
GFNにおいては、1ブロックをある偶数kについてk単位ブロックに分割する。このkは分割数と呼ばれる。単位ブロックがnビットの場合、1平文はknビットとなる。1ブロックを分割して得られたk個の単位ブロックを(m[0],m[1],・・・,m[k−1])とした場合、GFNの1ラウンドは、BlockPerm(m[0],F(m[0])+m[1],m[2],F(m[2])+m[3],・・・,F(m[k−2]),F(m[k−2])+m[k−1])となる。Fはラウンド関数であり、BlockPermはk単位ブロックのポジションを入れ替える置換である。
ここで、BlockPermとしては巡回置換を使うものが標準的である。すなわち、
[数1]BlockPerm
BlockPerm(v[0],v[1],・・・,v[k−1])=(v[1], v[2],・・・,v[k−1],v[0])
となる。なお0番目の入力ブロックからk−1番目の入力ブロックまでそれぞれに対応する出力ブロックの番号を並べたリスト表現では、このBlockPermは、{1,2,...,k−1,0}と表現される。
分割数k=4として巡回置換を用いたGFNの例としては、非特許文献1の“CLEFIA”が挙げられる。分割数k=4の巡回置換を用いたGFNの例を図10に示す。
一方、GFNを含めた、ブロック暗号の構造的な安全性を評価する手法として、疑似ランダム性と強疑似ランダム性がある。
これはターゲットのブロック暗号が分割数k、単位ブロックnビットのRラウンドGFNの場合、全部でRk/2個あるラウンド関数をすべて独立な疑似ランダム関数と見なしたとき、ブロック暗号全体がknビットの疑似ランダム置換および強疑似ランダム置換となるかを評価するものである。
ここで、疑似ランダム関数Fは任意の入力xから疑似乱数F(x)(真の乱数と計算量的に判別が困難な系列)を出力する関数、疑似ランダム置換Eは任意の平文xから重複のない疑似乱数E(x)を暗号文として出力する置換、強疑似ランダム置換Eは、Eが疑似ランダム置換の条件を満たしたうえに、Eの逆置換Dについても、任意の暗号文yから重複のない疑似乱数D(y)を平文として出力するものである。強疑似ランダム置換は、現実に望みうる最も強い安全性を持つブロック暗号を意味する。
例えばBlockPermを巡回置換とした場合、非特許文献2により、k+1ラウンドのGFNが疑似ランダム置換、2kラウンドのGFNが強疑似ランダム置換となることが知られている。これらの評価は、実際のブロック暗号を構築するに当たって最小限必要なラウンド数を与えるものである。安全性と計算量の観点から、疑似ランダム性と強疑似ランダム性がより少ないラウンド数で満たされるブロック暗号が望ましいため、疑似ランダム性と強疑似ランダム性が満たされるラウンド数は、実際のブロック暗号の構造的な善し悪しを評価する指標としてよく使われている。
実際のブロック暗号において使われるラウンド関数は疑似ランダム関数よりも一般的に弱いため、疑似ランダム性のために必要な最小ラウンド数よりもある程度ラウンド数を多くとり、安全性におけるマージンを確保している。もちろん、小さいラウンド数で疑似ランダム性と強疑似ランダム性が満たされる方が、あるレベルの安全性マージンを確保するのに必要なラウンド数を削減でき、全体の計算量削減が可能となる。
なお、Feistel型ではなくSubstitution−Permutation network型(SPN型)のブロック暗号においては、knビットブロック入力(m[0],m[1],・・・,m[k−1])に対して鍵付き非線形置換Sを用いてMix(S(m[0]),S(m[1]),・・・,S(m[k−1]))という処理を1ラウンドとしている。ここでMixはknビットの線形変換であるが、Mixがnビットブロック単位の入れ替えによる置換では異なるブロック間の影響がないため、いかなる場合でも安全ではない。Mixはブロック間の線形演算を含んだ置換であることが必要である。
例えば、非特許文献3の“SAFER”に記載の128ビットブロック暗号SAFER+では、k=16、n=8として、Pseudo−Hadamard Transform(PHT)と呼ばれる2ブロック単位の行列演算と、ブロック単位の入れ替えによる置換Armenian Shuffleとを組み合わせることでMixを実現している。
Taizo Shirai,Kyoji Shibutani,Toru Akishita,Shiho Moriai,Tetsu Iwata:The 128-Bit Blockcipher CLEFIA.Alex Biryukov(Ed.):Fast Software Encryption,14th International Workshop,FSE 2007,Luxembourg,Luxembourg,March 26-28,2007,Revised Selected Papers.Lecture Notes in Computer Science 4593 Springer 2007,pp.181-195. Shiho Moriai,Serge Vaudenay:On the Pseudorandomness of Top-Level Schemes of Block Ciphers.Tatsuaki Okamoto (Ed.): Advances in Cryptology - ASIACRYPT 2000, 6th International Conference on the Theory and Application of Cryptology and Information Security, Kyoto, Japan, December 3-7, 2000, Proceedings. Lecture Notes in Computer Science 1976 Springer 2000, pp. 289-302. James L. Massey: On the Optimality of SAFER+ Diffusion. Proceedings of the Second AES Candidate Conference, National Institute of Standards and Technology, 1999. (http://csrc.nist.gov/archive/aes/round1/conf2/papers/massey.pdf)
上記非特許文献1から3の全開示内容はその引用をもって本書に繰込み記載する。
以下に本発明による関連技術の分析を与える。
非特許文献3の“SAFER”では、Armenian Shuffleについて、グラフに基づき以下のように探索的に発見したとしている。まず(m[0],m[1],・・・,m[k−1])を置換BlockPermにより置換した結果を(c[0],c[1],・・・,c[k−1])とする。この置換BlockPermをk/2個のノードのグラフで表現することを考える。s=(k/2)−1として、グラフ中のノードにnode=0,...,sというラベルを付ける。ノードiがm[2i]とm[2i+1]を表すものとする。非特許文献3の“SAFER”に記載されるように、一般にはBlockPermは、入出次数2、すなわち、どのノードに入る枝の数も2本で、どのノードから出て行く枝の数もまた2本である有向グラフと、そのグラフ上の枝への4色の彩色により一意に表現可能である。
さらに、BlockPermについて、全ての偶数番目の入力ブロックは奇数番目の出力ブロックに置換され、全ての奇数番目の入力ブロックは偶数番目の出力ブロックへ置換されることを要請する。すなわち、ある偶数i,i’と奇数j,j’についてc[i]=m[j]かつc[j’]=m[i’]である。
上記制約を満たす任意のBlockPermを一意に表現するには、上述の有向グラフの枝への彩色パターンは2色で十分となる。具体的には、k/2個のノードへラベル0,1,・・・,s(s=(k/2)−1)をつけて、各ノードから出る2本の枝の色が赤(第1の色;便宜的に細線で表す)と青(第2の色;便宜的に太線で表す)がそれぞれ一本ずつ、かつ、各ノードへ入る2本の枝も赤と青がそれぞれ一本ずつであるように彩色する。以降、このような枝の彩色ルールのことを「Type−2枝彩色」と呼ぶ。
これらの条件を満たす、枝が2色に彩色された有向グラフが与えられると、ノードiからノードjへの赤い枝を、ブロックm[2i]のブロックc[2j+1]への置換と対応させて、ノードi’からノードj’への青い枝を、ブロックm[2i’+1]のブロックc[2j’]への置換と対応させることで、置換BlockPermが一意に定まる。逆にBlockPermが与えられたときに、対応する有向グラフも一意に定まる。なお、非特許文献3の“SAFER”では枝彩色の行われていない入出次数2の有向グラフをスケルトンと呼んでいる。
非特許文献3の“SAFER”のArmenian Shuffleは、オーダー3の2値de BruijnグラフB(3)をわずかに変形させたグラフをスケルトンとし、これに適当なType−2枝彩色を行って得られる置換である。
ここでde BruijnグラフB(d)について定義する。シンボル数が2でオーダーdの2値de BruijnグラフB(d)は、ノード数2の有向グラフであり、入出次数は、シンボル数と同じく2である。このとき、各ノードはdビット値(d=3なら000,001,・・・,111)で表現される。あるdビット値xの下位d−1ビット値をLS(x)とし、ビット系列同士の連結を||で表すとすると、グラフB(d)においてノードxから出る2本の枝は、ノードLS(x)||0とLS(x)||1へ入ることになる。
2値de BruijnグラフB(d)のユニークな特徴として、グラフの直径、すなわち任意の2ノード間の遷移に必要な枝の数の最大値がdであることが知られている。これは、ノード数2、次数2の有向グラフとしては理論最小値である。
非特許文献3の“SAFER”では、Armenian Shuffleのスケルトンの直径が、オーダー3の2値de BruijnグラフB(3)の直径と同じ理論最小値である3を達成することから、SPN型ブロック暗号で、線形変換MixをPHTとArmenian Shuffleを組み合わせて実現することにより、ある種の安全性評価が最適化されることを示している。
冒頭に述べたように、一般化Feistelネットワークに基づく分割数kのブロック暗号において、単位ブロックの置換として一般的な巡回置換を用いると、疑似ランダム性と強疑似ランダム性を達成するのにそれぞれk+1と2kラウンドを必要とし、ラウンド数を少なくしたいという要請がある。
本発明は、上記した分析の下、なされたものであって、一般化Feistelネットワークに基づくブロック暗号において、疑似ランダム性と強疑似ランダム性に必要なラウンド数を低減できるよう構成されたブロック暗号装置、ブロック暗号化方法およびプログラムを提供することを目的とする。
本発明の第1の視点によれば、入力されたデータを、k個のブロックに分割する入力部と、ラウンド毎に生成された暗号鍵を用いて、前記ブロック2つを組としてFeistel置換を施すRラウンド分のFeistel置換部と、前記分割数kの半数の2個(但し、t>2)のノードを持つdeBruijnグラフのtビットの系列で表されたノードu=(u,u,・・・,u)からノードv=(v,v,・・・,v)への矢線の色を決定する下記関数
colorfunc(u,v)=v if u=u
colorfunc(u,v)=v+1 if u≠uを用いて、偶数ブロックから奇数ブロックへの遷移を第1の色の矢線で、奇数ブロックから偶数ブロックへの遷移を第2の色の矢線で表した、対称なType2枝彩色を施した2値deBruijnグラフに相当するブロック置換を行うブロック置換部と、前記置換後のk個のブロックを結合して出力する出力部と、を備えるブロック暗号装置が提供される。
本発明の第2の視点によれば、ブロック暗号装置の入力部が、入力されたデータを、k個のブロックに分割するステップと、前記ブロック暗号装置のFeistel置換部が、ラウンド毎に生成された暗号鍵を用いて、前記ブロック2つを組としてFeistel置換を施すRラウンド分のFeistel置換を行って、ブロック置換部に出力するステップと、前記ブロック暗号装置のブロック置換部が、前記分割数kの半数の2個(但し、t>2)のノードを持つdeBruijnグラフのtビットの系列で表されたノードu=(u,u,・・・,u)からノードv=(v,v,・・・,v)への矢線の色を決定する下記関数colorfunc(u,v)=v if u=u,colorfunc(u,v)=v+1 if u≠uを用いて、偶数ブロックから奇数ブロックへの遷移を第1の色の矢線で、奇数ブロックから偶数ブロックへの遷移を第2の色の矢線で表した、対称なType2枝彩色を施した2値deBruijnグラフに相当するブロック置換を行うステップと、前記ブロック暗号装置の出力部が、前記置換後のk個のブロックを結合して出力するステップと、を含むブロック暗号化方法が提供される。本方法は、入力されたデータを暗復号するコンピュータという、特定の機械に結びつけられている。
本発明の第3の視点によれば、入力されたデータを、k個のブロックに分割する処理と、ラウンド毎に生成された暗号鍵を用いて、前記ブロック2つを組としてFeistel置換を施すRラウンド分のFeistel置換を行う処理と、前記分割数kの半数の2個(但し、t>2)のノードを持つdeBruijnグラフのtビットの系列で表されたノードu=(u,u,・・・,u)からノードv=(v,v,・・・,v)への矢線の色を決定する上記関数colorfunc(u,v)を用いて、偶数ブロックから奇数ブロックへの遷移を第1の色の矢線で、奇数ブロックから偶数ブロックへの遷移を第2の色の矢線で表した、対称なType2枝彩色を施した2値deBruijnグラフに相当するブロック置換を行う処理と、前記置換後のk個のブロックを結合して出力する処理と、をコンピュータに実行させ、前記コンピュータを入力部、Feistel置換部、ブロック置換部及び出力部を備えるブロック暗号装置として機能させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。

本発明によれば、より少ないラウンド数で疑似ランダム性と強疑似ランダム性を達成できる一般化Feistelネットワークを用いたブロック暗号が得られることになる。その理由は、2値deBruijnグラフからも明らかなとおり、本発明のブロック置換が、2色に彩色されたグラフで表現した場合の十分距離(sufficient distance;SD)が巡回置換の場合よりも大幅に小さくなることある。
本発明の第1の実施形態の構成を示す図[Struc1]である。 本発明の第1の実施形態の構成を処理ブロックで表した図[Block1]である。 本発明の第1の実施形態のブロック置換(分割数8の場合)をグラフで表した図[CdB0]と対応するリスト表現を表した図である(太線が青(第2色)、細線が赤(第1色)に対応する。)。 本発明の第1の実施形態の動作を示すフローチャート[Flow1]である。 本発明の第1の実施形態のブロック置換(分割数16の場合)をグラフで表した図[CdB1]である(太線が青(第2色)、細線が赤(第1色)に対応する。)。 本発明の第1の実施形態のブロック置換(分割数32の場合)をグラフで表した図[CdB2]である(太線が青(第2色)、細線が赤(第1色)に対応する。)。 図4[CdB1]のグラフに対応するブロック置換(分割数16の場合)を表した図[Perm1]である。 分割数8の左巡回置換をグラフで表した図[Cyclicgph]である(太線が青(第2色)、細線が赤(第1色)に対応する。)。 本発明の第2の実施形態の1ラウンド分の構成(分割数16の場合)を示す図[Struc2]である。 本発明の第2の実施形態のブロック置換(分割数16の場合)をグラフで表した図[SS1]である(太線が青(第2色)、細線が赤(第1色)に対応する。)。 分割数k=4の巡回置換を用いたGFNの例を示す図[CyclicGFN]である。
はじめに本発明の概要を説明する。本発明に係るブロック暗号装置は、入力されたデータを、k個のブロックに分割する入力部と、ラウンド毎に生成された暗号鍵を用いて、前記ブロック2つを組としてFeistel置換を施すRラウンド分のFeistel置換部と、前記分割数kの半数の2個(但し、t>2)のノードを持つdeBruijnグラフのtビットの系列で表されたノードu=(u,u,・・・,u)からノードv=(v,v,・・・,v)への矢線の色を決定する下記関数
colorfunc(u,v)=v if u=u
colorfunc(u,v)=v+1 if u≠u
を用いて、偶数ブロックから奇数ブロックへの遷移を第1の色の矢線で、奇数ブロックから偶数ブロックへの遷移を第2の色の矢線で表した、対称なType2枝彩色を施した2値deBruijnグラフに相当する置換を行うブロック置換部と、前記置換後のk個のブロックを結合して出力する出力部と、を備える。
前記ブロック置換部における対称なType2枝彩色を施した2値deBruijnグラフに相当するブロック置換処理は、Feistel置換にて出力された中間文Y=(y[0],y[1],・・・,y[k−1])を、
ブロック番号i(i=0〜k−1)がk/2未満で、かつ
・i mod 4が0の場合、y[i]=z[2i+1 mod k]
・i mod 4が1の場合、y[i]=z[2i mod k]
・i mod 4が2の場合、y[i]=z[2i+3 mod k]
・i mod 4が3の場合、y[i]=z[2i−2 mod k]
前記ブロック番号iがk/2以上で、かつ
・i mod 4が0の場合、y[i]=z[2i+3 mod k]
・i mod 4が1の場合、y[i]=z[2i−2 mod k]
・i mod 4が2の場合、y[i]=z[2i+1 mod k]
・i mod 4が3の場合、y[i]=z[2i mod k]
という置換にて実現できる。このとき、ラウンド出力文Zとして(z[0],z[1],・・・,z[k−1])が出力される。このようなFeistel置換とブロック置換とを必要繰り返し、最後にFeistel置換を適用して暗号文が出力される。
[第1の実施形態]
続いて、本発明の第1の実施形態について図面を参照して詳細に説明する。図1[Struc1]は、本発明の第1の実施形態の構成を示す図である。図2[Block1]は、本発明の第1の実施形態の構成を処理ブロックで表した図である。
図2を参照すると、入力部100と、鍵拡大部101と、ラウンド数R個分のFeistel置換部102と、R−1個分のブロック置換部103と、出力部104と、を備えたブロック暗号装置10が示されている。
ブロック暗号装置10は、CPU、メモリ、ディスク等を備えた各種の情報処理装置により実現可能である。また、ブロック暗号装置10の上記各部は、プログラムをディスクに格納しておき、このプログラムをCPU上で動作させることにより実現することができる。
次に、ブロック暗号装置10の上記各部について説明する。なお、以下の説明では、ブロック暗号の分割数kを、ある2t+1(但し、tは2以上の正数)とする。また、ラウンド数をRとする。
入力部100は、対象となる平文Mと秘密鍵SKを入力する手段である。例えば、外部からデータを入力する装置やキーボードなどの文字入力装置等により入力部100を実現することができる。
鍵拡大部101は、秘密鍵SKからRラウンド分のラウンド関数への鍵を導出する手段である。秘密鍵SKを入力とした関数で十分な出力幅があればどのような関数でもよい。
Feistel置換部102は、ラウンドへの入力文X(n×kビット)をnビットごとに分割してk個の単位ブロックx[0],x[1],・・・,x[k−1]について、2ブロックごとにFeistel置換を適用して中間文Y=(y[0],y[1],・・・,y[k−1])を出力する。
なお、最初のラウンド入力文Xは平文Mに初期化される。また、各Feistel置換は、(y[0],y[1],・・・,y[k−1])=(x[0],F(x[0])+x[1],x[2],F(x[2])+x[3],・・・,x[k−2],F(x[k−2])+x[k−1])で表される。ここで、Fはnビット入出力のラウンド関数であり、その鍵は鍵拡大部101により導出される。各ラウンド関数の鍵は処理する偶数番目ブロックのインデックス(0,2,・・・,k−2)によって異なっていてもよいし、同一でもよい。
ブロック置換部103は、中間文Y=(y[0],y[1],・・・,y[k−1])をnビットブロック単位で並び替えてラウンド出力文Z=(z[0],z[1],・・・,z[k−1])を得る置換であり、2値de BruijnグラフB(s)について、以下のルールでtype2枝彩色することで定義される。
個のノードを持つ2値deBruijnグラフB(t)を考え、各ノードをtビット系列(00..0,00..1,・・・,11..1)で表すものとする。
2色に枝彩色するにあたり、色を赤(細線;第1色)と青(太線;第2色)とし、またバイナリで表現する場合はそれぞれ0と1に対応させるものとする。
ノードu=(u,u,・・・,u)からノードv=(v,v,・・・,v)への枝があるとき、その色のバイナリ表現を決定するために下記関数colorfuncを用いる。
[colorfunc]
colorfunc(u,v)=v if u=u
colorfunc(u,v)=v+1 if u≠u
ここでv+1はvのビット反転である。具体的に、例えばu=uの場合、uの最上位からのn−1ビット系列LS(u)に、0を右から付けたノードLS(u)||0については枝の色を赤に(細線、バイナリ表現では0に)し、1を右から付けたノードLS(u)||1については枝の色を青に(太線、バイナリ表現では1に)彩色する。
同様に、u≠uの場合は、彩色のルールを反転して彩色が行われる。この彩色方法は2値deBruijnグラフB(t)に対してtype2枝彩色であり、かつ対称性を持つものである。
図3[CdB0]は、分割数k=8として彩色した対称なType2枝彩色を施した2値deBruijnグラフである。図の右に示したとおり、分割数k=8のとき置換BlockPermは、k/2個、つまり4つ(2(3−1))のノードを持つグラフで表現できる。そして、s=(k/2)−1として、グラフ中のノードにnode=0,1,2,3というラベルを付ける。上記関数colorfuncにより枝が2色に彩色された有向グラフが与えられると、あるノードmからあるノードnへの赤い枝(細線)を、偶数ブロックy[2m]から奇数ブロックz[2n+1]への置換と対応させ、ノードm’からノードn’への青い枝を、奇数ブロックy[2m’+1]から偶数ブロックz[2n’]への置換と対応させることで、置換BlockPermは一意に定まる。例えば、図3[CdB0]のブロック置換は、図1のブロック置換部103におけるブロック置換に対応し、{1,2,7,4,3,0,5,6}というリストで表現できる。
この彩色方法による置換は、ラウンド入力文Y=(y[0],y[1],・・・,y[k−1])と、ラウンド出力文Z=(z[0],z[1],・・・,z[k−1])で表現すると、
上記ブロック番号iがk/2未満で、かつ
・i mod 4が0の場合、y[i]=z[2i+1 mod k]
・i mod 4が1の場合、y[i]=z[2i mod k]
・i mod 4が2の場合、y[i]=z[2i+3 mod k]
・i mod 4が3の場合、y[i]=z[2i−2 mod k]
前記ブロック番号iがk/2以上で、かつ
・i mod 4が0の場合、y[i]=z[2i+3 mod k]
・i mod 4が1の場合、y[i]=z[2i−2 mod k]
・i mod 4が2の場合、y[i]=z[2i+1 mod k]
・i mod 4が3の場合、y[i]=z[2i mod k]
となる。
なお、図3のグラフの矢印を逆向きにした置換も実現可能である。これは、図1におけるブロックの番号の順序を逆順に変えればよい。
出力部104は、最終段のFeistel置換部102から出力されたY=(y[0],y[1],・・・,y[k−1])を結合して暗号文を出力する手段である。具体的には、コンピュータディスプレイ、プリンターまたは各種のデータ出力装置により実現することができる。
なお、上記したブロック暗号装置における各処理は、ブロック暗号装置を構成するコンピュータに実行させるプログラムにより実現することができる。
続いて、上記本発明の第1の実施形態に係るブロック暗号装置の動作について図面を参照して詳細に説明する。図4[Flow1]は、本発明の第1の実施形態の動作を示すフローチャートである。
図4を参照すると、まず、入力部100に、平文Mと秘密鍵SKを入力されると(図4のステップA1)、鍵拡大部101にて、秘密鍵SKを用いて、Rラウンド分の拡大鍵が生成される(図4のステップA2)。
次にラウンド数のカウンターをJ=1とし、ラウンド入力文X=(x[0],x[1],・・・,x[k−1])の初期値を平文Mに設定し(図4のステップA3)、偶数(i=0,2,4,・・・,k−2)のブロックと奇数ブロックとの組(x[i],x[i+1])にJラウンド目の拡大鍵を用いたFeistel置換を適用して中間文Y=(y[0],y[1],・・・,y[k−1])を得る(図4のステップA4)。
カウンターJがR未満の場合、中間文Yをブロック毎に置換してラウンド出力文Z=(z[0],z[1],・・・,z[k−1])を得る(図4のステップA5)、さらにJをインクリメント(1つ増加)したのちラウンド入力文XをZに更新する(図4のステップA6)。
一方、カウンターJがRと一致する場合、出力部104が、得られた中間文Yを暗号文として出力する(図4のステップA7)。
以上のように、暗号文を生成するには、ラウンド入力文Xの初期値を平文Mとして、Feistel置換部102でラウンド入力文Xから中間文Yを生成し、ブロック置換部103により中間文Yを置換してラウンド出力文Zを得て、ラウンド入力文Xの内容をZに更新する。この処理をRラウンド繰り返して暗号文を得る。なお本実施形態では、最後のRラウンド目のブロック置換部103は、安全性に寄与しないため、省略している。従ってFeistel置換部102は合計R回、ブロック置換部103は合計R−1回、それぞれ処理を実行することになる。
上記図1、図3に示したブロック置換は、分割数が8のときのものであるが、分割数が増えた場合も同様に方法によりグラフを作成し、一意にブロック置換を定めることができる。図5[CdB1]、図6[CdB2]は、それぞれ分割数が16(t=3(k=16に相当))、32(t=4(k=32に相当))である場合における、対称なType2枝彩色を施した2値deBruijnグラフを示す。
また、図5、図6のグラフに対応するブロック置換は、次のとおり、リスト表現することができる。
t=3、分割数k=16のときを示す図5のグラフは、{1,2,7,4,9,10,15,12,3,0,5,6,11,8,13,14}というリスト表現に変換できる。
同様にt=4、分割数k=32のときを示す図6のグラフは、{1,2,7,4,9,10,15,12,17,18,23,20,25,26,31,28,3,0,5,6,11,8,13,14,19,16,21,22,27,24,29,30}というリスト表現に変換できる。
図7[Perm1]は、図5[CdB1]のグラフに対応するブロック置換(分割数16の場合)を表した図である。分割数16の場合、図1のFeistel置換部102およびブロック置換部103がそれぞれ図7[Perm1]に示したものとなる。
以上のようなブロック置換部103を持つ本実施形態では、従来の巡回置換を用いた一般化Feistelネットワークのブロック暗号と比べて、実質的に1ラウンドの計算量は変えないまま、疑似ランダム性と強疑似ランダム性のために必要な最小ラウンド数を少なくすることが可能となる。
これは、枝が青(太線)と赤(細線)に彩色されたグラフでブロック置換を表現した場合の十分距離(sufficient distance,SD)が、巡回置換の場合の十分距離(SD)よりも大幅に小さくなることから導かれる。ここで、十分距離(SD)がNであるとは、ノード間の移動において、最初の2回と最後の移動が青で、かつ赤の枝を連続して用いない、つまり赤の枝で移動した次は必ず青の枝を使う、というルールに従うときに、任意の2ノード間で長さNのパスが存在することをいう。
十分距離(SD)と疑似ランダム性に必要なラウンド数は比例し、具体的には十分距離がNのとき、ラウンド数がN+2で疑似ランダム性が保証される。さらに復号側で用いられる逆置換の十分距離もNの場合は、2N+2で強疑似ランダム性も保証される。
図8に示す巡回置換のグラフ(図Cyclicgphに分割数8の場合の図を示す)では十分距離がノード数の2倍、つまり分割数kに一致するが、本実施形態で用いるブロック置換は、ある程度kを大きくとったとき、2Log kの十分距離を、置換と逆置換の双方で達成している。具体的には、図6に示した2値de BruijnグラフB(4)に基づくk=32のブロック置換は、十分距離8を達成するが、一方k=32の巡回置換では十分距離32となる。これにより、疑似ランダム性と強疑似ランダム性に必要なラウンド数をそれぞれ約65%削減することが可能である。
なお、非特許文献3にも2値de Bruijnグラフを利用する置換が示されているが、同文献に開示されたグラフは偶奇が“常に変わる”置換ではない(同文献のFig.9の例えば一番左のグラフ参照)。また、同文献2には、どのようにすれば対称なtype2枝彩色を施した2値de Bruijnグラフが一般的に得られるかは記載されておらず、8ノードの2値de BruijnグラフB(3)をわずかに変形させて適当な彩色を行い、分割数k=16の置換であるArmenian Shuffleを提案したに過ぎない。
本実施形態からも明らかなとおり、本発明は、非特許文献3と比較してGFNを用いるという本質的な相違を別としても、分割数16以外に対応できる点で汎用的である。本発明によれば、ターゲットとするブロック暗号のブロックサイズ及びラウンド関数の入出力幅を柔軟に設定することができるようになる。
さらに本発明の対称なtype2枝彩色された2値de Bruijnグラフによる置換はArmenian Shuffleと異なり、左右対称であるため、実装の回路規模もしくはプログラムサイズを小さくすることが可能である。
[第2の実施形態]
続いて、ブロック置換にグラフに、第2の発明の実施形態について説明する。本実施形態の構成は、図2に示した第1の実施形態のブロック暗号装置と基本的構成を同一にし、そのブロック置換に変更を加えたものであるので、以下のその相違点を中心に説明する。
図9は、本発明の第2の実施形態の1ラウンド分の構成(分割数16の場合)を示す図[Struc2]である。
本実施形態では、分割数kは8の倍数であり、ここでは、w=2の16とする。
ブロック置換部103は、中間文Y=(y[0],y[1],・・・,y[k−1])をnビットブロック単位で並び替えてラウンド出力文Z=(z[0],z[1],・・・,z[k−1])を得る置換であり、以下で定義されるグラフ(以下、「ステッピングストーングラフ(SS)」と称する。)により定義される。
図10は、本発明の第2の実施形態のブロック置換(分割数16の場合)をステッピングストーングラフ(SS)で表した図[SS1]である(太線が青(第2色)、細線が赤(第1色)に対応する。)。
ステッピングストーングラフ(SS)は、第1の実施形態と同様、ノード数を分割数kの半数、すなわち4wとし、次数2でtype2枝彩色されたグラフである。
各ノード(j=0,1,...,w−1)について、
ノード4jは赤(第1色)の枝をノード4j+1へ、青(第2色)の枝をノード4j+2へ、
ノード4j+1は赤(第1色)の枝をノード4j+2へ、青(第2色)の枝をノード4j+1へ、
ノード4j+2は赤(第1色)の枝をノード4(j+1)へ、青(第2色)の枝をノード4j+3へ、
ノード4j+3は赤(第1色)の枝をノード4j+3へ、青(第2色)の枝をノード4(j+1)へ、
と彩色した矢線を追加することによって作成できる有向グラフである。ただしノード4wはノード0と見なす。
図10[SS1]のグラフによる置換は、図9のブロック置換部103aに対応し、まず、4ブロックごとの巡回置換(巡回の方向は右と左で交互)を行ったのち、kブロック全体の右2ブロック巡回置換を行うことに相当する。
以上のようなブロック置換部103を持つ本実施形態においても、従来の巡回置換を用いた一般化Feistelネットワークのブロック暗号と比べて、実質的に1ラウンドの計算量は変えないまま、疑似ランダム性と強疑似ランダム性のために必要な最小ラウンド数を少なくすることが可能となる。これは、先の述べた十分距離(SD)を約k/4+8とすることができることから導かれる。具体的には、ステッピングストーングラフ(SS)に基づくk=32の置換は、十分距離16を達成するが、一方k=32の巡回置換では十分距離32となる。
また、本実施形態は、図9に示すように、4ブロックごとの1ブロック巡回置換とkブロック全体での2ブロック巡回置換を組み合わせて置換が実現できるため、非常にシンプルな実装とすることができる。
以上、本発明の好適な実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記の実施形態のブロック暗号装置は、同一の構成にて復号装置として動作することができる。
本発明の全開示(請求の範囲及び図面を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
10 ブロック暗号化装置
100 入力部
101 鍵拡大部
102 Feistel置換部
103、103a ブロック置換部
104 出力部

Claims (12)

  1. 入力されたデータを、k個のブロックに分割する入力部と、
    ラウンド毎に生成された暗号鍵を用いて、前記ブロック2つを組としてFeistel置換を施すRラウンド分のFeistel置換部と、
    前記分割数kの半数の2個(但し、t>2)のノードを持つdeBruijnグラフのtビットの系列で表されたノードu=(u,u,・・・,u)からノードv=(v,v,・・・,v)への矢線の色を決定する下記関数
    colorfunc(u,v)=v if u=u
    colorfunc(u,v)=v+1 if u≠uを用いて、偶数ブロックから奇数ブロックへの遷移を第1の色の矢線で、奇数ブロックから偶数ブロックへの遷移を第2の色の矢線で表した、対称なType2枝彩色を施した2値deBruijnグラフに相当するブロック置換を行うブロック置換部と、
    前記置換後のk個のブロックを結合して出力する出力部と、
    を備えるブロック暗号装置。
  2. 前記ブロック置換部は、
    前記Feistel置換部から出力された中間文Y=(y[0],...,y[k−1])を入力とし、
    0〜k−1のブロック番号iがk/2未満で、かつ
    ・i mod 4が0の場合、y[i]=z[2i+1 mod k]
    ・i mod 4が1の場合、y[i]=z[2i mod k]
    ・i mod 4が2の場合、y[i]=z[2i+3 mod k]
    ・i mod 4が3の場合、y[i]=z[2i−2 mod k]
    前記ブロック番号iがk/2以上で、かつ
    ・i mod 4が0の場合、y[i]=z[2i+3 mod k]
    ・i mod 4が1の場合、y[i]=z[2i−2 mod k]
    ・i mod 4が2の場合、y[i]=z[2i+1 mod k]
    ・i mod 4が3の場合、y[i]=z[2i mod k]
    という置換を適用してラウンド出力文Z=(z[0],...,z[k−1])を出力する請求項1のブロック暗号装置。
  3. 前記対称なType2枝彩色を施した2値deBruijnグラフに相当するブロック置換に代えて、
    該中間文Yに対し、4ブロック毎に、右巡回置換と、左巡回置換を交互に行う第1のブロック置換と、
    第1のブロック置換の結果に対してk個のブロック全体の右また左2ブロック巡回置換を行うことでラウンド出力文Z=(z[0],...,z[k−1])を出力する第2のブロック置換とを行う請求項1のブロック暗号装置。
  4. 前記ブロックの分割数kは、8の倍数であり、
    前記対称なType2枝彩色を施した2値deBruijnグラフに相当するブロック置換に代えて、
    前記ブロック置換部は、
    前記分割数kの半数の4w個(但し、w>1)のノードを持つ次数2のグラフの
    各ノード(j=0,1,...,w−1)について、
    ノード4jから、第1の色の矢線をノード4j+1へ、第2の色の矢線をノード4j+2へ、
    ノード4j+1から、第1の色の矢線をノード4j+2へ、第2の色の矢線をノード4j+1へ、
    ノード4j+2から、第1の色の矢線をノード4(j+1)へ、第2の色の矢線をノード4j+3へ、
    ノード4j+3から、第1の色の矢線をノード4j+3へ、第2の色の矢線をノード4(j+1)へ
    それぞれ遷移させる、偶数ブロックから奇数ブロックへの遷移を第1の色の矢線で、奇数ブロックから偶数ブロックへの遷移を第2の色の矢線で表した、対称なType2枝彩色を施した有向グラフ(但し、ノード4wはノード0と見なす。)に相当するブロック置換を行う請求項1のブロック暗号装置。
  5. ブロック暗号装置の入力部が、入力されたデータを、k個のブロックに分割するステップと、
    前記ブロック暗号装置のFeistel置換部が、ラウンド毎に生成された暗号鍵を用いて、前記ブロック2つを組としてFeistel置換を施すRラウンド分のFeistel置換を行って、ブロック置換部に出力するステップと、
    前記ブロック暗号装置のブロック置換部が、前記分割数kの半数の2個(但し、t>2)のノードを持つdeBruijnグラフのtビットの系列で表されたノードu=(u,u,・・・,u)からノードv=(v,v,・・・,v)への矢線の色を決定する下記関数
    colorfunc(u,v)=v if u=u
    colorfunc(u,v)=v+1 if u≠uを用いて、偶数ブロックから奇数ブロックへの遷移を第1の色の矢線で、奇数ブロックから偶数ブロックへの遷移を第2の色の矢線で表した、対称なType2枝彩色を施した2値deBruijnグラフに相当するブロック置換を行うステップと、
    前記ブロック暗号装置の出力部が、前記置換後のk個のブロックを結合して出力するステップと、
    を含むブロック暗号化方法。
  6. 前記ブロックの置換を行うステップは、前記ブロック置換部が、
    前記Feistel置換後の中間文Y=(y[0],...,y[k−1])を入力とし、
    0〜k−1のブロック番号iがk/2未満で、かつ
    ・i mod 4が0の場合、y[i]=z[2i+1 mod k]
    ・i mod 4が1の場合、y[i]=z[2i mod k]
    ・i mod 4が2の場合、y[i]=z[2i+3 mod k]
    ・i mod 4が3の場合、y[i]=z[2i−2 mod k]
    前記ブロック番号iがk/2以上で、かつ
    ・i mod 4が0の場合、y[i]=z[2i+3 mod k]
    ・i mod 4が1の場合、y[i]=z[2i−2 mod k]
    ・i mod 4が2の場合、y[i]=z[2i+1 mod k]
    ・i mod 4が3の場合、y[i]=z[2i mod k]
    という置換を適用してラウンド出力文Z=(z[0],...,z[k−1])を出力する請求項5のブロック暗号化方法。
  7. 前記対称なType2枝彩色を施した2値deBruijnグラフに相当するブロック置換に代えて、
    前記ブロック置換部が、
    該中間文Yに対し、4ブロック毎に、右巡回置換と、左巡回置換を交互に行う第1のブロック置換と、
    第1のブロック置換の結果に対してk個のブロック全体の右また左2ブロック巡回置換を行うことでラウンド出力文Z=(z[0],...,z[k−1])を出力する第2のブロック置換とを行う請求項5のブロック暗号化方法。
  8. 前記ブロック暗号装置の入力部による前記ブロックの分割数kは、8の倍数であり、
    前記対称なType2枝彩色を施した2値deBruijnグラフに相当するブロック置換に代えて、
    前記ブロック置換部が、
    前記分割数kの半数の4w個(但し、w>1)のノードを持つ次数2のグラフの
    各ノード(j=0,1,...,w−1)について、
    ノード4jから、第1の色の矢線をノード4j+1へ、第2の色の矢線をノード4j+2へ、
    ノード4j+1から、第1の色の矢線をノード4j+2へ、第2の色の矢線をノード4j+1へ、
    ノード4j+2から、第1の色の矢線をノード4(j+1)へ、第2の色の矢線をノード4j+3へ、
    ノード4j+3から、第1の色の矢線をノード4j+3へ、第2の色の矢線をノード4(j+1)へ
    それぞれ遷移させる、偶数ブロックから奇数ブロックへの遷移を第1の色の矢線で、奇数ブロックから偶数ブロックへの遷移を第2の色の矢線で表した、対称なType2枝彩色を施した有向グラフ(但し、ノード4wはノード0と見なす。)に相当するブロック置換を行う請求項5のブロック暗号化方法。
  9. 入力されたデータを、k個のブロックに分割する処理と、
    ラウンド毎に生成された暗号鍵を用いて、前記ブロック2つを組としてFeistel置換を施すRラウンド分のFeistel置換を行う処理と、
    前記分割数kの半数の2個(但し、t>2)のノードを持つdeBruijnグラフのtビットの系列で表されたノードu=(u,u,・・・,u)からノードv=(v,v,・・・,v)への矢線の色を決定する下記関数
    colorfunc(u,v)=v if u=u
    colorfunc(u,v)=v+1 if u≠uを用いて、偶数ブロックから奇数ブロックへの遷移を第1の色の矢線で、奇数ブロックから偶数ブロックへの遷移を第2の色の矢線で表した、対称なType2枝彩色を施した2値deBruijnグラフに相当するブロック置換を行う処理と、
    前記置換後のk個のブロックを結合して出力する処理と、
    をコンピュータに実行させ、前記コンピュータを入力部、Feistel置換部、ブロック置換部及び出力部を備えるブロック暗号装置として機能させるプログラム。
  10. 前記コンピュータの前記ブロック置換部としての前記ブロックの置換を行う処理は、
    前記Feistel置換後の中間文Y=(y[0],...,y[k−1])を入力とし、
    0〜k−1のブロック番号iがk/2未満で、かつ
    ・i mod 4が0の場合、y[i]=z[2i+1 mod k]
    ・i mod 4が1の場合、y[i]=z[2i mod k]
    ・i mod 4が2の場合、y[i]=z[2i+3 mod k]
    ・i mod 4が3の場合、y[i]=z[2i−2 mod k]
    前記ブロック番号iがk/2以上で、かつ
    ・i mod 4が0の場合、y[i]=z[2i+3 mod k]
    ・i mod 4が1の場合、y[i]=z[2i−2 mod k]
    ・i mod 4が2の場合、y[i]=z[2i+1 mod k]
    ・i mod 4が3の場合、y[i]=z[2i mod k]
    という置換を適用してラウンド出力文Z=(z[0],...,z[k−1])を出力するものである請求項9のプログラム。
  11. 前記対称なType2枝彩色を施した2値deBruijnグラフに相当するブロック置換に代えて、
    前記コンピュータの前記ブロック置換部として
    該中間文Yに対し、4ブロック毎に、右巡回置換と、左巡回置換を交互に行う第1のブロック置換処理と、
    第1のブロック置換の結果に対してk個のブロック全体の右また左2ブロック巡回置換を行うことでラウンド出力文Z=(z[0],...,z[k−1])を出力する第2のブロック置換処理とを前記コンピュータに実行させる請求項9のプログラム。
  12. 前記コンピュータの入力部としての前記ブロックの分割数kは、8の倍数であり、
    前記対称なType2枝彩色を施した2値deBruijnグラフに相当するブロック置換に代えて、
    前記コンピュータの前記ブロック置換部として
    前記分割数kの半数の4w個(但し、w>1)のノードを持つ次数2のグラフの
    各ノード(j=0,1,...,w−1)について、
    ノード4jから、第1の色の矢線をノード4j+1へ、第2の色の矢線をノード4j+2へ、
    ノード4j+1から、第1の色の矢線をノード4j+2へ、第2の色の矢線をノード4j+1へ、
    ノード4j+2から、第1の色の矢線をノード4(j+1)へ、第2の色の矢線をノード4j+3へ、
    ノード4j+3から、第1の色の矢線をノード4j+3へ、第2の色の矢線をノード4(j+1)へ
    それぞれ遷移させる、偶数ブロックから奇数ブロックへの遷移を第1の色の矢線で、奇数ブロックから偶数ブロックへの遷移を第2の色の矢線で表した、対称なType2枝彩色を施した有向グラフ(但し、ノード4wはノード0と見なす。)に相当するブロック置換を前記コンピュータに実行させる請求項9のプログラム。
JP2011538431A 2009-10-27 2010-10-26 ブロック暗号装置、ブロック暗号化方法およびプログラム Active JP5488608B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011538431A JP5488608B2 (ja) 2009-10-27 2010-10-26 ブロック暗号装置、ブロック暗号化方法およびプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009246307 2009-10-27
JP2009246307 2009-10-27
PCT/JP2010/068965 WO2011052587A1 (ja) 2009-10-27 2010-10-26 ブロック暗号装置、ブロック暗号化方法およびプログラム
JP2011538431A JP5488608B2 (ja) 2009-10-27 2010-10-26 ブロック暗号装置、ブロック暗号化方法およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2011052587A1 JPWO2011052587A1 (ja) 2013-03-21
JP5488608B2 true JP5488608B2 (ja) 2014-05-14

Family

ID=43922012

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011538431A Active JP5488608B2 (ja) 2009-10-27 2010-10-26 ブロック暗号装置、ブロック暗号化方法およびプログラム

Country Status (4)

Country Link
US (1) US8891758B2 (ja)
JP (1) JP5488608B2 (ja)
CN (1) CN102598574B (ja)
WO (1) WO2011052587A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012141189A1 (ja) * 2011-04-11 2012-10-18 日本電気株式会社 暗号化方法、暗号化装置および暗号化プログラム

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4168396A (en) * 1977-10-31 1979-09-18 Best Robert M Microprocessor for executing enciphered programs
US4275265A (en) * 1978-10-02 1981-06-23 Wisconsin Alumni Research Foundation Complete substitution permutation enciphering and deciphering circuit
JPH06118872A (ja) * 1992-10-09 1994-04-28 Matsushita Electric Ind Co Ltd データ撹乱装置
JPH06342258A (ja) * 1993-06-02 1994-12-13 Matsushita Electric Ind Co Ltd ブロック暗号作成装置
WO1999009705A2 (en) * 1997-08-13 1999-02-25 Koninklijke Philips Electronics N.V. Method and system for a two-step dialing connection process providing an identification of a second terminal via the internet
JPH1152850A (ja) * 1997-08-07 1999-02-26 Hitachi Ltd 暗号変換方法および装置
JPH11105853A (ja) * 1997-10-02 1999-04-20 Chuo Kogyo:Kk 組立式パッケージと容器
JPH11242433A (ja) * 1995-09-05 1999-09-07 Mitsubishi Electric Corp デ―タ変換装置及びデ―タ変換方法
JP2000214769A (ja) * 1999-01-25 2000-08-04 Nippon Telegr & Teleph Corp <Ntt> デ―タ置換・分割方法および装置とデ―タ置換・分割プログラムを記録した記録媒体
US20060236102A1 (en) * 2003-09-05 2006-10-19 Jovan Golic Secret-key-controlled reversible circuit and corresponding method of data processing
WO2008026623A1 (fr) * 2006-09-01 2008-03-06 Sony Corporation Dispositif de codage, procédé de codage et programme informatique
WO2008026621A1 (fr) * 2006-09-01 2008-03-06 Sony Corporation Dispositif de codage, procédé de codage et programme informatique
WO2008087972A1 (ja) * 2007-01-16 2008-07-24 Sumitomo Bakelite Co., Ltd. 絶縁樹脂シート積層体、該絶縁樹脂シート積層体を積層してなる多層プリント配線板
WO2009034929A1 (ja) * 2007-09-12 2009-03-19 Nec Corporation 暗号化方法、暗号装置及び暗号処理プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6201869B1 (en) 1995-09-05 2001-03-13 Mitsubishi Denki Kabushiki Kaisha Data transformation apparatus and data transformation method
US6578061B1 (en) 1999-01-19 2003-06-10 Nippon Telegraph And Telephone Corporation Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon
WO2009087972A1 (ja) * 2008-01-09 2009-07-16 Nec Corporation データ送信装置、データ受信装置、これらの方法、記録媒体、そのデータ通信システム

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4168396A (en) * 1977-10-31 1979-09-18 Best Robert M Microprocessor for executing enciphered programs
US4275265A (en) * 1978-10-02 1981-06-23 Wisconsin Alumni Research Foundation Complete substitution permutation enciphering and deciphering circuit
JPH06118872A (ja) * 1992-10-09 1994-04-28 Matsushita Electric Ind Co Ltd データ撹乱装置
JPH06342258A (ja) * 1993-06-02 1994-12-13 Matsushita Electric Ind Co Ltd ブロック暗号作成装置
JPH11242433A (ja) * 1995-09-05 1999-09-07 Mitsubishi Electric Corp デ―タ変換装置及びデ―タ変換方法
JPH1152850A (ja) * 1997-08-07 1999-02-26 Hitachi Ltd 暗号変換方法および装置
WO1999009705A2 (en) * 1997-08-13 1999-02-25 Koninklijke Philips Electronics N.V. Method and system for a two-step dialing connection process providing an identification of a second terminal via the internet
JPH11105853A (ja) * 1997-10-02 1999-04-20 Chuo Kogyo:Kk 組立式パッケージと容器
JP2000214769A (ja) * 1999-01-25 2000-08-04 Nippon Telegr & Teleph Corp <Ntt> デ―タ置換・分割方法および装置とデ―タ置換・分割プログラムを記録した記録媒体
US20060236102A1 (en) * 2003-09-05 2006-10-19 Jovan Golic Secret-key-controlled reversible circuit and corresponding method of data processing
WO2008026623A1 (fr) * 2006-09-01 2008-03-06 Sony Corporation Dispositif de codage, procédé de codage et programme informatique
WO2008026621A1 (fr) * 2006-09-01 2008-03-06 Sony Corporation Dispositif de codage, procédé de codage et programme informatique
WO2008087972A1 (ja) * 2007-01-16 2008-07-24 Sumitomo Bakelite Co., Ltd. 絶縁樹脂シート積層体、該絶縁樹脂シート積層体を積層してなる多層プリント配線板
WO2009034929A1 (ja) * 2007-09-12 2009-03-19 Nec Corporation 暗号化方法、暗号装置及び暗号処理プログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JPN6010066396; Tomoyasu Suzaki, Kazuhiko Minematsu: 'Improving the Generalized Feistel' Lecture Notes in Computer Science(LNCS) 6147 Volume 6147, 201002, p.19-39, Springer *
JPN6013052763; 大和田 徹 他: 'Lesamntaのハードウェア実装及び評価' 2009年 暗号と情報セキュリティシンポジウム (SCIS2009) 予稿集CR-ROM , 20090120, 2C2-3, 2009年 暗号と情報セキュリティシンポジウム事務局 *
JPN6013052764; Tomoyasu Suzaki et al: 'Improving the Generalized Feistel' [online] , 20100208 *

Also Published As

Publication number Publication date
WO2011052587A1 (ja) 2011-05-05
US8891758B2 (en) 2014-11-18
US20120269342A1 (en) 2012-10-25
CN102598574A (zh) 2012-07-18
CN102598574B (zh) 2014-12-17
JPWO2011052587A1 (ja) 2013-03-21

Similar Documents

Publication Publication Date Title
JP5055993B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4905000B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4967544B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4882598B2 (ja) 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
JP5229315B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
JP5402632B2 (ja) 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラム
KR101770874B1 (ko) 암호 처리 장치, 암호 처리 방법, 컴퓨터로 판독가능한 기록 매체, 및 정보 처리 장치
JP5364840B2 (ja) 暗号化装置
JP2009175167A (ja) データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
CN107438065A (zh) 数据加密装置及方法、数据解密装置及方法
JPWO2012105352A1 (ja) ブロック暗号化装置、復号装置、暗号化方法、復号方法およびプログラム
JP6052166B2 (ja) 暗号化方法、暗号化装置および暗号化プログラム
JP5528281B2 (ja) ハッシュ値演算装置
JP5680016B2 (ja) 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム
JP2010044251A (ja) ハッシュ値生成装置、プログラム及びハッシュ値生成方法
JP5488608B2 (ja) ブロック暗号装置、ブロック暗号化方法およびプログラム
JP5268001B2 (ja) ストリーム暗号向け擬似乱数生成装置とプログラムと方法
JP6089668B2 (ja) 暗号化処理回路及び復号処理回路とその方法並びにそのプログラム
JP5354914B2 (ja) 暗号処理装置及び復号処理装置及びプログラム
Islam et al. Data encryption standard
Deb et al. Study of NLFSR and reasonable security improvement on trivium cipher
JP5772934B2 (ja) データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP5500277B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
JP5223245B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2010134247A (ja) 共通鍵ブロック暗号評価装置、共通鍵ブロック暗号評価方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131029

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140106

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140210

R150 Certificate of patent or registration of utility model

Ref document number: 5488608

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150