(57)【要約】【課題】通信信号など攻撃者が傍受可能なデータから暗号化を行う装置の内部を把握することを比較的困難にする。【解決手段】暗号化装置は、送信対象のデータに対して非線形変換を行う第１非線形変換部からの出力と、内部状態値に対して非線形変換を行う第２非線形変換部からの出力との排他的論理和に対して非線形変換の逆変換を行う送信側逆非線形変換部と、送信側逆非線形変換部からの出力に対して非線形変換を行った後に線形変換を行い暗号化された通信データとして出力する送信側変換テーブル部とを備える。復号化装置は、送信側変換テーブル部と同じ変換を行う受信側変換テーブル部と、受信側変換テーブル部の出力と暗号化装置からの暗号化された通信データとの排他的論理和を算出する受信側排他的論理和部と、受信側排他的論理和部からの出力を受けて送信側変換テーブル部の変換に対する逆変換を行う受信側逆変換テーブル部と、を備える。【選択図】図２
2019003144.tif 000002
【特許請求の範囲】
【請求項１】
暗号化装置と復号化装置とを備え、
前記暗号化装置は、
送信対象のデータに対して非線形変換を行う第１非線形変換部と、
内部状態値に対して非線形変換を行う第２非線形変換部と、
前記第１非線形変換部からの出力と前記第２非線形変換部からの出力との排他的論理和を算出する送信側排他的論理和部と、
前記送信側排他的論理和部からの出力に対して前記非線形変換の逆変換を行う送信側逆非線形変換部と、
前記送信側逆非線形変換部からの出力に対して前記非線形変換を行った後に線形変換を行い暗号化された通信データとして出力する送信側変換テーブル部と、
を備え、
前記復号化装置は、
前記送信側変換テーブル部と同じ変換を行う受信側変換テーブル部と、
前記受信側変換テーブル部の出力と前記暗号化装置からの暗号化された通信データとの排他的論理和を算出する受信側排他的論理和部と、
前記受信側排他的論理和部からの出力を受けて前記送信側変換テーブル部の変換に対する逆変換を行う受信側逆変換テーブル部と、
を備える、
暗号通信システム。
【請求項２】
前記第１非線形変換部は、送信対象のデータと１つ前のクロックタイミングの前記送信側変換テーブル部からの出力との排他的論理和に対して非線形変換を行う、
請求項１に記載の暗号通信システム。
【請求項３】
前記暗号化装置は、
前記内部状態値に対して非線形変換を行う非線形変換部からの出力に対して、前記送信側変換テーブル部と同じ処理を行う第二送信側変換テーブル部と、
前記送信側変換テーブル部からの出力と前記第二送信側変換テーブル部からの出力との排他的論理和を算出する第二排他的論理和部と、
を備える請求項１に記載の暗号通信システム。
【請求項４】
送信対象のデータに対して非線形変換を行う第１非線形変換部と、
内部状態値に対して非線形変換を行う第２非線形変換部と、
前記第１非線形変換部からの出力と前記第２非線形変換部からの出力との排他的論理和を算出する送信側排他的論理和部と、
前記送信側排他的論理和部からの出力に対して前記非線形変換の逆変換を行う送信側逆非線形変換部と、
前記送信側逆非線形変換部からの出力に対して前記非線形変換を行った後に線形変換を行い暗号化された通信データとして出力する送信側変換テーブル部と、
を備える暗号化装置。
【請求項５】
送信対象のデータに対して非線形変換を行う第１非線形変換ステップと、
内部状態値に対して非線形変換を行う第２非線形変換ステップと、
前記第１非線形変換ステップでの出力と前記第２非線形変換ステップでの出力との排他的論理和を算出する送信側排他的論理和算出ステップと、
前記送信側排他的論理和算出ステップでの出力に対して前記非線形変換の逆変換を行う送信側逆非線形変換ステップと、
前記送信側逆非線形変換ステップでの出力に対して前記非線形変換を行った後に線形変換を行い暗号化された通信データとして出力する送信側変換テーブル処理ステップと、
を含む暗号化方法。
【請求項６】
コンピュータに、
送信対象のデータに対して非線形変換を行う第１非線形変換ステップと、
内部状態値に対して非線形変換を行う第２非線形変換ステップと、
前記第１非線形変換ステップでの出力と前記第２非線形変換ステップでの出力との排他的論理和を算出する送信側排他的論理和算出ステップと、
前記送信側排他的論理和算出ステップでの出力に対して前記非線形変換の逆変換を行う送信側逆非線形変換ステップと、
前記送信側逆非線形変換ステップでの出力に対して前記非線形変換を行った後に線形変換を行い暗号化された通信データとして出力する送信側変換テーブル処理ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号通信システム、暗号化装置、暗号化方法及びプログラムに関する。
【背景技術】
【０００２】
データの暗号化に関して幾つかの技術が提案されている。
例えば、特許文献１に記載の暗号装置は、正規データ列と異なる疑似データ列を処理ブロックへ入力し、補正データによって疑似データ列を補正して正規データ列を得る。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２３６１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
暗号装置が暗号の解読のために攻撃される場合がある。この場合、通信信号など攻撃者が傍受可能なデータから暗号装置の内部を把握することが困難であることが要求される。
【０００５】
本発明は、通信信号など攻撃者が傍受可能なデータから暗号装置の内部を把握することが比較的困難である暗号通信システム、暗号化装置、暗号化方法及びプログラムを提供する。
【課題を解決するための手段】
【０００６】
本発明の第１の態様によれば、暗号通信システムは、暗号化装置と復号化装置とを備え、前記暗号化装置は、送信対象のデータに対して非線形変換を行う第１非線形変換部と、内部状態値に対して非線形変換を行う第２非線形変換部と、前記第１非線形変換部からの出力と前記第２非線形変換部からの出力との排他的論理和を算出する送信側排他的論理和部と、前記送信側排他的論理和部からの出力に対して前記非線形変換の逆変換を行う送信側逆非線形変換部と、前記送信側逆非線形変換部からの出力に対して前記非線形変換を行った後に線形変換を行い暗号化された通信データとして出力する送信側変換テーブル部と、を備え、前記復号化装置は、前記送信側変換テーブル部と同じ変換を行う受信側変換テーブル部と、前記受信側変換テーブル部の出力と前記暗号化装置からの暗号化された通信データとの排他的論理和を算出する受信側排他的論理和部と、前記受信側排他的論理和部からの出力を受けて前記送信側変換テーブル部の変換に対する逆変換を行う受信側逆変換テーブル部と、備える。
【０００７】
前記第１非線形変換部は、送信対象のデータと１つ前のクロックタイミングの前記送信側変換テーブル部からの出力との排他的論理和に対して非線形変換を行う、ようにしてもよい。
【０００８】
前記暗号化装置は、前記内部状態値に対して非線形変換を行う非線形変換部からの出力に対して、前記送信側変換テーブル部と同じ処理を行う第二送信側変換テーブル部と、前記送信側変換テーブル部からの出力と前記第二送信側変換テーブル部からの出力との排他的論理和を算出する第二排他的論理和部と、を備えるようにしてもよい。
【０００９】
本発明の第２の態様によれば、暗号化装置は、送信対象のデータに対して非線形変換を行う第１非線形変換部と、内部状態値に対して非線形変換を行う第２非線形変換部と、前記第１非線形変換部からの出力と前記第２非線形変換部からの出力との排他的論理和を算出する送信側排他的論理和部と、前記送信側排他的論理和部からの出力に対して前記非線形変換の逆変換を行う送信側逆非線形変換部と、前記送信側逆非線形変換部からの出力に対して前記非線形変換を行った後に線形変換を行い暗号化された通信データとして出力する送信側変換テーブル部と、を備える。
【００１０】
本発明の第３の態様によれば、暗号化方法は、送信対象のデータに対して非線形変換を行う第１非線形変換ステップと、内部状態値に対して非線形変換を行う第２非線形変換ステップと、前記第１非線形変換ステップでの出力と前記第２非線形変換ステップでの出力との排他的論理和を算出する送信側排他的論理和算出ステップと、前記送信側排他的論理和算出ステップでの出力に対して前記非線形変換の逆変換を行う送信側逆非線形変換ステップと、前記送信側逆非線形変換ステップでの出力に対して前記非線形変換を行った後に線形変換を行い暗号化された通信データとして出力する送信側変換テーブル処理ステップと、を含む。
【００１１】
本発明の第４の態様によれば、プログラムは、コンピュータに、送信対象のデータに対して非線形変換を行う第１非線形変換ステップと、内部状態値に対して非線形変換を行う第２非線形変換ステップと、前記第１非線形変換ステップでの出力と前記第２非線形変換ステップでの出力との排他的論理和を算出する送信側排他的論理和算出ステップと、前記送信側排他的論理和算出ステップでの出力に対して前記非線形変換の逆変換を行う送信側逆非線形変換ステップと、前記送信側逆非線形変換ステップでの出力に対して前記非線形変換を行った後に線形変換を行い暗号化された通信データとして出力する送信側変換テーブル処理ステップと、を実行させるためのプログラムである。
【発明の効果】
【００１２】
本発明によれば、通信信号など攻撃者が傍受可能なデータから暗号化を行う装置の内部を把握することを比較的困難にすることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１実施形態に係る暗号通信システムの機器構成を示す概略構成図である。
【図２】同実施形態に係る暗号化装置の機能構成を示す概略構成図である。
【図３】同実施形態に係るＳ層部が備える変換テーブルの例を示す図である。
【図４】同実施形態に係るＳ−１層部が備える変換テーブルの例を示す図である。
【図５】同実施形態に係る復号化装置の機能構成を示す概略構成図である。
【図６】同実施形態に係る２つのＳ層部の出力の排他的論理和に対してＰ層部による変換を行う構成の例を示す図である。
【図７】同実施形態に係る２つのＳ層部の出力それぞれに対してＰ層部による変換を行った後に排他的論理和をとる構成の例を示す図である。
【図８】図２及び図５に示される構成と等価な構成の例を示す図である。
【図９】図８に示される構成と等価な構成の例を示す図である。
【図１０】本発明の第２実施形態に係る暗号通信システムの機器構成を示す概略構成図である。
【図１１】同実施形態に係る暗号化装置の機能構成を示す概略構成図である。
【図１２】同実施形態に係る復号化装置の機能構成を示す概略構成図である。
【図１３】同実施形態に係る暗号通信システムの構成と等価な暗号通信システムの構成の例を示す図である。
【図１４】本発明の第３実施形態に係る暗号通信システムの機器構成を示す概略構成図である。
【図１５】同実施形態に係る暗号化装置の機能構成を示す概略構成図である。
【図１６】同実施形態に係る復号化装置の機能構成を示す概略構成図である。
【図１７】同実施形態に係る暗号化装置が行う処理の手順をクロックタイミングｔ＝０からｔ＝２までの範囲について示す図である。
【図１８】同実施形態に係る復号化装置が行う処理の手順をクロックタイミングｔ＝０からｔ＝２までの範囲について示す図である。
【図１９】図１７及び１８に示されるｆ関数の内容の例を示す図である。
【図２０】本発明の第４実施形態に係る暗号通信システムの機器構成を示す概略構成図である。
【図２１】同実施形態に係る暗号化装置の機能構成を示す概略構成図である。
【図２２】同実施形態に係るｆ関数におけるＴ層の第１の構成例を示す図である。
【図２３】同実施形態に係るｆ関数におけるＴ層の第２の構成例を示す図である。
【図２４】同実施形態に係る復号化装置の機能構成を示す概略構成図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１５】
＜第１実施形態＞
図１は、本発明の第１実施形態に係る暗号通信システムの機器構成を示す概略構成図である。図１に示すように、暗号通信システム１０は、暗号化装置１１と、復号化装置１２とを備える。
暗号化装置１１は、通信対象のデータを暗号化して送信する。
復号化装置１２は、暗号化装置１１が暗号化したデータを受信して復号化する。
【００１６】
図２は、暗号化装置１１の機能構成を示す概略構成図である。
暗号化装置１１は、平文の通信データを３２ビット（ｂｉｔ）のストリームデータにて取得する。ここでいう通信データは、暗号通信システム１０で送受信の対象となるデータである。また、ここでいう平文とは、暗号化されていないデータである。
以下では、ストリームデータにて得られる平文の通信データをＰ（ｔ）と表記する。ここで、ｔはクロックタイミングを示すインデックスであり、ｔ≧０の整数値をとる。
【００１７】
ＭＫは、マスター鍵（Master Key）を示す。排他的論理和部１１１は、平文の通信データＰ（ｔ）とマスター鍵ＭＫとの排他的論理和（exclusive or）を算出する。排他的論理和部１１１の出力は、ｔ＋１のタイミングでの暗号化装置１１の内部状態の値Ｒ（ｔ＋１）として記憶される。ここでいう内部状態の値は、装置外部への出力対象となっていない値である。例えば、ここでいう内部状態の値は３２ビットのレジスタの値であってもよい。この内部状態の値はクロックタイミングと共に変化するため、「Ｒ（ｔ＋１）」のようにクロックタイミングを示す添え字が付されている。内部状態の値を内部状態値とも表記する。
【００１８】
Ｓ層部１１２は、排他的論理和部１１１の出力に対して非線形変換による換字処理を行う。Ｓ層部１１２は、共通鍵暗号におけるＳボックス（Substitution Box；Ｓ−ｂｏｘ）として機能する。
例えば、Ｓ層部１１２が変換テーブルを記憶しておき、変換テーブルに基づいて非線形変換を行う。
図３は、Ｓ層部１１２が備える変換テーブルの例を示す図である。図３の例で、変換テーブルの行は上位４ビットの値に対応し、列は下位４ビットの値に対応する。Ｓ層部１１２は、この変換テーブルを参照して、Ｓ層部１１２に入力される３２ビットのデータを８ビット毎に変換する。
【００１９】
Ｓ層部１１３は、暗号化装置１１の内部状態の値Ｒ（ｔ−１）に対してＳ層部１１２と同じ非線形変換を行う。例えば、Ｓ層部１１３は、Ｓ層部１１２と同じ変換テーブルを記憶しておき、内部状態の値である３２ビットデータに対してＳ層部１１２と同じ非線形変換を行う。
ＩＶ（ｔ＝０）は、初期値を示す。ここでいう初期値は、暗号化装置１１の内部状態の値の初期値（時刻ｔ＝０のタイミングでの値）である。例えば、暗号化装置１１の内部状態の値は上記のようにレジスタの値であってもよく、初期値は、ｔ＝０のときにレジスタの値の代わりに用いられる初期値であってもよい。
排他的論理和部１１４は、Ｓ層部１１２の出力とＳ層部１１３の出力との排他的論理和を算出する。
【００２０】
Ｓ−１層部１１５は、Ｓ層部１１２が行う非線形変換に対する逆変換による逆換字処理を行う。
例えば、Ｓ−１層部１１５が変換テーブルを記憶しておき、変換テーブルに基づいて変換を行う。
図４は、Ｓ−１層部１１５が備える変換テーブルの例を示す図である。図４の例で、変換テーブルの行は上位４ビットの値に対応し、列は下位４ビットの値に対応する。Ｓ−１層部１１５は、この変換テーブルを参照して、Ｓ−１層部１１５に入力される３２ビットのデータを８ビット毎に変換する。
【００２１】
３２ビットテーブル部１１６は、変換テーブルを備え、３２ビットテーブル部１１６に入力される３２ビットのデータを変換する。
３２ビットテーブル部１１６は、Ｓ層部１１７、Ｐ層部１１８、及び、排他的論理和部１１９で表される変換を行う。Ｓ層部１１７は、Ｓ層部１１２と同じ非線形変換を行う。Ｐ層部１１８は、線形変換を行う。Ｐ層部１１８が行う線形変換は、ＭＤＳ（Maximum Distance Separation）変換によるデータ撹拌として機能する。式（１）は、Ｐ層部１１８が行う線形変換の例を示す。
【００２２】
【数１】
2019003144.tif 000003
【００２３】
ここで、ａ０〜ａ３の各々は、８ビットのデータを示す。ａ０〜ａ３全体で３２ビットのデータを示す。同様に、ｃ０〜ｃ３の各々は、８ビットのデータを示す。ｃ０〜ｃ３全体で３２ビットのデータを示す。行列内の２桁の数の各々は、８ビットのデータの値を示している。
排他的論理和部１１９は、Ｐ層部１１８と、ＣＳＴとの排他的論理和を算出する。ここで、ＣＳＴは、Ｐ層部が行う変換における特異点を回避するための定数である。
【００２４】
暗号化装置１１は、３２ビットテーブル部１１６の出力を、３２ビットのストリーム暗号による送信データとして復号化装置１２へ送信する。３２ビットテーブル部１１６の出力は、排他的論理和部１１９の出力に相当する。
暗号化装置１１の出力（送信データ）をＣ’（ｔ）で示している。
【００２５】
図５は、復号化装置１２の機能構成を示す概略構成図である。
復号化装置１２は、暗号化装置１１からの３２ビットのストリーム暗号を受信して復号化することで、３２ビットのストリームデータによる平文の通信データＰ（ｔ）を取得し出力する。
３２ビットテーブル部１５１の機能は、図２の３２ビットテーブル部１１６の機能と同様であり、説明を省略する。３２ビットテーブル部１５１が行う変換を示すＳ層部１５２、Ｐ層部１５３、及び、排他的論理和部１５４の機能についても、図２のＳ層部１１７、Ｐ層部１１８、及び、排他的論理和部１１９の機能と同様である。
３２ビットテーブル部１５１は、復号化装置１２の内部状態の値ＲＣ（ｔ−１）の入力を受けて変換する。ＲＣ（ｔ−１）は、３２ビットデータにて示される。
なお、ＩＶＣ（ｔ＝０）は、内部状態の値ＲＣ（ｔ−１）の初期値を示す。
【００２６】
排他的論理和部１５５は、暗号化装置１１の出力Ｃ’（ｔ）と、３２ビットテーブル部１５１の出力と、ＣＳＴとの排他的論理和を算出する。
３２ビットテーブル部１５６は、変換テーブルを備え、図２の３２ビットテーブル部１１６が行う変換に対する逆変換を行う。
３２ビットテーブル部１５６は、排他的論理和部１５７、Ｐ−１層部１５８、及び、Ｓ−１層部１５９で表される変換を行う。排他的論理和部１５７は、３２ビットテーブル部１５６への入力とＣＳＴとの排他的論理和を算出する。排他的論理和部１５７が行う変換は、排他的論理和部１１９が行う変換に対する逆変換に相当する。Ｐ−１層部１５８は、Ｐ層部１１８が行う変換に対する逆変換を行う。Ｓ−１層部１５９は、Ｓ層部１１７が行う変換に対する逆変換を行う。
式（２）は、Ｐ−１層部１５８が行う線形変換の例を示す。
【００２７】
【数２】
2019003144.tif 000004
【００２８】
ここで、式１の場合と同様、ａ０〜ａ３の各々は、８ビットのデータを示す。ａ０〜ａ３全体で３２ビットのデータを示す。また、ｃ０〜ｃ３の各々は、８ビットのデータを示す。ｃ０〜ｃ３全体で３２ビットのデータを示す。行列内の２桁の数の各々は、８ビットのデータの値を示している。
排他的論理和部１６０は、３２ビットテーブル部１５６の出力とＭＫとの排他的論理和を算出する。これにより、排他的論理和部１６０は、ストリームデータにて得られる平文の通信データＰ（ｔ）を出力する。
【００２９】
ここで、図２及び図５に示される構成の変形について考える。
図２のＳ−１層部１１５が行う変換とＳ層部１１７が行う変換とは逆変換の関係にあるので、暗号化装置１１の構成は、Ｓ−１層部１１５及びＳ層部１１７を除いた構成と等価である。ここでいう構成が等価とは、同じ入力に対する出力が同じになることである。
また、Ｐ層部は線形変換を行うので、図６に示される構成と図７に示される構成とは等価である。
図６は、２つのＳ層部の出力の排他的論理和に対してＰ層部による変換を行う構成の例を示す図である。図６の２つのＳ層部への入力をそれぞれＡ、Ｂと表記すると、図６の構成の出力は式（３）のように表される。
【００３０】
【数３】
2019003144.tif 000005
【００３１】
ここで、Ｓ層部が行う変形を関数Ｓで示す。この変換は非線形変換である。また、排他的論理和部が行う演算を演算子ＸＯＲで示す。また、Ｐ層部が行う変形を関数Ｐで示す。この変換は線形変換である。
図７は、２つのＳ層部の出力それぞれに対してＰ層部による変換を行った後に排他的論理和をとる構成の例を示す図である。図７の２つのＳ層部への入力を図６の場合と同様にそれぞれＡ、Ｂと表記すると、図７の構成の出力は式（４）のように表される。
【００３２】
【数４】
2019003144.tif 000006
【００３３】
図８は、図２及び図５に示される構成と等価な構成の例を示す図である。図８における各部のうち図２または図５の各部に対応して同様の機能を有する部分には同一の符号（１１１〜１１４、１１９、１５１〜１６０）を付して説明を省略する。図８の構成では、図２及び図５に示される構成からＳ−１層部１１５及びＳ層部１１７を除いている。また、図２の排他的論理和部１１４及びＰ層部１１８に、図６と図７との関係を適用して、図８の排他的論理和部１１４、Ｐ層部１１８ａ及び１１８ｂとしている。
【００３４】
図８に示される構成で、内部状態の値Ｒ（ｔ−１）とＲＣ（ｔ−１）とは同じ値をとる。そうすると、Ｓ層部１１３、Ｐ層部１１８ｂ及び排他的論理和部１１９を経由したデータと、Ｓ層部１５２、Ｐ層部１５３及び排他的論理和部１５４を経由したデータとが同じ値になり、排他的論理和部１５５で互いに打ち消し合う。
【００３５】
図９は、図８に示される構成と等価な構成の例を示す図である。図８に示される構成からＳ層部１１３、Ｐ層部１１８ｂ、排他的論理和部１１９、Ｓ層部１５２、Ｐ層部１５３及び排他的論理和部１５４を除き、Ｓ層部１１２、Ｐ層部１１８ａ及び排他的論理和部１５５を３２ビットテーブル部に纏めて、図９に示される構成を得られる。
図９に示される構成は、平文にマスターキーによる処理及び変換テーブル（３２ビットテーブル部）による処理を行ったデータを送信している点で、ＥＣＢモード（Electronic Codebook Mode）を利用した一般的な構成となっている。
【００３６】
図９に示される構成の場合、暗号を不正に解読しようとする攻撃者は、暗号化された送信データであるＣ（ｔ）を傍受できれば、比較的容易に３２ビットテーブル部１１１２又は１１５１の内容を把握することができる。
これに対して、図２及び図５に示される構成の場合、暗号化装置１１は、Ｃ（ｔ）の送信は行わず、内部状態の値Ｒ（ｔ−１）をＳ層部１１３で非線形変換したデータを用いて処理したＣ’（ｔ）を送信する。そして、復号化装置１２の内部でＣ’（ｔ）からＣ（ｔ）を生成し、３２ビットテーブルを用いてＣ（ｔ）からＰ（ｔ）を復号化する。これにより、図２及び図５に示される構成では、攻撃者がＣ’（ｔ）を傍受しても、図９に示される構成で３２ビットテーブル部１１１２又は１１５１の内容を把握する場合と比較して、３２ビットテーブル部１１６（図２）、１５１（図５）又は１５６（図５）の内容を把握することが困難である。
【００３７】
ここで、Ｓ層部１１２及び１１３は、２つの非線形変換部の例に該当し、それぞれデータに対して非線形変換を行う。Ｓ層部１１２は、第１非線形変換部の例に該当し、Ｓ層部１１３は第２非線形変換部の例に該当する。排他的論理和部１１４は、送信側排他的論理和部の例に該当し、Ｓ層部１１２及び１１３からの出力の排他的論理和を算出する。Ｓ−１層部１１５は、送信側逆非線形変換部の例に該当し、排他的論理和部１１４からの出力に対して非線形変換の逆変換を行う。３２ビットテーブル部１１６は、送信側変換テーブル部の例に該当し、Ｓ−１層部１１５からの出力に対して非線形変換を行った後に線形変換を行い暗号化された通信データとして出力する。具体的には、３２ビットテーブル部１１６は、Ｓ−１層部１１５からの出力に対して非線形変換を行った後に線形変換を行う処理を含む処理と等価な処理を、変換テーブルを用いて行う。
【００３８】
３２ビットテーブル部１５１は、受信側変換テーブル部の例に該当し、送信側変換テーブル部と同じ変換を行う。排他的論理和部１５５は、受信側排他的論理和部の例に該当し、３２ビットテーブル部１５１の出力と暗号化装置１１からの暗号化された通信データとの排他的論理和を算出する。３２ビットテーブル部１５６は、受信側逆変換テーブル部の例に該当し、排他的論理和部１５５からの出力を受けて３２ビットテーブル部１１６の変換に対する逆変換を行う。
また、Ｓ層部１１２及び１１３のうちＳ層部１１２は、送信対象のデータに対して非線形変換を行う。Ｓ層部１１３は、内部状態値に対して非線形変換を行う。
【００３９】
＜第２実施形態＞
図１０は、本発明の第２実施形態に係る暗号通信システムの機器構成を示す概略構成図である。図１０に示すように、暗号通信システム２０は、暗号化装置２１と、復号化装置２２とを備える。
暗号化装置２１は、通信対象のデータを暗号化して送信する。
復号化装置２２は、暗号化装置２１が暗号化したデータを受信して復号化する。
【００４０】
図１１は、暗号化装置２１の機能構成を示す概略構成図である。図１１における各部のうち、図２の各部に対応して同様の機能を有する部分には同一の符号（１１１〜１１９）を付して説明を省略する。
図１１の構成では、２つの内部状態の値Ｒ０及びＲ１を用いている点、及び、排他的論理和部２１１が、Ｐ（ｔ）とＲ０（ｔ−１）との排他的論理和を算出する点で、図２の場合と異なる。図１のＳ層部１１２は、送信対象のデータと１つ前のクロックタイミングの送信側変換テーブル部（３２ビットテーブル部１１６）からの出力との排他的論理和に対して非線形変換を行う。
なお、ＩＶ０（ｔ＝０）は、内部状態の値Ｒ０（ｔ−１）の初期値を示す。ＩＶ１（ｔ＝０）は、内部状態の値Ｒ１（ｔ−１）の初期値を示す。
【００４１】
図１２は、復号化装置２２の機能構成を示す概略構成図である。図１２における各部のうち、図５の各部に対応して同様の機能を有する部分には同一の符号（１５１〜１６０）を付して説明を省略する。
図１２の構成では、内部状態の値としてＲ０及びＲ１を用いている点、及び、排他的論理和部２５１が、排他的論理和部１６０の出力とＲ０（ｔ−１）との排他的論理和を算出する点で、図５の場合と異なる。
【００４２】
図１３は、暗号通信システム２０の構成と等価な暗号通信システムの構成の例を示す図である。図１１及び図１２に示される構成から以下のようにして、図１３に示される構成を得られる。
まず、図２及び図５と図９との関係の場合と同様、図１１に示される構成からＳ−１層部１１５及びＳ層部１１７を除く。
また、図２及び図５と図９との関係の場合と同様、図１１の排他的論理和部１１４及びＰ層部１１８に図６と図７との関係を適用して変形し、さらに、図８から図９を得る場合と同様の変形を行って、図１３に示される構成を得られる。
図１３に示される構成は、平文に、内部状態の値による処理、マスターキーによる処理及び変換テーブル（３２ビットテーブル部）による処理を行ったデータを送信している点で、ＣＢＣモード（Cipher Block Chaining Mode）を利用した一般的な構成となっている。
【００４３】
図１３に示される構成の場合、攻撃者は、Ｃ（ｔ）を連続して傍受できれば、比較的容易に３２ビットテーブル部１１１２又は１１５１の内容を把握することができる。
これに対して、図１１及び図１２に示される構成の場合、暗号化装置２１は、Ｃ（ｔ）の送信は行わず、内部状態の値Ｒ０（ｔ−１）によるデータ、及び、内部状態の値Ｒ１（ｔ−１）をＳ層部１１３で非線形変換したデータを用いて処理したＣ’（ｔ）を送信する。そして、復号化装置２２がＣ’（ｔ）からＣ（ｔ）を生成し、３２ビットテーブルを用いてＣ（ｔ）からＰ（ｔ）を復号化する。これにより、図１１及び図１２に示される構成では、攻撃者がＣ’（ｔ）を傍受しても、図１３に示される構成の場合と比較して３２ビットテーブル部１１６、１５１又は１５６の内容を把握することが困難である。
なお、図１１で暗号化装置２１の出力Ｃ’（ｔ）の値は、Ｐ（ｔ）の値が変化しない場合でもクロックタイミングと共に変化する。この点で、暗号化装置２１では、その出力値から内部構成を推定することが困難である。
【００４４】
＜第３実施形態＞
図１４は、本発明の第３実施形態に係る暗号通信システムの機器構成を示す概略構成図である。図１４に示すように、暗号通信システム３０は、暗号化装置３１と、復号化装置３２とを備える。
暗号化装置３１は、通信対象のデータを暗号化して送信する。
復号化装置３２は、暗号化装置３１が暗号化したデータを受信して復号化する。
【００４５】
図１５は、暗号化装置３１の機能構成を示す概略構成図である。図１５における各部のうち、図２の各部に対応して同様の機能を有する部分には同一の符号（１１２〜１１９）を付して説明を省略する。
図１５の構成では、マスター鍵ＭＫを用いていない点、内部状態の値としてＲＰ及びＲＣを用いている点、排他的論理和部３１１がＲＰ（ｔ−１）とＲＣ（ｔ−１）との排他的論理和を算出する点、３２ビットテーブル部３１２が、Ｓ層部１１３からの出力に対して変換を行う点、及び、排他的論理和部３１６が、３２ビットテーブル部１１６からの出力と３２ビットテーブル部３１２からの出力との排他的論理和を算出する点で、図２の場合と異なる。但し、図１５の構成で、マスター鍵ＭＫを用いるようにしてもよい。その場合、例えば平文Ｐ（ｔ）とＭＫとの排他的論理和をとった後、Ｓ層部１１２へ入力する。
なお、ＩＶＰ（ｔ＝０）は、内部状態の値ＲＰ（ｔ−１）の初期値を示す。ＩＶＣ（ｔ＝０）は、内部状態の値ＲＣ（ｔ−１）の初期値を示す。
【００４６】
図１６は、復号化装置３２の機能構成を示す概略構成図である。図１６における各部のうち、図５の各部に対応して同様の機能を有する部分には同一の符号（１５１〜１５９）を付して説明を省略する。
図１６の構成では、内部状態の値としてＲＰ及びＲＣを用いている点、排他的論理和部３５１が、ＲＰ（ｔ−１）とＲＣ（ｔ−１）との排他的論理和を算出する点、Ｓ層部３５２が、排他的論理和部３５１からの出力を変換した後に、３２ビットテーブル部３５４がＳ層部３５２からの出力に対して変換を行う点、３２ビットテーブル部３５４が、Ｓ層部３５２からの出力に対して変換を行う点、排他的論理和部３５３が、Ｃ’（ｔ）と３２ビットテーブル部３５４からの出力との排他的論理和を算出し、排他的論理和部３５８が、排他的論理和部１５５からの出力と、排他的論理和部３５３からの出力との排他的論理和を算出する点で、図５の場合と異なる。
【００４７】
図１５及び図１６に示す構成では、ＣＢＣモードで使用する内部状態の値ＲＣ（ｔ）に加えてＲＰ（ｔ）を併用する。かつ、暗号化を行う内部状態に相当する値と、ＣＢＣモードにおける復号化を行う内部状態に相当する値とで、異なる値を使う。これにより、Ｃ’（ｔ）の値は、Ｐ（ｔ）の値は変化しない場合でもクロックタイミングと共に変化する。この点で、暗号化装置３１では、その出力値から内部構成を推定することが困難である。
図１５の排他的論理和部１１４及び３１６の出力が、暗号化を行う内部状態に相当する値の例に該当する。排他的論理和部３５３及び３５８の出力が、復号化を行う内部状態に相当する値の例に該当する。
【００４８】
また、図１５及び図１６に示す構成では、暗号化装置３１は、Ｃ（ｔ）を送信する代わりに、Ｃ’（ｔ）を送信する。この点で、暗号化装置がＣ（ｔ）を送信する場合と比較して、攻撃者が３２ビットテーブルの内容を把握することが困難である。
また、攻撃者が、暗号化された通信データを傍受するだけでなく、暗号回路を手に入れて入力と出力との差にて攻撃を行うことも考えられる。これに対し、図１５及び図１６に示す構成では、内部状態に平文と暗号文の排他的論理和を使用することにより、攻撃者に回路を手に入れられても、攻撃者がマスターキーを入手することを防げる可能性がある。図１５の排他的論理和部３１１、及び、図１６の排他的論理和部３５１が、この排他的論理和の例に該当する。
【００４９】
図１７は、暗号化装置３１が行う処理の手順をクロックタイミングｔ＝０からｔ＝２までの範囲について示す図である。図１７では、内部状態の値ＲＰ（ｔ）とＲＣ（ｔ）との排他的論理和をＲ（ｔ）と表記している。また、Ｓ層部が行う処理、Ｓ−１層部が行う処理をそれぞれＳ、Ｓ−１で表記している。また、３２ビットテーブル部が行う処理をｆで表記している。
【００５０】
図１７に示されるように、暗号化装置３１は、内部状態の値の初期値ＩＶ１（ｔ＝０）及びＩＶ２（ｔ＝０）に基づいてクロックタイミングｔ＝０における処理を行う。また、暗号化装置３１は、クロックタイミングｔ＝０で得られた内部状態の値から算出したＲ（１）に基づいて、クロックタイミングｔ＝１における処理を行う。また、暗号化装置３１は、クロックタイミングｔ＝１で得られた内部状態の値から算出したＲ（２）に基づいて、クロックタイミングｔ＝２における処理を行う。
【００５１】
図１８は、復号化装置３２が行う処理の手順をクロックタイミングｔ＝０からｔ＝２までの範囲について示す図である。図１７の場合と同様、図１８では、内部状態の値ＲＰ（ｔ）とＲＣ（ｔ）との排他的論理和をＲ（ｔ）と表記している。また、Ｓ層部が行う処理をそれぞれＳで表記している。また、３２ビットテーブル部が行う処理をｆ及びｆ−１で表記している。具体的には、図１６の３２ビットテーブル部１５１及び３５４が行う処理をｆで表記し、３２ビットテーブル部１５６が行う処理をｆ−１で表記している。
【００５２】
図１８に示されるように、復号化装置３２は、内部状態の値の初期値ＩＶ１（ｔ＝０）及びＩＶ２（ｔ＝０）に基づいてクロックタイミングｔ＝０における処理を行う。また、復号化装置３２は、クロックタイミングｔ＝０で得られた内部状態の値Ｒ（１）に基づいて、クロックタイミングｔ＝１における処理を行う。また、復号化装置３２は、クロックタイミングｔ＝１で得られた内部状態の値Ｒ（２）に基づいて、クロックタイミングｔ＝２における処理を行う。
【００５３】
図１９は、図１７及び１８にてｆで表記した３２ビットテーブル部が行う処理の内容の例を示す図である。図１９では、３２ビットテーブル部が行う処理を、ｆ関数という名称の関数として表記している。図１９の例で、ｆ関数は、８ビットのデータｘ０〜ｘ３の各々の入力を受けることで、３２ビットのデータの入力を受ける。
ｆ関数に入力されたデータをＴ層が８ビット単位で転置を行い、Ｓ層（非線形層）が８ビット単位で置き換えを行う。さらにＳ層からのデータに対し、Ｐ層（線形層）が３２ビット単位で行列計算を行う。その後、排他的論理和部がＰ層からの出力とＣＳＴとの排他的論理和を算出する。排他的論理和部の各々は、８ビットのデータを出力する。ｆ関数は、８ビットのデータｙ０〜ｙ３の組み合わせにて３２ビットのデータを出力する。３２ビットテーブル部は、変換テーブルを用いてｆ関数の機能を実行する。
なお、図２〜図１８の３２ビットテーブルが行う処理は、Ｔ層が入力されたデータｘ０〜ｘ３をそのままｂ０〜ｂ３に出力する場合の処理の例に該当する。
【００５４】
ここで、３２ビットテーブル部３１２は、第二送信側変換テーブルの例に該当し、内部状態値に対して非線形変換を行うＳ層部１１３からの出力に対して、３２ビットテーブル部１１６と同じ処理を行う。排他的論理和部３１６は、第二排他的論理和部の例に該当し、３２ビットテーブル部１１６からの出力と３２ビットテーブル部３１２からの出力との排他的論理和を算出する。
【００５５】
＜第４実施形態＞
図２０は、本発明の第４実施形態に係る暗号通信システムの機器構成を示す概略構成図である。図２０に示すように、暗号通信システム４０は、暗号化装置４１と、復号化装置４２とを備える。
暗号化装置４１は、通信対象のデータを暗号化して送信する。
復号化装置４２は、暗号化装置４１が暗号化したデータを受信して復号化する。
【００５６】
図２１は、暗号化装置４１の機能構成を示す概略構成図である。図２１に示すように、暗号化装置４１は、それぞれ３２ビットのデータを処理する２つの系統を用いて６４ビットのデータを暗号化する。
図２１の各部のうち、排他的論理和部４１１及び４３１は、いずれも図１５の排他的論理和部３１１に対応する。Ｓ層部４１２及び４３２は、いずれもＳ層部１１２に対応する。Ｓ層部４１３及び４３３は、いずれもＳ層部１１３に対応する。排他的論理和部４１４及び４３４は、いずれも排他的論理和部１１４に対応する。Ｓ−１層部４１５及び４３５は、いずれもＳ−１層部１１５に対応する。これら、図１５の部分に対応して同様の機能を有する部分については、説明を省略する。
【００５７】
また、３２ビットテーブル部４１６、４１７、４１８、４３６及び４３７は、いずれも図１９を参照して説明したｆ関数の処理を行う。
図２２は、ｆ関数におけるＴ層の第１の構成例を示す図である。図２２に示すＴ層の構成Ｔ１では、入力されたデータｘ０’〜ｘ３’をそのままｂ０〜ｂ３に出力する。Ｔ層に入力されるデータｘ０’〜ｘ３’は、３２ビットテーブル部に入力されるデータｘ０〜ｘ３に対応する。
図２１で「ｆ１」と表記されている３２ビットテーブル部４１６、４１８及び４３７では、Ｔ層は図２２のＴ１の構成になっている。
【００５８】
図２３は、ｆ関数におけるＴ層の第２の構成例を示す図である。図２３に示すＴ層の構成Ｔ２では、入力されたデータｘ０’、ｘ１’ 、ｘ２’、ｘ３’をそれぞれｂ１、ｂ２、ｂ３、ｂ０に出力する。
図２１で「ｆ２」と表記されている３２ビットテーブル部４１７及び４３６では、Ｔ層は図２３のＴ２の構成になっている。
図２１の排他的論理和部４１９は、平文の入力データの一部であるＰ１（ｔ）と、３２ビットテーブル部４１６との排他的論理和を算出する。排他的論理和部４２０は、排他的論理和部４１９の出力と、３２ビットテーブル部４１７の出力との排他的論理和を算出する。排他的論理和部４２０の出力は、暗号化された送信データの一部であるＣ’１（ｔ）として暗号化装置４１から復号化装置４２へ送信される。排他的論理和部４２１は、３２ビットテーブル部４１７からの出力と、３２ビットテーブル部及び４１８からの出力との排他的論理和を算出する。
【００５９】
排他的論理和部４２２は、排他的論理和部４２０からの出力と、排他的論理和部４２１からの出力との排他的論理和を算出する。
排他的論理和部４３８は、平文の入力データの一部であるＰ０（ｔ）と、３２ビットテーブル部４３６との排他的論理和を算出する。排他的論理和部４３９は、排他的論理和部４３８の出力と、３２ビットテーブル部４３７の出力との排他的論理和を算出する。排他的論理和部４３９の出力は、暗号化された送信データの一部であるＣ’０（ｔ）として暗号化装置４１から復号化装置４２へ送信される。
【００６０】
図２４は、復号化装置４２の機能構成を示す概略構成図である。図２１に示すように、復号化装置４２は、それぞれ３２ビットのデータを処理する２つの系統を用いて６４ビットのデータを復号化する。
図２４の各部のうち、排他的論理和部４５１及び４６１は、いずれも図１６の排他的論理和部３５１に対応する。Ｓ層部４５２及び４６２は、いずれもＳ層部３５２に対応する。３２ビットテーブル部４５３及び４６３は、いずれも３２ビットテーブル部３５４に対応する。
【００６１】
排他的論理和部４５４は、暗号化装置４１からの受信データの一部であるＣ’０（ｔ）と、３２ビットテーブル部４５３との排他的論理和を算出する。排他的論理和部４６４は、暗号化装置４１からの受信データの一部であるＣ’１（ｔ）と、３２ビットテーブル部４６３との排他的論理和を算出する。３２ビットテーブル部４５５及び４６５は、いずれも３２ビットテーブル部１５１に対応する。
排他的論理和部４５６は、３２ビットテーブル部４５５からの出力と、ＣＳＴとの排他的論理和を算出する。排他的論理和部４６６は、３２ビットテーブル部４６５からの出力と、ＣＳＴとの排他的論理和を算出する。排他的論理和部４５７は、排他的論理和部４５４からの出力と、排他的論理和部４５６からの出力との排他的論理和を算出する。排他的論理和部４６７は、排他的論理和部４６４からの出力と、排他的論理和部４６６からの出力との排他的論理和を算出する。
【００６２】
３２ビットテーブル部４７１は、排他的論理和部４６７の出力に対して変換を行う。排他的論理和部４７２は、排他的論理和部４５７の出力と、３２ビットテーブル部４７１からの出力との排他的論理和を算出する。排他的論理和部４７２の出力は、復号化された通信データの一部であるデータＰ０（ｔ）を構成する。
３２ビットテーブル部４７３は、排他的論理和部４７２の出力に対して変換を行う。排他的論理和部４７４は、排他的論理和部４６７の出力と、３２ビットテーブル部４７３からの出力との排他的論理和を算出する。排他的論理和部４７４の出力は、復号化された通信データの一部であるデータＰ１（ｔ）を構成する。
図２２に示される３２ビットテーブル部のうち、３２ビットテーブル部４５３、４５５、４６５及び４７３では、図１９を参照して説明したｆ関数のＴ層が、図２２のＴ１の構成になっている。一方、３２ビットテーブル部４６３及び４７１では、ｆ関数のＴ層が、図２３のＴ２の構成になっている。
【００６３】
以上のように、Ｓ層部１１２及び１１３は、データに対して非線形変換を行う。Ｓ層部１１２は、送信対象に御データに対して非線形変換を行う。Ｓ層部１１３は、内部状態値に対して非線形変換を行う。排他的論理和部１１４は、Ｓ層部１１２及び１１３からの出力の排他的論理和を算出する。Ｓ−１層部１１５は、排他的論理和部１１４からの出力に対して非線形変換の逆変換を行う。３２ビットテーブル部１１６は、送信側逆非線形変換部からの出力に対して非線形変換を行った後に線形変換を行い暗号化された通信データとして出力する。３２ビットテーブル部１５１は、３２ビットテーブル部１１６と同じ変換を行う。排他的論理和部１５５は、３２ビットテーブル部１５１の出力と暗号化装置１１からの暗号化された通信データとの排他的論理和を算出する。３２ビットテーブル部１５６は、排他的論理和部１５５からの出力を受けて送信側変換テーブル部の変換に対する逆変換を行う。
【００６４】
これにより、暗号通信システム１０では、平文の通信データを３２ビットテーブル部で変換したデータ（図９のＣ（ｔ））の送信に代えて、平文の通信データに対して排他的論理和部１１４による変換を行った後に３２ビットテーブル部で変換したデータ（図２のＣ’（ｔ））を送信する。この点で暗号通信システム１０によれば、攻撃者がＣ’（ｔ）を傍受しても、図９に示される構成の場合と比較して３２ビットテーブル部１５１又は１５６の内容を把握することが困難である。このように、暗号通信システム１０によれば、通信信号など攻撃者が傍受可能なデータから暗号化を行う装置の内部を把握することを比較的困難にすることができる。
暗号通信システム２０、３０及び４０についても同様である。
【００６５】
また、暗号通信システム１０では、平文の通信データを３２ビットテーブル部で変換したデータ（図９のＣ（ｔ））の送信に代えて、平文の通信データに対して内部状態値による変換を行った後に３２ビットテーブル部で変換したデータ（図２のＣ’（ｔ））を送信する。この点で暗号通信システム１０によれば、攻撃者がＣ’（ｔ）を傍受しても、図９に示される構成の場合と比較して３２ビットテーブル部１５１又は１５６の内容を把握することが困難である。このように、暗号通信システム１０によれば、通信信号など攻撃者が傍受可能なデータから暗号化を行う装置の内部を把握することを比較的困難にすることができる。
暗号通信システム２０、３０及び４０についても同様である。
【００６６】
また、暗号化装置２１のＳ層部１１２は、送信対象のデータと１つ前のクロックタイミングの送信側変換テーブル部（３２ビットテーブル部１１６）からの出力との排他的論理和に対して非線形変換を行う。
暗号化装置２１では、このように３２ビットテーブル部１１６からの出力を、クロックタイミングをずらして用いて暗号化に反映させることで、通信信号など攻撃者が傍受可能なデータから暗号化を行う装置の内部を把握することを比較的困難にすることができる。
【００６７】
また、３２ビットテーブル部３１２は、Ｓ層部１１３からの出力に対して、３２ビットテーブル部１１６と同じ処理を行う。排他的論理和部３１６は、３２ビットテーブル部１１６からの出力と３２ビットテーブル部３１２からの出力との排他的論理和を算出する。
これにより、暗号通信システム３０では、攻撃者に対して３２ビットテーブル部の内容をより確実に隠すことができる。
【００６８】
なお、暗号通信システム１０、２０、３０及び４０が実行する機能の全部又は一部を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００６９】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【００７０】
１０、２０、３０，４０  暗号通信システム
１１、２１、３１、４１  暗号化装置
１２、２２、３２、４２  復号化装置
１１１、１１４、１１９、１５４、１５５、１５７、１６０  排他的論理和部
１１２、１１３、１１７、１５２  Ｓ層部
１１５、１５９  Ｓ−１層部
１１６、１５１、１５６  ３２ビットテーブル部
１１８、１５３  Ｐ層部
１５８  Ｐ−１層部
【図１】
2019003144.tif 000007
【図２】
2019003144.tif 000008
【図３】
2019003144.tif 000009
【図４】
2019003144.tif 000010
【図５】
2019003144.tif 000011
【図６】
2019003144.tif 000012
【図７】
2019003144.tif 000013
【図８】
2019003144.tif 000014
【図９】
2019003144.tif 000015
【図１０】
2019003144.tif 000016
【図１１】
2019003144.tif 000017
【図１２】
2019003144.tif 000018
【図１３】
2019003144.tif 000019
【図１４】
2019003144.tif 000020
【図１５】
2019003144.tif 000021
【図１６】
2019003144.tif 000022
【図１７】
2019003144.tif 000023
【図１８】
2019003144.tif 000024
【図１９】
2019003144.tif 000025
【図２０】
2019003144.tif 000026
【図２１】
2019003144.tif 000027
【図２２】
2019003144.tif 000028
【図２３】
2019003144.tif 000029
【図２４】
2019003144.tif 000030