(57)【要約】【課題】  従来技術では、４バイト単位での変換を前提とするものであるところ、存在する情報の種類が「２の３２乗」通りであることになり、「２の３２乗」の予め分かっている情報を入力して変換結果を見るという方法により検証すれば、暗号化の変換内容を特定することが現実的に可能であるという問題を抱えるものであった。そこで、本発明は、暗号化単位を工夫することによって、暗号の解読を事実上不可能にする暗号化装置を提供する。【解決手段】  情報を暗号化して暗号化情報とする暗号化装置であって、情報を取得する情報取得部と、取得した情報を後述する変換部にて変換する単位である１６バイト単位の単位化情報に単位化する変換用単位化部と、変換用単位化部にて単位化された単位化情報を一つの一次式では表現できない関数にて変換することで変換済単位化情報とする変換部と、からなる暗号化装置を開発した。【選択図】図１
2016127405.tif 000002
【特許請求の範囲】
【請求項１】
情報を暗号化して暗号化情報とする暗号化装置であって、
情報を取得する情報取得部と、
取得した情報を後述する変換部にて変換する単位である１６バイト単位の単位化情報に単位化する変換用単位化部と、
変換用単位化部にて単位化された単位化情報を一つの一次式では表現できない関数にて変換することで変換済単位化情報とする変換部と、
からなる暗号化装置。
【請求項２】
変換部にて得られた全ての変換済単位化情報を結合することで暗号化情報とする暗号化情報結合部をさらに有する請求項１に記載の暗号化装置。
【請求項３】
変換部は、同一の変換についての順変換と逆変換を隣接する原変換に対して複合させた複合変換を実行する複合変換手段を含む請求項１又は２に記載の暗号化装置。
【請求項４】
変換部は、入力値に対して前記順変換を複合した前段による演算結果である前方変換結果の複数について排他的論理和処理をした後に前記逆変換を複合した後段による変換処理を前記入力値と同数得る変換処理を実行する排他的論理和処理手段を有する請求項３に記載の暗号化装置。
【請求項５】
変換部は、一次式では表現できない変換入力と変換出力との関係を定めるテーブルである変換テーブルを用いて変換を行うための変換手段を保持する請求項１から４のいずれか一に記載の暗号化装置。
【請求項６】
変換部は、変換部にて実行されるべき複数の変換処理の一部に対してのみ変換テーブルを適用するテーブル適用手段を有する請求項５に記載の暗号化装置。
【請求項７】
変換部は、複数の処理段に対して適用すべきテーブルを動的に制御する適用テーブル制御手段をさらに有する請求項５又は６に記載の暗号化装置。
【請求項８】
変換部は、入力値に対して適用すべきテーブルの適用位置を動的に制御する適用位置制御手段をさらに有する請求項５から７のいずれか一に記載の暗号化装置。
【請求項９】
請求項１から８のいずれか一に記載の暗号化装置によって暗号化された暗号化情報を復号して情報とする復号化装置であって、
暗号化情報を取得する暗号化情報取得部と、
取得した暗号化情報を後述する逆変換部にて変換する単位である１６バイト単位の単位化暗号化情報に単位化する逆変換用単位化部と、
逆変換用単位化部にて単位化された単位化暗号化情報を前記変換部の変換とは逆変換することで逆変換済単位化情報とする逆変換部と、
逆変換部にて得られた全ての逆変換済単位化情報を結合することで暗号化情報の元となる情報である元情報とする元情報結合部と、
からなる復号化装置。
【請求項１０】
情報を暗号化して暗号化情報とする暗号化プログラムであって、
情報を取得する情報取得ステップと、
取得した情報を後述する変換ステップにて変換する単位である１６バイト単位の単位化情報に単位化する変換用単位化ステップと、
変換用単位化ステップにて単位化された単位化情報を一つの一次式では表現できない関数にて変換することで変換済単位化情報とする変換ステップと、
からなる計算機に読取実行可能な暗号化プログラム。
【請求項１１】
変換ステップにて得られた全ての変換済単位化情報を結合することで暗号化情報とする暗号化情報結合ステップをさらに有する請求項１０に記載の暗号化プログラム。
【請求項１２】
変換ステップは、同一の変換についての順変換と逆変換を隣接する原変換に対して複合させた複合変換を実行する複合変換サブステップを含む請求項１０又は１１に記載の暗号化プログラム。
【請求項１３】
変換ステップは、入力値に対して前記順変換を複合した前段による演算結果である前方変換結果の複数について排他的論理和処理をした後に前記逆変換を複合した後段による変換処理を前記入力値と同数得る変換処理を実行する排他的論理和処理サブステップを有する請求項１２に記載の暗号化プログラム。
【請求項１４】
変換ステップは、一次式では表現できない変換入力と変換出力との関係を定めるテーブルである変換テーブルを用いて変換を行うための変換サブステップを保持する請求項１０から１３のいずれか一に記載の暗号化プログラム。
【請求項１５】
変換ステップは、変換ステップにて実行されるべき複数の演算処理の一部に対してのみ変換テーブルを適用するテーブル適用サブステップを有する請求項１４に記載の暗号化プログラム。
【請求項１６】
変換ステップは、複数の処理段に対して適用すべきテーブルを動的に制御する適用テーブル制御サブステップをさらに有する請求項１４又は１５に記載の暗号化プログラム。
【請求項１７】
変換ステップは、入力値に対して適用すべきテーブルの適用位置を動的に制御する適用位置制御サブステップをさらに有する請求項１４から１６のいずれか一に記載の暗号化プログラム。
【請求項１８】
請求項１０から１７のいずれか一に記載の暗号化プログラムによって暗号化された暗号化情報を復号して情報とする復号化プログラムであって、
暗号化情報を取得する暗号化情報取得ステップと、
取得した暗号化情報を後述する逆変換ステップにて変換する単位である１６バイト単位の単位化暗号化情報に単位化する逆変換用単位化ステップと、
逆変換用単位化ステップにて単位化された単位化暗号化情報を前記変換ステップの変換とは逆変換することで逆変換済単位化情報とする逆変換ステップと、
逆変換ステップにて得られた全ての逆変換済単位化情報を結合することで暗号化情報の元となる情報である元情報とする元情報結合ステップと、
からなる計算機に読取実行可能な復号化プログラム。
【請求項１９】
情報を暗号化して暗号化情報とする暗号化方法であって、
情報を取得する情報取得ステップと、
取得した情報を後述する変換ステップにて変換する単位である１６バイト単位の単位化情報に単位化する変換用単位化ステップと、
変換用単位化ステップにて単位化された単位化情報を一つの一次式では表現できない関数にて変換することで変換済単位化情報とする変換ステップと、
からなる計算機にて実行させる暗号化方法。
【請求項２０】
変換ステップにて得られた全ての変換済単位化情報を結合することで暗号化情報とする暗号化情報結合ステップをさらに有する請求項１９に記載の暗号化方法。
【請求項２１】
変換ステップは、同一の変換についての順変換と逆変換を隣接する原変換に対して複合させた複合変換を実行する複合変換サブステップを含む請求項１９又は２０に記載の暗号化方法。
【請求項２２】
変換ステップは、入力値に対して前記順変換を複合した前段による演算結果である前方変換結果の複数について排他的論理和処理をした後に前記逆変換を複合した後段による変換処理を前記入力値と同数得る変換処理を実行する排他的論理和処理サブステップを有する請求項２１に記載の暗号化方法。
【請求項２３】
変換ステップは、一次式では表現できない変換入力と変換出力との関係を定めるテーブルである変換テーブルを用いて変換を行うための変換サブステップを保持する請求項１９から２２のいずれか一に記載の暗号化方法。
【請求項２４】
変換ステップは、変換ステップにて実行されるべき複数の演算処理の一部に対してのみ変換テーブルを適用するテーブル適用サブステップを有する請求項２３に記載の暗号化方法。
【請求項２５】
変換ステップは、複数の処理段に対して適用すべきテーブルを動的に制御する適用テーブル制御サブステップをさらに有する請求項２３又は２４に記載の暗号化方法。
【請求項２６】
変換ステップは、入力値に対して適用すべきテーブルの適用位置を動的に制御する適用位置制御サブステップをさらに有する請求項２３から２５のいずれか一に記載の暗号化方法。
【請求項２７】
請求項１９から２６のいずれか一に記載の暗号化方法によって暗号化された暗号化情報を復号して情報とする復号化方法であって、
暗号化情報を取得する暗号化情報取得ステップと、
取得した暗号化情報を後述する逆変換ステップにて変換する単位である１６バイト単位の単位化暗号化情報に単位化する逆変換用単位化ステップと、
逆変換用単位化ステップにて単位化された単位化暗号化情報を前記変換ステップの変換とは逆変換することで逆変換済単位化情報とする逆変換ステップと、
逆変換ステップにて得られた全ての逆変換済単位化情報を結合することで暗号化情報の元となる情報である元情報とする元情報結合ステップと、
からなる計算機にて実行させる復号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報を暗号化して暗号化情報を生成する暗号化装置に関するものである。
【背景技術】
【０００２】
一般に、情報を暗号化するための暗号化装置が知られている。
【０００３】
暗号化装置は、第三者による解読の危険から守るための機能を備えていることが重要である。なぜなら、暗号化の目的は、情報に秘匿性をもたせる点にあるところ、第三者による解読が容易であれば、秘匿性が低くなり、暗号化の目的が全うされないからである。
【０００４】
第三者による暗号解読の方法は、暗号化情報についての通信を傍受した上、（１）取得した暗号化情報に対して既に保有している固定の関数の逆変換を実施するという方法及び（２）暗号化対象の情報と暗号化情報の組み合わせから暗号化の関数を推定し、その逆変換を実施するという方法が一般的である。
【０００５】
このような暗号化装置において、暗号の解読を困難にするための工夫が存在する。例えば、工夫が記載された先行技術文献として、特許文献１が挙げられる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１０−５１０５３９
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１は、従来から１つの実装に対して適用される関数が固定されていたという問題点を解決するため、暗号化処理部に対する暗号化鍵を入力する機能を追加し、その都度入力される暗号化鍵の情報に応じて、暗号化の関数や方式を変更するという方法である。
【０００８】
この方法によれば、暗号化関数が暗号化鍵の入力情報ごとに異なるので、第三者が通信を傍受して暗号化情報を取得しても既に保有している固定の関数の逆変換を実施するという方法では暗号の解読ができないことになる。
【０００９】
しかし、特許文献１では、第三者の暗号解読レベルによっては、暗号化の関数が解読されてしまう危険があった。具体的には、特許文献１は、暗号化の処理において変換を行う単位について何らの特徴がないため、従来どおり４バイト単位での変換を前提とするものであるところ、存在する情報の種類が「２の３２乗」通りであることになり、「２の３２乗」の予め分かっている情報を入力して変換結果を見るという方法により検証すれば、暗号化の変換内容を特定することが現実的に可能であるという問題を抱えるものであった。
【課題を解決するための手段】
【００１０】
そこで、本発明は、暗号化単位を工夫することによって、暗号の解読を事実上不可能にする暗号化装置を提供する。さらには、暗号化の関数の内容を工夫することによって、「（２）暗号化対象の情報と暗号化情報の組み合わせから暗号化の関数を推定」するという方法では解読できないような機能を備えた暗号化装置を提供する。
【００１１】
具体的には、以下の特徴を有する暗号化装置、暗号化方法及び暗号化プログラムを提供する。以下では、本発明の内容を暗号化装置として列挙するが、本出願は、同様の特徴を有する暗号化方式及び暗号化プログラムをも対象に含めるものである。
【００１２】
まず、情報を暗号化して暗号化情報とする暗号化装置であって、情報を取得する情報取得部と、取得した情報を後述する変換部にて変換する単位である１６バイト単位の単位化情報に単位化する変換用単位化部と、変換用単位化部にて単位化された単位化情報を一つの一次式では表現できない関数にて変換することで変換済単位化情報とする変換部と、からなる暗号化装置である。
【００１３】
また、前記特徴に加えて、変換部にて得られた全ての変換済単位化情報を結合することで暗号化情報とする暗号化情報結合部をさらに有する暗号化装置である。
【００１４】
また、前記特徴に加えて、変換部は、同一の変換についての順変換と逆変換を隣接する原変換に対して複合させた複合変換を実行する複合変換手段を含む暗号化装置である。
【００１５】
また、前記特徴に加えて、変換部は、入力値に対して前記順変換を複合した前段による演算結果である前方変換結果の複数について排他的論理和処理をした後に前記逆変換を複合した後段による変換処理を前記入力値と同数得る変換処理を実行する排他的論理和処理手段を有する暗号化装置である。
【００１６】
また、前記特徴に加えて、変換部は、一次式では表現できない変換入力と変換出力との関係を定めるテーブルである変換テーブルを用いて変換を行うための変換手段を保持する暗号化装置である。
【００１７】
また、前記特徴に加えて、変換部は、変換部にて実行されるべき複数の変換理の一部に対してのみ変換テーブルを適用するテーブル適用手段を有する暗号化装置である。
【００１８】
また、前記特徴に加えて、変換部は、複数の処理段に対して適用すべきテーブルを動的に制御する適用テーブル制御手段をさらに有する暗号化装置である。
【００１９】
また、前記特徴に加えて、変換部は、入力値に対して適用すべきテーブルの適用位置を動的に制御する適用位置制御手段をさらに有する暗号化装置である。
【００２０】
最後に、上記暗号化装置によって暗号化された暗号化情報を復号して情報とする復号化装置であって、暗号化情報を取得する暗号化情報取得部と、取得した暗号化情報を後述する逆変換部にて変換する単位である１６バイト単位の単位化暗号化情報に単位化する逆変換用単位化部と、逆変換用単位化部にて単位化された単位化暗号化情報を前記変換部の変換とは逆変換することで逆変換済単位化情報とする逆変換部と、逆変換部にて得られた全ての逆変換済単位化情報を結合することで暗号化情報の元となる情報である元情報とする元情報結合部と、からなる復号化装置である。
【発明の効果】
【００２１】
本発明により、第三者による暗号解読が事実上不可能な暗号を生成することができ、暗号解読が事実上不可能である暗号化装置を提供することができる。
【図面の簡単な説明】
【００２２】
【図１】実施例１にかかる暗号化装置の機能ブロック
【図２】実施例１において任意の関数を用いた場合の暗号化の内容
【図３】実施例１にかかる暗号化装置のハードウェア構成を示す図
【図４】実施例１にかかる暗号化装置を用いた場合の処理の流れを示す図
【図５】１６バイト単位に単位化した順に変換する構成における変換用単位化ステップと変換ステップとの関係を示す図
【図６】実施例２にかかる暗号化装置の機能ブロック
【図７】実施例２にかかる暗号化装置のハードウェア構成を示す図
【図８】実施例２にかかる暗号化装置を用いた場合の処理の流れを示す図
【図９】実施例３にかかる暗号化装置の機能ブロック
【図１０】従来の複合変換の流れを示す図
【図１１】実施例３における複合変換の内容を示す図
【図１２】実施例３にかかる暗号化装置のハードウェア構成を示す図
【図１３】実施例３にかかる暗号化装置を用いた場合の処理の流れを示す図
【図１４】実施例４にかかる暗号化装置の機能ブロック
【図１５】従来のＸＯＲ演算を挟んだ多対一の変換の内容を示す図
【図１６】実施例４におけるＸＯＲ演算を挟んだ多対一の変換の内容を示す図
【図１７】実施例４にかかる暗号化装置のハードウェア構成を示す図
【図１８】実施例４にかかる暗号化装置を用いた場合の処理の流れを示す図
【図１９】実施例５にかかる暗号化装置の機能ブロック
【図２０】変換テーブルを用いた変換の内容を示した図
【図２１】実施例５にかかる暗号化装置のハードウェア構成を示す図
【図２２】実施例５にかかる暗号化装置を用いた場合の処理の流れを示す図
【図２３】実施例６にかかる暗号化装置の機能ブロック
【図２４】実施例６にかかる暗号化装置のハードウェア構成を示す図
【図２５】実施例６にかかる暗号化装置を用いた場合の処理の流れを示す図
【図２６】実施例７にかかる暗号化装置の機能ブロック
【図２７】実施例７にかかる暗号化装置のハードウェア構成を示す図
【図２８】実施例７にかかる暗号化装置を用いた場合の処理の流れを示す図
【図２９】実施例８にかかる暗号化装置の機能ブロック
【図３０】実施例８にかかる暗号化装置のハードウェア構成を示す図
【図３１】実施例８にかかる暗号化装置を用いた場合の処理の流れを示す図
【図３２】実施例９にかかる復号化装置の機能ブロック
【図３３】実施例９にかかる復号化装置のハードウェア構成を示す図
【図３４】実施例９にかかる復号化装置を用いた場合の処理の流れを示す図
【発明を実施するための形態】
【００２３】
以下、本発明の実施の形態を図示例と共に説明する。実施例と請求項の相互の関係は以下の通りである。実施例１は主に請求項１，１０、１９に関し、実施例２は主に請求項２，１１，２０に関し、実施例３は主に請求項３，１２，２１に関し、実施例４は主に請求項４，１３，２２に関し、実施例５は主に請求項５，１４，２３に関し、実施例６は主に請求項６，１５，２４に関し、実施例７は主に請求項７，１６，２５に関し、実施例８は主に請求項８，１７，２６に関し、実施例９は主に請求項９，１８，２７に関する。なお、本発明はこれら実施例に何ら限定されるものではなく、その要旨を逸脱しない範囲内において、様々な態様で実施しうる。
【実施例１】
【００２４】
＜本実施例の概要＞
本実施例にかかる暗号化装置は、情報取得部と変換用単位化部と変換部と、からなる暗号化装置である。
【００２５】
本実施例にかかる暗号化装置は、本発明の最も基本的な構成である。そして、特に変換用単位化部の機能に特徴がある。以下、本実施例にかかる暗号化装置について、その機能的構成と、ハードウェア構成と、処理の方法に分けて説明する。
【００２６】
＜機能的構成＞
図１は、実施例１にかかる暗号化装置の機能ブロックである。暗号化装置（０１０１）には、情報取得部（０１０２）と、変換用単位化部（０１０３）と、変換部（０１０４）が存在する。以下、それぞれの機能を説明する。
【００２７】
まず、「情報取得部」とは、情報を取得する機能である。ここにおける情報は、暗号化の対象となる情報である。取得の方法としては、キーボードなどを用いて直接入力する方法でも良いし、既存の情報を移行する方法でも良いし、その他でも良い。
【００２８】
例えば、文章作成ソフトで作成した文章を暗号化したい場合、サーバや外部機器のＨＤＤに保存されている文章情報を暗号化装置に移行することによって、情報を取得するという具合である。
【００２９】
次に、「変換用単位化部」とは、取得した情報を後述する変換部にて変換する単位である１６バイト単位の単位化情報に単位化する機能である。前述のように、暗号化においては、この１６バイトをさらに４バイト（３２ビット）単位の４つの小単位に分割し暗号化の変換を行うのが通常であったが、この１６バイト（１２８ｂｉｔ）単位のままで暗号化の変換を行うことによって、入力する変数の数が「２の１２８乗」通りであることになる。そのため、暗号化の変換内容を特定するためには、「２の１２８乗」という天文学的数の予め分かっている値を入力して変換結果を見て検証するということになり、暗号化の変換内容の特定が事実上不可能となる。実現の方法は、後述するように、暗号化装置内でのＣＰＵによる演算処理によって実現する。
【００３０】
最後に、「変換部」とは、変換用単位化部にて単位化された単位化情報を一つの一次式では表現できない関数にて変換することで変換済単位化情報とする機能である。「一つの一次式では表現できない関数」とは、実施例５で後述する、単位化情報を構成するバイトデータに対して「変換テーブル」による不規則な変換と、構成バイト間での演算を施す、というものが典型的な実施態様であるが、それに限られない。図２は、暗号化の関数として例示した関数f(x)を1回適用した場合の変換を示す図である。例えば図２に記載の関数のように非線形関数を暗号化の関数として利用しても良い。
【００３１】
このような関数を用いた場合の暗号化の内容について図２を用いて説明する。変換前の値「１」に関数を適用した場合に得られる値は「１」、変換前の値「２」に関数を適用した場合に得られる値は「０」、変換前の値「３」に関数を適用した場合に得られる値は「９」、変換前の値「４」に関数を適用した場合に得られる値は「８」となる。
【００３２】
なお、以上は、暗号化の関数を用いた変換部の機能の説明であるが、関数ｆ（ｘ）はあくまで一例であり、本発明の内容をこの変換に限定するものではない。
【００３３】
変換部の実現の方法は、後述するように、暗号化装置内でのＣＰＵによる演算処理によって実現する。
【００３４】
以上によって、４バイト（３２ビット）単位での変換を行う従来の技術に比して、１６バイト（１２８ｂｉｔ）単位での暗号化の変換を行うことによって、暗号化の変換内容を特定するためには、「２の１２８乗」という天文学的数の予め分かっている値を入力して変換結果を見て検証するということになり、暗号化の変換内容の特定が事実上不可能となる。
【００３５】
＜ハードウェア構成＞
図３は、本実施例にかかる暗号化装置のハードウェア構成を示す図である。以下、この図を用いて説明する。
【００３６】
この図にあるように、本実施例に係る暗号化装置は、各種演算処理を行う「ＣＰＵ（中央演算装置）」（０３０１）と、「主メモリ」（０３０２）と、を備えている。また、取得した情報などを保持する「ＨＤＤ」（０３０３）や、外部機器と情報の送受信を行う「Ｉ／Ｏ（インプット／アウトプット）」（０３０４）及びサーバと情報の送受信を行う「ネットワークインターフェイス」（０３０８）も備えている。そして、それらが「システムバス」（０３０５）などのデータ通信経路によって相互に接続され、情報の送受信や処理を行う。なお、「サーバ」及び「ネットワークインターフェイス」については、本発明において必須の構成要素ではない。
【００３７】
また、「主メモリ」は、各種処理を行うプログラムを「ＣＰＵ」に実行させるために読み出すと同時にそのプログラムの作業領域でもあるワーク領域を提供する。また、この「主メモリ」や「ＨＤＤ」にはそれぞれ複数のアドレスが割り当てられており、「ＣＰＵ」で実行されるプログラムは、そのアドレスを特定しアクセスすることで相互にデータのやりとりを行い、処理を行うことが可能になっている。本実施例において「主メモリ」に格納されているプログラムは、情報取得プログラム、変換用単位化プログラム、変換プログラムである。
【００３８】
暗号化装置の「Ｉ／Ｏ」は、「主メモリ」に格納されている情報取得プログラムにより、例えば、外部機器（０３０６）の「ＵＩ（ユーザーインターフェース）」（０３０７）から送信された情報を取得する。あるいは、「サーバ」（０３０9）から「ネットワークインターフェイス」を通じて情報を取得する。取得した情報は、「ＨＤＤ」に格納される。そして、この取得した情報は、「主メモリ」に格納されている変換用単位化プログラムを用いた「ＣＰＵ」の演算処理により、変換する単位である１６バイト単位の単位化情報に単位化される。この単位化された単位化情報は、「主メモリ」に格納される。さらに、この単位化情報は、「主メモリ」に格納されている変換プログラムを用いた「ＣＰＵ」の演算処理により一つの一次式では表現できない関数にて変換されることで変換済単位化情報となる。この変換済単位化情報は、「主メモリ」に格納される。
【００３９】
以上によって、4バイト(32ビット)単位での変換を行う従来の技術に比して、16バイト(128bit)単位での暗号化の変換を行うことによって、暗号化の変換内容を特定するためには、「２の１２８乗」という天文学的数の予め分かっている値を入力して変換結果を見て検証するということになり、暗号化の変換内容の特定が事実上不可能となる。
【００４０】
＜処理の流れ＞
図４は、本実施例にかかる暗号化装置を用いた場合の処理の流れを示す図である。本実施例にかかる暗号化装置の処理の流れは、情報取得ステップと変換用単位化ステップと変換ステップに分かれる。以下、それぞれの処理の内容・流れについて説明する。
【００４１】
「情報取得ステップ」（Ｓ０４０１）とは、情報を取得する段階である。ここにおける情報は、暗号化の対象となる情報である。取得の方法としては、キーボードなどを用いて直接入力する方法でも良いし、既存の情報を移行する方法でも良いし、その他でも良い。
【００４２】
「変換用単位化ステップ」（Ｓ０４０２）とは、取得した情報を後述する変換ステップにて変換する単位である１６バイト単位の単位化情報に単位化する段階である。前述のように、暗号化においては、この１６バイトをさらに4バイト(32ビット)単位の4つの小単位に分割し暗号化の変換を行うのが通常であったが、この16バイト(128bit)単位のままで暗号化の変換を行うことによって、入力する変数の数が「２の１２８乗」通りであることになる。そのため、暗号化の変換内容を特定するためには、「２の１２８乗」という天文学的数の予め分かっている値を入力して変換結果を見て検証するということになり、暗号化の変換内容の特定が事実上不可能となる。実現の方法は、暗号化装置内でのＣＰＵによる演算処理によって実現する。
【００４３】
「変換ステップ」（Ｓ０４０３）とは、変換用単位化ステップにて単位化された単位化情報を一つの一次式では表現できない関数にて変換することで変換済単位化情報とする段階である。「一つの一次式では表現できない関数」とは、実施例５で後述する、単位化情報を構成するバイトデータに対して「変換テーブル」による不規則な変換と、構成バイト間での演算を施す、というものが典型的な実施態様であるが、それに限られない。
【００４４】
これらの変換用単位化ステップと変換ステップとの関係は、取得した情報について、全て１６バイト単位に単位化した後に一斉に変換をしても良いし、他方、１６バイト単位に単位化した順に変換をしても良い。図５は、後者の場合の変換態様を示す図である。取得した情報のうち、一部については変換が完了していても、一部については変換が未了のものもある。そのため、この未了の部分についても、変換をするための処理が必要となる。
【００４５】
具体的には、取得した情報全てについて変換が完了したか否かを判断する段階（Ｓ０４０４）が必要となる。この判断のステップにおいて、完了したと判断されれば終了し、未完了であると判断されれば変換用単位化ステップに戻って残っている部分の単位化処理と変換処理を完了するまで繰り返す。
【００４６】
以上によって、4バイト(32ビット)単位での変換を行う従来の技術に比して、16バイト(128bit)単位での暗号化の変換を行うことによって、暗号化の変換内容を特定するためには、「２の１２８乗」という天文学的数の予め分かっている値を入力して変換結果を見て検証するということになり、暗号化の変換内容の特定が事実上不可能となる。
【実施例２】
【００４７】
＜本実施例の概要＞
本実施例に係る暗号化装置は、実施例１の特徴に加えて、暗号化情報結合部をさらに有する暗号化装置である。
【００４８】
以下、機能的構成、ハードウェア構成、処理の流れを順に説明する。
【００４９】
＜機能的構成＞
図６は、本実施例に係る暗号化装置の機能的構成を示す図である。本実施例に係る暗号化装置（０６０１）は、実施例１と同様に、情報取得部（０６０２）と変換用単位化部（０６０３）と変換部（０６０４）とを有している。これらの機能的構成については、実施例１と同様である。以下では、本実施例で加わった暗号化情報結合部（０６０５）の機能について説明する。
【００５０】
「暗号化情報結合部」とは、変換部にて得られた全ての変換済単位化情報を結合することで暗号化情報とする機能である。実現の方法は、後述する「ＣＰＵ」の演算処理により結合を実行するという具合である。
【００５１】
結合する際の態様は、変換用単位化部において１６バイトに単位化した際の順番と同じ順番で結合することが望ましい。そうすれば、複合するための処理が容易となる。
【００５２】
このように変換済単位化情報が結合されて暗号化情報となることによって、１つの情報として送受信の対象とすることができる。
【００５３】
＜ハードウェア構成＞
図７は、上記機能的な各構成要件をハードウェアとして実現した際の暗号化装置における構成の一例を示す概略図である。暗号化装置は、「ＣＰＵ（中央演算装置）」（０７０１）、「主メモリ」（０７０２）、「ＨＤＤ」（０７０３）、「Ｉ／Ｏ（インプット／アウトプット）」（０７０４）、「システムバス」（０７０５）及びサーバ（０７０９）と情報の送受信を行う「ネットワークインターフェイス」（０７０８）を有しており、「外部機器」（０７０６）は、「ＵＩ」（０７０７）を有している。  本実施例において「主メモリ」に格納されているプログラムは、情報取得プログラム、変換用単位化プログラム、変換プログラム、暗号化情報結合プログラムある。
【００５４】
これらの図を利用して、本装置での各処理におけるそれぞれのハードウェア構成部のうち本実施例の特徴的な部分について説明し、その他の部分については実施例１の説明と同様である。
【００５５】
実施例１でも述べたように、暗号化装置により、変換済単位化情報が生成される。このような変換済単位化情報について、「主メモリ」に格納されている暗号化情報結合プログラムを用いた「ＣＰＵ」の演算処理により結合することで暗号化情報とする。この暗号化情報は、「ＨＤＤ」に格納される。
【００５６】
このように変換済単位化情報が結合されて暗号化情報となることによって、１つの情報として送受信の対象とすることができる。
【００５７】
＜処理の流れ＞
図８は、本実施例の暗号化装置における処理の流れの一例を示すフローチャートである。本実施例の処理の流れは、（ａ）及び（ｂ）の２通り存在することから、順に説明する。（ａ）では、情報取得ステップ（Ｓ０８０１）、変換用単位化ステップ（Ｓ０８０２）、変換ステップ（Ｓ０８０３）、暗号化情報結合ステップ（Ｓ０８０５）、全て結合完了したか否かの判断ステップ（Ｓ０８０６）を有している。また、（ｂ）では、情報取得ステップ（Ｓ０８０１）、変換用単位化ステップ（Ｓ０８０２）、変換ステップ（Ｓ０８０３）、全て変換完了したか否かの判断ステップ（Ｓ０８０４）、暗号化情報結合ステップ（Ｓ０８０５）を有している。この図を利用して、本装置での各処理の流れのうち本実施例の特徴的な部分について説明し、その他の部分については実施例１の説明と同様である。
【００５８】
「暗号化情報結合ステップ」とは、変換ステップにて得られた変換済単位化情報を結合することで暗号化情報とする段階である。（ａ）では、変換済単位化情報を受け取る毎に暗号化情報として逐次結合し、全ての変換済単位化情報を受け取るまでこれを繰り返す。（ｂ）では、既に全ての変換が終了している段階において、全ての結合を実行する。
【００５９】
（ａ）と（ｂ）のいずれの場合であっても、結合する態様について、変換用単位化部において１６バイトに単位化した際の順番と同じ順番で結合することが望ましい。そうすれば、複合するための処理が容易となる。
【００６０】
このように変換済単位化情報が結合されて暗号化情報となることによって、１つの情報として送受信の対象とすることができる。
【実施例３】
【００６１】
＜本実施例の概要＞
本実施例に係る暗号化装置は、実施例１又は２の特徴に加えて、変換部が複合変換手段をさらに有する暗号化装置である。
【００６２】
以下、機能的構成、ハードウェア構成、処理の流れを順に説明する。以下の説明では、実施例１の構成に特徴が付加されているものとして説明するが、更に実施例２や３の特徴を有していても本実施例の範囲に含まれるものである。
【００６３】
＜機能的構成＞
図９は、本実施例に係る暗号化装置の機能的構成を示す図である。本実施例に係る暗号化装置（０９０１）は、実施例１と同様に、情報取得部（０９０２）と変換用単位化部（０９０３）と変換部（０９０４）とを有している。これらの機能的構成については、実施例１と同様である。以下では、本実施例で加わった複合変換手段（０９０５）の機能について説明する。
【００６４】
本実施例に係る暗号化装置の変換部は、複合変換手段を有する。「複合変換手段」とは、同一の変換についての順変換と逆変換を隣接する原変換に対して複合させた複合変換を実行する機能である。
【００６５】
図１０は、従来の複合変換の流れを示す図である。図１１は、本実施例における複合変換の内容を示す図である。ここでは、本実施例の一例として、変換部において、乗算処理による変換を二回実施する実施態様を前提に説明する。
【００６６】
図１０は、取得した情報ｘを１つ目の関数Ａと２つ目の関数Ｂで変換を実施した場合の流れである。Ａが「入力された値を３倍する」であり、Ｂが「入力された値を２倍する」である場合を例とする。例えば、取得された情報ｘが「３」であった場合、Ａの関数を適用して「９」となり、Ｂの関数を適用して「１８」となる。また、取得された情報ｘが「１」であった場合、Ａの関数を適用して「３」となり、Ｂの関数を適用して「６」になる。さらに、取得された情報ｘが「２」であった場合、Ａの関数を適用して「６」となり、Ｂの関数を適用して「１２」になる。
【００６７】
これに対して、図１１では、本実施例における複合変換の内容が示されているところ、同じくＡが「入力された値を３倍する」であり、Ｂが「入力された値を２倍する」である場合を例としても、変換に用いられる関数は、Ａに対して任意の関数を乗じた「Ａ'」、及び、Ｂに対して前記Ａに対して乗じた任意の関数の逆関数を乗じた「Ｂ'」である。これを前提に、例えば、前記「任意の関数」が「２」の場合、Ａ'が「入力された値を６倍する」となり、Ｂ'が「入力された値を１倍する」となる。これらを前提に、例えば、取得された情報ｘが「３」であった場合、Ａ'の関数を適用して「１８」となり、Ｂ'の関数を適用して「１８」となる。また、取得された情報ｘが「１」であった場合、Ａ'の関数を適用して「６」となり、Ｂ'の関数を適用して「６」となる。さらに、取得された情報ｘが「２」であった場合、Ａ'の関数を適用して「１２」となり、Ｂ'の関数を適用して「１２」となる。このようにすることにより、従来の複合変換の場合より、さらにより一層、ＡとＢの内容を特定することが困難になる。
【００６８】
これらは、ＣＰＵによる演算処理によって実現する。
【００６９】
これにより、暗号化の態様が一層複雑になり、第三者による暗号解読が困難となる。特に、暗号化対象の情報と暗号化情報の組み合わせから暗号化の関数を推定する暗号解読の方法ではなく、関数の内容を直接的に特定しようとする暗号解読の方法に対して効果がある。
【００７０】
＜ハードウェア構成＞
図１２は、上記機能的な各構成要件をハードウェアとして実現した際の暗号化装置における構成の一例を示す概略図である。暗号化装置は、「ＣＰＵ（中央演算装置）」（１２０１）、「主メモリ」（１２０２）、「ＨＤＤ」（１２０３）、「Ｉ／Ｏ（インプット／アウトプット）」（１２０４）、「システムバス」（１２０５）及びサーバ（１２０９）と情報の送受信を行う「ネットワークインターフェイス」（１２０８）を有しており、「外部機器」（１２０６）は、「ＵＩ」（１２０７）を有している。本実施例において「主メモリ」に格納されているプログラムは、情報取得プログラム、変換用単位化プログラム、変換プログラムである。そして、変換プログラムは、複合変換手段を有する。
【００７１】
これらの図を利用して、本装置での各処理におけるそれぞれのハードウェア構成部のうち本実施例の特徴的な部分について説明し、その他の部分については実施例１の説明と同様である。
【００７２】
暗号化装置により変換用に単位化された１６バイトの単位化情報を「ＣＰＵ」の演算処理により暗号化する際、同一の変換についての順変換と逆変換を隣接する原変換に対して複合させた複合変換を実行することによる処理を行う。この処理によって得られた変換済単位化情報は、「主メモリ」に格納される。
【００７３】
このような暗号化情報生成方法によって、暗号化の態様が一層複雑になり、第三者による暗号解読がより一層困難となる。特に、暗号化対象の情報と暗号化情報の組み合わせから暗号化の関数を推定する暗号解読の方法ではなく、関数の内容を直接的に特定しようとする暗号解読の方法に対して効果がある。
【００７４】
＜処理の流れ＞
図１３は、本実施例の暗号化装置における処理の流れの一例を示すフローチャートである。情報取得ステップ（Ｓ１３０１）、変換用単位化ステップ（Ｓ１３０２）、変換ステップ（Ｓ１３０３）、複合変換サブステップ（Ｓ１３０４）、完了か否かの判断ステップ（Ｓ１３０５）を有している。この図を利用して、本装置での各処理の流れのうち本実施例の特徴的な部分について説明し、その他の部分については実施例１の説明と同様である。
【００７５】
「複合変換サブステップ」とは、同一の変換についての順変換と逆変換を隣接する原変換に対して複合させた複合変換を実行する段階である。複合変換の内容は、本実施例の機能的構成において説明したとおりである。これらは、ＣＰＵによる演算処理によって実現する。
【００７６】
このような暗号化情報生成方法によって、暗号化の態様が一層複雑になり、第三者による暗号解読がより一層困難となる。特に、暗号化対象の情報と暗号化情報の組み合わせから暗号化の関数を推定する暗号解読の方法ではなく、関数の内容を直接的に特定しようとする暗号解読の方法に対して効果がある。
【実施例４】
【００７７】
＜本実施例の概要＞
本実施例に係る暗号化装置は、実施例３の特徴に加えて、変換部が排他的論理和処理手段をさらに有する暗号化装置である。
【００７８】
以下、機能的構成、ハードウェア構成、処理の流れを順に説明する。
【００７９】
＜機能的構成＞
図１４は、本実施例に係る暗号化装置の機能的構成を示す図である。本実施例に係る暗号化装置（１４０１）は、実施例３と同様に、情報取得部（１４０２）と変換用単位化部（１４０３）と変換部（１４０４）と複合変換手段（１４０５）とを有している。これらの機能的構成については、実施例３と同様である。以下では、本実施例で加わった排他的論理和処理手段（１４０６）の機能について説明する。
【００８０】
変換部は、排他的論理和処理手段を有している。「排他的論理和処理手段」とは、入力値に対して前記順変換を複合した前段による演算結果である前方変換結果の複数について排他的論理和処理をした後に前記逆変換を複合した後段による変換処理を前記入力値と同数得る変換処理を実行する機能である。「排他的論理和処理」とは、２進数表現した数値の各ビットに対し、２を法とした剰余体での加減算処理を意味する。
【００８１】
図１５は、通常のＸＯＲ演算を挟んだ多対一の変換の内容を示す図である。図１６は、本実施例におけるＸＯＲ演算を挟んだ多対一の変換の内容を示す図である。
【００８２】
図１５は、通常のＸＯＲ演算を挟んだ多対一の変換の内容である。その変換の一例として、図１５において、Ｐが「入力された値を２倍する」、Ｑが「入力された値を１倍する」、Ｒが「入力された値を４倍する」である場合を例とする。例えば、取得された情報のうち、ｘ１が「４」でｘ２が「３」であった場合、Ｘ１はＰの関数を適用して「８」となり、Ｘ２はＱの関数を適用して「３」となる。そして、その合計である「１１」に対してＲの関数を適用して「４４」という値が得られる。次に、取得された情報のうち、ｘ１が「１」でｘ２が「２」であった場合、Ｘ１はＰの関数を適用して「２」となり、Ｘ２はＱの関数を適用して「２」となる。そして、その合計である「４」に対してＲの関数を適用して「１６」という値が得られる。
【００８３】
これに対して、図１６では、本実施例におけるＸＯＲ演算を挟んだ多対一の変換の内容が示されているところ、同じくＰが「入力された値を２倍する」、Ｑが「入力された値を１倍する」、Ｒが「入力された値を４倍する」である場合を例としても、変換に用いられる関数は、Ｐ及びＱに対して任意の共通の関数を乗じた「Ｐ'」と「Ｑ'」、及び、Ｒに対して前記Ｐ及びＱに対して乗じた任意の共通の関数の逆関数を乗じた「Ｒ'」である。これらを前提に、例えば、前記「任意の関数」が「２」の場合、Ｐ'が「入力された値を４倍する」となり、Ｑ'が「入力された値を２倍する」となり、Ｒ'が「入力された値を２倍する」となる。これらを前提に、例えば、取得された情報のうち、ｘ１が「４」でｘ２が「３」であった場合、Ｘ１はＰ'の関数を適用して「１６」となり、Ｘ２はＱ'の関数を適用して「６」となる。そして、その合計である「２２」に対してＲ'の関数を適用して「４４」という値が得られる。次に、取得された情報のうち、ｘ１が「１」でｘ２が「２」であった場合、Ｘ１はＰ'の関数を適用して「４」となり、Ｘ２はＱ'の関数を適用して「４」となる。そして、その合計である「８」に対してＲ'の関数を適用して「１６」という値が得られる。このようにすることにより、通常のＸＯＲ演算を挟んだ多対一の変換の場合より、さらにより一層、Ｐ、Ｑ、Ｒの内容を特定することが困難になる。
【００８４】
このような暗号化情報生成方法によって、暗号化の態様が一層複雑になり、第三者による暗号解読がより一層困難となる。特に、暗号化対象の情報と暗号化情報の組み合わせから暗号化の関数を推定する暗号解読の方法ではなく、関数の内容を直接的に特定しようとする暗号解読の方法に対して効果がある。
【００８５】
＜ハードウェア構成＞
図１７は、上記機能的な各構成要件をハードウェアとして実現した際の暗号化装置における構成の一例を示す概略図である。暗号化装置は、「ＣＰＵ（中央演算装置）」（１７０１）、「主メモリ」（１７０２）、「ＨＤＤ」（１７０３）、「Ｉ／Ｏ（インプット／アウトプット）」（１７０４）、「システムバス」（１７０５）及びサーバ（１７０９）と情報の送受信を行う「ネットワークインターフェイス」（１７０８）を有しており、「外部機器」（１７０６）は、「ＵＩ」（１７０７）を有している。本実施例において「主メモリ」に格納されているプログラムは、情報取得プログラム、変換用単位化プログラム、変換プログラムである。そして、変換プログラムは、複合変換手段及び排他的論理和処理手段を有する。
【００８６】
これらの図を利用して、本装置での各処理におけるそれぞれのハードウェア構成部のうち本実施例の特徴的な部分について説明し、その他の部分については実施例３の説明と同様である。
【００８７】
暗号化装置により変換用に単位化された１６バイトの単位化情報を「ＣＰＵ」の演算処理により暗号化する際、入力値に対して前記順変換を複合した前段による演算結果である前方変換結果の複数について排他的論理和処理をした後に前記逆変換を複合した後段による変換処理を前記入力値と同数得る変換処理を行う。この処理によって得られた変換済単位化情報は、「主メモリ」に格納される。
【００８８】
このような暗号化情報生成方法によって、暗号化の態様が一層複雑になり、第三者による暗号解読がより一層困難となる。特に、暗号化対象の情報と暗号化情報の組み合わせから暗号化の関数を推定する暗号解読の方法ではなく、関数の内容を直接的に特定しようとする暗号解読の方法に対して効果がある。
【００８９】
＜処理の流れ＞
図１８は、本実施例の暗号化装置における処理の流れの一例を示すフローチャートである。情報取得ステップ（Ｓ１８０１）、変換用単位化ステップ（Ｓ１８０２）、変換ステップ（Ｓ１８０３）、複合変換サブステップ（Ｓ１８０４）、排他的論理和処理サブステップ（Ｓ１８０５）、完了か否かの判断ステップ（Ｓ１８０６）を有している。この図を利用して、本装置での各処理の流れのうち実施例４の特徴的な部分について説明し、その他の部分については実施例３の説明と同様である。
【００９０】
「排他的論理和処理サブステップ」とは、入力値に対して前記順変換を複合した前段による演算結果である前方変換結果の複数について排他的論理和処理をした後に前記逆変換を複合した後段による変換処理を前記入力値と同数得る変換処理を実行する段階である。「排他的論理和処理」とは、２進数表現した数値の各ビットに対し、２を法とした剰余体での加減算処理を意味する。内容は、本実施例の機能的構成において説明したとおりである。
【００９１】
このような暗号化情報生成方法によって、暗号化の態様が一層複雑になり、第三者による暗号解読がより一層困難となる。特に、暗号化対象の情報と暗号化情報の組み合わせから暗号化の関数を推定する暗号解読の方法ではなく、関数の内容を直接的に特定しようとする暗号解読の方法に対して効果がある。
【実施例５】
【００９２】
＜本実施例の概要＞
本実施例に係る暗号化装置は、実施例１ないし４の特徴に加えて、変換部が変換テーブルを用いた変換手段をさらに有する暗号化装置である。
【００９３】
以下、機能的構成、ハードウェア構成、処理の流れを順に説明する。以下の説明では、実施例１の構成に特徴が付加されているものとして説明するが、更に実施例２ないし４の特徴を有していても本実施例の範囲に含まれるものである。
【００９４】
＜機能的構成＞
図１９は、本実施例に係る暗号化装置の機能的構成を示す図である。本実施例に係る暗号化装置（１９０１）は、実施例１と同様に、情報取得部（１９０２）と変換用単位化部（１９０３）と変換部（１９０４）とを有している。これらの機能的構成については、実施例１と同様である。以下では、本実施例で加わった変換テーブルを用いた変換手段（１９０５）の機能について説明する。
【００９５】
変換部は、変換手段を有している。「変換手段」とは、一次式では表現できない変換入力と変換出力との関係を定めるテーブルである変換テーブルを用いて変換を行う機能である。変換テーブルを用いることにより、規則性のない変換を実現することができる。これは、ＣＰＵにおける変換テーブルから読み出す処理によって実現する。
【００９６】
図２０は、変換テーブルを用いた変換の内容を示した図である。本発明に係る暗号化装置は、１６バイト単位で変換するものであり、ここでは変換態様の説明の便宜のため、適当に選択した16バイトの値を例として説明する。また、これらの数字は、１０進数で表現している。
【００９７】
１番から１６番までの丸で囲まれた数字は単位化情報を構成する各バイトデータを識別する為のバイト位置番号である。図２０では単位化情報のバイトデータとして「０〜９」の情報が変換前の情報として存在する。変換テーブルについては、バイト位置に対応するG1〜G16の変換テーブルが存在する。 この変換テーブルで定められた「変換入力値と変換出力値の対応」に基づく変換と、バイト位置に対応するF1〜F16で定められる演算を組み合わせることで、単位化情報を変換する。なお、G1〜G16の各テーブルはそれぞれ独立に定める事ができるが、この例では便宜上全て変換テーブルG1と同じ内容のテーブルを使用している。
【００９８】
これらを踏まえ、バイト位置の１番から４番までの変換処理を順に説明する。なおバイト位置1番の変換処理ではバイト位置16番の変換テーブルによる変換結果も参照される。図中変換テーブル適用の段階では、情報「１」に関数変換テーブルG1を適用することで「8」という情報に変換している。次に、情報「０」に変換テーブルG2を適用することで「9」という情報に変換している。次に、情報「５」に変換テーブルG3を適用することで「4」という情報に変換している。次に、情報「9」に変換テーブルG4を適用することで「0」という情報に変換している。最後に、バイト位置の16番では情報「1」に変換テーブルG16を適用することで「8」という情報に変換している。
【００９９】
そして、演算処理の段階では先の変換テーブル適用後の変換結果を組み合わせて演算処理を行う。演算処理F1では変換テーブルG16による変換情報「8」と変換テーブルG1による変換情報「8」のXOR演算により「0」を算出する。演算処理F2では変換テーブルG1による変換情報「8」と変換テーブルG2による変換情報「9」のXOR演算により「1」を算出する。演算処理F3では変換テーブルG2による変換情報「9」と変換テーブルG3による変換情報「4」のXOR演算により「13」を算出する。演算処理F4では変換テーブルG3による変換情報「4」と変換テーブルG4による変換情報「0」のXOR演算により「4」を算出する。
【０１００】
図２０では便宜上、比較的単純な変換テーブル1種類と演算処理Gi, Fi (1≦ i ≦ 16) を一回だけ適用する例で説明しているが、本発明の内容をこれに限定するものではなく、変換テーブルはより不規則なものを複数使用し、演算処理はより構成バイト間の依存度が強くなるものを使用し、さらに同様の変換処理を繰り返し適用するなどでより複雑な構成としてもよい。
【０１０１】
これにより、16バイト単位で規則性のない暗号化が可能となり、暗号解読がより一層困難になる。
【０１０２】
＜ハードウェア構成＞
図２１は、上記機能的な各構成要件をハードウェアとして実現した際の暗号化装置における構成の一例を示す概略図である。暗号化装置は、「ＣＰＵ（中央演算装置）」（２１０１）、「主メモリ」（２１０２）、「ＨＤＤ」（２１０３）、「Ｉ／Ｏ（インプット／アウトプット）」（２１０４）、「システムバス」（２１０５）及びサーバ（２１０９）と情報の送受信を行う「ネットワークインターフェイス」（２１０８）を有しており、「外部機器」（２１０６）は、「ＵＩ」（２１０７）を有している。本実施例において「主メモリ」に格納されているプログラムは、情報取得プログラム、変換用単位化プログラム、変換プログラムである。そして、変換プログラムは、変換手段を有する。
【０１０３】
これらの図を利用して、本装置での各処理におけるそれぞれのハードウェア構成部のうち本実施例の特徴的な部分について説明し、その他の部分については実施例１の説明と同様である。
【０１０４】
暗号化装置により変換用に単位化された１６バイトの単位化情報を「ＣＰＵ」での処理により暗号化する際、一次式では表現できない変換入力と変換出力との関係を定めるテーブルである変換テーブルを用いて変換を行うことで変換済単位化情報とする処理を行う。この処理によって得られた変換済単位化情報は、「主メモリ」に格納される。
【０１０５】
これにより、規則性のない暗号化が可能となり、暗号解読がより一層困難になる。
【０１０６】
＜処理の流れ＞
図２２は、本実施例の暗号化装置における処理の流れの一例を示すフローチャートである。情報取得ステップ（Ｓ２２０１）、変換用単位化ステップ（Ｓ２２０２）、変換ステップ（Ｓ２２０３）、変換サブステップ（Ｓ２２０４）、完了か否かの判断ステップ（Ｓ２２０５）を有している。この図を利用して、本装置での各処理の流れのうち本実施例の特徴的な部分について説明し、その他の部分については実施例１の説明と同様である。
【０１０７】
変換ステップは、変換サブステップを有している。「変換サブステップ」とは、一次式では表現できない変換入力と変換出力との関係を定めるテーブルである変換テーブルを用いて変換を行う段階である。変換テーブルを用いることにより、規則性のない変換を実現することができる。これは、ＣＰＵにおける変換テーブルから読み出す処理によって実現する。
【０１０８】
これにより、規則性のない暗号化が可能となり、暗号解読がより一層困難になる。
【実施例６】
【０１０９】
＜本実施例の概要＞
本実施例に係る暗号化装置は、実施例５の特徴に加えて、変換部が「テーブル適用手段」をさらに有する暗号化装置である。
【０１１０】
以下、機能的構成、ハードウェア構成、処理の流れを順に説明する。
【０１１１】
＜機能的構成＞
図２３は、本実施例に係る暗号化装置の機能的構成を示す図である。本実施例に係る暗号化装置（２３０１）は、実施例５と同様に、情報取得部（２３０２）と変換用単位化部（２３０３）と変換部（２３０４）とを有し、変換部は変換テーブルを用いた変換手段（２３０５）を有している。これらの機能的構成については、実施例５と同様である。以下では、本実施例で加わった「テーブル適用手段」（２３０６）の機能について説明する。
【０１１２】
変換部は、テーブル適用手段を有する。「テーブル適用手段」とは、変換部にて実行されるべき複数の変換理の一部に対してのみ変換テーブルを適用する機能である。変換テーブルによる処理を全体の一部とすることにより、用意する変換テーブルを少量にすることができ、かつ、変換処理のいずれかに不規則な変換を使用できるので、第三者による暗号解読が困難となる。これは、ＣＰＵによって実現される。
【０１１３】
これにより、テーブル数の保持における使用容量を少なくすることができる。
【０１１４】
＜ハードウェア構成＞
図２４は、上記機能的な各構成要件をハードウェアとして実現した際の暗号化装置における構成の一例を示す概略図である。暗号化装置は、「ＣＰＵ（中央演算装置）」（２４０１）、「主メモリ」（２４０２）、「ＨＤＤ」（２４０３）、「Ｉ／Ｏ（インプット／アウトプット）」（２４０４）、「システムバス」（２４０５）及びサーバ（２４０９）と情報の送受信を行う「ネットワークインターフェイス」（２４０８）を有しており、「外部機器」（２４０６）は、「ＵＩ」（２４０７）を有している。本実施例において「主メモリ」に格納されているプログラムは、情報取得プログラム、変換用単位化プログラム、変換プログラムである。そして、変換プログラムは、変換テーブルを用いた変換手段及び「テーブル適用手段」を有する。
【０１１５】
これらの図を利用して、本装置での各処理におけるそれぞれのハードウェア構成部のうち本実施例の特徴的な部分について説明し、その他の部分については実施例５の説明と同様である。
【０１１６】
実施例５に係る暗号化装置の「ＣＰＵ」の演算処理により暗号化する際、実行されるべき複数の変換処理の一部に対してのみ変換テーブルを適用することで、変換済単位化情報を生成する。この変換済単位化情報は、「主メモリ」に格納される。
【０１１７】
これにより、テーブル数の保持における使用容量を少なくすることができる。
【０１１８】
＜処理の流れ＞
図２５は、本実施例の暗号化装置における処理の流れの一例を示すフローチャートである。情報取得ステップ（Ｓ２５０１）、変換用単位化ステップ（Ｓ２５０２）、変換ステップ（Ｓ２５０３）、変換テーブルを用いた変換サブステップ（Ｓ２５０４）、「テーブル適用サブステップ」（Ｓ２５０５）、完了か否かの判断ステップ（Ｓ２５０６）を有している。この図を利用して、本装置での各処理の流れのうち本実施例の特徴的な部分について説明し、その他の部分については実施例５の説明と同様である。
【０１１９】
「テーブル適用サブステップ」とは、変換ステップにて実行されるべき複数の変換処理の一部に対してのみ変換テーブルを適用する段階である。変換テーブルによる変換処理を全体の一部とすることにより、用意する変換テーブルを少量にすることができ、かつ、演算処理のいずれかに不規則な変換が存在するので、第三者による暗号解読が困難となる。これは、ＣＰＵによって実現される。
【０１２０】
これにより、テーブル数の保持における使用容量を少なくすることができる。
【実施例７】
【０１２１】
＜本実施例の概要＞
本実施例に係る暗号化装置は、実施例５又は６の特徴に加えて、変換部が「適用テーブル制御手段」をさらに有する暗号化装置である。
【０１２２】
以下、機能的構成、ハードウェア構成、処理の流れを順に説明する。以下の説明では、実施例５の構成に特徴が付加されているものとして説明するが、更に実施例６の特徴を有していても本実施例の範囲に含まれるものである。
【０１２３】
＜機能的構成＞
図２６は、本実施例に係る暗号化装置の機能的構成を示す図である。本実施例に係る暗号化装置（２６０１）は、実施例５と同様に、情報取得部（２６０２）と変換用単位化部（２６０３）と変換部（２６０４）とを有し、変換部は、変換テーブルを用いた変換手段（２６０５）を有している。これらの機能的構成については、実施例５と同様である。以下では、本実施例で加わった「適用テーブル制御手段」（２６０６）の機能について説明する。
【０１２４】
変換部は、適用テーブル制御手段を有する。「適用テーブル制御手段」とは、複数の処理段に対して適用すべきテーブルを動的に制御する機能である。
【０１２５】
これにより、暗号化の関数がその都度異なることになるので、少ないテーブル使用でも暗号結果の複雑さを確保することができ、第三者による暗号解読を一層困難にすることができる。
【０１２６】
＜ハードウェア構成＞
図２７は、上記機能的な各構成要件をハードウェアとして実現した際の暗号化装置における構成の一例を示す概略図である。暗号化装置は、「ＣＰＵ（中央演算装置）」（２７０１）、「主メモリ」（２７０２）、「ＨＤＤ」（２７０３）、「Ｉ／Ｏ（インプット／アウトプット）」（２７０４）、「システムバス」（２７０５）及びサーバ（２７０９）と情報の送受信を行う「ネットワークインターフェイス」（２７０８）を有しており、「外部機器」（２７０６）は、「ＵＩ」（２７０７）を有している。本実施例において「主メモリ」に格納されているプログラムは、情報取得プログラム、変換用単位化プログラム、変換プログラムである。そして、変換プログラムは、変換テーブルを用いた変換手段及び「適用テーブル制御手段」を有する。
【０１２７】
これらの図を利用して、本装置での各処理におけるそれぞれのハードウェア構成部のうち本実施例の特徴的な部分について説明し、その他の部分については実施例５の説明と同様である。
【０１２８】
複数の処理段の変換テーブルが存在し、「ＣＰＵ」の演算処理により、複数の処理段に対して適用すべきテーブルを動的に制御し、適用すべきとされたテーブルを用いて変換済単位化情報とする。この変換済単位化情報は、「主メモリ」に格納される。
【０１２９】
これにより、暗号化の関数がその都度異なることになるので、少ないテーブル使用でも暗号結果の複雑さを確保することができ、第三者による暗号解読を一層困難にすることができる。
【０１３０】
＜処理の流れ＞
図２８は、本実施例の暗号化装置における処理の流れの一例を示すフローチャートである。情報取得ステップ（Ｓ２８０１）、変換用単位化ステップ（Ｓ２８０２）、変換ステップ（Ｓ２８０３）を有し、変換ステップは、変換テーブルを用いた変換サブステップ（Ｓ２８０４）と「適用テーブル制御サブステップ」（Ｓ２８０５）、完了か否かの判断ステップ（Ｓ２８０６）を有している。この図を利用して、本装置での各処理の流れのうち本実施例の特徴的な部分について説明し、その他の部分については実施例５の説明と同様である。
【０１３１】
「適用テーブル制御サブステップ」とは、複数の処理段に対して適用すべきテーブルを動的に制御する段階である。
【０１３２】
これにより、暗号化の関数がその都度異なることになるので、少ないテーブル使用でも暗号結果の複雑さを確保することができ、第三者による暗号解読を一層困難にすることができる。
【実施例８】
【０１３３】
＜本実施例の概要＞
本実施例に係る暗号化装置は、実施例５ないし７の特徴に加えて、変換部が「適用位置制御手段」をさらに有する暗号化装置である。
【０１３４】
以下、機能的構成、ハードウェア構成、処理の流れを順に説明する。以下の説明では、実施例５の構成に特徴が付加されているものとして説明するが、更に実施例６又は７の特徴を有していても本実施例の範囲に含まれるものである。
【０１３５】
＜機能的構成＞
図２９は、本実施例に係る暗号化装置の機能的構成を示す図である。本実施例に係る暗号化装置（２９０１）は、実施例５と同様に、情報取得部（２９０２）と変換用単位化部（２９０３）と変換部（２９０４）とを有し、変換部は、変換テーブルを用いた変換手段（２９０５）を有している。これらの機能的構成については、実施例５と同様である。以下では、本実施例で加わった「適用位置制御手段」（２９０６）の機能について説明する。
【０１３６】
変換部は、適用位置制御手段を有している。「適用位置制御手段」とは、入力値に対して適用すべきテーブルの適用位置を動的に制御する機能である。ここにおける入力値は、一般的には鍵情報を意味する。
【０１３７】
これにより、変換の都度適用されるテーブルを変化させることができ、暗号化の関数がその都度異なることになるので、第三者による暗号解読を一層困難にすることができる。
【０１３８】
＜ハードウェア構成＞
図３０は、上記機能的な各構成要件をハードウェアとして実現した際の暗号化装置における構成の一例を示す概略図である。暗号化装置は、「ＣＰＵ（中央演算装置）」（３００１）、「主メモリ」（３００２）、「ＨＤＤ」（３００３）、「Ｉ／Ｏ（インプット／アウトプット）」（３００４）、「システムバス」（３００５）及びサーバ（３００９）と情報の送受信を行う「ネットワークインターフェイス」（３００８）を有しており、「外部機器」（３００６）は、「ＵＩ」（３００７）を有している。本実施例において「主メモリ」に格納されているプログラムは、情報取得プログラム、変換用単位化プログラム、変換プログラムである。そして、変換プログラムは、変換テーブルを用いた変換手段及び「適用位置制御手段」を有する。
【０１３９】
これらの図を利用して、本装置での各処理におけるそれぞれのハードウェア構成部のうち本実施例の特徴的な部分について説明し、その他の部分については実施例５の説明と同様である。
【０１４０】
複数の処理段の変換テーブルが存在し、「ＣＰＵ」の演算処理により、入力値に対して適用すべきテーブルの適用位置を動的に制御し、適用すべきとされたテーブルを用いて変換済単位化情報とする。この変換済単位化情報は、「主メモリ」に格納される。
【０１４１】
これにより、変換の都度適用されるテーブルを変化させることができ、暗号化の関数がその都度異なることになるので、第三者による暗号解読を一層困難にすることができる。
【０１４２】
＜処理の流れ＞
図３１は、本実施例の暗号化装置における処理の流れの一例を示すフローチャートである。情報取得ステップ（Ｓ３１０１）、変換用単位化ステップ（Ｓ３１０２）、変換ステップ（Ｓ３１０３）を有し、変換ステップは、変換テーブルを用いた変換サブステップ（Ｓ３１０４）と適用位置制御サブステップ（Ｓ３１０５）、完了か否かの判断ステップ（Ｓ３１０６）を有している。この図を利用して、本装置での各処理の流れのうち本実施例の特徴的な部分について説明し、その他の部分については実施例５の説明と同様である。
【０１４３】
「適用位置制御サブステップ」とは、入力値に対して適用すべきテーブルの適用位置を動的に制御する段階である。ここにおける入力値は、一般的には鍵情報を意味する。
【０１４４】
これにより、変換の都度適用されるテーブルを変化させることができ、暗号化の関数がその都度異なることになるので、第三者による暗号解読を一層困難にすることができる。
【実施例９】
【０１４５】
＜本実施例の概要＞
本実施例にかかる装置は、実施例１ないし８に記載の暗号化装置によって暗号化された暗号化情報を復号して情報とする復号化装置であって、暗号化情報取得部と、逆変換用単位化部と、逆変換部と、元情報結合部と、からなる復号化装置である。
【０１４６】
以下、本実施例にかかる復号化装置について、その機能的構成と、ハードウェア構成と、処理の方法に分けて説明する。
【０１４７】
＜機能的構成＞
図３２は、実施例９にかかる復号化装置の機能ブロックである。復号化装置（３２０１）には、暗号化情報取得部（３２０２）と、逆変換用単位化部（３２０３）と、逆変換部（３２０４）と、元情報結合部（３２０５）が存在する。以下、それぞれの機能を説明する。
【０１４８】
「暗号化情報取得部」とは、暗号化情報を取得する機能である。
【０１４９】
「逆変換用単位化部」とは、取得した暗号化情報を後述する逆変換部にて変換する単位である１６バイト単位の単位化暗号化情報に単位化する機能である。
【０１５０】
「逆変換部」とは、逆変換用単位化部にて単位化された単位化暗号化情報を前記変換部の変換とは逆変換することで逆変換済単位化情報とする機能である。
【０１５１】
「元情報結合部」とは、逆変換部にて得られた全ての逆変換済単位化情報を結合することで暗号化情報の元となる情報である元情報とする機能である。
【０１５２】
これにより、実施例１ないし８に記載の暗号化装置によって暗号化された暗号化情報を復号して情報とすることができる。
【０１５３】
＜ハードウェア構成＞
図３３は、上記機能的な各構成要件をハードウェアとして実現した際の復号化装置における構成の一例を示す概略図である。復号化装置は、「ＣＰＵ（中央演算装置）」（３３０１）、「主メモリ」（３３０２）、「ＨＤＤ」（３３０３）、「Ｉ／Ｏ（インプット／アウトプット）」（３３０４）、「システムバス」（３３０５）及びサーバ（３３０９）と情報の送受信を行う「ネットワークインターフェイス」（３３０８）を有しており、「外部機器」（３３０６）は、「ＵＩ」（３３０７）を有している。本実施例において「主メモリ」に格納されているプログラムは、暗号化情報取得プログラム、逆変換用単位化プログラム、逆変換プログラム、元情報結合プログラムである。なお、「サーバ」及び「ネットワークインターフェイス」については、本発明において必須の構成要素ではない。以上を踏まえて、これらの図を利用して、本装置での各処理におけるそれぞれのハードウェア構成部について説明する。
【０１５４】
復号化装置の「Ｉ／Ｏ」は、外部機器の「ＵＩ（ユーザーインターフェース）」から送信された暗号化情報を取得する。取得した暗号化情報は、「ＨＤＤ」に格納される。そして、この取得した暗号化情報は、「ＣＰＵ」の演算処理により、逆変換部で変換する単位である１６バイト単位の単位化暗号化情報に単位化される。この単位化された単位化暗号化情報は、「主メモリ」に格納される。さらに、この単位化暗号化情報を「ＣＰＵ」の演算処理により一つの一次式では表現できない関数にて逆変換することで逆変換済単位化情報とする。この逆変換済単位化情報は、「主メモリ」に格納される。
【０１５５】
その上で、生成された逆変換済単位化情報を「ＣＰＵ」の演算処理により結合することで暗号化情報の元となる情報である元情報とする。この元情報は、「ＨＤＤ」に格納される。
【０１５６】
これにより、実施例１ないし８に記載の暗号化装置によって暗号化された暗号化情報を復号して情報とすることができる。
【０１５７】
＜処理の流れ＞
図３４は、本実施例の復号化装置における処理の流れの一例を示すフローチャートである。暗号化情報取得ステップ（Ｓ３４０１）、逆変換用単位化ステップ（Ｓ３４０２）、逆変換ステップ（Ｓ３４０３）、元情報結合ステップ（Ｓ３４０４）、完了か否かの判断ステップ（Ｓ３４０５）を有している。この図を利用して、本装置での各処理の流れについて説明する。
【０１５８】
「暗号化情報取得ステップ」とは、暗号化情報を取得する段階である。
【０１５９】
「逆変換用単位化ステップ」とは、取得した暗号化情報を逆変換ステップにて変換する単位である１６バイト単位の単位化暗号化情報に単位化する段階である。
【０１６０】
「逆変換ステップ」とは、逆変換用単位化ステップにて単位化された単位化暗号化情報を前記変換ステップの変換とは逆変換することで逆変換済単位化情報とする段階である。
【０１６１】
「元情報結合ステップ」とは、逆変換ステップにて得られた全ての逆変換済単位化情報を結合することで暗号化情報の元となる情報である元情報とする段階である。
【０１６２】
これにより、実施例１ないし８に記載の暗号化装置によって暗号化された暗号化情報を復号して情報とすることができる。
【符号の説明】
【０１６３】
ＣＰＵ（中央演算装置）：０３０１、０７０１、１２０１、１７０１、２１０１、２４０１、２７０１、３００１、３３０１
主メモリ：０３０２、０７０２、１２０２、１７０２、２１０２、２４０２、２７０２、３００２、３３０２
ＨＤＤ：０３０３、０７０３、１２０３、１７０３、２１０３、２４０３、２７０３、３００３、３３０３
Ｉ／Ｏ（インプット／アウトプット）：０３０４、０７０４、１２０４、１７０４、２１０４、２４０４、２７０４、３００４、３３０４
システムバス：０３０５、０７０５、１２０５、１７０５、２１０５、２４０５、２７０５、３００５、３３０５
外部機器：０３０６、０７０６、１２０６、１７０６、２１０６、２４０６、２７０６、３００６、３３０６
ＵＩ（ユーザーインターフェース）：０３０７、０７０７、１２０７、１７０７、２１０７、２４０７、２７０７、３００７、３３０７
ネットワークインターフェイス：０３０８、０７０８、１２０８、１７０８、２１０８、２４０８、２７０８、３００８、３３０８
サーバ：０３０９、０７０９、１２０９、１７０９、２１０９、２４０９、２７０９、３００９、３３０９
【図１】
2016127405.tif 000003
【図２】
2016127405.tif 000004
【図３】
2016127405.tif 000005
【図４】
2016127405.tif 000006
【図５】
2016127405.tif 000007
【図６】
2016127405.tif 000008
【図７】
2016127405.tif 000009
【図８】
2016127405.tif 000010
【図９】
2016127405.tif 000011
【図１０】
2016127405.tif 000012
【図１１】
2016127405.tif 000013
【図１２】
2016127405.tif 000014
【図１３】
2016127405.tif 000015
【図１４】
2016127405.tif 000016
【図１５】
2016127405.tif 000017
【図１６】
2016127405.tif 000018
【図１７】
2016127405.tif 000019
【図１８】
2016127405.tif 000020
【図１９】
2016127405.tif 000021
【図２０】
2016127405.tif 000022
【図２１】
2016127405.tif 000023
【図２２】
2016127405.tif 000024
【図２３】
2016127405.tif 000025
【図２４】
2016127405.tif 000026
【図２５】
2016127405.tif 000027
【図２６】
2016127405.tif 000028
【図２７】
2016127405.tif 000029
【図２８】
2016127405.tif 000030
【図２９】
2016127405.tif 000031
【図３０】
2016127405.tif 000032
【図３１】
2016127405.tif 000033
【図３２】
2016127405.tif 000034
【図３３】
2016127405.tif 000035
【図３４】
2016127405.tif 000036