(57)【特許請求の範囲】
【請求項１】
送信すべき元の情報を暗号化して暗号文を送信する装置と、前記暗号文を受信し、前記暗号文が送受信される送受信網とは別の通信手段で伝達された鍵を用いて前記暗号文を復号化する装置とを備えた通信システムにおいて、
送信側の装置は、
前記元の情報を２進数に変換する２進数化手段と、
行方向、列方向及び対角線方向の和が全て同じであって六次〜十次の基準魔方陣から、（イ）自行内或いは自列内での要素を入れ替える拡張と相隣り合う或いは離れた４要素ごとのクロス入れ替えとを組み合わせた拡張クロス入れ替えを行うことにより、或いは（ロ）自行内或いは自列内での要素を入れ替える拡張と相隣り合う４要素ごとのクロス入れ替えとの拡張クロス入れ替えを行った後に離れた４要素ごとのクロス入れ替えを行う非可逆拡張クロス入れ替えにより前記要素の変換を行って非繰り返しの数列である魔方陣数列を選択する手段と、
前記魔方陣数列を２進数に変換する送信側２進数化手段と、
前記２進数化された前記平文の情報と前記２進数化された魔方陣数列との排他的論理和をとる送信側排他的論理和手段と、
前記排他的論理和を交信時間短縮用コード文化して通信情報を作成する手段と、
前記送受信網を介して前記通信情報を前記情報受信装置に送信する送信手段とを備え、  受信側の装置は、
前記通信情報を受信する受信手段と、
予め前記通信網とは別の伝達手段を介して送信者から入手した前記魔方陣数列を選択するための鍵に基づいて、前記送信側で行われた前記拡張クロス入れ替え或いは前記非可逆拡張クロス入れ替えと同様の要素変換を受信側の基準魔方陣にて行うことにより前記魔方陣数列を特定する手段と、
その魔方陣数列を２進数化する受信側２進数化手段と、
前記受信した通信情報と前記２進数化された魔方陣数列との排他的論理和をとり、２進数化された受信情報を作成する受信側排他的論理和手段と、
前記受信情報から前記元の情報を復元する復号化手段とを備えたことを特徴とする魔方陣数列を用いるセキュリティ強化通信システム。
【請求項２】
請求項１記載のセキュリティ強化通信システムにおいて、
前記送信側の装置は、送信すべき元の情報をＡＮＫコード化、或いはシフトＪＩＳコード化する手段と、前記シフトＪＩＳコード化情報をＪＩＳ１６進コード化する手段と、前記ＡＮＫコード化情報やＪＩＳ１６進コード化情報を２進数化する手段と、前記２進数化情報に所定の２進数を加えることによってずらしを行う手段とを備え、
前記送信側排他的論理和手段は、前記２進数化ずらし情報と前記２進数化魔方陣数列との排他的論理和をとり、前記受信側排他的論理和手段は、前記２進数化情報と前記２進数化魔方陣数列との排他的論理和をとり、
前記受信側の装置は、前記排他的論理和情報に所定の２進数を加えることによってずらしを行う手段と、前記ずらし情報を１６進数化する手段と、前記１６進数化情報をシフトＪＩＳコード化、或いはＡＮＫコード化する手段と、前記シフトＪＩＳコード化情報、或いはＡＮＫコード化情報から受信すべき情報を得る手段とを備えたことを特徴とする魔方陣数列を用いるセキュリティ強化通信システム。
【請求項３】
コンピュータを、送信すべき元の情報を暗号化して暗号文を送信する手段と、前記暗号文を受信し、前記暗号文が送受信される送受信網とは別の通信手段で伝達された鍵を用いて前記暗号文を復号化する手段として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体において、
送信側の記録媒体は、
前記元の情報を２進数に変換する２進数化手段、
行方向、列方向及び対角線方向の和が全て同じであって六次〜十次の基準魔方陣から、（イ）自行内或いは自列内での要素を入れ替える拡張と相隣り合う或いは離れた４要素ごとのクロス入れ替えとを組み合わせた拡張クロス入れ替えを行うことにより、或いは（ロ）自行内或いは自列内での要素を入れ替える拡張と相隣り合う４要素ごとのクロス入れ替えとの拡張クロス入れ替えを行った後に離れた４要素ごとのクロス入れ替えを行う非可逆拡張クロス入れ替えにより前記要素の変換を行って非繰り返しの数列である魔方陣数列を選択する手段、
前記魔方陣数列を２進数に変換する送信側２進数化手段、
前記２進数化された前記平文の情報と前記２進数化された魔方陣数列との排他的論理和をとる送信側排他的論理和手段、
前記排他的論理和を交信時間短縮用コード文化して通信情報を作成する手段、及び
前記送受信網を介して前記通信情報を前記情報受信装置に送信する送信手段としてコンピュータを機能させるプログラムをコンピュータに読み取り可能に記録し、
受信側の記録媒体は、
前記通信情報を受信する受信手段と、
予め前記通信網とは別の伝達手段を介して送信者から入手した前記魔方陣数列を選択するための鍵に基づいて、前記送信側で行われた前記拡張クロス入れ替え或いは前記非可逆拡張クロス入れ替えと同様の要素変換を受信側の基準魔方陣にて行うことにより前記魔方陣数列を特定する手段、
その魔方陣数列を２進数化する受信側２進数化手段、
前記受信した通信情報と前記２進数化された魔方陣数列との排他的論理和をとり、２進数化された受信情報を作成する受信側排他的論理和手段、及び
前記受信情報から前記元の情報を復元する復号化手段としてコンピュータを機能させるプログラムをコンピュータに読み取り可能に記録したことを特徴とする記録媒体。
【請求項４】
請求項１記載の記録媒体において、
前記送信側の記録媒体は、コンピュータに、送信すべき元の情報をＡＮＫコード化、或いはシフトＪＩＳコード化する手段、前記シフトＪＩＳコード化情報をＪＩＳ１６進コード化する手段、前記ＡＮＫコード化情報やＪＩＳ１６進コード化情報を２進数化する手段、及び、前記２進数化情報に所定の２進数を加えることによってずらしを行う手段としてコンピュータを機能させるためのプログラムをコンピュータに読み取り可能に記録し、
前記送信側排他的論理和手段は、前記２進数化ずらし情報と前記２進数化魔方陣数列との排他的論理和をとり、前記受信側排他的論理和手段は、前記２進数化情報と前記２進数化魔方陣数列との排他的論理和をとり、
前記受信側の記録媒体は、前記排他的論理和情報に所定の２進数を加えることによってずらしを行う手段、前記ずらし情報を１６進数化する手段、前記１６進数化情報をシフトＪＩＳコード化、或いはＡＮＫコード化する手段、及び、前記シフトＪＩＳコード化情報或いはＡＮＫコード化情報から受信すべき情報を得る手段としてコンピュータを機能させるプログラムをコンピュータに読み取り可能に記録したことを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は情報・通信分野における通信傍受や不当な視聴などの被害防止対策が可能なセキュリティ強化方法及びセキュリティシステムに関するものである。
【０００２】
【従来の技術】
機密を保持したい情報などを通常では解読できないような情報へ変換するために暗号化が行われる。このとき、元の情報を平文、暗号化された情報を暗号文と呼び、暗号文から平文を復元する変換を復号化と呼ぶ。
【０００３】
暗号化及び復号化には鍵が必要であり、一般に暗号の強度はこの鍵の大きさに比例する。この鍵を知らない第三者が暗号文から平文を得ることを解読と呼び、解読に時間がかかる暗号ほど強度が高いことになる。
【０００４】
従来から、指数関数、分数、乱数を用いる暗号コード化方法が使われているが、これらの方法は、数値範囲の縮小や退化現象を避けることが出来なかった。乱数列を２進数化したものは実用上１２８ビット以下が主流であり、暗号化してもコンピュータによって解読される懸念があった。
【０００５】
【発明が解決しようとする課題】
本発明の目的は、取り扱いが簡単でしかも解読が困難な暗号化技術を提案することである。
【０００６】
【課題を解決するための手段】
本発明の１特徴は、第１の情報と、前記第１の情報を２進数に変換するステップと、魔方陣数列を選択するステップと、前記選択された魔方陣数列を２進数化するステップと、前記２進数化された第１の情報と前記２進数化された魔方陣数列との排他的論理和をとり、２進数化されるとともに交信時間短縮用コード文化された第２の情報を作成するステップと、前記第２の情報および前記魔方陣数列に関する鍵情報を正規利用者へ供給するステップとを備えたものである。
【０００７】
本発明は、代数学整数論における高次魔方陣のクロス入替え、拡張クロス入替えに拠って生成される正規化魔方陣の総数が、理論上膨大な数になることに基づいている。魔方陣とは、縦、横、斜めの数字の合計が同一になるよう、方形に配置された数の連なりであり、例えば、正規形十魔方陣の種類は１０の３００べき乗（１０300）に達する。
【０００８】
これらの魔方陣から形成される数列は、種類が膨大であるばかりでなくクロス入れ替え、拡張クロス入替えに基づき生成されるので管理が容易であり、各種の乱数表や物理乱数との混在・包含も容易である。本発明では暗号化に用いられる魔方陣の数列に関する鍵は、正規の送信者だけが発行し、受信者に伝えられる。通常、同一な鍵の再発行はしない。拡張クロス入替えのプロシジュア数は、現在５０種類以上存在するが、鍵の種類を尚一層膨大化して機密度を高めることが可能である。
【０００９】
本発明はＩＣ化が容易である。更に非解読性を徹底するために幾つかの系の正規形十魔方陣をＲＯＭ化する。補数演算プロシジュア及び拡張クロス入れ替えプロシジュアをＲＯＭ化する。演算バッファエリア用のＲＡＭを含めて、ＩＣ化、マイクロプロセッサ化を図ることが可能である。
【００１０】
本発明は、高次魔方陣数列を用いＩＴ時代の発展の妨害や障害となる不当な傍受などを防ぐのに役立つ。
【００１１】
本発明は、インターネット産業に関係する家電・情報・通信・電気・電子、などの機器やＨＤＤ・ＦＤ・ＣＤ・ＤＶＤ始め各種媒体を含め、ＩＴ時代の産業の発展を支える基盤になる。
【００１２】
本発明は、日本語用のＡＮＫコード表、非漢字コード表並びに漢字コード表を利用する通信方式に属する。コード表を利用する際や１６進数２進数変換を施す際に本発明ではずらしを施す。
【００１３】
プログラムを有する正規の送信者、受信者だけが、このずらしを戻し解読ができる。例えばＡＮＫコード表を１６進数で(１１００)１６ずらす。非漢字コード表並びに漢字コード表を１６進数(１１１１)１６毎にコード表記載の配置をずらし、(９ＦＦＦ)１６などとの差を補数として算出してずらす。１６進数２進数変換表を８ずらす。この様なずらしを施して元文がそのままでは読めないように処理する。
【００１４】
本発明では更に魔方陣を根源とする２進数列を使用して情報を暗号コード化している。すなわち、本発明は、十魔方陣のような高次魔方陣は、莫大な数の正規形魔方陣をその子孫として代数的に生産できることを見出したことに基づいている。
【００１５】
十魔方陣の推定総数は約１０300である。そこで、本発明においては管理し易くて短い「いろはにほへと７個の２桁数列」を利用する。本発明においては、送信の度に送信者に６６０億を超す多数の正規形魔方陣の中から乱数発生方式により自動算出して「い１７ろ３５は６に２６ほ１７へ２１と８」のように与える。
【００１６】
本発明のプログラムを所有している受信者は、「いろはにほへと７個の２桁数列の内容」を送信者から安全な伝達手段、たとえば、電話回線などを経由して入手し、鍵として使い、予め入手しているプログラムの演算に従って解読し原情報を入手することができる。
【００１７】
図１は、本発明の一実施形態を示すブロックダイアグラムである。送信側では送信すべき平文を２進数化手段２を用いて２進数へ変換する。一方後述するように選択した魔方陣４の数列を２進数化手段６を用いて２進数化する。これらの２進数は、排他的論理和手段８の入力側Ａ、Ｂに与えられ、排他的論理和演算される。
【００１８】
排他的論理和演算では、いずれか一方の入力が１で、他方の入力が０の時だけ出力が１となる。すなわち、平文が１で魔方陣の数列が０の時、あるいは平文が０で魔方陣の数列が１の時だけ出力が１となる演算を行う。このようにして平文を暗号化し、２進数列に変換した後、送信手段１０を介して送信するのである。
【００１９】
魔方陣４は、例えば十魔方陣を使用する。この魔方陣４は、１０行、１０列の方眼状に１から１００の数値を配置し、その行方向、列方向、対角線方向の和がすべて同じ５０５になるようにしたものである。この魔方陣４は、基準となる魔方陣を後述するようにクロス入れ替え、拡張クロス入れ替え操作により変形可能であり、しかも簡単に最終魔方陣を特定できるのである。
【００２０】
すなわち、設定された基準魔方陣と、入れ替え操作に関する情報を鍵として正規受信者、あるいは正規利用者に供給すれば、正規受信者、正規利用者はその鍵を用いて送信された２進数から元の平文を復元することができるのである。
【００２１】
例えば、平文が１，魔方陣数列が０の場合は、排他的論理演算の結果は１であり、１が送信される。受信側では受信信号１と、送信側から入手した同じ魔方陣数列０を排他的論理和演算を行い１を得る。同様にして平文が０で魔方陣の数列が１の場合にも受信側は最終的に２進数列０を得る。このようにして暗号化された平文を入手した正規受信者、正規利用者は鍵を利用して暗号化された平文を簡単に元の平文にすることができる。図２は、平文が数字の「１３」の場合の暗号化、復号化の例を示している。
【００２２】
鍵を入手することができない正規利用者、正規受信者以外は仮に暗号化された２進数列を入手しても元の平文を得ることは不可能である。例えば、十魔方陣は６００億以上存在し、どの魔方陣が使用されているか特定するのは不可能であるからである。
【００２３】
平文を暗号化するプログラム、あるいは暗号化された情報から平文を復号化するプログラムは予め正規受信者、正規利用者に付与しても良いし、送信情報に含めても良い。送信する際は平文を入力するとともに、基準となる魔方陣、その魔方陣に対する入れ替え操作手順を、たとえば、いろはにほへとで選択し、それを正規利用者へ鍵として知らせるだけでよい。しかも、送信側は、基準となる魔方陣、入れ替え操作を簡単に変更することができる。利用者は、入手した鍵情報をプログラムに入力するだけで、もとの平文を再現できるのである。
【００２４】
次に図３の通信送受のセキュリティ強化策を施したコード信号を用いる送受信方式のフロチャートを用いて本発明の１実施形態を説明する。送信者と受信者は図３以下で詳述する演算機能付きの専用のプログラム群を所有しているものとする。
【００２５】
受信者は当初、例えば２桁、７世代（基準魔方陣を７回クロス入れ替え、あるいは拡張クロス入れ替え操作することを意味する）の数列からなる鍵（間接鍵方式の鍵）を扱えばよい。
【００２６】
以後は専用プログラム一式によって、元と同長な長さ全域に亘る非繰り返しコードや介在させたずらし（一定値での加減算）処理などの自動演算処理を司るから、受信者は短時間に容易に元の情報を再現し目的を達成できる。
【００２７】
他方、コンピュータを用いても専用のプログラム群を所有しない非正規利用者は、たとえ２進数や１６進数、３２進数、６４進数、１２８進数列コードの信号情報を傍受、入手しても送信内容が毎回異なるコードで非繰り返し方式で行われているために、解読は不可能である。
【００２８】
本方法では「２桁数列ｎ個でｎ世代目の正規形高次魔方陣を形成させる間接鍵方式の部分」、「１６進数などに幾つかのずらしを施して２進数を形成する部分」、「選出された正規形高次魔方陣を加工して２進数を形成する部分」、「通信文を形成して交信する部分」「受信して解読する部分」を備えている。
【００２９】
ここで、非繰り返し数列として魔方陣を使用している。例えば、魔方陣要素の数値が１００ならば１６進数パック化した数(６４)１６を２進数(０１１００１００)２化し、８ビットの情報として使用する。十魔方陣ならば、１００個の数列８００ビット中で(０１１００１００)２の２進数列は１回しか出現しない。
【００３０】
正規化魔方陣や補数変換した魔方陣並びに表裏を回転させた各魔方陣の要素を行列の逐次順に辿って得られる内容の数列値１や９３などは、十魔方陣ならば１００回に１回の頻度で使用され、他の乱数列と異なり重複使用や縮退化現象などは呈しない。
【００３１】
２進数値化された図面や写真の電送、ＦＤ・ＣＤやＤＶＤ等々の媒体内容の加工や音楽や映像のオンライン電送の際も１６進数４桁、それぞれ異なるずらし、例えば、（８４Ａ３）１６を施して同一の２進数値であっても若干分散してぼかして分かりにくくし、更に非繰り返し２進数値との排他的和（ＥＸＯＲ）演算処理を施して２進数値やそれを１６進数、３２進数、６４進数、１２８進数コード文字化した文を形成して送受コードに使用するプログラムとしている。
【００３２】
本方法は図３以降に詳述するとおり、新たな正規型十魔方陣を形成し得る方式であるため、送信する元文は１文字以上の長大文でよい。長大な文や２進数値化した長大な文は２５６字以内に区切って送受信に備えているＦＤなどの媒体に記憶させ易いプログラムとして纏めている。
【００３３】
本方法では更にプログラム内に「このような２桁数列鍵の有効な時限」を有している。例えば、受信待ち時限１５分間を経過すれば送信、受信とも専用プログラムの再起動を行わせている。また盗難などの対策としてプログラム内に「プログラムの使用期限」を設定、表示し、期限を過ぎたものは使えぬようにしている。
【００３４】
新しいプログラムと交換させ、通信ファイルオープンを契約者だけと行なう法秩序を維持する方式を採用している。その際のメインテナンス方法として、ディレクトリ内容である魔方陣系の交換、拡張クロス入替え用プロシジュア順序の変更、それらに伴うＲＡＭ・ＲＯＭの更新などを行なう。
【００３５】
以上の説明では、情報を送信する場合を説明しているが、本発明は情報が記録された記録媒体、例えば、ＤＶＤ、ＣＤ−ＲＯＭなどを用いる時も適用できる。この場合には、記録媒体には先に説明したような方法で情報を記録して、相手側に伝達し、鍵を入手した正規の利用者はプログラムを使用して元の情報を復元することができる。
【００３６】
図４は、本発明に適用可能な魔方陣である十魔方陣の解の１例を示すマトリックスであり、２桁の乱数表と似ている。以下このマトリクスを例にして説明する。縦１０列×横１０行、計１００個の方眼内に整数１…１００を配し、１から１００までの自然数を総て１回だけ使用し、且つ、各行１０個の和、各列１０個の和、主対角線１個の和及び副対角線１個の和の全てが５０５である配列を十魔方陣と称する。
【００３７】
１００個の要素に対して連立方程式数２２個の不定式で構成される集合演算で解は求められるが、膨大な試行・計算をしても１つの数値解を得ることは至難である。一般に６次以上の高次魔方陣は、コンピュータのプログラムで形成することさえ困難である。
【００３８】
膨大な試行をして得た十魔方陣の解を１つの系と称する。添字２桁の左側は行を表わし、右側は列を示している。自行内や自列内の入替えを拡張と言い、他行、他列に亘る入替えをクロス入替えと称する。主対角線と縦中心線とで囲まれる第２象限左上の面積約１／８の範囲（Ｒ１）に整数値１を置くものを正規形と称し、整数値１の所在で分類している。
【００３９】
すなわち、第１行第１列に整数値１を置くのをＡ型とし、順次第１行第２列、第１行第３列第１行第４列、第１行第５列に整数値「１」を配置するものを、それぞれＢ、Ｃ、Ｄ、Ｅ型とする。第３行第３列、第３行第４列、第３行第５列に整数値１を置くのをそれぞれＦ、Ｇ、Ｈ型とする。
【００４０】
第５行第５列に整数値「１」を配置するものをＩ型、第２行第２列、第２行第３列、第２行第４列、第２行第５列に整数値「１」を配置するものをそれぞれａｃｄｅ型とする。また、第４行第４列、第４行第５列に整数値「１」を配置するものをｆｈ型とする。クロス入替えで形成されるｂ型、ｇ型は、Ｂ型Ｇ型と同じ位置に回転移動する。
【００４１】
その際整数値「１」が主対角線上に在る、Ａ、ａ、Ｆ、ｆおよびＩ型では整数値「１」が左上の位置になる正方形を考え、左下角の数値＜右上角の数値とする。Ｂ型およびＧ型では整数値「１」が左上に位置する長方形を考え、左下角の数値＜右上角の数値とする。ｂ型およびｇ型は、整数値「１」が左上に位置する長方形で、左下角の数値＞右上角の数値とする。
【００４２】
ここでいう正方形や長方形はいずれも中心線対象とする。その他の型では整数値「１」が在ればよい。正規形として上述したような型で大分類し、正方形や長方形の各コーナーの数値で中分類する。一般に十魔方陣は、横中心線に近い特定行の諸数値で小分類することができる。
【００４３】
十魔方陣の総数は１０の数百べき乗１０３００と推定される。魔方陣で総数が確定しているのは、低次元である三、四、五魔方陣であり、三魔方陣は８個、四魔方陣は７０４０個、五魔方陣は１５億３９６２万１０４０個である（表裏９０度回転して幾何学的に８倍された総数）。六魔方陣の総数は１０の約１８べき乗１０１８と推定されるが、現在では六以上の高次元魔方陣の総数確定は不可能である。
【００４４】
四次元以上の魔方陣は相隣り合う４つの素子（魔方陣を構成する数値を指す）のクロス入替えによってＡ型はａ型に変換でき、Ｂ型はｂ型に変換できる。４素子のクロス入替えをするとともに縦横の入替えを加えた拡張クロス入替えによる変換は、五次元以上の魔方陣に適用される。十魔方陣では、中心点対象や中心線対象に、相隣り合う４素子間の拡張クロス入替えならば同時に１か所、４か所、９か所、１６か所、或いは２５か所で行なえる。
【００４５】
更に、離れた４素子間の拡張クロス入替えによる変換ならば同時に１か所、２か所、３か所、４か所、５か所、２５か所で行なえる。他の入替え領域をまたがないように拡張クロス入替えをしただけでも、３０種類を超す新たな正規形十魔方陣（子）を形成できる。
【００４６】
図５は、各象限内における拡張及びクロス入替えの例である。以下入れ替えを⇔で示すこととする。第二象限内で言えば、外陣側４個ａ１１⇔ａ２２、ａ１２⇔ａ２１、ａ３１⇔ａ４２、ａ３２⇔ａ４１のクロス入替え及び内陣側４個ａ１３⇔ａ２４、ａ１４⇔ａ２３、ａ３３⇔ａ４４、ａ３４⇔ａ４３のクロス入替えを行なう。
【００４７】
さらに、拡張ａ１５⇔ａ２５、ａ３５⇔ａ４５、ａ５１⇔ａ５２、ａ５３⇔ａ５４を行う。他の象限についても同様に行列及び対角線の各和を５０５にするように、拡張、クロス入れ替えを行う。
【００４８】
図６は、他象限に亘る拡張クロス入替えの例である。第二象限で言えば、第四象限に亘って対角線上で、外陣側の左上、右下をクロス入替えａ１１⇔ａ００するとともに内陣側左上、右下のクロス入替えａ４４⇔ａ７７を行う。さらに、行列及び対角線の各和を５０５にするように、第１行第１０行及び第４行第７行と第１列第１０列及び第４列第７列の拡張入替えを行う。
【００４９】
図７は、拡張クロス入替えｘ１ｘ２変換（非可逆）の演算例である。図４に、ｘ１として図５を、ｘ２として図６を使用して変換した例である。前出した何れとも内容の異なる新たな魔方陣を生成し得たことを示している。図７に更に例えばｘ３として図５のような変換を施せば、ａ１１とａ９９とが入れ替った何れとも内容の異なる新たな高次魔方陣を生成し得る。
【００５０】
発明者は、魔方陣は、同一の拡張クロス入替えを続けると元に戻るという後退演算を呈すること、異なる拡張クロス入替えを続けると新たな魔方陣を生成するという非可逆な前進演算を呈することを発見した。
【００５１】
３５種類を超す拡張クロス入替え技法の一つを、たとえばｘ１、他の一つをｘ２と置く。複数回の演算ｘ１ｘ１やｘ１ｘ２ｘ２ｘ１は元どおりに戻す演算例であるが、ｘ１やｘ２、ｘ１ｘ２やｘ２ｘ１とかｘ１ｘ２ｘ１やｘ１ｘ２ｘ１ｘ２などは非可逆な演算となって新たな正規形十魔方陣（孫や曾孫に相当する）を形成できる。
【００５２】
３５種類の拡張クロス入れ替えを例えば２４種類の系に施した場合には、正規形十魔方陣（子や孫や曾孫の子や孫や曾孫を含む）総数は重複組合せと順列との積で求められ、２４×３５Ｈ６×６！＝２４×４０Ｃ６×６！＝２４×３５×３６×３７×３８×３９×４０／６！×６！＝６６３億２７２０万６４００種もの正規形十魔方陣を形成できる。
【００５３】
図８は、高次魔方陣の補数演算例である。次元数ｎの高次魔方陣の行列内の各要素数は、図４に示した通り１、２２，…ｎ２である。十魔方陣ではｎ＝１０であり、ｎ２＝１００である。魔方陣の行列内の各要素に対する加減算としてマトリクス演算が成り立つ。一般には補数として何を選んでもよい。
【００５４】
ここで上げ底にしない場合は、補数としてｎ２＋１を選ぶ。十魔方陣ではｎ２＋１＝１０１を使用し、行列内の各要素を１．．１００にする。更に正規形魔方陣になるように回転処理を施しておく。一部をｎ２＋１＋ｄなど（例えば上げ底ｄ＝１、各行列対角線の和＝５０５＋１０ｄ）にする方式も形成できプログラムとして利用できる。
【００５５】
図９は、図４に縦中心線を軸として回転を施した例である。数列を左側第１列から右側第１０列の順に読む方式とする場合には、図９は図４とは異なる数列を算出できる。
【００５６】
図１０は、図４に対角線を軸として回転を施した例である。数列を左側第１列から右側第１０列の順に読む方式とする場合には、図１０は図４と異なる数列を算出できる。
【００５７】
各正規形十魔方陣は、自身並びに補数変換を施して作られる二つの正規形十魔方陣を回転するだけで１６種の十魔方陣を算出できる。これらの各行を左右方向に辿るだけで、「１．．１００を使用した」「非繰り返しな」「１６００個から成る」「十進数列」を算出できる。
【００５８】
これらの十進数列を１６進数化し、８ビット(１バイト)にパック化した数列、さらには０と１の「非繰り返しな」「１２８００個から成る」２進数列に変形できる。また、子や孫や曾孫を整然と組み込める。このようにして、「非繰り返しな」「１２８００の倍数個から成る」「２進数化された通信文の長さに合致させた」２進数列鍵を容易に構成できる。
【００５９】
このようにして得られた２進数列鍵の構成は、１が３９．９％、０が６０．１％であり、暗号通信に必要なＥＸＯＲ処理用の２進数列鍵に適している。ＡＮＫ文字８単位コード表や漢字コード表から構成された片仮名、平仮名、漢字や英数字を含む日本語や英語の通信文を２進数列化し、上記２進数列鍵でＥＸＯＲ処理した暗号文では１の構成比が６０％から４０％の範囲に収まる。
【００６０】
なお、１．．２５６を１６進化し８ビット１バイトにパック化すれば、２進数列鍵の構成比は、理論上１が５０％、０が５０％になるが、通信回線では偶数パリティ方式が採用されるなどその必要性は少ない。
【００６１】
図１１は、高次魔方陣の配列内に他の数列ＣをＱ字形に包含させ、２５個を置換した例である。マトリクス演算と無関係に置換できる。各行各列の和や対角線の和は５０５から外れた値となっている。別途、魔方陣演算プログラムを利用すれば、図４どおりの元の２５個の数値及び他の数列Ｃの２５個の数値をそれぞれ算出できる。これを数値秘匿技法の一つに応用できる。
【００６２】
図１２は、図３に掲げた本発明の方式をＡＮＫコード表の半角文字に適用した場合の２進数暗号コードの例である。
【００６３】
図１３は、図３に掲げた本発明の方式を漢字コード表の全角文字に適用した場合の２進数暗号コードの例である。
【００６４】
図１４は、半角文字「１」を例にとり送受信する際のコード生成順序を説明するフロー図である。ステップ２では、数字「１」をＡＮＫコード化し、（３１）１６に変換する。このコードをステップ３で（１１００）１６を加えてずらすと（１１３１）１６となる。
【００６５】
ステップ４ではコード（１１３１）をそれぞれ２進数コード（０００１）２、（０００１）２，（００１１）２，（０００１）２へそれぞれ変換する。ステップ５ではこのコードへそれぞれ（１０００）2を加えてずらしを行い、２進数コード（１００１）２、（１００１）２，（１０１１）２，（１００１）２を得る。
【００６６】
次にステップ６では、送信側から別途入手した鍵を利用して選択された魔方陣数列から例えば１及び９３を入手する。この魔方陣は既に説明したように１，９３，のように１から１００までの整数が正方形にその行、列、対角線方向の和が５０５になるように配置されたものである。この魔方陣要素１，９３を１６進数化するとそれぞれ（０１）１６、（５Ｄ）１６となる。
【００６７】
ステップ８ではこのコードを２進数に変換し、それぞれ（００００）２、（０００１）２，（０１０１）２，（１１０１）２へと変換する。ステップ９ではステップ５、及び８で作られた二つの２進数列を排他的論理和演算し、（１００１）２，（１０００）２、（１１１０）２，（０１００）２を得る。このコードをそのまま送信しても良いが、ここで通信時間を短縮するために一旦２進数４ビット、５ビット、６ビット、７ビットや８ビットを纏めてＡＮＫコード表やシフトＪＩＳコード表の一部を用いて、半角文字記号や漢字に置き換える。ＡＮＫコードの文字、記号は１バイトで送信できるから、ＡＮＫコード化した方が効果があがる。ステップ１０ではこの２進数を４ビットずつ纏めて１６進数で用いる英数字表現（９８Ｅ４）１６へ変換したものを掲げた。さらにステップ１１で２進数へ変換し、受信側へ送信する。他の文字についても同様に変換される。
【００６８】
一方受信側では予め送信側から入手している鍵に基づいて魔方陣の数列である（１）１０、（９３）１０を選択する。
【００６９】
ステップ１３でこの数列をそれぞれ１６進数化すると、それぞれ（０１）１６及び（５Ｄ）１６となる。ステップ１４では、この１６進化コードを２進数化し、（００００）２，（０００１）２，（０１０１）２，（１１０１）２のコードを得る。
【００７０】
ステップ１５ではステップ１１で得られた２進数とステップ１４で得られた２進数とを排他的論理和演算を行い、２進数列（１０１１）２，（１００１）２，（１０１１）２、（１００１）２を作成する。
【００７１】
ステップ１６では、この２進数列にずらしを与えるために２進数列（１０００）２を減算することにより（０００１）２，（０００１）、（００１１）２、（０００１）２を得る。このコードを１６進化コードで表すと（１１３１）１６となる。
【００７２】
さらにステップ１８でずらしを施すためにこのコードから（１１００）１６引くと（３１）１６となる。このコードをＡＮＫコード半角文字表示にすると「１」となる。これは送信された原情報である数字「１」である。他の文字についても上述と同じようにして変換され送受信される。
【００７３】
ここではＡＮＫコードずらし例（１１００）１６を示したが。また２進数４桁毎にそれぞれ同一なずらし８を施すことも可能である。
【００７４】
各桁毎に異なるずらし（８６４５）１６ずらしを施してもよい。図１４の(10)通信文字列欄においては、２進数を４ビットずつ纏め、例えば１６進数暗号コード（９８Ｅ４）１６（ＢＦＢ７）１６に置換したりして、通信回線使用時間を短縮することができる。また、図３に掲げたとおり、文字列の先頭や末尾に番号を付加し、分割した通信文を管理することができる。
【００７５】
図１５は、本発明の一実施形態の暗号化方法を説明するものであり、図１３の中で、全角文字「関」を例にして送受信時のコード生成順序を説明するフロー図である。ステップ２では、漢字「関」をシフトＪＩＳコード（８ＡＤ６）１６に変換する。
【００７６】
ステップ３ではこのコードをＪＩＳ１６進コード（３４５８）１６へ変換する。ステップ４ではコード３４５８をそれぞれ２進数コード（００１１）２、（０１００）２，（０１０１）２，（１０００）２へそれぞれ変換する。ステップ５ではこのコードへそれぞれ１０００を加えてずらしを行う。
【００７７】
次にステップ６では、送信側から別途入手した鍵を利用して選択された魔方陣数列から例えば１及び９３を入手する。この魔方陣は既に説明したように１，９３のように１から１００までの整数が正方形内にそれぞれ行、列、対角線方向の和が５０５になるように配置されたものである。この魔方陣要素１，９３を１６進数化するとそれぞれ（０１）１６、（５Ｄ）１６となる。
【００７８】
ステップ８ではこのコードを２進数に変換し、それぞれ（００００）２、（０００１）２，（０１０１）２，（１１０１）２へと変換する。ステップ９ではステップ５、及び８で作られた二つの２進数列を排他的論理演算し、（１０１１）２，（１１０１）２、（１０００）２，（１１０１）２を得る。ステップ１０ではこの２進数をそれぞれ４ビットずつ纏め（ＢＤ８Ｄ）１６へ変換し、受信側へ送信する。他の文字についても同様に変換される。
【００７９】
一方、受信側ではこのコードを受信し、ステップ１１で２進数に変換する。したがってその結果はステップ９の結果と同じ（１０１１）２，（１１０１）２、（１０００）２，（１１０１）２である。一方受信側では予め送信側から入手している鍵に基づいて魔方陣の数列である（１）１０、（９３）１０を選択する。
【００８０】
ステップ１３でこの数列をそれぞれ１６進数化すると、それぞれ（０１）１６及び（５Ｄ）１６となる。ステップ１４では、この１６進化コードを２進数化し、（００００）２，（０００１）２，（０１０１）２，（１１０１）２のコードを得る。
【００８１】
ステップ１５ではステップ１１で得られた２進数とステップ１４で得られた２進数とを排他的論理和演算を行い、２進数列（１０１１）２，（１１００）２，（１１０１）２、（００００）２を作成する。
【００８２】
ステップ１６では、この２進数列にずらしを与えるために２進数列（１０００）２を加算することにより（００１１）２，（０１００）、（０１０１）２、（１０００）２を得る。このコードを１６進化コードで表すと（３４５８）１６となる。
【００８３】
さらにステップ１８でこのコードをシフトＪＩＳコード化すると（８ＡＤ６）16となり、これは送信された原情報である漢字「関」である。他の文字についても上述と同じようにして変換され送受信される。
【００８４】
ここでは４桁に同一である（１０００）２だけのずらし（数字８だけずらす）を例示したが各桁毎に異なる（８６４５）１６だけずらすことも可能である。
【００８５】
図１５は、図３に示すような漢字コード化ずらしを行う例を示す。漢字「関」はシフトＪＩＳコードで表すと（８ＡＤ６）16である。これはＪＩＳ１６進コードで表すと（３４５８）１６である。ここで添え字１６は１６進数を表す。このコードを＋（１１１１）１６ずらすと（４５６９）１６に替わり漢字「悼」になる。
【００８６】
さらに任意に選択したシフトＪＩＳコード（９ＦＦＦ）１６からこのコード（９ＦＦＦ）１６を差し引く演算を実行すると（（９ＦＦＦ）１６−（４５６９）１６）、「晉」（５Ａ９６）１６に変わる。この操作を逆方向に行えば「晉」→「悼」→「関」で復元できる。
【００８７】
図１５のステップ１０においては、通信文字列４ビットを一文字に纏めて、１６進数暗号コード（ＢＤ８Ｄ）１６に置換している。ＡＮＫコード表の英数字・片仮名記号を使用すれば１２８個の半角文字（各１バイト）が得られる。さらに、５ビット、６ビット、７ビットを纏めて通信文字列を短縮したものとする。８ビット以上を纏める場合には、シフトＪＩＳコードの平仮名や漢字の一部を纏め表に追加しておく。このように置換することにより通信回線使用時間を短縮することができる。
【００８８】
また、図３に掲げたとおり、文字列の先頭や末尾に分割番号を付加し通信文全体を管理することができる。図１３から図１５では、半角文字の例、全角文字の例について説明したが送信受信に亘って半角文字と全角文字が混在する日本語向きのプログラムにすることができる。
【００８９】
以上の説明では、送受信を対象として説明したが、本発明の間接鍵方式は通信分野のみならず、情報記録媒体内にスクランブル処理加工を介在させて販売される映像・音楽などの分野にも適用しうる。
【００９０】
また、以上の説明では、拡張クロス入替えに富む十魔方陣を主体に述べているが、電算機器を使用しても未だ総数が確定していない六次以上の高次魔方陣を利用しても本発明を実施することが可能である。
【図面の簡単な説明】
【図１】本発明の一実施形態を示すブロックダイアグラムである。
【図２】暗号化、復号化の一例を示す図である。
【図３】図１で使用するセキュリテを説明するためのフローチャートである。
【図４】本発明で使用する高次魔方陣を説明する図で、十次魔方陣を示す。
【図５】図４に示す魔方陣に同一象限内で拡張及び、拡張クロス替えを施した例を示す図である。
【図６】図４に示す魔方陣に他象限に亘り拡張クロス替えを施した例を示す図である。
【図７】図４に示す魔方陣に図５の拡張及び拡張クロス替えＸ１及び図６に示すクロス替えＸ２を施した例を示す図である。
【図８】補数演算を施した例を示す図である。
【図９】図４示す魔方陣に縦中心線を軸に回転を施した例を示す図である。
【図１０】図４に示す魔方陣に対角線を軸に回転を施した例を示す図である。
【図１１】高次魔方陣の配列内に他の数列ＣをＱ字形状に包含させ、２５個を置換した例を示す図である。
【図１２】２進数コードの例を示す図である。
【図１３】平文及びそれを２進数コード化した例を示す図である。
【図１４】図１２の半角文字「１」の送受信時のコード生成順序を説明する図である。
【図１５】図１３の全角文字「関」の送受信時のコード生成順序を説明するための図である。
【符号の説明】
２…２進数化手段、４…魔方陣、６…２進数化手段、８…排他的論理和手段。
【図１】
0004554851.tif 000002
【図２】
0004554851.tif 000003
【図３】
0004554851.tif 000004
【図４】
0004554851.tif 000005
【図５】
0004554851.tif 000006
【図６】
0004554851.tif 000007
【図７】
0004554851.tif 000008
【図８】
0004554851.tif 000009
【図９】
0004554851.tif 000010
【図１０】
0004554851.tif 000011
【図１１】
0004554851.tif 000012
【図１２】
0004554851.tif 000013
【図１３】
0004554851.tif 000014
【図１４】
0004554851.tif 000015
【図１５】
0004554851.tif 000016