JP2003345244A - データ変換装置及びデータ変換方法及びデータ変換プログラム及びデータ変換プログラムを記録したコンピュータ読み取り可能な記録媒体 - Google Patents
データ変換装置及びデータ変換方法及びデータ変換プログラム及びデータ変換プログラムを記録したコンピュータ読み取り可能な記録媒体Info
- Publication number
- JP2003345244A JP2003345244A JP2002148786A JP2002148786A JP2003345244A JP 2003345244 A JP2003345244 A JP 2003345244A JP 2002148786 A JP2002148786 A JP 2002148786A JP 2002148786 A JP2002148786 A JP 2002148786A JP 2003345244 A JP2003345244 A JP 2003345244A
- Authority
- JP
- Japan
- Prior art keywords
- key
- data
- input
- conversion unit
- selector
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Document Processing Apparatus (AREA)
- Holo Graphy (AREA)
Abstract
装置中に存在する副変換部330は、データ変換機能と
ともにデータ転送機能または鍵転送機能を有し、データ
変換機能とデータまたは鍵転送機能とを切り換えて、デ
ータの変換とともに主変換部320で非線形変換された
データの転送、または、鍵KLレジスタ240から出力
された鍵の転送を行う。
Description
たはデータの復号を行うデータ変換装置及びその方法に
関するものである。
は、関連するデータ変換装置の構成及び動作図である。
図56に示すように、ブロック暗号処理を行うデータ変
換装置は、鍵生成部20とデータ攪拌部30とから構成
される。鍵生成部20は、データの暗号化/復号を行う
ための鍵を生成する鍵生成部である。データ攪拌部30
は、入力されたデータを暗号化または復号する部であ
る。鍵生成部20は、中間鍵生成部40と鍵スケジュー
ル部210とから構成される。中間鍵生成部40は、秘
密鍵を入力し、入力した秘密鍵から中間鍵(鍵KL)と
出力鍵(鍵KA)とを生成する部である。鍵スケジュー
ル部210は、中間鍵生成部40によって生成された中
間鍵(鍵KL)と出力鍵(鍵KA)とを入力し(鍵KL
L、鍵KLH、鍵KAL、鍵KAH)、入力した各々の
鍵からデータ攪拌部30へ供給すべき鍵をスケジュール
する。このように、鍵生成部20では、中間鍵生成部4
0と鍵スケジュール部210とにより鍵の生成と鍵のス
ケジュールを行っている。データ攪拌部30では、P
(平文)を入力した場合には、データを暗号化するデー
タ変換を行い、変換されたデータをC(暗号文)として
出力する。また、データ攪拌部30は、P(暗号文)を
入力した場合には、データ復号するデータ変換を行い、
変換されたデータをC(復号文)として出力する。この
ように、データ攪拌部30は、データの暗号化処理と復
号処理とを行う。データ攪拌部30では、主変換部32
0と副変換部330とが、シリアルに接続されている。
主変換部320は、データの非線形変換を行う部であ
る。即ち、主変換部320は、データの非線形変換を行
うF関数を1段又は複数段有するか、又は、F関数の一
部を有し、F関数又はF関数の一部を用いてデータの非
線形変換を行う。図57では、主変換部320は、F関
数を1段以上有している。副変換部330は、データの
線形による変換を行うデータ正変換部(FL)とデータ
正変換部(FL)とは逆の変換を行うデータ逆変換部
(FL-1)との少なくともいずれかを有し、データ正変
換部(FL)又はデータ逆変換部(FL-1)を用いて入
力されたデータを入力された鍵によって線形変換する部
である。セレクタ310は、主変換部320と副変換部
330とP(平文又は暗号文)と鍵とを入力信号として
入力信号から一つの信号を選択する選択器である。図5
6に示すセレクタ310は、4つの入力信号から1つの
出力信号を選択するセレクタを2つの入力信号から1つ
の出力信号を出力する2−1セレクタ換算で3個持って
いる。演算レジスタ350は、主変換部320及び副変
換部330及びC(暗号文又は復号文)として出力する
データを所定期間保持するメモリである。このように、
データ攪拌部30では、入力データであるP(平文又は
暗号文)を主変換部320によって非線形変換し、副変
換部330によって線形変換することを複数回交互に繰
り返すことによりデータの暗号化/復号処理し、C(暗
号文又は復号文)として出力する。
る。図57は、主変換部320の内部構成の一例であ
る。図57では、主変換部320は、6個のF関数部か
ら構成されている。ここでは、F関数部が一段のF関数
処理を行う回路から構成されていると仮定すると、図5
7に示す主変換部320では6段のF関数による非線形
データ変換処理を行うこととなる。6段のF関数処理回
路について、主変換部320は、6個のF関数処理回路
を持っていてもよいし、1つのF関数処理回路を持ち、
6回F関数による処理を繰り返すことによって、6段の
F関数によるデータ処理を行ってもよい。主変換部32
0では、まず、入力データのうち分割された上位データ
がF関数部321aに入力される。また、鍵スケジュー
ル部210によってスケジュールされた鍵1も入力され
る。F関数部321aでは、前述したとおり、鍵を用い
て上位入力データを非線形変換する。EXOR回路32
2aでは、非線形変換されたデータと下位入力データと
の排他的論理和がとられる。EXOR回路322aから
出力されたデータは、F関数部321bの入力データと
なる。F関数部321bは、F関数部321aと同様
に、非線形変換処理を行い、EXOR回路322bによ
って変換されたデータと上位入力データとの排他的論理
和がとられる。EXOR回路322bから出力されたデ
ータは、F関数部321cの入力データとなる。このよ
うに、F関数部321a、EXOR回路322aによる
処理と同様の処理が、F関数部321bとEXOR回路
322b、F関数部321cとEXOR回路322c、
F関数部321dとEXOR回路322d、F関数部3
21eとEXOR回路322e、F関数部321fとE
XOR回路322fにより行われる。このようにして、
F関数部によるデータの非線形変換を6段(又は6回繰
り返し)行った後、変換されたデータを出力する。
分割されたデータのいずれか一方を入力し、入力したデ
ータを非線形によりデータ変換し、データ変換した上位
データと下位データのいずれか一方を出力し、出力した
上位データと下位データのいずれか一方と上位データと
下位データのいずれか他方とを排他的論理和演算し、排
他的論理和演算したデータと、上記F関数部に入力され
なかった上位データと下位データとのいずれか他方とを
入れ替えて出力することにより上位データと下位データ
とを入れ替えて出力することを特徴とする非線形変換処
理構造をFEISTEL構造と呼ぶ。データをランダム
化する代表的な構造としては、上記FEISTEL構造
とSPN(Substitution Permuta
tion Network)構造とが存在する。SPN
構造をもつ主変換部320は、並列処理に優れていると
いわれている。一方、FEISTEL構造をもつ主変換
部320は、ハードウエアの規模を小型化することに優
れているといわれている。なお、SPN構造は、FEI
STEL構造のように、入力データを分割することはせ
ず、S層(非線形層)とP層(線形層)で構成されるF
関数を繰り返す構造を持つ。
る。図58は、副変換部330を構成する回路を示す図
である。図58の副変換部330は、データ正変換部5
0とデータ逆変換部70とを有している。データ正変換
部50では、AND回路54によって入力された64ビ
ットデータのうち上位32ビットデータと鍵1との論理
積がとられ、1ビット左に巡回シフトされ、EXOR回
路55によって入力データの下位32ビットとの排他的
論理和がとられ、その結果が下位32ビットの出力信号
として出力されるとともに、OR回路57に入力され
る。OR回路57では鍵2との論理和がとられ、EXO
R回路56によって入力データの上位32ビットデータ
との排他的論理和がとられ、その結果が上位32ビット
の出力信号として出力される。このようにして、64ビ
ットの入力データが線形変換され、64ビットの出力信
号として出力される。データ逆変換部70では、OR回
路74によって入力された64ビットデータのうち下位
32ビットデータと鍵3との論理和がとられ、EXOR
回路75によって入力データの上位32ビットとの排他
的論理和がとられ、その結果が上位32ビットの出力信
号として出力されるとともに、AND回路77に入力さ
れる。AND回路77では鍵4との論理積がとられ、1
ビット左に巡回シフトされ、EXOR回路76によって
入力データの下位32ビットデータとの排他的論理和が
とられ、その結果が下位32ビットの出力信号として出
力される。このようにして、64ビットの入力データが
データ正変換部50とデータ逆変換部70とにより線形
変換され、64ビットの出力信号として出力される。な
お、鍵1〜鍵4は鍵スケジュール部210から供給され
る。
て、データ正変換部50とデータ逆変換部70とを共用
した回路を示す図である。図59では、データ正変換部
50とデータ逆変換部70とを切り換える切換信号を入
力することにより、データ正変換部50とデータ逆変換
部70とが切り換わる。即ち、図59に示す共用回路で
は、切換信号を入力することにより2−1セレクタ99
aが入力信号Aと入力信号Eとを切り換え、2−1セレ
クタ99bが入力信号Cと入力信号Fとを切り換える。
まず、共用回路がデータ正変換部50として動作する場
合を説明する。2−1セレクタ99aが入力信号Eと入
力信号Aとから入力信号Aを選択し、出力信号Bとして
出力し、AND回路101によって鍵1との論理積をと
り、1ビット左に巡回シフトした後、EXOR回路91
によって入力データの下位32ビットとの排他的論理和
がとられ、下位32ビットの出力信号として出力される
とともに、入力信号Cとして2−1セレクタ99bに入
力される。2−1セレクタ99bでは、入力信号Cと入
力信号Fとから入力信号Cを選択し、出力信号Dとして
出力する。OR回路92では、出力信号Dと鍵2との論
理和がとられ、EXOR回路93によって入力データの
上位32ビットデータとの排他的論理和がとられ、上位
32ビットの出力信号として出力される。
て動作する場合を説明する。2−1セレクタ99bでは
入力信号Cと入力信号Fとから入力信号Fを選択し、出
力信号Dとして出力し、OR回路92によって鍵2との
論理和がとられ、EXOR回路93によって入力データ
の上位32ビットとの排他的論理和がとられ、上位32
ビットの出力信号として出力されるとともに、入力信号
Eとして2−1セレクタ99aに入力される。2−1セ
レクタ99aでは、入力信号Aと入力信号Eとから入力
信号Eを選択し、出力信号Bとして出力する。AND回
路101では、出力信号Bと鍵1との論理和がとられ、
1ビット左に巡回シフトした後、EXOR回路91によ
って入力データの下位32ビットとの排他的論理和がと
られ、下位32ビットの出力信号として出力される。
対し、主変換部320が1段未満のF関数を処理する1
/2x (x≧1)F関数を有している場合のデータ変換
装置を示す図である。主変換部320は、例えば、1/
2F関数を有している場合、主変換部320から副変換
部330とセレクタ310と演算レジスタ350とを経
て主変換部320に至るパスによって2サイクルの処理
を行うことにより、データをF関数によって非線形変換
する処理が1回可能となる。このような処理を行うため
に、図60に示すデータ変換装置では、図56に示すデ
ータ変換装置と比較し、演算レジスタ350からセレク
タ310へのパスが付加されている。
のパスを利用した主変換部320の動作について説明す
る。図61は、主変換部320の内部構成について説明
する。図61に示すように、主変換部320は1段未満
のF関数を処理する一例として1/2のF関数処理を行
う12段のF関数部(1/2F関数)から構成されてい
る。図61の主変換部320では、図57の主変換部3
20のF関数部321aとEXOR回路322aとを用
いたデータ変換をF関数部1321aとF関数部132
1bとEXOR回路1322aとEXOR回路1322
bとを用いて行う。図61の主変換部320では、ま
ず、1段目の処理を説明する。上位入力データのうち分
割された上位データは、F関数部1321aに入力され
る。また、鍵スケジュール部210によってスケジュー
ルされた鍵1の上位ビットからなる鍵1Hも入力され
る。F関数部1321aは、鍵1Hを用いた上記上位デ
ータの非線形変換を行う。変換されたデータは、EXO
R回路1322aに入力され、下位入力データのうち分
割された上位データとの排他的論理和がとられる。EX
OR回路1322aから出力されたデータは、EXOR
回路1322bでのデータ処理がなされるまで、演算レ
ジスタ350に中間データとして保持しておく。次に、
2段目の処理を説明する。上位入力データのうち分割さ
れた下位データがF関数部1321bに入力される。ま
た、鍵スケジュール部210によってスケジュールされ
た鍵1の下位ビットからなる鍵1Lも入力される。F関
数部1321bは、鍵1Lを用いた上記下位データの非
線形変換を行う。変換されたデータは、EXOR回路1
322bに入力される。ここで、先程演算レジスタ35
0に保持したEXOR回路1322aからの出力データ
である中間データをEXOR回路1322bに入力する
必要が生じる。そこで、演算レジスタ350からセレク
タ310へのパスが必要になる。即ち、演算レジスタ3
50からセレクタ310へのパスを用いることによって
演算レジスタ350に保持された中間データをセレクタ
310に入力することが可能となる。セレクタ310
は、入力された中間データを選択する。中間データは、
演算レジスタ350を経て主変換部320に入力され、
EXOR回路1322bによって、F関数部1321b
の出力データとの排他的論理和がとられる。EXOR回
路1322bから出力されたデータは、F関数部132
1cの入力データとなる。このように、F関数部132
1a、EXOR回路1322a、F関数部1321b、
EXOR回路1322bによる処理と同様の処理が、F
関数部1321c、EXOR回路1322c、F関数部
1321d、EXOR回路1322dによる処理、F関
数部1321e、EXOR回路1322e、F関数部1
321f、EXOR回路1322fによる処理、F関数
部1321g、EXOR回路1322g、F関数部13
21h、EXOR回路1322hによる処理、F関数部
1321i、EXOR回路1322i、F関数部132
1j、EXOR回路1322jによる処理、F関数部1
321k、EXOR回路1322k、F関数部1321
l、EXOR回路1322lによる処理として行われ
る。このようにして、F関数部によるデータの非線形変
換を12段(又は12回繰り返し)行った後、変換され
たデータを出力する。
60に示すデータ変換装置では、鍵生成部20がデータ
の暗号化/復号に使用する鍵を生成するために主変換部
320の一部と副変換部330の一部を使用する。鍵生
成に主変換部320の一部と副変換部330の一部を使
用するのは、データ変換装置全体の小型化を図るためで
ある。この鍵生成動作の詳細は後述するが、このように
主変換部320の一部と副変換部330の一部を使って
鍵を生成するために、図56に示すように鍵KLレジス
タ240から出力した中間鍵(鍵KL)をセレクタ31
0に入力させるパスが必要となる。従って、鍵KLレジ
スタ240からセレクタ310へのパスが増えることに
より、データ変換装置の小型化が阻害されていた。ま
た、鍵KLレジスタ240からセレクタ310へのパス
を用いたセレクタ310への入力信号数が増え、セレク
タ310を構成するセレクタ数を増加させる要因となっ
ていた。このため、その点においてもデータ変換装置の
小型化を阻害していた。
数による1回のデータ変換を行う場合には、一定期間保
持した中間データを主変換部320に入力する必要があ
る。従って、中間データを演算レジスタ350からセレ
クタ310へ送るパスが増えることによりデータ変換装
置の小型化が阻害されていた。また、演算レジスタ35
0からセレクタ310へのパスを用いたセレクタ310
への入力信号数が増えるため、セレクタ310を構成す
るセレクタ数を増加させる要因となっていた。従って、
その点においてもデータ変換装置の小型化を阻害してい
た。
装置のデータ攪拌部30では、主変換部320と副変換
部330とがシリアルに接続されていた。従って、主変
換部320から副変換部330を経た後にセレクタ31
0を経て演算レジスタ350を通り主変換部320へ戻
るパスによって、動作周波数が一義的に決定され、動作
周波数の向上を阻害していた。そのため、データ攪拌部
30中でのデータ処理のための最大パスを短くすること
により動作周波数を上げ、処理スピードを飛躍的に向上
させることが望まれていた。また、主変換部320を通
過せずにセレクタ310及び演算レジスタ350から出
力したデータを副変換部330に入力させるパスが存在
しないため、データ変換装置の内部構成変更に柔軟に対
応できず、全体が行える動作に柔軟さが欠如する結果と
なっていた。また、上述したように複数サイクルでF関
数による1回のデータ変換を行う場合には、1サイクル
で変換対象となるデータは、入力データの一部である
(1/2F関数では、入力データの1/2)。このた
め、入力データの一部の変換データを演算レジスタ35
0に保持し、一定期間後に副変換部330に送るための
パスをデータ攪拌部30中に設けるか、または、一定期
間後に主変換部320を転送して副変換部330に送る
ための転送パスを主変換部320中に設ける必要があっ
た。さらに、図59に示すデータ正変換部50とデータ
逆変換部70との共用回路を用いた場合には、A→B→
C→D→E→B→C・・・のパスがループ回路に相当す
る。このため、実際の回路にするときに、切換信号の伝
搬遅延の差による信号のレーシング、ノイズなどの影響
により、発信回路にならないような工夫が必要となる。
また、このような上記ループ回路(FEEDBACK−
LOOP回路)を持った回路には、論理合成ツールが対
応できず、効率よく論理合成が行われない、という問題
が生じていた。
とする。
波数の向上を目的とする。
換装置は、鍵とデータとを入力し、入力した鍵を使用し
て入力したデータの暗号化とデータの復号の少なくとも
いずれかのデータ変換を行うデータ変換装置であって、
上記データ変換装置は、データを変換するデータ攪拌部
と入力した鍵と入力したデータとのいずれかを転送する
ことを指示している転送信号を制御する制御部を備え、
上記制御部は、鍵とデータとのいずれかを転送する場合
に、転送信号を出力し、上記データ攪拌部は、入力した
鍵を使用してデータを変換することにより少なくともデ
ータの暗号化とデータの復号のいずれかのデータ変換を
行うとともに、上記制御部によって出力された転送信号
を入力した場合には入力した鍵と入力したデータの少な
くともいずれかをデータ変換せずに転送する副変換部を
備えることを特徴とする。
力し、入力したデータを非線形にデータ変換する主変換
部を備え、上記制御部は、データを転送する場合には転
送信号としてデータ転送信号を出力し、上記副変換部
は、上記制御部によって出力されたデータ転送信号と上
記主変換部によってデータ変換されたデータとを入力
し、入力したデータ転送信号に従って入力したデータを
転送することを特徴とする。
する鍵生成部を備え、上記制御部は、鍵を転送する場合
には転送信号として鍵転送信号を出力し、上記副変換部
は、上記制御部によって出力された鍵転送信号と上記鍵
生成部によって生成された鍵とを入力し、入力した鍵転
送信号に従って入力した鍵を転送することを特徴とす
る。
し、入力した秘密鍵から中間鍵を生成する中間鍵生成部
を備え、上記副変換部は、上記制御部によって出力され
た鍵転送信号を入力した場合には、入力した鍵転送信号
に従って上記中間鍵生成部が生成した中間鍵を上記主変
換部に転送し、上記主変換部は、上記副変換部によって
転送された中間鍵を変換して出力することを1以上繰り
返し、上記副変換部は、上記主変換部によって出力され
た中間鍵を変換して出力することを1以上繰り返し、上
記主変換部と上記副変換部との少なくともいずれかは、
上記中間鍵を変換して出力することを1以上繰り返し、
上記主変換部は、上記主変換部と上記副変換部との少な
くともいずれかによって出力された中間鍵を出力鍵とし
て出力し、上記中間鍵生成部は、上記主変換部によって
出力された出力鍵を入力することにより、中間鍵と出力
鍵とからなる拡大鍵を生成することを特徴とする。
から1つの鍵を選択する6−1KLセレクタと6−1K
Lセレクタから選択された1つの鍵を中間鍵として保持
する鍵KLレジスタとを有し、上記6−1KLセレクタ
は、秘密鍵を入力し、入力された秘密鍵と、上記鍵KL
レジスタによって保持された中間鍵と、上記鍵KLレジ
スタによって保持された中間鍵から4つの異なるシフト
数で各々巡回ビットシフトさせた4つの鍵からなる6つ
の鍵を入力し、入力した6つの鍵から1つの鍵を選択
し、上記鍵KLレジスタは、上記6−1KLセレクタに
よって選択された鍵を保持し、上記副変換部は、上記制
御部から出力された鍵転送信号を入力した場合には上記
鍵KLレジスタに保持された鍵を中間鍵として入力し、
入力した中間鍵を転送することを特徴とする。
から1つの鍵を選択する4−1セレクタと入力された3
つの鍵から1つの鍵を選択する3−1KLセレクタと3
−1KLセレクタから選択された1つの鍵を中間鍵とし
て保持する鍵KLレジスタとを有し、上記4−1セレク
タは、上記鍵KLレジスタによって保持された中間鍵か
ら4つの異なるシフト数で各々巡回ビットシフトさせた
4つの鍵を入力し、入力した4つの鍵から1つの鍵を選
択し、上記3−1KLセレクタは、秘密鍵を入力し、入
力した秘密鍵と上記4−1セレクタによって選択された
1つの鍵と上記鍵KLレジスタに保持された中間鍵とか
らなる3つの鍵を入力し、入力した3つの鍵から1つの
鍵を選択し、上記鍵KLレジスタは、上記3−1KLセ
レクタによって選択された鍵を保持し、上記副変換部
は、上記制御部から出力された鍵転送信号を入力した場
合には、上記鍵KLレジスタに保持された鍵を中間鍵と
して入力し、入力した中間鍵を転送することを特徴とす
る。
部によって生成された拡大鍵と所定の定数とを入力し、
所定の条件に従って入力した拡大鍵と所定の定数とのい
ずれかを上記主変換部と上記副変換部の少なくともいず
れかへ出力する鍵をスケジュールする鍵スケジュール部
を備えることを特徴とする。
タ変換を行うデータ正変換部(FL)と上記データ正変
換部(FL)と逆のデータ変換を行うデータ逆変換部
(FL -1)との少なくともいずれかを有し、上記データ
正変換部(FL)と上記データ逆変換部(FL-1)との
少なくともいずれかは、データ変換を行うとともに、上
記制御部が転送信号を出力した場合には、上記制御部が
出力した転送信号を入力し、入力した転送信号にしたが
ってデータと鍵との少なくともいずれかをデータ変換せ
ずに転送することを特徴とする。
送信号として鍵転送信号である鍵トランスファ信号とマ
スク信号とを出力し、上記データ正変換部(FL)と上
記データ逆変換部(FL-1)との少なくともいずれか
は、上記制御部によって出力された鍵トランスファ信号
とマスク信号とを入力した場合には、入力した鍵トラン
スファ信号によって入力されたデータを無効とするとと
もに、入力されたマスク信号によって入力された鍵を通
過させることで鍵を転送することを特徴とする。
る転送信号としてデータ転送信号であるデータトランス
ファ信号を出力し、上記データ正変換部(FL)と上記
データ逆変換部(FL-1)との少なくともいずれかは、
上記制御部によって出力されたデータトランスファ信号
を入力した場合には、入力したデータトランスファ信号
によって入力された鍵を無効とするとともに、入力され
たデータを通過させることでデータを転送することを特
徴とする。
タ変換を行うデータ正変換と上記データ正変換とは逆の
データ変換を行うデータ逆変換とを同一の回路を共用し
て行う1/2副変換部を有し、1/2副変換部によって
データをデータ変換するとともに、上記制御部が転送信
号を出力した場合には、上記制御部が出力した転送信号
を入力し、入力した転送信号にしたがって鍵とデータの
少なくともいずれかを転送することを特徴とする。
タ変換を行うデータ正変換部(FL)と上記データ正変
換部(FL)と逆のデータ変換を行うデータ逆変換部
(FL -1)とを有し、上記データ正変換部(FL)と上
記データ逆変換部(FL-1)とを直列に配置し、上記デ
ータ正変換部(FL)と上記データ逆変換部(FL-1)
とのいずれか一方は、上記データ正変換部(FL)と上
記データ逆変換部(FL-1)とのいずれか他方によって
データ変換されたデータか、転送された鍵か、転送され
たデータか、のいずれかを入力し、入力したデータ変換
されたデータか、転送された鍵か、転送されたデータ
か、のいずれかを使用してデータ変換か鍵の転送かデー
タの転送のいずれかを行うことを特徴とする。
92ビットか256ビットのいずれかの鍵を入力し、入
力した鍵を使用して入力したデータをデータ変換するこ
とを特徴とする。
ータとを入力し、入力した鍵を使用して少なくとも入力
したデータの暗号化とデータの復号のいずれかのデータ
変換を行うデータ変換方法であって、上記データ変換方
法は、鍵とデータとのいずれかを転送する場合に、入力
した鍵と入力したデータとのいずれかを転送することを
指示している転送信号を出力し、入力した鍵を使用して
データを変換することにより少なくともデータの暗号化
とデータの復号のいずれかのデータ変換を行うととも
に、上記出力された転送信号を入力した場合には入力し
た鍵と入力したデータの少なくともいずれかをデータ変
換せずに転送することを特徴とする。
鍵とデータとを入力し、入力した鍵を使用して入力した
データの暗号化とデータの復号の少なくともいずれかの
データ変換を行うデータ変換プログラムであって、上記
データ変換プログラムは、鍵とデータとのいずれかを転
送する場合に、入力した鍵と入力したデータとのいずれ
かを転送することを指示している転送信号を出力する処
理と、入力した鍵を使用してデータを変換することによ
り少なくともデータの暗号化とデータの復号のいずれか
のデータ変換を行うとともに、上記出力された転送信号
を入力した場合には入力した鍵と入力したデータの少な
くともいずれかをデータ変換せずに転送する処理とをコ
ンピュータに実行させることを特徴とする。
録したコンピュータ読み取り可能な記録媒体は、鍵とデ
ータとを入力し、入力した鍵を使用して入力したデータ
の暗号化とデータの復号の少なくともいずれかのデータ
変換を行うデータ変換プログラムを記録したコンピュー
タ読み取り可能な記録媒体であって、上記データ変換プ
ログラムを記録したコンピュータ読み取り可能な記録媒
体は、鍵とデータとのいずれかを転送する場合に、入力
した鍵と入力したデータとのいずれかを転送することを
指示している転送信号を出力する処理と、入力した鍵を
使用してデータを変換することにより少なくともデータ
の暗号化とデータの復号のいずれかのデータ変換を行う
とともに、上記出力された転送信号を入力した場合には
入力した鍵と入力したデータの少なくともいずれかをデ
ータ変換せずに転送する処理をコンピュータに実行させ
るためのデータ変換プログラムを記録したコンピュータ
読み取り可能な記録媒体であることを特徴とする。
する鍵生成部を備え、上記鍵生成部は、さらに、秘密鍵
を入力し、入力した秘密鍵から中間鍵を生成し、生成し
た中間鍵から上記主変換部と上記副変換部とを用いて出
力鍵を生成する中間鍵生成部を備えることを特徴とする
請求項1に記載されたデータ変換装置。
入力した6つの鍵から1つの鍵を選択する6−1KLセ
レクタと、前記6−1KLセレクタから選択された1つ
の鍵を中間鍵として保持する鍵KLレジスタと、6つの
鍵から1つの鍵を選択する6−1KAセレクタと、6−
1KAセレクタから選択された1つの鍵を出力鍵として
保持する鍵KAレジスタと、を有し、上記6−1KLセ
レクタは、秘密鍵を入力し、入力された秘密鍵と、上記
鍵KLレジスタに保持された中間鍵と、上記鍵KLレジ
スタに保持された中間鍵とから4つの異なるシフト数で
各々巡回ビットシフトさせた4つの鍵とからなる6つの
鍵を入力し、入力した6つの鍵から1つの鍵を選択し、
上記鍵KLレジスタは、上記6−1KLセレクタによっ
て選択された鍵を中間鍵として保持し、上記6−1KA
セレクタは、上記主変換部と上記副変換部とを用いて生
成された出力鍵を入力し、入力した出力鍵と、上記鍵K
Aレジスタに保持された出力鍵と、上記鍵KAレジスタ
に保持された出力鍵から4つの異なるシフト数で各々巡
回ビットシフトさせた4つの鍵と、からなる6つの鍵を
入力し、入力した6つの鍵から1つの鍵を選択し、上記
鍵KAレジスタは、上記6−1KAセレクタによって選
択された鍵を出力鍵として保持することを特徴とする。
鍵を選択する2−1セレクタと、4つの鍵から1つの鍵
を選択する4−1セレクタと、3つの鍵から1つの鍵を
選択する3−1KLセレクタと、3−1KLセレクタか
ら選択された鍵を中間鍵として保持する鍵KLレジスタ
と、3つの鍵から1つの鍵を選択する3−1KAセレク
タと、3−1KAセレクタから選択された鍵を出力鍵と
して保持する鍵KAレジスタとを有し、上記2−1セレ
クタは、上記鍵KLレジスタに保持された中間鍵と、上
記鍵KAレジスタに保持された出力鍵とから1つの鍵を
選択し、上記4−1セレクタは、上記2−1セレクタに
よって選択された鍵から4つの異なるシフト数で各々巡
回ビットシフトさせた4つの鍵を入力し、入力した4つ
の鍵から1つの鍵を選択し、上記3−1KLセレクタ
は、秘密鍵を入力し、入力された秘密鍵と、上記4−1
セレクタによって選択された鍵と、上記鍵KLレジスタ
に保持された中間鍵とからなる3つの鍵を入力し、入力
した3つの鍵から1つの鍵を選択し、上記鍵KLレジス
タは、上記3−1KLセレクタによって選択された鍵を
中間鍵として保持し、上記3−1KAセレクタは、上記
主変換部と上記副変換部とを用いて生成された出力鍵を
入力し、入力した出力鍵と、上記4−1セレクタによっ
て選択された鍵と、上記鍵KAレジスタに保持された出
力鍵とからなる3つの鍵を入力し、入力した3つの鍵か
ら1つの鍵を選択し、上記鍵KAレジスタは、上記3−
1KAセレクタによって選択された鍵を出力鍵として保
持することを特徴とする。
鍵を選択する2−1KLセレクタと、2−1KLセレク
タから選択された鍵を保持する鍵KLレジスタと、2つ
の鍵から1つの鍵を選択する2−1KAセレクタと、2
−1KAセレクタから選択された鍵を保持する鍵KAレ
ジスタと、2つの鍵から1つの鍵を選択する2−1セレ
クタと、8つの鍵から1つの鍵を選択する8−1セレク
タとを有し、上記2−1KLセレクタは、秘密鍵を入力
し、入力した秘密鍵と上記鍵KLレジスタに保持された
鍵とから1つの鍵を選択し、上記2−1KAセレクタ
は、上記主変換部と上記副変換部とを用いて生成された
出力鍵を入力し、入力した出力鍵と上記鍵KAレジスタ
に保持された鍵とから1つの鍵を選択し、上記2−1セ
レクタは、上記2−1KLセレクタと上記2−1KAセ
レクタとによって選択された2つの鍵から1つの鍵を選
択し、上記8−1セレクタは、上記2−1セレクタによ
って選択された鍵から8つの異なるシフト数で各々巡回
ビットシフトさせた8つの鍵を入力し、入力した8つ鍵
から1つ鍵を選択することを特徴とする。
をデータ変換するデータ攪拌部を備えるデータ変換装置
であって、上記データ攪拌部は、データを入力し、入力
したデータを非線形にデータ変換する主変換部と入力し
たデータを線形にデータ変換する副変換部とを並列に備
え、上記主変換部は、鍵とデータとを入力し、入力した
鍵を使用して非線形にデータ変換を行うための関数であ
るF関数に基づいて入力したデータを非線形にデータ変
換し、非線形変換したデータを出力し、上記副変換部
は、鍵とデータとを入力し、入力した鍵を使用して入力
したデータを線形変換し、線形変換したデータを出力
し、上記主変換部と上記副変換部とは、上記主変換部に
よるデータ変換と上記副変換部によるデータ変換とを繰
り返し行うことにより少なくともデータの暗号化とデー
タの復号のいずれかのデータ変換を行うことを特徴とす
る。
力したデータをF関数に基づいて非線形にデータ変換
し、データ変換したデータを出力することを複数回繰り
返すF関数部を備えることを特徴とする。
力したデータを1/2XF関数(X≧0)に基づいて非
線形にデータ変換し、データ変換したデータを出力する
ことを2X回繰り返すことによりF関数に基づいた非線
形データ変換を1回分完了し、完了したデータを出力す
ることを複数回繰り返すことによりF関数に基づいた非
線形データ変換を複数回行うことを特徴とする。
とに分割されたデータのいずれか一方を入力し、入力し
たデータを非線形にデータ変換し、データ変換した上位
データと下位データのいずれか一方を出力し、出力した
上位データと下位データのいずれか一方と上位データと
下位データのいずれか他方とを排他的論理和演算し、排
他的論理和演算したデータと、上記F関数部に入力され
なかった上位データと下位データとのいずれか他方とを
入れ替えて出力することを特徴とする。
する鍵生成部を備え、上記鍵生成部は、さらに、秘密鍵
を入力し、入力した秘密鍵から中間鍵を生成し、生成し
た中間鍵から上記主変換部と上記副変換部とを用いて出
力鍵を生成する中間鍵生成部を備えることを特徴とす
る。
部によって生成された中間鍵と出力鍵と所定の定数とを
入力し、入力した中間鍵と出力鍵と所定の定数とから所
定の条件に従って上記主変換部と上記副変換部とが行う
データ変換に用いる鍵をスケジュールする鍵スケジュー
ル部を備え、上記副変換部と上記主変換部とは、上記鍵
スケジュール部によってスケジュールされた鍵を各々入
力し、各々入力した鍵に基づいて各々に入力されたデー
タのデータ変換を行うことを特徴とする。
入力した6つの鍵から1つの鍵を選択する6−1KLセ
レクタと、前記6−1KLセレクタから選択された1つ
の鍵を中間鍵として保持する鍵KLレジスタと、6つの
鍵から1つの鍵を選択する6−1KAセレクタと、6−
1KAセレクタから選択された1つの鍵を出力鍵として
保持する鍵KAレジスタと、を有し、上記6−1KLセ
レクタは、秘密鍵を入力し、入力された秘密鍵と、上記
鍵KLレジスタに保持された中間鍵と、上記鍵KLレジ
スタに保持された中間鍵とから4つの異なるシフト数で
各々巡回ビットシフトさせた4つの鍵とからなる6つの
鍵を入力し、入力した6つの鍵から1つの鍵を選択し、
上記鍵KLレジスタは、上記6−1KLセレクタによっ
て選択された鍵を中間鍵として保持し、上記6−1KA
セレクタは、上記主変換部と上記副変換部とを用いて生
成された出力鍵を入力し、入力した出力鍵と、上記鍵K
Aレジスタに保持された出力鍵と、上記鍵KAレジスタ
に保持された出力鍵から4つの異なるシフト数で各々巡
回ビットシフトさせた4つの鍵と、からなる6つの鍵を
入力し、入力した6つの鍵から1つの鍵を選択し、上記
鍵KAレジスタは、上記6−1KAセレクタによって選
択された鍵を出力鍵として保持することを特徴とする。
鍵を選択する2−1セレクタと、4つの鍵から1つの鍵
を選択する4−1セレクタと、3つの鍵から1つの鍵を
選択する3−1KLセレクタと、3−1KLセレクタか
ら選択された鍵を中間鍵として保持する鍵KLレジスタ
と、3つの鍵から1つの鍵を選択する3−1KAセレク
タと、3−1KAセレクタから選択された鍵を出力鍵と
して保持する鍵KAレジスタとを有し、上記2−1セレ
クタは、上記鍵KLレジスタに保持された中間鍵と、上
記鍵KAレジスタに保持された出力鍵とから1つの鍵を
選択し、上記4−1セレクタは、上記2−1セレクタに
よって選択された鍵からから4つの異なるシフト数で各
々巡回ビットシフトさせた4つの鍵を入力し、入力した
4つの鍵から1つの鍵を選択し、上記3−1KLセレク
タは、秘密鍵を入力し、入力された秘密鍵と、上記4−
1セレクタによって選択された鍵と、上記鍵KLレジス
タに保持された中間鍵とからなる3つの鍵を入力し、入
力した3つの鍵から1つの鍵を選択し、上記鍵KLレジ
スタは、上記3−1KLセレクタによって選択された鍵
を中間鍵として保持し、上記3−1KAセレクタは、上
記主変換部と上記副変換部とを用いて生成された出力鍵
を入力し、入力した出力鍵と、上記4−1セレクタによ
って選択された鍵と、上記鍵KAレジスタに保持された
出力鍵とからなる3つの鍵を入力し、入力した3つの鍵
から1つの鍵を選択し、上記鍵KAレジスタは、上記3
−1KAセレクタによって選択された鍵を出力鍵として
保持することを特徴とする。
鍵を選択する2−1KLセレクタと、2−1KLセレク
タから選択された鍵を保持する鍵KLレジスタと、2つ
の鍵から1つの鍵を選択する2−1KAセレクタと、2
−1KAセレクタから選択された鍵を保持する鍵KAレ
ジスタと、2つの鍵から1つの鍵を選択する2−1セレ
クタと、8つの鍵から1つの鍵を選択する8−1セレク
タとを有し、上記2−1KLセレクタは、秘密鍵を入力
し、入力した秘密鍵と上記鍵KLレジスタに保持された
鍵とから1つの鍵を選択し、上記2−1KAセレクタ
は、上記主変換部と上記副変換部とを用いて生成された
出力鍵を入力し、入力した出力鍵と上記鍵KAレジスタ
に保持された鍵とから1つの鍵を選択し、上記2−1セ
レクタは、上記2−1KLセレクタと上記2−1KAセ
レクタとによって選択された2つの鍵から1つの鍵を選
択し、上記8−1セレクタは、上記2−1セレクタによ
って選択された鍵からから8つの異なるシフト数で各々
巡回ビットシフトさせた8つの鍵を入力し、入力した8
つ鍵から1つ鍵を選択することを特徴とする。
ータ正変換部(FL)と上記データ正変換部(FL)の
変換とは逆の変換をするデータ逆変換部(FL−1)と
の少なくともいずれかを有し、上記データ正変換部(F
L)と上記データ逆変換部(FL-1)との少なくともい
ずれかによってデータをデータ変換することを特徴とす
る。
ータ正変換と上記データ正変換とは逆の変換をするデー
タ逆変換とを同一の回路を共用して行う1/2副変換部
を有し、1/2副変換部によってデータをデータ変換す
ることを特徴とする。
92ビットか256ビットのいずれかの鍵を入力し、入
力した鍵を使用して入力したデータの暗号化とデータの
復号のいずれかのデータ変換することを特徴とする。
を線形変換にデータ変換する副変換部に並列に配置さ
れ、鍵とデータとを入力し、入力した鍵を使用して非線
形にデータ変換を行うための関数であるF関数に基づ
き、非線形データ変換する主変換部によって、入力した
データを非線形にデータ変換し、非線形変換したデータ
を出力することと、鍵とデータとを入力し、入力した鍵
を使用して入力したデータを上記主変換部に並列に配置
された上記副変換部によって線形変換し、線形変換した
データを出力することを、繰り返し行うことにより少な
くともデータの暗号化とデータの復号のいずれかのデー
タ変換を行うことを特徴とする。
データを線形変換にデータ変換する副変換部に並列に配
置され、鍵とデータとを入力し、入力した鍵を使用して
非線形にデータ変換を行うための関数であるF関数に基
づき、非線形変換にデータ変換する主変換部によって、
入力したデータを非線形にデータ変換し、非線形変換し
たデータを出力する処理と、鍵とデータとを入力し、入
力した鍵を使用して入力したデータを上記主変換部に並
列に配置された上記副変換部によって線形変換し、線形
変換したデータを出力する処理とを、繰り返し行うこと
により少なくともデータの暗号化とデータの復号のいず
れかのデータ変換を行う処理をコンピュータに実行させ
ることを特徴とする。
録したコンピュータ読み取り可能な記録媒体は、データ
を線形変換にデータ変換する副変換部に並列に配置さ
れ、鍵とデータとを入力し、入力した鍵を使用して非線
形にデータ変換を行うための関数であるF関数に基づ
き、非線形にデータ変換する主変換部によって、入力し
たデータを非線形にデータ変換し、非線形変換したデー
タを出力する処理と、鍵とデータとを入力し、入力した
鍵を使用して入力したデータを上記主変換部に並列に配
置された上記副変換部によって線形変換し、線形変換し
たデータを出力する処理とを、繰り返し行うことにより
少なくともデータの暗号化とデータの復号のいずれかの
データ変換を行う処理をコンピュータに実行させるため
のデータ変換プログラムを記録したコンピュータ読み取
り可能な記録媒体であることを特徴とする。
載するデータ変換装置ついて説明する。
データ変換装置の構成及び動作図である。本実施の形態
では、図56及び図60で示した「鍵KLレジスタ24
0から出力した中間鍵(鍵KL)をセレクタ310に入
力させるパス」「主変換部320から出力したデータを
セレクタ310に入力させるパス」が存在しない。本実
施の形態の副変換部330には、本来有するデータ変換
機能に加え、鍵及びデータを転送する機能が追加されて
いるためである。以下、副変換部330が有する鍵及び
データを転送する機能を用いた鍵生成及びデータの暗号
化/復号について説明する。他の構成及び動作は、図5
6及び図60を用いて説明したものと同様であるので、
説明を省略する。本実施の形態では、鍵KLレジスタ2
40から出力された中間鍵(鍵KL)は、直接セレクタ
310に入力されず、鍵KLレジスタ240から鍵スケ
ジュール部210への従来のパスを利用して、鍵スケジ
ュール部210を経由して副変換部330に入力され
る。副変換部330は、「データを変換するモード」と
「鍵またはデータを転送するモード」を持っているの
で、鍵を入力すると「鍵またはデータを転送するモー
ド」にモードを切り換え、入力された鍵をセレクタ31
0に転送する。また、本実施の形態では、主変換部32
0によって非線形変換されたデータは、直接セレクタ3
10に入力されず、副変換部330に入力される。副変
換部330は、主変換部320によって非線形変換され
たデータを入力すると「鍵またはデータを転送するモー
ド」にモードを切り換え、入力されたデータをセレクタ
310に転送する。このような転送動作を副変換部33
0にさせることにより、図56及び図60に示した上記
2つのパスを不要とすることができる。なお、前述した
ように、主変換部320が複数サイクルでF関数による
1回のデータ変換を行う場合には、一定期間保持した中
間データを主変換部320に入力する必要があるため、
図1では点線で示す「中間データを演算レジスタ350
からセレクタ310へ送るパス」が存在するが、主変換
部320が1サイクルでF関数による1回のデータ変換
を行う場合には、点線で示した「演算レジスタ350か
らセレクタ310へのパス」は必要ない。後述する図6
の点線で示したパスについても同様である。
って行われる中間鍵及び出力鍵の生成方法について説明
する。図2に、中間鍵生成部40が中間鍵から出力鍵を
生成する動作を示す。まず、中間鍵生成部40に秘密鍵
が入力され、6−1KLセレクタ220を経て鍵KLレ
ジスタ240に中間鍵(鍵KL)として保持される。鍵
KLレジスタ240に保持された秘密鍵は中間鍵(鍵K
L)として、鍵スケジュール部210を経由して主変換
部320に入力される。主変換部320の1段目のF関
数部321aでは、入力された中間鍵(鍵KL)の上位
ビットが、鍵スケジュール部210から出力された定数
Σ1を用いて非線形変換され、EXOR回路322aに
よって中間鍵(鍵KL)の下位ビットとの排他的論理和
がとられ、F関数部321bに入力される。F関数部3
21bでも同様に、EXOR回路322aから出力され
た鍵が、鍵スケジュール部210から出力された定数Σ
2を用いて非線形変換され、EXOR回路322bによ
って中間鍵(鍵KL)の下位ビットとの排他的論理和が
とられる。その結果、出力された鍵を鍵の上位ビットと
し、EXOR回路322aから出力された鍵を鍵の下位
ビットとして副変換部330へ出力する。副変換部33
0は、これらのデータを入力し、副変換部330のデー
タ正変換部50に含まれる2つの排他的論理和演算器
(EXOR)と副変換部330のデータ逆変換部70に
含まれる2つの排他的論理和演算器(EXOR)を用い
て鍵の上位ビットと鍵の下位ビットとを各々排他的論理
和演算をとり、その結果、出力されたデータを再び主変
換部320に入力する。主変換部320は、前述した主
変換部320の一部を使用した処理と同様に、主変換部
320の有するF関数部321aとEXOR回路322
a、F関数部321bをEXOR回路322bとを含ん
だ2段の変換処理を行い、変換された鍵の上位ビットと
下位ビットを入れ替えて出力する。出力されたデータ
は、中間鍵生成部40の6−1KAセレクタ230に入
力され、鍵KAレジスタ250に出力鍵(鍵KA)とし
て保持される。このようにして、中間鍵生成部40は、
データの暗号化/復号処理を行う構成部分である主変換
部320の一部と副変換部330の一部を用いて中間鍵
(鍵KL)から出力鍵(鍵KA)を生成する。生成され
た中間鍵(鍵KL)の上位ビットからなる鍵KLHと下
位ビットからなる鍵KLLと、出力鍵(鍵KA)の上位
ビットからなる鍵KAHと下位ビットからなる鍵KAL
との4つの鍵は鍵スケジュール部210に入力され、デ
ータの暗号化及び復号のための鍵(拡大鍵という)とし
て使用される。また、このようにして生成されたと出力
鍵(鍵KA)と中間鍵(鍵KL)とを用いて同様の処理
により、所定期間毎に新たな中間鍵及び出力鍵が生成さ
れる。
の内部構成とその動作について説明する。図3は、鍵ス
ケジュール部210の内部構成及び動作を示した図であ
る。中間鍵生成部40から出力された中間鍵(鍵KL)
は、上位ビットの鍵KLHと下位ビットの鍵KLLに分
割され、4−1セレクタ216と4−1セレクタ217
に入力される。中間鍵生成部40から出力された出力鍵
(鍵KA)も同様に、鍵KAHと鍵KALに分割され、
4−1セレクタ216と4−1セレクタ217に入力さ
れる。4−1セレクタ216と4−1セレクタ217
は、これら4つの鍵から1つの鍵を選択する。4−1セ
レクタ216と4−1セレクタ217により選択された
信号と選択された信号を1ビット右に巡回シフトさせた
信号とを2−1セレクタ214と2−1セレクタ215
に入力する。信号を1ビット右に巡回シフトさせるの
は、中間鍵生成部40による出力鍵(鍵KA)生成時、
副変換部330を使用することは前述したが、この時、
副変換部330に含まれる巡回シフト器によって信号が
1ビット左に巡回シフトされるので、予め1ビット左に
巡回シフトされることを予想して、結果に巡回シフトの
影響が及ばないように1ビット右に巡回シフトさせたも
のである。従って、鍵スケジュール部210は必ず1ビ
ット右に巡回シフトする処理を施すのではなく、副変換
部330の巡回シフト器が信号を巡回シフトする数と方
向と考慮し、その方向と逆の方向に副変換部330の巡
回シフト器が巡回シフトする数だけ予め入力鍵を巡回シ
フトさせておけばよい。よって、2−1セレクタ214
と2−1セレクタ215は、これらの2つの信号から1
つの鍵に関する信号を選択するが、出力鍵(鍵KA)生
成時に副変換部330へ鍵を出力する場合には、必ず予
め定められたビットを巡回シフトさせた鍵を選択して、
副変換部330に出力する。2−1セレクタ214と2
−1セレクタ215から出力された鍵は、出力鍵(鍵K
A)生成時に副変換部330を用いる場合に副変換部3
30へ入力されるとともに、出力鍵(鍵KA)生成時に
主変換部320を用いる場合とデータの暗号化/復号処
理時に2−1セレクタ212に入力され、また、1バイ
ト右又は左に巡回シフトさせた鍵を2−1セレクタ21
2に入力する。1バイト右又は左に巡回シフトさせた鍵
を2−1セレクタ212に入力するのは、データの暗号
化/復号処理時にF関数部が1/2や1/4や1/8
等、1未満のF関数を処理する部分から構成されている
場合に、必要になるためであるが、詳細は後述する。2
12は、これらの2つの鍵から1つの鍵を選択し、選択
した鍵を2−1セレクタ211に入力する。8−1セレ
クタ213は、定数であるΣ1からΣ4を上位データと
下位データに分割したものを入力し、これら8つの入力
信号から1つの信号を選択し、2−1セレクタ211へ
入力する。2−1セレクタ211は、入力された2つの
信号から1つの信号を選択し、選択した信号を鍵として
主変換部320へ出力する。
ータ攪拌部30によって行われるデータの暗号化/復号
処理について説明する。図4は、データ攪拌部30の暗
号化/復号処理の動作を示す図である。まず、P(平文
又は暗号文)が入力される。ここでは、P(平文又は暗
号文)を128ビット長と仮定する。入力データPはE
XOR回路31aに入力され、鍵生成部20に入力さ
れ、中間鍵生成部40と鍵スケジュール部210とを経
由して出力された秘密鍵(128ビット長)と排他的論
理和がとられる。なお、秘密鍵は、中間鍵生成部40に
まず入力され、6−1KLセレクタ220によって選択
され、鍵KLレジスタ240に中間鍵(鍵KL)として
保持された後に、中間鍵(鍵KL)として鍵スケジュー
ル部210に入力される。共通鍵ブロック暗号処理を行
うCAMELLIA(カメリア)では、EXOR回路3
1aとEXOR回路31bとは、副変換部330の有す
る排他的論理演算器を用いている。即ち、図58に示す
ように、入力データを上位ビットの上位データと下位ビ
ットの下位データとに分割し、分割された各々のデータ
と入力された鍵とをデータ正変換部50のEXOR回路
55及びEXOR回路56又はデータ逆変換部70のE
XOR回路75及びEXOR回路76によって排他的論
理和をとり、出力する。出力されたデータは、鍵スケジ
ュール部210から出力された拡大鍵のいずれかを用い
て主変換部320と副変換部330とによりデータ変換
される。図4では、主変換部320a、副変換部330
a、主変換部320b、副変換部330b、主変換部3
20cというように交互にデータ変換されている。この
ようにして変換されたデータは、副変換部330のEX
OR回路31bによって鍵スケジュール部210から出
力された鍵との排他的論理和をとり、C(暗号文又は復
号文)として出力する。
0で行われる、主変換部320と副変換部330による
データ変換処理の動作の詳細について図1と図4を用い
て説明する。EXOR回路31aから出力されたデータ
は上位データと下位データに分割され、各々主変換部3
20aに入力される。主変換部320aでは、入力され
た各々のデータを非線形変換し、変換後の下位データを
上位データとして、また、変換後の上位データを下位デ
ータとして、即ち、図4に示すように上位データと下位
データを入れ替えてから副変換部330aに入力する。
副変換部330aでは、入力データを線形変換する。変
換したデータは、図1に示すようにセレクタ310に入
力され、演算レジスタ350に保持され、主変換部32
0(図4では主変換部320bで表されている)に入力
される。主変換部320bと副変換部330bでは、主
変換部320a、副変換部330aの処理を繰り返し、
主変換部320cで再度主変換部320aと同じ処理を
繰り返す。主変換部320cからの出力データは、EX
OR回路31bによって繰り返した後の出力データと鍵
スケジュール部210から出力された鍵データとの排他
的論理和をとり、Cとして出力する。CAMELLIA
では、31bはEXOR回路31aと同様に、副変換部
330に含まれる排他的論理演算器を使用する。また、
CAMELLIAでは、主変換部320a、主変換部3
20b、320cは、同一の主変換部320を用いて処
理を繰り返すことによってデータ変換を行う。ただし、
同一の内部構成を持つ主変換部320aと主変換部32
0bと主変換部320cとを別々に持つ構成とすること
もできる。副変換部330aと副変換部330bも同様
である。
理部分を有する場合であって、図57に示すように6段
のF関数によるデータ変換処理を行う場合、主変換部3
20による処理を6回繰り返すことで6段のF関数によ
るデータ変換処理を完了することができる。これは、図
1では、主変換部320からセレクタ310と演算レジ
スタ350を通過して主変換部320に戻るパスを6回
繰り返し利用して主変換部320が6段のF関数による
データ変換処理を完了することを意味する。従って、図
56や図60に示す関連技術では、「主変換部320か
らの出力データをセレクタ310へ入力させるためのパ
ス」が必要であった。しかし、本実施の形態では、副変
換部330が後述するような転送機能を有するため、主
変換部320からの出力データは、副変換部330を転
送させてセレクタ310へ入力させることが可能とな
る。よって、本実施の形態のデータ変換装置では、「主
変換部320からの出力データを副変換部330によっ
て転送させてセレクタ310へ入力させるパス」を用い
ることにより、「主変換部320からの出力データをセ
レクタ310へ入力させるためのパス」が不要となる。
20の内部構成及び動作については、図57、図61を
用いて前述した。前述したように、主変換部320が持
つ構造、すなわち、入力データを上位ビットの上位デー
タと下位ビットの下位データとに分割し、分割した上位
データと下位データのいずれか一方をF関数によって非
線形変換し、非線形変換した上位データと下位データの
いずれか一方と、上位データと下位データのいずれか他
方とからF関数に入力するデータを生成し、生成したデ
ータを上記入力データとして上位データと下位データに
分割し、F関数を用いて再度変換することを繰り返すこ
とを特徴とする非線形変換処理構造をFEISTEL構
造と呼んでいる。
21.次に、主変換部320に含まれるF関数部321
の内部構成及び動作について説明する。図5は、F関数
部321の内部構成及び動作を示した図である。まず、
入力データは、EXOR回路323によって拡大鍵との
排他的論理和がとられ、8分割されて、S関数324に
入力される。拡大鍵とは、秘密鍵から中間鍵生成部40
によって生成される出力鍵(鍵KA)と中間鍵(鍵K
L)とを合わせた鍵をいう。秘密鍵が128ビット長の
CAMELLIAの場合には拡大鍵は256ビットにな
る。中間鍵(鍵KL)を上位ビットの鍵KLHと下位ビ
ットの鍵KLLに分割し、同様に、出力鍵(鍵KA)を
上位ビットの鍵KAHと下位ビットの鍵KALに分割
し、それら4つの鍵から鍵スケジュール部210によっ
てスケジュールされた1つの鍵がEXOR回路323に
入力される。S関数324は、GF(28 )の逆元演算
とアフィン変換を合成した関数(S1からS4)であ
り、バイト単位の非線形変換が行われる。変換され出力
されたデータはP関数325に入力され、線形変換を行
うP関数325によってデータの攪拌が行われた後に出
力される。
る部分(1/2F関数)から構成されている場合につい
てその動作を説明する。F関数部がF関数の1/2を処
理する部分は、EXOR回路323とS4 324eから
S1 324hの4つのSボックスと図5の約半分のP関
数部から構成される。これらの構成から、まず、上記F
関数1段分のデータ変換処理の1/2の処理を行う。次
に、もう一度同じ処理を行って、F関数1段分の処理を
完了する。1度目の処理では、鍵スケジュール部210
で前述したように、1バイト右又は左に巡回シフトさせ
た鍵とデータとを用いる。鍵とデータとを1バイト右又
は左に巡回シフトさせることで、S1からS4に配置さ
れたSボックスの配置を変更せずにSボックスを1バイ
ト分ずらすのと同様の効果を奏することができる。即
ち、図5に示すように、S4 324eからS1 324h
で示すS1、S2、S 3、S4に配置されたSボックス
の配置を変えずに、1バイト巡回シフトさせておいた鍵
とデータとを入力することで、S1 324aからS4 3
24dで示すS 2、S3、S4、S1にSボックスを配
置したのと同様の処理が可能となる。このような操作に
より、2サイクルでF関数1段分の処理が完了する。
置したデータ変換装置.図6は、図1の主変換部320
と副変換部330を逆に配置したデータ変換装置の構成
および動作図である。主変換部320と副変換部330
を逆に配置したデータ変換装置の場合も図1に示すデー
タ変換装置の場合と同様に、副変換部330は、転送機
能を用いてデータを転送することによって主変換部32
0に出力する。このようなパスを利用して主変換部32
0は6段のF関数によるデータ変換処理を完了すること
が可能となる。従って、図56や図60に示す「副変換
部330からの出力データをセレクタ310へ入力させ
るためのパス」が不要となる。また、鍵KLレジスタ2
40から出力された中間鍵(鍵KL)は、直接セレクタ
310に入力されず、鍵KLレジスタ240から鍵スケ
ジュール部210へのパスを利用して、鍵スケジュール
部210を経由して副変換部330に入力される。副変
換部330は、鍵を入力すると転送機能を用いて入力さ
れた鍵を主変換部320へ転送する。
せることにより、図56及び図60に示した「鍵KLレ
ジスタ240から出力した中間鍵(鍵KL)をセレクタ
310に入力させるパス」と、「主変換部320から出
力したデータをセレクタ310に入力させるパス」また
は「副変換部330から出力したデータをセレクタ31
0に入力させるパス」、の2つのパスを不要とすること
ができる。
配置したデータ変換装置.図7は、図1、図6と比較す
ると主変換部320と副変換部330が並列に配置され
ている点と2つの入力信号から1つの出力信号を選択す
るセレクタ340が存在する点で異なるデータ変換装置
を示す図である。その他の構成は、図1、図6と同様で
ある。このような構成をとるデータ変換装置では、主変
換部320と副変換部330が並列に配置されているの
で、主変換部320と副変換部330とから出力された
信号のいずれかを選択するセレクタ340が必要にな
る。そして、セレクタ340が選択し、演算レジスタ3
50を経由した信号とP(平文又は暗号文)とからセレ
クタ310が選択した信号が、主変換部320と副変換
部330とへ入力される。しかし、出力鍵(鍵KA)生
成時、鍵KLレジスタ240から出力された中間鍵(鍵
KL)は、直接セレクタ310に入力されず、鍵KLレ
ジスタ240から鍵スケジュール部210へのパスを利
用して、鍵スケジュール部210を経由して副変換部3
30に入力される。副変換部330は、鍵を入力すると
転送機能を用いて入力された鍵を主変換部320へ転送
する。このため、図56及び図60に示した「鍵KLレ
ジスタ240から出力した中間鍵(鍵KL)をセレクタ
310に入力させるパス」を不要とすることができる。
また、「主変換部320から出力したデータをセレクタ
310に入力させるパス」または「副変換部330から
出力したデータをセレクタ310に入力させるパス」、
の2つのパスを不要とすることができる。
鍵生成部40の6−1KLセレクタ220及び6−1K
Aセレクタ230の内部構成について説明する。図8
は、中間鍵生成部40の6−1KLセレクタ220及び
6−1KAセレクタ230の内部構成を示した図であ
る。中間鍵生成部40において鍵KLレジスタ240に
保持された中間鍵(鍵KL)は、鍵スケジュール部21
0に出力されるとともに、再び6−1KLセレクタ22
0に入力される。6−1KLセレクタ220は、内部に
6−1セレクタ221を持っている。6−1KLセレク
タ220では、入力された中間鍵(鍵KL)を6−1セ
レクタ221に入力するとともに、中間鍵(鍵KL)を
任意の異なる4つのシフト数で巡回シフトさせた4つの
信号を6−1セレクタ221に入力する。例えば、図示
していないが、中間鍵を左に17ビット、左に15ビッ
ト、右に17ビット、右に15ビット、各々巡回シフト
させた4つの信号を入力する場合が考えられる。これら
中間鍵(鍵KL)と巡回シフトさせた4つの信号と秘密
鍵とを6つの入力信号として、6−1セレクタ221
は、6つの入力信号から1つの出力信号を選択し、選択
した出力信号を鍵KLレジスタ240に新たな中間鍵
(鍵KL)として保持させる。出力鍵(鍵KA)から新
たな出力鍵(鍵KA)を生成する方法も、中間鍵(鍵K
L)から新たな中間鍵(鍵KL)を生成する方法と全く
同様である。
示す図である。図9では、図8と比べ、4−1セレクタ
223で示すセレクタの共有化が図られている。即ち、
鍵KLレジスタ240から出力された中間鍵(鍵KL)
と鍵KAレジスタ250から出力された出力鍵(鍵K
A)とを2−1セレクタ224に入力し、2−1セレク
タ224がこの2つの鍵から1つの鍵を選択し、選択さ
れた1つの鍵を4つの異なるシフト数で巡回シフトさせ
て4つの信号を生成し、それら4つの信号を4−1セレ
クタ223に入力する。4−1セレクタ223は、4つ
の信号から1つの信号を選択して、3−1KLセレクタ
222又は3−1KAセレクタ232に出力する。3−
1KLセレクタ222は、4−1セレクタ223によっ
て選択された鍵と秘密鍵と鍵KLレジスタ240に保持
された中間鍵(鍵KL)とから1つの鍵を選択し、新た
な中間鍵として鍵KLレジスタ240に保持する。3−
1KAセレクタ232も同様に、4−1セレクタ223
によって選択された鍵と生成された出力鍵(鍵KA)と
鍵KAレジスタ250に保持された出力鍵(鍵KA)と
から1つの鍵を選択し、新たな出力鍵(鍵KA)として
鍵KLレジスタ240に保持する。図8に示す構成では
2−1セレクタに換算すると10個必要であったのに対
し、図9に示す構成では、2−1セレクタが8個のみ必
要なため、図8に示す構成の中間鍵生成部40に比べ、
2−1セレクタを2個削減することができる。このよう
にして、回路規模の削減を図ることが可能である。な
お、図8に示す中間鍵生成部40の構成は、全ての実施
の形態のデータ変換装置に適用することができる。ま
た、図9に示す中間鍵生成部40の構成も全ての実施の
形態のデータ変換装置に適用することが可能である。更
に、後述する図51に示す中間鍵生成部40の構成も全
ての実施の形態のデータ変換装置に適用することが可能
である。
換部330の内部構成及び動作について説明する。本実
施の形態では、データ正変換部50又はデータ逆変換部
70の少なくともいずれかが鍵転送機能を有する場合を
説明する。
換部50が鍵転送機能を有する場合.図10は、副変換
部330の内部構成及び動作を示した図である。本実施
の形態では、図58を用いて説明した関連技術に関する
データ正変換部50とデータ逆変換部70の構成図に比
べ、鍵又はデータを転送する転送信号とこれらの転送信
号に伴う回路が付加されている。図10では、データ正
変換部50が入力鍵を転送させる機能を有している。即
ち、データ正変換部50に鍵を転送させる転送信号を入
力し、転送信号を入力されたデータ正変換部50は、転
送信号に従って入力された鍵を転送する。具体的には、
制御部5によって転送信号が制御され、鍵を転送させる
場合には、FL鍵トランスファ信号とFLマスク信号と
を出力する。データ正変換部50は、制御部5によって
出力されたFL鍵トランスファ信号とFLマスク信号と
を入力する。
50による鍵の転送処理について、具体的に説明する。
鍵を転送する場合、FL鍵トランスファ信号は0にセッ
トされ、AND回路51に入力される。AND回路51
には、暗号化/復号の対象となるデータも入力される。
FL鍵トランスファ信号が0であるため、入力されたデ
ータは、AND回路51のAND回路により抑止され、
無効となる。即ち、入力されたデータがどんな値をとっ
ていても、AND回路51の出力データは0となる。0
の値を持つAND回路51の出力データの上位ビットは
OR回路53に、下位ビットはEXOR回路55に入力
される。一方、FLマスク信号は、NOT回路52に入
力される。鍵を転送させる場合、制御部5は、FLマス
ク信号を0にセットするため、NOT回路52の出力信
号は1となり、OR回路53の出力信号は入力信号を0
と1とするため、1を出力する。AND回路54は、O
R回路53によって出力された値である1と鍵1の情報
を入力するため、AND回路54の出力データは、必ず
鍵1そのものになる。AND回路54によって出力され
た鍵1は、左に1ビット巡回シフトされ、EXOR回路
55に入力される。鍵1自身は、図3で示す鍵スケジュ
ール部210において予め1ビット右に巡回シフトされ
ているため、AND回路54によって出力された鍵1が
左に1ビット巡回シフトされることで転送すべき本来の
鍵1の値となる。EXOR回路55には、AND回路5
1から出力された0の値を持つ下位ビットが入力される
ため、EXOR回路55の演算によって出力されるの
は、鍵1そのものである。これが出力信号の下位ビット
なる。よって、データ正変換部50は、FL鍵トランス
ファ信号とFLマスク信号とにより、鍵1をそのまま出
力信号として出力することができる。
ァ信号とFLマスク信号とによって、そのまま出力信号
として転送される。この動作について、次に説明する。
FLマスク信号は、前述したとおり0である。よって、
AND回路58には0とEXOR回路55によって出力
された鍵1が入力され、必ず0が出力される。OR回路
57は、鍵2と0を入力するため、その出力値は必ず鍵
2となる。鍵2は、EXOR回路56に入力され、AN
D回路51が出力した上位データである0との排他的論
理和がとられるため、出力は必ず鍵2となる。これが、
これが出力信号の上位ビットなる。
号とFLマスク信号を入力し、鍵1と鍵2とをそのまま
転送することが可能となる。転送信号であるFL鍵トラ
ンスファ信号とFL鍵マスク信号を制御する制御部5
は、図11、図12、図14〜図33には図示されてい
ないが、図10と同様に、制御部5によって制御されて
いるものである。
換部70が鍵転送機能を有する場合.次に、データ逆変
換部70が入力鍵を転送する機能を持っている場合を説
明する。図11は、データ逆変換部70が鍵転送機能を
有している場合を示した図である。AND回路71に
は、FL-1鍵トランスファ信号とデータが入力される。
前述したFL鍵トランスファ信号と同様に、FL-1鍵ト
ランスファ信号は0を保持しているため、AND回路7
1に入力されるデータは抑止されて無効となり、AND
回路71の出力データは0に固定される。前述したFL
マスク信号と同様に、FL-1マスク信号は0であるた
め、AND回路73に入力される信号は両方とも0にな
り、AND回路73の出力データは0に固定される。O
R回路74は、AND回路73の出力データである0と
鍵3とを入力信号とするため、鍵3を出力する。EXO
R回路75は、AND回路71からの出力データ0の上
位ビット0と鍵3とを入力するため、鍵3を出力する。
これが出力信号の上位ビットなる。また、OR回路78
では、NOT回路72によってFL-1マスク信号0が反
転された値1と鍵3とが入力されるため、OR回路78
は1を出力する。AND回路77は、OR回路78から
の出力データ1と鍵4を入力するため、AND回路77
の出力は鍵4となる。鍵4は、1ビット左へ巡回シフト
され、EXOR回路76に入力される。ここでも、鍵4
は鍵スケジュール部210によって予め1ビット右へ巡
回シフトされてデータ逆変換部70に入力されるため、
ここで1ビット左へ巡回シフトすることにより本来の鍵
4の値となる。EXOR回路76には、AND回路71
の出力データの下位ビットである0と鍵4とが入力され
るため、EXOR回路76は鍵4を出力する。これが出
力信号の下位ビットなる。
FL-1鍵トランスファ信号とFL-1マスク信号を転送信
号として、転送信号を入力した場合には、入力した鍵
(鍵3、鍵4)をそのまま出力することが可能となる。
換部50とデータ逆変換部70とが鍵転送機能を有する
場合.次に、データ正変換部50とデータ逆変換部70
とが入力鍵を転送する機能を持っている場合を説明す
る。図12は、データ正変換部50とデータ逆変換部7
0とが鍵を転送する機能を有する場合の副変換部330
の内部構成図である。データ正変換部50は図10のデ
ータ正変換部50と、また、データ逆変換部70は図1
1のデータ逆変換部70と同一構成及び同一動作である
ため、内部の構成及び動作については省略する。このよ
うに、データ正変換部50及びデータ逆変換部70の少
なくともいずれかに鍵を転送させる機能を備えることに
より、図56及び図60で示した鍵KLレジスタ240
からセレクタ310への鍵のパスを不要とし、鍵KLレ
ジスタ240から鍵スケジュール部210を経て鍵を副
変換部330に入力するとともに、鍵を転送させる転送
信号を副変換部330へ入力して、副変換部330によ
り鍵をセレクタ310へ転送させることが可能となる。
このようなパスによる鍵の転送を可能とすることで、デ
ータ変換装置は、全体として、セレクタの数を削減する
ことができる。即ち、本実施の形態のデータ変換装置
は、小型化を実現するために、中間鍵生成部40によっ
て拡大鍵を生成するための関数と主変換部320及び副
変換部330によるデータ変換を行う関数とを図2に示
すように共用しているが、このとき、図56及び図60
に示す、「鍵KLレジスタ240からセレクタ310へ
入力され、演算レジスタ350を経て主変換部320に
入力される中間鍵(鍵KL)のパス」を、本実施の形態
では、「鍵KLレジスタ240から鍵スケジュール部2
10を経て副変換部330によってセレクタ310に転
送し、演算レジスタ350を経て主変換部320に入力
される中間鍵(鍵KL)のパス」を利用することによ
り、セレクタの増加を抑止することができる。
データ変換装置のデータ攪拌部が有するセレクタの増加
を抑止し、回路全体のゲート数を減少させることによ
り、回路チップ全体の小型化及び消費電力の低減を図る
ことができる。このため、小型化と低消費電力が強く望
まれる携帯電話などのモバイル機器にも本実施の形態に
よるブロック暗号処理を行うデータ変換装置を有効に実
装することが可能となる。
鍵は、それぞれ異なる鍵でも、同一鍵でもよい。また、
FL鍵トランスファ信号とFL-1鍵トランスファ信号
は、同一信号でもよい。また、FLマスク信号とFL-1
マスク信号は同一信号でもよい。
正変換部50又はデータ逆変換部70の少なくともいず
れかがデータ転送機能を有する場合を説明する。
換部50がデータ転送機能を有する場合.本実施の形態
では、副変換部330がデータを転送する機能を備えた
場合のデータ変換装置について説明する。図13は、デ
ータ正変換部50がデータを転送する機能を有する場合
の副変換部330の内部構成図である。制御部5は、デ
ータを転送する信号としてFLデータトランスファ信号
をデータ正変換部50に入力する。データ正変換部50
に入力されるFLデータトランスファ信号は、0の値を
持っている。この信号は、AND回路59とAND回路
60に入力される。AND回路54では、入力データの
上位ビットと鍵1とがAND回路54に入力される。A
ND回路54の出力データは、入力データの値によって
不特定であるが、出力データを左に1ビット巡回させた
データをAND回路60へ入力しても、もう一方の信号
であるFLデータトランスファ信号は、0の値を持って
いるため、AND回路60の出力信号はAND回路54
の出力信号の値に関わらず0となる。AND回路60の
出力データ0はEXOR回路55へ入力され、入力デー
タと下位ビットとの排他的論理和がとられる。AND回
路60の出力が0であるため、EXOR回路55では入
力されたデータの下位ビットが出力され、出力信号の下
位データとして出力される。一方、EXOR回路55の
出力データは、鍵とともにOR回路57の入力信号とな
る。ここで、OR回路57の出力信号は不特定だが、F
Lデータトランスファ信号が0に固定されているため、
AND回路59の出力データは0となり、EXOR回路
56では入力されたデータの上位ビットとAND回路5
9の出力データである0との排他的論理和がとられるた
め、入力されたデータの上位ビットが出力され、出力信
号の上位データとして出力される。このように、データ
正変換部50は、FLデータトランスファ信号を転送信
号として入力することにより、入力されたデータを鍵の
入力によらず、そのまま出力することが可能となる。な
お、図13のデータ逆変換部70は、図57で示すデー
タ逆変換部70と同一構成を持っているため、説明を省
略する。
換部70がデータ転送機能を有する場合.図14は、デ
ータ逆変換部70がデータ転送機能を有する場合の副変
換部330の内部構成図を示す。データ逆変換部70
は、データを転送するFL-1データトランスファ信号を
入力する。データを転送する場合、FL-1データトラン
スファ信号は0を有するため、OR回路74の出力信号
の値に関わらず、AND回路79は0を出力する。この
ため、EXOR回路75では、入力されたデータの上位
ビットがそのまま出力され、出力信号の上位データとな
る。また、FL-1データトランスファ信号はAND回路
80に入力されるため、AND回路77の出力信号はい
かなる値をとっても、AND回路80の出力信号は0と
なる。このため、入力されたデータの下位ビットはEX
OR回路76でそのまま出力され、出力信号の下位デー
タとなる。このようにして、データ逆変換部70は、デ
ータをそのまま出力信号として転送することができる。
換部50とデータ逆変換部70がデータ転送機能を有す
る場合.図15は、データ正変換部50とデータ逆変換
部70とがデータ転送機能を有する場合の副変換部33
0の内部構成図である。データ正変換部50の構成は、
図13のデータ正変換部50と同一構成であり、データ
逆変換部70の構成は、図14のデータ逆変換部70と
同一構成である。従って、図15に示すデータ正変換部
50とデータ逆変換部70とは、各々に入力されるデー
タを各々そのまま出力することが可能である。このよう
に、副変換部330が入力データをそのまま転送してセ
レクタ310へ入力させる機能を有することにより、図
56に示す主変換部320の出力データをセレクタ31
0へ転送するパスが不要となる。また、図60に示すと
おり、主変換部320が1段分以下のF関数を有する場
合のデータ暗号化/復号処理では、主変換部320によ
って1段分のF関数の非線形変換を行うために、演算レ
ジスタ350が、一定期間中間データを保持する必要が
あることは前述した。これは、主変換部320が自分自
身のループパスを必要とすることを意味する。図60で
は、主変換部320から出力された中間データがセレク
タ310を経て演算レジスタ350へ出力されるループ
パスがこれに当たる。しかし、本実施の形態のように、
副変換部330のデータを転送させる機能を用いれば、
上記ループパスが不要となる。即ち、主変換部320か
ら出力された中間データは、副変換部330によって転
送され、セレクタ310に入力されて、セレクタ310
が入力された中間データを選択することによって、主変
換部320に送られる。このデータパスを用いることに
よって、図56や図60に示すセレクタ310への入力
信号数と比べ、セレクタ310への入力信号数を減少さ
せることができるため、セレクタの増加を抑止、減少さ
せることが可能となる。図6、図7に示すデータ変換装
置でも同様に、主変換部320からセレクタ310への
パスが不要となり、装置の小型化が図れ、また、セレク
タ数の減少による低消費電力化を図ることが可能とな
る。なお、FLデータトランスファ信号とFL-1データ
トランスファ信号は、同一信号でもよい。
正変換部50又はデータ逆変換部70の少なくともいず
れかが鍵転送機能及びデータ転送機能を有する場合を説
明する。
換部50が鍵転送機能及びデータ転送機能を有し、デー
タ逆変換部70が鍵転送機能を有する場合.図16は、
データ正変換部50が鍵転送機能とデータ転送機能とを
備え、データ逆変換部70が鍵転送機能を備えた場合の
副変換部330の内部構成図である。データ逆変換部7
0の構成及び動作は、図11で示した鍵転送機能を備え
たデータ逆変換部70と同様であるため、ここでは説明
を省略する。データ正変換部50の構成及び動作は、図
10で示した鍵転送機能を備えたデータ正変換部50
と、図13で示したデータ転送機能を備えたデータ正変
換部50とを組み合わせた構成である。データ正変換部
50では、FL鍵トランスファ信号は、入力されたデー
タを抑止し、無効とする機能を有し、FLマスク信号
は、入力鍵を通過させる機能を有する。また、FLデー
タトランスファ信号は、入力鍵を無効にし、データを通
過させる機能を有する。従って、FL鍵トランスファ信
号とFLマスク信号とが鍵を転送させる転送信号として
0を保持している場合には、データの転送を行うことは
できないので、FLデータトランスファ信号はデータを
転送させる転送信号として0を保持することはできな
い。同様に、FLデータトランスファ信号がデータを転
送させる転送信号として0を保持している場合には、鍵
の転送を行うことはできないので、FL鍵トランスファ
信号とFLマスク信号は鍵を転送させる転送信号として
0を保持することはできない。また、FL鍵トランスフ
ァ信号とFLマスク信号とFLデータトランスファ信号
とFL-1鍵トランスファ信号とFL-1マスク信号とがす
べて転送信号として0を保持しない場合には、データ正
変換部50とデータ逆変換部70とは、本来的に行うべ
き入力データの線形変換処理を行う。
動作について説明する。データ正変換部50は、FL鍵
トランスファ信号として0、FLマスク信号として0を
入力する。データは転送しないので、FLデータトラン
スファ信号は1のままである。まず、AND回路51
は、FL鍵トランスファ信号によりデータを抑止し、無
効とする。鍵1は、AND回路54をそのまま通過し、
1ビット左へ巡回シフトされた後、AND回路60に入
力される。FLデータトランスファ信号は1であるた
め、鍵1はAND回路60をそのまま通過し、EXOR
回路55では、鍵1とAND回路51から出力された出
力データ0の下位ビットとの排他的論理和をとるため、
鍵1が出力信号の下位データとして出力される。鍵2
は、AND回路58から出力された0によりOR回路5
7を通過し、FLデータトランスファ信号によりAND
回路59を通過し、EXOR回路56でAND回路51
から出力された出力データ0の上位ビットとの排他的論
理和をとられるため、EXOR回路56も通過して、出
力信号の上位データとなる。このようにして、データ正
変換部50は、鍵(鍵1、鍵2)をそのまま転送させる
ことができる。
する場合の動作を説明する。FLデータトランスファ信
号は、入力信号を0とする。FL鍵トランスファ信号と
FLマスク信号とは、1を保持したままである。AND
回路51は、データを通過させ、通過したデータの下位
ビットはEXOR回路55に入力される。AND回路6
0では、入力されるFLデータトランスファ信号が0で
あるため、AND回路60の出力は0となり、EXOR
回路55に入力されたデータの下位ビットはEXOR回
路55を通過して、出力信号の下位データとして出力さ
れる。同様に、AND回路59の出力はFLデータトラ
ンスファ信号が0であるため0となり、EXOR回路5
6に入力されたデータの上位ビットはEXOR回路56
を通過して出力信号の上位データとして出力される。こ
のようにして、データ正変換部50は、データをそのま
ま転送させることができる。
L-1鍵トランスファ信号である鍵トランスファ信号と、
FLマスク信号とFL-1マスク信号とからなるマスク信
号は、鍵を転送し、FLデータトランスファ信号は、デ
ータを転送する。
換部50が鍵転送機能を有し、データ逆変換部70が鍵
転送機能及びデータ転送機能を有する場合.図17は、
データ正変換部50が鍵転送機能を備え、データ逆変換
部70が鍵転送機能とデータ転送機能とを備えた場合の
副変換部330の内部構成図である。データ正変換部5
0の構成及び動作は、図10で示した鍵転送機能を備え
たデータ正変換部50と同様であるため、ここでは説明
を省略する。データ逆変換部70の動作は、図16で示
したデータ正変換部50と同様の動作をするため、動作
の詳細については既に述べたので省略する。
換部50とデータ逆変換部70が鍵転送機能及びデータ
転送機能を有する場合.図18は、データ正変換部50
とデータ逆変換部70とが各々鍵転送機能とデータ転送
機能を有する場合の副変換部330の構成図である。デ
ータ正変換部50とデータ逆変換部70とが行う転送の
動作については、既に説明したので省略する。ここで
は、鍵転送機能とデータ転送機能をデータ正変換部50
とデータ逆変換部70とがいずれも有するので、データ
変換装置は、高度な鍵及びデータ転送処理を行うことが
できる。
換部50が鍵転送機能及びデータ転送機能を有する場
合.図19では、データ正変換部50が鍵転送機能とデ
ータ転送機能とを備え、データ逆変換部70はこれらの
転送機能のいずれも備えていない場合の副変換部330
の構成図である。データ正変換部50及びデータ逆変換
部70の動作については、前述したので省略する。
換部70が鍵転送機能及びデータ転送機能を有する場
合.図20では、データ逆変換部70が鍵転送機能とデ
ータ転送機能とを備え、データ正変換部50がこれらの
転送機能のいずれも備えていない場合の副変換部330
の構成図である。データ正変換部50とデータ逆変換部
70の具体的動作については、前述したので省略する。
換部50が鍵転送機能及びデータ転送機能を有し、デー
タ逆変換部70がデータ転送機能を有する場合.図21
では、データ正変換部50は、鍵転送機能とデータ転送
機能のいずれをも有し、データ逆変換部70がデータ転
送機能のみを有する場合の副変換部330の構成図であ
る。データ正変換部50とデータ逆変換部70の各々の
動作については、前述したので省略する。
換部70が鍵転送機能及びデータ転送機能を有し、デー
タ正変換部50がデータ転送機能を有する場合.図22
は、データ正変換部50がデータ転送機能を備え、デー
タ逆変換部70が鍵転送機能とデータ転送機能とを備え
る場合の副変換部330の構成図である。データ正変換
部50とデータ逆変換部70の各々の動作については、
前述したので省略する。
換部50がデータ転送機能を有し、データ逆変換部70
が鍵転送機能を有する場合.図23は、データ正変換部
50がデータ転送機能を備え、データ逆変換部70が鍵
転送機能を備えた場合の副変換部330の構成図であ
る。各動作については、前述したので省略する。
換部50が鍵転送機能を有し、データ逆変換部70がデ
ータ転送機能を有する場合.図24は、データ正変換部
50が鍵転送機能を備え、データ逆変換部70がデータ
転送機能を備えた場合の副変換部330の構成図であ
る。各動作については、前述したので省略する。
換部70とデータ正変換部50とをシリアルに接続−デ
ータ正変換部50とデータ逆変換部70がデータ転送機
能を有する場合.図25は、データ逆変換部70とデー
タ正変換部50とをシリアルに接続し、データ逆変換部
70がデータ転送機能を備え、データ正変換部50もデ
ータ転送機能を備えた場合の構成図である。それぞれの
内部動作は、前述したので省略する。図25に示す構成
では、データ逆変換部70によって転送されたデータが
データ正変換部50に入力され、データ正変換部50に
よって更に転送される出力信号として出力される。この
ように、データ逆変換部70とデータ正変換部50とを
シリアルに配置し、接続することによって、データ正変
換部50とデータ逆変換部70とによるデータの線型変
換だけでなく、データ逆変換部70のみ又はデータ正変
換部50のみによるデータの線型変換が可能である。即
ち、データ逆変換部70によってデータの線型変換した
データをデータ正変換部50に入力し、データ正変換部
50では、入力したデータを線形変換することなく転送
することが可能である。また、データ逆変換部70で、
入力したデータをデータ正変換部50に転送し、データ
正変換部50でのみデータを線型変換することが可能で
ある。従って、データ正変換部50のみ又はデータ逆変
換部70のみでデータの変換をしたい場合に有効な構成
である。このような効果は、後述する図26〜図30で
示す副変換部330でも同様に奏することができる。
換部50とデータ逆変換部70とをシリアルに接続−デ
ータ正変換部50とデータ逆変換部70がデータ転送機
能を有する場合.図26は、図25のデータ正変換部5
0とデータ逆変換部70とが上下入れ替わっている場合
の副変換部330の構成を示す。動作及び効果は、図2
5に示す副変換部330と同様であるので省略する。
換部50とデータ逆変換部70とをシリアルに接続−デ
ータ正変換部50が鍵転送機能及びデータ転送機能を有
し、データ逆変換部70がデータ転送機能を有する場
合.図27は、図26のデータ正変換部50に更に鍵転
送機能を付加した副変換部330の構成図である。デー
タ正変換部50とデータ逆変換部70の内部構成及び動
作は、前述したので省略する。
換部70とデータ正変換部50とをシリアルに接続−デ
ータ正変換部50が鍵転送機能及びデータ転送機能を有
し、データ逆変換部70がデータ転送機能を有する場
合.図28は、図27のデータ正変換部50とデータ逆
変換部70とが上下入れ替わっている場合の副変換部3
30の構成を示す。データ正変換部50とデータ逆変換
部70の内部構成及び動作は、前述したので省略する。
換部50とデータ逆変換部70とをシリアルに接続−デ
ータ正変換部50がデータ転送機能を有し、データ逆変
換部70が鍵転送機能及びデータ転送機能を有する場
合.図29は、図26に示す構成にデータ逆変換部70
の鍵転送機能を追加した構成図である。データ正変換部
50とデータ逆変換部70の構成及び動作は、前述した
ので省略する。
換部70とデータ正変換部50とをシリアルに接続−デ
ータ正変換部50がデータ転送機能を有し、データ逆変
換部70が鍵転送機能及びデータ転送機能を有する場
合.図30は、図29のデータ正変換部50とデータ逆
変換部70とが上下入れ替わっている場合の副変換部3
30の構成を示す。内部構成及び動作は、前述したので
省略する。
FL-1鍵トランスファ信号は、入力されたデータを抑止
し、無効とする機能を有し、FLマスク信号及びFL-1
マスク信号は、入力鍵を通過させる機能を有する。ま
た、FLデータトランスファ信号とFL-1データトラン
スファ信号とは、入力鍵を無効にし、データを通過させ
る機能を有する。以上の6つの信号は全て転送信号であ
り、これらの転送信号が入力されない場合には、関連技
術に示すとおり、データ正変換部50とデータ逆変換部
70とは、本来的に行うデータの線形変換を行う。
換部50とデータ逆変換部70とをシリアルに接続−デ
ータ正変換部50とデータ逆変換部70が鍵転送機能及
びデータ転送機能を有する場合.図62は、図27に示
すデータ正変換部50の構成と、図29に示すデータ逆
変換部70の構成からなる。即ち、シリアルに接続され
たデータ正変換部50とデータ逆変換部70とは、両方
とも、鍵転送機能及びデータ転送機能を有している。デ
ータ正変換部50とデータ逆変換部70の構成及び動作
は、前述したので省略する。
換部70とデータ正変換部50とをシリアルに接続−デ
ータ正変換部50と、データ逆変換部70が鍵転送機能
及びデータ転送機能を有する場合.図63は、図62の
データ正変換部50とデータ逆変換部70とが上下入れ
替わっている場合の副変換部330の構成を示す。内部
構成及び動作は、前述したので省略する。
正変換部50とデータ逆変換部70とを共用の回路とし
た1/2副変換部90に鍵及びデータの転送機能を付加
した構成及びその動作について説明する。
換部90が鍵転送機能及びデータ転送機能を有する場
合.図31は、1/2副変換部90に鍵転送機能及びデ
ータ転送機能を付加した場合の副変換部330の構成図
である。関連技術で示した図59に対し、鍵トランスフ
ァ信号、マスク信号、データトランスファ信号が付加さ
れている。また、これらの転送信号の入力に伴い、鍵と
データとを転送するための回路が付加されている。ま
ず、切換信号は、データ正変換部50とデータ逆変換部
70とを切り換える信号である。2−1セレクタ99a
に入力されたA信号とE信号から切換信号によってA信
号が選択され、出力信号Bとして出力され、2−1セレ
クタ99bに入力されたC信号とF信号から切換信号に
よってC信号が選択され、出力信号Dとして出力された
場合には、1/2副変換部90は、データ正変換部50
と同様のデータ変換を行う。一方、2−1セレクタ99
aが切換信号により出力信号BとしてE信号を選択し、
2−1セレクタ99bが出力信号Bとして切換信号によ
りF信号を選択した場合には、1/2副変換部90は、
データ逆変換部70と同一のデータ変換を行う。
ータ正変換部50として機能する場合、図31に示され
た動作は、図18に示されたデータ正変換部50の動作
と同様となる。即ち、鍵トランスファ信号は、図18の
FL鍵トランスファ信号に対応し、マスク信号は、図1
8のFLマスク信号に対応し、データトランスファ信号
は、図18のFLデータトランスファ信号に対応する。
また、各回路の対応としては、98はAND回路51
(図18)に対応し、91はEXOR回路55(図1
8)、95はAND回路60(図18)、101はAN
D回路54(図18)、94はOR回路53(図1
8)、100はNOT回路52(図18)、96はAN
D回路58(図18)、92はOR回路57(図1
8)、97はAND回路59(図18)、93はEXO
R回路56(図18)に対応する。このように対応する
ことで、1/2副変換部90は、図18のデータ正変換
部50の機能を発揮することができる。即ち、データの
正変換を行うとともに、鍵転送信号を入力した場合に
は、入力した鍵を出力信号とすることによって、鍵(鍵
1、鍵2)を転送することが可能となる。なお、これら
の動作については、図18のデータ正変換部50と同様
であるので説明を省略する。
ータ逆変換部70として機能する場合には、図31に示
された動作は、図18に示されたデータ逆変換部70の
動作と同様となる。即ち、鍵トランスファ信号は図18
のFL-1鍵トランスファ信号に対応し、マスク信号は図
18のFL-1マスク信号、データトランスファ信号は図
18のFL-1データトランスファ信号に対応する。ま
た、各回路の対応としては、98はAND回路71(図
18)に対応し、91はEXOR回路76(図18)、
95はAND回路80(図18)、101はAND回路
77(図18)、94はOR回路78(図18)、96
はAND回路73(図18)、92はOR回路74(図
18)、97はAND回路79(図18)、93はEX
OR回路75(図18)に対応する。このように対応す
ることによって、1/2副変換部90は、図18のデー
タ逆変換部70の機能を発揮することができる。即ち、
データの逆変換を行うとともに、鍵転送信号を入力した
場合には、入力した鍵を出力信号とすることによって、
鍵(鍵3、鍵4)を転送することが可能となる。なお、
これらの動作については、図18のデータ逆変換部70
と同様であるので説明を省略する。
換部90がデータ転送機能を有する場合.図32は、1
/2副変換部90にデータ転送機能を付加した場合の副
変換部330の構成図である。図31と同様に、2−1
セレクタ99aによってA信号が選択され、2−1セレ
クタ99bによってC信号が選択された場合には、1/
2副変換部90は、図13のデータ正変換部50と同様
の機能を有する。この場合、データトランスファ信号
は、FLデータトランスファ信号に対応する。また、切
換信号によって2−1セレクタ99aではE信号が選択
され、2−1セレクタ99bではF信号が選択された場
合には、1/2副変換部90は、図14のデータ逆変換
部70と同様の機能を有する。この場合、データトラン
スファ信号は、FL-1データトランスファ信号に対応す
る。このような1/2副変換部90の構成により、1/
2副変換部90は、データを変換するとともに、データ
を転送する転送信号を入力した場合には、データを変換
せずに出力することによって、転送処理を行うことが可
能となる。なお、これらの動作については、前述したの
で説明を省略する。
換部90が鍵転送機能を有する場合.図33は、1/2
副変換部90に鍵転送機能を付加した場合の副変換部3
30の構成図である。図31と同様に、2−1セレクタ
99aによってA信号が選択され、2−1セレクタ99
bによってC信号が選択された場合には、1/2副変換
部90は、図10のデータ正変換部50と同様の機能を
有する。この場合、鍵トランスファ信号及びマスク信号
は、FL鍵トランスファ信号及びFLマスク信号に対応
する。また、切換信号によって2−1セレクタ99aで
はE信号が選択され、2−1セレクタ99bではF信号
が選択された場合には、1/2副変換部90は、図11
のデータ逆変換部70と同様の機能を有する。この場
合、鍵トランスファ信号及びマスク信号は、FL-1鍵ト
ランスファ信号及びFL-1マスク信号に対応する。この
ような1/2副変換部90の構成により、1/2副変換
部90は、データを変換するとともに、鍵を転送する転
送信号を入力した場合には、鍵を変換せずに出力するこ
とによって、転送処理を行うことが可能となる。なお、
これらの動作については、前述したので説明を省略す
る。
部50とデータ逆変換部70とを共用の回路として構成
する1/2副変換部90が鍵を転送する機能とデータを
転送する機能とを備えることにより、副変換部330の
小型化と前述したような鍵のパス及びデータパスを不要
とすることによるセレクタの増加防止により、データ変
換装置全体を小型化することができる。
示したブロック暗号を行うデータ変換装置は、CAME
LLIAの構成を中心に説明した。しかし、上記で説明
した転送機能をもつ副変換部330は、CAMELLI
AやMISTY(ミスティ)やKASUMI(カスミ)
など、ブロック暗号を行うデータ変換装置に適用するこ
とができる。
に示すデータ変換装置では、セレクタ310を構成する
2−1セレクタを1つ又は2つとすることが可能であ
る。これと比較して、前述した関連技術を示すデータ変
換装置では、図56に示すように、4つの信号から1つ
の出力信号を選択するために、2−1セレクタが3つ必
要となる。さらに、図60によって示される1/2F関
数を用いたデータ変換装置では、310は、5つの入力
信号から1つの出力信号を選択するために、4つの2−
1セレクタが必要となる。従って、図1または図6また
は図7に示すデータ変換装置によれば、関連する技術に
よるデータ変換装置に比べ、データ攪拌部30を構成す
るセレクタの数を減少させることが可能となる。
主変換部320と副変換部330とを並列に配置したた
めに、セレクタ340が1つ必要となっている。セレク
タ340は、主変換部320と副変換部330から出力
された2つの出力信号を入力信号として入力し、2つの
入力信号から1つの入力信号を選択する2−1セレクタ
1つから構成されている。よって、図7では、セレクタ
310とセレクタ340とに必要な2−1セレクタは2
つとなる。従って、図7に示すデータ変換装置において
も、関連する技術によるデータ変換装置に比べ、データ
攪拌部30を構成するセレクタの数を減少させることが
可能となる。
ク暗号処理を行うCAMELLIAにおいて、主変換部
320と副変換部330とを並列に実装したCAMEL
LIAについて説明する。
ビットであり、鍵長は128ビット,192ビット,2
56ビットが利用できる。
つFEISTEL構造であり、基本的に暗号化及び復号
処理は、同一のハードウエアまたはソフトウエアで実現
可能である。F関数は、鍵長に依存し、128ビット鍵
の場合は18段(図34の主変換部320の6段×
3)、192ビット及び256ビットの場合は、図54
及び図55に示すように24段となる。図54及び図5
5については後述する。図34は、128ビット鍵のC
AMELLIAの場合の暗号化処理を示す図である。即
ち、図34では、P(平文)に対して主変換部320と
副変換部330とによるデータ変換(データの暗号化)
を行いC(暗号文)を出力する。図34では、F関数6
段ごとにFL(データ正変換関数)とFL-1(データ逆
変換関数)とが挿入される。図34の左側は図4のデー
タ攪拌部30による動作として記載されているものと同
様である。即ち、図4のEXOR回路31aおよびEX
OR回路31bは、図34のEXOR回路600とEX
OR回路601に対応し、実際には、副変換部330に
含まれるEXORによって処理される。また、図34に
示されるすべての鍵は、図4で示すように、鍵スケジュ
ール部210によってスケジュールされ、出力された鍵
を入力するものである。また、図34の右側は図57で
示す図と同様である。
IAの場合の復号処理を示す図である。図35では、C
(暗号文)に対し主変換部320と副変換部330とに
よるデータ変換(データの復号)を行い、P(復号文)
を出力する。なお、図34と図35に示す動作は、前述
したので省略する。
詳細を説明する。図36は、CAMELLIAのF関数
の内部構成図である。CAMELLIAのF関数の内部
は、SPN構造になっており、そのデータ処理は基本的
に入力データ(1)から入力データ(8)の8ビット単
位で行われ、SボックスからなるS関数324とP関数
325と呼ばれる排他的論理和(EXOR)による線形
変換により構成される。F関数部321では、まず、8
ビットずつの入力データ(1)〜入力データ(8)を入
力し、入力した64ビットの入力データに鍵(1)から
鍵(8)まで8ビットずつの合計64ビットの鍵との排
他的論理を各々とり出力される。出力されたデータは、
S関数324に入力され、GF(28 )の逆元演算とア
フィン変換を合成したS関数324によりバイト単位に
非線形変換される。次に、P関数325によってデータ
を排他的論理和による線形変換し、このような動作を通
じてデータを攪拌した後、出力データ(1)〜出力デー
タ(8)として出力する。
64ビットである。図36では、S関数324にS1〜
S4のSボックスを二組(図36の下からS1、S2、
S3、S4の一組とその上の、S2、S3、S4、S1
の一組)用意している。従って、図36に示すように、
まず、入力データ(1)から入力データ(4)について
のデータ変換を行い、次に、残りの入力データである入
力データ(5)から入力データ(8)のデータ変換を行
うことで処理することも可能である。この場合、前述し
たように、2回目のデータ変換では、S1からS4に順
に配置されたSボックスを構成する回路をそのまま活用
するために、データを1バイト予め巡回シフトさせてお
き、巡回シフトさせた入力データ(5)から入力データ
(8)を入力することにより、S関数324の構成を変
えずに、データとS1からS4のSボックスを対応させ
ることができる。このように、F関数は、鍵と入力デー
タとのEXOR(排他的論理和)、4種類のS関数(S
1からS4)の2回、及び、P関数325による演算に
よってデータの非線形変換を実現している。CAMEL
LIAの代表的な演算は、SBOX(GF(28 )上の
逆元回路+アフィン変換)S1からS4のS関数324
と、P関数325及びデータ正変換(FL)及びデータ
逆変換(FL−1)関数であるため、簡単なブール代数
の組み合わせで実現できる。
作を詳しく説明する。図37は、CAMELLIAの全
体構成及び動作を示した図である。CAMELLIA
は、入力される秘密鍵が128ビット鍵の場合は、内部
で256ビットに拡大し、拡大された拡大鍵を用いてデ
ータの暗号化/復号処理を行う。入力される秘密鍵が1
92ビット及び256ビット鍵の場合は、内部で512
ビットに拡大して、データの暗号化/復号に用いるが、
192ビット及び256ビット鍵の場合については後述
する。
述べる。CAMELLIAのアルゴリズム全体は、主変
換部320によって同様のF関数を繰り返し演算するこ
とで実現している。また、F関数は、図36に示す構成
をとる。また、データ攪拌部30では、図4のEXOR
回路31aとEXOR回路31bに示すように、入力デ
ータ及び出力データと鍵との排他的論理和演算(EXO
R)を行う。これをwhiteningと呼ぶ。また、
データ攪拌部30では、F関数6段を有する主変換部3
20ごとにデータ正変換(FL)とデータ逆変換(FL
-1)を有する副変換部330が挿入されている。これ
は、図34及び図35に示されている。また、前述した
とおり、拡大鍵(中間鍵+出力鍵)は、図2に示すよう
に、生成される。以上のことから、データ正変換(F
L)とデータ逆変換(FL-1)を有する副変換部33
0、P関数325、4種類のSボックスからCAMEL
LIAのアルゴリズムを実現するデータ変換装置を構築
できることがわかる。また、P関数325は、「128
ビットブロック暗号Camelliaアルゴリズム仕様
書」に示される表現方法に従って、表現することにより
小型化が可能である。
は、以下のように表現できる。 z1’=z1+z3+z4+z6+z7+z8 z2’=z1+z2+z4+z5+z7+z8 z3’=z1+z2+z3+z5+z6+z8 z4’=z2+z3+z4+z5+z6+z7 z5’=z1+z2 +z6+z7+z8 z6’=z2+z3 +z5+z7+z8 z7’=z3+z4 +z5+z6+z8 z8’=z1+z4 +z5+z6+z7 上記のz1’〜z8’を求める式の「+」は、排他的論
理和演算を示す。z1からz8は、各々mS1,S2,
S3,S4,S5(=S2),S6(=S3),S7
(=S4),S8(=S1)からの出力である。ここ
で、z5からz8をzz2,zz3,zz4,zz1と
記述変換すると、以下のようになる。 z1’=z1+z3+z4+zz1+zz3+zz4 z2’=z1+z2+z4+zz1+zz2+zz4 z3’=z1+z2+z3+zz1+zz2+zz3 z4’=z2+z3+z4+zz2+zz3+zz4 z5’=z1+z2 +zz1+zz3+zz4 z6’=z2+z3 +zz1+zz2+zz4 z7’=z3+z4 +zz1+zz2+zz3 z8’=z1+z4 +zz2+zz3+zz4 これにより、S1からS4をZ1からZ4を出力させる
演算及びzz1からzz4を出力させる演算というよう
に、2クロックかけて演算することで、P関数も約半分
の回路で構成することが可能である。
図37に基づいて説明する。図37に示すCAMELL
IAのデータ変換装置では、主変換部320と副変換部
330が並列に配置されている。副変換部330は、デ
ータ正変換部50とデータ逆変換部70とを有してい
る。主変換部320は、1/2のF関数から構成される
F関数部を有している。主変換部320がF関数未満の
F関数、即ち、1/2x (x≧1)F関数で構成され場
合は、図61の1/2F関数を例に挙げて説明したよう
に、1段のF関数をF関数部1321aによる処理とF
関数部1321bによる処理の中間結果であるEXOR
回路1322aの出力結果を保持しなくてはならない。
し、1段のF関数によるデータ変換処理を複数回のルー
プアーキテクチャで実現する方法を採用していくと、F
関数分の回路規模は減少していくが、ループを制御する
制御回路や各F関数に鍵を入力させるためのセレクタ等
の回路は増加する。このように、F関数分の回路規模と
ループを制御するための回路規模とは、トレードオフの
関係にある。従って、CAMELLIAのデータ変換装
置の小型化を考えた場合、実装するF関数の個数及び繰
り返しの回数を検討する必要がある。即ち、F関数を主
変換部320に1つ実装したCAMELLIAのデータ
変換装置を実現するか、又は、F関数内のSBOXの実
装する数を削減し、1段分のF関数によるデータ変換を
数サイクルで演算させるのか等を充分に検討する必要が
ある。これは、1段未満のF関数からF関数部を構成す
ることにより削減される回路規模とループを構成するた
めのセレクタ等の増加による回路規模増加とのトレード
オフの検討を意味する。また、CAMELLIAの場
合、前述したとおり、出力鍵(鍵KA)を生成するため
に用いる関数は、データ攪拌部30の主変換部320の
一部を用いる。よって、この場合にも、データ攪拌部3
0のF関数を利用するために追加されるセレクタ等の影
響を充分に検討する必要がある。図36を用いて説明し
たように、CAMELLIAのF関数は、8ビット入出
力を行う4種類(S1,S2,S3,S4)のSボック
スを2回ずつ使用している。ここでは、SBOXを8個
実装するか、又は、4つ実装して2回繰返すか等の検討
が必要である。2001年暗号と情報セキュリティシン
ポジウム予稿集に記載された「128bitブロック暗
号のハードウェア実装について(III)」より、Sボ
ックス1つの回路規模は、約200ゲートであり、Sボ
ックスを8個から4個に4個削減すると、約800ゲー
トの削減になる。一方、これとトレードオフの関係にあ
る繰り返しを行うための2−1セレクタが、少なくとも
32個(約NAND回路100ゲート)必要となる。こ
れにより、Sボックスを8個実装するより、4個実装し
て2回繰返すことにより回路が小さくなることが予想さ
れる。従って、CAMELLIAのデータ変換装置のF
関数部321は、Sボックスを8個実装して1回のデー
タ変換を行うことが可能であるが、Sボックスを4個実
装して2回のデータ変換を繰り返すことにより、データ
変換を行うことも可能であり、いずれを用いてもよい。
ただし、回路規模を考慮すれば、2回のデータ変換を繰
り返す方が好ましい。
ズムを用いた場合、このシーケンスにより、中間鍵生成
部40サイクルでデータの暗号化/復号を実現できる。
以下に、中間鍵生成部40サイクルの処理過程を示す。
まず、ステップ1では、副変換部330を用いて、Wh
iteningを演算する。次に、ステップ2で、主変
換部320を用いて、F関数の1/2の処理(1/2F
関数)を演算する。同様にステップ3で、主変換部32
0を用いて、残りのF関数の1/2の処理(1/2F関
数)を演算する。ステップ4〜ステップ13では、ステ
ップ2〜ステップ3を5回行う。ステップ14では、副
変換部330のデータ正変換(FL)とデータ逆変換
(FL−1)関数を演算することによりデータの変換を
行う。さらに、ステップ15〜ステップ27で、ステッ
プ2〜ステップ14を繰り返す。さらに、ステップ28
〜ステップ39で、ステップ2〜ステップ13を繰り返
す。最後にステップ40で、ステップS1と同様のWh
iteningを演算する。ここで、ステップ1は、図
4のEXOR回路31aによる演算を示し、ステップ4
0は図4のEXOR回路31bによる演算を示してい
る。即ち、EXOR回路31aとEXOR回路31bと
は、副変換部330に備えられたデータ正変換部50と
データ逆変換部70の有するEXORを使用して演算を
行う。なお、鍵生成部20の構成及び動作は、前述した
と同様であるので説明を省略する。
主変換部320により2サイクルで1つのF関数による
データ変換を行う。このデータ処理について、図37と
図64とを用いて、具体的な動作を説明する。図64
は、図61と比較すると、入力鍵として下位の鍵が最初
に入力され、上位の鍵が次に入力されて処理が実現され
る点で異なる。まず、ステップ1の具体的動作について
説明する。入力データであるP(平文又は復号文)は、
2−1セレクタ311により選択され、上位データと下
位データとに分割されて、上位データは、副変換部33
0のデータ正変換部50によってWhiteningさ
れ、下位データは、副変換部330のデータ逆変換部7
0に入力されて、同様に、Whiteningされる。
Whiteningされた上位データと下位データと
は、2−1セレクタ340の2−1セレクタH341と
3−1セレクタL342に入力される。各々入力された
データは、2−1セレクタH341と3−1セレクタL
342により選択され、演算レジスタH351と演算レ
ジスタL352に保持される。
る。演算レジスタH351に保持された上位データの上
位ビットが、2−1セレクタ312に入力されるととも
に、上位データの下位ビットが1バイトローテートシフ
トされて、2−1セレクタ312に入力される。2−1
セレクタ312は、2つの入力データからローテートシ
フトされている下位ビットを選択し、主変換部320へ
出力する。選択された下位ビットを1バイトローテート
シフトすることによって、図36に示すように、各入力
データ(5)から(8)を各Sボックスに適用させて入
力させることができる。主変換部320では、1/2F
関数を持つF関数部321により、図64に示す1段目
の上半分のデータ変換が行われる。ここで、図37のF
関数部321と図64の1/2F関数からなるF関数部
1321a〜F関数部1321lは、同一構成をとる。
図64に示すF関数部1321aによるデータ変換は、
鍵1Lを用いて、入力された上位データのうち、下位半
数ビットをデータ変換し、変換後のデータをEXOR回
路1322aに出力する。EXOR回路1322aは、
F関数部1321aによって出力された変換後のデータ
を入力するとともに、入力された下位データとの排他的
論理和をとられる。即ち、出力されたデータ(中間デー
タ)は、主変換部320から3−1セレクタL342に
入力され、演算レジスタL352に保持される。これと
同時に、演算レジスタH351に保持されていたPの上
位データが2−1セレクタ311を通り、副変換部33
0の、例えば、データ正変換部50のデータ転送を利用
してデータ転送を行い、2−1セレクタH341を経由
して、演算レジスタH351から、再び演算レジスタH
351に保持される。
る。図64のF関数部1321bによるデータ処理は、
図37の主変換部320による2サイクル目の処理で実
現される。即ち、1バイトローテートシフトさせずに、
2−1セレクタ312に入力した上位データの上位ビッ
トを2−1セレクタ312が選択し、主変換部320に
出力する。このような適用により、上位データの上位半
数ビットのデータがF関数部1321bにより非線形変
換されてEXOR回路1322bへ出力される。EXO
R回路1322bでは、もう一方の入力信号として、1
サイクル目で主変換部320が出力し、演算レジスタL
352に保持された中間データを主変換部320に入力
することにより、EXOR回路1322bへ入力する。
EXOR回路1322bで排他的論理和がとられた後の
出力データは、2−1セレクタH341に選択されて演
算レジスタH351に保持される。この時点で、Pの上
位データは、3−1セレクタL342を経由して演算レ
ジスタL352に保持されている。従って、図64の主
変換部320で行われる2段目のデータ変換処理に用い
られる上位データと下位データとが演算レジスタH35
1と演算レジスタL352に保持されていることとな
る。
2〜ステップ3を5回行う。即ち、2段目のデータ変換
をF関数部1321cとEXOR回路1322cとで1
サイクル、F関数部1321dとEXOR回路1322
dとで1サイクル、合わせて2サイクルで行う処理がス
テップ4、ステップ5の処理に相当する。3段目から6
段目の処理も、同様に行うが、これが、ステップ6〜ス
テップ13の処理に相当する。なお、前述したように、
図64のF関数部1321aからF関数部1321lの
関数は、図37のF関数部321の関数と同一の関数で
ある。
る。これは、図37の副変換部330による処理を示す
ものである。まず、演算レジスタH351と演算レジス
タL352に保持されたステップ13の処理後の上位デ
ータと下位データとは、2−1セレクタ311に入力さ
れ、選択されて、上位データをデータ正変換部50へ下
位データをデータ逆変換部70へ入力する。データ正変
換部50とデータ逆変換部70とでは、入力された各々
のデータを線形変換し、データ正変換部50による変換
データは2−1セレクタH341へ、データ逆変換部7
0による変換データは3−1セレクタL342へ入力さ
れ、各々選択されて、各々演算レジスタH351、演算
レジスタL352に保持される。
図37の主変換部320の処理と副変換部330の処理
に該当する。ステップ28からステップ39の処理は、
図37の主変換部320の処理に該当する。ステップ4
0では、ステップ1と同様に、副変換部330のEXO
Rを用いてWhiteningを行う。これらの中間鍵
生成部40ステップを経て、入力データPが平文の場合
には、暗号化処理により暗号文Cが出力され、入力デー
タPが暗号文の場合には、暗号化処理と同一回路によっ
て復号処理が行われ、復号文Cを出力することが可能と
なる。
Aを用いたデータ変換装置では、主変換部320と副変
換部330とを並列して配置したことにより、直列に配
置した場合に比べて、1サイクルのサイクル時間を短縮
でき、動作周波数の向上を図ることができる。
を並列して配置したことにより、主変換部320を通過
しないで副変換部330に信号を入力できるパスと、副
変換部330を通過しないで主変換部320に信号を入
力できるパスが存在することとなったため、将来的に行
われる他の構成や他の動作の付加、削除等の変更に対
し、柔軟に対応できる。
を直列に配置したCAMELLIAを使用したデータ変
換装置では、上述したように複数サイクルでF関数によ
る1回のデータ変換を行う場合には、1サイクルで変換
対象となるデータは、入力データの一部であるため、入
力データの一部の変換データを演算レジスタ350に保
持し、一定期間後に副変換部330に送るためのパスを
データ攪拌部30中に設けるか、または、一定期間後に
主変換部320を転送して副変換部330に送るための
転送パスを主変換部320中に設ける必要があった。し
かし、本実施の形態では、主変換部320と副変換部3
30とを並列に配置したため、上記パスの付加や主変換
部320の転送パス機能の追加を不要とし、装置の回路
規模の増加を抑止することが可能となる。
とデータ逆変換部70との共用回路を用いた場合には、
A→B→C→D→E→B→C・・・のパスがループ回路
となる。このため、実際のLSIにするときに、切換信
号の伝搬遅延の差による信号のレーシング、ノイズなど
の影響により、発信回路にならないような工夫が必要と
なる。また、このような上記ループ回路(FEEDBA
CK−LOOP回路)を持った回路には、論理合成ツー
ルが対応できず、効率よく論理合成が行われない、とい
う問題が生じていた。そこで、図37では、副変換部3
30のデータ正変換部50とデータ逆変換部70とを別
々に設ける構成とした。このため、上記レーシングなど
の問題を生じないデータ変換装置の構築が可能となっ
た。
変換部330の鍵及びデータの転送機能を用いること
で、鍵KLレジスタ240からの鍵のパスと主変換部3
20からのデータパスを不要とすることができる。この
ため、CAMELLIAのブロック処理を行うデータ変
換装置の更なる小型化と低消費電力化を図ることができ
る。
て説明する。図38は、実施の形態6のCAMELLI
Aのデータ変換装置の構成図である。図37比べ、副変
換部330が、データ正変換部50とデータ逆変換部7
0とを共用回路とする1/2副変換部90により構成さ
れている点が異なる。このため、図37の2−1セレク
タ215、4−1セレクタ217が不要となる。このよ
うに、本実施の形態のデータ変換装置では、2−1セレ
クタ215、4−1セレクタ217に必要な4つのセレ
クタと2−1セレクタ215によって出力された鍵を副
変換部330へ入力するパスが不要となる。このため、
鍵スケジュール部210の構成が簡略化でき、データ変
換装置の更なる小型化を図ることができる。
示すCAMELLIAのデータ変換装置の構成図であ
る。本実施の形態は、図37の構成図と比較し、主変換
部320のF関数部321が1/8のF関数から構成さ
れる部分が異なる。即ち、本実施の形態では、主変換部
320は、8サイクルでF関数1つのデータ変換を行う
こととなる。従って、図37と比べ、図37の2−1セ
レクタ312が8−1セレクタ315に変更されてい
る。他の構成は、図37と同様である。
示すCAMELLIAのデータ変換装置の構成図であ
る。本実施の形態では、図47で示す実施の形態と比
べ、330は1/2副変換部90を備える点で異なる。
従って、図47に示す2−1セレクタ215と4−1セ
レクタ217が不要となる。
示す。図49は、実施の形態9を示すCAMELLIA
のデータ変換装置の構成図である。本実施の形態では、
図37と比べ、主変換部320のF関数部321が1/
4のF関数から構成される点で異なる。従って、図37
の2−1セレクタ312が図49では、4−1セレクタ
316になっている。4−1セレクタ316により選択
された16ビットの入力データを使用して、F関数部3
21により主変換部320は4サイクルのデータ変換を
行うことで1つのF関数に対するデータ変換を行う。他
の構成は、図37と同様である。
0を示すCAMELLIAのデータ変換装置の構成図で
ある。図49に示す実施の形態と比べ、副変換部330
が1/2副変換部90を備える点で異なる。従って、図
49と比較して、2−1セレクタ215と4−1セレク
タ217が不要となる。他の構成は、図49と同様であ
る。
ついて説明する。図39は、実施の形態11を示すCA
MELLIAのデータ変換装置の構成図である。図37
との違いは、主変換部320がF関数を一つ持つF関数
部321により構成されている点である。従って、主変
換部320は、F関数1段の処理を1サイクルで行うこ
とができるため、図37に存在していた2−1セレクタ
312は不要となる。また、図37の2−1セレクタ2
12が不要となり、8−1セレクタ213が4つの定数
から一つの定数を選択する4−1セレクタ218に変わ
っている。
ついて説明する。図40は、実施の形態12を示すCA
MELLIAのデータ変換装置の構成図である。図40
では、2−1セレクタ313が付加されている。これ
は、副変換部330が1/2副変換部90によって構成
されるために、2−1セレクタ311によって選択され
たデータから、その上位データか下位データのいずれか
を選択するためである。本実施の形態では、主変換部3
20による処理を1サイクルで行うため、図39と同様
に2−1セレクタ312は不要となる。また、図39の
2−1セレクタ215と4−1セレクタ217とが不要
となる。
ついて説明する。図41は、実施の形態13を示すCA
MELLIAのデータ変換装置の構成図である。図39
と比較すると、主変換部320がF関数部321を6回
繰り返すのではなく、主変換部320がF関数部321
を6段直列して持ち、データの変換を行う点で異なる。
従って、本実施の形態では、主変換部320の出力信号
が1つ増えている。これは、主変換部320の2段目の
F関数の出力データを3−1セレクタH343と4−1
セレクタL344とに入力し、演算レジスタH351と
演算レジスタL352とにより保持させるためである。
このため、3−1セレクタH343は入力信号が3つと
なり、4−1セレクタL344は入力信号が4つとなっ
ている。また、4−1セレクタ500と4−1セレクタ
501を4組備え、それらから選択された4つの鍵を主
変換部320に入力するセレクタが増えている。また、
鍵スケジュール部210の他のセレクタである4−1セ
レクタ502と4−1セレクタ503からも副変換部3
30と主変換部320に鍵が供給される構成となってい
る。
ついて説明する。図42は、実施の形態14を示すCA
MELLIAのデータ変換装置の構成図である。図42
は、図41と同様に、6段のF関数を直列に備えたF関
数部を主変換部320が備える点で、図40と異なる。
このため、図41の場合と同様に、図40と比べ、3−
1セレクタH343と4−1セレクタL344の入力信
号が1つずつ増え、また、4−1セレクタ500と4−
1セレクタ501を4組備えることが必要となる。ま
た、鍵スケジュール部210の他のセレクタである4−
1セレクタ502と3−1セレクタ504からも副変換
部330と主変換部320に鍵が供給される構成となっ
ている。なお、3−1セレクタ504には、3つの入力
信号が入力される。
に示す。図43は、実施の形態15を示すCAMELL
IAのデータ変換装置の構成図である。本実施の形態で
は、図41と比べ、主変換部320がF関数を2段備え
たF関数部321を有する点で異なる。よって、図41
と比べ、3−1セレクタH343と4−1セレクタL3
44が2−1セレクタH341と3−1セレクタL34
2に置き換わり、かつ、4−1セレクタ500と4−1
セレクタ501を備えた4組のセレクタが不要となって
いる。
に示す。図44は、実施の形態16を示すCAMELL
IAのデータ変換装置の構成図である。本実施の形態で
は、図42の実施の形態と比べ、主変換部320が備え
るF関数部321が2段のF関数からなっている点で異
なる。従って、図42の3−1セレクタH343と4−
1セレクタL344が2−1セレクタH341と3−1
セレクタL342に置き換わり、また、4−1セレクタ
500と4−1セレクタ501とからなる4組のセレク
タが不要となる。
7を示すCAMELLIAのデータ変換装置の構成図で
ある。本実施の形態では、主変換部320のF関数部3
21が3段のF関数を有している。従って、図41と比
較すると、4−1セレクタ500と4−1セレクタ50
1とからなる4組のセレクタが不要となり、その代わり
に、4−1セレクタ505が付加されている。4−1セ
レクタ505によって選択された信号が主変換部320
に入力される。
8を示すCAMELLIAのデータ変換装置の構成図で
ある。図45で示す実施の形態と同様に、主変換部32
0のF関数部321は3段のF関数を有している。図4
5と比較して異なる部分は、副変換部330が本実施の
形態では、1/2副変換部90を備えていることであ
る。他の構成は同様である。
9を示すCAMELLIAのデータ変換装置の構成図で
ある。本実施の形態では、まず、中間鍵生成部40の構
成が図37等と比べて異なっている。本実施の形態で示
す中間鍵生成部40の構成と図37等で示す中間鍵生成
部40の構成は等価であるため、図37等の中間鍵生成
部40は、図51で示す中間鍵生成部40に置き換える
ことが可能である。図51の中間鍵生成部40の構成に
ついて、説明する。まず、2−1KLセレクタ291
は、入力された秘密鍵と鍵KLレジスタ240保持され
た中間鍵(鍵KL)とを入力し、この2つの入力信号か
ら1つの信号を選択し、鍵KLレジスタ240に保持す
る。また、2−1KAセレクタ292は、中間鍵生成部
40が生成する出力鍵と鍵KAレジスタ250に保持さ
れた出力鍵(鍵KA)を入力する。入力された2つの入
力信号から2−1KAセレクタ292は、1つの信号を
選択し、選択された信号を鍵KAレジスタ250が保持
する。2−1セレクタ227は、鍵KLレジスタ240
と鍵KAレジスタ250に保持された中間鍵(鍵KL)
と出力鍵(鍵KA)から1つの鍵を選択し、8−1セレ
クタ228に出力する。8−1セレクタ228は、2−
1セレクタ227によって選択された鍵を、図51に示
すように、0,15,30,45,60,77,94,
111の8つのビット数で右または左に巡回シフトさせ
る。即ち、巡回シフトビット数が0の場合には、データ
をシフトしない。巡回シフトビット数が15の場合に
は、右又は左へ15ビットデータを巡回シフトさせる。
他も同様である。このように、データを巡回シフトさせ
ることにより8つの信号を生成し、8つの信号から8−
1セレクタ228は1つの信号を選択し、出力する。こ
のような動作により、図37の中間鍵生成部40の機能
と同様の機能を本実施の形態の構成を持つ中間鍵生成部
40が果たすことが可能となる。このようにして、中間
鍵生成部40から出力されたデータのうち、上位半数ビ
ットをKLH、下位半数ビットをKLLとして、鍵スケ
ジュール部210の2−1セレクタ510と2−1セレ
クタ511に入力する。このように、図37の4−1セ
レクタ216と4−1セレクタ217は、本実施の形態
では、2−1セレクタ510と2−1セレクタ511に
置き換えることができる。従って、図52に示す中間鍵
生成部40では、2−1セレクタが図37で示す中間鍵
生成部40と同様に10個必要であるが、2−1セレク
タ510と2−1セレクタ511とに必要な2−1セレ
クタは2つのみ必要であるため、中間鍵生成部40と2
−1セレクタ510と2−1セレクタ511とで必要な
2−1セレクタは、全体で12個となる。図37に示す
中間鍵生成部40では、10個の2−1セレクタが必要
であり、かつ、4−1セレクタ216と4−1セレクタ
217に6個の2−1セレクタが必要であるため、中間
鍵生成部40と4−1セレクタ216と4−1セレクタ
217とが備える必要のある2−1セレクタは、合計で
16個となる。従って、図37に示すデータ変換装置と
比較して、本実施の形態のデータ変換装置は、全体とし
て4つの2−1セレクタを削減することができる。よっ
て、本実施の形態では、セレクタの削減による小型化と
セレクタの削減によるゲート数の減少に伴う低消費電力
化を図ることができる。なお、本実施の形態で示した中
間鍵生成部40の構成は、他の全ての実施の形態におけ
る中間鍵生成部40の構成として用いることが可能であ
る。
0を示すCAMELLIAのデータ変換装置の構成図で
ある。図51と比較し、本実施の形態では、副変換部3
30が1/2副変換部90を備える点で異なる。よっ
て、図51に示す2−1セレクタ215と2−1セレク
タ511が、本実施の形態では不要となる。他の構成
は、図51と同様である。なお、図51と図52で示さ
れるローテートシフトビット数は、巡回シフトビット数
と同義である。
で示した図34と図35とは、128ビット長の鍵を用
いたCAMELLIAによる暗号化処理及び復号処理を
行う処理を示していた。しかし、全ての実施の形態につ
いてのデータ変換装置の構成図は、128ビット長の鍵
だけでなく、192ビット長の鍵及び256ビット鍵の
全てに基づいた暗号化/復号処理を行うCAMELLI
Aのデータ変換装置にも適用することができる。
した図である。前述した128ビット鍵の場合には、拡
大鍵として256ビット長の鍵を生成したが、入力する
秘密鍵が192ビットの場合及び256ビットの場合に
は、拡大鍵は512ビット長となる。図53では、鍵K
Lと鍵KRが中間鍵であり、鍵KAと鍵KBとが出力鍵
である。更に、鍵KL、鍵KR、鍵KA、鍵KBは、全
て128ビットであるので、これらを合計して拡大鍵5
12ビットが生成されることとなる。入力される秘密鍵
が256ビットの場合には、鍵KLは、入力された秘密
鍵の上位半分ビットの128ビットとなり、鍵KRは、
下位128ビットとなる。鍵KLと鍵KRとは、排他的
論理和をとられ、図53に示すように、主変換部320
の一部に入力される。
の拡大鍵の生成方法を示した図2の右側の部分に対応し
ている。図53の左側の入力鍵から出力鍵KAを生成す
る方法は、鍵KLと鍵KRとの排他的論理和が入力鍵と
なる点を除き、図2に示す出力鍵KAの生成方法と同様
である。図53の右側の鍵KRから出力鍵KBを生成す
る過程は、図2に存在しない。従って、出力鍵(鍵K
B)の生成方法について説明する。入力された鍵が25
6ビットの場合には、下位128ビットを入力鍵(鍵K
R)とし、主変換部320に入力する。下位128ビッ
ト中の上位ビットが主変換部320の1段目に位置する
F関数部321aを用いて定数Σ5により非線形変換さ
れ、出力される。出力されたデータは、入力鍵(鍵K
R)の下位ビットとの間でEXOR回路322aにより
排他的論理和がとられ、F関数部321bに入力され
る。F関数部321bでは、定数Σ6によって再びデー
タが非線形変換され、変換後のデータと入力鍵(鍵K
R)の上位ビットとの間でEXOR回路322bにより
排他的論理和がとられる。EXOR回路322bによる
演算後の変換データが出力鍵(鍵KB)の上位64ビッ
トデータとしてとして出力され、EXOR回路322a
による演算結果のデータが出力鍵(鍵KB)の下位64
ビットデータとして出力される。このようにして、生成
された出力鍵(鍵KA及び鍵KB)と入力鍵(鍵KL及
び鍵KR)とは、512ビットの拡大鍵として中間鍵生
成部40から鍵スケジュール部210へ送られ、鍵スケ
ジュール部210によって鍵のスケジュールが行われ、
データの暗号化/復号に用いられる。
力された秘密鍵の上位128ビットが鍵KLとなる。ま
た、入力された秘密鍵の下位64ビットが鍵KRの上位
64ビットとなる。鍵KRの下位64ビットは、鍵KR
の上位64ビット、即ち、入力された秘密鍵の下位64
ビットを反転させたものである。その他の鍵生成方法に
ついては、秘密鍵が256ビットの場合と同様であるの
で説明を省略する。
ト鍵CAMELLIAの暗号処理を示す図である。12
8ビット鍵CAMELLIAの暗号化処理を示す図34
と比較した場合、主変換部320が3つから4つに増加
し、副変換部330が2つから3つに増加している。従
って、192ビット鍵及び256ビット鍵の暗号化処理
では、全体で24段のF関数による暗号処理が行われ
る。他の構成は、図34に示す128ビット鍵の場合と
同様であるので説明を省略する。
ト鍵のCAMELLIAの復号処理を示す図である。1
28ビット鍵のCAMELLIAの復号処理については
図35に示したが、図35と比較すると、主変換部32
0が4つ、副変換部330が3つと増加しており、暗号
化処理の場合と同様にF関数が24段となっている。そ
の他の構成は、128ビット鍵のCAMELLIAの復
号処理と同様であるので説明を省略する。なお、128
ビット鍵及び192ビット鍵及び156ビット鍵のブロ
ック暗号CAMELLIAルゴリズムの詳細は、「12
8ビットブロック暗号CAMELLIAアルゴリズム仕
様書」に記載する。
28ビット鍵のデータ変換装置、192ビット鍵のデー
タ変換装置、256ビット鍵のデータ変換装置に、採用
することができる。
0が備える鍵転送及びデータ転送機能を用いることが可
能である。
動作はお互いに関連しており、各構成要素の動作は、上
記に示された動作の関連を考慮しながら、一連の動作と
して置き換えることができる。そして、このように置き
換えることにより、方法の発明の実施形態とすることが
できる。また、上記各構成要素の動作を、各構成要素の
処理と置き換えることにより、プログラムの実施の形態
とすることができる。また、プログラムを、プログラム
を記録したコンピュータ読み取り可能な記録媒体に記憶
させることで、プログラムに記録したコンピュータ読取
り可能な記録媒体の実施の形態とすることができる。
記録したコンピュータ読取り可能な記録媒体の実施の形
態は、すべてコンピュータで動作可能なプログラムによ
り構成することができる。プログラムの実施の形態およ
びプログラムを記録したコンピュータ読取り可能な記録
媒体の実施の形態における各処理はプログラムで実行さ
れるが、このプログラムは、記録装置に記録されてい
て、記録装置から中央処理装置(CPU)に読み込ま
れ、中央処理装置によって、各フローチャートが実行さ
れることになる。なお、記録装置、中央処理装置は図示
していない。また、各実施の形態のソフトウエアやプロ
グラムは、ROM(READ ONLY MEMOR
Y)に記憶されたファームウエアで実現されていても構
わない。あるいは、ソフトウエアとファームウエアとハ
ードウエアとの組み合わせで前述したプログラムの各機
能を実現しても構わない。
により、装置の小型化を図ることができる。
とにより、低消費電力化を図ることができる。
る。
送できる。
の一方でデータのデータ変換をし、データ正変換部50
かデータ逆変換部70の他方で入力されたデータまたは
鍵を転送することが出来る。
り、装置の小型化が図れ、また、セレクタ数の減少によ
る低消費電力化を図ることが可能となる。
る。
中間鍵から出力鍵を生成する動作を示す図である。
作を示す図である。
の動作を示す図である。
である。
に配置したデータ変換装置の構成図である。
置されたデータ変換装置の構成図である。
0及び6−1KAセレクタ230の内部構成を示す図で
ある。
る。
場合の副変換部330の内部構成図である。
場合の副変換部330の内部構成図である。
とが鍵転送機能を有する場合の副変換部330の内部構
成図である。
がデータ転送機能を有する場合の副変換部330の内部
構成図である。
する場合の副変換部330の内部構成図である。
がデータ転送機能を有する場合の副変換部330の内部
構成図である。
が鍵転送機能とデータ転送機能、データ逆変換部70が
鍵転送機能を有する場合の副変換部330の内部構成図
である。
転送機能、データ正変換部50が鍵転送機能を有する場
合の副変換部330の内部構成図である。
が鍵転送機能とデータ転送機能を有する場合の副変換部
330の内部構成図である。
転送機能を有する場合の副変換部330の内部構成図で
ある。
転送機能を有する場合の副変換部330の内部構成図で
ある。
転送機能、データ逆変換部70がデータ転送機能を有す
る場合の副変換部330の構成図である。
転送機能、データ正変換部50がデータ転送機能を有す
る場合の副変換部330の構成図である。
ータ逆変換部70が鍵転送機能を有する場合の副変換部
330の構成図である。
逆変換部70がデータ転送機能を有する場合の副変換部
330の構成図である。
とをシリアルに接続し、データ正変換部50とデータ逆
変換部70とが各々データ転送機能を有する場合の副変
換部330の構成図である。
換部70とが上下入れ替わっている場合の副変換部33
0の構成図である。
とをシリアルに接続し、データ正変換部50が鍵転送機
能及びデータ転送機能を有し、データ逆変換部70がデ
ータ転送機能を有する場合の副変換部330の構成図で
ある。
換部70とが上下入れ替わっている場合の副変換部33
0の構成図である。
とをシリアルに接続し、データ正変換部50がデータ転
送機能を有し、データ逆変換部70が鍵転送機能及びデ
ータ転送機能を有する場合の副変換部330の構成図で
ある。
換部70とが上下入れ替わっている場合の副変換部33
0の構成図である。
に鍵転送機能及びデータ転送機能を付加した場合の副変
換部330の構成図である。
加した場合の副変換部330の構成図である。
た場合の副変換部330の構成図である。
のデータ変換装置におけるデータ暗号化処理を示す図で
ある。
のデータ変換装置におけるデータ復号処理を示す図であ
る。
るF関数の内部構成図である。
図である。
図である。
た図である。
た図である。
た図である。
た図である。
た図である。
た図である。
た図である。
た図である。
図である。
図である。
図である。
た図である。
た図である。
た図である。
成部40が中間鍵から出力鍵を生成する動作を示す図で
ある。
LLIAのデータ変換装置におけるデータ暗号化処理を
示す図である。
LLIAのデータ変換装置におけるデータ復号処理を示
す図である。
の一例である。
ある。
50とデータ逆変換部70とを共用した回路を示す図で
ある。
の他の一例である。
る。
とをシリアルに接続し、データ正変換部50とデータ逆
変換部70が鍵転送機能及びデータ転送機能を有する場
合の副変換部330の構成図である。
換部70とが上下入れ替わっている場合の副変換部33
0の構成図である。
構成の一例である。
0 中間鍵生成部、50 データ正変換部、51,5
4,58,59,60,71,73,77,79,8
0,95,96,97,98,101 AND回路、5
2,72,100NOT回路、53,57,74,7
8,92,94 OR回路、31a,31b,55,5
6,75,76,91,93,322a,322b,3
22c,322d,322e,322f,323,60
0,601,1322a,1322b,1322c,1
322d,1322e,1322f,1322g,13
22h,1322i,1322j,1322k,132
2l EXOR回路、70 データ逆変換部、90 1
/2副変換部、210 鍵スケジュール部、99a,9
9b,211,212,214,215,224,22
7,311,312,313,510,511 2−1
セレクタ、213,228,315 8−1セレクタ、
216,217,218,219,223,316,5
00,501,502,503,505 4−1セレク
タ、220 6−1KLセレクタ、221,231 6
−1セレクタ、222 3−1KLセレクタ、230
6−1KAセレクタ、232 3−1KAセレクタ、2
40 鍵KLレジスタ、250 鍵KAレジスタ、29
1 2−1KLセレクタ、292 2−1KAセレク
タ、310,340 セレクタ、320,320a,3
20b,320c 主変換部、321,321a,32
1b,321c,321d,321e,321f,13
21a,1321b,1321c,1321d,132
1e,1321f,1321g,1321h,1321
i,1321j,1321k,1321l F関数部、
324 S関数、324a,324h S1 、324
b,324e S4、324c,324f S3 、32
4d,324g S2 、325 P関数、330,33
0a,330b 副変換部、341 2−1セレクタ
H、342 3−1セレクタL、343 3−1セレク
タH、344 4−1セレクタL、350 演算レジス
タ、351 演算レジスタH、352 演算レジスタ
L、5043−1セレクタ。
Claims (35)
- 【請求項1】 鍵とデータとを入力し、入力した鍵を使
用して入力したデータの暗号化とデータの復号の少なく
ともいずれかのデータ変換を行うデータ変換装置であっ
て、 上記データ変換装置は、データを変換するデータ攪拌部
と入力した鍵と入力したデータとのいずれかを転送する
ことを指示している転送信号を制御する制御部を備え、 上記制御部は、鍵とデータとのいずれかを転送する場合
に、転送信号を出力し、 上記データ攪拌部は、入力した鍵を使用してデータを変
換することにより少なくともデータの暗号化とデータの
復号のいずれかのデータ変換を行うとともに、上記制御
部によって出力された転送信号を入力した場合には入力
した鍵と入力したデータの少なくともいずれかをデータ
変換せずに転送する副変換部を備えることを特徴とする
データ変換装置。 - 【請求項2】 上記データ攪拌部は、さらに、 データを入力し、入力したデータを非線形にデータ変換
する主変換部を備え、 上記制御部は、データを転送する場合には転送信号とし
てデータ転送信号を出力し、 上記副変換部は、上記制御部によって出力されたデータ
転送信号と上記主変換部によってデータ変換されたデー
タとを入力し、入力したデータ転送信号に従って入力し
たデータを転送することを特徴とする請求項1に記載さ
れたデータ変換装置。 - 【請求項3】 上記データ変換装置は、さらに、 鍵を生成する鍵生成部を備え、 上記制御部は、鍵を転送する場合には転送信号として鍵
転送信号を出力し、 上記副変換部は、上記制御部によって出力された鍵転送
信号と上記鍵生成部によって生成された鍵とを入力し、
入力した鍵転送信号に従って入力した鍵を転送すること
を特徴とする請求項1に記載されたデータ変換装置。 - 【請求項4】 上記鍵生成部は、さらに、 秘密鍵を入力し、入力した秘密鍵から中間鍵を生成する
中間鍵生成部を備え、 上記副変換部は、上記制御部によって出力された鍵転送
信号を入力した場合には、入力した鍵転送信号に従って
上記中間鍵生成部が生成した中間鍵を上記主変換部に転
送し、 上記主変換部は、上記副変換部によって転送された中間
鍵を変換して出力することを1以上繰り返し、 上記副変換部は、上記主変換部によって出力された中間
鍵を変換して出力することを1以上繰り返し、 上記主変換部と上記副変換部との少なくともいずれか
は、上記中間鍵を変換して出力することを1以上繰り返
し、 上記主変換部は、上記主変換部と上記副変換部との少な
くともいずれかによって出力された中間鍵を出力鍵とし
て出力し、 上記中間鍵生成部は、上記主変換部によって出力された
出力鍵を入力することにより、中間鍵と出力鍵とからな
る拡大鍵を生成することを特徴とする請求項3に記載さ
れたデータ変換装置。 - 【請求項5】 上記中間鍵生成部は、入力された6つの
鍵から1つの鍵を選択する6−1KLセレクタと6−1
KLセレクタから選択された1つの鍵を中間鍵として保
持する鍵KLレジスタとを有し、 上記6−1KLセレクタは、秘密鍵を入力し、入力され
た秘密鍵と、上記鍵KLレジスタによって保持された中
間鍵と、上記鍵KLレジスタによって保持された中間鍵
から4つの異なるシフト数で各々巡回ビットシフトさせ
た4つの鍵からなる6つの鍵を入力し、入力した6つの
鍵から1つの鍵を選択し、 上記鍵KLレジスタは、上記6−1KLセレクタによっ
て選択された鍵を保持し、 上記副変換部は、上記制御部から出力された鍵転送信号
を入力した場合には上記鍵KLレジスタに保持された鍵
を中間鍵として入力し、入力した中間鍵を転送すること
を特徴とする請求項4に記載されたデータ変換装置。 - 【請求項6】 上記中間鍵生成部は、入力された4つの
鍵から1つの鍵を選択する4−1セレクタと入力された
3つの鍵から1つの鍵を選択する3−1KLセレクタと
3−1KLセレクタから選択された1つの鍵を中間鍵と
して保持する鍵KLレジスタとを有し、 上記4−1セレクタは、上記鍵KLレジスタによって保
持された中間鍵から4つの異なるシフト数で各々巡回ビ
ットシフトさせた4つの鍵を入力し、入力した4つの鍵
から1つの鍵を選択し、 上記3−1KLセレクタは、秘密鍵を入力し、入力した
秘密鍵と上記4−1セレクタによって選択された1つの
鍵と上記鍵KLレジスタに保持された中間鍵とからなる
3つの鍵を入力し、入力した3つの鍵から1つの鍵を選
択し、 上記鍵KLレジスタは、上記3−1KLセレクタによっ
て選択された鍵を保持し、 上記副変換部は、上記制御部から出力された鍵転送信号
を入力した場合には、上記鍵KLレジスタに保持された
鍵を中間鍵として入力し、入力した中間鍵を転送するこ
とを特徴とする請求項4に記載されたデータ変換装置。 - 【請求項7】 上記鍵生成部は、さらに、 上記中間鍵生成部によって生成された拡大鍵と所定の定
数とを入力し、所定の条件に従って入力した拡大鍵と所
定の定数とのいずれかを上記主変換部と上記副変換部の
少なくともいずれかへ出力する鍵をスケジュールする鍵
スケジュール部を備えることを特徴とする請求項4に記
載されたデータ変換装置。 - 【請求項8】 上記副変換部は、データの線形によるデ
ータ変換を行うデータ正変換部(FL)と上記データ正
変換部(FL)と逆のデータ変換を行うデータ逆変換部
(FL-1)との少なくともいずれかを有し、 上記データ正変換部(FL)と上記データ逆変換部(F
L-1)との少なくともいずれかは、データ変換を行うと
ともに、上記制御部が転送信号を出力した場合には、上
記制御部が出力した転送信号を入力し、入力した転送信
号にしたがってデータと鍵との少なくともいずれかをデ
ータ変換せずに転送することを特徴とする請求項1に記
載されたデータ変換装置。 - 【請求項9】 上記制御部は、入力された鍵を転送する
転送信号として鍵転送信号である鍵トランスファ信号と
マスク信号とを出力し、 上記データ正変換部(FL)と上記データ逆変換部(F
L-1)との少なくともいずれかは、上記制御部によって
出力された鍵トランスファ信号とマスク信号とを入力し
た場合には、入力した鍵トランスファ信号によって入力
されたデータを無効とするとともに、入力されたマスク
信号によって入力された鍵を通過させることで鍵を転送
することを特徴とする請求項8に記載されたデータ変換
装置。 - 【請求項10】 上記制御部は、入力されたデータを転
送する転送信号としてデータ転送信号であるデータトラ
ンスファ信号を出力し、 上記データ正変換部(FL)と上記データ逆変換部(F
L-1)との少なくともいずれかは、上記制御部によって
出力されたデータトランスファ信号を入力した場合に
は、入力したデータトランスファ信号によって入力され
た鍵を無効とするとともに、入力されたデータを通過さ
せることでデータを転送することを特徴とする請求項8
に記載されたデータ変換装置。 - 【請求項11】 上記副変換部は、データの線形による
データ変換を行うデータ正変換と上記データ正変換とは
逆のデータ変換を行うデータ逆変換とを同一の回路を共
用して行う1/2副変換部を有し、1/2副変換部によ
ってデータをデータ変換するとともに、上記制御部が転
送信号を出力した場合には、上記制御部が出力した転送
信号を入力し、入力した転送信号にしたがって鍵とデー
タの少なくともいずれかを転送することを特徴とする請
求項1に記載されたデータ変換装置。 - 【請求項12】 上記副変換部は、データの線形による
データ変換を行うデータ正変換部(FL)と上記データ
正変換部(FL)と逆のデータ変換を行うデータ逆変換
部(FL-1)とを有し、上記データ正変換部(FL)と
上記データ逆変換部(FL-1)とを直列に配置し、 上記データ正変換部(FL)と上記データ逆変換部(F
L-1)とのいずれか一方は、上記データ正変換部(F
L)と上記データ逆変換部(FL-1)とのいずれか他方
によってデータ変換されたデータか、転送された鍵か、
転送されたデータか、のいずれかを入力し、入力したデ
ータ変換されたデータか、転送された鍵か、転送された
データか、のいずれかを使用してデータ変換か鍵の転送
かデータの転送のいずれかを行うことを特徴とする請求
項1に記載されたデータ変換装置。 - 【請求項13】 上記データ変換装置は、128ビット
か192ビットか256ビットのいずれかの鍵を入力
し、入力した鍵を使用して入力したデータをデータ変換
することを特徴とする請求項1に記載されたデータ変換
装置。 - 【請求項14】 鍵とデータとを入力し、入力した鍵を
使用して少なくとも入力したデータの暗号化とデータの
復号のいずれかのデータ変換を行うデータ変換方法であ
って、 上記データ変換方法は、鍵とデータとのいずれかを転送
する場合に、入力した鍵と入力したデータとのいずれか
を転送することを指示している転送信号を出力し、 入力した鍵を使用してデータを変換することにより少な
くともデータの暗号化とデータの復号のいずれかのデー
タ変換を行うとともに、上記出力された転送信号を入力
した場合には入力した鍵と入力したデータの少なくとも
いずれかをデータ変換せずに転送することを特徴とする
データ変換方法。 - 【請求項15】 鍵とデータとを入力し、入力した鍵を
使用して入力したデータの暗号化とデータの復号の少な
くともいずれかのデータ変換を行うデータ変換プログラ
ムであって、 上記データ変換プログラムは、鍵とデータとのいずれか
を転送する場合に、入力した鍵と入力したデータとのい
ずれかを転送することを指示している転送信号を出力す
る処理と、 入力した鍵を使用してデータを変換することにより少な
くともデータの暗号化とデータの復号のいずれかのデー
タ変換を行うとともに、上記出力された転送信号を入力
した場合には入力した鍵と入力したデータの少なくとも
いずれかをデータ変換せずに転送する処理とをコンピュ
ータに実行させることを特徴とするデータ変換プログラ
ム。 - 【請求項16】 鍵とデータとを入力し、入力した鍵を
使用して入力したデータの暗号化とデータの復号の少な
くともいずれかのデータ変換を行うデータ変換プログラ
ムを記録したコンピュータ読み取り可能な記録媒体であ
って、 上記データ変換プログラムを記録したコンピュータ読み
取り可能な記録媒体は、鍵とデータとのいずれかを転送
する場合に、入力した鍵と入力したデータとのいずれか
を転送することを指示している転送信号を出力する処理
と、 入力した鍵を使用してデータを変換することにより少な
くともデータの暗号化とデータの復号のいずれかのデー
タ変換を行うとともに、上記出力された転送信号を入力
した場合には入力した鍵と入力したデータの少なくとも
いずれかをデータ変換せずに転送する処理をコンピュー
タに実行させるためのデータ変換プログラムを記録した
コンピュータ読み取り可能な記録媒体。 - 【請求項17】 上記データ変換装置は、さらに、 鍵を生成する鍵生成部を備え、 上記鍵生成部は、さらに、 秘密鍵を入力し、入力した秘密鍵から中間鍵を生成し、
生成した中間鍵から上記主変換部と上記副変換部とを用
いて出力鍵を生成する中間鍵生成部を備えることを特徴
とする請求項1に記載されたデータ変換装置。 - 【請求項18】 上記中間鍵生成部は、6つの鍵を入力
し、入力した6つの鍵から1つの鍵を選択する6−1K
Lセレクタと、前記6−1KLセレクタから選択された
1つの鍵を中間鍵として保持する鍵KLレジスタと、6
つの鍵から1つの鍵を選択する6−1KAセレクタと、
6−1KAセレクタから選択された1つの鍵を出力鍵と
して保持する鍵KAレジスタと、を有し、 上記6−1KLセレクタは、秘密鍵を入力し、入力され
た秘密鍵と、上記鍵KLレジスタに保持された中間鍵
と、上記鍵KLレジスタに保持された中間鍵とから4つ
の異なるシフト数で各々巡回ビットシフトさせた4つの
鍵とからなる6つの鍵を入力し、入力した6つの鍵から
1つの鍵を選択し、 上記鍵KLレジスタは、上記6−1KLセレクタによっ
て選択された鍵を中間鍵として保持し、 上記6−1KAセレクタは、上記主変換部と上記副変換
部とを用いて生成された出力鍵を入力し、入力した出力
鍵と、上記鍵KAレジスタに保持された出力鍵と、上記
鍵KAレジスタに保持された出力鍵から4つの異なるシ
フト数で各々巡回ビットシフトさせた4つの鍵と、から
なる6つの鍵を入力し、入力した6つの鍵から1つの鍵
を選択し、 上記鍵KAレジスタは、上記6−1KAセレクタによっ
て選択された鍵を出力鍵として保持することを特徴とす
る請求項17に記載されたデータ変換装置。 - 【請求項19】 上記中間鍵生成部は、2つの鍵から1
つの鍵を選択する2−1セレクタと、4つの鍵から1つ
の鍵を選択する4−1セレクタと、3つの鍵から1つの
鍵を選択する3−1KLセレクタと、3−1KLセレク
タから選択された鍵を中間鍵として保持する鍵KLレジ
スタと、3つの鍵から1つの鍵を選択する3−1KAセ
レクタと、3−1KAセレクタから選択された鍵を出力
鍵として保持する鍵KAレジスタとを有し、 上記2−1セレクタは、上記鍵KLレジスタに保持され
た中間鍵と、上記鍵KAレジスタに保持された出力鍵と
から1つの鍵を選択し、 上記4−1セレクタは、上記2−1セレクタによって選
択された鍵から4つの異なるシフト数で各々巡回ビット
シフトさせた4つの鍵を入力し、入力した4つの鍵から
1つの鍵を選択し、 上記3−1KLセレクタは、秘密鍵を入力し、入力され
た秘密鍵と、上記4−1セレクタによって選択された鍵
と、上記鍵KLレジスタに保持された中間鍵とからなる
3つの鍵を入力し、入力した3つの鍵から1つの鍵を選
択し、 上記鍵KLレジスタは、上記3−1KLセレクタによっ
て選択された鍵を中間鍵として保持し、 上記3−1KAセレクタは、上記主変換部と上記副変換
部とを用いて生成された出力鍵を入力し、入力した出力
鍵と、上記4−1セレクタによって選択された鍵と、上
記鍵KAレジスタに保持された出力鍵とからなる3つの
鍵を入力し、入力した3つの鍵から1つの鍵を選択し、 上記鍵KAレジスタは、上記3−1KAセレクタによっ
て選択された鍵を出力鍵として保持することを特徴とす
る請求項17に記載されたデータ変換装置。 - 【請求項20】 上記中間鍵生成部は、2つの鍵から1
つの鍵を選択する2−1KLセレクタと、2−1KLセ
レクタから選択された鍵を保持する鍵KLレジスタと、
2つの鍵から1つの鍵を選択する2−1KAセレクタ
と、2−1KAセレクタから選択された鍵を保持する鍵
KAレジスタと、2つの鍵から1つの鍵を選択する2−
1セレクタと、8つの鍵から1つの鍵を選択する8−1
セレクタとを有し、 上記2−1KLセレクタは、秘密鍵を入力し、入力した
秘密鍵と上記鍵KLレジスタに保持された鍵とから1つ
の鍵を選択し、 上記2−1KAセレクタは、上記主変換部と上記副変換
部とを用いて生成された出力鍵を入力し、入力した出力
鍵と上記鍵KAレジスタに保持された鍵とから1つの鍵
を選択し、 上記2−1セレクタは、上記2−1KLセレクタと上記
2−1KAセレクタとによって選択された2つの鍵から
1つの鍵を選択し、 上記8−1セレクタは、上記2−1セレクタによって選
択された鍵から8つの異なるシフト数で各々巡回ビット
シフトさせた8つの鍵を入力し、入力した8つ鍵から1
つ鍵を選択することを特徴とする請求項17に記載され
たデータ変換装置。 - 【請求項21】 データをデータ変換するデータ攪拌部
を備えるデータ変換装置であって、 上記データ攪拌部は、データを入力し、入力したデータ
を非線形にデータ変換する主変換部と入力したデータを
線形にデータ変換する副変換部とを並列に備え、 上記主変換部は、鍵とデータとを入力し、入力した鍵を
使用して非線形にデータ変換を行うための関数であるF
関数に基づいて入力したデータを非線形にデータ変換
し、非線形変換したデータを出力し、 上記副変換部は、鍵とデータとを入力し、入力した鍵を
使用して入力したデータを線形変換し、線形変換したデ
ータを出力し、 上記主変換部と上記副変換部とは、上記主変換部による
データ変換と上記副変換部によるデータ変換とを繰り返
し行うことにより少なくともデータの暗号化とデータの
復号のいずれかのデータ変換を行うことを特徴とするデ
ータ変換装置。 - 【請求項22】 上記主変換部は、入力した鍵を使用し
て入力したデータをF関数に基づいて非線形にデータ変
換し、データ変換したデータを出力することを複数回繰
り返すF関数部を備えることを特徴とする請求項21に
記載されたデータ変換装置。 - 【請求項23】 上記F関数部は、入力した鍵を使用し
て入力したデータを1/2XF関数(X≧0)に基づい
て非線形にデータ変換し、データ変換したデータを出力
することを2X回繰り返すことによりF関数に基づいた
非線形データ変換を1回分完了し、完了したデータを出
力することを複数回繰り返すことによりF関数に基づい
た非線形データ変換を複数回行うことを特徴とする請求
項22に記載されたデータ変換装置。 - 【請求項24】 上記F関数部は、上位データと下位デ
ータとに分割されたデータのいずれか一方を入力し、入
力したデータを非線形にデータ変換し、データ変換した
上位データと下位データのいずれか一方を出力し、出力
した上位データと下位データのいずれか一方と上位デー
タと下位データのいずれか他方とを排他的論理和演算
し、排他的論理和演算したデータと、上記F関数部に入
力されなかった上位データと下位データとのいずれか他
方とを入れ替えて出力することを特徴とする請求項22
に記載されたデータ変換装置。 - 【請求項25】 上記データ変換装置は、さらに、 鍵を生成する鍵生成部を備え、 上記鍵生成部は、さらに、 秘密鍵を入力し、入力した秘密鍵から中間鍵を生成し、
生成した中間鍵から上記主変換部と上記副変換部とを用
いて出力鍵を生成する中間鍵生成部を備えることを特徴
とする請求項21に記載されたデータ変換装置。 - 【請求項26】 上記鍵生成部は、さらに、 上記中間鍵生成部によって生成された中間鍵と出力鍵と
所定の定数とを入力し、入力した中間鍵と出力鍵と所定
の定数とから所定の条件に従って上記主変換部と上記副
変換部とが行うデータ変換に用いる鍵をスケジュールす
る鍵スケジュール部を備え、 上記副変換部と上記主変換部とは、上記鍵スケジュール
部によってスケジュールされた鍵を各々入力し、各々入
力した鍵に基づいて各々に入力されたデータのデータ変
換を行うことを特徴とする請求項25に記載されたデー
タ変換装置。 - 【請求項27】 上記中間鍵生成部は、6つの鍵を入力
し、入力した6つの鍵から1つの鍵を選択する6−1K
Lセレクタと、前記6−1KLセレクタから選択された
1つの鍵を中間鍵として保持する鍵KLレジスタと、6
つの鍵から1つの鍵を選択する6−1KAセレクタと、
6−1KAセレクタから選択された1つの鍵を出力鍵と
して保持する鍵KAレジスタと、を有し、 上記6−1KLセレクタは、秘密鍵を入力し、入力され
た秘密鍵と、上記鍵KLレジスタに保持された中間鍵
と、上記鍵KLレジスタに保持された中間鍵とから4つ
の異なるシフト数で各々巡回ビットシフトさせた4つの
鍵とからなる6つの鍵を入力し、入力した6つの鍵から
1つの鍵を選択し、 上記鍵KLレジスタは、上記6−1KLセレクタによっ
て選択された鍵を中間鍵として保持し、 上記6−1KAセレクタは、上記主変換部と上記副変換
部とを用いて生成された出力鍵を入力し、入力した出力
鍵と、上記鍵KAレジスタに保持された出力鍵と、上記
鍵KAレジスタに保持された出力鍵から4つの異なるシ
フト数で各々巡回ビットシフトさせた4つの鍵と、から
なる6つの鍵を入力し、入力した6つの鍵から1つの鍵
を選択し、 上記鍵KAレジスタは、上記6−1KAセレクタによっ
て選択された鍵を出力鍵として保持することを特徴とす
る請求項25に記載されたデータ変換装置。 - 【請求項28】 上記中間鍵生成部は、2つの鍵から1
つの鍵を選択する2−1セレクタと、4つの鍵から1つ
の鍵を選択する4−1セレクタと、3つの鍵から1つの
鍵を選択する3−1KLセレクタと、3−1KLセレク
タから選択された鍵を中間鍵として保持する鍵KLレジ
スタと、3つの鍵から1つの鍵を選択する3−1KAセ
レクタと、3−1KAセレクタから選択された鍵を出力
鍵として保持する鍵KAレジスタとを有し、 上記2−1セレクタは、上記鍵KLレジスタに保持され
た中間鍵と、上記鍵KAレジスタに保持された出力鍵と
から1つの鍵を選択し、 上記4−1セレクタは、上記2−1セレクタによって選
択された鍵からから4つの異なるシフト数で各々巡回ビ
ットシフトさせた4つの鍵を入力し、入力した4つの鍵
から1つの鍵を選択し、 上記3−1KLセレクタは、秘密鍵を入力し、入力され
た秘密鍵と、上記4−1セレクタによって選択された鍵
と、上記鍵KLレジスタに保持された中間鍵とからなる
3つの鍵を入力し、入力した3つの鍵から1つの鍵を選
択し、 上記鍵KLレジスタは、上記3−1KLセレクタによっ
て選択された鍵を中間鍵として保持し、 上記3−1KAセレクタは、上記主変換部と上記副変換
部とを用いて生成された出力鍵を入力し、入力した出力
鍵と、上記4−1セレクタによって選択された鍵と、上
記鍵KAレジスタに保持された出力鍵とからなる3つの
鍵を入力し、入力した3つの鍵から1つの鍵を選択し、 上記鍵KAレジスタは、上記3−1KAセレクタによっ
て選択された鍵を出力鍵として保持することを特徴とす
る請求項25に記載されたデータ変換装置。 - 【請求項29】 上記中間鍵生成部は、2つの鍵から1
つの鍵を選択する2−1KLセレクタと、2−1KLセ
レクタから選択された鍵を保持する鍵KLレジスタと、
2つの鍵から1つの鍵を選択する2−1KAセレクタ
と、2−1KAセレクタから選択された鍵を保持する鍵
KAレジスタと、2つの鍵から1つの鍵を選択する2−
1セレクタと、8つの鍵から1つの鍵を選択する8−1
セレクタとを有し、 上記2−1KLセレクタは、秘密鍵を入力し、入力した
秘密鍵と上記鍵KLレジスタに保持された鍵とから1つ
の鍵を選択し、 上記2−1KAセレクタは、上記主変換部と上記副変換
部とを用いて生成された出力鍵を入力し、入力した出力
鍵と上記鍵KAレジスタに保持された鍵とから1つの鍵
を選択し、 上記2−1セレクタは、上記2−1KLセレクタと上記
2−1KAセレクタとによって選択された2つの鍵から
1つの鍵を選択し、 上記8−1セレクタは、上記2−1セレクタによって選
択された鍵からから8つの異なるシフト数で各々巡回ビ
ットシフトさせた8つの鍵を入力し、入力した8つ鍵か
ら1つ鍵を選択することを特徴とする請求項25に記載
されたデータ変換装置。 - 【請求項30】 上記副変換部は、データを線形変換す
るデータ正変換部(FL)と上記データ正変換部(F
L)の変換とは逆の変換をするデータ逆変換部(FL
−1)との少なくともいずれかを有し、上記データ正変
換部(FL)と上記データ逆変換部(FL-1)との少な
くともいずれかによってデータをデータ変換することを
特徴とする請求項21に記載されたデータ変換装置。 - 【請求項31】 上記副変換部は、データを線形変換す
るデータ正変換と上記データ正変換とは逆の変換をする
データ逆変換とを同一の回路を共用して行う1/2副変
換部を有し、1/2副変換部によってデータをデータ変
換することを特徴とする請求項21に記載されたデータ
変換装置。 - 【請求項32】 上記データ変換装置は、128ビット
か192ビットか256ビットのいずれかの鍵を入力
し、入力した鍵を使用して入力したデータの暗号化とデ
ータの復号のいずれかのデータ変換することを特徴とす
る請求項21に記載されたデータ変換装置。 - 【請求項33】 データを線形変換にデータ変換する副
変換部に並列に配置され、鍵とデータとを入力し、入力
した鍵を使用して非線形にデータ変換を行うための関数
であるF関数に基づき、非線形データ変換する主変換部
によって、入力したデータを非線形にデータ変換し、非
線形変換したデータを出力することと、 鍵とデータとを入力し、入力した鍵を使用して入力した
データを上記主変換部に並列に配置された上記副変換部
によって線形変換し、線形変換したデータを出力するこ
とを、繰り返し行うことにより少なくともデータの暗号
化とデータの復号のいずれかのデータ変換を行うことを
特徴とするデータ変換方法。 - 【請求項34】 データを線形変換にデータ変換する副
変換部に並列に配置され、鍵とデータとを入力し、入力
した鍵を使用して非線形にデータ変換を行うための関数
であるF関数に基づき、非線形変換にデータ変換する主
変換部によって、入力したデータを非線形にデータ変換
し、非線形変換したデータを出力する処理と、 鍵とデータとを入力し、入力した鍵を使用して入力した
データを上記主変換部に並列に配置された上記副変換部
によって線形変換し、線形変換したデータを出力する処
理とを、繰り返し行うことにより少なくともデータの暗
号化とデータの復号のいずれかのデータ変換を行う処理
をコンピュータに実行させることを特徴とするデータ変
換プログラム。 - 【請求項35】 データを線形変換にデータ変換する副
変換部に並列に配置され、鍵とデータとを入力し、入力
した鍵を使用して非線形にデータ変換を行うための関数
であるF関数に基づき、非線形にデータ変換する主変換
部によって、入力したデータを非線形にデータ変換し、
非線形変換したデータを出力する処理と、 鍵とデータとを入力し、入力した鍵を使用して入力した
データを上記主変換部に並列に配置された上記副変換部
によって線形変換し、線形変換したデータを出力する処
理とを、繰り返し行うことにより少なくともデータの暗
号化とデータの復号のいずれかのデータ変換を行う処理
をコンピュータに実行させるためのデータ変換プログラ
ムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (12)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002148786A JP4128395B2 (ja) | 2002-05-23 | 2002-05-23 | データ変換装置 |
TW092103375A TWI229299B (en) | 2002-05-23 | 2003-02-19 | Data conversion device, data conversion method, data conversion program, and computer-readable recording medium recorded with data conversion program |
KR1020047018842A KR100806468B1 (ko) | 2002-05-23 | 2003-03-07 | 데이터 변환 장치, 데이터 변환 방법 및 데이터 변환 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 |
CA2485943A CA2485943C (en) | 2002-05-23 | 2003-03-07 | Data conversion apparatus and data conversion method |
ES03755263.5T ES2565816T3 (es) | 2002-05-23 | 2003-03-07 | Aparato de conversión de datos y método de conversión de datos |
US10/514,637 US7639800B2 (en) | 2002-05-23 | 2003-03-07 | Data conversion device and data conversion method |
AU2003211779A AU2003211779A1 (en) | 2002-05-23 | 2003-03-07 | Data conversion device and data conversion method |
EP03755263.5A EP1507247B1 (en) | 2002-05-23 | 2003-03-07 | Data conversion apparatus and data conversion method |
PCT/JP2003/002689 WO2003100751A1 (fr) | 2002-05-23 | 2003-03-07 | Dispositif et procede de conversion de donnees |
DK03755263.5T DK1507247T3 (en) | 2002-05-23 | 2003-03-07 | Data converter and data conversion method |
CN038088339A CN1647139B (zh) | 2002-05-23 | 2003-03-07 | 数据变换装置和数据变换方法 |
NO20045596A NO337611B1 (no) | 2002-05-23 | 2004-12-22 | Fremgangsmåte og anordning for omforming av data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002148786A JP4128395B2 (ja) | 2002-05-23 | 2002-05-23 | データ変換装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003345244A true JP2003345244A (ja) | 2003-12-03 |
JP4128395B2 JP4128395B2 (ja) | 2008-07-30 |
Family
ID=29561194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002148786A Expired - Lifetime JP4128395B2 (ja) | 2002-05-23 | 2002-05-23 | データ変換装置 |
Country Status (12)
Country | Link |
---|---|
US (1) | US7639800B2 (ja) |
EP (1) | EP1507247B1 (ja) |
JP (1) | JP4128395B2 (ja) |
KR (1) | KR100806468B1 (ja) |
CN (1) | CN1647139B (ja) |
AU (1) | AU2003211779A1 (ja) |
CA (1) | CA2485943C (ja) |
DK (1) | DK1507247T3 (ja) |
ES (1) | ES2565816T3 (ja) |
NO (1) | NO337611B1 (ja) |
TW (1) | TWI229299B (ja) |
WO (1) | WO2003100751A1 (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007199156A (ja) * | 2006-01-24 | 2007-08-09 | Sony Corp | 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム |
JP2008052130A (ja) * | 2006-08-25 | 2008-03-06 | Nippon Telegr & Teleph Corp <Ntt> | ハッシュ関数回路及びその演算方法 |
WO2008026625A1 (fr) * | 2006-09-01 | 2008-03-06 | Sony Corporation | Dispositif de codage, procédé de codage et programme informatique |
WO2008072455A1 (ja) * | 2006-12-11 | 2008-06-19 | Sony Corporation | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP2009003312A (ja) * | 2007-06-25 | 2009-01-08 | Sony Corp | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
WO2009075337A1 (ja) * | 2007-12-13 | 2009-06-18 | Nec Corporation | 暗号化方法及び復号化方法、装置並びにプログラム |
WO2012077419A1 (ja) * | 2010-12-09 | 2012-06-14 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
WO2012141189A1 (ja) * | 2011-04-11 | 2012-10-18 | 日本電気株式会社 | 暗号化方法、暗号化装置および暗号化プログラム |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7760874B2 (en) | 2004-07-14 | 2010-07-20 | Broadcom Corporation | Method and system for implementing FI function in KASUMI algorithm for accelerating cryptography in GSM/GPRS/EDGE compliant handsets |
US7627115B2 (en) * | 2004-08-23 | 2009-12-01 | Broadcom Corporation | Method and system for implementing the GEA3 encryption algorithm for GPRS compliant handsets |
US7623658B2 (en) * | 2004-08-23 | 2009-11-24 | Broadcom Corporation | Method and system for implementing the A5/3 encryption algorithm for GSM and EDGE compliant handsets |
US7627113B2 (en) * | 2005-02-08 | 2009-12-01 | Broadcom Corporation | Method and system for hardware accelerator for implementing f8 confidentiality algorithm in WCDMA compliant handsets |
EP1860630B1 (en) * | 2005-03-16 | 2018-12-26 | Mitsubishi Electric Corporation | Data converting apparatus and data converting method |
CN101335985B (zh) * | 2007-06-29 | 2011-05-11 | 华为技术有限公司 | 安全快速切换的方法及系统 |
US8959307B1 (en) | 2007-11-16 | 2015-02-17 | Bitmicro Networks, Inc. | Reduced latency memory read transactions in storage devices |
JP5272417B2 (ja) | 2008-01-21 | 2013-08-28 | ソニー株式会社 | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム |
US9729316B2 (en) | 2008-02-27 | 2017-08-08 | International Business Machines Corporation | Unified broadcast encryption system |
JP5200949B2 (ja) * | 2009-01-16 | 2013-06-05 | 富士通株式会社 | 暗号処理装置 |
US9317286B2 (en) * | 2009-03-31 | 2016-04-19 | Oracle America, Inc. | Apparatus and method for implementing instruction support for the camellia cipher algorithm |
US8665601B1 (en) | 2009-09-04 | 2014-03-04 | Bitmicro Networks, Inc. | Solid state drive with improved enclosure assembly |
US8447908B2 (en) | 2009-09-07 | 2013-05-21 | Bitmicro Networks, Inc. | Multilevel memory bus system for solid-state mass storage |
US8560804B2 (en) | 2009-09-14 | 2013-10-15 | Bitmicro Networks, Inc. | Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device |
JP5652363B2 (ja) * | 2011-03-28 | 2015-01-14 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
US9372755B1 (en) | 2011-10-05 | 2016-06-21 | Bitmicro Networks, Inc. | Adaptive power cycle sequences for data recovery |
US9043669B1 (en) | 2012-05-18 | 2015-05-26 | Bitmicro Networks, Inc. | Distributed ECC engine for storage media |
US9423457B2 (en) | 2013-03-14 | 2016-08-23 | Bitmicro Networks, Inc. | Self-test solution for delay locked loops |
US9400617B2 (en) | 2013-03-15 | 2016-07-26 | Bitmicro Networks, Inc. | Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained |
US9842024B1 (en) | 2013-03-15 | 2017-12-12 | Bitmicro Networks, Inc. | Flash electronic disk with RAID controller |
US9430386B2 (en) | 2013-03-15 | 2016-08-30 | Bitmicro Networks, Inc. | Multi-leveled cache management in a hybrid storage system |
US9672178B1 (en) | 2013-03-15 | 2017-06-06 | Bitmicro Networks, Inc. | Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system |
US9720603B1 (en) | 2013-03-15 | 2017-08-01 | Bitmicro Networks, Inc. | IOC to IOC distributed caching architecture |
US9501436B1 (en) | 2013-03-15 | 2016-11-22 | Bitmicro Networks, Inc. | Multi-level message passing descriptor |
US9971524B1 (en) | 2013-03-15 | 2018-05-15 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US9875205B1 (en) | 2013-03-15 | 2018-01-23 | Bitmicro Networks, Inc. | Network of memory systems |
US10489318B1 (en) | 2013-03-15 | 2019-11-26 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US9858084B2 (en) | 2013-03-15 | 2018-01-02 | Bitmicro Networks, Inc. | Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory |
US9798688B1 (en) | 2013-03-15 | 2017-10-24 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
US9934045B1 (en) | 2013-03-15 | 2018-04-03 | Bitmicro Networks, Inc. | Embedded system boot from a storage device |
US9734067B1 (en) | 2013-03-15 | 2017-08-15 | Bitmicro Networks, Inc. | Write buffering |
US10148430B1 (en) * | 2013-04-17 | 2018-12-04 | Amazon Technologies, Inc | Revocable stream ciphers for upgrading encryption in a shared resource environment |
US9684580B2 (en) * | 2013-11-05 | 2017-06-20 | Ixia | Methods, systems, and computer readable media for efficient scrambling of data for line rate transmission in high speed communications networks |
JP2015130580A (ja) * | 2014-01-07 | 2015-07-16 | 富士通株式会社 | データスクランブル装置、セキュリティ装置、セキュリティシステム及びデータスクランブル方法 |
US9952991B1 (en) | 2014-04-17 | 2018-04-24 | Bitmicro Networks, Inc. | Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation |
US10025736B1 (en) | 2014-04-17 | 2018-07-17 | Bitmicro Networks, Inc. | Exchange message protocol message transmission between two devices |
US10055150B1 (en) | 2014-04-17 | 2018-08-21 | Bitmicro Networks, Inc. | Writing volatile scattered memory metadata to flash device |
US10078604B1 (en) | 2014-04-17 | 2018-09-18 | Bitmicro Networks, Inc. | Interrupt coalescing |
US10042792B1 (en) | 2014-04-17 | 2018-08-07 | Bitmicro Networks, Inc. | Method for transferring and receiving frames across PCI express bus for SSD device |
US9811461B1 (en) | 2014-04-17 | 2017-11-07 | Bitmicro Networks, Inc. | Data storage system |
JP6187624B1 (ja) * | 2016-03-17 | 2017-08-30 | 富士電機株式会社 | 情報処理装置、情報処理方法及びプログラム |
US10404459B2 (en) * | 2017-02-09 | 2019-09-03 | Intel Corporation | Technologies for elliptic curve cryptography hardware acceleration |
US10552050B1 (en) | 2017-04-07 | 2020-02-04 | Bitmicro Llc | Multi-dimensional computer storage system |
US10698839B2 (en) * | 2017-12-12 | 2020-06-30 | Western Digital Technologies, Inc. | Seed scrambling |
US10635400B2 (en) | 2017-12-12 | 2020-04-28 | Western Digital Technologies, Inc. | Seed generation |
CN112805769B (zh) * | 2018-10-04 | 2023-11-07 | 日本电信电话株式会社 | 秘密s型函数计算系统、装置、方法及记录介质 |
US11838402B2 (en) | 2019-03-13 | 2023-12-05 | The Research Foundation For The State University Of New York | Ultra low power core for lightweight encryption |
US11240022B1 (en) * | 2019-04-11 | 2022-02-01 | Wells Fargo Bank, N.A. | Passive encryption rotation keys |
US11632231B2 (en) * | 2020-03-05 | 2023-04-18 | Novatek Microelectronics Corp. | Substitute box, substitute method and apparatus thereof |
CN114282469B (zh) * | 2021-12-24 | 2024-08-13 | 中国人民解放军国防科技大学 | 一种Camellia算法P函数的硬件电路及优化方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10172298A (ja) * | 1996-12-05 | 1998-06-26 | Mitsubishi Electric Corp | 半導体記憶装置 |
GB2321728B (en) * | 1997-01-30 | 2001-12-19 | Motorola Inc | Apparatus and method for accessing secured data stored in a portable data carrier |
JP3600454B2 (ja) * | 1998-08-20 | 2004-12-15 | 株式会社東芝 | 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体 |
US7184549B2 (en) * | 2000-01-14 | 2007-02-27 | Mitsubishi Denki Kabushiki Kaisha | Method and apparatus for encryption, method and apparatus for decryption, and computer-readable medium storing program |
CN1734526B (zh) | 2000-03-09 | 2013-09-18 | 三菱电机株式会社 | 数据变换装置和数据变换方法 |
JP4457474B2 (ja) * | 2000-04-04 | 2010-04-28 | ソニー株式会社 | 情報記録装置、情報再生装置、情報記録方法、情報再生方法、および情報記録媒体、並びにプログラム提供媒体 |
JP4464046B2 (ja) * | 2001-04-03 | 2010-05-19 | 三菱電機株式会社 | 暗号化装置及び復号化装置及び無線通信装置 |
JP2003067340A (ja) | 2001-08-28 | 2003-03-07 | Mitsubishi Electric Corp | 認証の選択システム、認証システム |
US7986820B2 (en) | 2001-10-19 | 2011-07-26 | Mitsubishi Electric Research Laboratories, Inc. | Method for comparing features extracted from images of fingerprints |
-
2002
- 2002-05-23 JP JP2002148786A patent/JP4128395B2/ja not_active Expired - Lifetime
-
2003
- 2003-02-19 TW TW092103375A patent/TWI229299B/zh not_active IP Right Cessation
- 2003-03-07 CA CA2485943A patent/CA2485943C/en not_active Expired - Fee Related
- 2003-03-07 DK DK03755263.5T patent/DK1507247T3/en active
- 2003-03-07 EP EP03755263.5A patent/EP1507247B1/en not_active Expired - Lifetime
- 2003-03-07 KR KR1020047018842A patent/KR100806468B1/ko active IP Right Grant
- 2003-03-07 US US10/514,637 patent/US7639800B2/en not_active Expired - Fee Related
- 2003-03-07 WO PCT/JP2003/002689 patent/WO2003100751A1/ja active Application Filing
- 2003-03-07 AU AU2003211779A patent/AU2003211779A1/en not_active Abandoned
- 2003-03-07 CN CN038088339A patent/CN1647139B/zh not_active Expired - Fee Related
- 2003-03-07 ES ES03755263.5T patent/ES2565816T3/es not_active Expired - Lifetime
-
2004
- 2004-12-22 NO NO20045596A patent/NO337611B1/no not_active IP Right Cessation
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007199156A (ja) * | 2006-01-24 | 2007-08-09 | Sony Corp | 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム |
JP2008052130A (ja) * | 2006-08-25 | 2008-03-06 | Nippon Telegr & Teleph Corp <Ntt> | ハッシュ関数回路及びその演算方法 |
US8369522B2 (en) | 2006-09-01 | 2013-02-05 | Sony Corpoation | Encryption processing apparatus, encryption method, and computer program |
WO2008026625A1 (fr) * | 2006-09-01 | 2008-03-06 | Sony Corporation | Dispositif de codage, procédé de codage et programme informatique |
JP2008058831A (ja) * | 2006-09-01 | 2008-03-13 | Sony Corp | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
CN101512619B (zh) * | 2006-09-01 | 2012-04-18 | 索尼株式会社 | 密码处理装置和密码处理方法 |
WO2008072455A1 (ja) * | 2006-12-11 | 2008-06-19 | Sony Corporation | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
US8737603B2 (en) | 2006-12-11 | 2014-05-27 | Sony Corporation | Cryptographic processing apparatus, cryptographic processing method, and computer program |
JP2009003312A (ja) * | 2007-06-25 | 2009-01-08 | Sony Corp | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
WO2009075337A1 (ja) * | 2007-12-13 | 2009-06-18 | Nec Corporation | 暗号化方法及び復号化方法、装置並びにプログラム |
US8619976B2 (en) | 2007-12-13 | 2013-12-31 | Nec Corporation | Encryption method, decryption method, device, and program |
JP2012123259A (ja) * | 2010-12-09 | 2012-06-28 | Sony Corp | 暗号処理装置、および暗号処理方法、並びにプログラム |
WO2012077419A1 (ja) * | 2010-12-09 | 2012-06-14 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
US9031230B2 (en) | 2010-12-09 | 2015-05-12 | Sony Corporation | Encryption processing device, encryption processing method, and program |
WO2012141189A1 (ja) * | 2011-04-11 | 2012-10-18 | 日本電気株式会社 | 暗号化方法、暗号化装置および暗号化プログラム |
Also Published As
Publication number | Publication date |
---|---|
TWI229299B (en) | 2005-03-11 |
WO2003100751A1 (fr) | 2003-12-04 |
CA2485943A1 (en) | 2003-12-04 |
KR100806468B1 (ko) | 2008-02-21 |
US20050226407A1 (en) | 2005-10-13 |
DK1507247T3 (en) | 2016-03-29 |
US7639800B2 (en) | 2009-12-29 |
CN1647139A (zh) | 2005-07-27 |
AU2003211779A1 (en) | 2003-12-12 |
ES2565816T3 (es) | 2016-04-07 |
TW200307226A (en) | 2003-12-01 |
EP1507247A4 (en) | 2011-01-19 |
EP1507247B1 (en) | 2016-02-24 |
NO20045596L (no) | 2005-02-18 |
CN1647139B (zh) | 2011-09-14 |
CA2485943C (en) | 2011-04-19 |
JP4128395B2 (ja) | 2008-07-30 |
EP1507247A1 (en) | 2005-02-16 |
KR20050004187A (ko) | 2005-01-12 |
NO337611B1 (no) | 2016-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4128395B2 (ja) | データ変換装置 | |
JP4127472B2 (ja) | データ変換装置及びデータ変換装置のデータ変換方法及びプログラム及びコンピュータ読み取り可能な記録媒体 | |
JP4025722B2 (ja) | データ暗号化のための方法および装置 | |
JP2009516976A (ja) | マルチレーン高速暗号化及び復号 | |
JPH10240500A (ja) | 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム | |
JP2010245881A (ja) | 暗号処理装置 | |
JP4098719B2 (ja) | Aesアルゴリズム用のプログラマブルデータ暗号化エンジン | |
JP2005513541A6 (ja) | Aesアルゴリズム用のプログラマブルデータ暗号化エンジン | |
JP6052166B2 (ja) | 暗号化方法、暗号化装置および暗号化プログラム | |
JP5182295B2 (ja) | 暗号化装置及び暗号処理方法 | |
JP3547474B2 (ja) | 暗号演算回路 | |
JP5605197B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
Tsavos et al. | Lightweight security data streaming, based on reconfigurable logic, for FPGA platform | |
KR101662291B1 (ko) | 경량 블록암호 lea 기반 암호화 및 복호화 장치 | |
CN114422111A (zh) | 一种轻量级的sm4算法的硬件实现电路 | |
RU2359415C2 (ru) | Способ криптографического преобразования блоков цифровых данных | |
JP3473171B2 (ja) | 逐次暗号方式 | |
JP4230152B2 (ja) | 暗号回路 | |
WO2012067052A1 (ja) | 暗号処理装置および暗号処理方法 | |
Pirpilidis et al. | A 4-bit Architecture of SEED Block Cipher for IoT Applications | |
JP4745598B2 (ja) | 暗号回路 | |
RU2127024C1 (ru) | Блок шифрования | |
KR20030087893A (ko) | 라운드 키의 온라인 계산 기능을 갖는 모듈화 구조의 AESRijndael 라운드 키 생성 회로 | |
JP2008107656A (ja) | 暗号化装置及び認証装置 | |
WO2002058036A1 (en) | Encryption circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040519 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20041025 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050422 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080212 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080410 |
|
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: 20080513 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080514 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110523 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4128395 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110523 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120523 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120523 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130523 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140523 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |