JP2000506620A - Cast設計手順を用いた対称暗号構成方法 - Google Patents

Cast設計手順を用いた対称暗号構成方法

Info

Publication number
JP2000506620A
JP2000506620A JP9521561A JP52156197A JP2000506620A JP 2000506620 A JP2000506620 A JP 2000506620A JP 9521561 A JP9521561 A JP 9521561A JP 52156197 A JP52156197 A JP 52156197A JP 2000506620 A JP2000506620 A JP 2000506620A
Authority
JP
Japan
Prior art keywords
data
encryption method
key
rounding
data block
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.)
Ceased
Application number
JP9521561A
Other languages
English (en)
Inventor
アダムス・カーリスル・マイケル
ワイエナー・マイケル・ジェームズ
ロックハート・ローランド・トーマス
Original Assignee
ノーザン・テレコム・リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ノーザン・テレコム・リミテッド filed Critical ノーザン・テレコム・リミテッド
Publication of JP2000506620A publication Critical patent/JP2000506620A/ja
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Abstract

(57)【要約】 差分暗号解析、線形暗号解析、および関連キー暗号解析に対し証明可能に対抗できる所望の暗号特質を有するDES風の代用置換ネットワーク(SPN)暗号システムのファミリーを構成する新しい設計手順を説明する。この手順を用いて生成されたCASTと呼ばれる新しい暗号システムについても述べる。設計上の選択肢に関する詳細が説明され、それには、要素代用ボックス(Sボックス)、全体フレームワーク、キー・スケジュール、および丸め関数などが含まれる。この設計処理の出力である全体的に特定されたCAST暗号例を用いて、概念を理解する説明、および暗号委員会による詳細な分析が提供される。

Description

【発明の詳細な説明】発明の名称 CAST設計手順を用いた対称暗号構成方法発明の分野 本発明は、一般的に対称暗号システムおよびその構成手順に関するものである 。特に、データ暗号化基準(DES:Data Encryption Standard)風の代用置換( Substitution-Permutation)ネットワーク暗号システムのファミリーに属する新 しい暗号と、そのような新しい暗号を用いて、平文を暗号テキストに暗号変換す る方法に関するものである。また、本発明はそのような新しい暗号を構成する手 順に関するものである。背景技術 本発明は、対称暗号化アルゴリズムのファミリーに対する設計手続きに関する ものである。CAST暗号として生成された暗号は、差分(Differential)暗号 解析、線形暗号解析、および関連キー暗号解析に対し対抗できることが証明でき る。さらに、これらの暗号は、多くの望ましい暗号特質、を有することが分かっ ており、たとえば、アバランシェ、完全(strict)アバランシェ基準(SAC) 、ビット独立基準(BIC)、および弱(weak)キーおよび半弱(semi-weak) キーの欠如などが挙げられる。 CAST暗号は、DESにおいて用いられるフレームワークであるファイステ ル(Feistel)暗号フレームワークに基づいている。このフレームワークは良く 理解され、同時にかなり解析されているが、DESより少ない丸めによって、D ESと比べ、良い暗号特質を保証するための丸め機能およびキー・スケジュール において改善がある。従って、CAST暗号は高質の暗号化/復号化性能を有し ており(同様の暗号強度を有した他の種々の方法と好意的に比較してもそうであ る)、32ビット・マシーン上のソフトに特に適するように、パラメータ設計を 行うことができる。 CAST設計手順の側面のいくつかは、C.M.アダムスおよびS.E.タバ レス著、「差分暗号解析に対抗できる暗号用Sボックスの設計」、暗号に関する リサーチの状態および発展に関する第3シンポジウム、イタリア、ローマ、19 93年、第181頁〜第190頁;および、C.M.アダムス著、「対称暗号用 単純かつ効果的キー・スケジュリング」、暗号選択領域(SAC94)に関する 作業部会における作業部会記録、1994年5月5日〜6日、第129頁〜第1 33頁;およびC.M.アダムス著、「差分および線形攻撃に対して保証された 対抗力を有するDES風の暗号設計方法」、暗号選択領域(SAC95)に関す る作業部会での作業部会記録、1995年5月18日〜19日、第133頁〜1 44頁において開示されている。1996年4月父に発行の米国特許第5,51 1,123号(アダムス)にも、より詳細にCAST暗号が説明されている。 対称暗号化アルゴリズムの一般的な設計手順の検索結果のいくつかを以下に述 べる。 (1)データ暗号化基準(DES)の使用できる期間は限定されるという憶測 と警告が長い間続いてきたにもかかわらず、このアルゴリズムは種々の環境の中 でその立場を守ってきた。その理由の一部として、許容できる速度と安全性を保 ちながら、DESの代わりとなる候補が存在しなかったことが挙げられる。 (2)新たなしかも強力な暗号解析による攻撃によって、新たな候補の再設計 を行わねばならなくなった。候補の例としては、E.ビハムおよびA.シャミア による「FEALおよび」−Hashの差分暗号解析、暗号学の進歩」、’91 年ユーロクリプト予稿、スプリンガー・ベーラグ、1992年、第1頁〜第16 頁に開示されるFEAL;E.ビハムおよびA.シャミアによる「スネフル、カ フレ、REDOCI、LOKIおよびルシファの差分暗号解析、暗号学の進歩」 :’91ユーロクリプト予稿、スプリンガー・ベーラグ、1992年、第156 頁〜第171頁に開示されるLOKI;および、X.ライおよびJ.L.マッセ イによる「新しいブロック暗号基準への提案、暗号学の進歩」、’90ユー ロクリプト予稿、スプリンガー・ベーラグ、1991年、第389頁〜第404 頁に開示されるIDEAなどがある。従って、暗号解析攻撃を止めさせ、設計手 順それ自身において暗号解析攻撃を取り除く必要がある。そうすれば、この手順 で生成されたアルゴリズムは、これらの攻撃に対して免疫性を発揮することがで きる。 (3)「国内強度」の暗号と「輸出可能強度」の暗号間の連続する不均衡、お よび輸出可能強度(たぶん「商業的証明書」に依存する)の暗号の種々のバリエ ーションの可能性は、キーサイズが少なくともファミリーの特定の例を定義する パラメータの1つである場合には、DES置き換えアルゴリズムの方法論はほと んど破棄され、アルゴリズムのファミリーを記述する設計手順に入れ替えられる ということを意味する。RC−2、RC−4およびRC−5などの最近の暗号は 、この要求を認識し解決した。 本発明が関連するCAST設計手順は、暗号委員会が数十年かけて、強力に解 析したフレームワークに基づいている。CASTフレームワークは、ファイステ ル構成で用いられる「代用置換ネットワーク」(SPN)概念である。 図1は、一般的なファイステル構成SPNを示している。この図の構成の、基 本的動作を以下に述べる。nビットのメッセージ・ブロックが入力され、左半分 Lおよび右半分Rに分割される。右半分およびサブキーKiが、「丸め関数」f 1に入力され、その出力を用いて左半分を変更する(XOR加算を行う)。左半 分と右半分を交換することによって、丸め1が完了する。このプロセスは暗号に 対して定義される多くの丸めに対し継続される。最終丸め(この丸めは、暗号復 号処理を単純化するために、交換を行わない)が終わった後、左半分と右半分を 結合し、暗号テキストを形成する。 フレームワークに対して選択できるパラメータは、ブロック・サイズ(平文お よび暗号テキスト・データ・ブロックの双方に含まれるビット数)および丸め回 数である。全ての場合に対して、「より高」は典型的にはより高い安全性を意味 するが(特に丸め回数に対しては)低減暗号化/復号化速度を意味しない。実際 には、平文と暗号テキストのブロックサイズが等しくなるように選択し、暗号化 処理によってデータが増加しないようにする(これは多くのアプリケーションで 重要である)。 丸め関数は、代用ボックス(sボックス)を有している。m×n個のsボック スは(m×xn)参照テーブルであり、この参照テーブルは、mビットの入力を nビットの出力へ非線形的に代用(または置き換え)し、入カベクトルでの変化 によって、出力ベクトルがランダムに参照される。SPN暗号中の代用レイヤは 、アルゴリズム中の非線形の主なソースであるため、安全性を確保するのに非常 に重要である。m×nのsボックスにおけるmおよびnは、どんな値でもかまわ ない。しかしながら、mが大きくなればなるほど、(指数関数的に)参照テーブ ルも大きくなる。従って、典型的にはmは10以下とされる。CAST設計手順 では、出力ビット(例:8×32)よりも入力ビットが少ない代用ボックスを用 いる。これは、DESやほかの暗号方法のように入力ビット数が出力ビット数( 例:6×4)より多いものとは逆である。 高質のキー・スケジュールを設計するのは、暗号設計において重要な側面であ る。CAST設計手順中のキー付け処理は、ファイステル・ネットワークにおい て通常採られている方法を用いる。つまり、入力キー(主キー)を用いて、特定 のキー・スケジュリング・アルゴリズムに基づいて、複数のサブキーを形成する 。所定の丸めに対するサブキーを、その丸め関数に入力し、その丸めに対するデ ータを変更するのに用いる。 CAST設計手順のキー・スケジュリングと公知の文献に開示されている他の スケジュールの大きな違いは、サブキーを形成するのに代用ボックスを用いるか どうかという点である。他のキー・スケジュール(例えば、DESで用いられる スケジュールなど)では、通常、複雑なビット選択アルゴリズムを用いて、丸め Iのサブキーに対する主キーのビット選択を行う。このビット選択アルゴリズム が弱い場合、丸め回数に関わりなく、単純な暗号解析になる。本発明による、C ASTで行うスケジュールは、非常に簡潔なビット選択アルゴリズムと「キー・ スケジュールsボックス」の組を用い、各丸め用にサブキーを生成する。このよ うなsボックスは、暗号化手法で高品質のキー・スケジュールを保証するために は、特定の特徴を有している必要がある。これらの特質については、上記の米国 特許に詳細に述べられている。 上でも述べたが、CAST中の丸め関数は、出力数よりも入力数の少ないsボ ックスを利用する。これは、以下のように実現できる。丸め関数内で、入力デー タの半分がサブキーによって変更され、いくつかの部分に分割される。各部分は 、別々の代用ボックスに入力され、sボックスからの出力が組み合わされ、結果 として丸め関数出力が供給される。各m×nのsボックスは、必ずデータを増加 させるが(m<nであるため)、上記のようにsボックスの組を用いると、メッ セージの半分は増加せず、SPNの入力ブロックサイズおよび出力ブロックサイ ズを等しくすることができる。 丸め関数設計において、差分および線形攻撃に対する防御策をとる必要がある 。差分および線形暗号解析は、種々の代用置換ネットワーク(DES風の)に適 用される汎用的な攻撃であるように思われる。どちらの方法も、1つの丸め中に 確率の高い攻撃を発見し、その後「特性」(有用な方法で相互作用する連続する 丸めの組)を構築するというする原理に基づいて動作する。特性に十分な丸め回 数が含まれていると、暗号の解析ができる。特性の確率は、それに含まれる丸め の確率の積に等しい。この「特性確率」が、攻撃の仕事率を決定する。攻撃の仕 事率が、キー・スペースの全数検索の仕事率より小さい場合、理論上、暗号は壊 される。 以上の説明から、差分攻撃または線形攻撃の仕事率を増加させるために、いつ でもDES風の暗号に丸めを追加することができ、丸めの追加は仕事率が全数キ ー検索の仕事率を越えるまで可能であることが分かる。こうすると、計算上、暗 号はこれらの攻撃に対して抗力を有するようになる。この方法の不利な点は、丸 めを追加する度に係数が1/Nに落ちるので、暗号の暗号化/復号化速度がひど く低下することである。ここでNは、もとの暗号に存在した丸め回数を示す。 多くの研究者が追求したもう1つの方法に、丸めsボックスの特質を向上させ 、各丸め攻撃の確率を減少させるものがある。こうすると、同数の丸めに対して 特性確率が低下するため、スループットを低下させることなく、暗号がこれらの 攻撃に対して抗力を有するようにすることができる。しかしながら、所定の暗号 に対し、丸め確率は追加の丸めをしないで済む程度に十分小さくできない可能性 が常にある。さらに、所定の暗号に対し、最適の特性が見つからないという可能 性も常に存在する(見つかった場合は、暗号解読は壊されることがある)。 本発明の設計手順は、以上の方法のどちらをも用いない。その代わりに、本発 明は典型的なDES風の丸め関数を少しだけ変化させ、差分および線形暗号解析 に対して「固有の免疫性」(計算上の免疫性に対する)とする。このように、丸 め関数を少しだけ変化させる方法は、全てのDES風の暗号に利用することがで き、暗号によっては、暗号化/復号化速度にほとんど劣化がないように追加でき る。発明の目的 従つて、本発明の目的は、対称暗号に対して新しい構成手順を提供することに ある。 また、本発明の目的は、差分暗号解析、線形暗号解析、関連キー暗号解析のよ うな1以上の所望の特質を有する新しい対称暗号を提供することにある。 さらに、本発明の目的は、新しい丸め関数を用いて、平文を暗号テキストに暗 号変換する方法を提供することにある。発明の概要 簡単に述べると、本発明の1実施の形態によれば、本発明は、各データ・ブロ ックの半分の複数の連続した変換丸めを有する所定のビット長のデータ・ブロッ クで、平文を暗号テキストに暗号変換するデータ暗号化方法に関する。各連続変 換丸めは、第1のバイナリ動作を用いて、半分のデータ(半データという)・ブ ロックを所定の長さの第1のマスキング・キーと組み合わせ、第1の変更後の半 データ・ブロックを生成し、第2の異なったバイナリ動作を用いて、第1の変更 後の半データ・ブロックを、所定の長さの第2のマスキング・キーと組み合わせ 、第2の変更後の半データ・ブロックを生成する。この方法は、さらに、mおよ びnが正整数の時、複数の(m×n)個の相互に異なった代用ボックスを用いて 、第2の変更後の半データ・ブロックを処理し、第3の変更後の半データ・ブロ ックを生成し、第3の変更後の半データ・ブロックと、データブロックの残りの 半分をXOR処理し、変換丸めの変換後の半データ・ブロックを生成する。図面の簡単な説明 図1は、既知のSPN(代用置換ネットワーク)暗号を示す図である。 図2は、本発明の一実施の形態による丸め関数を示す図である。発明の実施の形態 以上説明した通り、フレームワーク設計中の主パラメータで選択できるのは、 ブロックサイズおよび丸め回数である。多くの利用法において、平文のブロック サイズと暗号文のブロックサイズが同じであることが望ましい(以下では、暗号 のブロックサイズと呼ぶことにする)。しかしながら、1つのキーに対して平文 /暗号文対の総てのコンパイルをしない程度にブロックサイズが大きいという制 約を別にすれば、ブロックサイズを考慮するのみで具体化が容易にできる。現在 のマシンでは、データの左右半分のそれぞれおよびその他の変数が、32ビット ・レジスタにうまい具合に適応するため、64ビット(DESのブロックサイズ )を選択するのが魅力的である。しかしながら、将来的には、他の理由から、他 のビット数を選択するのが都合が良くなるかもしれない。 フレームワーク中の丸め回数を決定するのは、より重要かつ繊細な問題である 。所定のレベルの安全性を提供するには十分な丸め回数が必要であるが、目的の アプリケーションに対し、暗号の速度が受け入れられない程遅いことはそんなに 多くはない。ファイステル・タイプのSPNでは、入力データの左半分は、丸め 関数の出力によって丸め1,3,5,7などに変更され、右半分は丸め2,4, 6,8等に変更されることは明白である。このように、両半分を同等に処理する ために、丸め回数は偶数でなければならないことも明らかである。しかしながら 、いくつの丸めが「十分」であるのかについては、はっきりしていない。 現在知られているDES風の暗号に対する2つの最も強力な攻撃である差分暗 号解析および線形暗号解析は、暗号の設計パラメータ量を決定する上で助けとな る。例えば、長い間、5回または6回の丸めを行うDES風の暗号は解読できる ことは知られていたが、1990年に差分暗号解析が紹介されるまで、何故16 回の丸めが設計に用いられ、それ以下の丸めでは、差分攻撃に耐えうることがで きないとかということは明らかでなかった。差分攻撃への改良、線形暗号解読の 紹介によって、現在では、DESがキーサイズと理論的に同じぐらいの強度を有 するためには、18〜20回の丸め回数が必要であるとされている。 従って、注意深い設計ガイドラインでは、差分暗号解析、線形暗号解析双方に 対し、許容される高い仕事率を有する多くの丸め回数を選択し、さらに2〜3回 の丸めを加えるか、またはこのような攻撃がより困難になるように丸め関数を変 更する(「安全マージン」を付加するために)。本発明の一実施の形態による設 計手順では、安全性と性能を両方を考慮して、第2の方法を採用した。 図2は、本発明の一実施の形態の丸め関数を示す図である。この実施の形態で は、64ビットのブロックサイズと、8×32のsボックスを用いる。図におい て、32ビットデータの半分がサブキーKiと共に丸め関数に入力される。この 2つの値は、動作「a」を行うことによって加算され、和の32ビットのデータ が4つの8ビットの部分に分割される。この各部分は、差分8×32のsボック ス(S1,・・・,S4)に入力される。SボックスS1およびS2は動作「b」を用 いて組み合わされる。その和は、動作「c」を用いて、S3と組み合わせる。こ の第2の和を、動作「d」を用いて、S4と組み合わせる。最終的な32ビット の結果が丸め関数の出力となる。 本発明の一形態による丸め関数では、全ての動作(a,b,cおよびd)に対 して32ビット・データのXOR加算する。もっと複雑な、他の動作を他の実施 の形態に用いてもよいが、動作aと関連させて以下に詳細に説明する。 本実施の形態で用いるsボックスは上記の来国特許で説明されているが、説明 を完全にするため、以下で同様に説明する。m×n(m<n)のsボックスを設 計するに当たって、nはmの整数倍とする。特に、n=rmとし、ここで、r> 1、rはm<log2C(n,n/2)=log2(”n選択n/2”)となるように設 定する。このようなsボックスは以下のように構成される。長さが2mであるn 個の異なるバイナリ曲りベクトルφiを選択し、これらのベクトルの線形の組み 合わせ(モジューロ2)が非線形なベクトルになるようにする。さらに、バイナ リ曲りベクトルφiの半分が、(2m-1+2(m/2)-1)の重み付けとなるように選 択し、残りの半分が(2m-1−2(m/2)-1)の重み付けとなるように選択する。こ れら2つの重み付けは、長さ2mのバイナリ曲りベクトルに対して可能な重み付 けである。nベクトルバイナリ曲りベクトルφiが、sボックスを示すマトリク スMの列となるように設定する。Mが2mの異なった行を有しているか、また各 行のハミング重さと、行の対の間のハミング距離がn/2に近いかをチェックす る(すなわち、重み付けの組および距離の組は、それぞれn/2の平均を有し、 あるモものは適当に小さく、ゼロでない変数である)。同様に、Mのi番目の行 がriである m}、i≠jであることが証明される。そうすれば、ゼロでないXOR入力は、 sボックスで結果として生じるXOR出力に等しくならない(これによって、暗 号の差分特性の発見が容易になる)。後者の条件は、一般的に言って、ハミング 距 離条件が満たされていれば保持される。これらの条件が全て満たされない場合、 条件が満たされるまで、適切な曲りベクトルφi(すなわち、バイナリ曲りベク トル候補)を継続して選択し、結果のマトリクスをチェックする。これらの条件 を満たすような8×32sボックスを形成することは困難である。明細書の終わ りに添付されている添付書類において、sボックス例の組をいくつか示す。 本実施の形態において用いられるキー・スケジュール は3つの主要素を有す る。すなわち、主キー・ビットを「部分キー」にマッピングする比較的簡単なビ ット選択アルゴリズム;1以上の「キー変換」ステップ各丸め中で、部分キーか らサブキーを生成するために使用される「キー・スケジュール・sボックス」の 組である。64ビットキーを用いた8つの丸めアルゴリズムにおけるキー・スケ ジュール例を以下に述べる。 KEY=k12345678とする。ここで、kiは、主キーのi番目 のバイトである。部分キーK’iは、以下のビット選択アルゴリズムに基づいて 、主キーから選択される。 K’1=k12、K’2=k34、K’3=k56、K’4=k78、K’5=k4 ’k3’、K’6=k2’k1’、K’7=k8’k7’、K’8=k6’k5’ ここで、丸め4と丸め5の間で、KEYはKEY’=k1’k2’k3’k4’k5 ’k6’k7’k8’に変換される。キー変換ステップは、以下のように定義され る。 KEY’のバイトは、上に示したように、最終的な4つの部分キーを構成する ために用いられる。部分キーの組は、キー・スケジュールsボックスS1および S2を利用して以下に示すサブキーKiを構成するのに用いられる。 ここで、Ki、jは、Kiのj番目のバイトを示す。12個の丸めシステム、16 個の丸めシステム、または、異なったブロック・サイズまたはキーサイズに対し 、同様のケジュールを構成することもできるが、記号を単純化し、説明を具体的 にするため、特定の例に限定して説明する。 前に説明したように、丸め回数および丸め関数のsボックスの特質を選択して 、差分および線形暗号解析への「計算上の」免疫性を保証することができる。さ らなる実施の形態では、特に、動作「a」の選択に注意を払って、これらの攻撃 (これらの攻撃はもはや行われない)に対して「固有の」免疫性を与えることが できる丸め関数中の余分の仕事が供給される。 丸め関数を変更する目的は、暗号に向けられた差分および線形暗号解析攻撃の 双方の可能性をなくすことにある。これは、非線形のキー依存動作を、sボック ス参照の前に行い、効果的にsボックスの組への入力をマスクすることによって 達成される。これらの入力をうまく「隠せ」ば、sボックスへの実際の入力は知 られないため、sボックスの(XOR入力からXOR出力へのマッピング、また は線形のような)特質が、通常の丸め関数の攻撃に使用されることはない。 さらに、本発明の一実施の形態によれば、丸め関数fに対する以下の変更が行 われる。なわち、K1の長さが32ビットであるか、48ビットであるかによって、f 参考のために番号を付す。 形変化を生じさせるように、入力から出力まで非線形マッピングを示さねばなら ない。 らない(コード・サイズおよび複雑さに関して)。 より遅くてはならない)。 はE(R))入力を効果的に「隠さ」ねばならない(R値のみ、またはR値の対 に動作を用いて丸め関数中のキー効果を消去してはならない)。 以上の条件を全て含むように見える関数は、適切にモジュールを選択するモジ ュラ乗算である。もしR、K1およびK2の長さが32ビットの場合、候補として 挙げられる2つの候補モジュールは、(232−1)および(232+1)である。 32ビット・レジスタのみを用いて、高レベル言語で乗算モジューロ(232−1 )を行う簡単な方法が報告されており、このモジュールを用いた乗算は「完全な 」動作であるとされているため(各入力ビットは、各出力ビットを変更する可能 性があるという点で)、このモジュールは非線形、単純さ、データ隠匿という条 件を満たしている。しかしながら、用いるキーに関わりなく、ゼロは常にゼロに マッピングされ、また(232−1)は常に(232−1)またはゼロにマッピング される(実行方法に依存する)ため、このモジュールは理想的には第5の特質を 満たしていない。(しかしながら、実用的な動作では、計算したサブキーK2が 0または(232−1)に絶対等しくならないようにするのは簡単であ 32−1)に等しくなるようにRの選択を行うのは容易ではない。) 2つの単純な操作のいずれかが実行される場合は、第5の特質に関し、モジュ ール(232−1)よりもモジュール(232+1)を用いるのが好ましい。先ず、 各入力を1づつ増加させ、それによって実際には計算が(R+1)および(K+ 1)を用いて行われるようにする。従って、ゼロおよび(232+1)の双方の「 固定点」を除いた[1,232]の組の方が[0,232−1]よりも有利である。 一方、入力はそのままにし(そうすれば、計算はRおよびKを用いて行われる) 、ゼロ入力のみが値232にマッピングされるようにする(また、反対に232出力 はゼロにマッピングされる)。このモジュールを用いて乗算を行うのは、モジュ ール(232−1)でなく32ビットレジスタを有する高レベル言語を用いて、僅 かに複雑であるだけであり、組立言語命令が32ビット乗算動作の全64ビット の結果にアクセスできる環境では、実に簡単に、また効果的にモジュラを減少さ せることができる。さらに、(232−1)モジュールに関しては、このモジュー ルとの乗算は、入力から出力への非線形マッピングを示す。 第5の特質に関してモジュラ乗算が悪く実行されないようにするには、サブキ ーK2が、モジュールにおいて相対的に主である必要がある。従って、サブキー を生成するとき、モジュールn=(232−1)の場合、各丸めで用いられるK2 は2,3,17,257または65537を因数として有していてはならず、モ ジュールn=(232+1)の場合には、641または6700417を因数とし て有していてはならない。 最後に、サブセット和動作は、モジュラ乗算上に分配されないため、第1の特 質を満たすのに、どちらのモジュールを用いてもかまわない。 64ビットのブロックサイズおよびキーサイズ、丸め関数中の4つの8×32 sボックスS1・・・S4、および各丸め中に32ビットのサブキーを有するCAS T暗号は、12以上の丸めを用いた場合、キースペースを全数探索するよりも大 きい差分および線形攻撃に対するワーク・ファクタを有している。もし動作a, b,cおよびdが全てXOR加算である場合、丸め関数fは以下のように単純に 求めることができる。 ョンで説明する技術を用いると、動作「a」の計算を変更したものが生成され、 ここで、fは同じままであるが、Bは以下のように計算される。 モジュラ乗算ステップ((232−1)または(232+1)のどちらかをモジュ ールとして用いる場合)のみに必要であるアッセンブル言語命令は、乗算にはペ ンティアム級のパソコン(PC)における丸めの剰余とだいたい同じ時間がかか るので、動作「a」が単純なXOR加算であるCAST暗号と比べると、約2の 指数倍の時間がかかる。 本発明のさらなる実施の形態において、多くのオプションは、丸め関数動作お よびフレームワーク設計に関して使用できる。これらの動作は、安全性と妥協せ ず、結果として生成される暗号の暗号化/復号化品質を劣化させないように見え る。実際には、ある場合には、安全性や性能が強化されているので、これらの選 択肢を用いる方がよい。 従って、ここまでの段階では、丸め関数における動作a,b,cおよびdは、 2つのバイナリ値のEX−OR(すなわちモジューロ2の付加)であるとして説 明してきた。しかしながら、代わりに他のバイナリ動作を用いてもかまわない。 特に、モジューロ232の加算および乗算は、EX−ORより時間がかからず、従 って暗号化/復号化品質をまったく劣化させることもないため魅力的である。そ のような選択肢を用いることによって、線形暗号解析に対する安全性が大幅に高 められることは実験によって証明されている。しかし、線形および差分特性の双 方についてそのような動作をすることは困難である。 上で言及したように、本発明の一実施の形態では、余分な計算が(余分なキー ビットを用いて)丸め関数中で動作「a」に付加される。特定の計算では、(232 −1)または(232+1)のどちらかのモジュールを用いて、他の32ビット ・サブキーの乗算が行われる。しかしながら、この計算を加えることで、2の指 数だけの品質劣化が生じる。他の選択肢としては、所定のビット分だけ回転(す なわち、循環シフト)を与えることである。この動作は、暗号RC−5の主な動 作に類似しているが、この回転は、データに依存した回転ではなく、キーに依存 した回転(5ビットのサブキーによって制御される)である点で異なっている。 キーに依存しているのは、データに依存した回転はファイステル型の構成にはあ まり適していないためである。 他の実施の形態で64ビットのブロックサイズを用いて、上記の拡張した「a 」動作を行うと、以下の様になる。 「<<<」は循環左方シフト・オペレータ、K1は32ビットのサブキー、K2は 5ビットのサブキーを示す。モジュラ乗算と比較すると循環動作の主な利点は 対して少しの品質悪化が生じる。回転は、考慮する入力サブセットが全て入力ビ ットからなるような極端な場合を除けば、全ての場合に関して線形攻撃を防止で きるので、上に説明した特質(1)を満足する。この極端なケースがN丸め暗号 の各丸めに適用された場合、暗号用の線形特性の記述がうまくいく可能性はきわ めて低い。 従って、a,b,cおよびdにおけるバイナリ動作は、4つ全ての場合(例: XOR)において同じでなければならないことを以上に説明した。しかしながら 、異なったバイナリ動作を用いることも可能である。例えば、bおよびdに関し て、付加モジューロ232を用い、同時にaおよびcに関してXORを用いること も 可能である(これはまさに、ブロウフィッシュ(Blowfish)暗号で用いられる組 み合わせである)。確かに多くのバリエーションが可能であり、このようなバリ エーションが勝っているかの判断は困難であるが、a,b,cおよびdで異なっ た動作を行うことで、暗号全体の安全性を高めることができる(IDEA暗号に よって、異なったグループの動作が、暗号の安全性に貢献するという自信をさら に強めることになった)。 他の設計上の選択肢として、丸め関数自体の定義を各丸め毎に変えることが挙 げられる。従って、N丸め暗号中に、N回の異なる丸めを有するか、または各タ イプの丸めを特定回数用いて、異なる丸め回数を少なくすることもできる。丸め 定義の変更は、上で述べたオプションに基づくか、または、より複雑なものであ ってもよい。 暗号中に、異なる丸めをいくつも設けると、暗号の安全性が高まるかどうかと いう問題点はいまだに未解決である。しかしながら、このことは、確かに暗号分 析を複雑化するようにも見え、また暗号の暗号解析を複雑化するのに効果的であ る場合もある。 CAST設計手順の詳細な分析を容易にし、また、処理自体の理解を深めるた め、このセクションでCAST暗号の一例を示し、付録にもいくつか例を記載し た。12丸めの暗号は、64ビットのブロックサイズと80ビットのキーサイズ を有している。この暗号に、回転動作を用いて線形および差分攻撃に対する固有 の免疫性を与える。この暗号の丸め関数における動作a,b,cおよびdに対し 、XOR動作、加算および除算(モジューロ232)を組み合わせて用いた。また 、暗号全体の丸め関数自体に3種類の変更を行った。最後に、丸め関数に8×3 2sのsボックスを用いた。各sボックスは、異なった分配テーブル中の、それ ぞれ74の最小非線形および2つの最大エントリを有する。 この例の暗号は、キーサイズ(80ビット)に基づいた暗号強度を有しており 、 その暗号化/復号化品質は非常に高く、489−DX2 66MHzのPC上で は1Mバイト/秒以上、90MHzペンティアムでは2.5Mバイト/秒以上で ある。丸めキーの対 このCAST暗号では、丸め毎に1対のサブキーを用いる。32ビット量Km を「マスキング」キーとして用い、5ビット量Krを「回転」キーとして用いる 。非同一丸め このCAST暗号例では、3つの異なった丸め関数が用いられる。丸めは以下 のようになる(ここで「D」は、f関数への原入力であり、「Ia」〜「Id」 は、それぞれIの最上位バイトおよび最下位バイトまでを示す)。「+」および XORであり、「<<<」は循環左方シフト動作を示す。 タイプ1: I=((Kmi+D)<<<Kri タイプ2: タイプ3: I=((Kmi−D)<<<Kri 丸め1,4,7および10は、f関数タイプ1を用いる。 丸め2,5,8および11は、f関数タイプ2を用いる。 丸め3,6,9および12は、f関数タイプ3を用いる。キー・スケジュール 主な80ビットキーをA=a1a2a3a4a5a6a7a8a9a0とする 。ここで、各aiはバイトである。 Km1,・・・,Km12は12個の32ビット・マスキング・サブキーとする(1丸 めに対し1つ)。 Kr1,・・・,Kr12は12個の32ビット回転サブキーとする(1つの丸めに対 し1つ)。最下位の5ビットのみを各丸めで用いる。KmiおよびKriをAから生 成する方法の詳細は、付録を参考のこと。代用ボックス このCAST暗号の例では、8つの代用ボックスを用いる。sボックスS1, S2,S3およびS4は、丸め関数sボックスであり、S5,S6,S7および S8は、キー・スケジュール・ボックスである。sボックスの内容に関しては、 付録を参照のこと。CAST設計手順は、差分暗号解析、線形暗号解析および関 連キー暗号解析に対し、証明できる対抗力を持つ暗号化アルゴリズムのファミリ ーを生成するのに用いることができる。CAST暗号は、他の複数の望ましい暗 号特質を有しており、共通計算プラットフォーム上での暗号化/復号化速度も速 い。この書面において説明した、暗号委員会のメンバーによって開示された手続 きの分析は、提供された設計の種々の側面の信頼性を高めるものである。付録 この付録は、以上に説明したCAST暗号の全詳細を提供する。 キー・スケジュール 主な80ビットキーをA=a1a2a3a4a5a6a7a8a9a0とする 。ここで、各aiはバイトである。 Km1,・・・,Km12は12個の32ビット・マスキング・サブキーとする(1丸 めに対し1つ)。Kr1,・・・,Kr12は12個の32ビット回転サブキーとする( 1丸めに対し1つ)。最下位の5ビットのみを各丸めで用いる。 b1・・・b8〜g1・・・g8、およびbw,bx,by,bz〜gw,gx,g y,gzは中間(一時的)バイトとする。 サブキーは、主キーから以下の方法で求める。 マスキング・サブキー 回転サブキー 代用ボックス このCAST暗号例は、8つの代用ボックスを用いる。sボックスS1、S2 、S3およびS4は丸め関数sボックス、S5、S6、S7およびS8はキー・ スケジュールSボックスである。sボックスの内容は、10進法で書き込まれて おり、左から右、上から下の方向に読む。sボックスの組の2つの例を以下の頁 に記載する。
【手続補正書】特許法第184条の8第1項 【提出日】1997年11月20日(1997.11.20) 【補正内容】 以下の下線部分が34条補正の訂正部分です。NTTレビューの新たな文献 が挿入されました。他の点は変更ありません。 明細書 …… しかしながら、所定の暗号に対し、丸め確率は追加の丸めをしないで済 む程度に十分小さくできない可能性が常にある。さらに、所定の暗号に対し、最 適の特性が見つからないという可能性も常に存在する(見つかった場合は、暗号 解読は壊されることがある)。 DESをさらに改良したものが、ミヤグチ著、「キー制御によって暗号化アル ゴリズムを変える機密キー暗号」、NTTレビュー、Vol.6、第4号、19 94年7月、第85頁〜第90頁に記載されている。この記事には、(疑似)差 分フィルタがDESのf機能にカスケードにまたは並列に接続され、DESの安 全性を強化している。 本発明の設計手順は、以上の方法のどちらをも用いない。その代わりに、本発 明は典型的なDES風の丸め関数を少しだけ変化させ、差分および線形暗号解析 に対して「固有の免疫性」(計算上の免疫性に対する)とする。このように、丸 め関数を少しだけ変化させる方法は、全てのDES風の暗号に利用することがで き、暗号によっては、暗号化/復号化速度にほとんど劣化がないように追加でき る。 発明の目的 従って、本発明の目的は、対称暗号に対して新しい構成手順を提供することに ある。 また、本発明の目的は、差分暗号解析、線形暗号解析、関連キー暗号解析のよ うな1以上の所望の特質を有する新しい対称暗号を提供することにある。 さらに、本発明の目的は、新しい丸め関数を用いて、平文を暗号テキストに暗 号変換する方法を提供することにある。 発明の概要 簡単に述べると、本発明の1実施の形態によれば、本発明は、各データ・ブロ ックの半分の複数の連続した変換丸めを有する所定のビット長のデータ・ブロッ クで、平文を暗号テキストに暗号変換するデータ暗号化方法に関する。各連続変 換丸めは、第1のバイナリ動作を用いて、半分のデータ(半データという)・ブ ロックを所定の長さの第1のマスキング・キーと組み合わせ、第1の変更後の半 データ・ブロックを生成し、第2の異なったバイナリ動作を用いて、第1の変更 後の半データ・ブロックを、所定の長さの第2のマスキング・キーと組み合わせ 、第2の変更後の半データ・ブロックを生成する。この方法は、さらに、mおよ びnが正整数の時、複数の(m×n)個の相互に異なった代用ボックスを用いて 、第2の変更後の半データ・ブロックを処理し、第3の変更後の半データ・ブロ ックを生成し、第3の変更後の半データ・ブロックと、データブロックの残りの 半分をXOR処理し、変換丸めの変換後の半データ・ブロックを生成する。 図面の簡単な説明 図1は、既知のSPN(代用置換ネットワーク)暗号を示す図である。 図2は、本発明の一実施の形態による丸め関数を示す図である。 発明の実施の形態 以上説明した通り、フレームワーク設計中の主パラメータで選択できるのは、 ブロックサイズおよび丸め回数である。多くの利用法において、平文のブロック サイズと暗号文のブロックサイズが同じであることが望ましい(以下では、暗号 のブロックサイズと呼ぶことにする)。しかしながら、1つのキーに対して平文 /暗号文対の総てのコンパイルをしない程度にブロックサイズが大きいという制 約を別にすれば、ブロックサイズを考慮するのみで具体化が容易にできる。現在 のマシンでは、データの左右半分のそれぞれおよびその他の変数が、32ビット ・レジスタにうまい具合に適応するため、64ビット(DESのブロックサイズ )を選択するのが魅力的である。しかしながら、将来的には、他の理由から、他 のビット数を選択するのが都合が良くなるかもしれない。 フレームワーク中の丸め回数を決定するのは、より重要かつ繊細な問題である 。所定のレベルの安全性を提供するには十分な丸め回数が必要であるが、目的の アプリケーションに対し、暗号の速度が受け入れられない程遅いことはそんなに 多くはない。ファイステル・タイプのSPNでは、 以下の下線部分が34条補正の訂正部分です。請求項1,2,3,11のみ が修正されています。 請求の範囲 1. 各データ・ブロックの半分の複数の連続した変換丸めを有する所定のビッ ト長のデータ・ブロックで、平文を暗号テキストに暗号変換するデータ暗号化方 法において、各連続変換丸めは、 第1のバイナリ動作を用いて、半分のデータ(以下半データという)・ブロッ クを所定の長さの第1のマスキング・キーと組み合わせ、第1の変更後の半デー タ・ブロックを生成し、 第2の異なったバイナリ動作を用いて、第1の変更後の半データ・ブロックを 、所定の長さの第2のマスキング・キーと組み合わせ、第2の変更後の半データ ・ブロックを生成し、 mおよびnが正整数(m<n)の時、複数の(m×n)個の相互に異なった代 用ボックスを用いて、第2の変更後の半データ・ブロックを処理し、第3の変更 後の半データ・ブロックを生成し、 第3の変更後の半データ・ブロックと、データブロックの残りの半分をXOR 処理し、変換丸めの変換後の半データ・ブロックを生成することを特徴とするデ ータ暗号化方法。 2. 請求項1記載の所定のバイト長のデータ・ブロックで、平文を暗号テキス トに暗号変換する、データ暗号化方法において、 第1のバイナリ動作は、加算モジューロ2n、減算モジューロ2n、またはビッ ト方向XORのいずれかであり、第2のバイナリ動作は乗算モジューロ(2n− 1)、または乗算モジューロ(2n+1)のいずれかであることを特徴とするデ ー タ暗号化方法。 3. 請求項1記載の所定のバイト長のデータ・ブロックで、平文を暗号テキス トに暗号変換するデータ暗号化方法において、 第1のバイナリ動作は、加算モジューロ2n、減算モジューロ2n、またはビッ ト方向XORのいずれかであり、第2のバイナリ動作は、第2のマスキング・キ ーによって特定されるビット数分の循環シフトであることを特徴とするデータ暗 号化方法。 4. 請求項1記載の所定のバイト長のデータ・ブロックで、平文を暗号テキス トに暗号変換するデータ暗号化方法において、 全ての変換丸めに対する全ての第1のマスキング・キーおよび全ての第2のマ スキング・キーは、第1の変換丸めが行われる前に生成されることを特徴とする データ暗号化方法。 5. 請求項4記載の所定のバイト長のデータ・ブロックで、平文を暗号テキス トに暗号変換するデータ暗号化方法において、 全ての変換丸めに対する全ての第1のマスキング・キーおよび全ての第2のマ スキング・キーは、部分的に曲げ関数に基づいた複数の(m×n)代用ボックス によってキー・ビットから生成され、キー・ビットは、k1,k2,k3,・・・ ,k(z−1),kz(ここでzは正整数とする)の順序のzバイトのキー・パ ターンを有することを特徴とするデータ暗号化方法。 6. 請求項5記載の所定のバイト長のデータ・ブロックで、平文を暗号テキス トに暗号変換するデータ暗号化方法において、 各データ・ブロックは64ビットを有し、代用ボックスは、部分的に曲げ関数 に基づいた8つの8×32のsボックス(S1,S2,S3,・・・、S8)であ り、キー・ビットは、k1,k2,k3,・・・,k9,k0の順序の10バイト のキー・パターンを有することを特徴とするデータ暗号化方法。 7. 請求項5記載の所定のバイト長のデータ・ブロックで、平文を暗号テキス トに暗号変換するデータ暗号化方法において、 変換丸め関数手段は、第1のマスキング・キーおよび第2のマスキング・キー を生成する部分的な曲げ関数に基づいた第1の複数の(m×n)sボックスと、 第2の変更後の半データを処理する部分的に曲げ関数に基づいた第2の複数の( m×n)sボックスとを備えたことを特徴とするデータ暗号化方法。 8. 請求項6記載の所定のバイト長のデータ・ブロックで、平文を暗号テキス トに暗号変換するデータ暗号化方法において、 変換丸め関数手段は、第1のマスキング・キーおよび第2のマスキング・キー を生成する部分的に曲げ関数に基づいた第1の複数の(m×n)sボックスと、 第2の変更後の半データを処理する部分的に曲げ関数に基づいた第2の複数の( m×n)sボックスを備えたことを特徴とするデータ暗号化方法。 9. 請求項8記載の所定のバイト長のデータ・ブロックで、平文を暗号テキス トに暗号変換するデータ暗号化方法において、 第1の複数のsボックスは、部分的に曲げ関数に基づいた4つの8×32のs ボックスを備え、第2の複数のsボックスは、部分的に曲げ関数に基づいた4つ の8×32のsボックスを備えることを特徴とするデータ暗号化方法。 10. 請求項1記載の所定のバイト長のデータ・ブロックで、平文を暗号テキ ストに暗号変換するデータ暗号化方法において、 1つ以上の連続した変換丸めは、相互に異なった第1および第2のバイナリ動 作の組を含むことを特徴とするデータ暗号化方法。 11. 請求項10記載の所定のバイト長のデータ・ブロックで、平文を暗号テ キストに暗号変換するデータ暗号化方法において、 いずれかの特定の丸めに用いられる特定のバイナリ動作は、第1のマスキン グ・キーまたは第2のマスキング・キーの所定のビット、または動作が行われる 半データ・ブロックのいずれかに基づいて 選択されることを特徴とするデータ暗 号化方法。 12. 請求項10記載の所定のバイト長のデータ・ブロックで、平文を暗号テ キストに暗号変換するデータ暗号化方法において、 各変換丸めに用いる特定のバイナリ動作は、全ての実行に対して完全に特定さ れており、キー・ビットまたはデータ・ビットから独立していることを特徴とす るデータ暗号化方法。 13. 請求項12記載の所定のバイト長のデータ・ブロックで、平文を暗号テ キストに暗号変換するデータ暗号化方法において、 バイナリ動作加算モジューロ2n、減算モジューロ2n、およびビット方向XO R、半データ・ブロックを第1のマスキング・キーと組み合わせて用い、また第 2の変更後の半データ・ブロック処理の結果として生じるsボックスの出力を組 み合わせることを特徴とするデータ暗号化方法。 14. 請求項13記載の所定のバイト長のデータ・ブロックで、平文を暗号テ キストに暗号変換するデータ暗号化方法において、 以下の3種の異なった変換丸めが用いられ、 タイプ1:I=((Kmi+D)<<<Kri) タイプ3:I=((Kmi−D)<<<Kri) ここで、「D」は変換丸めへの原入力、「Ia」〜「Id」はIの最上位バイ ト〜最下位バイトをそれぞれ示し、「O」は変換丸めからの出力、「+」および 「<<<」は循環左方シフト動作を示すことを特徴とするデータ暗号化方法。 15. 請求項14記載の所定のバイト長のデータ・ブロックで、平文を暗号テ キストに暗号変換するデータ暗号化方法において、 全部で12回の変換丸めを用い、 丸め1,4,7および10には変換丸めタイプ1を用い、 丸め2,5,8および11には変換丸めタイプ2を用い、 丸め3,6,9および12には変換丸めタイプ3を用ることを特徴とするデ ータ暗号化方法。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ワイエナー・マイケル・ジェームズ カナダ国,ケイ2ジェイ 3ゼット4,オ ンタリオ,ネピーン,ヘネピン ストリー ト 20 (72)発明者 ロックハート・ローランド・トーマス カナダ国,ケイ2エル 2ダブリュー3, オンタリオ,カナタ,リストン クレッセ ント 27

Claims (1)

  1. 【特許請求の範囲】 1. 各データ・ブロックの半分の複数の連続した変換丸めを有する所定のビッ ト長のデータ・ブロックで、平文を暗号テキストに暗号変換するデータ暗号化方 法において、各連続変換丸めは、 第1のバイナリ動作を用いて、半分のデータ(以下半データという)・ブロッ クを所定の長さの第1のマスキング・キーと組み合わせ、第1の変更後の半デー タ・ブロックを生成し、 第2の異なったバイナリ動作を用いて、第1の変更後の半データ・ブロックを 、所定の長さの第2のマスキング・キーと組み合わせ、第2の変更後の半データ ・ブロックを生成し、 mおよびnが正整数の時、複数の(m×n)個の相互に異なった代用ボックス を用いて、第2の変更後の半データ・ブロックを処理し、第3の変更後の半デー タ・ブロックを生成し、 第3の変更後の半データ・ブロックと、データブロックの残りの半分をXOR 処理し、変換丸めの変換後の半データ・ブロックを生成することを特徴とするデ ータ暗号化方法。 2. 請求項1記載の所定のバイト長のデータ・ブロックで、平文を暗号テキス トに暗号変換する、データ暗号化方法において、 第1のバイナリ動作は、加算モジューロ2n、減算モジューロ2n、またはビッ ト方向XORであり、第2のバイナリ動作は乗算モジューロ(2n−1)、また は乗算モジューロ(2n+1)であることを特徴とするデータ暗号化方法。 3. 請求項1記載の所定のバイト長のデータ・ブロックで、平文を暗号テキス トに暗号変換するデータ暗号化方法において、 第1のバイナリ動作は、加算モジューロ2n、減算モジューロ2n、またはビッ ト方向XORであり、第2のバイナリ動作は、第2のマスキング・キーによって 特定されるビット数分の循環シフトであることを特徴とするデータ暗号化方法。 4. 請求項1記載の所定のバイト長のデータ・ブロックで、平文を暗号テキス トに暗号変換するデータ暗号化方法において、 全ての変換丸めに対する全ての第1のマスキング・キーおよび全ての第2のマ スキング・キーは、第1の変換丸めが行われる前に生成されることを特徴とする データ暗号化方法。 5. 請求項4記載の所定のバイト長のデータ・ブロックで、平文を暗号テキス トに暗号変換するデータ暗号化方法において、 全ての変換丸めに対する全ての第1のマスキング・キーおよび全ての第2のマ スキング・キーは、部分的に曲げ関数に基づいた複数の(m×n)代用ボックス によってキー・ビットから生成され、キー・ビットは、k1,k2,k3,・・・ ,k(z−1),kz(ここでZは正整数とする)の順序のzバイトのキー・パ ターンを有することを特徴とするデータ暗号化方法。 6. 請求項5記載の所定のバイト長のデータ・ブロックで、平文を暗号テキス トに暗号変換するデータ暗号化方法において、 各データ・ブロックは64ビットを有し、代用ボックスは、部分的に曲げ関数 に基づいた8つの8×32のsボックス(S1,S2,S3,・・・、S8)であり 、キー・ビットは、k1,k2,k3,・・・,k9,k0の順序の10バイトの キー・パターンを有することを特徴とするデータ暗号化方法。 7. 請求項5記載の所定のバイト長のデータ・ブロックで、平文を暗号テキス トに暗号変換するデータ暗号化方法において、 変換丸め関数手段は、第1のマスキング・キーおよび第2のマスキング・キー を生成する部分的な曲げ関数に基づいた第1の複数の(m×n)sボックスと、 第2の変更後の半データを処理する部分的に曲げ関数に基づいた第2の複数の( m×n)sボックスとを備えたことを特徴とするデータ暗号化方法。 8. 請求項6記載の所定のバイト長のデータ・ブロックで、平文を暗号テキス トに暗号変換するデータ暗号化方法において、 変換丸め関数手段は、第1のマスキング・キーおよび第2のマスキング・キー を生成する部分的に曲げ関数に基づいた第1の複数の(m×n)sボックスと、 第2の変更後の半データを処理する部分的に曲げ関数に基づいた第2の複数の( m×n)sボックスを備えたことを特徴とするデータ暗号化方法。 9. 請求項8記載の所定のバイト長のデータ・ブロックで、平文を暗号テキス トに暗号変換するデータ暗号化方法において、 第1の複数のsボックスは、部分的に曲げ関数に基づいた4つの8×32のs ボックスを備え、第2の複数のsボックスは、部分的に曲げ関数に基づいた4つ の8×32のsボックスを備えることを特徴とするデータ暗号化方法。 10. 請求項1記載の所定のバイト長のデータ・ブロックで、平文を暗号テキ ストに暗号変換するデータ暗号化方法において、 1つ以上の連続した変換丸めは、相互に異なった第1および第2のバイナリ動 作の組を含むことを特徴とするデータ暗号化方法。 11. 請求項10記載の所定のバイト長のデータ・ブロックで、平文を暗号テ キストに暗号変換するデータ暗号化方法において、 いずれかの特定の丸めに用いられる特定のバイナリ動作は、第1のマスキング ・キーまたは第2のマスキング・キーの所定のビットに基づいて、または動作が 行われる半データ・ブロック中の所定のビットに基づいて選択されることを特徴 とするデータ暗号化方法。 12. 請求項10記載の所定のバイト長のデータ・ブロックで、平文を暗号テ キストに暗号変換するデータ暗号化方法において、 各変換丸めに用いる特定のバイナリ動作は、全ての実行に対して完全に特定さ れており、キー・ビットまたはデータ・ビットから独立していることを特徴とす るデータ暗号化方法。 13. 請求項12記載の所定のバイト長のデータ・ブロックで、平文を暗号テ キストに暗号変換するデータ暗号化方法において、 バイナリ動作加算モジューロ2n、減算モジューロ2n、およびビット方向XO R、半データ・ブロックを第1のマスキング・キーと組み合わせて用い、また第 2の変更後の半データ・ブロック処理の結果として生じるsボックスの出力を組 み合わせることを特徴とするデータ暗号化方法。 14. 請求項13記載の所定のバイト長のデータ・ブロックで、平文を暗号テ キストに暗号変換するデータ暗号化方法において、 以下の3種の異なった変換丸めが用いられ、 タイプ1:I=((Kmi+D)<<<Kri) タイプ3:I=((Kmi−D)<<<Kri) ここで、「D」は変換丸めへの原入力、「Ia」〜「Id」はIの最上位バイ ト〜最下位バイトをそれぞれ示し、「O」は変換丸めからの出力、「+」および 「<<<」は循環左方シフト動作を示すことを特徴とするデータ暗号化方法。 15. 請求項14記載の所定のバイト長のデータ・ブロックで、平文を暗号テ キストに暗号変換するデータ暗号化方法において、 全部で12回の変換丸めを用い、 丸め1,4,7および10には変換丸めタイプ1を用い、 丸め2,5,8および11には変換丸めタイプ2を用い、 丸め3,6,9および12には変換丸めタイプ3を用ることを特徴とするデ ータ暗号化方法。
JP9521561A 1995-12-08 1996-11-27 Cast設計手順を用いた対称暗号構成方法 Ceased JP2000506620A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CA2,164,768 1995-12-08
CA002164768A CA2164768C (en) 1995-12-08 1995-12-08 Constructing symmetric ciphers using the cast design procedure
PCT/CA1996/000782 WO1997022192A1 (en) 1995-12-08 1996-11-27 Constructing symmetric ciphers using the cast design procedure

Publications (1)

Publication Number Publication Date
JP2000506620A true JP2000506620A (ja) 2000-05-30

Family

ID=4157138

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9521561A Ceased JP2000506620A (ja) 1995-12-08 1996-11-27 Cast設計手順を用いた対称暗号構成方法

Country Status (6)

Country Link
US (1) US5825886A (ja)
EP (1) EP0953244B1 (ja)
JP (1) JP2000506620A (ja)
CA (1) CA2164768C (ja)
DE (1) DE69624514D1 (ja)
WO (1) WO1997022192A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005519527A (ja) * 2002-03-07 2005-06-30 アクサルト・エス・アー 秘密鍵を伴う電子暗号アセンブリを安全に守る方法
JP2013097161A (ja) * 2011-10-31 2013-05-20 Kddi Corp アルゴリズム可変型mac生成装置、アルゴリズム可変型ハッシュ関数生成装置、アルゴリズム可変型mac生成方法、アルゴリズム可変型ハッシュ関数生成方法、およびプログラム
JP2013134414A (ja) * 2011-12-27 2013-07-08 Kddi Corp 鍵暗号化装置、鍵復号装置、鍵暗号化方法、鍵復号方法、およびプログラム

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2728981A1 (fr) * 1994-12-28 1996-07-05 Gemplus Card Int Procede pour la mise en oeuvre d'un protocole de communication a cle privee entre deux dispositifs de traitement
WO1997005720A2 (en) * 1995-07-27 1997-02-13 Nextlevel Systems, Inc. Cryptographic system with concealed work factor
KR100389902B1 (ko) * 1997-06-23 2003-09-22 삼성전자주식회사 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법
TW396704B (en) * 1997-08-07 2000-07-01 Hitachi Ltd Cipher conversion method, cipher conversion apparatus, decoding method, decoding apparatus, and data communication system
FR2769726B1 (fr) * 1997-10-10 2002-12-13 Cie Des Signaux Nouveau procede de cryptographie numerique par boite de melange
US6243470B1 (en) * 1998-02-04 2001-06-05 International Business Machines Corporation Method and apparatus for advanced symmetric key block cipher with variable length key and block
US6192129B1 (en) * 1998-02-04 2001-02-20 International Business Machines Corporation Method and apparatus for advanced byte-oriented symmetric key block cipher with variable length key and block
US5974144A (en) * 1998-02-25 1999-10-26 Cipheractive Ltd. System for encryption of partitioned data blocks utilizing public key methods and random numbers
KR100296958B1 (ko) * 1998-05-06 2001-09-22 이석우 블록 데이터 암호화 장치
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
US6266412B1 (en) * 1998-06-15 2001-07-24 Lucent Technologies Inc. Encrypting speech coder
US6490354B2 (en) * 1998-06-23 2002-12-03 Microsoft Corporation Lightweight word-oriented technique for generating a pseudo-random sequence for use in a keystream of a stream cipher
GB2345229B (en) * 1998-12-23 2003-12-03 Motorola Ltd Method for encrypting data
US6578061B1 (en) * 1999-01-19 2003-06-10 Nippon Telegraph And Telephone Corporation Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon
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
DE19963408A1 (de) 1999-12-28 2001-08-30 Giesecke & Devrient Gmbh Tragbarer Datenträger mit Zugriffsschutz durch Schlüsselteilung
US6891951B2 (en) * 2000-01-21 2005-05-10 Victor Company Of Japan, Ltd. Cryptosystem-related method and apparatus
KR100377173B1 (ko) * 2000-05-25 2003-03-26 주식회사 하이닉스반도체 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
KR100377175B1 (ko) * 2000-06-08 2003-03-26 주식회사 하이닉스반도체 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
KR100377176B1 (ko) * 2000-06-12 2003-03-26 주식회사 하이닉스반도체 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
JP3505482B2 (ja) * 2000-07-12 2004-03-08 株式会社東芝 暗号化装置、復号装置及び拡大鍵生成装置、拡大鍵生成方法並びに記録媒体
US20020021801A1 (en) * 2000-07-13 2002-02-21 Takeshi Shimoyama Computing apparatus using an SPN structure in an F function and a computation method thereof
US7366300B2 (en) * 2000-12-13 2008-04-29 Broadcom Corporation Methods and apparatus for implementing a cryptography engine
US7142671B2 (en) * 2000-12-13 2006-11-28 Broadcom Corporation Methods and apparatus for implementing a cryptography engine
US7502463B2 (en) * 2000-12-13 2009-03-10 Broadcom Corporation Methods and apparatus for implementing a cryptography engine
JP2003098959A (ja) * 2001-09-21 2003-04-04 Toshiba Corp 暗号処理装置
US7103180B1 (en) * 2001-10-25 2006-09-05 Hewlett-Packard Development Company, L.P. Method of implementing the data encryption standard with reduced computation
KR20030059500A (ko) * 2001-12-29 2003-07-10 한국전자통신연구원 에스.피.엔(spn) 구조를 가지는 블록 암호를 이용한유사난수 발생기 및 방법
DE10200351A1 (de) * 2002-01-08 2003-07-17 Hoetker Andreas Alice - Ein Algorithmus zur Sicherung von Daten
FR2851862B1 (fr) * 2003-02-27 2006-12-29 Radiotelephone Sfr Procede de generation d'une permutation pseudo-aleatoire d'un mot comportant n digits
EP1480371A1 (en) * 2003-05-23 2004-11-24 Mediacrypt AG Device and method for encrypting and decrypting a block of data
US20050084097A1 (en) * 2003-10-16 2005-04-21 Tien-Shin Ho Apparatus and method for calculatingtkip sbox value
US7752453B2 (en) * 2004-01-08 2010-07-06 Encryption Solutions, Inc. Method of encrypting and transmitting data and system for transmitting encrypted data
US8031865B2 (en) * 2004-01-08 2011-10-04 Encryption Solutions, Inc. Multiple level security system and method for encrypting data within documents
US7526643B2 (en) * 2004-01-08 2009-04-28 Encryption Solutions, Inc. System for transmitting encrypted data
JP2007199156A (ja) * 2006-01-24 2007-08-09 Sony Corp 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム
JP5023624B2 (ja) * 2006-09-01 2012-09-12 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5050454B2 (ja) * 2006-09-01 2012-10-17 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2010044251A (ja) * 2008-08-13 2010-02-25 Hitachi Ltd ハッシュ値生成装置、プログラム及びハッシュ値生成方法
US8958547B2 (en) * 2012-01-06 2015-02-17 International Business Machines Corporation Generation of relative prime numbers for use in cryptography
US10146701B2 (en) * 2014-08-29 2018-12-04 The Boeing Company Address-dependent key generation with a substitution-permutation network
US11822903B2 (en) * 2022-04-05 2023-11-21 Bank Of America Corporation Instinctive cipher compilation and implementation

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4275265A (en) * 1978-10-02 1981-06-23 Wisconsin Alumni Research Foundation Complete substitution permutation enciphering and deciphering circuit
US4802217A (en) * 1985-06-07 1989-01-31 Siemens Corporate Research & Support, Inc. Method and apparatus for securing access to a computer facility
EP0482154B1 (de) * 1990-05-18 1993-06-30 Ascom Tech Ag Vorrichtung für das umwandeln eines digitalblockes und verwendung derselben
JPH0812537B2 (ja) * 1993-03-11 1996-02-07 日本電気株式会社 暗号化装置
US5511123A (en) * 1994-08-04 1996-04-23 Northern Telecom Limited Symmetric cryptographic system for data encryption

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005519527A (ja) * 2002-03-07 2005-06-30 アクサルト・エス・アー 秘密鍵を伴う電子暗号アセンブリを安全に守る方法
JP2013097161A (ja) * 2011-10-31 2013-05-20 Kddi Corp アルゴリズム可変型mac生成装置、アルゴリズム可変型ハッシュ関数生成装置、アルゴリズム可変型mac生成方法、アルゴリズム可変型ハッシュ関数生成方法、およびプログラム
JP2013134414A (ja) * 2011-12-27 2013-07-08 Kddi Corp 鍵暗号化装置、鍵復号装置、鍵暗号化方法、鍵復号方法、およびプログラム

Also Published As

Publication number Publication date
CA2164768A1 (en) 1997-06-09
EP0953244B1 (en) 2002-10-23
US5825886A (en) 1998-10-20
WO1997022192A1 (en) 1997-06-19
EP0953244A1 (en) 1999-11-03
CA2164768C (en) 2001-01-23
DE69624514D1 (de) 2002-11-28

Similar Documents

Publication Publication Date Title
JP2000506620A (ja) Cast設計手順を用いた対称暗号構成方法
US5511123A (en) Symmetric cryptographic system for data encryption
JP4828082B2 (ja) 対称キー暗号用の置換ボックス
Brown et al. Improving resistance to differential cryptanalysis and the redesign of LOKI
US5222139A (en) Cryptographic method and apparatus
US5745577A (en) Symmetric cryptographic system for data encryption
US7092525B2 (en) Cryptographic system with enhanced encryption function and cipher key for data encryption standard
Boukerrou et al. On the Feistel counterpart of the boomerang connectivity table
CN107147487B (zh) 对称密钥随机分组密码
JP2008514975A (ja) sボックス
Knudsen et al. Truncated differentials and Skipjack
Biryukov et al. Cryptanalysis of Feistel networks with secret round functions
JP2000162965A (ja) 暗復号装置及び記憶媒体
Minematsu et al. Building blockcipher from tweakable blockcipher: Extending FSE 2009 proposal
Hua et al. Improved MITM cryptanalysis on Streebog
Minier et al. Solving a symmetric key cryptographic problem with constraint programming
CN112507357B (zh) 一种基于密钥生成器的多级接口设计方法
Luo et al. The Pseudorandomness of Many-Round Lai-Massey Scheme.
Chan et al. On the resistance of new lightweight block ciphers against differential cryptanalysis
Wang et al. Improved impossible differential cryptanalysis of CLEFIA
Biham et al. Differential cryptanalysis of Q
Piret Block ciphers: security proofs, cryptanalysis, design, and fault attacks/.
Lisickiy et al. Block symmetric cipher with random s-boxes
Tiwari et al. Towards Finding Active Number of S-Boxes in Block Ciphers using Mixed Integer Linear Programming
JP3473171B2 (ja) 逐次暗号方式

Legal Events

Date Code Title Description
A313 Final decision of rejection without a dissenting response from the applicant

Free format text: JAPANESE INTERMEDIATE CODE: A313

Effective date: 20040330

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040427