JP2007199156A - 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム - Google Patents

暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP2007199156A
JP2007199156A JP2006014910A JP2006014910A JP2007199156A JP 2007199156 A JP2007199156 A JP 2007199156A JP 2006014910 A JP2006014910 A JP 2006014910A JP 2006014910 A JP2006014910 A JP 2006014910A JP 2007199156 A JP2007199156 A JP 2007199156A
Authority
JP
Japan
Prior art keywords
cryptographic processing
function
round
functions
rounds
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
Application number
JP2006014910A
Other languages
English (en)
Inventor
Koushi Shibuya
香士 渋谷
Taizo Shirai
太三 白井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2006014910A priority Critical patent/JP2007199156A/ja
Priority to PCT/JP2007/050010 priority patent/WO2007086243A1/ja
Priority to EP07706357A priority patent/EP1978496A4/en
Priority to US12/161,898 priority patent/US20090010425A1/en
Priority to CN200780003386.XA priority patent/CN101375323B/zh
Publication of JP2007199156A publication Critical patent/JP2007199156A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Abstract

【課題】インボリューション性、安全性を維持し、ラウンド数の変更を容易に行なうことができるFeistel型共通鍵ブロック暗号処理構成を実現する。
【解決手段】非線形変換部および線形変換部を有するSP型F関数を持つFeistel型暗号処理構成において、インボリーション性および、予め設定されたF関数配列条件であるODM−MRまたはSDM−MRを満足する行列配列を持つnラウンドの基本ユニットを構成し、このユニットに対してF関数の配列条件を満足するF関数を選択して追加、あるいは基本ユニットを複数接続することでインボリーション性および、ODM−MR、またはSDM−MRを満足する配列を持つラウンド数を増加させたFeistel暗号構成を構築する。
【選択図】図10

Description

本発明は、暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラムに関する。さらに詳細には、Feistel型共通鍵ブロック暗号処理を実行する暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラムに関する。
昨今、ネットワーク通信、電子商取引の発展に伴い、通信におけるセキュリティ確保が重要な問題となっている。セキュリティ確保の1つの方法が暗号技術であり、現在、様々な暗号化手法を用いた通信が実際に行なわれている。
例えばICカード等の小型の装置中に暗号処理モジュールを埋め込み、ICカードと、データ読み取り書き込み装置としてのリーダライタとの間でデータ送受信を行ない、認証処理、あるいは送受信データの暗号化、復号を行なうシステムが実用化されている。
暗号処理アルゴリズムには様々なものがあるが、大きく分類すると、暗号化鍵と復号鍵を異なる鍵、例えば公開鍵と秘密鍵として設定する公開鍵暗号方式と、暗号化鍵と復号鍵を共通の鍵として設定する共通鍵暗号方式とに分類される。
共通鍵暗号方式にも様々なアルゴリズムがあるが、その1つに共通鍵をベースとして複数の鍵を生成して、生成した複数の鍵を用いてブロック単位(64ビット,128ビットなど)のデータ変換処理を繰り返し実行する方式がある。このような鍵生成方式とデータ変換処理を適用したアルゴリズムの代表的なものが共通鍵ブロック暗号方式である。
共通鍵ブロック暗号方式の1つのデザインとして、暗号化処理対象として入力される平文データに対して、基本となる変換関数を繰り返し実行させるFeistel構造と呼ばれる構造が用いられることが多い。Feistel構造はラウンド関数と呼ばれる基本となる処理単位の繰り返しで構成される。ラウンド関数の繰り返し数、すなわちラウンド数(または段数)をいくつにするかは、特に固定的なものではなく、設計時に決定される。
ラウンド数を多く設定すれば、処理時間が長くなるが、様々な攻撃、すなわち差分解析などの暗号解析に対する強度を高め、安全性を強固にすることが可能となる。従って、処理時間優先とする場合と、安全性優先とする場合など、利用目的に応じたラウンド数の設定を行うことが好ましい。
本発明は、共通鍵ブロック暗号方式の1つのデザインであるFeistel構造を持つFeistel型共通鍵ブロック暗号処理を実行する構成において、ラウンド数の変更を容易に行なうことを可能とし、また、差分攻撃などの攻撃に対する耐性の高い構成を維持したまま、様々なラウンド数の設定での暗号処理を可能とする暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラムを提供することを目的とする。
本発明の第1の側面は、
暗号処理装置であり、
非線形変換処理および線形変換処理を含むデータ変換処理を実行するSP型F関数を複数ラウンド繰り返すFeistel型共通鍵ブロック暗号処理を実行する暗号処理部であり、使用するラウンド鍵の使用順序を逆にするだけで暗号化関数と復号関数を同じ回路で行うことを可能としたインボリューション性を備え、かつ、複数の異なるF関数を予め設定されたF関数配列条件を満足する配列とした暗号処理基本ユニットを有する暗号処理部と、
前記暗号処理部に構成された暗号処理基本ユニットの利用回数設定情報に基づいて、前記暗号処理基本ユニットを1回または複数回繰り返し利用する暗号処理演算の実行制御を行う制御部と、
を有することを特徴とする暗号処理装置にある。
さらに、本発明の暗号処理装置の一実施態様において、前記F関数配列条件は、前記Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンドのF関数が3つの異なる線形変換行列M,M,Mを適用した3種類のF関数F,F,Fを含む構成である場合において、奇数ラウンドを先頭から順次選択した場合、3連続部分に3種類のF関数F,F,Fを含み、偶数ラウンドを最終ラウンドから選択した場合、3連続部分に3種類のF関数F,F,Fを含むという配列条件であることを特徴とする。
さらに、本発明の暗号処理装置の一実施態様において、前記F関数配列条件は、前記Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンドのF関数が2つの異なる線形変換行列M,Mを適用した2種類のF関数F,Fを含む構成である場合において、奇数ラウンドを先頭ラウンドから順次選択した場合、2連続部分に2種類のF関数F,Fを含み、偶数ラウンドを最終ラウンドから選択した場合、2連続部分に2種類のF関数F,Fを含むという配列条件であることを特徴とする。
さらに、本発明の第2の側面は、
暗号処理装置製造装置であり、
非線形変換処理および線形変換処理を含むデータ変換処理を実行するSP型F関数を複数ラウンド繰り返すFeistel型共通鍵ブロック暗号処理を実行する暗号処理部であり、使用するラウンド鍵の使用順序を逆にするだけで暗号化関数と復号関数を同じ回路で行うことを可能としたインボリューション性を備え、かつ、複数の異なるF関数を予め設定されたF関数配列条件を満足する配列とした暗号処理基本ユニットを生成する暗号処理基本ユニット生成部と、
前記暗号処理基本ユニットを適用し、暗号処理装置に設定する暗号処理部のラウンド数に基づいて、前記F関数配列条件を満足するF関数を選択し追加する処理を実行するラウンド数変更部と、
を有することを特徴とする暗号処理装置製造装置にある。
さらに、本発明の暗号処理装置製造装置の一実施態様において、前記F関数配列条件は、前記Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンドのF関数が3つの異なる線形変換行列M,M,Mを適用した3種類のF関数F,F,Fを含む構成である場合において、奇数ラウンドを先頭から順次選択した場合、3連続部分に3種類のF関数F,F,Fを含み、偶数ラウンドを最終ラウンドから選択した場合、3連続部分に3種類のF関数F,F,Fを含むという配列条件であることを特徴とする。
さらに、本発明の暗号処理装置製造装置の一実施態様において、前記F関数配列条件は、前記Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンドのF関数が2つの異なる線形変換行列M,Mを適用した2種類のF関数F,Fを含む構成である場合において、奇数ラウンドを先頭ラウンドから順次選択した場合、2連続部分に2種類のF関数F,Fを含み、偶数ラウンドを最終ラウンドから選択した場合、2連続部分に2種類のF関数F,Fを含むという配列条件であることを特徴とする。
さらに、本発明の暗号処理装置製造装置の一実施態様において、前記ラウンド数変更部は、前記暗号処理基本ユニットを構成する先頭ラウンドの前、および最終ラウンドの後に、順次1つずつ、前記F関数配列条件を満足するF関数を選択し追加する処理を実行する構成であることを特徴とする。
さらに、本発明の暗号処理装置製造装置の一実施態様において、前記ラウンド数変更部は、前記暗号処理基本ユニットを複数ユニット接続して、F関数追加処理を実行する構成であることを特徴とする。
さらに、本発明の第3の側面は、
暗号処理方法であり、
非線形変換処理および線形変換処理を含むデータ変換処理を実行するSP型F関数を複数ラウンド繰り返すFeistel型共通鍵ブロック暗号処理を実行する暗号処理ステップであり、使用するラウンド鍵の使用順序を逆にするだけで暗号化関数と復号関数を同じ回路で行うことを可能としたインボリューション性を備え、かつ、複数の異なるF関数を予め設定されたF関数配列条件を満足する配列とした暗号処理基本ユニットを利用した暗号処理を実行する暗号処理ステップと、
前記暗号処理部に構成された暗号処理基本ユニットの利用回数設定情報に基づいて、前記暗号処理基本ユニットを1回または複数回繰り返し利用する暗号処理演算の実行制御を行う制御ステップと、
を有することを特徴とする暗号処理方法にある。
さらに、本発明の暗号処理方法の一実施態様において、前記F関数配列条件は、前記Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンドのF関数が3つの異なる線形変換行列M,M,Mを適用した3種類のF関数F,F,Fを含む構成である場合において、奇数ラウンドを先頭から順次選択した場合、3連続部分に3種類のF関数F,F,Fを含み、偶数ラウンドを最終ラウンドから選択した場合、3連続部分に3種類のF関数F,F,Fを含むという配列条件であることを特徴とする。
さらに、本発明の暗号処理方法の一実施態様において、前記F関数配列条件は、前記Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンドのF関数が2つの異なる線形変換行列M,Mを適用した2種類のF関数F,Fを含む構成である場合において、奇数ラウンドを先頭ラウンドから順次選択した場合、2連続部分に2種類のF関数F,Fを含み、偶数ラウンドを最終ラウンドから選択した場合、2連続部分に2種類のF関数F,Fを含むという配列条件であることを特徴とする。
さらに、本発明の第4の側面は、
暗号処理装置製造方法であり、
非線形変換処理および線形変換処理を含むデータ変換処理を実行するSP型F関数を複数ラウンド繰り返すFeistel型共通鍵ブロック暗号処理を実行する暗号処理部であり、使用するラウンド鍵の使用順序を逆にするだけで暗号化関数と復号関数を同じ回路で行うことを可能としたインボリューション性を備え、かつ、複数の異なるF関数を予め設定されたF関数配列条件を満足する配列とした暗号処理基本ユニットを生成する暗号処理基本ユニット生成ステップと、
前記暗号処理基本ユニットを適用し、暗号処理装置に設定する暗号処理部のラウンド数に基づいて、前記F関数配列条件を満足するF関数を選択し追加する処理を実行するラウンド数変更ステップと、
を有することを特徴とする暗号処理装置製造方法にある。
さらに、本発明の暗号処理装置製造方法の一実施態様において、前記F関数配列条件は、前記Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンドのF関数が3つの異なる線形変換行列M,M,Mを適用した3種類のF関数F,F,Fを含む構成である場合において、奇数ラウンドを先頭から順次選択した場合、3連続部分に3種類のF関数F,F,Fを含み、偶数ラウンドを最終ラウンドから選択した場合、3連続部分に3種類のF関数F,F,Fを含むという配列条件であることを特徴とする。
さらに、本発明の暗号処理装置製造方法の一実施態様において、前記F関数配列条件は、前記Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンドのF関数が2つの異なる線形変換行列M,Mを適用した2種類のF関数F,Fを含む構成である場合において、奇数ラウンドを先頭ラウンドから順次選択した場合、2連続部分に2種類のF関数F,Fを含み、偶数ラウンドを最終ラウンドから選択した場合、2連続部分に2種類のF関数F,Fを含むという配列条件であることを特徴とする。
さらに、本発明の暗号処理装置製造方法の一実施態様において、前記ラウンド数変更ステップは、前記暗号処理基本ユニットを構成する先頭ラウンドの前、および最終ラウンドの後に、順次1つずつ、前記F関数配列条件を満足するF関数を選択し追加する処理を実行するステップであることを特徴とする。
さらに、本発明の暗号処理装置製造方法の一実施態様において、前記ラウンド数変更ステップは、前記暗号処理基本ユニットを複数ユニット接続して、F関数追加処理を実行するステップであることを特徴とする。
さらに、本発明の第5の側面は、
暗号処理装置において暗号処理を実行させるコンピュータ・プログラムであり、
暗号処理部において、非線形変換処理および線形変換処理を含むデータ変換処理を実行するSP型F関数を複数ラウンド繰り返すFeistel型共通鍵ブロック暗号処理を実行する暗号処理ステップであり、使用するラウンド鍵の使用順序を逆にするだけで暗号化関数と復号関数を同じ回路で行うことを可能としたインボリューション性を備え、かつ、複数の異なるF関数を予め設定されたF関数配列条件を満足する配列とした暗号処理基本ユニットを利用した暗号処理を実行する暗号処理ステップと、
制御部において、前記暗号処理部に構成された暗号処理基本ユニットの利用回数設定情報に基づいて、前記暗号処理基本ユニットを1回または複数回繰り返し利用する暗号処理演算の実行制御を行う制御ステップと、
を実行させることを特徴とするコンピュータ・プログラムにある。
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやFD、MOなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本発明の構成によれば、非線形変換部および線形変換部を有するSP型のF関数を複数ラウンド繰り返し実行するFeistel型共通鍵ブロック暗号処理構成において、予め設定されたインボリーション性および、予め設定されたF関数の配列条件としてのODM−MR、または、SDM−MRを満足させる行列配列を持つnラウンド構成のFeistel暗号構成を暗号処理基本ユニットとして構成し、この暗号処理基本ユニットに対して、F関数の配列条件を満足するという条件設定の下に選択したF関数を追加する処理や、あるいは、暗号処理基本ユニットを複数接続する処理によって、インボリーション性および、ODM−MR、または、SDM−MRを満足する配列を持つラウンド数を増加させたFeistel暗号構成を構築することができる。
以下、本発明の暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラムの詳細について説明する。説明は、以下の項目に従って行なう。
1.SP型F関数を持つFeistel構造
2.最適拡散変換および準最適拡散変換について
3.インボリューション性について
4.複数の異なる変換行列を利用するSP型F関数を持つFeistel型暗号構成
5.複数の異なる変換行列を利用するSP型F関数を持つFeistel型暗号において、ラウンド数の変更を容易にした構成
6.暗号処理装置の構成例
7.暗号処理装置製造装置の構成例
[1.SP型F関数を持つFeistel構造]
まず、SP型F関数を持つFeistel構造について説明する。共通鍵ブロック暗号のデザインとして、平文データの変換方法に基本となる変換関数をある特別な順序で配置するFeistel構造と呼ばれる構造が用いられることが多い。Feistel構造はラウンド関数と呼ばれる変換関数の単純な繰り返しにより、平文を暗号文に変換する構造を持つ。
図1を参照して、Feistel構造について説明する。暗号化対象として入力される平文の長さを2mnビットとする。ただし、m,nは共に整数である。初めに、2mnビットの平文を、mnビットの2つの入力データP(Plain-Left)101,P(Plain-Right)102に分割し、これを入力値とする。
Feistel構造はラウンド関数とよばれる基本構造の繰り返しで表現され、各ラウンドに含まれるデータ変換関数はF関数120と呼ばれる。図1の構成では、F関数(ラウンド関数)120がr段繰り返された構成例を示している。
例えば第1番目のラウンドでは、mnビットの入力データXと、鍵生成部(図示せず)から入力されるmnビットのラウンド鍵K103がF関数120に入力され、F関数120におけるデータ変換処理の後にmnビットのデータYを出力する。出力はもう片方の前段からの入力データ(第1段の場合は入力データP)と排他的論理和部104において、排他的論理和演算がなされ、mnビットの演算結果が次のラウンド関数へと出力される。この処理、すなわちF関数を定められたラウンド数(r)だけ繰り返し適用して暗号化処理が完了し、暗号文の分割データC(Cipher-Left)、C(Cipher-Right)が出力される。以上の構成より、Feistel構造の復号処理はラウンド鍵を挿入する順序を逆にするだけでよく、逆関数を構成する必要がないことが導かれる。
各ラウンドの関数として設定されるF関数120の構成について、図2を参照して説明する。図2(a)は、1つのラウンドにおけるF関数120に対する入力および出力を示す図であり、図2(b)は、F関数120の構成の詳細を示す図である。F関数120は、図2(b)に示すように、非線形変換層(S層)と線形変換層(P層)を接続したいわゆるSP型の構成を有する。
図2に示すF関数120は、入出力ビット長がm×n(m,n:整数)ビットの設定を持つ関数である。SP型F関数内部では初めに鍵データKとデータXとの排他的論理和が実行され、次に非線形変換層(S層)が適用され、続いて線形変換層(P層)が適用される。
具体的には非線形変換層(S層)は、Sボックス(S−box)121と呼ばれるnビット入力nビット出力の非線形変換テーブルがm個並んだものであり、mnビットのデータはnビットずつ分割されてそれぞれ対応するSボックス(S−box)121に入力されデータが変換される。各Sボックスでは、例えば変換テーブルを適用した非線形変換処理が実行される。
線形変換層(P層)は線形変換部122によって構成され、線形変換部122は、Sボックス121からの出力データであるmnビットの出力値Zを入力し、この入力に対して線形変換を施しmnビットの結果を出力する。線形変換部122は、入力ビット位置の入れ替え処理などの線形変換処理を実行して、mnビットの出力値Yを出力する。この出力値Yが前段からの入力データと排他的論理和され、次のラウンドのF関数の入力値とされる。
なお、以下に説明する本実施例の構成では、線形変換層(P層)としての線形変換部122において実行する線形変換はGF(2)上で定義されるmn×mnの行列を適用して行なわれる線形変換であると定義し、また、第iラウンド目に含まれる行列をMと呼ぶものとする。
[2.最適拡散変換および準最適拡散変換について]
上述のSP型F関数を持つFeistel型暗号において、F関数の線形変換層において実行する線形変換に適用する線形変換行列は、暗号強度を低下させることがないように、ある条件を満足する行列を適用することが好ましい。この条件について説明する。
線形変換の特殊な例として最適拡散変換(ODM:Optimal Diffusion Mappings)を以下のように定義する。
n×aビットデータからn×bビットデータへの線形変換を行う写像、
θ:{0,1}na→{0,1}nb
に対して分岐数B(θ)を次のように定義する。
B(θ)=minα≠0{hw(α)+hw(θ(α))}
ただし、minα≠0{Xα}は、α≠0を満たすすべてのXαのうちの最小値を表すものとし、hw(Y)はビット列Yをnビットごとに区切って表したときに、nビットのデータすべてが0ではない(非ゼロ)要素の数を返す関数とする。
このとき、分岐数B(θ)がb+1であるような写像θを最適拡散変換(ODM:Optimal Diffusion Mappings)と定義する。また便宜的に行列Mの分岐数をB(M)と表すものとする。
さらに、分岐数B(θ)がb+1未満であるような写像θを準最適拡散変換(SDM:Sub Optimal Diffusion Mappings)と定義する。
上述のSP型F関数を持つFeistel型暗号において、F関数の線形変換層において実行する線形変換に適用する線形変換行列を決定する場合、上述の最適拡散変換(ODM)、すなわち分岐数B(θ)がb+1であるような写像θ、および準最適拡散変換(SDM)、すなわち、分岐数B(θ)がb+1未満であるような写像θを実行する設定となっているか否かを検討して行列を決定することが好ましい。具体的な行列決定処理については、後述する。
[3.インボリューション性について]
上述のSP型F関数を持つFeistel型暗号を実行する暗号化関数Eを、以下のように定義する。
E(P||P,K,K,・・・,K
上記暗号化関数Eに示すP,Pは暗号処理の対象として入力する平文を示し、||は連結、K,K,・・・,Kは、各ラウンドにおいて使用するラウンド鍵を示す。
このような関数Eで示される暗号処理において、その復号関数Dは、以下のように示すことができる。
D(C||C,K,K,・・・,K
=E(C||C,K,・・・,K,K
上記復号関数Dに示すC,Cは、復号処理対象として入力する暗号文を示し、||は連結、K,・・・K,Kは、各ラウンドにおいて使用するラウンド鍵を示す。
このようにFeistel構造共通鍵ブロック暗号では、通常、使用するラウンド鍵の使用順序を逆にするだけで暗号化関数と復号関数を同じ回路で行うことができるという特徴を有する。すなわち、暗号処理と、復号処理とに個別の回路を設定することなく、同じ回路を適用して、その処理順を逆に設定するのみで暗号処理と復号処理との双方を実行することができる。Feistel構造共通鍵ブロック暗号が持つこの性質をインボリューション性と定義する。
図を参照して、Feistel構造共通鍵ブロック暗号が持つインボリューション性について説明する。図1に示すFeistel構造を暗号化処理に適用するFeistel構造とする。この場合、暗号化関数Eを実行する。すなわち、
E(P||P,K,K,・・・,K
を実行する。P,Pは図1に示すように暗号処理の対象として入力する平文を示し、K,K,・・・,Kは、図1に示すように、各ラウンドにおいて使用するラウンド鍵を示す。
一方、図1に示すFeistel構造による暗号化処理結果としての暗号文C,Cを復号するためのFeistel構造は、図3に示す構成となる。図3に示すFeistel構造は、復号関数D、すなわち、
D(C||C,K,K,・・・,K
=E(C||C,K,・・・,K,K
を実行する。C,Cは、図3に示すように、復号処理対象として入力する暗号文であり、K,・・・K,Kは、図3に示すように、各ラウンドにおいて使用するラウンド鍵を示す。
このように、Feistel構造共通鍵ブロック暗号では、暗号処理と、復号処理とに個別の回路を設定することなく、同じ回路を適用して、その処理順を逆に設定するのみで暗号処理と復号処理との双方を実行することができる。これをインボリューション性と定義する。
[4.複数の異なる変換行列を利用するSP型F関数を持つFeistel型暗号構成]
SP型F関数を持つFeistel型暗号において、各ラウンドにおいて適用する線形変換行列を異なる行列として設定すると、例えば差分解析などの攻撃に対する耐性を高めることができる。すなわち、暗号強度を高めることが可能となる。なお、各ラウンドにおいて適用する線形変換行列を異なる行列として設定することでSP型F関数を持つFeistel型暗号の暗号強度を高めた構成の詳細については、本発明と同一の出願人に係る先の特許出願:特願2005−313842に説明されている。
従来型のFeistel型暗号では、すべてのラウンド(段)のF関数に同じ線形変換層を用いているため、差分の伝播時に同時に複数の差分がキャンセルしてしまうという性質が存在した。暗号解析手法の代表的な手法として、ある差分を持つ入力データ(平文)とその出力データ(暗号文)を多数解析することにより各ラウンド関数における適用鍵を解析する差分解析(あるいは差分解読法)が知られており、従来のDES暗号アルゴリズム等の共通鍵ブロック暗号においては、F関数の線形変換部において適用する処理(変換行列)を、各段のラウンドにおいて等しいものに設定しているため、差分解析が行いやすく、結果として鍵の解析の容易性を招いている。
各ラウンドのF関数に適用する線形変換行列を特定のシーケンスに従った異なる行列とすることで、差分の伝播時に同時に複数の差分がキャンセルしてしまうという性質を排除することが可能となり、差分解析などの攻撃に対する耐性を高めることができる。
具体的な例について、図4、図5を参照して説明する。図4の例は、複数段(ラウンド)を持つFeistel型共通鍵ブロック暗号処理構成における各段のF関数中の線形変換部において適用する線形変換処理のための行列として、2つの異なる行列M,Mを利用した例である。
具体的には、図4に示すように、
(a)奇数段にM,Mの順に配置
(b)偶数段の最終段からM,Mの順に配置
上記(a),(b)の条件を満足するように2つの異なる行列M,Mを適用する構成とする。なお、M,Mの順番は逆でもよい。すなわち、奇数段に連続して同一の行列が連続することなく、偶数段を最終段からみたときにも連続して同一の行列が連続することのないことが差分解析などの攻撃に対する耐性を高めることができる条件となる。
条件(a)は、(a)奇数段にM,Mの順に配置する条件であり、図4に示すように、ラウンド1,3,5,・・・の順に、行列M,Mを順に配置する。条件(b)は、(a)偶数段の最終段からM,Mの順に配置する条件であり、図4に示すように、ラウンド12,10,8,・・・の順に、行列M,Mを順に配置する。ここで、行列M,Mの各々は、各ラウンドにおけるF関数において実行される2つの異なる線形変換行列である。
図4に示す例は、2つの異なる線形変換行列を利用した例であり、この構成においても、差分攻撃に対する耐性を高めることが可能であるが、さらに、3つの異なる行列M,M,Mを利用した構成も可能である。図5は、複数段(ラウンド)を持つFeistel型共通鍵ブロック暗号処理構成における各段のF関数中の線形変換部において適用する線形変換処理のための行列として、3つの異なる行列M,M,Mを利用した例である。
図5に示すように、
(a)奇数段にM,M,Mの順に配置
(b)偶数段の最終段からM,M,Mの順に配置
上記(a),(b)の条件を満足するように3つの異なる行列M,M,Mを適用する構成とする。なお、M,M,Mの順番は異なっていてもよい。すなわち、奇数段の3連続部分に必ず、M,M,Mの異なる3つの行列が含まれ、偶数段を最終段からみたときにも3連続部分に必ず、M,M,Mの異なる3つの行列が含まれることが差分解析などの攻撃に対する耐性を高めることができる条件となる。
条件(a)は、(a)奇数段にM,M,Mの順に配置する条件であり、図5に示すように、ラウンド1,3,5,・・・の順に、行列M,M,Mを順に配置する。条件(b)は、(a)偶数段の最終段からM,M,Mの順に配置する条件であり、図5に示すように、ラウンド12,10,8,・・・の順に、行列M,M,Mを順に配置する。ここで、行列M,M,Mの各々は、各ラウンドにおけるF関数において実行される線形変換行列である。
図4、図5を参照して説明したように、異なる行列を特定の順に配置してF関数を実行させる構成とすることで、差分解析などの攻撃に対する耐性を高めたより高い安全性を有するFeistel型暗号が実現される。なお、この構成および処理の詳細については、本発明と同一の出願人に係る先の特許出願:特願2005−313842に説明されている。
さらに、図4、図5を参照して説明したような複数の異なる線形変換行列を設定するFeistel型暗号において適用する線形変換行列は、一定の暗号強度を保持するために、特定の性質を持つ行列を利用することが好ましい。この線形変換行列の評価、設定の際に、最適拡散変換、準最適拡散変換という評価基準を用いることができる。
最適拡散変換、準最適拡散変換の定義について説明する。図5を参照して説明した3つの異なる行列をM,M,Mとした場合に{M||M||M},{ −1|| −1},{ −1|| −1},{ −1|| −1}という4つの行列全てが最適拡散変換(Optimal Diffusion Mappings)であるとき,M,M,MはODM−MR(Optimal Diffusion Mappings across Multiple Rounds)構造を持つ行列であると定義する。ただし,||は連結,MはMの転置行列,M−1はMの逆行列を表す。
また、図5を参照して説明した3つの異なる行列をM,M,Mとした場合に{M||M||M},{ −1|| −1},{ −1|| −1},{ −1|| −1}という4つの行列4つの行列のうちどれかひとつでも準最適拡散変換(Sub optimal Diffusion Mappings)である場合、M,M,MはSDM−MR(Sub optimal Diffusion Mappings across Multiple Rounds)構造を持つ行列であると定義する。
なお、3つの異なる行列をM,M,Mとした場合に、ODM−MR、または、SDM−MRを満足させるためには、3つの異なる行列をM,M,Mの配列順は、先に図5を参照して説明した配列順、すなわち、
(a)奇数段にM,M,Mの順に配置
(b)偶数段の最終段からM,M,Mの順に配置
上記(a),(b)の条件を満足するように3つの異なる行列M,M,Mを配列することが条件となる。なお、先に説明したように、M,M,Mの順番は異なっていてもよい。すなわち、奇数段の3連続部分に必ず、M,M,Mの異なる3つの行列が含まれ、偶数段を最終段からみたときにも3連続部分に必ず、M,M,Mの異なる3つの行列が含まれることがODM−MR、または、SDM−MRを満足させる行列配列となり、差分解析などの攻撃に対する耐性を高めることができる条件となる。
また、2つの異なる行列をM,Mとした場合に、ODM−MR、または、SDM−MRを満足させるためには、2つの異なる行列をM,Mの配列順は、先に図4を参照して説明した配列順、すなわち、
(a)奇数段にM,Mの順に配置
(b)偶数段の最終段からM,Mの順に配置
上記(a),(b)の条件を満足するように2つの異なる行列M,Mを配列することが条件となる。なお、先に説明したように、M,Mの順番は逆でもよい。すなわち、奇数段に連続して同一の行列が連続することなく、偶数段を最終段からみたときにも連続して同一の行列が連続することのないことがODM−MR、または、SDM−MRを満足させる行列配列となり、差分解析などの攻撃に対する耐性を高めることができる条件となる。
このように、複数の異なる行列を利用するFeistel型暗号構成において、各ラウンドにおいて適用する線形変換行列の設定をODM−MR構造、あるいはSDM−MR構造とすることで、安全性の高い暗号処理を実現することができる。
[5.複数の異なる変換行列を利用するSP型F関数を持つFeistel型暗号において、ラウンド数の変更を容易にした構成]
次に、複数の異なる変換行列を利用するSP型F関数を持つFeistel型暗号において、ラウンド数の変更を容易にした構成について説明する。
共通鍵ブロック暗号において、その処理ラウンド数(段数)は速度、安全性との間にトレードオフがあるため、柔軟に増減できることが望ましい。一般的にラウンド数(段数)が増加すれば安全性は高くなるが速度は落ち、段数が減少すれば安全性は低くなるが速度が上がるという関係がある。従って、処理速度優先とする場合、あるいは安全性優先とする場合など、その用途に応じて柔軟に処理ラウンド数を変更可能とする構成とすることが望まれる。
また、Feistel型暗号を適用した暗号処理に適用する秘密鍵のサイズに応じて、処理ラウンド数を変更するという要請もある。例えば、暗号処理に適用する秘密鍵のサイズを変更する場合において、十分な安全性を確保するためには、秘密鍵のサイズに合わせて処理ラウンド数を適切に変更することが好ましい。例えば、AES暗号アルゴリズムを実行する場合、適用する秘密鍵のサイズが128ビットのときは10段、192ビットのときは12段、256ビットのときは14段と秘密鍵のサイズと共に処理ラウンド数を変化させ、秘密鍵のサイズ分の鍵構成ビットデータを有効に利用することのできるラウンド数を設定することが要請される。
上述したODM−MR構造やSDM−MR構造を持つ行列を線形変換に適用したSP型F関数を持つFeistel構造共通鍵ブロック暗号を構築する場合にも、前述のインボリューション性を維持することが望ましいが、異なる線形変換行列を含む異なるF関数を配置する際には、先に、図4、図5を参照して説明した制約の下に配置しなければならない。
なお、以下の説明においては、線形変換行列Mを用いたF関数をF、線形変換行列Mを用いたF関数をF、線形変換行列Mを用いたF関数をFと記載することにする。
3つの異なる行列M,M,Mを利用したF関数F,F,Fを利用した場合は、先に図5を参照して説明したように、
(a)奇数ラウンドを上から選択した場合、F,F,F,F,F,・・・の順に配置
(b)偶数ラウンドを下から選択した場合、F,F,F,F,F,・・・の順に配置
上記(a),(b)の条件を満足するように3つの異なる行列M,M,Mを適用したF関数F,F,Fを配置する構成とすることが必要となる。なお、先に説明したように、F,F,Fの順番は異なっていてもよい。すなわち、奇数段の3連続部分に必ず異なる3つの行列M,M,Mを利用したF関数、F,F,Fが含まれ、偶数段を最終段からみたときにも3連続部分に必ず、M,M,Mの異なる3つの行列を適用した異なる3つのF関数、F,F,Fが含まれることがODM−MR、または、SDM−MRを満足させる行列配列となり、差分解析などの攻撃に対する耐性を高めることができる条件となる。
同様に、2つの異なる行列M,Mを利用したF関数F,Fを利用した場合は、先に図4を参照して説明したように、
(a)奇数ラウンドを上から選択した場合、F,F,F,F,F,・・・の順に配置
(b)偶数ラウンドを下から選択した場合、F,F,F,F,F,・・・の順に配置
上記(a),(b)の条件を満足するように2つの異なる行列M,Mを適用したF関数F,Fを配置する構成とすることが必要となる。なお、先に説明したように、F,Fの順番は逆でもよい。すなわち、奇数段に連続して同一の行列が連続することがないように、異なる2つのF関数、F,Fが連続して含まれ、偶数段を最終段からみたときにも連続して同一の行列が連続することがないように、異なる2つのF関数、F,Fが連続して含まれることがODM−MR、または、SDM−MRを満足させる行列配列となり、差分解析などの攻撃に対する耐性を高めることができる条件となる。
さらに、異なる複数の行列を利用したF関数を適用したFeistel型暗号において、インボリューション性、すなわち、先に説明したように、使用するラウンド鍵の使用順序を逆にするだけで暗号化関数と復号関数を同じ回路で行うことができるというインボリューション性を維持するためには、Feistel型暗号の各ラウンドのF関数の上からの配置順と、下からの配置順が同一であることが必要となる。
このように、Feistel型暗号においては、
インボリューション性の維持という条件と、
さらに、複数の異なる線形変換行列を利用した異なるF関数を適用するFeistel型暗号構成とする場合には、その配列についても、上述したようなODM−MR、または、SDM−MRを満足させる行列配列とするという条件が、差分解析などの暗号攻撃に対する耐性を維持するためには必要となる。
複数の異なる線形変換行列を利用した異なるF関数を適用するFeistel型暗号構成では、このような条件を満足させることが必要であり、暗号処理構成を設計する場合は、予めラウンド数を決定し、決定した固定ラウンド数に応じて複数の異なる線形変換行列を持つ異なるF関数の配置を決定するということが行なわれる。この結果、固定したラウンド数においては、インボリューション性、および、ODM−MR、または、SDM−MRを満足させる行列配列という2つの条件を満足させる設計を行なうことができるが、これらのラウンド数の変更に容易に対応しにくいという問題があった。
例えば、6ラウンド(6段)構成として、3つの異なる行列を使用したODM−MR構造Feistel暗号を想定した場合、配置するF関数の順序は、図6に示すような設定とすることが必要である。すなわち、図6に示すように、
上から、
[F→F→F→F→F→F
の設定とすることになる。
また、8段構成のODM−MR構造Feistel暗号の場合、配置するF関数の順序は、図7に示すような設定とすることが必要である。すなわち、図7に示すように、上から
[F→F→F→F→F→F→F→F
の設定とすることになる。
このように、各ラウンド数に対応して個別にインボリューション性とODM−MR、または、SDM−MRを満足させる行列配列という2つの条件を満足させる設計を行なうことができるが、6段構成を8段構成に変更するといったことは容易ではない。すなわち、図6、図7に示すように、6段構成、8段構成のODM−MR構造Feistel暗号は、F関数の順序が大きく異なるため、再利用できる箇所が非常に少ない。例えば、図6に示すような、6段構成のODM−MR構造Feistel暗号をすでに実装しているハードウェアが製造済みであったとする。ここで、図7に示すような8段構成のODM−MR構造Feistel暗号を使用したいといった要請があった場合、図6に示す6段構成のODM−MR構造Feistel暗号のハードウェアはほとんど利用することはできず、新たに、図7に示す8段構成のODM−MR構造Feistel暗号のハードウェアを作成することが必要となるという問題がある。あるいは、処理プログラムとしてのソフトウェアの変更を行なうといった処理が必要となる。
以下、このような処理負担を軽減させる構成例について説明する。すなわち、ODM−MR構造または、SDM−MR構造を持つFeistel暗号処理構成において、処理ラウンド数の増加や減少などのラウンド数の変更を効率的に実行可能とした構成について説明する。
(処理例1)Feistel暗号処理基本ユニットにF関数を追加する処理例
まず、予め設定されたFeistel暗号処理基本ユニット、すなわち、インボリューション性とODM−MR、または、SDM−MRを満足させる行列配列という2つの条件を満足させた構成を持つFeistel暗号処理基本ユニットに対して、F関数を追加することで、ラウンド数を増加させる処理構成について説明する。
一例として、インボリューション性とODM−MR、または、SDM−MRを満足させる行列配列という2つの条件を満足させた構成を持つ6段構成のODM−MR構造Feistel暗号を基本とする暗号処理基本ユニットとする。ここでは、3つの異なる線形変換行列を持つ異なるF関数F,F,Fから構成されるFeistel暗号処理基本ユニットとする。この基本暗号処理基本ユニットは、先に図6を参照して説明したように、F関数の配置は、上から、
[F→F→F→F→F→F
となり、インボリューション性とODM−MR、または、SDM−MRを満足させる行列配列という2つの条件を満足させた構成を持つ。
この6段構成のODM−MR構造Feistel暗号を8ラウンド(段)構成に変更する処理について説明する。6段を8段に変更する場合、図8に示すように、[F→F→F→F→F→F]という配列を持つ6段構成の暗号処理基本ユニット201の上下にそれぞれ[F]というF関数を追加する。
このF関数[F]の追加によって、図8に示すように、Feistel暗号構成は、8ラウンド(段)構成に変更され、F関数の配置順は、上から、
[F→F→F→F→F→F→F→F
という設定となる。
この8段構成の場合、F関数の配置順は、奇数段を上から選択した場合、
[F→F→F→F
となり、偶数段を下からたどって選択した場合、
[F→F→F→F
となっている。
この8段構成のFeistel暗号構成は、各ラウンドのF関数の上からの配置順と、下からの配置順が同一であり、従って、インボリューション性が満足される。さらに、奇数段の3連続部分に必ず異なる3つの行列M,M,Mを利用したF関数、F,F,Fが含まれ、偶数段を最終段からみたときにも3連続部分に必ず、M,M,Mの異なる3つの行列を適用した異なる3つのF関数、F,F,Fが含まれるので、ODM−MR、または、SDM−MRを満足させる行列配列となる。
この場合のF関数の選択条件は、
奇数段の3連続部分に必ず異なる3つの行列M,M,Mを利用したF関数、F,F,Fが含まれ、かつ、偶数段を最終段からみたときにも3連続部分に必ず、M,M,Mの異なる3つの行列を適用した異なる3つのF関数、F,F,Fが含まれる設定となるF関数を選択することである。
この選択条件に基づいて追加するF関数を選択すると、図8に示す6段から8段へのラウンド数追加処理においては、追加するF関数は、F関数[F]となり、6段構成のODM−MR構造Feistel暗号を、インボリーション性および、ODM−MR、または、SDM−MRを満足させる行列配列を持つ8ラウンド(段)構成のFeistel暗号に変更することができる。
さらに、この図8に示すインボリーション性および、ODM−MR、または、SDM−MRを満足させる行列配列を持つ8ラウンド(段)構成のFeistel暗号構成を10段に変更する場合の処理例について、図9を参照して説明する。8段を10段に変更する場合、図9に示すように、[F→F→F→F→F→F→F→F]という配列を持つ8段構成の暗号処理基本ユニット202の上下にそれぞれ[F]というF関数を追加する。
このF関数[F]の追加によって、図9に示すように、Feistel暗号構成は、10ラウンド(段)構成に変更され、F関数の配置順は、上から、
[F→F→F→F→F→F→F→F→F→F
という設定となる。
この10段構成の場合、F関数の配置順は、奇数段を上から選択した場合、
[F→F→F→F→F
となり、偶数段を下からたどって選択した場合、
[F→F→F→F→F
となっている。
この10段構成のFeistel暗号構成は、各ラウンドのF関数の上からの配置順と、下からの配置順が同一であり、従って、インボリューション性が満足される。さらに、奇数段の3連続部分に必ず異なる3つの行列M,M,Mを利用したF関数、F,F,Fが含まれ、偶数段を最終段からみたときにも3連続部分に必ず、M,M,Mの異なる3つの行列を適用した異なる3つのF関数、F,F,Fが含まれるので、ODM−MR、または、SDM−MRを満足させる行列配列となる。
この場合のF関数の選択条件も、6段から8段への変更と同様であり、奇数段の3連続部分に必ず異なる3つの行列M,M,Mを利用したF関数、F,F,Fが含まれ、かつ、偶数段を最終段からみたときにも3連続部分に必ず、M,M,Mの異なる3つの行列を適用した異なる3つのF関数、F,F,Fが含まれる設定となるF関数を選択することである。
この選択条件に基づいて追加するF関数を選択すると、図9に示す8段から10段へのラウンド数追加処理においては、追加するF関数は、F関数[F]となり、8段構成のODM−MR構造Feistel暗号を、インボリーション性および、ODM−MR、または、SDM−MRを満足させる行列配列を持つ10ラウンド(段)構成のFeistel暗号に変更することができる。
このように、予め設定されたインボリーション性および、ODM−MR、または、SDM−MRを満足させる行列配列を持つnラウンド(段)構成のFeistel暗号構成を、n+2ラウンド(段)構成のFeistel暗号構成とする場合、奇数段の3連続部分に必ず異なる3つの行列M,M,Mを利用したF関数、F,F,Fが含まれ、かつ、偶数段を最終段からみたときにも3連続部分に必ず、M,M,Mの異なる3つの行列を適用した異なる3つのF関数、F,F,Fが含まれる設定となるF関数を選択して、上下に追加することで、インボリーション性および、ODM−MR、または、SDM−MRを満足させる行列配列を持つn+2ラウンド(段)構成のFeistel暗号構成を構築することができる。
このような条件を満足するようにF関数の追加処理、すなわち、予め設定されたインボリーション性および、ODM−MR、または、SDM−MRを満足させる行列配列を持つnラウンド(段)構成のFeistel暗号構成ユニットに対して、最上段と最下段のそれぞれに適切なF関数を付加する処理を行なうことで、付加した関数以外の部分は変更する以前の関数をそのまま再利用することが可能であり,2段ごとに効率よく段数の増減が行える.
以上のような処理によって、ODM−MRまたはSDM−MR構造Feistel暗号のインボリューション性を維持したまま、効率よくその処理ラウンド数を2段ごとに増減することが可能になる。また、上下に追加設定したF関数は、順次、上下から1つずつ取り除いても、インボリーション性および、ODM−MR、または、SDM−MRを満足させる行列配列を持つnラウンド(段)構成のFeistel暗号構成ユニットが残り、ラウンドの増加のみならず、当初の暗号処理基本ユニットレベルまでのラウンド数削減にも対応可能である。
なお、上述した処理例では、3つの異なる線形変換行列を持つ3つのF関数F,F,Fが含まれる構成例について説明したが、2つの異なる線形変換行列を持つ2つのF関数F,Fが含まれる構成においても同様の処理によって、ラウンド数の増加が実現できる。
2つの異なる線形変換行列を持つ2つのF関数F,Fが含まれるFeistel暗号構成について、ラウンド数の増加を行なう場合の条件は、以下のようになる。予め設定されたインボリーション性および、ODM−MR、または、SDM−MRを満足させる行列配列を持つnラウンド(段)構成のFeistel暗号構成を、n+2ラウンド(段)構成のFeistel暗号構成とする場合、奇数段の2連続部分に必ず異なる2つの行列M,Mを利用したF関数、F,Fが含まれ、かつ、偶数段を最終段からみたときにも2連続部分に必ず、M,Mの異なる2つの行列を適用した異なる2つのF関数、F,Fが含まれる設定となるF関数を選択して、上下に追加することで、インボリーション性および、ODM−MR、または、SDM−MRを満足させる行列配列を持つn+2ラウンド(段)構成のFeistel暗号構成を構築することができる。
(処理例2)Feistel暗号処理基本ユニットを複数利用する処理例
上述した処理例では、基本となるFeistel暗号処理基本ユニットの上下に、それぞれ1つずつのF関数を追加することで、2ラウンド増加したFeistel暗号処理構成を構築する例を説明した。次に、基本となるFeistel暗号処理基本ユニットを複数、組み合わせることで、ラウンド数の変更を行なう処理例について説明する。
図10を参照して、基本となるFeistel暗号処理基本ユニットを複数、組み合わせることで、ラウンド数の変更を行なう処理例について説明する。図10に示すFeistel暗号処理基本ユニット231,232のそれぞれは、F関数の配置が、上から、
[F→F→F→F→F→F
となり、インボリューション性とODM−MR、または、SDM−MRを満足させる行列配列という2つの条件を満足させた構成を持つ6段構成のFeistel暗号処理基本ユニットである。
図10に示す構成は、この2つの6段Feistel暗号処理基本ユニット231,232を用いて、12段構成のFeistel暗号処理構成を設定したものである。図10に示す12段構成のFeistel暗号構成は、F関数の配置が、上から、
[F→F→F→F→F→F→F→F→F→F→F→F
となる。
この12段構成の場合、F関数の配置順は、奇数段を上から選択した場合、
[F→F→F→F→F→F
となり、偶数段を下からたどって選択した場合、
[F→F→F→F→F→F
となっている。
この12段構成のFeistel暗号構成は、各ラウンドのF関数の上からの配置順と、下からの配置順が同一であり、従って、インボリューション性が満足される。さらに、奇数段の3連続部分に必ず異なる3つの行列M,M,Mを利用したF関数、F,F,Fが含まれ、偶数段を最終段からみたときにも3連続部分に必ず、M,M,Mの異なる3つの行列を適用した異なる3つのF関数、F,F,Fが含まれるので、ODM−MR、または、SDM−MRを満足させる行列配列となる。
図10には、6段のユニットを2つ接続して12段構成のFeistel暗号構成を生成した例を示したが、さらに6段のユニットを3つ、4つ・・と、多数接続することで、同様に18段,24段のFeistel暗号構成、すなわち、ODM−MR構造でかつインボリューション性も保たれたFeistel暗号構成を構成することが可能となる。
このように、インボリューション性とODM−MR、または、SDM−MRを満足させる行列配列という2つの条件を満足させた構成を持つn段のFeistel暗号処理基本ユニットを複数個(k)組み合わせることによって、k×n段のインボリューション性とODM−MR、または、SDM−MRを満足させる行列配列という2つの条件を満足させたFeistel暗号処理構成を構築することができる。
同様に2つの異なる行列M,Mを用いたODM−MRまたはSDM−MR構造Feistel暗号処理構成を暗号処理基本ユニットとして、これを複数、組み合わせることで、ラウンド数の変更を行なう処理例について説明する。図11に示すFeistel暗号処理基本ユニット251,252,253のそれぞれは、F関数の配置が、上から、
[F→F→F→F
となり、インボリューション性とODM−MR、または、SDM−MRを満足させる行列配列という2つの条件を満足させた構成を持つ4段構成のFeistel暗号処理基本ユニットである。
図11に示す構成は、この3つの4段Feistel暗号処理基本ユニット251,252,253を用いて、12段構成のFeistel暗号処理構成を設定したものである。図11に示す12段構成のFeistel暗号構成は、F関数の配置が、上から、
[F→F→F→F→F→F→F→F→F→F→F→F
となる。
この12段構成の場合、F関数の配置順は、奇数段を上から選択した場合、
[F→F→F→F→F→F
となり、偶数段を下からたどって選択した場合、
[F→F→F→F→F→F
となっている。
この12段構成のFeistel暗号構成は、各ラウンドのF関数の上からの配置順と、下からの配置順が同一であり、従って、インボリューション性が満足される。さらに、奇数段の2連続部分に必ず異なる2つの行列M,Mを利用したF関数、F,Fが含まれ、偶数段を最終段からみたときにも2連続部分に必ず、M,Mの異なる2つの行列を適用した異なる2つのF関数、F,Fが含まれるので、ODM−MR、または、SDM−MRを満足させる行列配列となる。
図11には、4段のユニットを3つ接続して12段構成のFeistel暗号構成を生成した例を示したが、さらに4段のユニットを4つ,5つ・・と、多数接続することで、同様に16段,20段のFeistel暗号構成、すなわち、ODM−MR構造でかつインボリューション性も保たれたFeistel暗号構成を構成することが可能となる。
このように、インボリューション性とODM−MR、または、SDM−MRを満足させる行列配列という2つの条件を満足させた構成を持つn段のFeistel暗号処理基本ユニットを複数個(k)組み合わせることによって、k×n段のインボリューション性とODM−MR、または、SDM−MRを満足させる行列配列という2つの条件を満足させたFeistel暗号処理構成を構築することができる。
例えば、ICカードなどの暗号処理を実行する情報処理装置における実装処理においては、例えば図10を参照して説明した6段構成ODM−MR構造Feistel暗号処理基本ユニットを1つだけをハードウェアで実装しておき、使用する回数を選択可能とした処理プログラムを設定して、用途に応じて使用回数を変更するような処理プログラムを実行させる構成とすることで、様々なデータ処理に応じて選択されたラウンド数の暗号処理を実行させることができ、処理ラウンド数の増減を可能とした装置を低コストで実現できる。
具体的な例について、図12を参照して説明する。図12には、暗号処理を実行する。6段構成のFeistel暗号処理基本ユニット270と、スイッチ271〜274を示してある。なお、スイッチ271〜274は、ハードウェアとして設定する構成としてもソフトウェア上でスイッチと同様の処理を実行する制御を行う構成としてもよい。
図12に示す6段構成のFeistel暗号処理基本ユニット270は、先に図6、図10を参照して説明したと同様、F関数の配置が、上から、
[F→F→F→F→F→F
となり、インボリューション性とODM−MR、または、SDM−MRを満足させる行列配列という2つの条件を満足させた構成を持つ6段構成のFeistel暗号処理基本ユニットである。
図示しない制御部の制御によって、スイッチ271〜274が制御される。初期データの入力時には、スイッチ271,272は[a]側に設定され、例えば平文データP,Pが入力され、6段構成のFeistel暗号処理基本ユニット270において6ラウンドのFeistel暗号処理が実行される。処理結果は、スイッチ273,274が[c]側に設定されている場合、出力される。
6ラウンドのFeistel暗号処理を実行する場合は、スイッチ273,274が[c]側に設定され、結果が出力される。例えば12ラウンドの暗号処理を実行する設定の場合、制御部の制御によって、スイッチ273,274は[d]側に設定され、スイッチ271,272は[b]側に設定される。その結果、6段構成のFeistel暗号処理基本ユニット270において実行された6ラウンドの処理結果は、再度、6段構成のFeistel暗号処理基本ユニット270の最上段に入力されて、さらに+6ラウンドのF関数による暗号処理が実行される。
暗号処理が12ラウンドの処理設定である場合は、その後、スイッチ273,274が[c]側に設定され、出力される。さらに18、24・・ラウンドのF関数処理を実行する場合は、スイッチ273,274が[d]に設定されて、予定の処理ラウンドの終了後に、スイッチ273,274が[c]側に設定され、出力されることになる。このように、1つの基本となる暗号処理基本ユニット、すなわち、インボリューション性とODM−MR、または、SDM−MRを満足させる行列配列という2つの条件を満足させた構成を持つn段構成のFeistel暗号処理基本ユニットをICカードなどの暗号処理装置内に構成し、このユニットを利用した処理の繰り返し回数をCPUなどの制御部の実行するプログラムによって選択可能な構成とすることで、それぞれのデータ処理に応じた最適なラウンド数の暗号処理演算を実行することが可能となる。
図13は、2種類の行列を利用した構成例を示している。4段構成のFeistel暗号処理基本ユニット280と、スイッチ281〜2874を示してある。図13に示す3段構成のFeistel暗号処理基本ユニット280は、先に図11を参照して説明したと同様、F関数の配置が、上から、
[F→F→F→F
となり、インボリューション性とODM−MR、または、SDM−MRを満足させる行列配列という2つの条件を満足させた構成を持つ4段構成のFeistel暗号処理基本ユニットである。
図示しない制御部の制御によって、スイッチ281〜284が制御される。初期データの入力時には、スイッチ281,282は[a]側に設定され、例えば平文データP,Pが入力され、4段構成のFeistel暗号処理基本ユニット280においておラウンドのFeistel暗号処理が実行される。処理結果は、スイッチ283,284が[c]側に設定されている場合、出力される。
4ラウンドのFeistel暗号処理を実行する場合は、スイッチ283,284が[c]側に設定され、結果が出力される。例えば8ラウンドの暗号処理を実行する設定の場合、制御部の制御によって、スイッチ283,284は[d]側に設定され、スイッチ281,282は[b]側に設定される。その結果、4段構成のFeistel暗号処理基本ユニット280において実行された4ラウンドの処理結果は、再度、4段構成のFeistel暗号処理基本ユニット280の最上段に入力されて、さらに+4ラウンドのF関数による暗号処理が実行される。
暗号処理が8ラウンドの処理設定である場合は、その後、スイッチ283,284が[c]側に設定され、出力される。さらに12、16・・ラウンドのF関数処理を実行する場合は、スイッチ283,284が[d]に設定されて、予定の処理ラウンドの終了後に、スイッチ283,284が[c]側に設定され、出力されることになる。このように、1つの基本となる暗号処理基本ユニット、すなわち、インボリューション性とODM−MR、または、SDM−MRを満足させる行列配列という2つの条件を満足させた構成を持つn段構成のFeistel暗号処理基本ユニットをICカードなどの暗号処理装置内に構成し、このユニットを利用した処理の繰り返し回数をCPUなどの制御部の実行するプログラムによって選択可能な構成とすることで、それぞれのデータ処理に応じた最適なラウンド数の暗号処理演算を実行することが可能となる。
[6.暗号処理装置の構成例]
次に、暗号処理を実行する暗号処理装置としてのICモジュール300の構成例について、図14を参照して説明する。暗号処理は、例えばPC、ICカード、リーダライタ、その他、様々な情報処理装置において実行可能であり、図14に示すICモジュール300は、暗号処理装置の一例を示すものである。
図14に示すCPU(Central processing Unit)301は、暗号処理の開始や、終了、データの送受信の制御、各構成部間のデータ転送制御、その他の各種プログラムを実行するプロセッサである。メモリ302は、CPU301が実行するプログラム、あるいは演算パラメータなどの固定データを格納するROM(Read-Only-Memory)、CPU301の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用されるRAM(Random Access Memory)等からなる。また、メモリ302は暗号処理に必要な鍵データや、暗号処理において適用する変換テーブル(置換表)や変換行列に適用するデータ等の格納領域として使用可能である。なおデータ格納領域は、耐タンパ構造を持つメモリとして構成されることが好ましい。
暗号処理部303は、例えば上述したFeistel型共通鍵ブロック暗号処理アルゴリズムに従った暗号処理、復号処理を実行する。なお、ここでは、暗号処理手段を個別モジュールとした例を示したが、このような独立した暗号処理モジュールを設けず、例えば暗号処理プログラムをROMに格納し、CPU301がROM格納プログラムを読み出して実行するように構成してもよい。
乱数発生器304は、暗号処理に必要となる鍵の生成などにおいて必要となる乱数の発生処理を実行する。
送受信部305は、外部とのデータ通信を実行するデータ通信処理部であり、例えばリーダライタ等、ICモジュールとのデータ通信を実行し、ICモジュール内で生成した暗号文の出力、あるいは外部のリーダライタ等の機器からのデータ入力などを実行する。
このICモジュール300において、暗号処理部303は、例えば、図12や図13に示す暗号処理基本ユニット、すなわちインボリューション性とODM−MR、または、SDM−MRを満足させる行列配列という2つの条件を満足させた構成を持つn段構成のFeistel暗号処理基本ユニットとし、制御部としてのCPU3−1の実行するプログラムに従って、処理ラウンド数が決定され、決定されたラウンド数のFeistel暗号処理を実行する構成とすることができる。
[7.暗号処理装置製造装置の構成例]
次に、例えば上述した暗号処理装置を製造する製造装置の構成例について、図15を参照して説明する。暗号処理装置を製造する製造装置は、図15に示すように、暗号処理基本ユニット生成部501と、ラウンド数変更部502を有する。
暗号処理基本ユニット生成部501は、先に図1、図2参照して説明した非線形変換処理および線形変換処理を含むデータ変換処理を実行するSP型F関数を複数ラウンド繰り返すFeistel型共通鍵ブロック暗号処理を実行する暗号処理部であり、使用するラウンド鍵の使用順序を逆にするだけで暗号化関数と復号関数を同じ回路で行うことを可能としたインボリューション性を備え、かつ、複数の異なるF関数を予め設定されたF関数配列条件を満足する配列とした暗号処理基本ユニットを生成する。暗号処理基本ユニットは、たとえば、図12、図13を参照して説明した暗号処理基本ユニットである。
ラウンド数変更部502は、暗号処理基本ユニットを適用し、暗号処理装置に設定する暗号処理部のラウンド数に基づいて、前記F関数配列条件を満足するF関数を選択し追加する処理を実行し、暗号処理装置510を製造する。
ラウンド数変更部502は、例えば、図8、図9を参照して説明したように、暗号処理基本ユニットを構成する先頭ラウンドの前、および最終ラウンドの後に、順次1つずつ、前記F関数配列条件を満足するF関数を選択し追加する処理を実行する。あるいは、図10、図11を参照して説明したように、暗号処理基本ユニットを複数ユニット接続して、F関数追加処理を実行する。
なお、上述のF関数配列条件とは、Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンドのF関数が3つの異なる線形変換行列M,M,Mを適用した3種類のF関数F,F,Fを含む構成である場合において、奇数ラウンドを先頭から順次選択した場合、3連続部分に3種類のF関数F,F,Fを含み、偶数ラウンドを最終ラウンドから選択した場合、3連続部分に3種類のF関数F,F,Fを含むという配列条件である。
また、Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンドのF関数が2つの異なる線形変換行列M,Mを適用した2種類のF関数F,Fを含む構成である場合におけるF関数配列条件は、奇数ラウンドを先頭ラウンドから順次選択した場合、2連続部分に2種類のF関数F,Fを含み、偶数ラウンドを最終ラウンドから選択した場合、2連続部分に2種類のF関数F,Fを含むという配列条件である。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
上述したように、本発明の構成によれば、非線形変換部および線形変換部を有するSP型のF関数を複数ラウンド繰り返し実行するFeistel型共通鍵ブロック暗号処理構成において、予め設定されたインボリーション性および、予め設定されたF関数の配列条件としてのODM−MR、または、SDM−MRを満足させる行列配列を持つnラウンド構成のFeistel暗号構成を暗号処理基本ユニットとして構成し、この暗号処理基本ユニットに対して、F関数の配列条件を満足するという条件設定の下に選択したF関数を追加する処理や、あるいは、暗号処理基本ユニットを複数接続する処理によって、インボリーション性および、ODM−MR、または、SDM−MRを満足する配列を持つラウンド数を増加させたFeistel暗号構成を構築することができる。
Feistel構造を持つ代表的な共通鍵ブロック暗号の構成を示す図である。 ラウンド関数部として設定されるF関数の構成について説明する図である。 Feistel型暗号処理におけるインボリューション性を説明する図である。 2つの異なる線形変換行列を利用したFeistel型暗号アルゴリズムについて説明する図である。 3つの異なる線形変換行列を利用したFeistel型暗号アルゴリズムについて説明する図である。 3種類のF関数部を持つ6ラウンド構成のFeistel型暗号アルゴリズムについて説明する図である。 3種類のF関数部を持つ8ラウンド構成のFeistel型暗号アルゴリズムについて説明する図である。 3種類のF関数部を持つFeistel型暗号処理基本ユニットに対するラウンド数追加処理について説明する図である。 3種類のF関数部を持つFeistel型暗号処理基本ユニットに対するラウンド数追加処理について説明する図である。 3種類のF関数部を持つFeistel型暗号処理基本ユニットを複数利用するラウンド数追加処理について説明する図である。 2種類のF関数部を持つFeistel型暗号処理基本ユニットを複数利用するラウンド数追加処理について説明する図である。 3種類のF関数部を持つFeistel型暗号処理基本ユニットを利用した暗号処理装置の制御処理について説明する図である。 2種類のF関数部を持つFeistel型暗号処理基本ユニットを利用した暗号処理装置の制御処理について説明する図である。 本発明に係る暗号処理を実行する暗号処理装置としてのICモジュールの構成例を示す図である。 本発明に係る暗号処理装置製造装置の構成例を示す図である。
符号の説明
101 入力データP(Plain-Left)
102 入力データP(Plain-Right)
103 ラウンド鍵
104 排他的論理和部
120 F関数
121 Sボックス(S−box)
122 線形変換部
201 暗号処理基本ユニット
202 暗号処理基本ユニット
231 暗号処理基本ユニット
232 暗号処理基本ユニット
251 暗号処理基本ユニット
252 暗号処理基本ユニット
253 暗号処理基本ユニット
270 暗号処理基本ユニット
271〜274 スイッチ
280 暗号処理基本ユニット
281〜284 スイッチ
300 ICモジュール
301 CPU(Central processing Unit)
302 メモリ
303 暗号処理部
304 乱数発生器
305 送受信部
501 暗号処理基本ユニット生成部
502 ラウンド数変更部
510 暗号処理装置

Claims (17)

  1. 暗号処理装置であり、
    非線形変換処理および線形変換処理を含むデータ変換処理を実行するSP型F関数を複数ラウンド繰り返すFeistel型共通鍵ブロック暗号処理を実行する暗号処理部であり、使用するラウンド鍵の使用順序を逆にするだけで暗号化関数と復号関数を同じ回路で行うことを可能としたインボリューション性を備え、かつ、複数の異なるF関数を予め設定されたF関数配列条件を満足する配列とした暗号処理基本ユニットを有する暗号処理部と、
    前記暗号処理部に構成された暗号処理基本ユニットの利用回数設定情報に基づいて、前記暗号処理基本ユニットを1回または複数回繰り返し利用する暗号処理演算の実行制御を行う制御部と、
    を有することを特徴とする暗号処理装置。
  2. 前記F関数配列条件は、
    前記Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンドのF関数が3つの異なる線形変換行列M,M,Mを適用した3種類のF関数F,F,Fを含む構成である場合において、
    奇数ラウンドを先頭から順次選択した場合、3連続部分に3種類のF関数F,F,Fを含み、偶数ラウンドを最終ラウンドから選択した場合、3連続部分に3種類のF関数F,F,Fを含むという配列条件であることを特徴とする請求項1に記載の暗号処理装置。
  3. 前記F関数配列条件は、
    前記Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンドのF関数が2つの異なる線形変換行列M,Mを適用した2種類のF関数F,Fを含む構成である場合において、
    奇数ラウンドを先頭ラウンドから順次選択した場合、2連続部分に2種類のF関数F,Fを含み、偶数ラウンドを最終ラウンドから選択した場合、2連続部分に2種類のF関数F,Fを含むという配列条件であることを特徴とする請求項1に記載の暗号処理装置。
  4. 暗号処理装置製造装置であり、
    非線形変換処理および線形変換処理を含むデータ変換処理を実行するSP型F関数を複数ラウンド繰り返すFeistel型共通鍵ブロック暗号処理を実行する暗号処理部であり、使用するラウンド鍵の使用順序を逆にするだけで暗号化関数と復号関数を同じ回路で行うことを可能としたインボリューション性を備え、かつ、複数の異なるF関数を予め設定されたF関数配列条件を満足する配列とした暗号処理基本ユニットを生成する暗号処理基本ユニット生成部と、
    前記暗号処理基本ユニットを適用し、暗号処理装置に設定する暗号処理部のラウンド数に基づいて、前記F関数配列条件を満足するF関数を選択し追加する処理を実行するラウンド数変更部と、
    を有することを特徴とする暗号処理装置製造装置。
  5. 前記F関数配列条件は、
    前記Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンドのF関数が3つの異なる線形変換行列M,M,Mを適用した3種類のF関数F,F,Fを含む構成である場合において、
    奇数ラウンドを先頭から順次選択した場合、3連続部分に3種類のF関数F,F,Fを含み、偶数ラウンドを最終ラウンドから選択した場合、3連続部分に3種類のF関数F,F,Fを含むという配列条件であることを特徴とする請求項4に記載の暗号処理装置製造装置。
  6. 前記F関数配列条件は、
    前記Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンドのF関数が2つの異なる線形変換行列M,Mを適用した2種類のF関数F,Fを含む構成である場合において、
    奇数ラウンドを先頭ラウンドから順次選択した場合、2連続部分に2種類のF関数F,Fを含み、偶数ラウンドを最終ラウンドから選択した場合、2連続部分に2種類のF関数F,Fを含むという配列条件であることを特徴とする請求項4に記載の暗号処理装置製造装置。
  7. 前記ラウンド数変更部は、
    前記暗号処理基本ユニットを構成する先頭ラウンドの前、および最終ラウンドの後に、順次1つずつ、前記F関数配列条件を満足するF関数を選択し追加する処理を実行する構成であることを特徴とする請求項4に記載の暗号処理装置製造装置。
  8. 前記ラウンド数変更部は、
    前記暗号処理基本ユニットを複数ユニット接続して、F関数追加処理を実行する構成であることを特徴とする請求項4に記載の暗号処理装置製造装置。
  9. 暗号処理方法であり、
    非線形変換処理および線形変換処理を含むデータ変換処理を実行するSP型F関数を複数ラウンド繰り返すFeistel型共通鍵ブロック暗号処理を実行する暗号処理ステップであり、使用するラウンド鍵の使用順序を逆にするだけで暗号化関数と復号関数を同じ回路で行うことを可能としたインボリューション性を備え、かつ、複数の異なるF関数を予め設定されたF関数配列条件を満足する配列とした暗号処理基本ユニットを利用した暗号処理を実行する暗号処理ステップと、
    前記暗号処理部に構成された暗号処理基本ユニットの利用回数設定情報に基づいて、前記暗号処理基本ユニットを1回または複数回繰り返し利用する暗号処理演算の実行制御を行う制御ステップと、
    を有することを特徴とする暗号処理方法。
  10. 前記F関数配列条件は、
    前記Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンドのF関数が3つの異なる線形変換行列M,M,Mを適用した3種類のF関数F,F,Fを含む構成である場合において、
    奇数ラウンドを先頭から順次選択した場合、3連続部分に3種類のF関数F,F,Fを含み、偶数ラウンドを最終ラウンドから選択した場合、3連続部分に3種類のF関数F,F,Fを含むという配列条件であることを特徴とする請求項9に記載の暗号処理方法。
  11. 前記F関数配列条件は、
    前記Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンドのF関数が2つの異なる線形変換行列M,Mを適用した2種類のF関数F,Fを含む構成である場合において、
    奇数ラウンドを先頭ラウンドから順次選択した場合、2連続部分に2種類のF関数F,Fを含み、偶数ラウンドを最終ラウンドから選択した場合、2連続部分に2種類のF関数F,Fを含むという配列条件であることを特徴とする請求項9に記載の暗号処理方法。
  12. 暗号処理装置製造方法であり、
    非線形変換処理および線形変換処理を含むデータ変換処理を実行するSP型F関数を複数ラウンド繰り返すFeistel型共通鍵ブロック暗号処理を実行する暗号処理部であり、使用するラウンド鍵の使用順序を逆にするだけで暗号化関数と復号関数を同じ回路で行うことを可能としたインボリューション性を備え、かつ、複数の異なるF関数を予め設定されたF関数配列条件を満足する配列とした暗号処理基本ユニットを生成する暗号処理基本ユニット生成ステップと、
    前記暗号処理基本ユニットを適用し、暗号処理装置に設定する暗号処理部のラウンド数に基づいて、前記F関数配列条件を満足するF関数を選択し追加する処理を実行するラウンド数変更ステップと、
    を有することを特徴とする暗号処理装置製造方法。
  13. 前記F関数配列条件は、
    前記Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンドのF関数が3つの異なる線形変換行列M,M,Mを適用した3種類のF関数F,F,Fを含む構成である場合において、
    奇数ラウンドを先頭から順次選択した場合、3連続部分に3種類のF関数F,F,Fを含み、偶数ラウンドを最終ラウンドから選択した場合、3連続部分に3種類のF関数F,F,Fを含むという配列条件であることを特徴とする請求項12に記載の暗号処理装置製造方法。
  14. 前記F関数配列条件は、
    前記Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンドのF関数が2つの異なる線形変換行列M,Mを適用した2種類のF関数F,Fを含む構成である場合において、
    奇数ラウンドを先頭ラウンドから順次選択した場合、2連続部分に2種類のF関数F,Fを含み、偶数ラウンドを最終ラウンドから選択した場合、2連続部分に2種類のF関数F,Fを含むという配列条件であることを特徴とする請求項12に記載の暗号処理装置製造方法。
  15. 前記ラウンド数変更ステップは、
    前記暗号処理基本ユニットを構成する先頭ラウンドの前、および最終ラウンドの後に、順次1つずつ、前記F関数配列条件を満足するF関数を選択し追加する処理を実行するステップであることを特徴とする請求項12に記載の暗号処理装置製造方法。
  16. 前記ラウンド数変更ステップは、
    前記暗号処理基本ユニットを複数ユニット接続して、F関数追加処理を実行するステップであることを特徴とする請求項12に記載の暗号処理装置製造方法。
  17. 暗号処理装置において暗号処理を実行させるコンピュータ・プログラムであり、
    暗号処理部において、非線形変換処理および線形変換処理を含むデータ変換処理を実行するSP型F関数を複数ラウンド繰り返すFeistel型共通鍵ブロック暗号処理を実行する暗号処理ステップであり、使用するラウンド鍵の使用順序を逆にするだけで暗号化関数と復号関数を同じ回路で行うことを可能としたインボリューション性を備え、かつ、複数の異なるF関数を予め設定されたF関数配列条件を満足する配列とした暗号処理基本ユニットを利用した暗号処理を実行する暗号処理ステップと、
    制御部において、前記暗号処理部に構成された暗号処理基本ユニットの利用回数設定情報に基づいて、前記暗号処理基本ユニットを1回または複数回繰り返し利用する暗号処理演算の実行制御を行う制御ステップと、
    を実行させることを特徴とするコンピュータ・プログラム。
JP2006014910A 2006-01-24 2006-01-24 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム Pending JP2007199156A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2006014910A JP2007199156A (ja) 2006-01-24 2006-01-24 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム
PCT/JP2007/050010 WO2007086243A1 (ja) 2006-01-24 2007-01-04 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム
EP07706357A EP1978496A4 (en) 2006-01-24 2007-01-04 ENCRYPTION / DECRYPTION DEVICE, ENCRYPTION DEVICE / DECRYPTION DEVICE, METHOD AND COMPUTER PROGRAM
US12/161,898 US20090010425A1 (en) 2006-01-24 2007-01-04 Encryption/decryption device, encryption/decryption device manufacturing device, and method, and computer program
CN200780003386.XA CN101375323B (zh) 2006-01-24 2007-01-04 密码处理装置、密码处理装置制造装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006014910A JP2007199156A (ja) 2006-01-24 2006-01-24 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム

Publications (1)

Publication Number Publication Date
JP2007199156A true JP2007199156A (ja) 2007-08-09

Family

ID=38309042

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006014910A Pending JP2007199156A (ja) 2006-01-24 2006-01-24 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム

Country Status (5)

Country Link
US (1) US20090010425A1 (ja)
EP (1) EP1978496A4 (ja)
JP (1) JP2007199156A (ja)
CN (1) CN101375323B (ja)
WO (1) WO2007086243A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009093601A1 (ja) 2008-01-21 2009-07-30 Sony Corporation データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
WO2010024247A1 (ja) 2008-08-25 2010-03-04 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにプログラム
WO2010024248A1 (ja) 2008-08-25 2010-03-04 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにプログラム
US8619976B2 (en) 2007-12-13 2013-12-31 Nec Corporation Encryption method, decryption method, device, and program

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4561252B2 (ja) * 2004-09-03 2010-10-13 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
JP5200949B2 (ja) 2009-01-16 2013-06-05 富士通株式会社 暗号処理装置
JP5682525B2 (ja) 2011-03-28 2015-03-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP5652363B2 (ja) 2011-03-28 2015-01-14 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP5682526B2 (ja) 2011-03-28 2015-03-11 ソニー株式会社 データ処理装置、およびデータ処理方法、並びにプログラム
JP5682527B2 (ja) 2011-03-28 2015-03-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
US20130067212A1 (en) * 2011-09-14 2013-03-14 Augustin J. Farrugia Securing implementation of cryptographic algorithms using additional rounds
US10341090B2 (en) * 2014-10-14 2019-07-02 Sony Corporation Cipher processing apparatus and cipher processing method

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03129384A (ja) * 1989-07-20 1991-06-03 Nippon Telegr & Teleph Corp <Ntt> 暗号装置
JPH04170576A (ja) * 1990-11-02 1992-06-18 Hitachi Ltd 暗号化処理装置、及び復号化処理装置
JPH09230788A (ja) * 1996-02-23 1997-09-05 Sony Corp 暗号化方法および暗号化装置
JPH11119648A (ja) * 1997-10-15 1999-04-30 Matsushita Electric Ind Co Ltd データ暗号化装置
JP2003345244A (ja) * 2002-05-23 2003-12-03 Mitsubishi Electric Corp データ変換装置及びデータ変換方法及びデータ変換プログラム及びデータ変換プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2005107078A (ja) * 2003-09-30 2005-04-21 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2164768C (en) * 1995-12-08 2001-01-23 Carlisle Michael Adams Constructing symmetric ciphers using the cast design procedure
US5949884A (en) * 1996-11-07 1999-09-07 Entrust Technologies, Ltd. Design principles of the shade cipher
US6185679B1 (en) * 1998-02-23 2001-02-06 International Business Machines Corporation Method and apparatus for a symmetric block cipher using multiple stages with type-1 and type-3 feistel networks
FR2851862B1 (fr) * 2003-02-27 2006-12-29 Radiotelephone Sfr Procede de generation d'une permutation pseudo-aleatoire d'un mot comportant n digits
JP2005313842A (ja) 2004-04-30 2005-11-10 Ichikoh Ind Ltd 車両用照明装置
JP4905000B2 (ja) * 2006-09-01 2012-03-28 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03129384A (ja) * 1989-07-20 1991-06-03 Nippon Telegr & Teleph Corp <Ntt> 暗号装置
JPH04170576A (ja) * 1990-11-02 1992-06-18 Hitachi Ltd 暗号化処理装置、及び復号化処理装置
JPH09230788A (ja) * 1996-02-23 1997-09-05 Sony Corp 暗号化方法および暗号化装置
JPH11119648A (ja) * 1997-10-15 1999-04-30 Matsushita Electric Ind Co Ltd データ暗号化装置
JP2003345244A (ja) * 2002-05-23 2003-12-03 Mitsubishi Electric Corp データ変換装置及びデータ変換方法及びデータ変換プログラム及びデータ変換プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2005107078A (ja) * 2003-09-30 2005-04-21 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8619976B2 (en) 2007-12-13 2013-12-31 Nec Corporation Encryption method, decryption method, device, and program
WO2009093601A1 (ja) 2008-01-21 2009-07-30 Sony Corporation データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
WO2010024247A1 (ja) 2008-08-25 2010-03-04 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにプログラム
WO2010024248A1 (ja) 2008-08-25 2010-03-04 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにプログラム

Also Published As

Publication number Publication date
EP1978496A1 (en) 2008-10-08
WO2007086243A1 (ja) 2007-08-02
CN101375323A (zh) 2009-02-25
EP1978496A4 (en) 2011-06-08
US20090010425A1 (en) 2009-01-08
CN101375323B (zh) 2011-01-26

Similar Documents

Publication Publication Date Title
JP2007199156A (ja) 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム
JP5055993B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4622807B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5050454B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4967544B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
KR101364192B1 (ko) 암호처리장치, 암호처리 알고리즘 구축방법 및 암호처리방법과 컴퓨터·프로그램
JP4961909B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4905000B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4622222B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2007192893A (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4561252B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2008058830A (ja) データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP5682525B2 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
JP2008058829A (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2001324924A (ja) 暗号化装置及び暗号化方法、復号装置及び復号方法並びに演算装置
JP5680016B2 (ja) 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム
JP5772934B2 (ja) データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP5338945B2 (ja) 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム
JP5223245B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110628

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110825

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110920