(57)【要約】      （修正有）【課題】コンピュータによる通信で使用可能な、解読不可能か或いはそれに近いといえる、実用性の高い暗号技術を用いる送受信システム、送信装置、受信装置、方法及びコンピュータプログラムを提供する。【解決手段】第１通信装置１１は、処理対象データを暗号化して、第２通信装置１２に送信する。送信対象データは、テキストについてのデータであり平文である。第１通信装置１１は、送信対象データを、送信対象データに含まれる文字を特定するコードのビット長と同じかそれより短い長さに切断して多数の送信対象切断データを生成し、送信対象切断データ毎に暗号化を行う。送信対象切断データを暗号化して得られた暗号化切断データが、第１通信装置１１から第２通信装置１２へと送られる。【選択図】図１
2020120297.tif 000002
【特許請求の範囲】
【請求項１】
テキストについてのデータであり平文である送信対象データを暗号化してから相手側に送る送信装置と、前記送信装置から受付けたデータを復号化して送信対象データにすることができる受信装置と、を含む送受信システムであって、
前記送信装置は、
前記送信対象データを所定のビット数毎に切断して複数の送信対象切断データにする送信装置切断部と、
前記送信対象切断データを、所定のアルゴリズム及び鍵によって暗号化して暗号化切断データとする暗号化部と、
前記暗号化切断データを前記受信装置に送信する送信部と、
を備えているとともに、
前記受信装置は、
前記暗号化切断データを前記送信装置から受信する受信部と、
前記送信装置から受取った一連のデータとされた前記暗号化切断データを、前記暗号化切断データ毎に切断する受信装置切断部と、
前記暗号化切断データを、前記送信装置の前記暗号化部で用いられたアルゴリズム及び鍵と同じアルゴリズム及び鍵によって復号化して送信対象切断データとする復号化部と、
復号化された前記送信対象切断データを接続して前記送信対象データにする接続部と、
を備えているとともに、
前記送信装置切断部は、前記送信対象データを、前記テキストに含まれる文字を特定するコードのビット長と同じかそれよりも短いビット長毎に切断して複数の送信対象切断データにするようになっており、
前記暗号化部は、前記送信対象切断データを暗号化する場合に、前記送信対象切断データの少なくとも１つについて、他の送信対象切断データを暗号化するときに実行する暗号化の方法と、暗号化の方法を異ならせるようになっており、
前記復号化部は、前記受信装置切断部によって得られた前記暗号化切断データを復号化する際に、前記送信装置の前記暗号化部で暗号化の方法を異ならせたのに合わせて復号化の方法を異ならせるようになっている、
送受信システム。
【請求項２】
テキストについてのデータであり平文である送信対象データを暗号化してから相手側に送る送信装置と、前記送信装置から受付けたデータを復号化して送信対象データにすることができる受信装置と、を含む送受信システムを、前記受信装置との組合せにより構成する送信装置であって、
前記送信対象データを所定のビット数毎に切断して複数の送信対象切断データにする送信装置切断部と、
前記送信対象切断データを、所定のアルゴリズム及び鍵によって暗号化して暗号化切断データとする暗号化部と、
前記暗号化切断データを前記受信装置に送信する送信部と、
を備えているとともに、
前記送信装置切断部は、前記送信対象データを、前記テキストに含まれる文字を特定するコードのビット長と同じかそれよりも短いビット長毎に切断して複数の送信対象切断データにするようになっており、
前記暗号化部は、前記送信対象切断データを暗号化する場合に、前記送信対象切断データの少なくとも１つについて、他の送信対象切断データを暗号化するときに実行する暗号化の方法と、暗号化の方法を異ならせるようになっており、
前記受信装置が、
前記暗号化切断データを前記送信装置から受信する受信部と、
前記送信装置から受取った一連のデータとされた前記暗号化切断データを、前記暗号化切断データ毎に切断する受信装置切断部と、
前記暗号化切断データを、前記送信装置の前記暗号化部で用いられたアルゴリズム及び鍵と同じアルゴリズム及び鍵によって復号化して送信対象切断データとする復号化部と、
復号化された前記送信対象切断データを接続して前記送信対象データにする接続部と、
を備えているものとされ、
前記復号化部は、前記受信装置切断部によって得られた前記暗号化切断データを復号化する際に、前記送信装置の前記暗号化部で暗号化の方法を異ならせたのに合わせて復号化の方法を異ならせるようになっている、
ものとされる、
送信装置。
【請求項３】
前記送信装置切断部は、前記送信対象データを、一定のビット数に切断するようになっている、
請求項２記載の送信装置。
【請求項４】
前記送信装置切断部は、最後のものを除く前記送信対象切断データの少なくとも一つが他の送信対象切断データと異なるビット数となるように、前記送信対象データを切断するようになっている、
請求項２記載の送信装置。
【請求項５】
前記送信対象切断データに、前記送信対象データとは関係のないダミーデータを含めることで、すべての前記送信対象切断データのビット数を所定のビット数に揃える混合部を備えているとともに、
前記受信装置は、前記復号化部によって得られた前記送信対象切断データから前記ダミーデータを除去する除去部を備えている、
請求項２〜４のいずれかに記載の送信装置。
【請求項６】
前記混合部は、前記ダミーデータを、前記送信対象データの特定の位置に含めるようになっている、
請求項５記載の送信装置。
【請求項７】
前記混合部は、前記ダミーデータを、前記送信対象データごとに異なる所定の位置に含めるようになっている、
請求項５記載の送信装置。
【請求項８】
前記暗号化部は、前記送信対象切断データを暗号化する方法を、暗号化に用いるアルゴリズム及び鍵の少なくとも一方を変更させることで変更するようになっている、
請求項２記載の送信装置。
【請求項９】
前記暗号化部は、前記送信対象切断データを暗号化する方法を、前記送信対象切断データを暗号化するたびに変更するようになっている、
請求項２記載の送信装置。
【請求項１０】
同じ条件下で疑似乱数である同じ共通データを発生させることのできる送信装置共通データ発生部を備えており、
前記暗号化部は、前記送信装置共通データ発生部が発生した共通データに基いて暗号化の方法を決定するようになっているとともに、
前記受信装置は、前記送信装置共通データ発生部と同じ共通データを発生させることのできる受信装置共通データ発生部を備えており、
前記復号化部は、前記受信装置共通データ発生部が発生した共通データに基いて復号化の方法を決定するようになっている、
請求項８又は９に記載の送信装置。
【請求項１１】
テキストについてのデータであり平文である送信対象データを暗号化してから相手側に送る送信装置と、前記送信装置から受付けたデータを復号化して送信対象データにすることができる受信装置と、を含む送受信システムを、前記送信装置との組合せにより構成する受信装置であって、
前記送信装置が、
前記送信対象データを所定のビット数毎に切断して複数の送信対象切断データにする送信装置切断部と、
前記送信対象切断データを、所定のアルゴリズム及び鍵によって暗号化して暗号化切断データとする暗号化部と、
前記暗号化切断データを前記受信装置に送信する送信部と、
を備えているとともに、
前記送信装置切断部は、前記送信対象データを、前記テキストに含まれる文字を特定するコードのビット長と同じかそれよりも短いビット長毎に切断して複数の送信対象切断データにするようになっており、
前記暗号化部は、前記送信対象切断データを暗号化する場合に、前記送信対象切断データの少なくとも１つについて、他の送信対象切断データを暗号化するときに実行する暗号化の方法と、暗号化の方法を異ならせるようになっている、
ものとされるとともに、
前記送信装置から受取った一連のデータとされた前記暗号化切断データを、前記暗号化切断データ毎に切断する受信装置切断部と、
前記暗号化切断データを、前記送信装置の前記暗号化部で用いられたアルゴリズム及び鍵と同じアルゴリズム及び鍵によって復号化して送信対象切断データとする復号化部と、
復号化された前記送信対象切断データを接続して前記送信対象データにする接続部と、
を備えており、
前記復号化部は、前記受信装置切断部によって得られた前記暗号化切断データを復号化する際に、前記送信装置の前記暗号化部で暗号化の方法を異ならせたのに合わせて復号化の方法を異ならせるようになっている、
受信装置。
【請求項１２】
前記送信装置が、前記送信対象切断データに、前記送信対象データとは関係のないダミーデータを含めることで、すべての前記送信対象切断データのビット数を所定のビット数に揃える混合部を備えているものとされるとともに、
前記復号化部によって得られた前記送信対象切断データから前記ダミーデータを除去する除去部を備えている、
請求項１１に記載の受信装置。
【請求項１３】
前記送信装置は、その前記暗号化部が、前記送信対象切断データを暗号化する方法を、暗号化に用いるアルゴリズム及び鍵の少なくとも一方を変更させることで変更するようになっている、ものとされるとともに、
前記復号化部は、前記受信装置切断部によって得られた前記暗号化切断データを復号化する方法を、復号化に用いるアルゴリズム及び鍵の少なくとも一方を変更させることで変更するようになっている、
請求項１１記載の受信装置。
【請求項１４】
前記送信装置は、その前記暗号化部が、前記送信対象切断データを暗号化する方法を、前記送信対象切断データを暗号化するたびに変更するようになっている、ものとされるとともに、
前記復号化部は、前記受信装置切断部によって得られた前記暗号化切断データを復号化する方法を、前記暗号化切断データを復号化するたびに変更するようになっている、
請求項１１記載の受信装置。
【請求項１５】
前記送信装置は、同じ条件下で疑似乱数である同じ共通データを発生させることのできる送信装置共通データ発生部を備えており、その前記暗号化部は、前記送信装置共通データ発生部が発生した共通データに基いて暗号化の方法を決定するようになっている、ものとされるとともに、
前記送信装置共通データ発生部と同じ共通データを発生させることのできる受信装置共通データ発生部を備えており、
前記復号化部は、前記受信装置共通データ発生部が発生した共通データに基いて復号化の方法を決定するようになっている、
請求項１１記載の受信装置。
【請求項１６】
テキストについてのデータであり平文である送信対象データを暗号化してから相手側に送る送信装置と、前記送信装置から受付けたデータを復号化して送信対象データにすることができる受信装置と、を含む送受信システムを、前記受信装置との組合せにより構成する送信装置にて実行される方法であって、
前記送信装置が実行する、
前記送信対象データを所定のビット数毎に切断して複数の送信対象切断データにする送信装置切断過程と、
前記送信対象切断データを、所定のアルゴリズム及び鍵によって暗号化して暗号化切断データとする暗号化過程と、
前記暗号化切断データを前記受信装置に送信する送信過程と、
を含み、
前記送信装置切断過程では、前記送信対象データを、前記テキストに含まれる文字を特定するコードのビット長と同じかそれよりも短いビット長毎に切断して複数の送信対象切断データにするとともに、
前記暗号化過程では、前記送信対象切断データを暗号化する場合に、前記送信対象切断データの少なくとも１つについて、他の送信対象切断データを暗号化するときに実行する暗号化の方法と、暗号化の方法を異ならせるようにし、
前記受信装置が、
前記送信装置から受取った一連のデータとされた前記暗号化切断データを、前記暗号化切断データ毎に切断する受信装置切断部と、
前記暗号化切断データを、前記送信装置の前記暗号化過程で用いられたアルゴリズム及び鍵と同じアルゴリズム及び鍵によって復号化して送信対象切断データとする復号化部と、
復号化された前記送信対象切断データを接続して前記送信対象データにする接続部と、
を備えており、
前記復号化部は、前記受信装置切断部によって得られた前記暗号化切断データを復号化する際に、前記送信装置の前記暗号化過程で暗号化の方法を異ならせたのに合わせて復号化の方法を異ならせるようになっている、
ものとされる、
方法。
【請求項１７】
テキストについてのデータであり平文である送信対象データを暗号化してから相手側に送る送信装置と、前記送信装置から受付けたデータを復号化して送信対象データにすることができる受信装置と、を含む送受信システムを、前記送信装置との組合せにより構成する受信装置にて実行される方法であって、
前記送信装置が、
前記送信対象データを所定のビット数毎に切断して複数の送信対象切断データにする送信装置切断部と、
前記送信対象切断データを、所定のアルゴリズム及び鍵によって暗号化して暗号化切断データとする暗号化部と、
前記暗号化切断データを前記受信装置に送信する送信部と、
を備えているとともに、
前記送信装置切断部は、前記送信対象データを、前記テキストに含まれる文字を特定するコードのビット長と同じかそれよりも短いビット長毎に切断して複数の送信対象切断データにするようになっており、
前記暗号化部は、前記送信対象切断データを暗号化する場合に、前記送信対象切断データの少なくとも１つについて、他の送信対象切断データを暗号化するときに実行する暗号化の方法と、暗号化の方法を異ならせるようになっている、
ものとされるとともに、
前記受信装置が実行する、
前記送信装置から受取った一連のデータとされた前記暗号化切断データを、前記暗号化切断データ毎に切断する受信装置切断過程と、
前記暗号化切断データを、前記送信装置の前記暗号化部で用いられたアルゴリズム及び鍵と同じアルゴリズム及び鍵によって復号化して送信対象切断データとする復号化過程と、
復号化された前記送信対象切断データを接続して前記送信対象データにする接続過程と、
を含んでおり、
前記復号化過程では、前記受信装置切断過程によって得られた前記暗号化切断データを復号化する際に、前記送信装置の前記暗号化部で暗号化の方法を異ならせたのに合わせて復号化の方法を異ならせる、
方法。
【請求項１８】
テキストについてのデータであり平文である送信対象データを暗号化してから相手側に送る送信装置と、前記送信装置から受付けたデータを復号化して送信対象データにすることができる受信装置と、を含む送受信システムを、前記受信装置との組合せにより構成する送信装置として所定のコンピュータを機能させるためのコンピュータプログラムであって、
前記コンピュータに、
前記送信対象データを所定のビット数毎に切断して複数の送信対象切断データにする送信装置切断過程と、
前記送信対象切断データを、所定のアルゴリズム及び鍵によって暗号化して暗号化切断データとする暗号化過程と、
前記暗号化切断データを前記受信装置に送信する送信過程と、
を実行させるためのものであり、
前記送信装置切断過程では、前記送信対象データを、前記テキストに含まれる文字を特定するコードのビット長と同じかそれよりも短いビット長毎に切断して複数の送信対象切断データにするとともに、
前記暗号化過程では、前記送信対象切断データを暗号化する場合に、前記送信対象切断データの少なくとも１つについて、他の送信対象切断データを暗号化するときに実行する暗号化の方法と、暗号化の方法を異ならせるようにし、
前記受信装置が、
前記送信装置から受取った一連のデータとされた前記暗号化切断データを、前記暗号化切断データ毎に切断する受信装置切断部と、
前記暗号化切断データを、前記送信装置の前記暗号化過程で用いられたアルゴリズム及び鍵と同じアルゴリズム及び鍵によって復号化して送信対象切断データとする復号化部と、
復号化された前記送信対象切断データを接続して前記送信対象データにする接続部と、
を備えており、
前記復号化部は、前記受信装置切断部によって得られた前記暗号化切断データを復号化する際に、前記送信装置の前記暗号化過程で暗号化の方法を異ならせたのに合わせて復号化の方法を異ならせるようになっている、
ものとされる、
コンピュータプログラム。
【請求項１９】
テキストについてのデータであり平文である送信対象データを暗号化してから相手側に送る送信装置と、前記送信装置から受付けたデータを復号化して送信対象データにすることができる受信装置と、を含む送受信システムを、前記送信装置との組合せにより構成する受信装置として所定のコンピュータを機能させるためのコンピュータプログラムであって、
前記送信装置が、
前記送信対象データを所定のビット数毎に切断して複数の送信対象切断データにする送信装置切断部と、
前記送信対象切断データを、所定のアルゴリズム及び鍵によって暗号化して暗号化切断データとする暗号化部と、
前記暗号化切断データを前記受信装置に送信する送信部と、
を備えているとともに、
前記送信装置切断部は、前記送信対象データを、前記テキストに含まれる文字を特定するコードのビット長と同じかそれよりも短いビット長毎に切断して複数の送信対象切断データにするようになっており、
前記暗号化部は、前記送信対象切断データを暗号化する場合に、前記送信対象切断データの少なくとも１つについて、他の送信対象切断データを暗号化するときに実行する暗号化の方法と、暗号化の方法を異ならせるようになっている、
ものとされるとともに、
前記コンピュータに、
前記送信装置から受取った一連のデータとされた前記暗号化切断データを、前記暗号化切断データ毎に切断する受信装置切断過程と、
前記暗号化切断データを、前記送信装置の前記暗号化部で用いられたアルゴリズム及び鍵と同じアルゴリズム及び鍵によって復号化して送信対象切断データとする復号化過程と、
復号化された前記送信対象切断データを接続して前記送信対象データにする接続過程と、
を実行させるためのものであり、
前記復号化過程では、前記受信装置切断過程によって得られた前記暗号化切断データを復号化する際に、前記送信装置の前記暗号化部で暗号化の方法を異ならせたのに合わせて復号化の方法を異ならせる、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータを使って行われる暗号化通信技術に関する。
【背景技術】
【０００２】
暗号技術の起源は紀元前にまで遡ると言われている。
よく知られた古い暗号にシーザー暗号がある。シーザー暗号は極めて単純な換字暗号である。暗号技術では、平文を暗号化して暗号文にする者（送信者）と、暗号文を受取りそれを復号化する者（受信者）の２人の登場人物を必要とする。常識的に考えれば分かるであろうが、第三者には看破できず、且つ暗号文を復号化する者が正しくそれを復号化することが可能となっていれば、その暗号は良いものであるといえる。
シーザー暗号で、例えば、アルファベットのみからなる英文を暗号化するとする。ここでは、英文を構成するために用いられるのは２６の文字のみとなる。シーザー暗号では、送信者と受信者とが２つの取極めをしておく。その取極めの１つは、シーザー暗号では、文字を幾つかずらす、という取決めである。もう１つの取決めは、文字をずらす数についての取決めである。前者が、暗号技術におけるアルゴリズムであり、後者が暗号技術における鍵である。例えば、元の平文が「ＩＢＭ」だったとする。それを、上述の２つの取極めにおいて、鍵が「−１」或いは「２５」だと仮定した上で暗号化すると、「ＩＢＭ」という文を構成する各文字は１文字ずつ前に或いは２５文字ずつ後ろにずれて、「ＨＡＬ」となる。この「ＨＡＬ」という暗号文を受取った受信者は、上述のアルゴリズムと鍵を用いて、今度は、暗号化したときに送信者が行ったのとは逆の処理を、暗号文に対して行う。そうすると、「ＨＡＬ」という文を構成する各文字は１文字ずつ後ろに或いは２５文字ずつ前にずれて、「ＩＢＭ」となる。そして、アルゴリズムと鍵の双方を知らない者には、「ＨＡＬ」という暗号文から「ＩＢＭ」という平文を解読することができない。シーザー暗号は、このような単純なものではあるが、少なくともそれが実用されていた時代においては大きな成果をあげていた。
【０００３】
上述のシーザー暗号では、アルゴリズムは１種類のみであり、また暗号化の処理への影響という観点からすると、鍵の数はせいぜい２６種類（或いは逆方向にずらすことまで考えても２６×２＝５２種類）である。そうすると、不正に暗号文を復号化しようとする者は、不正をしようとする者がアルゴリズムを知っていると仮定すると、２６種類（或いは５２種類）の鍵を用いて総当たりすることにより、暗号文を解読できてしまうことになる。
暗号の歴史は、暗号文を解読されないようにしようという努力の歴史である。そのような努力の中で、様々な暗号技術が提案されてきた。もちろんシーザー暗号は極めて簡単な暗号であるからその解読も容易である。しかしながら、現在使用されているシーザー暗号などとは比べ物にならないくらい複雑な技術を用いた暗号でも、特に、送信者と受信者との間で送受信される暗号文の量が多くなった場合には、コンピュータを用いて膨大な暗号文のデータについての解析を行うことにより、結局は暗号文の解読が可能となってしまう。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
とはいえ、過去に解読不可能であることが証明された暗号技術が幾つか存在する。
例えば、バーナム暗号やワンタイムパッド暗号がそれである。これらは幾つかの条件が充足されることが前提となるが、それら条件が充足された場合には解読が不可能であるということが、数学的に証明されている。
バーナム暗号では、平文に対応する多数の孔の開いた長尺のテープと、鍵に相当する多数の開いた長尺のテープを用いる。鍵に相当するテープは、送信者と受信者の双方が同一のものを保持している。送信者は、両テープを重ね合わせた上で、アルゴリズムに相当するある規則、例えば、１本目のテープと２本目のテープとの一方のみに孔が空いている場所には孔を開けるとともに、１本目のテープと２本目のテープとの双方に孔が開いているか或いは両テープの双方に孔が開いていない場所には孔を開けないという規則に従い、３本目のテープを作成する。この３本目のテープが、暗号文に相当する。この規則も、送信者と受信者で共有されている。
３本目のテープは送信者から受信者へ送られる。３本目のテープを受取った受信者は、自らが持つ２本目のテープを３本目のテープに重ね合わせた上で、上述の規則と同じ規則、つまり、３本目のテープと２本目のテープとの一方のみに孔が空いている場所には孔を開けるとともに、また、３本目のテープと２本目のテープとの双方に孔が開いているか或いは両テープの双方に孔が空いていない場所には孔を開けないという規則に従い、新たなテープに適宜孔を開けることで４本目のテープを作成する。
そうすると、４本目のテープは１本目のテープに戻る。つまり、受信者は暗号文としての３本目のテープを、送信者と共有しているアルゴリズム及び鍵としての２本目のテープを用いて、１本目のテープに戻すことができるのである。これにより、暗号化通信が成立する。
【０００５】
このようなバーナム暗号は、「鍵としての２本目のテープが毎回異なるものとされ且つ第三者に秘密である」、という条件が充足される限りは第三者にとって解読不可能であるということが数学的に証明されている。
とはいえ、送信者と受信者との間でやり取りされる暗号文の量が増えると、それにつれて２本目のテープの長さはどんどん長くなる。言い換えると、バーナム暗号は、暗号化して送信したい平文の文字列の長さと同じ文字数以上の情報量を持つ秘密性が保たれた鍵が存在しないとその安全性を確保することができない。したがって、バーナム暗号は、実用上使いにくい。これが、コンピュータによる暗号化通信においてバーナム暗号があまり使用されていない理由となっている。
また、バーナム暗号と同様に解読不可能な暗号としてワンタイムパッドと呼ばれる暗号技術が知られている。ワンタイムパッド暗号は、鍵として、日めくりカレンダーのように使い捨てされる１回限りの使用しか認められない乱数表の束を、送信者と受信者との間で共有するとともに、暗号化と復号化の都度、送信者と受信者が新たな乱数表を用いてそれを使い捨てていくというものである。送受信される文字数が増えれば乱数表の束も当然厚くなる。したがって、ワンタイムパッド暗号にも、バーナム暗号と同様の実用上の使いにくさが存在する。
【０００６】
バーナム暗号やワンタイムパッド暗号がそれ程普及していない理由は、上述のように、バーナム暗号やワンタイムパッド暗号は、ある平文のデータを暗号化する前に、その平文と同じだけの情報量を持つ長い或いはデータ量の大きい鍵を、送信者と受信者との間で持ち合うことが必要となるからである。鍵は、バーナム暗号であれば、ランダムに孔の空いた長尺のテープであり、ワンタイムパッド暗号の場合には乱数表である。バーナム暗号とワンタイムパッド暗号のいずれの場合でも、同じ鍵は一度だけしか使用できないという条件も、暗号の完全さを保証するには必要となる。
したがって、バーナム暗号やワンタイムパッド暗号を用いる際には、暗号化通信を行う度にそのような長く一度きりしか使えない鍵をどのようにして送信者と受信者がともに持つのか、ということが大きな問題となる。しかも、送信者と受信者との間における鍵の共有は、暗号文の送受信が行われる度に必要であり、送受信の回数が増えるとそれを実現するための負担は益々大きくなる。送信者と受信者とが物理的に接触することができるのであればそれは簡単であるが、それができるのであれば暗号化通信は不要である。このような事情により、バーナム暗号もワンタイムパッド暗号も、実用性が低い。
【０００７】
本願発明は、コンピュータによる通信で使用可能な、解読不可能か或いはそれに近いといえる、実用性の高い暗号技術を提供することをその課題とする。
【課題を解決するための手段】
【０００８】
かかる課題を解決するため、本願発明者は、以下に説明する発明を提案する。
本願発明は、テキストについてのデータであり平文である送信対象データを暗号化してから相手側に送る送信装置と、前記送信装置から受付けたデータを復号化して送信対象データにすることができる受信装置と、を含む送受信システムである。
この送受信ステムにおける前記送信装置は、前記送信対象データを所定のビット数毎に切断して複数の送信対象切断データにする送信装置切断部と、前記送信対象切断データを、所定のアルゴリズム及び鍵によって暗号化して暗号化切断データとする暗号化部と、前記暗号化切断データを前記受信装置に送信する送信部と、を備えている。
また、この送受信システムにおける受信装置は、前記暗号化切断データを前記送信装置から受信する受信部と、前記送信装置から受取った一連のデータとされた前記暗号化切断データを、前記暗号化切断データ毎に切断する受信装置切断部と、前記暗号化切断データを、前記送信装置の前記暗号化部で用いられたアルゴリズム及び鍵と同じアルゴリズム及び鍵によって復号化して送信対象切断データとする復号化部と、復号化された前記送信対象切断データを接続して前記送信対象データにする接続部と、を備えている。
ここまでは、本願の送受信システムは、従来の送受信システムと大きく変わるものではない。送信装置と、受信装置との間での暗号化切断データの送受信は、インターネットその他のネットワークを介して行われても良いし、そうでなくても良い。
他方、本願の送受信システムにおける前記送信装置切断部は、前記送信対象データを、前記テキストに含まれる文字を特定するコードのビット長と同じかそれよりも短いビット長毎に切断して複数の送信対象切断データにするようになっており、前記暗号化部は、前記送信対象切断データを暗号化する場合に、前記送信対象切断データの少なくとも１つについて、他の送信対象切断データを暗号化するときに実行する暗号化の方法と、暗号化の方法を異ならせるようになっており、前記復号化部は、前記受信装置切断部によって得られた前記暗号化切断データを復号化する際に、前記送信装置の前記暗号化部で暗号化の方法を異ならせたのに合わせて復号化の方法を異ならせるようになっている。
本願の送受信システムでは、暗号化して送信装置から受信装置に送る対象となる送信対象データは、テキストのデータである。テキストは、文字、数字、記号を含む。スペースも文字に含まれる。他方、テキストのデータは、動画、静止画を含む画像、音声等のデータを含まない。現状暗号化通信技術においてそれを破られることにより大きな被害が生じているのは、送信対象データがテキストの場合である。本願発明では、特にそのような場合に焦点を当てている。現在のコンピュータ技術では、テキストは、０、１のデータを羅列したコードに置き換えて用いられており、１つのコードによって１つの文字（数字、記号を含む。特に断らない限り、以下も同じである。）が特定されるようになっている。例えば、１Byte文字と称されることのある英語（記号を含む、以下同じ。）の文字は、１Byte（８bit）の長さのコードで１文字が特定され、２Byte文字と称されることのある日本語の文字は、２Byte（１６bit）の長さのコードで１文字が特定されることになる。
そして、本願発明における送信装置の送信装置切断部は、暗号化部が暗号化の処理乃至演算を１回で行うデータの大きさである送信対象切断データのビット長が、テキストに含まれる文字を特定するコードのビット長と同じかそれよりも短くなる（当然０bitではない。）ようにして、送信対象データを切断するようになっている。
本願発明の送受信システムにおける送信装置では、文字を特定するコードのビット長と同じかそれよりも短いデータを１単位として暗号化が行われ、本願発明の送受信システムにおける受信装置では、復号化の処理を行う度に、文字を特定するコードのビット長と同じかそれよりも短いデータが得られることになる。
しかも、本願発明の送受信システムにおける送信装置では、平文のテキストに含まれていた文字数と同じかそれ以上の回数行われる送信対象切断データを暗号化する処理のうち少なくとも１回は、他の送信対象切断データを暗号化する処理とは異なる方法で実行される。当然、受信装置で文字数以上の回数行われる暗号化切断データを復号化する処理のうちの少なくとも１回は、他の暗号化切断データを復号化する処理とは異なる方法で実行される。
以上が本願発明における送受信システムで用いられる暗号の解読不可能性（少なくとも解読困難性）を保証するものとなる。その保証は以下のような理由により得られる。暗号化されたデータの復号化を試みる者、一般的には送信者でも受信者でもない悪意の第三者は、どのようにして自らがその暗号化されたデータの復号化に成功した、と認識できるのであろうか。それは、悪意の第三者が暗号化されたデータに対して復号化を試みることによって得られたデータ或いは文字列が、「意味を持つ」データに戻ったと自らが認識したときである。そして、その文字列が「意味を持つ」ものであるか、「意味を持たない」ものであるかは、自らの得た文字列が意味を把握できるか否か、悪意の第三者の「主観」によって判断されることになる。文字を特定するコードと同じかそれよりも短い単位で暗号化と復号化の処理を行うのであれば、悪意の第三者が復号化を行うことによって得る１単位のデータも１文字を特定するものであるか、或いは１文字すら特定できないものである。結果的に、そのデータを繋げれば、ある文字列に対応するコードとなるかもしれない。しかしながら、１単位毎のデータのうちの少なくとも１つが、異なる方法で暗号化されているのであれば、悪意の第三者が復号化を試みることによって得られた文字列は、複数通りの意味を持つテキストに戻る可能性がある。これは、悪意の第三者が、自らの得た文字列が意味を把握できるか否か、という「主観」による判断では、復号化が成功したと確信できないことを意味する。
シーザー暗号を例にする。例えば、平文が「ＤＯＧ」であったとする。これを「Ｄ」と、「Ｏ」と、「Ｇ」という文字をそれぞれ鍵を変えて暗号化したら（つまり、暗号化の方法を変えて暗号化したら）、「ＨＡＬ」という暗号文になったとする。そして、その暗号文を悪意の第三者が入手し、復号化を試みたとする。そうすると、悪意の第三者が得た平文の文字列は、「ＤＯＧ」となるかもしれないし、「ＣＡＴ」となるかもしれないし、「ＰＩＧ」となるかも知れないし、或いは「ＥＹＥ」や「ＹＥＳ」となるかもしれない。これらはいずれも意味のあるテキストであるから、悪意の第三者は仮に「ＤＯＧ」という正しい平文に辿り着けたとしても、それが正しい文字列であると判断することができなくなる。これにより、本願発明によって暗号化されたデータは、解読が不可能か或いは少なくともそれに近いものとなる。
加えて、本願発明の送受信システムにおける送信装置では、平文のテキストに含まれていた文字数と同じかそれ以上の回数行われる送信対象切断データを暗号化する処理のうち少なくとも１回は、他の送信対象切断データを暗号化する処理とは異なる方法で実行される。暗号化の処理は、繰り返し述べているように、鍵かアルゴリズムの少なくとも一方を変更することによって行うことができる。送信装置と受信装置との間で、暗号化の方法と復号化の方法の変更は、受信装置で暗号化切断データを正しく復号化できるように、同期して変更させる。これにより、悪意の第三者は、どの暗号化切断データがどのような方法により暗号化されたのかわからなくなるため、本願発明によって暗号化されたデータの解読は益々不可能に近づく。本願発明の送受信システムにおける送信装置では、送信対象切断データを暗号化する処理のうち少なくとも１回を、他の送信対象切断データを暗号化する処理とは異なる方法で実行するが、送信対象切断データを暗号化する処理のうちの複数回が同じ方法で実行されることは許容される。したがって、送信装置と受信装置とが複数の共通鍵を用いて、より詳細には異なる複数種類の共通鍵を同期した状態で変更させながら暗号化と復号化の処理を行う場合であっても、その共通鍵のデータ量を送信対象データのデータ量以上とすることが必ずしも必要とされない。したがって、送信装置と受信装置が共有する共通鍵等の鍵の数が少ないこと、或いは鍵の長さが短いことが許容されるので、解読不可能或いはそれに近い性質を保ちながらも、その実用性はバーナム暗号やワンタイムパッド暗号よりも増す。
【０００９】
本願発明者は、受信装置との組合せにより本願発明による送受信システムを構成する送信装置をも本願発明の一態様として提案する。かかる送信装置による効果は、本願発明による送受信システムの効果に等しい。
一例となるのは、テキストについてのデータであり平文である送信対象データを暗号化してから相手側に送る送信装置と、前記送信装置から受付けたデータを復号化して送信対象データにすることができる受信装置と、を含む送受信システムを、前記受信装置との組合せにより構成する送信装置である。
送信装置は、前記送信対象データを所定のビット数毎に切断して複数の送信対象切断データにする送信装置切断部と、前記送信対象切断データを、所定のアルゴリズム及び鍵によって暗号化して暗号化切断データとする暗号化部と、前記暗号化切断データを前記受信装置に送信する送信部と、を備えている。送信装置の前記送信装置切断部は、前記送信対象データを、前記テキストに含まれる文字を特定するコードのビット長と同じかそれよりも短いビット長毎に切断して複数の送信対象切断データにするようになっており、前記暗号化部は、前記送信対象切断データを暗号化する場合に、前記送信対象切断データの少なくとも１つについて、他の送信対象切断データを暗号化するときに実行する暗号化の方法と、暗号化の方法を異ならせるようになっている。
かかる送信装置と組合せて用いられる受信装置は、以下のようなものである。前記受信装置は、前記暗号化切断データを前記送信装置から受信する受信部と、前記送信装置から受取った一連のデータとされた前記暗号化切断データを、前記暗号化切断データ毎に切断する受信装置切断部と、前記暗号化切断データを、前記送信装置の前記暗号化部で用いられたアルゴリズム及び鍵と同じアルゴリズム及び鍵によって復号化して送信対象切断データとする復号化部と、復号化された前記送信対象切断データを接続して前記送信対象データにする接続部と、を備えているものとされ、前記復号化部は、前記受信装置切断部によって得られた前記暗号化切断データを復号化する際に、前記送信装置の前記暗号化部で暗号化の方法を異ならせたのに合わせて復号化の方法を異ならせるようになっている、ものとされる。
【００１０】
本願発明の送信装置における前記送信装置切断部は、前記送信対象データを、一定のビット数に切断するようになっていても構わない。他方、前記送信装置切断部は、最後のものを除く前記送信対象切断データの少なくとも一つが他の送信対象切断データと異なるビット数となるように、前記送信対象データを切断するようになっていても構わない。後者のようにすれば、悪意のある第三者が、暗号化の方法を看破するのがより難しくなる。後者の場合において、他の送信対象切断データとは異なるビット数とされるのを最後の送信対象切断データを除く送信対象切断データとするのは、最後の送信対象切断データは、送信対象データを切断して複数の送信対象切断データを生成した場合に、単にデータ量が不足したという理由で他の送信対象切断データよりも小さいということが生じうるからである。つまり、最後の送信対象切断データ以外の多数の送信対象切断データの中に異なるビット数のものが含まれていれば、「最後のものを除く前記送信対象切断データの少なくとも一つが他の送信対象切断データと異なるビット数となる」という条件が充足される。
送信装置は、前記送信対象切断データに、前記送信対象データとは関係のないダミーデータを含めることで、すべての前記送信対象切断データのビット数を所定のビット数に揃える混合部を備えていてもよい。この場合、前記受信装置は、前記復号化部によって得られた前記送信対象切断データから前記ダミーデータを除去する除去部を備えていてもよい。送信対象切断データにダミーデータを含めることにより、悪意のある第三者が、暗号化の方法を看破するのがより難しくなる。ダミーデータは、送信装置切断部が、送信対象データを、一定のビット数ずつ切断するようになっている場合でも、送信装置切断部が、最後のものを除く送信対象切断データの少なくとも一つが他の送信対象切断データと異なるビット数となるように、送信対象データを切断するようになっている場合でも、送信対象切断データに含めることが可能となる。必要に応じてダミーデータを含めることによりビット数が揃えられた各送信対象切断データのビット長は、テキストに含まれる文字を特定するコードのビット長よりも長くても良い。
前記混合部は、前記ダミーデータを、前記送信対象データの特定の位置に含めるようになっていても構わない。前記混合部は、前記ダミーデータを、前記送信対象データごとに異なる所定の位置に含めるようになっていても構わない。後者のようにすれば、悪意のある第三者が、暗号化の方法を看破するのがより難しくなる。
【００１１】
送信装置における前記暗号化部は、上述したように、送信対象切断データを暗号化する場合に前記送信対象切断データの少なくとも１つについて、他の送信対象切断データを暗号化するときに実行する暗号化の方法と、暗号化の方法を異ならせるようになっている。暗号化部がどのようにして暗号化の方法を変更させるかは自由であるが、暗号化部は、例えば、前記送信対象切断データを暗号化する方法を、暗号化に用いるアルゴリズム及び鍵の少なくとも一方を変更させることで変更するようになっていてもよい。
本願発明の暗号化部は、送信対象切断データを暗号化する場合に前記送信対象切断データの少なくとも１つについて、他の送信対象切断データを暗号化するときに実行する暗号化の方法と、暗号化の方法を異ならせるようになっている。したがって、本願の送信装置における暗号化部は、どこかのタイミングで、暗号化の方法を変更することになる。暗号化の方法を変更するタイミングは自由に決定することができるが、例えば、前記暗号化部は、前記送信対象切断データを暗号化する方法を、前記送信対象切断データを暗号化するたびに変更するようになっていてもよい。もちろん、送信対象切断データを予め定められた所定の数（所定の数は一定の数とは限らない。一定の数の場合、例えば２つ或いは３つ等とすることができる）暗号化する度に、暗号化部が暗号化の方法を変更するようにしてもよい。また、ある時刻がくるたび、暗号化切断データの送信が開始されてから所定の時間が経過した場合、暗号化切断データの送信量が一定量を超えた場合等に、暗号化部は送信対象切断データを暗号化する方法を変更するようになっていてもよい。
【００１２】
上述したように、本願発明の送信装置における暗号化部は、送信対象切断データを暗号化する方法をどこかのタイミングで変更する。そうであるならば、受信装置における復号化部は、暗号化部が送信対象切断データを暗号化する方法及びタイミングがどう変化したかを把握できなければ、暗号化切断データを復号化する処理を正しく行うことができない、ということになる。これは例えば、以下のようにして実現可能である。
例えば、送信装置は、同じ条件下で疑似乱数である同じ共通データを発生させることのできる送信装置共通データ発生部を備えており、前記暗号化部は、前記送信装置共通データ発生部が発生した共通データに基いて暗号化の方法を決定するようになっていてもよい。この場合、前記受信装置は、前記送信装置共通データ発生部と同じ共通データを発生させることのできる受信装置共通データ発生部を備えており、前記復号化部は、前記受信装置共通データ発生部が発生した共通データに基いて復号化の方法を決定するようになっていてもよい。送信装置共通データ発生部と、受信装置共通データ発生部とは、例えば、公知或いは周知のワンタイムパスワードを発生させるための仕組と同等のものとすることができる。ワンタイムパスワードを発生させるための仕組には、ワンタイムパスワードを過去に発生させた数に基いて、離れた２箇所で発生させられるワンタイムパスワードを一致させる方法（いわゆるイベント同期）と、ワンタイムパスワードを発生させるときの時刻に基いて、離れた２箇所で発生させられるワンタイムパスワードを一致させる方法（いわゆる時刻同期）の２種類が知られているが、これらのいずれも、送信装置共通データ発生部と、受信装置共通データ発生部に応用することができる。
【００１３】
本願発明者は、送信装置との組合せにより本願発明による送受信システムを構成する受信装置をも本願発明の一態様として提案する。かかる受信装置による効果は、本願発明による送受信システムの効果に等しい。
一例となるのは、テキストについてのデータであり平文である送信対象データを暗号化してから相手側に送る送信装置と、前記送信装置から受付けたデータを復号化して送信対象データにすることができる受信装置と、を含む送受信システムを、前記送信装置との組合せにより構成する受信装置である。
受信装置と組み合わされる送信装置は、以下のようなものである。前記送信装置は、前記送信対象データを所定のビット数毎に切断して複数の送信対象切断データにする送信装置切断部と、前記送信対象切断データを、所定のアルゴリズム及び鍵によって暗号化して暗号化切断データとする暗号化部と、前記暗号化切断データを前記受信装置に送信する送信部と、を備えているとともに、前記送信装置切断部は、前記送信対象データを、前記テキストに含まれる文字を特定するコードのビット長と同じかそれよりも短いビット長毎に切断して複数の送信対象切断データにするようになっており、前記暗号化部は、前記送信対象切断データを暗号化する場合に、前記送信対象切断データの少なくとも１つについて、他の送信対象切断データを暗号化するときに実行する暗号化の方法と、暗号化の方法を異ならせるようになっている、ものとされる。
受信装置は、前記送信装置から受取った一連のデータとされた前記暗号化切断データを、前記暗号化切断データ毎に切断する受信装置切断部と、前記暗号化切断データを、前記送信装置の前記暗号化部で用いられたアルゴリズム及び鍵と同じアルゴリズム及び鍵によって復号化して送信対象切断データとする復号化部と、復号化された前記送信対象切断データを接続して前記送信対象データにする接続部と、を備えており、前記復号化部は、前記受信装置切断部によって得られた前記暗号化切断データを復号化する際に、前記送信装置の前記暗号化部で暗号化の方法を異ならせたのに合わせて復号化の方法を異ならせるようになっている。
【００１４】
前記送信装置が、前記送信対象切断データに、前記送信対象データとは関係のないダミーデータを含めることで、すべての前記送信対象切断データのビット数を所定のビット数に揃える混合部を備えているものとされている場合、受信装置は、前記復号化部によって得られた前記送信対象切断データから前記ダミーデータを除去する除去部を備えていてもよい。
前記送信装置が、その前記暗号化部が、前記送信対象切断データを暗号化する方法を、暗号化に用いるアルゴリズム及び鍵の少なくとも一方を変更させることで変更するようになっている、ものとされる場合、受信装置における前記復号化部は、前記受信装置切断部によって得られた前記暗号化切断データを復号化する方法を、復号化に用いるアルゴリズム及び鍵の少なくとも一方を変更させることで変更するようになっていてもよい。
前記送信装置が、その前記暗号化部が、前記送信対象切断データを暗号化する方法を、前記送信対象切断データを暗号化するたびに変更するようになっている、ものとされる場合には、受信装置の前記復号化部は、前記受信装置切断部によって得られた前記暗号化切断データを復号化する方法を、前記暗号化切断データを復号化するたびに変更するようになっていてもよい。
前記送信装置が、同じ条件下で疑似乱数である同じ共通データを発生させることのできる送信装置共通データ発生部を備えており、その前記暗号化部は、前記送信装置共通データ発生部が発生した共通データに基いて暗号化の方法を決定するようになっている、ものとされる場合には、受信装置は、前記送信装置共通データ発生部と同じ共通データを発生させることのできる受信装置共通データ発生部を備えており、前記復号化部は、前記受信装置共通データ発生部が発生した共通データに基いて復号化の方法を決定するようになっていてもよい。
以上４点は既に説明したとおりである。
【００１５】
本願発明者は、受信装置との組合せにより本願発明による送受信システムを構成する送信装置にて実行される方法をも本願発明の一態様として提案する。かかる方法による効果は、本願発明による送受信システムの効果に等しい。
一例となるのは、テキストについてのデータであり平文である送信対象データを暗号化してから相手側に送る送信装置と、前記送信装置から受付けたデータを復号化して送信対象データにすることができる受信装置と、を含む送受信システムを、前記受信装置との組合せにより構成する送信装置にて実行される方法である。
この方法は、前記送信装置が実行する、前記送信対象データを所定のビット数毎に切断して複数の送信対象切断データにする送信装置切断過程と、前記送信対象切断データを、所定のアルゴリズム及び鍵によって暗号化して暗号化切断データとする暗号化過程と、前記暗号化切断データを前記受信装置に送信する送信過程と、を含み、前記送信装置切断過程では、前記送信対象データを、前記テキストに含まれる文字を特定するコードのビット長と同じかそれよりも短いビット長毎に切断して複数の送信対象切断データにするとともに、前記暗号化過程では、前記送信対象切断データを暗号化する場合に、前記送信対象切断データの少なくとも１つについて、他の送信対象切断データを暗号化するときに実行する暗号化の方法と、暗号化の方法を異ならせるようにする。
そして、かかる方法を実行する送信装置と組み合わされる受信装置は、以下のようなものとされる。前記受信装置は、前記送信装置から受取った一連とされた前記暗号化切断データを、前記暗号化切断データ毎に切断する受信装置切断部と、前記暗号化切断データを、前記送信装置の前記暗号化過程で用いられたアルゴリズム及び鍵と同じアルゴリズム及び鍵によって復号化して送信対象切断データとする復号化部と、復号化された前記送信対象切断データを接続して前記送信対象データにする接続部と、を備えており、前記復号化部は、前記受信装置切断部によって得られた前記暗号化切断データを復号化する際に、前記送信装置の前記暗号化過程で暗号化の方法を異ならせたのに合わせて復号化の方法を異ならせるようになっている、ものとされる。
【００１６】
本願発明者は、送信装置との組合せにより本願発明による送受信システムを構成する受信装置にて実行される方法をも本願発明の一態様として提案する。かかる方法による効果は、本願発明による送受信システムの効果に等しい。
一例となるのは、テキストについてのデータであり平文である送信対象データを暗号化してから相手側に送る送信装置と、前記送信装置から受付けたデータを復号化して送信対象データにすることができる受信装置と、を含む送受信システムを、前記送信装置との組合せにより構成する受信装置にて実行される方法である。
この方法を実行する受信装置と組み合わされる送信装置は、以下のようなものとされる。前記送信装置は、前記送信対象データを所定のビット数毎に切断して複数の送信対象切断データにする送信装置切断部と、前記送信対象切断データを、所定のアルゴリズム及び鍵によって暗号化して暗号化切断データとする暗号化部と、前記暗号化切断データを前記受信装置に送信する送信部と、を備えているとともに、前記送信装置切断部は、前記送信対象データを、前記テキストに含まれる文字を特定するコードのビット長と同じかそれよりも短いビット長毎に切断して複数の送信対象切断データにするようになっており、前記暗号化部は、前記送信対象切断データを暗号化する場合に、前記送信対象切断データの少なくとも１つについて、他の送信対象切断データを暗号化するときに実行する暗号化の方法と、暗号化の方法を異ならせるようになっている、ものとされる。
そしてかかる方法は、前記受信装置が実行する、前記受信装置から受取った一連のデータとされた前記暗号化切断データを、前記暗号化切断データ毎に切断する受信装置切断過程と、前記暗号化切断データを、前記送信装置の前記暗号化部で用いられたアルゴリズム及び鍵と同じアルゴリズム及び鍵によって復号化して送信対象切断データとする復号化過程と、復号化された前記送信対象切断データを接続して前記送信対象データにする接続過程と、を含んでおり、前記復号化過程では、前記受信装置切断過程によって得られた前記暗号化切断データを復号化する際に、前記送信装置の前記暗号化部で暗号化の方法を異ならせたのに合わせて復号化の方法を異ならせる。
【００１７】
本願発明者は、受信装置との組合せにより本願発明による送受信システムを構成する送信装置として所定の、例えば汎用のコンピュータを機能させるためのコンピュータプログラムをも本願発明の一態様として提案する。かかるコンピュータプログラムによる効果は、本願発明による送受信システムの効果に加えて、汎用のコンピュータを本願発明の送信装置として機能させられることである。
一例となるのは、テキストについてのデータであり平文である送信対象データを暗号化してから相手側に送る送信装置と、前記送信装置から受付けたデータを復号化して送信対象データにすることができる受信装置と、を含む送受信システムを、前記受信装置との組合せにより構成する送信装置として所定のコンピュータを機能させるためのコンピュータプログラムである。
このコンピュータプログラムは、前記コンピュータに、前記送信対象データを所定のビット数毎に切断して複数の送信対象切断データにする送信装置切断過程と、前記送信対象切断データを、所定のアルゴリズム及び鍵によって暗号化して暗号化切断データとする暗号化過程と、前記暗号化切断データを前記受信装置に送信する送信過程と、を実行させるためのものであり、前記送信装置切断過程では、前記送信対象データを、前記テキストに含まれる文字を特定するコードのビット長と同じかそれよりも短いビット長毎に切断して複数の送信対象切断データにするとともに、前記暗号化過程では、前記送信対象切断データを暗号化する場合に、前記送信対象切断データの少なくとも１つについて、他の送信対象切断データを暗号化するときに実行する暗号化の方法と、暗号化の方法を異ならせるようにする。
そして、かかるコンピュータプログラムによって生成される送信装置と組み合わされる受信装置は、以下のようなものとされる。前記受信装置は、前記送信装置から受取った一連のデータとされた前記暗号化切断データを、前記暗号化切断データ毎に切断する受信装置切断部と、前記暗号化切断データを、前記送信装置の前記暗号化過程で用いられたアルゴリズム及び鍵と同じアルゴリズム及び鍵によって復号化して送信対象切断データとする復号化部と、復号化された前記送信対象切断データを接続して前記送信対象データにする接続部と、を備えており、前記復号化部は、前記受信装置切断部によって得られた前記暗号化切断データを復号化する際に、前記送信装置の前記暗号化過程で暗号化の方法を異ならせたのに合わせて復号化の方法を異ならせるようになっている、ものとされる。
【００１８】
本願発明者は、送信装置との組合せにより本願発明による送受信システムを構成する受信装置として所定の、例えば汎用のコンピュータを機能させるためのコンピュータプログラムをも本願発明の一態様として提案する。かかるコンピュータプログラムによる効果は、本願発明による送受信システムの効果に加えて、汎用のコンピュータを本願発明の受信装置として機能させられることである。
一例となるのは、テキストについてのデータであり平文である送信対象データを暗号化してから相手側に送る送信装置と、前記送信装置から受付けたデータを復号化して送信対象データにすることができる受信装置と、を含む送受信システムを、前記送信装置との組合せにより構成する受信装置として所定のコンピュータを機能させるためのコンピュータプログラムである。
このコンピュータプログラムによって生成される受信装置と組み合わされる送信装置は、以下のようなものとされる。前記送信装置は、前記送信対象データを所定のビット数毎に切断して複数の送信対象切断データにする送信装置切断部と、前記送信対象切断データを、所定のアルゴリズム及び鍵によって暗号化して暗号化切断データとする暗号化部と、前記暗号化切断データを前記受信装置に送信する送信部と、を備えているとともに、前記送信装置切断部は、前記送信対象データを、前記テキストに含まれる文字を特定するコードのビット長と同じかそれよりも短いビット長毎に切断して複数の送信対象切断データにするようになっており、前記暗号化部は、前記送信対象切断データを暗号化する場合に、前記送信対象切断データの少なくとも１つについて、他の送信対象切断データを暗号化するときに実行する暗号化の方法と、暗号化の方法を異ならせるようになっている、ものとされる。
そしてかかるコンピュータプログラムは、前記コンピュータに、前記送信装置から受取った一連のデータとされた前記暗号化切断データを、前記暗号化切断データ毎に切断する受信装置切断過程と、前記暗号化切断データを、前記送信装置の前記暗号化部で用いられたアルゴリズム及び鍵と同じアルゴリズム及び鍵によって復号化して送信対象切断データとする復号化過程と、復号化された前記送信対象切断データを接続して前記送信対象データにする接続過程と、を実行させるためのものであり、前記復号化過程では、前記受信装置切断過程によって得られた前記暗号化切断データを復号化する際に、前記送信装置の前記暗号化部で暗号化の方法を異ならせたのに合わせて復号化の方法を異ならせる。
【図面の簡単な説明】
【００１９】
【図１】実施形態の通信システムの全体構成を示す図。
【図２】図１に示した通信システムに含まれる第１通信装置及び第２通信装置の外観を示す斜視図。
【図３】図１に示した通信システムに含まれる第１通信装置及び第２通信装置のハードウェア構成を示す図。
【図４】図１に示した通信システムに含まれる第１通信装置及び第２通信装置の通信装置の構成を示すブロック図。
【図５】図１に示した通信システムで実行される処理の流れを示す流れ図。
【図６】図１に示した通信システムの第１通信装置で実行される暗号化の処理の流れを示す流れ図。
【図７】図１に示した通信システムの第２通信装置で実行される復号化の処理の流れを示す流れ図。
【発明を実施するための形態】
【００２０】
以下、本発明の一実施形態について図面を参照して説明する。
この実施形態による通信システムは、概略で図１に示したように構成される。通信システムは、ネットワーク１３を介して互いに接続された第１通信装置１１、及び第２通信装置１２を含んでいる。第１通信装置１１と第２通信装置１２は、互いに暗号化通信を行う。
第１通信装置１１と第２通信装置１２とは、互いに通信を行えるようになっている。この実施形態では、第１通信装置１１と第２通信装置１２とは、ネットワーク１３によって接続されることでそれが実現されるようになっている。ネットワーク１３は例えばインターネットである。もっともこれに代えて、或いはそれに加えてＬＡＮによってネットワーク１３が構成されていても良い。第１通信装置１１と第２通信装置１２が行うネットワーク１３を介しての通信は、有線、無線を問わない。
【００２１】
第１通信装置１１、第２通信装置１２の構成を説明する。なお、第１通信装置１１と第２通信装置１２は、この実施形態では同様の構成となっているので、代表して第１通信装置１１の構成のみを説明することにする。
【００２２】
第１通信装置１１は、コンピュータであるか、コンピュータを含んでいる。より詳細には、この実施形態における第１通信装置１１は、汎用のコンピュータにより構成されている。
第１通信装置１１は、携帯電話、スマートフォン、タブレット、ノート型パソコン、デスクトップ型パソコン等である。それらはすべて、ネットワーク１３を介しての通信が可能であり、また後述するコンピュータプログラムをインストールすることによって後述する機能ブロックをその内部に生成し、そして後述する処理を実行できるものであることが求められる。他方、それらが実現可能であるのであればそれ以外の仕様は特に問わない。
例えば、第１通信装置１１がスマートフォンかタブレットなのであれば、スマートフォンとしての第１通信装置１１は例えば、Ａｐｐｌｅ  Ｊａｐａｎ合同会社が製造、販売を行うｉＰｈｏｎｅシリーズの製品で良いし、タブレットとしての第１通信装置１１は例えば、Ａｐｐｌｅ  Ｊａｐａｎ合同会社が製造、販売を行うｉＰａｄシリーズの製品でよい。以下、これには限られないが、第１通信装置１１がスマートフォンであることとして話を進める。
【００２３】
第１通信装置１１の外観の一例を図２に示す。
第１通信装置１１は、表示装置２６を備えている。表示装置２６は、静止画又は動画を表示するためのものであり、公知、或いは周知のものを用いることができる。表示装置２６は例えば、液晶ディスプレイである。第１通信装置１１は、また入力装置２５を備えている。入力装置２５は、ユーザが所望の入力を第１通信装置１１に対して行うためのものである。入力装置２５は、公知或いは周知のものを用いることができる。この実施形態における第１通信装置１１の入力装置２５はボタン式のものとなっているが、これには限られず、テンキー、キーボード、トラックボール、マウスなどを用いることも可能である。特に、第１通信装置１１がノート型パソコン、デスクトップ型パソコンである場合には、入力装置２５はキーボードや、マウス等になるであろう。また、表示装置２６がタッチパネルである場合、表示装置２６は入力装置２５の機能を兼ねることになり、この実施形態ではそうされている。
【００２４】
第１通信装置１１のハードウェア構成を、図３に示す。
ハードウェアには、ＣＰＵ（central processing unit）２１、ＲＯＭ（read only memory）２２、ＨＤＤ２３（hard disk drive）、ＲＡＭ（random access memory）２４、が含まれており、これらはバス２８によって相互に接続されている。また、表示装置２６及び入力装置２５もバス２８に接続されている。入力装置２５から入力されたデータはバス２８に入力されＣＰＵ２１に送られるようになっている。また、バス２８から表示装置２６には画像データが送られる場合があり、それを受取った場合、表示装置２６はその画像データに基づく画像を表示することになる。
ＣＰＵ２１は、演算を行う演算装置である。ＣＰＵ２１は、例えば、ＲＯＭ２２、或いはＲＡＭ２４に記録されたコンピュータプログラムを実行することにより、後述する処理を実行する。ＣＰＵ２１の行う演算は、例えば、入力装置２５からの入力に基づいて実行される。上述のコンピュータプログラムは、大容量記録装置の一例であるＨＤＤ（hard disk drive）２３に記録されていても構わず、その場合にはＣＰＵ２１は、ＨＤＤ２３に記録されたコンピュータプログラムを実行することにより、後述する処理を実行する。
ここでいうコンピュータプログラムには、本願発明の送信装置、受信装置としてこの第１通信装置１１を機能させるためのコンピュータプログラムが少なくとも含まれる。このコンピュータプログラムは、第１通信装置１１にプリインストールされていたものであっても良いし、第１通信装置１１の出荷後にインストールされたものであっても良い。このコンピュータプログラムの第１通信装置１１へのインストールは、メモリカード等の所定の記録媒体を介して行なわれても良いし、ＬＡＮ或いはインターネットなどのネットワークを介して行なわれても構わない。
ＲＯＭ２２は、ＣＰＵ２１が後述する処理を実行するために必要な上述のコンピュータプログラムやデータを記録している。ＲＯＭ２２に記録されたコンピュータプログラムとしては、これに限られず、第１通信装置１１がスマートフォンであれば、クライアントをスマートフォンとして機能させるために必要な、例えば、通話や電子メールを実行するためのコンピュータプログラムやデータが記録されていてもよい。第１通信装置１１は、また、ネットワーク１３を介して受取ったデータに基づいて、ホームページを閲覧することも可能とされており、それを可能とするための公知のｗｅｂブラウザを実装していてもよい。
ＲＡＭ２４は、ＣＰＵ２１が処理を行うために必要なワーク領域を提供する。場合によっては、上述のコンピュータプログラムやデータが記録されていてもよい。
ＨＤＤ２３は、上述したように、大容量記録媒体である。ＲＯＭ２２に記録されていると説明したコンピュータプログラム及びデータの少なくとも一部は、ＨＤＤ２３に記録されていても良い。ＨＤＤ２３に含まれるデータには、送信対象データとなりうるものが含まれる場合があり、本実施形態ではそのようにされている。
通信装置２７は、ネットワーク１３を介しての第２通信装置１２との通信を実行する公知或いは周知の手段である。なお、第２通信装置１２の通信装置２７は、ネットワーク１３を介しての第１通信装置１１との通信を実行する。
【００２５】
ＣＰＵ２１がコンピュータプログラムを実行することにより、第１通信装置１１内部には、図４で示されたような機能ブロックが生成される。なお、以下の機能ブロックは、第１通信装置１１を本願発明の送信装置、受信装置として機能させるための上述のコンピュータプログラム単体の機能により生成されていても良いが、上述のコンピュータプログラムと、第１通信装置１１にインストールされたＯＳその他のコンピュータプログラムとの協働により生成されても良い。
第１通信装置１１内には、インターフェイス部３１、前処理部３２、暗号化・復号化部３３、共通データ生成部３４、アルゴリズム生成部３５、鍵生成部３６、通信部３７、及び接続部３８から構成される。
【００２６】
インターフェイス部３１は、バス２８からのデータを前処理部３２に送る機能と、接続部３８からのデータを受取りそれをバス２８に送る機能とを有している。
前処理部３２は、インターフェイス部３１を介してバス２８から受取った送信対象データ又は暗号化データ（複数、又は多数の暗号化切断データが一連となったものを、以下「暗号化データ」という場合がある。）を、所定のビット数毎に切断して、送信対象切断データ又は暗号化切断データを生成し、これを暗号化・復号化部３３に送る機能を有している。送信対象データは、テキストのデータであり、且つ平文のデータである。テキストのデータである送信対象データに含まれる各文字は、各文字を特定するコードによって記述されている。送信対象データ又は暗号化データをどのように切断するかについては後述するが、送信対象切断データは少なくとも、テキストに含まれる文字を特定するコードのビット長と同じかそれよりも短いビット長毎に切断される。これには限られないが、この実施形態における送信対象データに含まれる文字はいわゆる１byte文字である英語であり、各文字を特定するコードのビット長は８ビットである。なお、これには限られないが、この実施形態における前処理部３２は、送信対象データに、後述するような方法で、送信対象データとは関係のないデータであるダミーデータを、必要に応じて含める機能を有している。上述したように、前処理部３２は、送信対象データから送信対象切断データを生成した場合にそれを暗号化・復号化部３３に送るようになっているが、それに加えて、例えばその直前に、送信対象データをこれから切断することを示す情報を、共通データ生成部３４に送るようになっている。また、前処理部３２は、暗号化データから暗号化切断データを生成した場合にそれを暗号化・復号化部３３に送るようになっているが、それに加えて、例えばその直前に、暗号化データをこれから切断することを示す情報を、共通データ生成部３４に送るようになっている。
暗号化・復号化部３３は、送信対象切断データ又は暗号化切断データを前処理部３２から受取り、送信対象切断データを受付けた場合にはそれを暗号化し、暗号化切断データを受付けた場合にはそれを復号化する機能を有している。送信対象データはテキストのデータであり、複数、通常は多数の文字を含んでいる。また、送信対象切断データは、その文字を特定するコードのビット長と同じかそれよりも短い長さで送信対象データを切断したものである。したがって、送信対象切断データの数は、送信対象データに含まれた文字の数と同じかそれ以上となるため、複数、通常は多数である。暗号化・復号化部３３は、その複数か、通常は多数の送信対象切断データに対して、暗号化の処理を行うようになっている。同様に、暗号化・復号化部３３は、複数か、通常は多数の暗号化切断データに対して、復号化の処理を行うようになっている。暗号化及び復号化の処理の詳細については後で述べるが、暗号化と復号化を行う場合、暗号化・復号化部３３は、アルゴリズム生成部３５から後述するようにして供給されたアルゴリズムと、鍵生成部３６から後述するようにして供給された鍵とを用いる。これには限られないが、この実施形態では、アルゴリズムと鍵は、暗号化・復号化部３３が暗号化の処理を行う度、或いは暗号化・復号化部３３が復号化の処理を行う度に、暗号化・復号化部３３に供給されるようになっている。これには限られないが、この実施形態における暗号化・復号化部３３は、暗号化及び復号化の処理を行う場合の処理単位が固定されている。通常、この処理単位は、第１通信装置１１のハードウェア構成、例えば、ＣＰＵ２１の仕様に依存して決定される。この実施形態における上述の処理単位は、これには限られないが８ビットとなっている。一度に暗号化の処理を行う対象となるデータの長さ、或いは処理の単位（以下、「基準ビット数」という。）は、送信対象データに含まれる文字を固定するコードの長さ（この実施形態では８ビット）と同じか、それよりも長い。
共通データ生成部３４は、第１通信装置１１と第２通信装置１２で共通するデータである共通データを順次生成するものである。この実施形態における、第１通信装置１１と第２通信装置１２における共通データ生成部３４は、同じ順番の共通データが同じものになるようにして、順次共通データを発生させるようになっている。これは、この実施形態では、第１通信装置１１及び第２通信装置１２で共通する共通データを発生させるために、いわゆるイベント同期の技術を利用している、ということを意味する。共通データを発生させるための手法は、いわゆる時間同期を用いたものであっても構わない。また、この実施形態における共通データは、必ずしもそうである必要はないが擬似乱数である。生成された共通データは、前処理部３２と、アルゴリズム生成部３５と、鍵生成部３６とに送られる。これには限られないが、この実施形態において、共通データは、暗号化・復号化部３３が暗号化の処理又は復号化の処理を行う度に生成されるようになっている。上述したように、共通データ生成部３４には、前処理部３２から、送信対象データが切断される度、或いは暗号化データが切断される度に、それら切断の直前に、送信対象データ又は暗号化データがこれから切断されることを示す情報が送られてくる。それら情報を受取る度に、共通データ生成部３４は共通データを生成して、前処理部３２と、アルゴリズム生成部３５と、鍵生成部３６とに送るようになっている。
アルゴリズム生成部３５は、共通データ生成部３４から受付けた共通データに基づいてアルゴリズムを生成するものである。このアルゴリズムは、暗号化・復号化部３３で、暗号化処理及び復号化処理を行うときに使用されるものである。アルゴリズム生成部３５は、共通データを受取る度にアルゴリズムを生成するようになっており、生成されたアルゴリズムを、生成された都度暗号化・復号化部３３に送るようになっている。
鍵生成部３６は、共通データ生成部３４から受付けた共通データに基づいて鍵を生成するものである。鍵は、暗号化・復号化部３３で、暗号化処理及び復号化処理を行うときに使用されるものである。鍵生成部３６は、共通データを受取る度に鍵を生成するようになっており、生成された鍵を、生成された都度暗号化・復号化部３３に送るようになっている。
通信部３７は、通信装置２７を介して、ネットワーク１３との間でデータのやり取りを行うものである。暗号化・復号化部３３で送信対象切断データを暗号化することによって生成された暗号化切断データは、接続部３８で接続され、通信部３７、通信装置２７、及びネットワーク１３を介して相手側の通信装置に送られることになる。また、通信部３７は、相手側の通信装置から暗号化データを受付ける。この暗号化データは、通信部３７から前処理部３２に送られることになる。
接続部３８は、暗号化・復号化部３３で暗号化切断データを復号化することによって生成された送信対象切断データを元の順序で接続して一まとめの送信対象データとする機能を有している。この送信対象データは、インターフェイス部３１に送られ、バス２８を介して、必要に応じて、ＨＤＤ２３、或いはＣＰＵ２１などに送られるようになっている。接続部３８は、また、暗号化・復号化部３３で送信対象切断データを暗号化することによって生成された暗号化切断データを接続して一まとめの暗号化データとする機能を有している。この暗号化データは、通信部３７に送られ、通信部３７から相手側の通信装置に送られるようになっている。なお、接続部３８は、暗号化・復号化部３３で送信対象切断データを暗号化することによって生成された暗号化切断データを接続する機能を有しなくてもよい。この場合には、暗号化切断データは暗号化された順に順次相手側の通信装置に送られることになる。接続部３８がそのようなものである場合、暗号化切断データは接続部３８を通らずに通信部３７に直接送られるようにすることができる。
【００２７】
次に、この通信システムで行われる処理の流れについて説明する。
図５を用いて概略で説明すると、この通信システムで行われる処理の流れは以下のとおりである。
まず、第１通信装置１１が送信対象データを暗号化して暗号化データを生成する（Ｓ１１０）。次いで、第１通信装置１１がその暗号化データを第２通信装置１２に送る（Ｓ１２０）。次いで、暗号化データを受取った第２通信装置１２がその暗号化データを復号化して送信対象データに戻す（Ｓ１３０）。
このように、以下の説明では、第１通信装置１１から第２通信装置１２に暗号化データを送ることとするが、第２通信装置１２から第１通信装置１１に暗号化データを送る上述の場合と逆の処理が行われる場合であっても処理の内容に変わりがないことは、自明であろう。
【００２８】
まず、第１通信装置１１が送信対象データを暗号化して暗号化データを生成する上述のＳ１１０の過程について、図６を参照しながら詳しく説明する。
【００２９】
まず、送信対象データの読み出しが行われる。送信対象データは第１通信装置１１から第２通信装置１２に送信する必要のあるデータであればどのようなものでもよい。この実施形態では、送信対象データはＨＤＤ２３に記録されているものとする。例えば入力装置２５から送信対象データを第２通信装置１２へ送れという内容のコマンドが入力された場合、ＣＰＵ２１は、送信対象データをＨＤＤ２３から読み出し、例えばＲＡＭ２４に一時的に記録させる。この送信対象データは、ＲＡＭ２４からバス２８、通信装置２７内のインターフェイス部３１を介して、前処理部３２に送られる（Ｓ１１０１）。
【００３０】
前処理部３２で、送信対象データは、所定のビット数毎に、より詳細には送信対象データのテキストに含まれる文字を特定するコードのビット長と同じかそれよりも短いビット長毎に切断され、送信対象切断データにされる（Ｓ１１０２）。前処理部３２は、必要に応じて、送信対象切断データにダミーデータを含める。
送信対象データから送信対象切断データを生成する方法は一通りであってもよいが、この実施形態では、以下の４通りの方法のいずれかで、送信対象データから送信対象切断データを生成するようになっている。
Ａ）送信対象データを文字を特定するコードのビット長よりも短い一定のビット数で切断して送信対象切断データにするとともに、そのすべてが文字を特定するコードのビット長よりもビット数が短くされている送信対象切断データのそれぞれの一定の位置にダミーデータを含めて、すべての送信対象切断データの長さを基準ビット数に揃える場合
Ｂ）送信対象データを文字を特定するコードのビット長よりも短いビット数の一定のビット数で切断して送信対象切断データにするとともに、そのすべてが文字を特定するコードのビット長よりもビット数が短くされている送信対象切断データのそれぞれの異なる位置にダミーデータを含めて、すべての送信対象切断データの長さを基準ビット数に揃える場合
Ｃ）送信対象データを文字を特定するコードのビット長と同じかそれよりも短いビット数で切断して送信対象切断データにするとともに、文字を特定するコードのビット長よりもビット数の短い送信対象切断データのそれぞれにダミーデータを含めて、すべての送信対象切断データの長さを基準ビット数に揃える場合
Ｄ）送信対象データを文字を特定するコードのビット長と同じビット数（この実施形態ではこのビット数は基準ビット数に等しい。）で切断して送信対象切断データにする場合（この場合には、ダミーデータは使用する必要がない。）
【００３１】
上述した４通りの方法のどれで、送信対象データから送信対象切断データを生成するかは、これには限られないが、この実施形態では、共通データ生成部３４が生成した共通データによって決定されるようになっている。
もっとも、４通りの方法のどれが採用されるかは、第１通信装置１１と第２通信装置１２との間で予め取り決められていても良く、例えば上述した４通りの方法の１つのみが常に使用されるようになっていてもよい。
【００３２】
前処理部３２は、送信対象データを切断する。前処理部３２は、送信対象データを切断する度に、その切断の直前に、送信対象データがこれから切断されることを示す情報を共通データ生成部３４に送る。その情報を受取る度に、共通データ生成部３４は、共通データを生成する。
共通データ生成部３４がどのように共通データを生成するかについて説明する。
これには限られないが、この実施形態における共通データは８行８列の行列（Ｘ）である。
なお、この実施形態において共通データが８行８列の行列であるのは、基準ビット数が８ビットであるからである。例えば、基準ビット数が３２ビットなのであれば、共通データを３２行３２列の行列とすれば良いし、基準ビット数が６４ビットなのであれば、共通データを６４行６４列の行列とすれば良い。
【００３３】
共通データ生成部３４は、必ずしもそうなっている必要はないが、この実施形態では、共通データを、非線形遷移するようなものとして連続して発生させる。
非線形遷移するように共通データを連続して発生させるには、例えば、（１）共通データの生成の過程に、過去の共通データのべき乗の演算を含む、（２）共通データの発生の過程に、過去の２つ以上の共通データの掛け合わせを含む、或いは、（１）と（２）を組み合わせるなどの手法が考えられる。
【００３４】
この実施形態では、共通データ生成部３４は、初期行列として、第０１解（Ｘ０１）と第０２解（Ｘ０２）を予め定められたものとして持っている（例えば、第０１解と第０２解は、ＲＡＭ２４に記録されている）。
共通データ生成部３４は、この初期行列を解生成用アルゴリズムに代入して、第１解（Ｘ１）を以下のように生成する。
第１解（Ｘ１）＝Ｘ０２Ｘ０１＋α（α＝８行８列の行列）
これが最初に生成される共通データである。
次にインターフェイス部３１がバス２８から送信対象データを受付けた場合、共通データ生成部３４は、第２解（Ｘ２）を以下のように生成する。
第２解（Ｘ２）＝Ｘ１Ｘ０２＋α
同様に、インターフェイス部３１がバス２８から送信対象データを受付けるたびに、共通データ生成部３４は、第３解、第４解、……第Ｎ解を、以下のように生成する。
第３解（Ｘ３）＝Ｘ２Ｘ１＋α
第４解（Ｘ４）＝Ｘ３Ｘ２＋α
：
第Ｎ解（ＸＮ）＝ＸＮ−１ＸＮ−２＋α
このようにして生成された解（即ち、共通データ）は、前処理部３２及びアルゴリズム生成部３５に送られるとともに、共通データ生成部３４で保持されることになる。この実施形態では、第Ｎ解（ＸＮ）を生成するために、第Ｎ−１解（ＸＮ−１）と第Ｎ−２解（ＸＮ−２）を、要するに、その直前に生成された２つの解を用いる。したがって、共通データ生成部３４は、新しい解を生成するにあたって、過去に生成された直近２つの解を保持していなければならない（又は、他の何者かがこれら２つの解を保持していなければならない）。逆に過去に生成された直近２つの解よりも古い解は、新しい解を生成するために今後使用されることのないものである。そこで、この実施形態では、常に過去２つの解を共通データ生成部３４で保持することとするが、新しい解が生成されることで直近３つ目の解となったそれまで直近２つ目の解であった解を、その解が記録されていた所定のメモリなどから消去することとしている。
なお、このように生成される解は、非線形遷移するカオス的なものとなり、擬似乱数となる。
【００３５】
非線形遷移を起こさせるには、第Ｎ解を求める際に、上述した
第Ｎ解（ＸＮ）＝ＸＮ−１ＸＮ−２＋α
という式を用いる他に、以下のような式を用いることが考えられる。
例えば、
（ａ）第Ｎ解（ＸＮ）＝（ＸＮ−１）Ｐ
（ｂ）第Ｎ解（ＸＮ）＝（ＸＮ−１）Ｐ（ＸＮ−２）Ｑ（ＸＮ−３）Ｒ（ＸＮ−４）Ｓ
（ｃ）第Ｎ解（ＸＮ）＝（ＸＮ−１）Ｐ＋（ＸＮ−２）Ｑ
などである。
なお、Ｐ、Ｑ、Ｒ、Ｓはそれぞれ所定の定数である。また、数式（ａ）又は（ｃ）を用いる場合には、２つ、数式（ｂ）を用いる場合には４つの初期行列を、共通データ生成部３４は有している。
また、上述したαは定数であったが、これを、特定の変化する環境情報とすることもできる。この環境情報は、時間の経過にしたがって次々と自然発生する情報であって離れた場所でも共通して取得できる情報であり例えば、特定地方の天気に基づいて定められる情報、特定の時間に放送されるあるテレビ局のテレビジョン放送の内容に基づいて定められる情報、特定のスポーツの結果によって定められる情報などである。
このような環境情報から、上述のαを次々に作成し共通情報を生成することにすれば、通信の秘匿性をより高められる。
上述した、数式（ａ）〜（ｃ）の右辺に、α（これは環境情報から生成されたものでもよい。）を加えることももちろん可能である。
生成した共通データを、共通データ生成部３４は、前処理部３２と、アルゴリズム生成部３５と、鍵生成部３６とに送る。
【００３６】
前処理部３２は、共通データを受取る。この状態で、前処理部３２は、その時点における送信対象データの先頭のデータを切断しようとしている。
共通データ（即ち、上述の解）を受付けた前処理部３２は、それにしたがって、上述のＡ）、Ｂ）、Ｃ）、Ｄ）のいずれの方法で送信対象切断データを生成するかを決定する。この実施形態では、これには限られないが、共通データである８行８列の行列を構成する数字を足し合わせた和を４で割り、その余りが０のときはＡ）の方法で、その余りが１のときはＢ）の方法で、その余りが２のときはＣ）の方法で、その余りが３のときはＤ）の方法で、それぞれ送信対象切断データを生成することとしている。
Ａ）の方法で送信対象切断データを生成する場合には、前処理部３２は、インターフェイス部３１から受付けた送信対象データを先頭から順に、送信対象データに含まれる文字を特定するコードのビット数よりも短い一定のビット数（この実施形態では、例えば７ビット）で切断することで、送信対象切断データを生成していく。また、前処理部３２は、送信対象切断データの一定の位置に、ダミーデータを埋め込んでいくことで、すべての送信対象切断データの長さを基準ビット数に揃える。この場合に送信対象データにおいてダミーデータが埋め込まれる位置は予め決定されており、例えば、送信対象切断データの先頭や末尾、或いは２ビット目や３ビット目などの所定の中間の位置とすることができる。このダミーデータは、送信対象データとは無関係のデータであればどのようなものでも構わない。例えば、常に０というデータを埋め込んでいく、又は１というデータを埋め込んでいく、或いは１と０というデータを交互に埋め込んでいくなどの処理が考えられる。更に他の例として、上述の共通データに基づいて、どのようなダミーデータを埋め込んでいくかを決定することもできる。例えば、共通データである８行８列の行列を構成する数字を足し合わせた和を９で割り、その余りが０のときは０、０、０、０…と０を連続し、その余りが１のときは、０、１、０、１…と１つおきに１を挟み込み、その余りが２のときは、０、０、１、０、０、１…と２つおきに１を挟み込み、同様に、余りが３のときは３つおきに、余りが４のときは４つおきに、……余りが９のときは９つおきに１を挟み込むようなものとすることができる。
Ｂ）の方法で送信対象切断データを生成する場合には、前処理部３２は、送信対象データを送信対象データに含まれる文字を特定するコードのビット数よりも短いビット数の一定のビット数（例えば、７ビット）に切断して送信対象切断データにする。また前処理部３２は、すべての送信対象切断データのそれぞれの異なる位置にダミーデータを含めることで、すべての送信対象切断データのビット長を揃える。この場合、ダミーデータの埋め込まれる位置は、送信対象切断データのそれぞれについて、１ビット目、２ビット目、３ビット目…８ビット目、１ビット目、２ビット目…８ビット目、と順に移動していくような、規則的に変化するものでも、或いは、ランダムに（或いは一見ランダムに見えるように）変化するようなものであってもよい。ダミーデータの埋め込まれる位置がランダムに変化する場合には、例えば、ダミーデータの埋め込まれる位置が、共通データに基づいて決定されるようになっていてもよい。
共通データによって、ダミーデータの埋め込まれる基準ビット数を決定する方法としては、例えば、共通データである８行８列の行列を構成する数字を足し合わせた和を８で割り、その余りが０のときは、送信対象切断データ１つおきに、先頭と末尾に交互にダミーデータを埋め込む、余りが１のときは先頭にダミーデータが埋め込まれた送信対象切断データと、末尾にダミーデータが埋め込まれた送信対象切断データが２つおきになるようにする、余りが２のときは先頭にダミーデータが埋め込まれた送信対象切断データと、末尾にダミーデータが埋め込まれた送信対象切断データが３つおきになるようにする、……余りが７のときは先頭にダミーデータが埋め込まれた送信対象切断データと、末尾にダミーデータが埋め込まれた送信対象切断データが８つおきになるようにする、という処理を行うようにすることができる。先頭と末尾のように、ダミーデータを埋め込む位置を固定せずに、その位置を更に動かすようにすることもできる。
Ｃ）の方法により送信対象切断データを生成する場合には、送信対象データを送信対象データに含まれる文字を特定するコードのビット数と同じかそれよりも短いビット数に切断する。この切断は、送信対象データを、８ビットか、８ビットよりも短いランダムな長さに切断することにより行うことができ、例えば、共通データである８行８列の行列を構成する数字を足し合わせた和を８で割り、その余りが０のときは送信対象データのその時点における先頭部分を８ビットで切断し、その余りが１のときは送信対象データのその時点における先頭部分を１ビットで切断し、その余りが２のときは送信対象データのその時点における先頭部分を２ビットで切断し、…その余りが７のときは送信対象データのその時点における先頭部分を７ビットで切断するようにすることができる。また、前処理部３２は、これにより生成された送信対象切断データのうち、基準ビット数よりもビット数の短い送信対象切断データのそれぞれに、ダミーデータを埋め込む。この場合のダミーデータの埋め込み位置は先頭、末尾などの特定の位置であってもよいし、例えば共通データによって特定される変化する所定の位置であってもよい。
Ｄ）の方法で送信対象切断データを生成する場合には、前処理部３２は、インターフェイス部３１から受付けた送信対象データを先頭から順に、送信対象データに含まれる文字を特定するコードのビット数と同じ一定のビット数（この実施形態では、例えば８ビット）で切断することで、送信対象切断データを生成していく。そうすると、ダミーデータを用いずとも、すべての送信対象切断データのビット数は、基準ビット数に揃うことになる。
送信対象データからどのような送信対象切断データが生成されるかは、上述したように、共通データ生成部３４から送られてきた共通データの内容に依存する。いずれの方法で生成されたにせよ、このようにして生成された送信対象切断データは、生成された順番で、暗号化・復号化部３３にストリーム的に送られる。
【００３７】
送信対象切断データの生成と並行して、アルゴリズム生成部３５が、送信対象切断データを暗号化する際に用いられるアルゴリズムを生成する。
この実施形態では、アルゴリズム生成部３５は、アルゴリズムを、共通データを共通データ生成部３４から受取る度に、受取った共通データに基づいて生成する。もっとも、アルゴリズムは、変化しない固定のものであってもよいし、予め準備された複数のアルゴリズムの中から選択されるようになっていてもよい。
この実施形態においては、アルゴリズム生成部３５は、アルゴリズムを以下のようなものとして生成する。
この実施形態におけるアルゴリズムは、『８ビットのデータである送信対象切断データを１行８列の行列Ｙとした場合に、共通データである８行８列の行列Ｘをａ乗してから、時計周りにｎ×９０°だけ回転させた行列に、Ｙを掛け合わせて求められるもの』と定義される。
ここで、ａは所定の定数とされる場合もあるが、この実施形態では、共通データに基づいて変化する数字である。つまり、この実施形態におけるアルゴリズムは、共通データに基づいて変化する。例えばａは、８行８列の行列である共通データに含まれている行列の要素である数すべてを足し合わせて得られる数を５で割った場合の余り（ただし、余りが０の場合はａ＝１とする）のように定めることができる。
また、上述のｎは、鍵によって定められる所定の数である。鍵が一定の数であればｎは固定であるが、以下に説明するように、鍵は共通データに基づいて変化する。つまり、この実施形態では、このｎも共通データに基づいて変化するようになっている。
もっとも、アルゴリズムを他のものとして決定することもできる。
この実施形態では、アルゴリズム生成部３５は、共通データ生成部３４から共通データを受取るたびにアルゴリズムを生成し、それを暗号化・復号化部３３に送る。上述したように、共通データ生成部３４は、前処理部３２が送信対象データから送信対象切断データを生成する度に共通データを生成する。そして、アルゴリズム生成部３５は、共通データを受取る度にアルゴリズムを生成するのであるから、アルゴリズム生成部３５はアルゴリズムを、前処理部３２が送信対象データから送信対象切断データを生成する度に生成することになる。
【００３８】
送信対象切断データの生成と並行して、鍵生成部３６が、送信対象切断データを暗号化する際に用いられる鍵を生成する。
鍵生成部３６は、鍵を、共通データを共通データ生成部３４から受取る度に、受取った共通データに基づいて生成する。もっとも、鍵生成部３６は、固定された同じ鍵を常に暗号化・復号化部３３に提供するようになっていてもよいし、予め準備された複数の鍵から暗号化・復号化部３３に提供する鍵を選択するようになっていてもよい。
この実施形態においては、鍵生成部３６は、鍵を以下のようなものとして生成する。
この実施形態における鍵は、８行８列の行列である共通データに含まれている行列の要素である数すべてを足し合わせて得られる数とされる。したがって、鍵は、この実施形態では、共通データに基づいて変化する。
なお、鍵を他のものとして決定することもできる。
この実施形態では、鍵生成部３６は、共通データ生成部３４から共通データを受取るたびに鍵を生成し、それを暗号化・復号化部３３に送る。上述したように、共通データ生成部３４は、前処理部３２が送信対象データから送信対象切断データを生成する度に共通データを生成する。そして、鍵生成部３６は、共通データを受取る度に鍵を生成するのであるから、鍵生成部３６は鍵を、前処理部３２が送信対象データから送信対象切断データを生成する度に生成することになる。
【００３９】
暗号化・復号化部３３は、アルゴリズム生成部３５から受付けたアルゴリズムと、鍵生成部３６から受付けた鍵に基づいて、前処理部３２から受付けた送信対象切断データを暗号化する（Ｓ１１０３）。上述したように、アルゴリズム生成部３５はアルゴリズムを、前処理部３２が送信対象データから送信対象切断データを生成する度に生成して、暗号化・復号化部３３に送る。同様に、鍵生成部３６は鍵を、前処理部３２が送信対象データから送信対象切断データを生成する度に生成して、暗号化・復号化部３３に送る。その結果、暗号化・復号化部３３は、送信対象切断データを受取る度に、アルゴリズム生成部３５及び鍵生成部３６から、新たなアルゴリズム及び鍵の供給を受け、その供給を受けた最新のアルゴリズム及び鍵を用いて、毎回異なる方法で送信対象切断データの暗号化を行う。
アルゴリズムは、上述したように、『８ビットのデータである送信対象切断データを１行８列の行列Ｙとした場合に、共通データである８行８列の行列Ｘをａ乗してから、時計周りにｎ×９０°だけ回転させた行列に、Ｙを掛け合わせて求められるもの』という決まりであり、鍵であるｎは、上述したような数である。
例えば、ａが３、ｎが６である場合には、Ｘを３乗して得られる８行８列の行列を、６×９０°＝５４０°だけ時計回りに回転させることによって得られた８行８列の行列に、送信対象切断データを掛け合わせて暗号化が行われる。
これにより生成されたデータが暗号化切断データである。
この実施形態では、暗号化・復号化部３３は、送信対象切断データを暗号化して暗号化切断データにする処理を繰り返し行う。この実施形態では、かかる暗号化の処理に用いられるアルゴリズム及び鍵を、アルゴリズム生成部３５及び鍵生成部３６が暗号化の処理が行われる度に生成するので、暗号化・復号化部３３が繰り返し行う暗号化の処理の方法は、毎回異なるものとなる。もっとも、繰り返し行われる暗号化の処理は毎回異なるものとする必要はなく、暗号化の処理のうちの少なくとも１回が他の暗号化の処理とは異なる方法で実行されれば良い。アルゴリズム及び鍵は、確率的な問題となるが、同じものが現れうるが、それは許容されうる。ある暗号化の処理で使用されたアルゴリズム及び鍵の少なくとも一方が、他の暗号化の処理で組合せて使用されたアルゴリズム及び鍵と異なるのであれば、暗号化の方法は異なるものとなる。上述したように、この実施形態では暗号化の処理を実行する度に変化するアルゴリズムと鍵は、必ずしも変化せず、アルゴリズム又は鍵が常に同一とすることは可能であるが、少なくとも１回の暗号化の処理で用いる方法を、他の暗号化の処理で用いられる方法とは異なる方法で行う必要があるため、アルゴリズムと鍵の双方を固定されたものとすることは許容されない。
いずれにせよ、暗号化・復号化部３３は、生成された暗号化切断データを接続部３８に送る。
【００４０】
暗号化切断データは、接続部３８に受取られる。接続部３８は、暗号化切断データを一まとめに接続し、暗号化データを生成する（Ｓ１１０４）。このときの暗号化切断データの並び順は、元の送信対象切断データの並び順に対応したものとされる。
【００４１】
以上のようにして、まず、第１通信装置１１が送信対象データを暗号化して暗号化データを生成するＳ１１０の過程が終了する。
【００４２】
暗号化データは通信部３７へ、通信部３７から通信装置２７へと送られ、通信装置２７からネットワーク１３を介して第２通信装置１２へ送られる。
【００４３】
この暗号化データを受取った第２通信装置１２にて、暗号化データを復号化して送信対象データに戻すＳ１３０の過程が実行される。
以下、この復号化の過程について、図７を用いて詳述する。
【００４４】
第２通信装置１２に送られた暗号化データは、第２通信装置１２の通信部３７が受付ける（Ｓ１２０１）。
通信部３７は、この暗号化データを前処理部３２に送る。
【００４５】
前処理部３２は、受付けた暗号化データを所定のビット数毎に切断して、暗号化切断データを生成する（Ｓ１２０２）。
暗号化データを切断して暗号化切断データを生成する場合、前処理部３２は、第１通信装置１１の接続部３８で行われたのと逆の処理を行う。つまり、暗号化データは、先頭から８ビット毎に切断され、複数の暗号化切断データに分けられる。
【００４６】
次いで、暗号化切断データは暗号化・復号化部３３に送られ、そこで復号化され、送信対象切断データとされる（Ｓ１２０３）。
【００４７】
暗号化データから暗号化切断データを生成する処理には共通データが必要である。
また、第２通信装置１２の暗号化・復号化部３３で行われる復号化の処理は、第１通信装置１１における暗号化・復号化部３３で行われたのと逆の処理として実行されるため、第２通信装置１２では、第１通信装置１１で暗号化を行う際に必要としたアルゴリズムと鍵を必要とする。したがって、第２通信装置１２で復号化が行われるには、第１通信装置１１で暗号化が行われる前にアルゴリズムと鍵が生成され、且つそれらの生成に先立って共通データが生成されたのと同様に、共通データが必要となる。
第２通信装置１２が暗号化データを受取ると、それは、通信装置２７、通信部３７を経て、前処理部３２に送られる。そうすると、前処理部３２は、暗号化データを切断する。前処理部３２は、送信対象データを切断する度に、その切断の直前に、送信対象データがこれから切断されることを示す情報を共通データ生成部３４に送る。その情報を受取る度に、共通データ生成部３４は、共通データを生成する。
第２通信装置１２における共通データ生成部３４が共通データを生成する方法は、第１通信装置１１内の共通データ生成部３４が共通データを生成した方法と同じである。第２通信装置１２の共通データ生成部３４は、は第１通信装置１１の共通データ生成部３４が持っていたのと同じ初期行列と解生成用アルゴリズムとを持っているので、第１通信装置１１と同じ共通データを生成することができる。第２通信装置１２で生成される共通データは、生成された順番が同じもの同士を比較すれば、第１通信装置１１で生成される共通データと同じになっている。
第２通信装置１２でも、生成された共通データは、共通データ生成部３４から、前処理部３２、アルゴリズム生成部３５、及び鍵生成部３６へと送られる。
【００４８】
第２通信装置１２の前処理部３２は、共通データを受取る。この状態で、前処理部３２は、その時点における暗号化データの先頭のデータを切断しようとしている。前処理部３２は、共通データを受取ると暗号化データを切断して暗号化切断データを生成する。この場合、その切断は基準ビット数毎の決まった長さでの切断として実行され、その処理は共通データの内容に依存しない。この点で、第１通信装置１１での処理と第２通信装置１２での処理は異なる。
他方、アルゴリズム生成部３５は、受付けた共通データに基づいて、共通データを受付けるたびにアルゴリズムを生成する。第２通信装置１２のアルゴリズム生成部３５がアルゴリズムを生成する過程は、第１通信装置１１のアルゴリズム生成部３５がアルゴリズムを生成する過程と同じである。生成されたアルゴリズムは、アルゴリズム生成部３５から暗号化・復号化部３３へ送られる。
鍵生成部３６は、共通データを受付けるたびに、受付けた共通データに基づいて鍵を生成する。第２通信装置１２の鍵生成部３６が鍵を生成する過程は、第１通信装置１１の鍵生成部３６が鍵を生成する過程と同じである。生成された鍵は、鍵生成部３６から暗号化・復号化部３３へ送られる。
第１通信装置１１の暗号化の処理の場合でそうされていたように、第２通信装置１２で復号化の処理が実行される場合、第２通信装置１２の暗号化・復号化部３３は、暗号化切断データを受取る度に、アルゴリズム生成部３５及び鍵生成部３６から、新たなアルゴリズムと鍵とを供給される。暗号化・復号化部３３は、受取った最新のアルゴリズム及び鍵とを用いて、暗号化切断データの復号化を行い、暗号化切断データを送信対象切断データに戻す。
ところで、この通信システムでは、第１通信装置１１で暗号化の処理が、第２通信装置１２で復号化の処理が、それぞれ複数回、通常は多数回行われ、そしてそれら暗号化と復号化が行われる回数は一致している。そして、この通信システムでは、第１通信装置１１で暗号化の処理が行われるたびに第１通信装置１１で新たな共通データが生成され、第２通信装置１２で復号化が行われるたびに第２通信装置１２で新たな共通データが生成される。また、上述したように、第２通信装置１２で生成される共通データは、生成された順番が同じもの同士を比較すれば、第１通信装置１１で生成される共通データと同じになっている。したがって、第１通信装置１１である送信対象切断データを暗号化するときに生成された共通データと、その共通データに基づいて生成されたアルゴリズム及び鍵はすべて、その共通データと、その共通データを用いて生成されたアルゴリズム及び鍵とを用いて生成された暗号化切断データを復号化するときに、第２通信装置１２で生成される共通データと、その共通データに基づいて生成されたアルゴリズム及び鍵に、常に一致する。なお、この事情は、第２通信装置１２で暗号化が行われ、第１通信装置１１で復号化が行われる場合も同様である。
【００４９】
暗号化・復号化部３３では、上述したように、アルゴリズム生成部３５から受付けたアルゴリズムを用いて復号化の処理が行われる。より詳細には、暗号化・復号化部３３は、アルゴリズム生成部３５から受付けたアルゴリズム（『８ビットのデータである送信対象切断データを１行８列の行列Ｙとした場合に、共通データである８行８列の行列Ｘをａ乗してから、時計周りにｎ×９０°だけ回転させた行列に、Ｙを掛け合わせて求められるものが暗号化切断データである』という定義）に基づいて、復号化処理を行うためのアルゴリズム（『暗号化切断データを１行８列の行列Ｚと見た場合に、共通データである８行８列の行列Ｘをａ乗してから、時計周りにｎ×９０°だけ回転させた行列の逆行列に、Ｙを掛け合わせて求められるものが送信対象切断データである』という定義）を生成し、鍵を用いて上述の定義にしたがった演算を行うことで、復号化の処理を行う。こうして、暗号化・復号化部３３では、前処理部３２からストリーム的に供給される暗号化切断データを次々に復号化し、送信対象切断データを生成する。
【００５０】
次いで、暗号化・復号化部３３は、必要に応じて、送信対象切断データから、ダミーデータを除く（Ｓ１２０４）。上述したように、共通データ生成部３４で生成された共通データは前処理部３２に送られている。この共通データは、第１通信装置１１の前処理部３２でどのようにしてダミーデータを送信対象切断データに埋め込んだのかを決定するときに使用されたものである。つまり、第２通信装置１２の前処理部３２がその時点で持っている共通データは、第２通信装置１２の暗号化・復号化部３３が復号化を終えた（或いは復号化を行っている、もしくは今から復号化をしようとしている）暗号化切断データ（より正確には、その暗号化切断データが暗号化される前の送信対象切断データ）にどのようにしてダミーデータを埋め込んだかを示すものである。
前処理部３２は、暗号化・復号化部３３で復号化された送信対象切断データのどこにダミーデータが埋め込まれているかということについての情報を、暗号化・復号化部３３に送る。
これを用いて、暗号化・復号化部３３は、ダミーデータを送信対象切断データの中から除く。送信対象切断データにダミーデータが含まれていない場合には、ダミーデータを除くこの処理は省略される。
【００５１】
このようにして生成された送信対象切断データは、接続部３８へ送られる。接続部３８は、受取った送信対象切断データを一まとめに接続し、第１通信装置１１で暗号化される前の元の状態の送信対象データに戻す（Ｓ１２０５）。
このようにして、第２通信装置１２が暗号化データを復号化して送信対象データに戻すＳ１３０の過程が終了する。
【００５２】
生成された送信対象データは、接続部３８からインターフェイス部３１に送られ、バス２８を介して例えばＨＤＤ２３へ送られ、そこに保存される。
【符号の説明】
【００５３】
１１  第１通信装置
１２  第２通信装置
１３  ネットワーク
３１  インターフェイス部
３２  前処理部
３３  暗号化・復号化部
３４  共通データ生成部
３５  アルゴリズム生成部
３６  鍵生成部
３７  通信部
３８  接続部
【図１】
2020120297.tif 000003
【図２】
2020120297.tif 000004
【図３】
2020120297.tif 000005
【図４】
2020120297.tif 000006
【図５】
2020120297.tif 000007
【図６】
2020120297.tif 000008
【図７】
2020120297.tif 000009