(57)【要約】      （修正有）【課題】暗号化の方式に共通鍵方式がある。共通鍵方式は送信人と受信人が常に共通鍵を持たなくてはならず、無限乱数式暗号を行うときには常に別途共通する鍵の情報をやり取りする必要があった。本発明は共通鍵とは別に使い捨ての補助鍵を用意し、この補助鍵を暗号文と一緒に配布して、鍵情報のやり取りを不要とする。【解決手段】共通鍵方式の暗号化技術に関するものである。従来の共通鍵方式に補助鍵を加えて両者揃わないと文書を解読できないように工夫を加えている。この補助鍵は使い捨てできるものとし、補助鍵を暗号化した文書の一部として埋め込むようにする。これにより、暗号文の差出人は使用した補助鍵を暗号化した文書に結合して出す。受取人は受け取った暗号文に補助鍵がついてくるのですでに持っている共通鍵と補助鍵の組み合わせにより解読ができる。第三者は共通鍵を持っていないので解読できない。【選択図】図２
2008135893.tif 000002
【特許請求の範囲】
【請求項１】
ｎ個の暗号鍵を持ち、暗号化したデータに暗号鍵の一つ以上を添付して出力することを特徴とする暗号装置。
【請求項２】
請求項１の暗号化装置において、暗号化したデータに添付する暗号鍵として暗号化を行った際の時間情報を持たせた事を特徴とする暗号化装置。
【請求項３】
請求項２の暗号化装置において、暗号化したデータに添付する鍵として時間情報と共に項番も合わせて添付することを特徴とする暗号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
データの暗号化を行う装置、およびプログラムまたはプログラムを記録したコンピュータ読み取り可能な記録媒体に関するものである。特に、少リ
ソースな、組込機器、家電品、携帯機器、小型情報端末、小型ゲーム端末機器に用いられる暗号化したデータの生成に関するものである。
【背景技術】
【０００２】
従来、少ないリソースで乱数生成を実現しようとするもので、自装置内で乱数生成する手段が開示されている（特許文献１参照）。
【０００３】
外務省により公開している暗号の紹介のページである。有限乱数式、無限乱数式暗号を判りやすく紹介している。ここでは無限乱数式暗号は論理的に解読できな
いという事実を述べている（非特許文献２参照）。
【０００４】
このようにデータの暗号に対する強い要求があり、また暗号化の技術が発表されている。特に無限乱数式の暗号を文書ないしデータに適用する技術が待たれてい
た。
【０００５】
【特許文献１】特願２００６−１８１９４１
【０００６】
【非特許文献２】外務省大臣官房情報通信課  非常勤講師  奥村定夫「外交と暗号」http: //www.mofa.go.jp/mofaj/annai/shocho/e_seifu/toukou2004.html
【発明の開示】
【発明が解決しようとする課題】
【０００７】
データの暗号化においては、共通鍵方式と公開鍵方式に大別できる。
共通鍵方式は暗号文ないし暗号データの差出人と受取人が共通する鍵を持つ方式である。
公開鍵は文書を暗号化鍵を公開して誰でも利用できるように工夫した方式で、そのかわり文書の解読には秘密鍵が必要であるようにした方式である。
共通鍵方式は送信人と受信人が常に共通鍵を持たなくてはならず、無限乱数式暗号を行うときには常に双方で共通鍵を一致させないといけいない問題があった。
公開鍵方式はこの欠点は改善しているがコンピュータによる計算により解読できる可能性がると言われている。
本発明は共通鍵方式の欠点を回避し効率よく使用するためのものである。
【課題を解決するための手段】
【０００８】
本発明は、共通鍵方式に改良を加え、共通鍵と共に使用する補助鍵を用意する。そして共通鍵と補助鍵が揃わないと暗号を解読できないようにしたものである。
【０００９】
具体的には送信人と受信には常に固定した共通鍵を所有する。そして、暗号化する時にこの共通鍵と補助的に生成した補助鍵の２つにより暗号化を行う。
【００１０】
文書の暗号化は共通鍵と補助鍵の２つにより行う。この補助鍵は暗号化した文書の決められた所に書き込むものとする。
【００１１】
この文書を解読する者は文書の持つ補助鍵と共通鍵を持って始めて文書を解読する事ができる。補助鍵は文書を入手した者であれば見る事が出来るが、共通鍵が
ない限り解読が出来ない。
【００１２】
以上より事前に一度だけ共通鍵を送信人と受信人が揃えて用意すれば良く、以後、文書を暗号化するごとに補助鍵を生成し文書と共に配布すれば良く、従来の共
通鍵の欠点を回避することができる。
【００１３】
また暗号強度に関して言えば、無限乱数式を採用する事により強度の低下を心配する必要がないというメリットがある。
【発明を実施するための最良の形態】
【００１４】
本発明の実施例について図面を用いて説明する。
【実施例１】
【００１５】
特許文献１の実施例４において、文書の暗号化にｎ個の鍵を用意しその一つにその文書のクリエート時間を与えるという工夫を行っている。この工夫をさ
らに発展させクリエート時間を暗号化した文書ないしデータに追加するようにしたものである。
これは暗号化を行うプログラムおよび装置である。
図１に本発明の第1実施例のコンピュータシステムの電子機器としての全体構成図を示す。
【００１６】
情報処理装置S1011は計算機の全体制御、および各種プログラムを実行する中央処理装置（以下ＣＰＵ）、各種プログラムやデータがロードされるメモリ
装 置S1013、ＲＯＭＢＩＯＳのS1012、アダプタS1015、S1016で構成されていて、それらはシステムバスS1014で接続される。
【００１７】
アダプタS1015を介してHDDのS1030のホストインタフェースS1020に接続する。アダプタS1016を介して装着可能なストレージデ
バイスを 接続するリーダライタS1019が接続する。
【００１８】
この実施例ではストレージデバイスとして、USB装置S1040を用いる。装置S1040はストレージデバイス機能を備える。なお、本実施例では記憶
装置 としてメモリディスク装置を例に説明するが、本実施例の効果を奏する範囲内であれば任意の装置でよい。
【００１９】
ＲＯＭＢＩＯＳのS1012には、HDDのS1030あるいはストレージデバイスなどのシステムブート可能デバイスから一つのデバイスを選択する手
段、当
該デバイスからシステムブートローダをメモリ装置S1013に読出す手段、読み出したシステムブートローダに分岐する手段（いわゆるシステムブート機
能） を備える。
【００２０】
HDDのS1030あるいは任意のストレージデバイスから読み出されたOSプログラムは、メモリ装置S1013に格納され、ＣＰＵにより実行される。
【００２１】
図２に本実施例の入出力を記述する。
【００２２】
Ｓ２０１は共通鍵である。ここには暗号化を行うルールを決定する情報を保持する。この共通鍵はｎバイトの大きさとする。ｎは採用する暗号方式により
最適な値を取るものとする。
【００２３】
Ｓ２０２は補助鍵１である。ここには文書ないしデータを暗号化処理を行った時の時間情報を保持する。データのサイズは任意であるが通常のコンピュー
タ処理では４バイトである。本実施例では４バイトであり秒単位である。
【００２４】
Ｓ２０３には補助鍵２である。ここには、項番を保持する。補助鍵に時間を使用した時の欠点として同一時間に複数の暗号化処理が発生した場合の問題が
ある。同じ時間であるために、複数の文書において補助鍵１の値が同じになり好ましくない。本実施例では４バイトである。
【００２５】
補助鍵１が同じである場合、暗号化の規則が同一の複数の暗号文書が生まれる。この場合、無限乱数式つまり一回使った暗号化の規則は二度と使用しない
という約束が破られる。結果、暗号強度に劣化が生まれる。
【００２６】
補助鍵２はこの問題を回避するためのものである。同一コンピュータにおいて本実施例を使い暗号化するという制限の中で、同一時間の暗号化処理の要求
が出た時には、受付た順序により、ゼロ、１、２．．．と番号を振るものとする。
これにより、共通鍵、補助鍵１、補助鍵２の組み合わせにより常に異なる暗号化規則を提供するものである。
【００２７】
Ｓ２０４は暗号化した文書ないしデータである。ここには、Ｓ２０５により暗号化したデータが保存される。
【００２８】
Ｓ２０５は本実施例の暗号鍵である。内部に共通鍵と補助鍵１と補助鍵２を保持し合わせて一つの暗号鍵を構成する。暗号化はこのＳ２０５により行う。
暗号化は本実施例と組み合わせて使用する暗号化方式に従うものとする。本発明では暗号鍵の保持の仕方に対するものなので暗号化方式には触れないものとす
る。
【００２９】
Ｓ２０６は暗号化した文書ないしデータである。記憶装置およびファイルにはこの形式で保存する。内部に補助鍵１と補助鍵２と実際の暗号文を保持して
いる。
【００３０】
本出願図３に本実施例の処理の流れを記述する。
この流れ図の特殊記号、各種表記はコンピュータ言語であるC言語に従う。
文中、特に宣言のない変数においてメモリのアドレスを参照する変数の型はＣ言語のポインタ型とし、そうでない変数はint型変数とする。
【００３１】
％・・・剰余計算を示す記号である。
＾  ・・・排他的論理輪を示す記号である。
++ ・・・インクリメント、値を一つ増加を意味する記号である。
[n ] ・・・配列を意味する記号である。ｎは配列の添字である。
* ・・・アドレス型変数の前に記す場合は、変数の示すアドレス上の値を示す。
0x・・・１６進法の数値であることを示す。
【００３２】
本実施例は基本制御ソフトより実行し、変換をかけたいファイルを指定する。変換したいファイルを読み変換をし、変換結果をファイルとして記憶装置に
保存す る。
【００３３】
本実施例の示すアプリケーションに一回かけると暗号化を行う。生成結果を再度本アプリケーションにかけると復号を行うものである。
【００３４】
Ｓ３１１では初期化処理を行う。ここでは変数iの確保をはじめ本プログラムが必要とする各種処理を行う。
【００３５】
Ｓ３１２で変換元のファイル名を入力している。これは、ディスク上のファイル名パスを対話形式で当アプリケーションの実行者に質問するものである。ここ
で指定したファイルを変換の対象とする。
【００３６】
Ｓ３１３では、本実施例が作動するコンピュータＳ１０１１の任意の記憶領域より、共通鍵となる情報を読み込みＳ２０１に格納する。
【００３７】
Ｓ３１４では実際に暗号・復号するファイルをオープンする。
【００３８】
Ｓ３１５は、このファイルを暗号化するのか復号化するのかの判定を行う。
本実施例では指定したファイル名にて判定するものとする。ファイル名の最後が”.enc”の文字列で終わる時には、このファイルが暗号化されているものと
し
て復号処理をするものとする。
暗号化する場合はＳ３１６のへ流れる。
【００３９】
Ｓ３１６では変換先のファイルをオープンしている。ファイル名はＳ３１２で取得した変換元のファイル名に”.enc”の文字列を最後に結合して行う。すで
に同名のファイルがある時は、それを消し新規にオープンする。
【００４０】
Ｓ３１７では補助鍵１を設定する。ここではＳ２０２に現在時間を設定する。
【００４１】
Ｓ３１８では補助鍵２を設定する。ここではＳ２０３に番号を書き込む。通常はゼロが入る。同一時間に同じ暗号化が起きた場合は要求を受け付けた順にゼロ、
１、２と番号を上げて格納する。
【００４２】
Ｓ３１９では補助鍵１を変換先ファイルに書き込む。具体的にはＳ２０２の情報をファイルに書き込む。書き込みはシーケンシャルにて行う。なお本実施例の
ファイルの読み書きはすべてシーケンシャルにて行う。
【００４３】
Ｓ３２０では補助鍵２を変換先ファイルに書き込む。具体的にはＳ２０３の情報をファイルに書き込む。
【００４４】
Ｓ３２１では変換先のファイルをオープンしている。ファイル名はＳ３１２で取得した変換元のファイル名の末尾の”.enc”の文字列除去したファイル名に
て行う。すでに同名のファイルがある時は、それを消し新規にオープンする。
【００４５】
Ｓ３２２では補助鍵１を読み取る。具体的には変換元ファイルからシーケンシャルに読み取り、Ｓ２０２に保持する。
【００４６】
Ｓ３２３では補助鍵２を読み取る。具体的には変換元ファイルからシーケンシャルに読み取り、Ｓ２０３に保持する。
【００４７】
Ｓ３２４は永久ループである。変数iをループカウンタとしてループする。
【００４８】
Ｓ３２５で変換元ファイルを１バイト読み取る。本実施例では構造を簡素化するために１バイト単位で読み取っている。もちろんｎバイト単位としても良い。
【００４９】
Ｓ３２６ではリード成功の判定をしている。永久ループで回っているのでファイルの最後に来たときエラーとなり、Ｎｏの処理としてＳ３２９に流れる。
読み取りに成功した時はＳ３２７に流れる。
【００５０】
Ｓ３２７では読み取ったデータに変換をかける。この変換はデータが平文の場合は暗号化となり、データが暗号化の場合は復号となる暗号方式である。データを
変換する時の鍵はＳ２０５を使用する。
本実施例では変換の方式を規定するものではないが、一般的な方法としてＳ２０５をシードとする乱数列を生成して、先頭の一バイトずつ取り出し、この取り出
した乱数値と排他的論理輪を取り変換をかけるて行うことができる。変換データの最初のｎバイト目には乱数列の最初のｎバイトを排他的論理輪を取り変換すれ
ば良い。
【００５１】
Ｓ３２８では変換先ファイルに書き込みを行う。書き込みを行うデータはＳ３２７で変換を行ったデータである。
【００５２】
Ｓ３２９では変換先ファイルをクローズしている。同様に変換元ファイルをクローズしている。
【図面の簡単な説明】
【００５３】
【図１】ホストとなる装置を示した説明図である。
【図２】実施例１の入出力をあらわした図である。
【図３】実施例１の処理の流れをあらわした図である。
【符号の説明】
【００５４】
S1011…中央処理装置（ＣＰＵ）。
S1012…ＲＯＭＢＩＯＳ。
S1013…メモリ装置。
S1014,S10017,S10018…システムバス。
S1015,S10016…アダプタ。
S1020…ホストＩ／Ｆ。
S1030…HDD。
S1019…リーダライタ。
S1040…USB装置。
【図１】
2008135893.tif 000003
【図２】
2008135893.tif 000004
【図３】
2008135893.tif 000005