JPH0863097A - データを暗号化するための対称暗号化方法およびシステム - Google Patents
データを暗号化するための対称暗号化方法およびシステムInfo
- Publication number
- JPH0863097A JPH0863097A JP6295746A JP29574694A JPH0863097A JP H0863097 A JPH0863097 A JP H0863097A JP 6295746 A JP6295746 A JP 6295746A JP 29574694 A JP29574694 A JP 29574694A JP H0863097 A JPH0863097 A JP H0863097A
- Authority
- JP
- Japan
- Prior art keywords
- key
- data block
- symmetric encryption
- box
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
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
- 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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- 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)
- Storage Device Security (AREA)
Abstract
(57)【要約】
【目的】 新たな部分的曲げ関数の(m×n)の置換ボ
ックス(s−ボックス)を使用したデータを暗号化する
ための暗号化システムを提供する。 【構成】 本発明の暗号化方法は、各データブロックの
半分の複数の連続した変換丸めを行い、平文を暗号文に
変換する。変換丸めは、(m×n)の置換ボックスによ
って内部鍵を処理し、修正された内部鍵を発生する。各
データブロックの半分と修正された内部鍵とを排他的論
理和(XOR)演算し、第1の修正されたデータブロッ
クの半分を発生し、それによって第2の修正されたデー
タブロックの半分を発生する。さらに、第2の修正され
たデータブロックの半分と残りのデータブロックの半分
をXOR演算し、丸め変換されたデータブロックの半分
を発生させる。
ックス(s−ボックス)を使用したデータを暗号化する
ための暗号化システムを提供する。 【構成】 本発明の暗号化方法は、各データブロックの
半分の複数の連続した変換丸めを行い、平文を暗号文に
変換する。変換丸めは、(m×n)の置換ボックスによ
って内部鍵を処理し、修正された内部鍵を発生する。各
データブロックの半分と修正された内部鍵とを排他的論
理和(XOR)演算し、第1の修正されたデータブロッ
クの半分を発生し、それによって第2の修正されたデー
タブロックの半分を発生する。さらに、第2の修正され
たデータブロックの半分と残りのデータブロックの半分
をXOR演算し、丸め変換されたデータブロックの半分
を発生させる。
Description
【0001】
【産業上の利用分野】本発明は、ディジタル・データ処
理において使用される暗号方法およびシステムに関す
る。本発明は特に部分的に曲げ関数(bent-function-ba
sed)を有する置換ボックスを用いた対称暗号方法およ
びシステムに関するものである。
理において使用される暗号方法およびシステムに関す
る。本発明は特に部分的に曲げ関数(bent-function-ba
sed)を有する置換ボックスを用いた対称暗号方法およ
びシステムに関するものである。
【0002】
【従来の技術】暗号システムによって提供される基本的
な機能は暗号化、復号である。暗号化システムは、一対
のデータ変換から構成される。第1の変換は、平文とし
て知られているデータに適用され、暗号文と呼ばれる新
しい(難解な)データを形成する。他の変換は暗号文に
適用され、最初の平文を再現する。暗号変換は、暗号鍵
として知られる平文データおよび独立データの両方を入
力として使用する。同様に、復号変換は、復号鍵を使用
する。これらの鍵は、外観上はランダムなビットベクト
ルである。暗号システムには2つの基本的なタイプ、す
なわち、対称システムと公開鍵システム(非対称)があ
る。DES(米国データ暗号標準)は、対称暗号システ
ムであり、同じ鍵が暗号化および復号変換に用いられ
る。
な機能は暗号化、復号である。暗号化システムは、一対
のデータ変換から構成される。第1の変換は、平文とし
て知られているデータに適用され、暗号文と呼ばれる新
しい(難解な)データを形成する。他の変換は暗号文に
適用され、最初の平文を再現する。暗号変換は、暗号鍵
として知られる平文データおよび独立データの両方を入
力として使用する。同様に、復号変換は、復号鍵を使用
する。これらの鍵は、外観上はランダムなビットベクト
ルである。暗号システムには2つの基本的なタイプ、す
なわち、対称システムと公開鍵システム(非対称)があ
る。DES(米国データ暗号標準)は、対称暗号システ
ムであり、同じ鍵が暗号化および復号変換に用いられ
る。
【0003】図1および図2は、DESの暗号化プロセ
スのアルゴリズムフローチャートである。DESアルゴ
リズムは56ビットの鍵を用い、64ビットのデータブ
ロックで動作する。図1において、暗号化プロセスは平
文の64ビットブロックの初期順列10で始まり、その
後、2つの32ビットブロックに分割される。その半分
(例えば、第1の丸めの右半分R1)は、第2の入力と
して内部鍵K1を使用する鍵従属丸め関数12(例え
ば、f1)への入力として用いられ、その結果(例え
ば、R’1)は、他の半分(例えば、左半分のL1)と排
他的論理和素子(XOR)14で排他的論理和演算(X
OR演算すなわちモジュロ2で加算)される。そのよう
な繰返しの後、あるいは丸めの後、データの半分が交換
され、動作が再び実行される。16回の丸めの後、出力
は、最終順列16を介して64ビット長の暗号文を発生
する。丸め関数は、s−ボックスとして知られる8つの
非線形置換器を経由するパスを含む。第i番目の丸め
(i=1、2、・・・、16)を行う丸め関数fiが図
2に詳細に示される。
スのアルゴリズムフローチャートである。DESアルゴ
リズムは56ビットの鍵を用い、64ビットのデータブ
ロックで動作する。図1において、暗号化プロセスは平
文の64ビットブロックの初期順列10で始まり、その
後、2つの32ビットブロックに分割される。その半分
(例えば、第1の丸めの右半分R1)は、第2の入力と
して内部鍵K1を使用する鍵従属丸め関数12(例え
ば、f1)への入力として用いられ、その結果(例え
ば、R’1)は、他の半分(例えば、左半分のL1)と排
他的論理和素子(XOR)14で排他的論理和演算(X
OR演算すなわちモジュロ2で加算)される。そのよう
な繰返しの後、あるいは丸めの後、データの半分が交換
され、動作が再び実行される。16回の丸めの後、出力
は、最終順列16を介して64ビット長の暗号文を発生
する。丸め関数は、s−ボックスとして知られる8つの
非線形置換器を経由するパスを含む。第i番目の丸め
(i=1、2、・・・、16)を行う丸め関数fiが図
2に詳細に示される。
【0004】この丸め関数は、ブロック右半分Riおよ
び内部鍵Kiの2つの入力を用い出力R’iを発生する。
最初の鍵は、56ビット長であり、所定の鍵スケジュー
ラ20に従って、各丸めで48ビットが選択され、内部
鍵Kiを発生する。右半分のRiは、拡張器22で、まず
32ビットから48ビットに拡張され、排他的論理和素
子(XOR)24で内部鍵KiとXOR演算される。そ
の結果は、8つの部分に分割され、8つの異なるs−ボ
ックス26に加えられる。s−ボックスは、6入力ビッ
トを4出力ビットにマッピングする非線形置換器であ
る。s−ボックスの8つの出力は、連結器28で連結さ
れ、順列器30で順列化され、図1に示されるように、
左半分のLiとXOR演算される出力R’i32を発生す
る。
び内部鍵Kiの2つの入力を用い出力R’iを発生する。
最初の鍵は、56ビット長であり、所定の鍵スケジュー
ラ20に従って、各丸めで48ビットが選択され、内部
鍵Kiを発生する。右半分のRiは、拡張器22で、まず
32ビットから48ビットに拡張され、排他的論理和素
子(XOR)24で内部鍵KiとXOR演算される。そ
の結果は、8つの部分に分割され、8つの異なるs−ボ
ックス26に加えられる。s−ボックスは、6入力ビッ
トを4出力ビットにマッピングする非線形置換器であ
る。s−ボックスの8つの出力は、連結器28で連結さ
れ、順列器30で順列化され、図1に示されるように、
左半分のLiとXOR演算される出力R’i32を発生す
る。
【0005】復号プロセスは、暗号化プロセスと同じ形
式であるが、16個の丸め用の内部鍵は、例えば、
K16、K15、・・・K2およびK1といったように逆の順
序になる。暗号文は、平文と相関性がない。出力のあら
ゆるビットは、入力のあらゆるビットおよび鍵のあらゆ
るビットに依存する。アルゴリズムの残りの部分は全て
線形であり、従って簡単に攻撃されやすいので、DES
の安全性は、非線形のs−ボックスに依存する。しかし
ながら、s−ボックスの内容を含む完全なアルゴリズム
は公知であるので、そのDESの安全性は、アルゴリズ
ムの秘密性には依存しない。
式であるが、16個の丸め用の内部鍵は、例えば、
K16、K15、・・・K2およびK1といったように逆の順
序になる。暗号文は、平文と相関性がない。出力のあら
ゆるビットは、入力のあらゆるビットおよび鍵のあらゆ
るビットに依存する。アルゴリズムの残りの部分は全て
線形であり、従って簡単に攻撃されやすいので、DES
の安全性は、非線形のs−ボックスに依存する。しかし
ながら、s−ボックスの内容を含む完全なアルゴリズム
は公知であるので、そのDESの安全性は、アルゴリズ
ムの秘密性には依存しない。
【0006】DESの強さについては、これまで議論の
的になり、多くの攻撃についての討論がなされてきた。
E.BihamおよびA.Shamirは、暗号学の進展における”完
全な16個の丸めDESの差動暗号化”、1992年、
Proceedings of CRYPTO、Springer出版社、第487頁
−第496頁において、247の選択された平文を使用す
るDESを解読できる暗号解読攻撃について述べてい
る。彼らの差動暗号解読は、2つの平文のXORが特定
の値と等しいとき、与えられた鍵によって、2つの平文
とそれに対応する暗号文とを統計的に攻撃することが可
能であるという原則に基づいている。非線形であるs−
ボックスは所望のXOR入力に対し非常に歪んだXOR
出力の分布を発生するので、統計的攻撃が可能になる。
例えば、S1は、16進のXOR入力”30”を1/4
の確率でXOR出力”4”にマッピングする。s−ボッ
クスの出力は4ビットであるので、偶数分布は、各入力
XORを1/16の確率で各出力XORに表示する。
的になり、多くの攻撃についての討論がなされてきた。
E.BihamおよびA.Shamirは、暗号学の進展における”完
全な16個の丸めDESの差動暗号化”、1992年、
Proceedings of CRYPTO、Springer出版社、第487頁
−第496頁において、247の選択された平文を使用す
るDESを解読できる暗号解読攻撃について述べてい
る。彼らの差動暗号解読は、2つの平文のXORが特定
の値と等しいとき、与えられた鍵によって、2つの平文
とそれに対応する暗号文とを統計的に攻撃することが可
能であるという原則に基づいている。非線形であるs−
ボックスは所望のXOR入力に対し非常に歪んだXOR
出力の分布を発生するので、統計的攻撃が可能になる。
例えば、S1は、16進のXOR入力”30”を1/4
の確率でXOR出力”4”にマッピングする。s−ボッ
クスの出力は4ビットであるので、偶数分布は、各入力
XORを1/16の確率で各出力XORに表示する。
【0007】s−ボックス構造とBihamおよびShamirの
DESのような暗号システムの差動暗号解読に対する免
疫との関係は、本発明者の文献”BihamおよびShamirの
差動暗号解読に対する免疫について”、情報処理レタ
ー、第41巻、第77頁−第80頁1992年2月14
日発行に記述されている。この文献において、いわゆ
る”出力XOR”の偶数分布を有するs−ボックスがこ
の攻撃に対し免疫を有し、曲げ関数s−ボックスが平面
分布を保持することの保証が証明されると述べられてい
る。
DESのような暗号システムの差動暗号解読に対する免
疫との関係は、本発明者の文献”BihamおよびShamirの
差動暗号解読に対する免疫について”、情報処理レタ
ー、第41巻、第77頁−第80頁1992年2月14
日発行に記述されている。この文献において、いわゆ
る”出力XOR”の偶数分布を有するs−ボックスがこ
の攻撃に対し免疫を有し、曲げ関数s−ボックスが平面
分布を保持することの保証が証明されると述べられてい
る。
【0008】
【発明が解決しようとする課題】しかしながら、平坦出
力XOR分布は、差動暗号解読を妨害することが知られ
ている。というのは、高い確率で(非常に歪んだ)出力
XORを発生せず、曲げ関数s−ボックスは、理想の出
力XOR分布を有するためである。さらに、そのような
曲げ関数の(m×n)のs−ボックスは、m≧2nのと
きだけ存在することが知られている。ここで、mおよび
nはそれぞれs−ボックスの入力ビット数および出力ビ
ット数である。m>nであるs−ボックスは、出力ベク
トルより入力ベクトルが多く、このことは、2以上の入
力が同じ出力にマッピングされる少なくとも1つのケー
スが存在することを示している。すなわち、1以上の入
力XORは、ゼロの出力XORを有する。したがって、
m>nの曲げ関数s−ボックスは、暗号解読において用
いられる固定した無視できない出力XORの発生確率が
生じる。
力XOR分布は、差動暗号解読を妨害することが知られ
ている。というのは、高い確率で(非常に歪んだ)出力
XORを発生せず、曲げ関数s−ボックスは、理想の出
力XOR分布を有するためである。さらに、そのような
曲げ関数の(m×n)のs−ボックスは、m≧2nのと
きだけ存在することが知られている。ここで、mおよび
nはそれぞれs−ボックスの入力ビット数および出力ビ
ット数である。m>nであるs−ボックスは、出力ベク
トルより入力ベクトルが多く、このことは、2以上の入
力が同じ出力にマッピングされる少なくとも1つのケー
スが存在することを示している。すなわち、1以上の入
力XORは、ゼロの出力XORを有する。したがって、
m>nの曲げ関数s−ボックスは、暗号解読において用
いられる固定した無視できない出力XORの発生確率が
生じる。
【0009】イタリアのローマで1993年2月15−
16日に開催された「暗号研究における現状および進
歩」に関する第3回シンポジウムのプロシーディングに
おいて、この発明者および共著者による、「差動暗号解
読に耐え得るS−ボックス(拡張された要約)」、p
p.181−190が発表された。この論文において、
入力ビットが出力ビットよりも少なく、特に曲げ関数を
有するs−ボックスが対称暗号システムに対してはより
よい基礎となるものであると結論づけられた。
16日に開催された「暗号研究における現状および進
歩」に関する第3回シンポジウムのプロシーディングに
おいて、この発明者および共著者による、「差動暗号解
読に耐え得るS−ボックス(拡張された要約)」、p
p.181−190が発表された。この論文において、
入力ビットが出力ビットよりも少なく、特に曲げ関数を
有するs−ボックスが対称暗号システムに対してはより
よい基礎となるものであると結論づけられた。
【0010】M. Matsuiによる論文「DES暗号に対す
る線形の暗号解読方法」:EUROCRYPT、1993年のプ
ロシーディング、Springer出版社、第386−第397
頁に、DESのような暗号への他の攻撃が記載される。
しかし、ここで差動暗号解読は、247の選択された平文
を必要とする場合は、丸め関数中のs−ボックスにおけ
る統計学的に役に立つ線形近似の構造に依存する線形の
暗号解読には247の公知の平文を必要とする。
る線形の暗号解読方法」:EUROCRYPT、1993年のプ
ロシーディング、Springer出版社、第386−第397
頁に、DESのような暗号への他の攻撃が記載される。
しかし、ここで差動暗号解読は、247の選択された平文
を必要とする場合は、丸め関数中のs−ボックスにおけ
る統計学的に役に立つ線形近似の構造に依存する線形の
暗号解読には247の公知の平文を必要とする。
【0011】1994年5月5日にQueen University,
Kingston、オンタリオ、カナダで開催された暗号中の選
択された領域に関する作業部会(SAC '94)において、
本発明者は、「対称暗号に対する簡単な効果的な鍵スケ
ジューリング(拡張された要約)」を発表した。この論
文は、本発明の実質的な基本的な概念を記載したもので
ある。
Kingston、オンタリオ、カナダで開催された暗号中の選
択された領域に関する作業部会(SAC '94)において、
本発明者は、「対称暗号に対する簡単な効果的な鍵スケ
ジューリング(拡張された要約)」を発表した。この論
文は、本発明の実質的な基本的な概念を記載したもので
ある。
【0012】
【課題を解決するための手段】本発明の目的は、差動お
よび線形の暗号解読に免疫性のある暗号システムを供給
することにある。
よび線形の暗号解読に免疫性のある暗号システムを供給
することにある。
【0013】本発明の他の目的は、新たな部分的曲げ関
数の(m×n)の置換ボックス(s−ボックス)を使用
したデータの暗号化システムを提供する。ここで、mお
よびnは正の偶整数であり、m<<n、m<log{n、
n/2}、{n、n/2}の表記はnからn/2を選ぶ
可能な組み合わせを表わす。新規の鍵スケジュールは、
s−ボックスによって置換変換を行う内部鍵を選択する
ために使われる。曲げ関数のs−ボックスは良好な暗号
化特性をするという原則に基づいて、s−ボックスが設
計される。本発明のs−ボックスは、(m×n)のバイ
ナリ・マトリクスによって表わされる。
数の(m×n)の置換ボックス(s−ボックス)を使用
したデータの暗号化システムを提供する。ここで、mお
よびnは正の偶整数であり、m<<n、m<log{n、
n/2}、{n、n/2}の表記はnからn/2を選ぶ
可能な組み合わせを表わす。新規の鍵スケジュールは、
s−ボックスによって置換変換を行う内部鍵を選択する
ために使われる。曲げ関数のs−ボックスは良好な暗号
化特性をするという原則に基づいて、s−ボックスが設
計される。本発明のs−ボックスは、(m×n)のバイ
ナリ・マトリクスによって表わされる。
【0014】本発明の他の目的は、弱くないまたはやや
弱い暗号化鍵を発生する新規の内部鍵スケジューリング
機構を提供することにある。
弱い暗号化鍵を発生する新規の内部鍵スケジューリング
機構を提供することにある。
【0015】さらに、本発明の他の目的は、部分的に曲
げ関数のs−ボックスを設計するための新たな手続きを
提供することにである。
げ関数のs−ボックスを設計するための新たな手続きを
提供することにである。
【0016】本発明の一見地によれば、本発明は、平文
を各データブロックの半分の複数の連続した変換丸めを
含む所定のビット長のデータブロック中の暗号文に変換
するデータの暗号化方法において、各連続する変換丸め
は、鍵ビットの特定のビット組合せの内部鍵を選択し、
(m×n)の置換ボックスによって内部鍵を処理し、修
正された内部鍵を発生し、ここで、mおよびnは、正の
偶整数であり、m<<n、m<log{n、n/2}であ
り、{n、n/2}の表記はnからn/2を選ぶ可能な
組み合わせを表わし、各データブロックの半分と修正さ
れた内部鍵とを排他的論理和(XOR)演算し、第1の
修正されたデータブロックの半分を発生し、複数の(m
×n)の相互に異なる複数の置換ボックスによって第1
の修正されたデータブロックの半分を処理し、第2の修
正されたデータブロックの半分を発生し、第2の修正さ
れたデータブロックの半分と残りのデータブロックの半
分をXOR演算し、変換丸めの変換されたデータブロッ
クの半分を発生させるように構成される。
を各データブロックの半分の複数の連続した変換丸めを
含む所定のビット長のデータブロック中の暗号文に変換
するデータの暗号化方法において、各連続する変換丸め
は、鍵ビットの特定のビット組合せの内部鍵を選択し、
(m×n)の置換ボックスによって内部鍵を処理し、修
正された内部鍵を発生し、ここで、mおよびnは、正の
偶整数であり、m<<n、m<log{n、n/2}であ
り、{n、n/2}の表記はnからn/2を選ぶ可能な
組み合わせを表わし、各データブロックの半分と修正さ
れた内部鍵とを排他的論理和(XOR)演算し、第1の
修正されたデータブロックの半分を発生し、複数の(m
×n)の相互に異なる複数の置換ボックスによって第1
の修正されたデータブロックの半分を処理し、第2の修
正されたデータブロックの半分を発生し、第2の修正さ
れたデータブロックの半分と残りのデータブロックの半
分をXOR演算し、変換丸めの変換されたデータブロッ
クの半分を発生させるように構成される。
【0017】本発明の他の見地によれば、本発明は、平
文を、2nビット(nは正の偶整数)を含みかつ複数の
連続した変換丸めを含むデータブロック中の暗号文に変
換するデータの暗号化方法において、各連続する変換丸
めは、鍵ビットの特定のビットの組合せおよびs*mビ
ット長の内部鍵を選択し、ここで、sは正の整数、mは
正の偶整数であり、s個の(m×n)の相互に異なる置
換ボックスによって内部鍵を処理し、修正された内部鍵
を発生し、ここで、m<<n、m<log{n、n/2}
であり、{n、n/2}の表記はnからn/2を選ぶ可
能な組み合わせを表わし、各データブロックの半分と修
正された内部鍵とを排他的論理和(XOR)演算し、第
1の修正されたデータブロックの半分を発生し、第1の
修正されたデータブロックの半分をr部分に分割し、こ
こでrは正の整数であり、r個の(m×n)の相互に異
なる置換ボックスによって第1の修正されたデータブロ
ックの半分の各部を処理し、第2の修正されたデータブ
ロックの半分を発生し、第2の修正されたデータブロッ
クの半分と残りのデータブロックの半分をXOR演算
し、変換丸めの変換されたデータブロックの半分を発生
させるように構成される。
文を、2nビット(nは正の偶整数)を含みかつ複数の
連続した変換丸めを含むデータブロック中の暗号文に変
換するデータの暗号化方法において、各連続する変換丸
めは、鍵ビットの特定のビットの組合せおよびs*mビ
ット長の内部鍵を選択し、ここで、sは正の整数、mは
正の偶整数であり、s個の(m×n)の相互に異なる置
換ボックスによって内部鍵を処理し、修正された内部鍵
を発生し、ここで、m<<n、m<log{n、n/2}
であり、{n、n/2}の表記はnからn/2を選ぶ可
能な組み合わせを表わし、各データブロックの半分と修
正された内部鍵とを排他的論理和(XOR)演算し、第
1の修正されたデータブロックの半分を発生し、第1の
修正されたデータブロックの半分をr部分に分割し、こ
こでrは正の整数であり、r個の(m×n)の相互に異
なる置換ボックスによって第1の修正されたデータブロ
ックの半分の各部を処理し、第2の修正されたデータブ
ロックの半分を発生し、第2の修正されたデータブロッ
クの半分と残りのデータブロックの半分をXOR演算
し、変換丸めの変換されたデータブロックの半分を発生
させるように構成される。
【0018】本発明の他の見地によれば、本発明は、平
文を各データブロックの半分の複数の連続した変換丸め
を含む所定のビット長のデータブロック中の暗号文に変
換するデータの暗号化システムにおいて、複数の部分的
曲げ関数の(m×n)のs一ボックスを有する変換丸め
関数手段を含み、ここで、mおよびnは正の偶整数であ
り、m<<n、m<log{n、n/2}であり、{n、
n/2}の表記はnからn/2を選ぶ可能な組み合わせ
を表わし、各s−ボックスは、曲げられないベクトルの
中で2m長のnバイナリ曲げベクトルを含む2m×nバイ
ナリ・マトリクスであり、少くともひとつの曲げのない
非ゼロ線形組み合わせベクトルであるように構成され
る。
文を各データブロックの半分の複数の連続した変換丸め
を含む所定のビット長のデータブロック中の暗号文に変
換するデータの暗号化システムにおいて、複数の部分的
曲げ関数の(m×n)のs一ボックスを有する変換丸め
関数手段を含み、ここで、mおよびnは正の偶整数であ
り、m<<n、m<log{n、n/2}であり、{n、
n/2}の表記はnからn/2を選ぶ可能な組み合わせ
を表わし、各s−ボックスは、曲げられないベクトルの
中で2m長のnバイナリ曲げベクトルを含む2m×nバイ
ナリ・マトリクスであり、少くともひとつの曲げのない
非ゼロ線形組み合わせベクトルであるように構成され
る。
【0019】
【作用】本発明の暗号化方法においては、各データブロ
ックの半分の複数の連続した変換丸めを行うことによっ
て、平文を所定のビット長のデータブロック中の暗号文
に変換する。各連続する変換丸めは、鍵ビットからの特
定のビット組合せの内部鍵を選択し、(m×n)の置換
ボックスによって内部鍵を処理し、修正された内部鍵を
発生する。各データブロックの半分と修正された内部鍵
とを排他的論理和(XOR)演算し、第1の修正された
データブロックの半分を発生し、複数の(m×n)の相
互に異なる複数の置換ボックスによって第1の修正され
たデータブロックの半分を処理し、第2の修正されたデ
ータブロックの半分を発生する。さらに、第2の修正さ
れたデータブロックの半分と残りのデータブロックの半
分をXOR演算し、丸め変換されたデータブロックの半
分を発生させる。
ックの半分の複数の連続した変換丸めを行うことによっ
て、平文を所定のビット長のデータブロック中の暗号文
に変換する。各連続する変換丸めは、鍵ビットからの特
定のビット組合せの内部鍵を選択し、(m×n)の置換
ボックスによって内部鍵を処理し、修正された内部鍵を
発生する。各データブロックの半分と修正された内部鍵
とを排他的論理和(XOR)演算し、第1の修正された
データブロックの半分を発生し、複数の(m×n)の相
互に異なる複数の置換ボックスによって第1の修正され
たデータブロックの半分を処理し、第2の修正されたデ
ータブロックの半分を発生する。さらに、第2の修正さ
れたデータブロックの半分と残りのデータブロックの半
分をXOR演算し、丸め変換されたデータブロックの半
分を発生させる。
【0020】また、本発明の暗号化方法においては、各
データブロックの半分の複数の連続した変換丸めを行う
ことによって、平文を所定のビット長のデータブロック
中の暗号文に変換する。各連続する変換丸めは、鍵ビッ
トの特定のビットの組合せおよびs*mビット長の内部
鍵を選択し、s個の(m×n)の相互に異なる置換ボッ
クスによって内部鍵を処理し、修正された内部鍵を発生
する。ここで、sは正の整数、mは正の偶整数であり、
m<<n、m<log{n、n/2}であり、{n、n/
2}の表記はnからn/2を選ぶ可能な組み合わせを表
わす。各データブロックの半分と修正された内部鍵とを
排他的論理和(XOR)演算し、第1の修正されたデー
タブロックの半分を発生し、第1の修正されたデータブ
ロックの半分をr部分に分割し、r個の(m×n)の相
互に異なる置換ボックスによって第1の修正されたデー
タブロックの半分の各部を処理し、第2の修正されたデ
ータブロックの半分を発生する。ここでrは正の整数で
ある。第2の修正されたデータブロックの半分と残りの
データブロックの半分をXOR演算し、変換丸めの変換
されたデータブロックの半分を発生させる。
データブロックの半分の複数の連続した変換丸めを行う
ことによって、平文を所定のビット長のデータブロック
中の暗号文に変換する。各連続する変換丸めは、鍵ビッ
トの特定のビットの組合せおよびs*mビット長の内部
鍵を選択し、s個の(m×n)の相互に異なる置換ボッ
クスによって内部鍵を処理し、修正された内部鍵を発生
する。ここで、sは正の整数、mは正の偶整数であり、
m<<n、m<log{n、n/2}であり、{n、n/
2}の表記はnからn/2を選ぶ可能な組み合わせを表
わす。各データブロックの半分と修正された内部鍵とを
排他的論理和(XOR)演算し、第1の修正されたデー
タブロックの半分を発生し、第1の修正されたデータブ
ロックの半分をr部分に分割し、r個の(m×n)の相
互に異なる置換ボックスによって第1の修正されたデー
タブロックの半分の各部を処理し、第2の修正されたデ
ータブロックの半分を発生する。ここでrは正の整数で
ある。第2の修正されたデータブロックの半分と残りの
データブロックの半分をXOR演算し、変換丸めの変換
されたデータブロックの半分を発生させる。
【0021】さらに、本発明の暗号化システムにおいて
は、各データブロックの半分の複数の連続した変換丸め
を行うことによって、平文を所定のビット長のデータブ
ロック中の暗号文に変換する。複数の部分的曲げ関数の
(m×n)のs一ボックスを有する変換丸め関数手段を
含む。各(m×n)の各s−ボックスは、2m長のn個
のバイナリ曲げベクトルと少くとも一つの曲がらない非
ゼロ線形組み合わせベクトルを含む2m×nバイナリ・
マトリクスである。
は、各データブロックの半分の複数の連続した変換丸め
を行うことによって、平文を所定のビット長のデータブ
ロック中の暗号文に変換する。複数の部分的曲げ関数の
(m×n)のs一ボックスを有する変換丸め関数手段を
含む。各(m×n)の各s−ボックスは、2m長のn個
のバイナリ曲げベクトルと少くとも一つの曲がらない非
ゼロ線形組み合わせベクトルを含む2m×nバイナリ・
マトリクスである。
【0022】
【実施例】本発明は、(m×n)のs一ボックスを使用
する。ここで、mおよびnは、正の偶整数であり、m<<
n、m<log{n、n/2}である。ここで、{n、
n/2}の表記はnからn/2を選ぶ可能な組み合わせ
を表わす。このs−ボックスは、部分的に曲げ関数を用
い、暗号化の他の好ましい特性を満たすと同時に、均一
な出力XOR分布を発生する。
する。ここで、mおよびnは、正の偶整数であり、m<<
n、m<log{n、n/2}である。ここで、{n、
n/2}の表記はnからn/2を選ぶ可能な組み合わせ
を表わす。このs−ボックスは、部分的に曲げ関数を用
い、暗号化の他の好ましい特性を満たすと同時に、均一
な出力XOR分布を発生する。
【0023】図3は、本発明の全体の構成を示す。この
アルゴリズム構成はDESに類似する。データのブロッ
クサイズは、2nにセットされる。ここで、n=r*
m、rは1より大きい整数である。平文の1つのデータ
ブロックは最初は長さnの半分に分解される。各丸めに
おいて、半分が修正され、残りの半分にモジュロ2が加
えられる。その後この2つの半分は相互に入れ替わる。
R丸めの後、この2つの半分は連結され暗号文を形成す
る。
アルゴリズム構成はDESに類似する。データのブロッ
クサイズは、2nにセットされる。ここで、n=r*
m、rは1より大きい整数である。平文の1つのデータ
ブロックは最初は長さnの半分に分解される。各丸めに
おいて、半分が修正され、残りの半分にモジュロ2が加
えられる。その後この2つの半分は相互に入れ替わる。
R丸めの後、この2つの半分は連結され暗号文を形成す
る。
【0024】本発明では、DESと異なり、順列層はな
い。また、各丸めにおけるデータブロックの半分の修正
(丸め関数)は、DESとは全く異なっている。本発明
において、丸め関数は、互換性のないクラスのr+s
(m×n)の部分的な曲げ関数のsボックスを含む。こ
こでsは1より大きい整数である。
い。また、各丸めにおけるデータブロックの半分の修正
(丸め関数)は、DESとは全く異なっている。本発明
において、丸め関数は、互換性のないクラスのr+s
(m×n)の部分的な曲げ関数のsボックスを含む。こ
こでsは1より大きい整数である。
【0025】丸めiに対する内部鍵Kiは、s個のmビ
ット片に分解される。内部鍵の各s個の片は、各s個の
分離した(m×n)のs−ボックスに入力され、nビッ
ト出力は排他的論理和(XOR)演算され、nビットの
修正内部鍵を形成する。nビットの修正内部鍵はデータ
ブロックRiの半分でXOR演算され、nビットの第1
の修正されたデータブロックの半分を形成する。それは
その後r個のmビット片に分解される。
ット片に分解される。内部鍵の各s個の片は、各s個の
分離した(m×n)のs−ボックスに入力され、nビッ
ト出力は排他的論理和(XOR)演算され、nビットの
修正内部鍵を形成する。nビットの修正内部鍵はデータ
ブロックRiの半分でXOR演算され、nビットの第1
の修正されたデータブロックの半分を形成する。それは
その後r個のmビット片に分解される。
【0026】各r個のmビット片は、各r個の分離され
た(m×n)s−ボックスに入力され、r個のs−ボッ
クスのすべてのnビット出力はXOR演算され、nビッ
トの第2の修正されたデータブロックの半分R’iを形
成する。この第2の修正されたデータブロックの半分
は、その後データブロックの残りの半分とXOR演算さ
れ、変換された半分の丸めのデータブロックを形成す
る。
た(m×n)s−ボックスに入力され、r個のs−ボッ
クスのすべてのnビット出力はXOR演算され、nビッ
トの第2の修正されたデータブロックの半分R’iを形
成する。この第2の修正されたデータブロックの半分
は、その後データブロックの残りの半分とXOR演算さ
れ、変換された半分の丸めのデータブロックを形成す
る。
【0027】図4および5は、本発明の1実施例によ
る、m=8、n=32、r=4、およびs=2の場合の
暗号化処理のアルゴリズムフローチャートを示す。特に
図4は、平文の64ビットブロックが2つの32ビット
(L1(左)およびR1(右))に分割されることを示
す。
る、m=8、n=32、r=4、およびs=2の場合の
暗号化処理のアルゴリズムフローチャートを示す。特に
図4は、平文の64ビットブロックが2つの32ビット
(L1(左)およびR1(右))に分割されることを示
す。
【0028】第1の丸めにおいて、R1は丸め関数f1で
内部鍵K1を使用して修正される。各丸めにおいて、特
定の内部鍵を発生するための鍵スケジューリングを以下
に詳細に記述する。f1の出力は、R’1であり、その
R’1と左のデータブロックの半分L1とがモジュロ2で
加えられ、変換されたデータブロックの半分を生成す
る。変換されたデータブロックの半分は、第2の丸めの
ために入力R2に用いられる。R1は、第2の丸めのため
に左のデータブロックの半分L2に直接用いられる。同
じプロセスが8つの丸めによって繰り返され、暗号文を
形成するために連結されるL9およびR9を発生する。
内部鍵K1を使用して修正される。各丸めにおいて、特
定の内部鍵を発生するための鍵スケジューリングを以下
に詳細に記述する。f1の出力は、R’1であり、その
R’1と左のデータブロックの半分L1とがモジュロ2で
加えられ、変換されたデータブロックの半分を生成す
る。変換されたデータブロックの半分は、第2の丸めの
ために入力R2に用いられる。R1は、第2の丸めのため
に左のデータブロックの半分L2に直接用いられる。同
じプロセスが8つの丸めによって繰り返され、暗号文を
形成するために連結されるL9およびR9を発生する。
【0029】図5は、図4と同じパラメータを使用し
て、丸めiを行う丸め関数fiの一実施例を詳細に示す
図である。この実施例によると、16ビット長の内部鍵
Kiは、特定の鍵スケジューリング機構70を介して、
64ビットの鍵Kから選択される。16ビットは2つの
8ビットに分割される。第1のバイトは、8×32のs
−ボックス(S5)を、第2のバイトはs−ボックス
(S6)を通り、32ビット出力72に出力される。S
5およびS6の出力はXOR演算され、修正された32
ビット長の内部鍵K’i74を発生する。データブロッ
クの半分Riと修正された内部鍵K’iはXOR演算さ
れ、32ビット長の第1の修正されたデータブロックの
半分R”i76を発生する。このデータブロックR”i7
6は、4分割され、その各々はS1、S2、S3および
S4の4つの8×32のs−ボックス78に入力され
る。これらの4つのs−ボックスの出力は、再びXOR
演算され32ビット長の第2の修正されたデータブロッ
クの半分R’iを形成する。
て、丸めiを行う丸め関数fiの一実施例を詳細に示す
図である。この実施例によると、16ビット長の内部鍵
Kiは、特定の鍵スケジューリング機構70を介して、
64ビットの鍵Kから選択される。16ビットは2つの
8ビットに分割される。第1のバイトは、8×32のs
−ボックス(S5)を、第2のバイトはs−ボックス
(S6)を通り、32ビット出力72に出力される。S
5およびS6の出力はXOR演算され、修正された32
ビット長の内部鍵K’i74を発生する。データブロッ
クの半分Riと修正された内部鍵K’iはXOR演算さ
れ、32ビット長の第1の修正されたデータブロックの
半分R”i76を発生する。このデータブロックR”i7
6は、4分割され、その各々はS1、S2、S3および
S4の4つの8×32のs−ボックス78に入力され
る。これらの4つのs−ボックスの出力は、再びXOR
演算され32ビット長の第2の修正されたデータブロッ
クの半分R’iを形成する。
【0030】このように、丸めiの丸め関数fiは、以
下のように定義される。 R’i=fi(Ri、Ki)=SUM Sj[R”i,j] ここで、 R”i=Ri XOR S5[Ki,1]XOR S6[K
i,2] R”i,jは、R”iのj番目のバイトであり、そして加算
は、j=1から4で行われる。 S1[R”i,j]、S2[R”i,2]、・・・S6[K
i,2] は、それぞれ、s−ボックスS1によるR”iの第1バ
イトの変換、s−ボックスS2によるR”iの第2バイ
トの変換、・・・およびs−ボックスS6による内部鍵
Kiの第2バイトの変換を表している。
下のように定義される。 R’i=fi(Ri、Ki)=SUM Sj[R”i,j] ここで、 R”i=Ri XOR S5[Ki,1]XOR S6[K
i,2] R”i,jは、R”iのj番目のバイトであり、そして加算
は、j=1から4で行われる。 S1[R”i,j]、S2[R”i,2]、・・・S6[K
i,2] は、それぞれ、s−ボックスS1によるR”iの第1バ
イトの変換、s−ボックスS2によるR”iの第2バイ
トの変換、・・・およびs−ボックスS6による内部鍵
Kiの第2バイトの変換を表している。
【0031】各ボックスは、m<nであるため、必然的
にデータ拡張が発生するが、このような方法でs−ボッ
クスのセットを使用すると、データブロックの半分の拡
張は起こらない。従って、この暗号化システムは等しい
入出力ブロックサイズを有する。
にデータ拡張が発生するが、このような方法でs−ボッ
クスのセットを使用すると、データブロックの半分の拡
張は起こらない。従って、この暗号化システムは等しい
入出力ブロックサイズを有する。
【0032】(A)(m×n)のs−ボックス(m<<
n)の設計 上述したように、DESのような暗号システムの安全性
は、主にそのs−ボックスにかかっている。しかしなが
ら、実際には、それらボックスの設計はしばしば専門的
で機密的なものである。本発明によると、好ましいs−
ボックスは、以下に示すように比較的に簡単な形態で設
計することができる。(m×n)のs−ボックスは、2
m×nバイナリ・マトリクスMで表され、ここで各列は
m入力変数のブール関数に対応するバイナリ・ベクトル
であり、所定の入力に対して単一の出力ビットの応答を
形成する。したがって、マトリクスM(1<i<2m)
の行iは、i番目の入力ベクトルから生じるnビット出
力ベクトルである。
n)の設計 上述したように、DESのような暗号システムの安全性
は、主にそのs−ボックスにかかっている。しかしなが
ら、実際には、それらボックスの設計はしばしば専門的
で機密的なものである。本発明によると、好ましいs−
ボックスは、以下に示すように比較的に簡単な形態で設
計することができる。(m×n)のs−ボックスは、2
m×nバイナリ・マトリクスMで表され、ここで各列は
m入力変数のブール関数に対応するバイナリ・ベクトル
であり、所定の入力に対して単一の出力ビットの応答を
形成する。したがって、マトリクスM(1<i<2m)
の行iは、i番目の入力ベクトルから生じるnビット出
力ベクトルである。
【0033】2次元ウォルシュ・アダマール変換の正規
化ベクトルのすべての係数が+1または−1である場
合、バイナリ・ベクトルは曲げられる。ウォルシュ・ア
ダマール変換は、フーリエ変換のバイナリ・アナログで
ある。バイナリ曲げベクトルは十分に定義されており、
これ以上の説明は必要でない。しかし、非常に多くのそ
のようなベクトルが知られており、本発明においてもそ
のようなベクトルを容易に使用できる。
化ベクトルのすべての係数が+1または−1である場
合、バイナリ・ベクトルは曲げられる。ウォルシュ・ア
ダマール変換は、フーリエ変換のバイナリ・アナログで
ある。バイナリ曲げベクトルは十分に定義されており、
これ以上の説明は必要でない。しかし、非常に多くのそ
のようなベクトルが知られており、本発明においてもそ
のようなベクトルを容易に使用できる。
【0034】上述したように、曲げ関数の(m×n)の
s−ボックスは、m≧2nの場合に限り存在する。本発
明においては、部分的に曲げ関数である(m×n)のs
−ボックスを形成するためのs−ボックス設計を使用す
る。ここで、m<nおよびm<log{n、n/2}、
{n、n/2}の表記はnからn/2を選ぶ可能な組み
合わせを表わす。s−ボックスは、s−ボックスを表す
バイナリ・マトリクスMの列が曲げられる場合、部分的
に曲げ関数になるように構成される。しかし、(モジュ
ロ2で加算された)これらの列の非ゼロ線形組み合わせ
の少くとも一つは曲げられない。
s−ボックスは、m≧2nの場合に限り存在する。本発
明においては、部分的に曲げ関数である(m×n)のs
−ボックスを形成するためのs−ボックス設計を使用す
る。ここで、m<nおよびm<log{n、n/2}、
{n、n/2}の表記はnからn/2を選ぶ可能な組み
合わせを表わす。s−ボックスは、s−ボックスを表す
バイナリ・マトリクスMの列が曲げられる場合、部分的
に曲げ関数になるように構成される。しかし、(モジュ
ロ2で加算された)これらの列の非ゼロ線形組み合わせ
の少くとも一つは曲げられない。
【0035】このような部分的な曲げ関数s−ボックス
は、次に述べるように構成される。ここで、m、n、r
は、上で定義された通りである。 (a)公知のバイナリ・ベクトルから、2m長のn個の
バイナリ曲げベクトルφi(i=1、2、・・・、n)
を選択し、これらのベクトルの組み合わせ(モジュロ
2)が高度の非線形ベクトルになるようにする。ここ
で、高度の非線形ベクトルとは線形ベクトルからの大き
なハミング距離を有するベクトルである。 (b)ハミング重みが(2m-1+2(m/2)-1)になるよう
にφiの半分を選択し、残りの半分は、(2m-1−2
(m/2)-1)の重みになるようにする。これらは、2m長の
バイナリ曲げベクトルに対して可能な2つの重みであ
る。ハミング重みは、バイナリ・ベクトル中の1の数で
あり、2つ以上のバイナリ・ベクトルの間のハミング距
離は、これらのベクトルをXOR演算した結果のハミン
グ重みである。 (c)n個のφiがs−ボックスを表すマトリクスMの
列になるようにセットする。 (d)マトリクスMが2mの別の行を有し、各行のハミ
ング重みおよび一対の行間のハミング距離がn/2に近
いかをチェックする。すなわち、各重みの集合および各
距離の集合は、n/2の平均を有し、ゼロではない適当
に小さい変数を有する。 (e)これらの条件が満たされない場合、状件が満たさ
れるまで適当な曲げベクトル(すなわち、候補φi)の
選択およびマトリクスのチェックを続行する。
は、次に述べるように構成される。ここで、m、n、r
は、上で定義された通りである。 (a)公知のバイナリ・ベクトルから、2m長のn個の
バイナリ曲げベクトルφi(i=1、2、・・・、n)
を選択し、これらのベクトルの組み合わせ(モジュロ
2)が高度の非線形ベクトルになるようにする。ここ
で、高度の非線形ベクトルとは線形ベクトルからの大き
なハミング距離を有するベクトルである。 (b)ハミング重みが(2m-1+2(m/2)-1)になるよう
にφiの半分を選択し、残りの半分は、(2m-1−2
(m/2)-1)の重みになるようにする。これらは、2m長の
バイナリ曲げベクトルに対して可能な2つの重みであ
る。ハミング重みは、バイナリ・ベクトル中の1の数で
あり、2つ以上のバイナリ・ベクトルの間のハミング距
離は、これらのベクトルをXOR演算した結果のハミン
グ重みである。 (c)n個のφiがs−ボックスを表すマトリクスMの
列になるようにセットする。 (d)マトリクスMが2mの別の行を有し、各行のハミ
ング重みおよび一対の行間のハミング距離がn/2に近
いかをチェックする。すなわち、各重みの集合および各
距離の集合は、n/2の平均を有し、ゼロではない適当
に小さい変数を有する。 (e)これらの条件が満たされない場合、状件が満たさ
れるまで適当な曲げベクトル(すなわち、候補φi)の
選択およびマトリクスのチェックを続行する。
【0036】他の実施例によると、部分的に曲げ関数の
8×32のs−ボックスは、以下に述べる通りさらに構
造的プロセスを用いてより簡単に設計できる。 (a’)公知のバイナリ曲げベクトルのプールから28
長の第1のバイナリ曲げベクトルを選択する。 (b’)同じ長さの第2の曲げベクトルを選択し、第1
および第2ベクトル間のハミング距離を測定する。測定
されたハミング距離が所定の現在の好ましい閾値を越え
る場合、第2の曲げベクトルを維持する。 (c’)同じ長さの第3の曲げベクトルを選択し、第
1、第2および第3のベクトル間のすべての可能なハミ
ング距離を測定する。すべての測定されたハミング距離
が閾値を越える場合、第3の曲げベクトルを維持する。 (d’)上記のプロセスは、第4、第5の曲げベクトル
に対しおよびそれ以降の曲げベクトルに対して行われ、
32の曲げベクトルが選択されるまで続行される。各ス
テップにおいて、すべての可能なハミング距離が閾値を
越えるか否かがチェックされる。 (e’)32の選択されたベクトルがベクトルMの列に
なるようにセットする。 (f’)必要に応じて、上述のステップ(b)および
(d)の条件を満たすように、適当なバイナリ線形のベ
クトルとマトリクスMの列をXOR演算する。その結果
得られたマトリクスMが(m×n)のs−ボックスであ
る。
8×32のs−ボックスは、以下に述べる通りさらに構
造的プロセスを用いてより簡単に設計できる。 (a’)公知のバイナリ曲げベクトルのプールから28
長の第1のバイナリ曲げベクトルを選択する。 (b’)同じ長さの第2の曲げベクトルを選択し、第1
および第2ベクトル間のハミング距離を測定する。測定
されたハミング距離が所定の現在の好ましい閾値を越え
る場合、第2の曲げベクトルを維持する。 (c’)同じ長さの第3の曲げベクトルを選択し、第
1、第2および第3のベクトル間のすべての可能なハミ
ング距離を測定する。すべての測定されたハミング距離
が閾値を越える場合、第3の曲げベクトルを維持する。 (d’)上記のプロセスは、第4、第5の曲げベクトル
に対しおよびそれ以降の曲げベクトルに対して行われ、
32の曲げベクトルが選択されるまで続行される。各ス
テップにおいて、すべての可能なハミング距離が閾値を
越えるか否かがチェックされる。 (e’)32の選択されたベクトルがベクトルMの列に
なるようにセットする。 (f’)必要に応じて、上述のステップ(b)および
(d)の条件を満たすように、適当なバイナリ線形のベ
クトルとマトリクスMの列をXOR演算する。その結果
得られたマトリクスMが(m×n)のs−ボックスであ
る。
【0037】本発明の他の実施例によると、上述のプロ
セスは、すべてのハミング距離を測定せずに、すでに選
ばれた候補ベクトル間の3つのベクトルの部分集合のハ
ミング距離を測定することによってより簡潔化できる。
言い換えれば、上述のステップ(d’)は、以下に述べ
るステップ(d”)に置き換え可能である。 (d”)上記のプロセスは、第4、第5の曲げベクトル
に対しおよびそれ以降の曲げベクトルに対して行われ、
32の曲げベクトルが選択されるまで続行される。各ス
テップにおいて、すべての3つの部分集合間のハミング
距離が閾値を越えるか否かがチェックされる。
セスは、すべてのハミング距離を測定せずに、すでに選
ばれた候補ベクトル間の3つのベクトルの部分集合のハ
ミング距離を測定することによってより簡潔化できる。
言い換えれば、上述のステップ(d’)は、以下に述べ
るステップ(d”)に置き換え可能である。 (d”)上記のプロセスは、第4、第5の曲げベクトル
に対しおよびそれ以降の曲げベクトルに対して行われ、
32の曲げベクトルが選択されるまで続行される。各ス
テップにおいて、すべての3つの部分集合間のハミング
距離が閾値を越えるか否かがチェックされる。
【0038】特定の例をあげると、第5のベクトルを選
ぶために、第5のベクトルと4つのベクトルの中から選
択された2つのベクトル、例えば、それぞれ第1、第2
および第5のベクトル間;第1、第3および第5のベク
トル間;第1、第4および第5のベクトル間;第2、第
3および第5のベクトル間;第2、第4および第5のベ
クトル間;第3、第4および第5のベクトル間の距離の
ハミング距離を測定する。すべての距離が閾値を越える
場合、第5のベクトルを維持する。
ぶために、第5のベクトルと4つのベクトルの中から選
択された2つのベクトル、例えば、それぞれ第1、第2
および第5のベクトル間;第1、第3および第5のベク
トル間;第1、第4および第5のベクトル間;第2、第
3および第5のベクトル間;第2、第4および第5のベ
クトル間;第3、第4および第5のベクトル間の距離の
ハミング距離を測定する。すべての距離が閾値を越える
場合、第5のベクトルを維持する。
【0039】図6および図7は上述のように設計された
2つのs−ボックスのサンプルを示す図である。s−ボ
ックスは行列に配列され、検索を容易にするために2進
数の代わりに16進数で示されている。これらの図は、
以下のように構成されている。第1列、第1行が第1の
s−ボックスのエントリ、第1行、第2列が第2のs−
ボックスのエントリ、第2行、第1列が第9のs−ボッ
クスのエントリ、第32行、第8列が第256のs−ボ
ックスのエントリである。
2つのs−ボックスのサンプルを示す図である。s−ボ
ックスは行列に配列され、検索を容易にするために2進
数の代わりに16進数で示されている。これらの図は、
以下のように構成されている。第1列、第1行が第1の
s−ボックスのエントリ、第1行、第2列が第2のs−
ボックスのエントリ、第2行、第1列が第9のs−ボッ
クスのエントリ、第32行、第8列が第256のs−ボ
ックスのエントリである。
【0040】上述のように構成されたs−ボックスは、
以下の特性を有している。 ・各行のゼロと1がほぼ半々であるためにかなり”混
乱”が生じる。 ・1対のどの行の合計(モジュロ2)もゼロと1がほぼ
半々であるためにかなりのなだれ(アバランシェ)を生
じる。 ・マトリクス列として曲げベクトルを使用するため、各
出力ビットは入力ベクトルの変化に理想的に応答する。 ・さらに、非線形的の曲げ関数を使用することによっ
て、s−ボックスから”理想的”な動作を保証できる。
すなわち、m入力ビットが何らかの変化(単一ビットか
ら多重ビットへ、全補数へ)をすると、他のすべての出
力ビットと独立に、1/2の確率で各n出力ビットを変
化させる。
以下の特性を有している。 ・各行のゼロと1がほぼ半々であるためにかなり”混
乱”が生じる。 ・1対のどの行の合計(モジュロ2)もゼロと1がほぼ
半々であるためにかなりのなだれ(アバランシェ)を生
じる。 ・マトリクス列として曲げベクトルを使用するため、各
出力ビットは入力ベクトルの変化に理想的に応答する。 ・さらに、非線形的の曲げ関数を使用することによっ
て、s−ボックスから”理想的”な動作を保証できる。
すなわち、m入力ビットが何らかの変化(単一ビットか
ら多重ビットへ、全補数へ)をすると、他のすべての出
力ビットと独立に、1/2の確率で各n出力ビットを変
化させる。
【0041】したがって、平均して、出力ビットのおよ
そ半分は変化し、s−ボックス出力はモジュロ2で加算
されるので、修正されたデータブロックの半分中のほぼ
半分のビットが反転する。これは、いくつのs−ボック
スがそれらの入力を修正したかに関わらず真である。と
いうのは、バイナリ・ベクトルの非ゼロの集合中のほぼ
半分のビットをランダムに変化させることによって、モ
ジュロ2の加算中でビットのほぼ半分はランダムに変化
する。
そ半分は変化し、s−ボックス出力はモジュロ2で加算
されるので、修正されたデータブロックの半分中のほぼ
半分のビットが反転する。これは、いくつのs−ボック
スがそれらの入力を修正したかに関わらず真である。と
いうのは、バイナリ・ベクトルの非ゼロの集合中のほぼ
半分のビットをランダムに変化させることによって、モ
ジュロ2の加算中でビットのほぼ半分はランダムに変化
する。
【0042】この設計は、順列層を必要としないことに
注目すべきである。他の公知のシステムにおいては、順
列は必須である。なぜなら、s−ボックスはデータブロ
ックの半分(半分のメッセージ)のサイズに比較して小
さく、また、順列は単一のs−ボックスからデータブロ
ックの半分になだれ(アバランシェ)を広げるように働
き、それによって、これらの変化は次の丸め中でいくつ
かのs−ボックスに入力されるからである。本発明のシ
ステムにおいては、各s−ボックスは、全メッセージの
半分に直接影響を与えるので、変化は順列層なしで次の
丸め中の多くのs−ボックスに影響を与えるように保証
される。
注目すべきである。他の公知のシステムにおいては、順
列は必須である。なぜなら、s−ボックスはデータブロ
ックの半分(半分のメッセージ)のサイズに比較して小
さく、また、順列は単一のs−ボックスからデータブロ
ックの半分になだれ(アバランシェ)を広げるように働
き、それによって、これらの変化は次の丸め中でいくつ
かのs−ボックスに入力されるからである。本発明のシ
ステムにおいては、各s−ボックスは、全メッセージの
半分に直接影響を与えるので、変化は順列層なしで次の
丸め中の多くのs−ボックスに影響を与えるように保証
される。
【0043】(B)鍵スケジューリング 鍵は暗号設計において非常に重要である。鍵スケジュー
ルは、鍵/暗号文の厳格なアバランシェ基準(SAC)
およびビット独立基準(BIC)の保証をする必要があ
る。すなわち、各暗号文ビットは、複雑で、非線形の方
法で、全ての鍵ビットに依存すべきであり、また、鍵の
変化は、実質的に他の暗号文ビットから独立して、各暗
号文ビットがほぼ2分の1の確率で変化するようにすべ
きである。一方、実施の点から見ると、鍵スケジュール
はできるだけ簡単であることが好ましい。本発明におい
ては、鍵のサイズは、2nビットのブロックサイズであ
る。各丸めにおいては、上述のように、鍵はs*mビッ
トが使用され、s(m×n)のs−ボックスの入力とし
て使用される。s(m×n)のs−ボックスは、nビッ
トのデータブロックの半分とモジュロ2で加算されるs
個のnビット出力を発生する。s−ボックスの特性の故
に、丸め時の鍵ビットへの変化は、その丸め時の修正さ
れたデータブロックの半分中のビットのほぼ半分をラン
ダムに変更させる。
ルは、鍵/暗号文の厳格なアバランシェ基準(SAC)
およびビット独立基準(BIC)の保証をする必要があ
る。すなわち、各暗号文ビットは、複雑で、非線形の方
法で、全ての鍵ビットに依存すべきであり、また、鍵の
変化は、実質的に他の暗号文ビットから独立して、各暗
号文ビットがほぼ2分の1の確率で変化するようにすべ
きである。一方、実施の点から見ると、鍵スケジュール
はできるだけ簡単であることが好ましい。本発明におい
ては、鍵のサイズは、2nビットのブロックサイズであ
る。各丸めにおいては、上述のように、鍵はs*mビッ
トが使用され、s(m×n)のs−ボックスの入力とし
て使用される。s(m×n)のs−ボックスは、nビッ
トのデータブロックの半分とモジュロ2で加算されるs
個のnビット出力を発生する。s−ボックスの特性の故
に、丸め時の鍵ビットへの変化は、その丸め時の修正さ
れたデータブロックの半分中のビットのほぼ半分をラン
ダムに変更させる。
【0044】鍵に使用されるs個のs−ボックスは、互
換クラスから分離されるべきであり、さらに、s−ボッ
クス出力の保証されたキャンセルが存在しないように、
データブロックの半分修正中で使用される他のr個のs
−ボックスから分離されたクラス中にあるべきである。
集合上の互換性の関係は、反射および対称の特性関係で
ある。2つのs−ボックスは、それらが、共通の1以上
のブール関数を有する場合、あるいは、1つのブール関
数が他方のブール関数の線形の変形である場合(たとえ
ば、そのビット方向の補間)、同じ互換性クラスにある
といえる。
換クラスから分離されるべきであり、さらに、s−ボッ
クス出力の保証されたキャンセルが存在しないように、
データブロックの半分修正中で使用される他のr個のs
−ボックスから分離されたクラス中にあるべきである。
集合上の互換性の関係は、反射および対称の特性関係で
ある。2つのs−ボックスは、それらが、共通の1以上
のブール関数を有する場合、あるいは、1つのブール関
数が他方のブール関数の線形の変形である場合(たとえ
ば、そのビット方向の補間)、同じ互換性クラスにある
といえる。
【0045】丸めi中で選択されたs*m鍵ビットは、
丸めi+1中で選択されたs*m鍵ビットと異なるべき
である。というのは、よく知られているように、回転鍵
を有しないDESのような暗号システムは壊れることが
あるためである。他の必要条件は、鍵ビットが初めて最
後の丸め中で使用された場合、そのビットを補足するこ
とは、単にデータブロックの半分に影響を及ぼすだけで
あるので、ネットワークは鍵/暗号文の完全なテストが
できなくなる。したがって、すべての鍵ビットは、遅く
とも第2の最後の丸めが使用されなければならない。
丸めi+1中で選択されたs*m鍵ビットと異なるべき
である。というのは、よく知られているように、回転鍵
を有しないDESのような暗号システムは壊れることが
あるためである。他の必要条件は、鍵ビットが初めて最
後の丸め中で使用された場合、そのビットを補足するこ
とは、単にデータブロックの半分に影響を及ぼすだけで
あるので、ネットワークは鍵/暗号文の完全なテストが
できなくなる。したがって、すべての鍵ビットは、遅く
とも第2の最後の丸めが使用されなければならない。
【0046】本発明の実施例においては、KEY(初期
鍵)=k1k2k3k4k5k6k7k8であり、ここでkiは、KEYの
第i番目のバイトである。従って、鍵スケジュールは、
以下のようになる。 丸めiでの内部鍵 鍵のバイト(8バイト) K1 k1、k2 K2 k3、k4 K3 k5、k6 K4 k7、k8 K5 k4'、k3' K6 k2'、k1' K7 k8'、k7' K8 k6'、k5' KEYは、丸め4と丸め5との間でKEY’=k1'k2'k
3'k4'k5'k6'k7'k8'に変換される。その変換は、以下の
ように定義される。 (k1'k2'k3'k4')=(k1k2k3k4)+S5[k5]+S6[k
7] (k5'k6'k7'k8')=(k5k6k7k8)+S5[k2']+S6
[k4'] KEY’のバイトは、上述のように残りの4つの内部鍵
を構成するために用いられる。
鍵)=k1k2k3k4k5k6k7k8であり、ここでkiは、KEYの
第i番目のバイトである。従って、鍵スケジュールは、
以下のようになる。 丸めiでの内部鍵 鍵のバイト(8バイト) K1 k1、k2 K2 k3、k4 K3 k5、k6 K4 k7、k8 K5 k4'、k3' K6 k2'、k1' K7 k8'、k7' K8 k6'、k5' KEYは、丸め4と丸め5との間でKEY’=k1'k2'k
3'k4'k5'k6'k7'k8'に変換される。その変換は、以下の
ように定義される。 (k1'k2'k3'k4')=(k1k2k3k4)+S5[k5]+S6[k
7] (k5'k6'k7'k8')=(k5k6k7k8)+S5[k2']+S6
[k4'] KEY’のバイトは、上述のように残りの4つの内部鍵
を構成するために用いられる。
【0047】この鍵スケジュールは、いくつかの価値あ
る特徴を有している。第1に、各鍵バイトは影響を2回
及ぼす。その1回は最初の4つの丸めであり、もう1回
は最後の4つの丸めである。第2に、各鍵バイトは、s
−ボックスS5に影響を与えるために1回使用され、s
一ボックスS6に影響を与えるために1回使用される。
第3に、どの鍵バイトも2つの連続する丸めには使用さ
れない。第4に、最後の4つの丸め中の鍵バイトは、最
初の4つの丸め中の鍵バイト(これは「中央での一致」
攻撃が容易である)と逆の順序になっていない。最後
に、図4から明確なように、初めの平文の左半分は、f
1、f3、f5およびf7によって修正され、右半分は
f2、f4、f6およびf8によって修正される。
る特徴を有している。第1に、各鍵バイトは影響を2回
及ぼす。その1回は最初の4つの丸めであり、もう1回
は最後の4つの丸めである。第2に、各鍵バイトは、s
−ボックスS5に影響を与えるために1回使用され、s
一ボックスS6に影響を与えるために1回使用される。
第3に、どの鍵バイトも2つの連続する丸めには使用さ
れない。第4に、最後の4つの丸め中の鍵バイトは、最
初の4つの丸め中の鍵バイト(これは「中央での一致」
攻撃が容易である)と逆の順序になっていない。最後
に、図4から明確なように、初めの平文の左半分は、f
1、f3、f5およびf7によって修正され、右半分は
f2、f4、f6およびf8によって修正される。
【0048】鍵スケジュールにおいては、iが奇数の場
合、各鍵バイトはfiに影響を及ぼすように用いられ、
iが偶数の場合、鍵バイトはfiに影響を及ぼすように
用いられる。上述の説明および図5から理解できるよう
に、本発明は、従来技術と違って、内部鍵を作るために
s−ボックスに依存し、各丸めに対しては修正された内
部鍵に依存することである。他の鍵スケジュールは、典
型的には、複素数ビット選択アルゴリズムを用いて、最
初の鍵から丸めiに対する内部鍵のビットを選択する。
しかしながら、ビット選択アルゴリズムにおける欠点
は、丸めの数に関係なく、暗号の単純な暗号解読ができ
ることである。本発明のスケジュールは、非常に単純な
ビット選択アルゴリズムおよび一組の鍵スケジュールs
−ボックスを使用して、変換丸め用の内部鍵および修正
された内部鍵を作成する。
合、各鍵バイトはfiに影響を及ぼすように用いられ、
iが偶数の場合、鍵バイトはfiに影響を及ぼすように
用いられる。上述の説明および図5から理解できるよう
に、本発明は、従来技術と違って、内部鍵を作るために
s−ボックスに依存し、各丸めに対しては修正された内
部鍵に依存することである。他の鍵スケジュールは、典
型的には、複素数ビット選択アルゴリズムを用いて、最
初の鍵から丸めiに対する内部鍵のビットを選択する。
しかしながら、ビット選択アルゴリズムにおける欠点
は、丸めの数に関係なく、暗号の単純な暗号解読ができ
ることである。本発明のスケジュールは、非常に単純な
ビット選択アルゴリズムおよび一組の鍵スケジュールs
−ボックスを使用して、変換丸め用の内部鍵および修正
された内部鍵を作成する。
【0049】鍵は、それ自身の逆の場合に弱く、また、
弱くなくてもその逆が簡単に見つかる場合、やや弱くな
る。平文の暗号化を鍵Hの下で行われ、その同一の平文
の復号が鍵Kの下で行われ場合、鍵Hは鍵Kの逆にな
る。s−ボックスがスケジュールそれ自身、たとえば、
内部鍵および修正された内部鍵中で用いられたという事
実によって、現在の鍵スケジューリング機構を使用する
暗号化システムが弱い鍵およびやや弱い鍵を有していな
いことが分かる。
弱くなくてもその逆が簡単に見つかる場合、やや弱くな
る。平文の暗号化を鍵Hの下で行われ、その同一の平文
の復号が鍵Kの下で行われ場合、鍵Hは鍵Kの逆にな
る。s−ボックスがスケジュールそれ自身、たとえば、
内部鍵および修正された内部鍵中で用いられたという事
実によって、現在の鍵スケジューリング機構を使用する
暗号化システムが弱い鍵およびやや弱い鍵を有していな
いことが分かる。
【0050】本発明の鍵スケジュールにおいては関連鍵
がないので、すなわち、前の内部鍵から派生した内部鍵
のアルゴリズムは、変換ステップの使用による全ての丸
めと同じではないので、本発明は関連の鍵暗号解読に対
して免疫を有する。鍵スケジュールを使用す暗号化は、
「選択鍵−選択された平文」、「選択鍵−公知の平文」
または「選択平文−関連の鍵」の攻撃を受けにくい。さ
らに、本発明は、公知の相補特性を有していないので、
このタイプの弱さに基づく少ない鍵サーチによる害を受
けにくい。
がないので、すなわち、前の内部鍵から派生した内部鍵
のアルゴリズムは、変換ステップの使用による全ての丸
めと同じではないので、本発明は関連の鍵暗号解読に対
して免疫を有する。鍵スケジュールを使用す暗号化は、
「選択鍵−選択された平文」、「選択鍵−公知の平文」
または「選択平文−関連の鍵」の攻撃を受けにくい。さ
らに、本発明は、公知の相補特性を有していないので、
このタイプの弱さに基づく少ない鍵サーチによる害を受
けにくい。
【0051】実施例2 他の実施例においては、例えば、5、6または7バイト
程度の小さい鍵サイズが用いられる。これらの入力鍵
は、上述のような鍵スケジュール特性を犠牲にすること
なくゼロ・バイトを埋め込むことにより8バイトに拡張
できる。
程度の小さい鍵サイズが用いられる。これらの入力鍵
は、上述のような鍵スケジュール特性を犠牲にすること
なくゼロ・バイトを埋め込むことにより8バイトに拡張
できる。
【0052】12回の丸めが実行される他の実施例にお
いては、鍵スケジュールは以下のように拡張される。 丸めiでの内部鍵 鍵のバイト(8バイト) K9 k1"、k4" K10 k3"、k2" K11 k5"、k8" K12 k7"、k6" この場合、第8と第9の丸め間で以下のKEY変換が実
行される。 (k1"k2"k3"k4")=(k1'k2'k3'k4')XOR S5[k5']
XOR S6[k7'] (k5"k6"k7"k8")=(k5'k6'k7'k8')XOR S5[k2”]
XOR S6[k4"] 5、6あるいは7バイトの初期鍵に対して、8バイトへ
の拡張は、上記のように行われる。上の式において、XO
Rは排他的論理演算を示す。
いては、鍵スケジュールは以下のように拡張される。 丸めiでの内部鍵 鍵のバイト(8バイト) K9 k1"、k4" K10 k3"、k2" K11 k5"、k8" K12 k7"、k6" この場合、第8と第9の丸め間で以下のKEY変換が実
行される。 (k1"k2"k3"k4")=(k1'k2'k3'k4')XOR S5[k5']
XOR S6[k7'] (k5"k6"k7"k8")=(k5'k6'k7'k8')XOR S5[k2”]
XOR S6[k4"] 5、6あるいは7バイトの初期鍵に対して、8バイトへ
の拡張は、上記のように行われる。上の式において、XO
Rは排他的論理演算を示す。
【0053】実施例3 さらに実用的な実施例において、丸め関数プロセスの残
りの部分から修正された内部鍵を発生するステップを分
離することによって、より効率的なシステムを構成でき
る。したがって、データブロックが暗号化をするために
到着するときには、すべての修正された内部鍵が準備で
きているように、丸め用の修正された内部鍵はその前に
作成することもできる。
りの部分から修正された内部鍵を発生するステップを分
離することによって、より効率的なシステムを構成でき
る。したがって、データブロックが暗号化をするために
到着するときには、すべての修正された内部鍵が準備で
きているように、丸め用の修正された内部鍵はその前に
作成することもできる。
【0054】必要ならば、これまで述べてきた実施例に
多くの修正を加えることいよって、ネットワークの安全
性レベルを変えることができる。たとえば、より長い鍵
を使用して、余分な鍵バイトを余分なs−ボックスに入
れ、あるいは別な方法で、鍵スケジュール中で使用でき
る。一方、ブロックサイズは、他の所望の値に変え、ま
たは、丸めの数をネットワーク中で変えることによっ
て、暗号化/復号速度を変えることができる。
多くの修正を加えることいよって、ネットワークの安全
性レベルを変えることができる。たとえば、より長い鍵
を使用して、余分な鍵バイトを余分なs−ボックスに入
れ、あるいは別な方法で、鍵スケジュール中で使用でき
る。一方、ブロックサイズは、他の所望の値に変え、ま
たは、丸めの数をネットワーク中で変えることによっ
て、暗号化/復号速度を変えることができる。
【0055】
【発明の効果】以上説明したように、本発明によれば、
曲げ関数s−ボックスを使用することによって、暗号解
読に対する攻撃に対し強力な免疫を有するデータを暗号
化するための対称暗号化方法およびシステムを得ること
ができる。
曲げ関数s−ボックスを使用することによって、暗号解
読に対する攻撃に対し強力な免疫を有するデータを暗号
化するための対称暗号化方法およびシステムを得ること
ができる。
【図1】従来のDES暗号化方法のアルゴリズムフロー
チャートを示す図である。
チャートを示す図である。
【図2】従来のDESの丸み関数を示す詳細なアルゴリ
ズムを示す図である。
ズムを示す図である。
【図3】本発明の暗号化方法のアルゴリズムフローチャ
ートを示す図である。
ートを示す図である。
【図4】本発明の一実施例の暗号化方法のアルゴリズム
フローチャートを示す図である。
フローチャートを示す図である。
【図5】本発明の一実施例の丸み関の詳細なアルゴリズ
ムを示す図である。
ムを示す図である。
【図6】本発明に従って設計されたs−ボックスの一例
を示す図である。
を示す図である。
【図7】本発明に従って設計されたs−ボックスの他の
例を示す図である。
例を示す図である。
10 初期順列 12 丸め関数 14 排他的論理和素子(XOR) 16 最終順列 20 鍵スケジューリング 22 拡張器 24 排他的論理和素子(XOR) 28 連結器 30 順列発生器 32 出力Ri’ 70 鍵スケジューリング機構 72 32ビット出力 74 内部鍵K’i 76 データブロックR”i 78 s−ボックス
Claims (16)
- 【請求項1】 平文を各データブロックの半分の複数の
連続した変換丸めを含む所定のビット長のデータブロッ
ク中の暗号文に変換するデータの暗号化方法において、
各連続する変換丸めは、 鍵ビットの特定のビット組合せの内部鍵を選択し、 (m×n)の置換ボックスによって内部鍵を処理し、修
正された内部鍵を発生し、ここで、mおよびnは、正の
偶整数であり、m<<n、m<log{n、n/2}であ
り、{n/n/2}の表記はnからn/2を選ぶ可能な
組み合わせを表わし、 各データブロックの半分と修正された内部鍵とを排他的
論理和(XOR)演算し、第1の修正されたデータブロ
ックの半分を発生し、 複数の(m×n)の相互に異なる複数の置換ボックスに
よって第1の修正されたデータブロックの半分を処理
し、第2の修正されたデータブロックの半分を発生し、 第2の修正されたデータブロックの半分と残りのデータ
ブロックの半分をXOR演算し、変換丸めの変換された
データブロックの半分を発生させることを特徴とするデ
ータを暗号化するための対称暗号化方法。 - 【請求項2】 請求項1記載のデータを暗号化するため
の対称暗号化方法において、各s−ボックスは、部分的
に曲げ関数のs−ボックスであることを特徴とするデー
タを暗号化するための対称暗号化方法。 - 【請求項3】 請求項2記載のデータを暗号化するため
の対称暗号化方法において、 連続的変換丸めは、偶数であり、変換された1つの丸め
のデータブロックの半分は、次の変換の丸めのための入
力として使用されるシーケンス中で実行されることを特
徴とするデータを暗号化するための対称暗号化方法。 - 【請求項4】 請求項3記載のデータを暗号化するため
の対称暗号化方法において、 所定の偶数の変換丸めの後に、最終的に変換された丸め
のデータブロックの半分は、残りのデータブロックの半
分と連結されることを特徴とするデータを暗号化するた
めの対称暗号化方法。 - 【請求項5】 平文を、2nビット(nは正の偶整数)
を含みかつ複数の連続した変換丸めを含むデータブロッ
ク中の暗号文に変換するデータの暗号化方法において、
各連続する変換丸めは、 鍵ビットの特定のビットの組合せおよびs*mビット長
の内部鍵を選択し、ここで、sは正の整数、mは正の偶
整数であり、 s個の(m×n)の相互に異なる置換ボックスによって
内部鍵を処理し、修正された内部鍵を発生し、ここで、
m<<n、m<log{n、n/2}であり、{n、n/
2}の表記はnからn/2を選ぶ可能な組み合わせを表
わし、 各データブロックの半分と修正された内部鍵とを排他的
論理和(XOR)演算し、第1の修正されたデータブロ
ックの半分を発生し、 第1の修正されたデータブロックの半分をr部分に分割
し、ここでrは正の整数であり、 r個の(m×n)の相互に異なる置換ボックスによって
第1の修正されたデータブロックの半分の各部を処理
し、第2の修正されたデータブロックの半分を発生し、 第2の修正されたデータブロックの半分と残りのデータ
ブロックの半分をXOR演算し、変換丸めの変換された
データブロックの半分を発生させることを特徴とするデ
ータを暗号化するための対称暗号化方法。 - 【請求項6】 請求項5記載のデータを暗号化するため
の対称暗号化方法において、 連続的変換丸めは偶数であり、変換された1つの丸めの
データブロックの半分は次の変換の丸めのための入力と
して使用されるシーケンス中で実行されることを特徴と
するデータを暗号化するための対称暗号化方法。 - 【請求項7】 請求項6記載のデータを暗号化するため
の対称暗号化方法において、 所定の偶数の変換丸めの後に、最終的に変換された丸め
のデータブロックの半分は、残りのデータブロックの半
分と連結されることを特徴とするデータを暗号化するた
めの対称暗号化方法。 - 【請求項8】 請求項7記載のデータを暗号化するため
の対称暗号化方法において、 各データブロックは64ビットを含み、s−ボックスは
6つの部分的に曲げ関数の8×32のs−ボックス(S
1、S2、S3、S4、S5およびS6)を含み、鍵ビ
ットは以下のk1、k2、k3、k4、k5、k6、k7およびk8の順
序の8バイトの鍵パターンを有し、その2つのバイトは
つぎのようなスケジュールに従って各丸めを行うため
の内部鍵として選択されることを特徴とするデータを暗
号化するための対称暗号化方法。 丸めiでの内部鍵 鍵のバイト(8バイト) K1 k1、k2 K2 k3、k4 K3 k5、k6 K4 k7、k8 K5 k4'、k3' K6 k2'、k1' K7 k8'、k7' K8 k6'、k5' ここで、丸め4と丸め5との間で鍵ビットは、以下のよ
うに変換される。 (k1'k2'k3'k4')=(k1k2k3k4)+S5[k5]+S6[k
7] (k5'k6'k7'k8')=(k5k6k7k8)+S5[k2']+S6
[k4'] ここで、S5[k5]、S6[k7]、S5[k2']、S6
[k4']はS5およびS6によって処理される。 - 【請求項9】 請求項8記載のデータを暗号化するため
の対称暗号化方法において、 以下の内部鍵を使用して追加の丸めが行われることを特
徴とするデータを暗号化するための対称暗号化方法。 丸めiでの内部鍵 鍵のバイト(8バイト) K9 k1"、k4" K10 k3"、k2" K11 k5"、k8" K12 k7"、k6" ここで、第8と第9の丸め間で、鍵ビットは以下のよう
に変換される。 (k1"k2"k3"k4")=(k1'k2'k3'k4')XOR S5[k5']
XOR S6[k7'] (k5"k6"k7"k8")=(k5'k6'k7'k8')XOR S5[k2”]
XOR S6[k4"] - 【請求項10】 請求項1記載のデータを暗号化するた
めの対称暗号化方法において、 内部鍵を選択しおよびこの内部鍵を処理し、修正された
内部鍵を形成するステップは、第1の変換丸め中の各デ
ータブロックの半分をXOR演算するステップの前にす
べての連続する変換丸めを実行することを特徴とするデ
ータを暗号化するための対称暗号化方法。 - 【請求項11】 請求項9記載のデータを暗号化するた
めの対称暗号化方法において、 すべての変換丸めに対するすべての内部鍵は、初期変換
丸めが実行される前に発生されていることを特徴とする
データを暗号化するための対称暗号化方法。 - 【請求項12】 平文を各データブロックの半分の複数
の連続した変換丸めを含む所定のビット長のデータブロ
ック中の暗号文に変換するデータの暗号化システムにお
いて、 複数の部分的曲げ関数の(m×n)のs一ボックスを有
する、変換丸め関数手段を含み、mおよびnは正の偶整
数であり、m<<n、m<log{n、n/2}であり、
{n、n/2}の表記はnからn/2を選ぶ可能な組み
合わせを表わし、 各s−ボックスは、曲げられないベクトルの中で 2m
長のnバイナリ曲げベクトルを含む2m×nバイナリ・
マトリクスであり、少くともひとつの曲げのない非ゼロ
線形組み合わせベクトルであることを特徴とするデータ
を暗号化するための対称暗号化システム。 - 【請求項13】 請求項12記載のデータを暗号化する
ための対称暗号化システムにおいて、 変換丸め関数手段は、内部鍵を処理して修正された内部
鍵を発生する第1の複数の部分的に曲げ関数である(m
×n)のs−ボックスと、データブロック修正された内
部鍵とを処理し、第2の部分的に曲げ関数を有する(m
×n)のs−ボックスを有することを特徴とするデータ
を暗号化するための対称暗号化システム。 - 【請求項14】 請求項13記載のデータを暗号化する
ための対称暗号化システムにおいて、 第1の複数のs−ボックスは、2つの部分的に曲げ関数
である8×32のs−ボックスを含み、第2の複数のs
−ボックスは、4つの部分的に曲げ関数である8×32
のs−ボックスを含むことを特徴とするデータを暗号化
するための対称暗号化システム。 - 【請求項15】 請求項13記載のデータを暗号化する
ための対称暗号化システムにおいて、 さらに、鍵ビットから特定のビット組合せ中の内部鍵を
選択する鍵スケジューリング機構と、1つの変換丸めに
対する1つの内部鍵を含むことを特徴とするデータを暗
号化するための対称暗号化システム。 - 【請求項16】 請求項14記載のデータを暗号化する
ための対称暗号化システムにおいて、 各s−ボックスは、28長の32のバイナリ曲げベクト
ルを有し、曲げベクトル間のすべてのハミング距離は所
定の値より大きいことを特徴とするデータを暗号化する
ための対称暗号化システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US285678 | 1994-08-04 | ||
US08/285,678 US5511123A (en) | 1994-08-04 | 1994-08-04 | Symmetric cryptographic system for data encryption |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0863097A true JPH0863097A (ja) | 1996-03-08 |
Family
ID=23095266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6295746A Pending JPH0863097A (ja) | 1994-08-04 | 1994-11-04 | データを暗号化するための対称暗号化方法およびシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US5511123A (ja) |
JP (1) | JPH0863097A (ja) |
CA (1) | CA2134410C (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100494560B1 (ko) * | 2002-11-23 | 2005-06-13 | 한국전자통신연구원 | Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법 |
JP2008514975A (ja) * | 2004-09-24 | 2008-05-08 | シナプティック ラボラトリーズ リミテッド | sボックス |
JP4828082B2 (ja) * | 2000-07-04 | 2011-11-30 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 対称キー暗号用の置換ボックス |
KR20150076166A (ko) * | 2012-10-22 | 2015-07-06 | 로베르트 보쉬 게엠베하 | 암호화 방법을 실행하기 위한 장치 및 방법 |
Families Citing this family (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5550809A (en) * | 1992-04-10 | 1996-08-27 | Ericsson Ge Mobile Communications, Inc. | Multiple access coding using bent sequences for mobile radio communications |
NL9301784A (nl) * | 1993-10-14 | 1995-05-01 | Irdeto Bv | Systeem voor het versleutelen en ontsleutelen van digitale informatie. |
JP3029381B2 (ja) * | 1994-01-10 | 2000-04-04 | 富士通株式会社 | データ変換装置 |
US6078663A (en) * | 1995-06-30 | 2000-06-20 | Canon Kabushiki Kaisha | Communication apparatus and a communication system |
CA2164768C (en) * | 1995-12-08 | 2001-01-23 | Carlisle Michael Adams | Constructing symmetric ciphers using the cast design procedure |
KR0153758B1 (ko) * | 1995-12-26 | 1998-11-16 | 양승택 | 입출력 변화 공격과 선형 공격에 안전한 대치회로 생성기 및 생성방법 |
US5838794A (en) * | 1996-01-11 | 1998-11-17 | Teledyne Electronic Technologies | Method and apparatus for inter-round mixing in iterated block substitution systems |
US5870470A (en) * | 1996-02-20 | 1999-02-09 | International Business Machines Corporation | Method and apparatus for encrypting long blocks using a short-block encryption procedure |
US6041123A (en) * | 1996-07-01 | 2000-03-21 | Allsoft Distributing Incorporated | Centralized secure communications system |
US5841872A (en) * | 1996-07-01 | 1998-11-24 | Allsoft Distributing Incorporated | Encryption enhancement system |
US6031911A (en) * | 1996-07-18 | 2000-02-29 | Entrust Technologies, Ltd. | Practical S box design |
US5745577A (en) * | 1996-07-25 | 1998-04-28 | Northern Telecom Limited | Symmetric cryptographic system for data encryption |
US5850443A (en) * | 1996-08-15 | 1998-12-15 | Entrust Technologies, Ltd. | Key management system for mixed-trust environments |
US6052780A (en) * | 1996-09-12 | 2000-04-18 | Open Security Solutions, Llc | Computer system and process for accessing an encrypted and self-decrypting digital information product while restricting access to decrypted digital information |
US5949884A (en) * | 1996-11-07 | 1999-09-07 | Entrust Technologies, Ltd. | Design principles of the shade cipher |
EP1043863B1 (en) * | 1997-11-28 | 2007-05-30 | Alexandr Andreevich Moldovyan | Method for the cryptographic conversion of L-bit input blocks of digital data info into L-bit output blocks |
US6038317A (en) * | 1997-12-24 | 2000-03-14 | Magliveras; Spyros S. | Secret key cryptosystem and method utilizing factorizations of permutation groups of arbitrary order 2l |
US7587044B2 (en) * | 1998-01-02 | 2009-09-08 | Cryptography Research, Inc. | Differential power analysis method and apparatus |
CA2316227C (en) * | 1998-01-02 | 2009-08-11 | Cryptography Research, Inc. | Leak-resistant cryptographic method and apparatus |
FI107669B (fi) | 1998-02-13 | 2001-09-14 | Nokia Mobile Phones Ltd | Menetelmä ja järjestely tiedonsiirron salaamiseksi |
US6185304B1 (en) * | 1998-02-23 | 2001-02-06 | International Business Machines Corporation | Method and apparatus for a symmetric block cipher using multiple stages |
US6108421A (en) * | 1998-03-06 | 2000-08-22 | Harris Corporation | Method and apparatus for data encryption |
KR100296958B1 (ko) * | 1998-05-06 | 2001-09-22 | 이석우 | 블록 데이터 암호화 장치 |
DE19924986B4 (de) * | 1998-05-29 | 2006-03-23 | Hitachi, Ltd. | Verschlüsselungs-Konversionsvorrichtung, Entschlüsselungs-Konversionsvorrichtung, kryptografisches Kommunikationssystem und elektronische Gebühren-Sammelvorrichtung |
EP1001569A4 (en) * | 1998-06-02 | 2002-03-13 | Nippon Telegraph & Telephone | DEVICE AND METHOD FOR EVALUATING THE RANDOM OF A FUNCTION, DEVICE AND METHOD FOR PRODUCING A RANDOM FUNCTION AND RECORDED MEDIUM ON WHICH IMPLEMENTATION PROGRAMS THEREOF ARE RECORDED |
EP1088295B1 (en) * | 1998-06-03 | 2007-08-15 | Cryptography Research Inc. | Balanced cryptographic computational method and apparatus for leak minimization in smartcards and other cryptosystems |
CA2333095C (en) * | 1998-06-03 | 2005-05-10 | Cryptography Research, Inc. | Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems |
CA2334597C (en) * | 1998-07-02 | 2007-09-04 | Cryptography Research, Inc. | Leak-resistant cryptographic indexed key update |
FR2790890B1 (fr) * | 1999-03-08 | 2001-04-27 | Gemplus Card Int | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete |
KR100607464B1 (ko) * | 1999-07-13 | 2006-08-02 | 한국전자통신연구원 | 무선통신환경에서의 데이터 암호화방법 |
DE19936529C1 (de) * | 1999-08-03 | 2001-02-01 | Orga Kartensysteme Gmbh | Verfahren zur Verschlüsselung von Daten mit Hilfe einer Standard-Verschlüsselung in einem mikroprozessorgestützten, tragbaren Datenträger |
TW556111B (en) * | 1999-08-31 | 2003-10-01 | Toshiba Corp | Extended key generator, encryption/decryption unit, extended key generation method, and storage medium |
US7428305B1 (en) * | 2000-05-02 | 2008-09-23 | Qualcomm Incorporated | Generation of keyed integer permutations for message authentication codes |
US6956951B2 (en) * | 2000-07-13 | 2005-10-18 | Fujitsu Limited | Extended key preparing apparatus, extended key preparing method, recording medium and computer program |
US7237123B2 (en) | 2000-09-22 | 2007-06-26 | Ecd Systems, Inc. | Systems and methods for preventing unauthorized use of digital content |
AU2001292910B2 (en) * | 2000-09-22 | 2008-05-01 | Sca Ipla Holdings, Inc. | Systems and methods for preventing unauthorized use of digital content |
AU2002305490B2 (en) | 2001-05-09 | 2008-11-06 | Sca Ipla Holdings, Inc. | Systems and methods for the prevention of unauthorized use and manipulation of digital content |
US7103180B1 (en) * | 2001-10-25 | 2006-09-05 | Hewlett-Packard Development Company, L.P. | Method of implementing the data encryption standard with reduced computation |
GB0211812D0 (en) * | 2002-05-23 | 2002-07-03 | Koninkl Philips Electronics Nv | S-box encryption in block cipher implementations |
US7215769B2 (en) * | 2002-11-06 | 2007-05-08 | Fiske Software Llc | Non-autonomous dynamical orbit cryptography |
US8712942B2 (en) * | 2003-03-24 | 2014-04-29 | AEMEA Inc. | Active element machine computation |
US7681046B1 (en) | 2003-09-26 | 2010-03-16 | Andrew Morgan | System with secure cryptographic capabilities using a hardware specific digital secret |
US7694151B1 (en) | 2003-11-20 | 2010-04-06 | Johnson Richard C | Architecture, system, and method for operating on encrypted and/or hidden information |
US7519371B2 (en) * | 2004-02-09 | 2009-04-14 | Qualcomm Incorporated | Multi-hop communications in a wireless network |
US7613295B2 (en) * | 2004-02-18 | 2009-11-03 | Harris Corporation | Cryptographic device and associated methods |
KR20050087271A (ko) * | 2004-02-26 | 2005-08-31 | 삼성전자주식회사 | 가변 키 길이를 가지는 초기 라운드 키에 대응하는 암호라운드 키와 복호 라운드 키를 선택적으로 발생하는 키스케쥴 장치 |
US20060078107A1 (en) * | 2004-10-12 | 2006-04-13 | Chiou-Haun Lee | Diffused data encryption/decryption processing method |
US8331559B2 (en) * | 2004-10-12 | 2012-12-11 | Chiou-Haun Lee | Diffused data encryption/decryption processing method |
US7657033B2 (en) * | 2004-12-10 | 2010-02-02 | Fiske Software Llc | Cryptography related to keys |
US20070028088A1 (en) * | 2005-08-01 | 2007-02-01 | Coskun Bayrak | Polymorphic encryption method and system |
US20100046755A1 (en) * | 2005-12-07 | 2010-02-25 | Fiske Software Llc | Cryptography related to keys with signature |
US8213607B2 (en) * | 2006-10-18 | 2012-07-03 | Qualcomm Incorporated | Method for securely extending key stream to encrypt high-entropy data |
US20080181397A1 (en) * | 2007-01-25 | 2008-07-31 | John Wilson Dorminy | Secure data transmission and storage using limited-domain functions |
JP4687775B2 (ja) * | 2008-11-20 | 2011-05-25 | ソニー株式会社 | 暗号処理装置 |
EP3537653B1 (en) | 2009-12-04 | 2022-06-01 | Cryptography Research, Inc. | Verifiable, leak-resistant authentication |
US10268843B2 (en) | 2011-12-06 | 2019-04-23 | AEMEA Inc. | Non-deterministic secure active element machine |
DE102012201164B4 (de) * | 2012-01-26 | 2017-12-07 | Infineon Technologies Ag | Vorrichtung und verfahren zur erzeugung eines nachrichtenauthentifizierungscodes |
US9294266B2 (en) * | 2013-06-27 | 2016-03-22 | Qualcomm Incorporated | Method and apparatus to encrypt plaintext data |
US10403173B2 (en) | 2013-08-13 | 2019-09-03 | Fiske Software, Llc | NADO cryptography using one-way functions |
US9602273B2 (en) * | 2015-05-06 | 2017-03-21 | Nxp B.V. | Implementing key scheduling for white-box DES implementation |
US10015009B2 (en) * | 2015-11-25 | 2018-07-03 | Nxp B.V. | Protecting white-box feistel network implementation against fault attack |
CN107070637A (zh) * | 2017-01-13 | 2017-08-18 | 广东技术师范学院天河学院 | 一种交叠分组的数据加解密方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5003597A (en) * | 1989-12-21 | 1991-03-26 | Xerox Corporation | Method and apparatus for data encryption |
US5351299A (en) * | 1992-06-05 | 1994-09-27 | Matsushita Electric Industrial Co., Ltd. | Apparatus and method for data encryption with block selection keys and data encryption keys |
-
1994
- 1994-08-04 US US08/285,678 patent/US5511123A/en not_active Expired - Lifetime
- 1994-10-26 CA CA002134410A patent/CA2134410C/en not_active Expired - Lifetime
- 1994-11-04 JP JP6295746A patent/JPH0863097A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4828082B2 (ja) * | 2000-07-04 | 2011-11-30 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 対称キー暗号用の置換ボックス |
KR100494560B1 (ko) * | 2002-11-23 | 2005-06-13 | 한국전자통신연구원 | Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법 |
JP2008514975A (ja) * | 2004-09-24 | 2008-05-08 | シナプティック ラボラトリーズ リミテッド | sボックス |
KR20150076166A (ko) * | 2012-10-22 | 2015-07-06 | 로베르트 보쉬 게엠베하 | 암호화 방법을 실행하기 위한 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
CA2134410C (en) | 1998-11-24 |
US5511123A (en) | 1996-04-23 |
CA2134410A1 (en) | 1996-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0863097A (ja) | データを暗号化するための対称暗号化方法およびシステム | |
EP0839418B1 (en) | Cryptographic method and apparatus for non-linearly merging a data block and a key | |
US5745577A (en) | Symmetric cryptographic system for data encryption | |
EP0618701B1 (en) | Hardware arrangement for enciphering bit blocks while renewing a key at each iteration | |
JP7031580B2 (ja) | 暗号化装置、暗号化方法、復号化装置、及び復号化方法 | |
US8577032B2 (en) | Common key block encryption device, common key block encryption method, and program | |
US20020051534A1 (en) | Cryptographic system with enhanced encryption function and cipher key for data encryption standard | |
CN100511331C (zh) | 密码处理装置、密码处理方法及其计算机程序 | |
WO2001067425A1 (fr) | Systeme de chiffrage de blocs utilisant la conversion auxiliaire | |
US20080304664A1 (en) | System and a method for securing information | |
JP2004502965A (ja) | 対称キー暗号用の置換ボックス | |
JPWO2008053650A1 (ja) | 共通鍵ブロック暗号化装置、その方法、そのプログラム、及び記録媒体 | |
US20110150225A1 (en) | Encryption devices for block having double block length, decryption devices, encryption method, decryption method, and programs thereof | |
Paragas et al. | Hill cipher modification: A simplified approach | |
Masoodi et al. | Symmetric algorithms I | |
WO2010024004A1 (ja) | 調整値付きブロック暗号化装置、調整値付きブロック暗号化方法及び調整値付きブロック暗号化プログラム並びに調整値付きブロック復号装置、調整値付きブロック復号方法及び調整値付きブロック復号プログラム | |
JPH10240500A (ja) | 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム | |
CN109714154B (zh) | 一种代码体积困难白盒安全模型下的白盒密码算法的实现方法 | |
JP5365750B2 (ja) | ブロック暗号化装置、復号装置、暗号化方法、復号方法およびプログラム | |
CN107493164B (zh) | 一种基于混沌系统的des加密方法和系统 | |
Mihalkovich et al. | MPF based symmetric cipher performance comparison to AES and TDES | |
KR101076747B1 (ko) | 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치 | |
WO2012060685A1 (en) | A method for linear transformation in substitution-permutation network symmetric-key block cipher | |
Cook et al. | Elastic block ciphers: the basic design | |
Bajaj et al. | Enhancement of RC5 for image encryption |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040402 |