JP2004053969A - Electronic tally generating method and program - Google Patents

Electronic tally generating method and program Download PDF

Info

Publication number
JP2004053969A
JP2004053969A JP2002211931A JP2002211931A JP2004053969A JP 2004053969 A JP2004053969 A JP 2004053969A JP 2002211931 A JP2002211931 A JP 2002211931A JP 2002211931 A JP2002211931 A JP 2002211931A JP 2004053969 A JP2004053969 A JP 2004053969A
Authority
JP
Japan
Prior art keywords
tally
file
electronic
code word
header
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002211931A
Other languages
Japanese (ja)
Inventor
Yutaka Hokura
保倉 豊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Global Friendship Inc
Original Assignee
Global Friendship Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Global Friendship Inc filed Critical Global Friendship Inc
Priority to JP2002211931A priority Critical patent/JP2004053969A/en
Priority to PCT/JP2003/009198 priority patent/WO2004010635A1/en
Priority to AU2003281562A priority patent/AU2003281562A1/en
Publication of JP2004053969A publication Critical patent/JP2004053969A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide an electronic tally generating method for simply generating an electronic tally with high reliability by having very high secrecy. <P>SOLUTION: The electronic tally generating method generates encoded words eliminating a redundant bit pattern by reading a plain text to be compressed and encoded, cuts it into K elements, distributes and stores each element into and to M tally files on the basis of random numbers, records the distribution method on an element assigning table, divides the element assigning table into M pieces to be added to the tally file as a closed header, and generates the electronic tally in the tally file to be output at need by adding an arrangement list of division pieces of the element assigning table distributed to the closed header every tally file to the tally file as an open header. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、電子情報を安全に送信したり、当事者間で取引などの確認を客観的に行うために使用する電子割符の生成方法およびコンピュータプログラムに関する。
【0002】
【従来の技術】
ネットワークを通じて電子情報を交換すると、内容の改竄、書き換え、すり替えが可能で、しかもその痕跡が残らず事後に検知することが難しいという難点があった。また、通信路の途中で盗取して利用することも比較的容易であった。
従来、このような場合に電子情報を暗号化して送付することにより安全を確保する方法が用いられてきた。しかし、暗号化方法は、送付したい電子情報の全てが通信データに含まれているため、通信が漏洩した時には極めて能力の高い侵害者ならば電子情報の解読や改竄も可能である。
【0003】
また、通信路を介して契約を交す例が多くなってきているが、電子ファイル化された契約内容は容易に改変することができ、知らない間にあるいは故意に改竄されたりすると、契約の実行をめぐって争いが生じるおそれがある。このため、契約内容を随時確認できる簡便なシステムが要請されている。
このような通信における漏洩を防ぎまた契約内容などを客観的に確認できる手法として、本出願人が既に特開2000−596543に開示した電子割符法がある。
【0004】
ここで、電子割符とは電子情報を2以上に分割した片割れをいい、全ての電子割符を集合して統合しなければ元の電子情報を復元できないようになっている。開示された電子割符法は、図12に概念を示すように、元データを多数のエレメントに分割し、エレメントを乱数に基づいて組合わせ、同じ集団に属するエレメントを乱数に基づいて並べ直すことによりいくつかの電子割符を作成し、電子割符をそれぞれ別のルートで送付したり保管して、必要なときに電子割符を集め、逆の手順でエレメントを並べ直すことにより元の情報を復元して使用するものである。
【0005】
一部の電子割符を窃取しても元の情報を復元することができず安全である。
また、当事者同士が電子割符を分ち持つことによって、一方の保管した部分が改竄されても、当事者の電子割符を集合させて統合することにより意味のある情報が復元できるかを見ることにより、改竄の事実を検知することができる。
したがって、契約内容を電子割符化して分割保管しておくことにより、取引の安全が確保できる。
【0006】
【発明が解決しようとする課題】
そこで、本発明が解決しようとする課題は、極めて高度な機密性を有し信頼性の高い電子割符を簡単に生成する電子割符生成方法およびコンピュータプログラムを提供することである。
【0007】
【課題を解決するための手段】
上記課題を解決するため、本発明の電子割符生成方法は、コンピュータメモリ上の平文ファイルから平文を読み出して圧縮符号化し冗長なビットパターンを消した符号語を生成して符号語ファイルに格納し、この符号語を読み出してK個のエレメントに分割しエレメントごとに予め決めたK個のエレメントファイルに格納し、各エレメントを読み出しては乱数に基づいてM個の割符ファイルのいずれかに振り分けて格納し、その振り分け方法をエレメント割振りテーブルに記録し、このエレメント割振りテーブルを読み出して予め決めたM個に分割し割符ファイルにクローズヘッダとして追加し、割符ファイルごとのクローズヘッダに分配されたエレメント割振りテーブルの分割片の配置リストをオープンヘッダとして割符ファイルに追加することにより、割符ファイルに電子割符を生成することを特徴とする。
【0008】
本発明の電子割符生成方法によれば、圧縮符号化と乱数を利用してたとえばビット単位の極く単純な手順を繰返すことにより生成される割符ファイルの中身は、元の情報とは全く異なる語順になっている。また、復元に用いる情報も切り刻まれ分割した状態で含まれているので、一部の割符ファイルが漏洩したときにも全部の変成情報を入手しなければ全く元の情報が復元できない。さらに、割符ファイルの中身を少しでも変化させれば電子割符に記載された手順を逆にたどっても意味のある電子情報に復元することができない。
【0009】
したがって、本発明の方法により生成された電子割符を利用することにより、通信路中で電子割符を窃取しても利用することができない。また当事者が自己の保管する電子割符を改竄しても相手の電子割符を統合したときに情報が復元できなくなるので、当事者間で電子割符を交換して復元することにより真正な情報を確認することができる。このように、本発明の電子割符生成方法をもちいることにより、高い信頼性を有する情報伝送が可能になる。
【0010】
また、エレメント割振りテーブルをM個に分割するときに、予め決めた大きさのビット長を単位として分割し、乱数に基づいてM個の割符に分配するようにしてもよい。分割する語長はバイト単位であってもよい。
エレメント割り振りテーブルは、電子割符から元の情報を復元するために必須のものであるが、これを単に電子割符に添付するだけであれば、一部の電子割符を入手すれば、一部とはいえ元の情報が復元される可能性を残すことになる。
しかし、元の平文と同様に、テーブルを切り刻んで乱数を用いて順不同に電子割符に分配しておけば、全ての電子割符を収集しなければ情報の復元方法が解明できず、安全度が著しく向上する。
【0011】
さらに、平文の先頭部分に適当な長さの乱数データを付加した後に圧縮符号化して符号語を作成するようにしてもよい。あるいは、平文を圧縮符号化した後に適当な長さの乱数データを付与して符号語としてもよい。
情報を摂取して利用しようとする敵は、様々な手法を駆使して元の情報を復元しようとするが、情報の先頭部に乱数が付与されていると、頭の方から解読しようとしても真の情報を見い出すことが困難になり先頭部からの攻撃を撃退することができる。また特に、乱数の長さを毎回変化させるようにする場合は、繰り返し攻撃される場合にも解読の糸口を与えず、解読の困難はさらに大きくなる。
なお、特に平文の語長が短い場合に、対象とする語長を長くして解読を困難にする効果が大きい。乱数データは20から40ビット程度でも十分安全である。
【0012】
また、作成した符号語の先頭部分を適当な長さの乱数データでマスクして符号語を変成し、クローズヘッダにその乱数データを記録することが好ましい。
乱数データを発生して圧縮後データの先頭部に作用させてマスクする。たとえば両者の排他的論理和(XOR)をとることによりマスクすることができる。
このようなマスクは、元のデータに曖昧な部分を付加するので、さらに攻撃に対して耐性を強化することができる。乱数データが元の符号語と同じ長さであれば、理想的な強度を持つことになる。
【0013】
なお、圧縮した符号語を分割したときのエレメントを1ビット長にする場合は、1ビットより短くすることができないため、振り分け分配の自由度が最も大きく、最も強固な防護能力がある。
また、エレメントをM個に割り振るときに使用する乱数はNビットごとに同じ配列を繰返した疑似乱数であってもよい。
乱数の発生が簡単であり、電子割符を生成させるたびに乱数パターンが異なるので、ある桁ごとに繰返す疑似乱数であっても、十分安全性を確保することができる。また、熱雑音や宇宙線、あるいは無信号時にブラウン管に表示されるノイズなど、自然界に発生する雑音を利用することができる。なお、自然界のノイズには周期性がある場合もあるので、乱数性を確認した上で利用することが好ましい。
【0014】
さらに、電子割符を3以上の配布先に配布するときに、配布先ごとに分配ファイルを準備して、M個の割符ファイルのそれぞれを異なる2個の分配ファイルに重複して含ませるように組合わせて、配布先に電子情報を分割配布するようにしてもよい。
この方法では、同じ電子割符が2個存在するので、配布された当事者の1が欠けたときにも、他の当事者から電子割符を集めることにより、欠落した電子割符を補充して元の割符を復元することができる。したがって、たとえば、相手方が契約の存在を否認する場合などでも、認証局から電子割符を提供させて復元することにより、元の契約内容を正しく復元して証明することができる。
なお、複数の記憶装置に分配しておいて後に収集して復元する場合にも、同様に方法を用いて元の契約内容を正しく復元して証明することができる。
【0015】
また、本発明のコンピュータプログラムは、符号語ファイルと予め決めたK個のエレメントファイルと予め決めたM個の割符ファイルと平文を格納した平文ファイルとエレメント割振りテーブルをコンピュータメモリ上に準備する手順と、平文ファイルから平文を読み出して圧縮符号化し冗長なビットパターンを消した符号語を生成して符号語ファイルに格納する手順と、符号語を読み出してK個のエレメントに分割しエレメントごとにK個のエレメントファイルに格納する手順と、各エレメントを読み出しては乱数に基づいてM個の割符ファイルのいずれかに振り分けて格納する手順と、その振り分け方法をエレメント割振りテーブルに記録する手順と、そのエレメント割振りテーブルを読み出してM個に分割し割符ファイルにクローズヘッダとして追加する手順と、割符ファイルごとのクローズヘッダに分配されたエレメント割振りテーブルの分割片の配置リストをオープンヘッダとして割符ファイルに追加する手順をコンピュータに実行させて、割符ファイルに電子割符を生成するようにすることを特徴とする。
【0016】
このプログラムによりコンピュータは平文の提供を受けて簡単に電子割符を生成し提供することができる。
また、このプログラムを記録したコンピュータ読み取り可能な記憶媒体をコンピュータにセットしてプログラムを搭載させることにより、簡単にコンピュータを平文から電子割符を生成して配布するための装置とすることができる。
なお、このプログラムは通信回路網を介してダウンロードすることもできる。
【0017】
【発明の実施の形態】
以下、本発明の電子割符生成方法およびプログラムを実施例に基づき図面を参照して詳細に説明する。
図1は、本発明の1実施例における電子割符生成方法の手順を示す流れ図、図2はその手順をデータ形態の変化に基づいて説明する概念説明図である。
本実施例の電子割符生成方法は、手順の概要を示す図1と、割符数を2、エレメント数を4として割符を作成する場合に生成されるデータの形態を説明した図2に示すように、まず、元データの平文S(ABCDEFG・・)に圧縮処理などを施し、冗長なビットパターンを削除して符号語を生成する(S1)。
【0018】
その後、符号語データを複数のエレメントAB,CD,EF,G,・・に分割し(S2)、分割したエレメントを各割符▲1▼▲2▼に割り振り、割符中の格納位置を乱数に基づいて決定する(S3)。
その割り振り結果をメモリ上のエレメント割振りテーブルTAに記録し、さらに分割数や元データの長さなど情報の性格を知るために必要になる基本情報を加えてメモリ内のクローズヘッダファイルCHFに記録する(S4)。
【0019】
このクローズヘッダファイルCHFの内容をバイト単位に切って、乱数に基づいて各割符▲1▼▲2▼に割り振り、クローズヘッダCHとして添付し(S5)、その割振り結果をメモリ上の復元情報振分けテーブルTBに記録する(S6)。割符番号など割符に関する基本情報と復元情報振分けテーブルTBをオープンヘッダOHとして割符に追加する(S7)。作成された割符データについて電子署名を作成し暗号化して電子割符を完成する(S8)。
完成した電子割符は、平文のエレメントの一部とエレメント割り振りテーブルの一部と復元情報振分けテーブルと割符の基本情報を含有している。
電子割符▲1▼▲2▼は、メモリ上の割符ファイルFT1,FT2に格納されているので、これをフレキシブルディスクなどの記録媒体に出力したり、通信路を介して配布したりすることができる。
【0020】
さらに、本実施例の電子割符生成方法をコンピュータに実行させるためのソフトウエアについて、図面を用いて説明する。
図3は本実施例のプログラムのメインフローを示す流れ図、図4はその元データ加工処理工程を説明する流れ図、図5はそのエレメント分割処理工程を説明する流れ図、図6はその割符データ編集処理工程を説明する流れ図、図7はその割符データ出力処理工程を説明する流れ図、図8は電子割符のレイアウト例を示す表である。
【0021】
電子割符は、元データの加工処理プログラムP1と、エレメント分割処理プログラムP2と、割符データ編集処理プログラムP3と、割符データ出力処理プログラムP4を順に実行することにより生成され、所定の対象に対して発行される。
元データ加工処理プログラムP1は、元データの各ブロック単位で先頭部に乱数データを付与し、その後ブロック同士を連結する工程(S11)と、得られたデータに圧縮処理を施す工程(S12)と、圧縮したデータの先頭に圧縮処理に関する情報を圧縮ヘッダとして付加し(S13)、適当な長さの乱数データを発生して圧縮データの先頭部とXORをとってマスクする工程(S14)を備えて、平文から分割前の符号語を生成すると共に、使用した乱数データをメモリ内のファイルに格納しておく(S15)。
【0022】
このプログラムを実行すると、平文に乱数データを付与するため解号分析が困難になるが、特にデータ長の短い平文を対象とするときにもデータ長が増加して暗号解析を困難にする。侵害を意図する者が繰返し解析することにより解読できるようにさせないため、乱数長を処理ごとに変化させることが好ましい。なお、乱数データは20〜40ビット程度であれば、情報の伝達は十分に安全である。また、圧縮後のデータの先頭部から適当な語長分をマスクすることにより、先頭部からの攻撃に高い耐性を備えることになる。マスクするために使用した乱数データはクローズヘッダに記録して後の割符復元処理に用いる。この乱数の桁数は20〜40ビットあれば十分であるが、圧縮データ全体のビット数と同じ長さにすれば理想的である。
【0023】
エレメント分割処理プログラムP2は、符号語をエレメントに分割し電子割符に割付けると共に、割付情報を盛り込んだクローズヘッダを生成する手順を指示するものである。このプログラムは、図5に示すように、初めに、引数として入力したエレメント数で元データのビット数を割って得たビット数ごとに元データからエレメントを切り出す(S21)。また、メモリ内のクローズヘッダファイルにソフトウエア認証キー、割符作成日時、元データのサイズ、割符数、エレメント数、エレメントの大きさなど分割処理に関する情報を記録する(S22)。
【0024】
さらに、引数の作成日時と元データのハッシュ値を利用して、乱数発生装置を割符数と同じ範囲の乱数列を初期化させ(S23)、エレメントごとに乱数を用いて振分け先の割符を決定し、振分け位置情報をメモリ内のファイルに記録する(S24)。元データのエレメントが尽きるまでエレメントの振分けを繰返す(S25)。最終的な振分け情報はクローズヘッダファイルに記録される。
次に、クローズヘッダファイルを圧縮処理する(S26)。
さらに、引数の作成日時とクローズヘッダのハッシュ値に基づいて乱数列を初期化し(S27)、乱数を用いてクローズヘッドのバイトごとに振分け先の割符を決定し、振分け情報をメモリ内のファイルにテーブルとして記録する(S28)。クローズヘッダはバイト数だけ繰返して割符への振分けがされる(S29)。
【0025】
割符データ編集処理プログラムP3は、図6に詳しく示したように、これまでに準備したデータから割符ファイルを作成するプログラムである。
まず、割符データを格納するための割符ファイルを作成する(S31)。具体的には、1個の割符データを収納するメモリ領域を、指定された割符数分だけ確保することである(S32)。
次に、電子割符ごとに、検索して電子割符を見つけだすために使用する検索用文字列、電子割符生成統合プログラムのバージョン番号、割符番号、クローズヘッダの長さなどを記載するオープンヘッダを作成しオープンヘッダファイルに格納する(S33)。
【0026】
さらに、クローズヘッダの振分け位置情報をバイトごとに確認し当該割符に配分されている場合はその番号をオープンヘッダファイルのリストに追加し(S34)、これをクローズヘッダのバイト数だけ繰返す(S35)。
次に、クローズヘッダファイルの内容を先の振分け情報に従って当該割符に配分されたバイトごとに割符ファイルのクローズヘッダの位置に記録する(S36)。これをクローズヘッダファイルの内容のバイト数だけ繰返す(S37)。
さらに、当該割符に割り付けられたエレメントを割符ファイルのデータ部に記録する(S38)。これをエレメント数だけ繰返す(S39)。
電子割符ごとに行われる上記工程を割符の数だけ繰返して(S40)、全ての割符ファイルの作成を完了させる。
【0027】
図7は、割符ファイルに記録される割符データのレイアウトを示す表である。
割符ファイルのオープンヘッダ部には、1.定長のテキスト文字列からなり割符か否かを識別するために用いる検索用文字列、2.使用する割符生成統合プログラムのバージョン番号、3.データサイズ、4.割符データの内容が変化していないかを確認するためのチェックサム値など、たとえばMD5値、5.割符番号、6.クローズヘッダ部のサイズ、7.クローズヘッダ部の振分け位置情報の配列、など割符に関する基本的な情報が格納されている。
ただし、4.MD5値は後で実行される割符データ出力処理プログラムP4により生成されるものである。
【0028】
また、クローズヘッダ部には、8.ソフト認証キーに作用させて得たたとえばMD5値、9.作成日時、10.分割した元データのサイズ、11.割符数、12.エレメント数、13.エレメントサイズ、14.エレメントの振分け位置情報の配列、など元データに関する基本的な情報が格納されている。
なお、クローズヘッダ部の情報は、既に分割して配分された状態になっているので、1個の割符データの中にこれら情報が画然と配置されているわけではないことはいうまでもない。
さらにデータ部には、15.エレメント自体が配列された状態で収納されている。
【0029】
割符データ出力処理プログラムP4は、図8に示すように、割符ファイルから電子割符を生成し、ファイルまたはメモリに出力して利用できる形態にするためのプログラムである。
初めに、割符データのファイルの1.定長のテキスト文字列からなり割符か否かを識別するために用いる検索用文字列、2.使用する割符生成統合プログラムのバージョン番号、3.データサイズを残して、5.割符番号を含めて後ろの部分についてチェックサムアルゴリズムたとえばMD5を作用させてチェックサムを求め、割符ファイルのオープンヘッダ部に4.チェックサム値として追加する(S51)。
次に、引数として入力される本人確認ができる共通鍵キーを用いて割符ファイルの4.MD5値以降の部分を暗号化して(S52)、ファイルまたはメモリに出力する(S53)。
これを割符の数だけ繰返すことにより、電子割符を生成する(S54)。
【0030】
電子割符から元データを復元するときは、電子割符に検索用文字列がそのまま見ることができる状態で添付されているので、色々なデータが混在しているところから必要な電子割符を抽出して収集することができる。全ての電子割符が集ると、割符生成時に指定した本人確認キー、割符生成時に指定したときはソフト認証キーや作成日時、などを用いて、割符生成と逆の手順を踏むことにより元のデータを復元することができる。
【0031】
本実施例の電子割符生成方法において、割符数、エレメント数、テーブルの分割数などは、電子割符生成上のパラメータであって、任意の数を指定することができる。また、乱数の発生や初期化には周知の方法を利用すればよく、適当な長さの乱数列を繰返して生成する疑似乱数を利用してもよい。
さらに、割符データには、使用の目的や安全性の要求などに対応して、列挙した事項の全てを含まなくてもよく、また別の事項を含んでもよいことはいうまでもない。
【0032】
なお、本願発明において利用する電子割符法は、秘密情報を分割して安全に伝送あるいは記録するための符号化法で、秘密情報である平文Sをn個の割符Wiに分割符号化し、n個の割符が全部そろえば平文Sが復元できるが、n−1個以下の割符からは平文Sの情報が漏れないようになっている。この方法は、(n,n)しきい値秘密分散法あるいは(n,L,n)しきい値ランプ型秘密分散法の特殊な場合と考えることができる。
一般的な秘密分散法は、ガロア体上の演算を用いて実現されることが多いが、電子割符法ではビット単位の平文の割り振りやマスク処理だけですむため高速な処理が可能であり、またかなり大きなファイルであっても分割することなく一度に符号化ができることなどに特長がある。
【0033】
次に、本実施例の電子割符生成法で生成した電子割符の攻撃耐性について説明する。
まず、敵が1個を除きn−1個の割符を入手したような最も危険な場合を考える。電子割符では平文Sについて圧縮符号化しているため、n−1個の割符からは平文Sのどの部分も直ぐには求めることができない。
そこで、残りの未入手の割符について全数探索して平文を復元するためには、符号語の語長をNとし、符号語の割符への割り振り操作の回数をMとし、mを2/(M+1)以上の数とすると、秘密分散法においてn−1個の割符が知られたときの平文の曖昧さが(N+m)/nと評価されることから、2の(N+m)/n乗回の探索をしなければならないことになる。この数は語長Nの増加と共に指数関数的に増加するので、ある程度大きな平文Sに対しては攻撃が全く不可能ということができる。
【0034】
また、敵がn−1個の割符から平文Sの一部でも復元することができるかを検討すると、平文Sについて逐次的な圧縮符号化がされた場合でもSの最初のビットを推定するために2のm/n乗通りの探索を行わなければならないのに、ビット長r1の乱数でマスク処理を行っているので、2の(m+r1)/n乗通りの探索が必要となる。
さらに、全数探索攻撃では、複合されたデータが意味のあるものかどうかを判断しなければならないが、平文Sの前にビット長r2の乱数が付加されているので、r2ビット取り込んだ後でなければ判断ができないから、結局、2の(m+r1+r2)/n乗通りの探索を行わなければならないことになる。
たとえばn=8のとき、M=r1=r2=512ビット(64バイト)であれば、2185すなわち1055、M=r1=r2=1024ビットであれば、2374すなわち10112という莫大な回数の探索が要求される。したがって、全数探索により平文Sの最初の数ビットの値を知ることは実際上不可能といえ、十分な安全性があることが分る。
【0035】
さらに、大きなブロック単位で符号化する圧縮符号化法を用いる場合は、そのブロック長単位で解読する必要があり、未入手の割符中の情報を含めて全数探索しなければならなくなり、必要な探索数がさらに飛躍的に増加する。
敵が、複数の割符を入手して、それらに共通する手順を探ろうとする攻撃が考えられる。しかし、電子割符では各処理において使い捨ての乱数列を使用するので、同じ平文でも生成の都度異なる割符となるため、このような攻撃は不可能である。
割符の長さから平文の長さを測ろうとしても、不定長の乱数データをダミーとして付加した上圧縮処理がなされるため、割符の長さと平文の長さに直接の関係がない。
このように、本実施例により得られる電子割符は極めて高度な安全性を備えている。
【0036】
なお、上記説明した本実施例の電子割符は、一つでも紛失したり改竄されたりすると原本を復元できなくなる。
したがって、各電子割符をnカ所で分散して保管する場合に、その保管責任は重大であり、また一カ所でも毀損を受ければ正しい復元ができないので、危険性はn倍になることになる。さらに、当事者間に利害関係を有する原本では一方が電子割符の所有を否認することすら考えられる。
そこで、全部でなくn−1個の電子割符を収集すれば復元できるように改変すれば、このような不都合を防止することができる。
【0037】
図9は、X,Y,Zの3カ所に電子割符を配布し、必要なときに3カ所から電子割符を集めて元の情報を復元するようにした場合において、1個の電子割符が毀損されても残りの2個から正しく復元することができるようにしたものを示す。
上記説明した電子割符生成法に従って生成した割符ファイルA,B,Cを複写して2セット作成し、たとえばXにA+C、YにB+A、ZにC+Bというように、互いに重複しないように組合わせて分配する。
【0038】
したがって、いずれの1カ所の情報が欠落しても残りの2カ所から集めた情報に全部の割符ファイルが含まれるので、元の情報を正しく復元することができる。
なお、内部グループ化したハッシュ値を格納しておけば、情報自体を復元しなくても残りの1個の原本性を検証することができる。
図9の方法を用いれば、たとえば、XとYで交した契約を3個の電子割符に分割して、1個を認証サービス会社Zに保管させておき、争いが生じたときはZから取寄せた電子割符を使って真正の契約書を復元して確認することができる。
【0039】
また、この方法は1個の保管データが毀損されても残りのデータから正しい情報が復元できることから、非常時のバックアップ機能として活用することもできる。
図10は、認証サービス会社が保管するデータをバックアップする場合を説明する図面である。
【0040】
顧客Xと販売会社Yと認証サービス会社Zが3個の電子割符をそれぞれ保管する。認証サービス会社Zは、自己の責任において保管する電子割符Zをさらに電子割符化して割符ファイル(A+B+C)を作成し、これを図9のように分配して3個の新しい電子割符Z1(A+C),Z2(B+A),Z3(C+B)とし、それぞれ別のサーバに分けて保管する。
顧客Xあるいは販売会社Yから照会があったときには、認証サービス会社Zはサーバから電子割符を収集して元の情報を復元して提供する。このとき、1個の電子割符に損傷があっても残りの電子割符から正しい情報を復元することができる。
【0041】
なお、図11に示すように、平文から作成する割符ファイルを5個(A,B,C,D,E)にしたときは、各所にたとえば(A+E),(B+A),(C+B),(D+C),(E+D)というように分配すれば、いずれか4個の電子割符があれば全ての割符ファイル(A,B,C,D,E)が集るので正しく元の情報を復元することができる。
すなわち、n個の電子割符を作成しnカ所に分配したときには(n−1)個の電子割符を集めれば元の情報を復元することができるわけである。
【0042】
【発明の効果】
以上詳細に説明した通り、本発明の電子割符生成方法および電子割符生成プログラムを使用すると、秘密分散法に準じた高度な安全性を有する電子割符を簡単に作成することができ、通信・保管の安全や契約の安定を確保することができる。
【図面の簡単な説明】
【図1】本発明の1実施例における電子割符生成方法の手順を示す流れ図である。
【図2】本実施例の手順をデータ形態の変化に基づいて説明する概念説明図である。
【図3】本実施例に使用するプログラムのメインフローを示す流れ図である。
【図4】本実施例のプログラムにおける元データ加工処理を説明する流れ図である。
【図5】本実施例のプログラムにおけるエレメント分割処理を説明する流れ図である。
【図6】本実施例のプログラムにおける割符データ編集処理を説明する流れ図である。
【図7】本実施例のプログラムにおける割符データ出力処理を説明する流れ図である。
【図8】本実施例の生成方法により得られる電子割符のレイアウト例を示す表である。
【図9】本実施例の電子割符生成方法の別の利用態様を説明する図面である。
【図10】図9の利用態様の適用例を説明するブロック図である。
【図11】図9の利用態様の別の形態を説明する図面である。
【図12】本発明に使用する電子割符を説明する概念図である。
【符号の説明】
CH クローズヘッダ
CHF クローズヘッダファイル
FT1,FT2 割符ファイル
OH オープンヘッダ
S 平文
TA エレメント割振りテーブル
TB 復元情報振分けテーブル
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a method and a computer program for generating an electronic tally used for securely transmitting electronic information and objectively confirming a transaction or the like between parties.
[0002]
[Prior art]
When electronic information is exchanged through a network, the contents can be falsified, rewritten, or replaced, and there is no trace of the contents, and it is difficult to detect the information after the fact. In addition, it was relatively easy to steal and use in the middle of a communication path.
Conventionally, in such a case, a method of encrypting and transmitting electronic information to ensure security has been used. However, in the encryption method, since all of the electronic information to be sent is included in the communication data, if the communication is leaked, the infringer with a very high capability can decrypt or falsify the electronic information.
[0003]
In many cases, contracts are signed via a communication channel, but the contents of the contract in electronic file format can be easily modified. There may be conflict over execution. For this reason, there is a demand for a simple system capable of checking the contents of the contract at any time.
An electronic tally method disclosed by the present applicant in Japanese Patent Application Laid-Open No. 2000-596543 is known as a method of preventing leakage in such communication and objectively confirming the contents of a contract and the like.
[0004]
Here, the electronic tally refers to a half of the electronic information divided into two or more, and the original electronic information cannot be restored unless all the electronic tallies are aggregated and integrated. The disclosed electronic tally method divides original data into a number of elements, combines elements based on random numbers, and rearranges elements belonging to the same group based on random numbers, as shown in FIG. Create several electronic tallies, send and store the electronic tallies on different routes, collect the electronic tallies when needed, and restore the original information by rearranging the elements in the reverse order Is what you use.
[0005]
Even if you steal some electronic tallies, the original information cannot be restored and it is safe.
Also, by sharing the electronic tally between the parties, even if one of the stored parts is tampered with, by checking whether the meaningful information can be restored by collecting and integrating the electronic tally of the parties, Falsification can be detected.
Therefore, the security of the transaction can be ensured by converting the contract details into electronic tallies and storing them separately.
[0006]
[Problems to be solved by the invention]
Accordingly, an object of the present invention is to provide an electronic tally generation method and a computer program that can easily generate an electronic tally having extremely high confidentiality and high reliability.
[0007]
[Means for Solving the Problems]
In order to solve the above-mentioned problem, the electronic tally generation method of the present invention reads a plaintext from a plaintext file on a computer memory, compresses and encodes, generates a codeword in which redundant bit patterns are erased, and stores the codeword in a codeword file. This code word is read out, divided into K elements, and stored in a predetermined K element file for each element. Each element is read out and distributed to any of the M tally files based on random numbers. Then, the allocation method is recorded in an element allocation table, the element allocation table is read out, divided into predetermined M pieces, added as a close header to the tally file, and distributed to the close header for each tally file. Add the split list placement list to the tally file as an open header It makes and generating an electronic tally to tally file.
[0008]
According to the electronic tally generation method of the present invention, the contents of a tally file generated by repeating a very simple procedure of, for example, a bit unit using compression encoding and random numbers have a word order completely different from the original information. It has become. Further, since information used for restoration is also included in a chopped and divided state, even if a part of the tally file is leaked, the original information cannot be restored at all unless all the altered information is obtained. Furthermore, if the contents of the tally file are changed even a little, the electronic information cannot be restored to meaningful electronic information even if the procedure described in the electronic tally is reversed.
[0009]
Therefore, by using the electronic tally generated by the method of the present invention, even if the electronic tally is stolen in the communication channel, it cannot be used. Also, even if the party alters the electronic tally stored by the party, the information cannot be restored when the electronic tally of the other party is integrated, so the parties must exchange the electronic tally and restore it to confirm the genuine information. Can be. As described above, by using the electronic tally generation method of the present invention, highly reliable information transmission becomes possible.
[0010]
Further, when dividing the element allocation table into M pieces, the element allocation table may be divided in units of a bit length of a predetermined size, and may be distributed to the M tallies based on random numbers. The word length to be divided may be in units of bytes.
The element allocation table is essential for restoring the original information from the electronic tally, but if it is simply attached to the electronic tally, if some electronic tally is obtained, However, there is a possibility that the original information will be restored.
However, similar to the original plain text, if the table is chopped and distributed to the electronic tally in random order using random numbers, the method of restoring the information can not be clarified unless all the electronic tallies are collected, and the security level is extremely high. improves.
[0011]
Further, a codeword may be created by adding random number data of an appropriate length to the head of the plaintext and then compressing and encoding the same. Alternatively, a code word may be obtained by compressing and encoding a plain text and adding random number data of an appropriate length.
An enemy who tries to ingest and use information tries to restore the original information using various methods, but if a random number is given at the beginning of the information, even if it tries to decrypt from the head, It becomes difficult to find the true information and can repel attacks from the head. In particular, in the case where the length of the random number is changed every time, even when repeatedly attacked, there is no clue to decryption, and the difficulty of decryption is further increased.
In particular, when the word length of the plain text is short, the effect of making the target word length long and making decoding difficult is great. About 20 to 40 bits of random number data is sufficiently safe.
[0012]
Further, it is preferable that the head of the created code word is masked with random number data of an appropriate length to transform the code word, and the random number data is recorded in the close header.
The random number data is generated and applied to the head of the compressed data for masking. For example, masking can be performed by taking an exclusive OR (XOR) of the two.
Such a mask adds an ambiguous part to the original data, so that it is possible to further enhance resistance to attacks. If the random number data has the same length as the original code word, it has an ideal strength.
[0013]
When the element obtained by dividing the compressed code word is made to be 1 bit long, it cannot be shorter than 1 bit, so that the degree of freedom in distribution and distribution is the largest and the protection ability is the strongest.
Further, the random number used when allocating M elements may be a pseudo random number in which the same arrangement is repeated every N bits.
Since the generation of random numbers is simple and the random number pattern is different each time an electronic tally is generated, sufficient security can be ensured even for a pseudo random number that repeats every certain digit. In addition, noise that occurs in the natural world, such as thermal noise, cosmic rays, or noise displayed on a cathode ray tube when there is no signal, can be used. Since noise in the natural world may have periodicity, it is preferable to use it after confirming randomness.
[0014]
Further, when distributing the electronic tally to three or more distribution destinations, a distribution file is prepared for each distribution destination, and a group is set so that each of the M tally files is included in two different distribution files. At the same time, the electronic information may be divided and distributed to distribution destinations.
In this method, since there are two identical electronic tallies, even if one of the distributed parties is missing, by collecting electronic tallies from other parties, the missing electronic tallies are supplemented to replace the original tally. Can be restored. Therefore, for example, even when the other party denies the existence of the contract, by providing the electronic tally from the certificate authority and restoring, the original contract contents can be correctly restored and proved.
In the case of distribution to a plurality of storage devices and later collection and restoration, the original contract contents can be correctly restored and certified using the same method.
[0015]
The computer program according to the present invention includes a code word file, a predetermined K element files, a predetermined M tally file, a plain text file storing plain text, and an element allocation table in a computer memory. A procedure for reading a plaintext from a plaintext file, compressing and encoding it to generate a codeword in which redundant bit patterns have been erased, and storing the codeword in a codeword file; reading a codeword and dividing the codeword into K elements; A procedure for reading out each element and distributing it to any one of the M tally files based on random numbers, storing the distributing method in an element allocation table, Read the allocation table, divide it into M, and close it to the tally file. Computer to create an electronic tally in the tally file, as well as a procedure to add it as a header and a procedure to add the arrangement list of the divided pieces of the element allocation table distributed to the closed header for each tally file to the tally file as an open header It is characterized by doing so.
[0016]
With this program, the computer can easily generate and provide the electronic tally by receiving the plaintext.
Further, by setting a computer-readable storage medium storing this program in a computer and mounting the program, the computer can be easily configured as an apparatus for generating and distributing an electronic tally from plain text.
This program can also be downloaded via a communication network.
[0017]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, an electronic tally generation method and a program according to the present invention will be described in detail based on embodiments with reference to the drawings.
FIG. 1 is a flowchart showing a procedure of an electronic tally generation method according to an embodiment of the present invention, and FIG. 2 is a conceptual explanatory diagram for explaining the procedure based on a change in data form.
The electronic tally generation method according to the present embodiment, as shown in FIG. 1 showing an outline of the procedure, and FIG. 2 showing the form of data generated when a tally is created by setting the number of tally to 2 and the number of elements to 4 as shown in FIG. First, the plaintext S (ABCDEFG...) Of the original data is subjected to a compression process or the like, and redundant bit patterns are deleted to generate a codeword (S1).
[0018]
After that, the codeword data is divided into a plurality of elements AB, CD, EF, G,... (S2), and the divided elements are assigned to each of the tallies (1) and (2). (S3).
The allocation result is recorded in the element allocation table TA on the memory, and basic information necessary for knowing the nature of the information, such as the number of divisions and the length of the original data, is recorded on the closed header file CHF in the memory. (S4).
[0019]
The contents of the closed header file CHF are cut into bytes, allocated to each tally (1) and (2) based on random numbers, attached as a closed header CH (S5), and the allocation result is stored in a restoration information allocation table on a memory. Recording is made on the TB (S6). Basic information about the tally such as the tally number and the restoration information distribution table TB are added to the tally as an open header OH (S7). An electronic signature is created and encrypted for the created tally data to complete the electronic tally (S8).
The completed electronic tally contains a part of the plaintext element, a part of the element allocation table, the restoration information allocation table, and the basic information of the tally.
Since the electronic tally (1) and (2) are stored in the tally files FT1 and FT2 on the memory, they can be output to a recording medium such as a flexible disk or distributed via a communication path. .
[0020]
Further, software for causing a computer to execute the electronic tally generation method according to the present embodiment will be described with reference to the drawings.
3 is a flowchart showing the main flow of the program of this embodiment, FIG. 4 is a flowchart illustrating the original data processing step, FIG. 5 is a flowchart illustrating the element division processing step, and FIG. 6 is a tally data editing processing 7 is a flowchart illustrating the tally data output process, and FIG. 8 is a table illustrating a layout example of the electronic tally.
[0021]
The electronic tally is generated by sequentially executing an original data processing program P1, an element division processing program P2, a tally data editing processing program P3, and a tally data output processing program P4, and is issued to a predetermined target. Is done.
The original data processing program P1 assigns random number data to the beginning of each block of the original data and then connects the blocks (S11), and performs a compression process on the obtained data (S12). A step of adding information on the compression process to the head of the compressed data as a compression header (S13), generating random number data of an appropriate length, XORing with the head of the compressed data, and masking (S14). Then, a code word before division is generated from the plain text, and the used random number data is stored in a file in the memory (S15).
[0022]
Executing this program makes it difficult to perform decryption analysis because random number data is added to the plaintext. However, even when a plaintext having a short data length is targeted, the data length increases, making cryptanalysis difficult. It is preferable that the random number length be changed for each process in order to prevent a person who intends to infringe from decoding by repeatedly analyzing. If the random number data is about 20 to 40 bits, transmission of information is sufficiently secure. Also, by masking an appropriate word length from the head of the compressed data, high resistance to attacks from the head is provided. The random number data used for masking is recorded in the close header and used for the later tally restoration processing. It is sufficient if the number of digits of the random number is 20 to 40 bits, but it is ideal if the random number has the same length as the number of bits of the entire compressed data.
[0023]
The element division processing program P2 is for instructing a procedure for dividing a code word into elements and assigning them to an electronic tally, and for generating a closed header including assignment information. As shown in FIG. 5, the program first cuts out elements from the original data for each number of bits obtained by dividing the number of bits of the original data by the number of elements input as an argument (S21). Further, information on the division processing such as the software authentication key, the tally creation date and time, the size of the original data, the number of tally, the number of elements, and the size of the element are recorded in the close header file in the memory (S22).
[0024]
Further, using the creation date and time of the argument and the hash value of the original data, the random number generator initializes a random number sequence in the same range as the tally number (S23), and determines the tally to be assigned to using the random number for each element. Then, the distribution position information is recorded in a file in the memory (S24). The element allocation is repeated until the elements of the original data run out (S25). The final distribution information is recorded in the close header file.
Next, the closed header file is compressed (S26).
Furthermore, a random number sequence is initialized based on the creation date and time of the argument and the hash value of the close header (S27), the tally of the allocation destination is determined for each byte of the close head using the random number, and the allocation information is stored in a file in the memory. It is recorded as a table (S28). The closed header is allocated to the tally by repeating the number of bytes (S29).
[0025]
As shown in detail in FIG. 6, the tally data editing program P3 is a program for creating a tally file from data prepared so far.
First, a tally file for storing tally data is created (S31). Specifically, it is to secure a memory area for storing one tally data for the designated number of tally (S32).
Next, for each electronic tally, create an open header that describes the search character string used to find the electronic tally by searching, the version number of the electronic tally generation integration program, the tally number, the length of the closed header, etc. It is stored in the open header file (S33).
[0026]
Further, the allocation position information of the closed header is checked for each byte, and if the information is allocated to the tally, the number is added to the list of the open header file (S34), and this is repeated by the number of bytes of the closed header (S35). .
Next, the contents of the close header file are recorded at the position of the close header of the tally file for each byte allocated to the tally according to the above sorting information (S36). This is repeated by the number of bytes of the contents of the close header file (S37).
Further, the element assigned to the tally is recorded in the data section of the tally file (S38). This is repeated for the number of elements (S39).
The above steps performed for each electronic tally are repeated by the number of tally (S40) to complete creation of all tally files.
[0027]
FIG. 7 is a table showing a layout of tally data recorded in a tally file.
In the open header section of the tally file: 1. A search character string composed of a fixed-length text character string and used to identify whether it is a tally or not. 2. Version number of tally generation integrated program to be used; 3. data size; 4. A checksum value for checking whether the content of the tally data has not changed, such as an MD5 value; Tally number, 6. 6. The size of the closed header, Basic information about the tally, such as an array of distribution position information of the close header portion, is stored.
However, 4. The MD5 value is generated by a tally data output processing program P4 executed later.
[0028]
Also, in the closed header section, 8. 8. For example, MD5 value obtained by acting on a soft authentication key; Date and time of creation; 10. the size of the divided original data; Tally number, 12. Number of elements, 13. Element size, 14. Basic information on the original data, such as an array of element allocation position information, is stored.
It should be noted that since the information in the closed header portion has already been divided and distributed, it is needless to say that the information is not clearly arranged in one tally data. .
Further, in the data section, 15. The elements themselves are housed in an arranged state.
[0029]
As shown in FIG. 8, the tally data output processing program P4 is a program for generating an electronic tally from a tally file and outputting it to a file or a memory so that it can be used.
First, the tally data file 1. 1. A search character string composed of a fixed-length text character string and used to identify whether it is a tally or not. 2. The version number of the tally generation integration program to be used; 4. Leave the data size. 3. A checksum algorithm, for example, MD5 is applied to the subsequent portion including the tally number to obtain a checksum, and the checksum is obtained in the open header portion of the tally file. It is added as a checksum value (S51).
Next, using a common key that can be used as an argument and that can be used to verify the identity, the tally file 4. The portion after the MD5 value is encrypted (S52) and output to a file or a memory (S53).
This is repeated by the number of tallies to generate an electronic tally (S54).
[0030]
When restoring the original data from the electronic tally, the search string is attached to the electronic tally in a state that can be seen as it is, so extract the necessary electronic tally from the place where various data are mixed Can be collected. When all electronic tallies are collected, the original data is obtained by performing the reverse procedure of the tally generation using the identity verification key specified when generating the tally, the software authentication key and the creation date and time specified when generating the tally. Can be restored.
[0031]
In the electronic tally generation method according to the present embodiment, the number of tallies, the number of elements, the number of divisions of the table, and the like are parameters for electronic tally generation, and any number can be designated. A well-known method may be used for generating and initializing random numbers, and a pseudo random number generated by repeating a random number sequence of an appropriate length may be used.
Further, it is needless to say that the tally data does not need to include all of the listed items or may include other items in accordance with the purpose of use, security requirements, and the like.
[0032]
The electronic tallying method used in the present invention is an encoding method for dividing secret information and transmitting or recording it safely. The plaintext S, which is secret information, is divided and encoded into n tally Wis. The plaintext S can be restored if all of the tallies of are aligned, but the information of the plaintext S is not leaked from n-1 or less tallies. This method can be considered as a special case of the (n, n) threshold secret sharing scheme or the (n, L, n) threshold ramp secret sharing scheme.
General secret sharing schemes are often implemented using operations on Galois fields, but the electronic tally method requires only bit-wise plaintext allocation and mask processing, so high-speed processing is possible. The feature is that even a very large file can be encoded at once without division.
[0033]
Next, the attack resistance of the electronic tally generated by the electronic tally generation method of this embodiment will be described.
First, consider the most dangerous case where the enemy has obtained n-1 tally excluding one. In the electronic tally, since the plaintext S is compression-encoded, any part of the plaintext S cannot be immediately obtained from the (n-1) tallies.
Therefore, in order to restore the plaintext by performing an exhaustive search for the remaining unacquired tally, the word length of the codeword is set to N, the number of times the codeword is allocated to the tally is set to M, and m is set to 2 M / (M + 1) n With the above numbers, the ambiguity of the plaintext when the (n−1) tallies are known in the secret sharing scheme is evaluated as (N + m) / n. Therefore, the search is performed 2 (N + m) / n times. Must be done. Since this number increases exponentially with an increase in the word length N, it can be said that an attack on plain text S that is somewhat large is impossible.
[0034]
Considering whether an enemy can restore even a part of the plaintext S from the n-1 tally, it is possible to estimate the first bit of the S even if the plaintext S is sequentially compressed and encoded. Needs to be searched for 2 / m / n powers, but mask processing is performed with random numbers of bit length r1, so 2 (m + r1) / n powers need to be searched.
Further, in an exhaustive search attack, it is necessary to determine whether or not the combined data is meaningful. However, since a random number having a bit length of r2 is added before the plaintext S, it must be obtained after r2 bits are fetched. If this is not the case, the search must be performed in the order of 2 (m + r1 + r2) / n.
For example, when n = 8, if M = r1 = r2 = 512 bits (64 bytes), 2 185 That is, 10 55 , M = r1 = r2 = 1024 bits, 2 374 That is, 10 112 That is, an enormous number of searches are required. Therefore, it is practically impossible to know the values of the first few bits of the plaintext S by exhaustive search, and it can be seen that there is sufficient security.
[0035]
Furthermore, when using the compression coding method of coding in units of large blocks, it is necessary to perform decoding in units of the block length, and it is necessary to perform an exhaustive search including information in unobtained tally. The number increases even more dramatically.
An attack could be made where an enemy obtains multiple tallies and seeks a common procedure. However, since the electronic tally uses a disposable random number sequence in each process, a different tally is generated each time the same plaintext is generated, so such an attack is impossible.
Even if an attempt is made to measure the length of the plaintext from the length of the tally, since the compression process is performed after adding random number data of indefinite length as a dummy, there is no direct relationship between the length of the tally and the length of the plaintext.
As described above, the electronic tally obtained according to the present embodiment has extremely high security.
[0036]
In addition, if at least one of the electronic tally of the present embodiment described above is lost or falsified, the original cannot be restored.
Therefore, when each electronic tally is distributed and stored in n places, the responsibility for storage is serious, and if one is damaged, correct restoration cannot be performed. Therefore, the risk is increased by n times. Furthermore, one of the originals having an interest in the parties may even deny possession of the electronic tally.
Therefore, if the data is modified so that it can be restored by collecting not all but n-1 electronic tallies, such inconvenience can be prevented.
[0037]
FIG. 9 shows a case where electronic tally is distributed to three places of X, Y and Z, and when necessary, electronic tally is collected from three places to restore the original information. This shows a case where the remaining two data can be correctly restored even after the above operation.
The tally files A, B, and C generated according to the electronic tally generation method described above are copied to create two sets, and are combined so as not to overlap each other, for example, A + C for X, B + A for Y, and C + B for Z. Distribute.
[0038]
Therefore, even if any one of the information is lost, all the tally files are included in the information collected from the remaining two locations, so that the original information can be correctly restored.
If the hash values obtained by the internal grouping are stored, the originality of the remaining one can be verified without restoring the information itself.
If the method of FIG. 9 is used, for example, a contract signed between X and Y is divided into three electronic tallies, one of which is stored in an authentication service company Z, and when a dispute occurs, it is ordered from Z. The authentic contract can be restored and confirmed using the electronic tally.
[0039]
Also, this method can be used as a backup function in an emergency, since even if one piece of stored data is damaged, correct information can be restored from the remaining data.
FIG. 10 is a diagram illustrating a case where the data stored by the authentication service company is backed up.
[0040]
The customer X, the sales company Y, and the authentication service company Z store three electronic tallies, respectively. The authentication service company Z further converts the electronic tally Z stored at its own responsibility into an electronic tally, creates a tally file (A + B + C), distributes the tally file as shown in FIG. 9, and distributes three new electronic tally Z1 (A + C). , Z2 (B + A), and Z3 (C + B), and store them separately in different servers.
When there is an inquiry from the customer X or the sales company Y, the authentication service company Z collects the electronic tally from the server, restores the original information, and provides it. At this time, even if one electronic tally is damaged, correct information can be restored from the remaining electronic tally.
[0041]
As shown in FIG. 11, when five tally files (A, B, C, D, E) are created from plain text, for example, (A + E), (B + A), (C + B), (C + B) If it is distributed as D + C) or (E + D), if there are any four electronic tallies, all tally files (A, B, C, D, E) will be collected, so the original information must be restored correctly Can be.
That is, when n electronic tallies are created and distributed to n locations, the original information can be restored by collecting (n-1) electronic tallies.
[0042]
【The invention's effect】
As described in detail above, by using the electronic tally generation method and the electronic tally generation program of the present invention, it is possible to easily create an electronic tally having high security in accordance with the secret sharing method, and to realize communication and storage. Safety and contract stability can be ensured.
[Brief description of the drawings]
FIG. 1 is a flowchart showing a procedure of an electronic tally generation method according to an embodiment of the present invention.
FIG. 2 is a conceptual explanatory diagram illustrating a procedure of the present embodiment based on a change in data form.
FIG. 3 is a flowchart showing a main flow of a program used in the embodiment.
FIG. 4 is a flowchart illustrating an original data processing process in the program according to the present embodiment.
FIG. 5 is a flowchart illustrating element division processing in a program according to the present embodiment.
FIG. 6 is a flowchart illustrating a tally data editing process in the program according to the present embodiment.
FIG. 7 is a flowchart illustrating tally data output processing in a program according to the present embodiment.
FIG. 8 is a table showing a layout example of an electronic tally obtained by the generation method of the present embodiment.
FIG. 9 is a diagram illustrating another mode of using the electronic tally generation method according to the embodiment.
FIG. 10 is a block diagram illustrating an application example of the use mode of FIG. 9;
FIG. 11 is a view for explaining another form of the use mode of FIG. 9;
FIG. 12 is a conceptual diagram illustrating an electronic tally used in the present invention.
[Explanation of symbols]
CH Close header
CHF Close header file
FT1, FT2 tally file
OH open header
S plaintext
TA element allocation table
TB restoration information distribution table

Claims (11)

符号語ファイルと予め決めたK個のエレメントファイルと予め決めたM個の割符ファイルと平文を格納した平文ファイルとエレメント割振りテーブルをコンピュータメモリ上に準備し、前記平文ファイルから平文を読み出して圧縮符号化し冗長なビットパターンを消した符号語を生成して前記符号語ファイルに格納し、該符号語を読み出してK個のエレメントに分割しエレメントごとにK個の前記エレメントファイルに格納し、各エレメントを読み出しては乱数に基づいてM個の前記割符ファイルのいずれかに振り分けて格納し、その振り分け方法を前記エレメント割振りテーブルに記録し、該エレメント割振りテーブルを読み出してM個に分割し前記割符ファイルにクローズヘッダとして追加し、該割符ファイルごとのクローズヘッダに分配された前記エレメント割振りテーブルの分割片の配置リストをオープンヘッダとして前記割符ファイルに追加することにより、前記割符ファイルに電子割符を生成することを特徴とする電子割符生成方法。A code word file, a predetermined K element file, a predetermined M tally file, a plain text file storing a plain text and an element allocation table are prepared on a computer memory, and the plain text is read out from the plain text file and compressed. Generating a code word from which redundant bit patterns have been erased, storing the code word in the code word file, reading out the code word, dividing the code word into K elements, storing each of the elements in the K element files, Is read out and assigned to any of the M tally files based on the random numbers, and the assignment method is recorded in the element assignment table. The element assignment table is read out, divided into M pieces, and the tally file is read. As a close header, and separates it into a close header for each tally file. It has been by adding to the tally file arrangement list split piece of the element allocation table as an open header, electronic tally generating method and generating an electronic tallies to the tally file. 前記エレメント割振りテーブルをM個に分割するときは、予め決めた大きさのビット長を単位として分割し、乱数に基づいてM個の割符に分配することを特徴とする請求項1記載の電子割符生成方法。2. The electronic tally according to claim 1, wherein, when dividing the element allocation table into M pieces, the element allocation table is divided in units of a bit length of a predetermined size and distributed to M tallies based on random numbers. Generation method. 前記平文から前記符号語を作成するときにおいて、前記圧縮符号化する前または後で適当な長さの乱数データを付加することを特徴とする請求項1または2記載の電子割符生成方法。3. The electronic tally generation method according to claim 1, wherein when the codeword is created from the plaintext, random number data having an appropriate length is added before or after the compression encoding. 前記平文の先頭部分に適当な長さの乱数データを付加した後に前記圧縮符号化して前記符号語を作成することを特徴とする請求項1または2記載の電子割符生成方法。3. The electronic tally generation method according to claim 1, wherein the codeword is created by adding the random number data of an appropriate length to the head of the plaintext and then performing the compression encoding. 前記符号語の先頭部分を適当な長さの乱数データでマスクして前記符号語を変成し、該乱数データを前記クローズヘッダに記録することを特徴とする請求項1から4のいずれかに記載の電子割符生成方法。5. The method according to claim 1, wherein the codeword is transformed by masking a head portion of the codeword with random number data having an appropriate length, and the random number data is recorded in the close header. Electronic tally generation method. 前記エレメントは1ビット長であることを特徴とする請求項1から5のいずれかに記載の電子割符生成方法。6. The electronic tally generation method according to claim 1, wherein the element has a length of 1 bit. 前記エレメントをM個の前記割符ファイルに割り振るときに使用する乱数はNビットごとに同じ配列を繰返した疑似乱数であることを特徴とする請求項1から6のいずれかに記載の電子割符生成方法。7. The electronic tally generation method according to claim 1, wherein a random number used when allocating the elements to the M tally files is a pseudo random number obtained by repeating the same arrangement every N bits. . 前記エレメントをM個の前記割符ファイルに割り振るときに使用する乱数は自然界に発生する電気的な雑音に基づくものであることを特徴とする請求項1から6のいずれかに記載の電子割符生成方法。7. The electronic tally generation method according to claim 1, wherein random numbers used when allocating the elements to the M tally files are based on electric noise generated in nature. . さらに、配布先ごとに分配ファイルを準備して、前記M個の割符ファイルのそれぞれを異なる2個の分配ファイルに重複して含ませるように組合わせて、3以上の配布先に分配するようにしたことを特徴とする請求項1記載の電子割符生成方法。Further, a distribution file is prepared for each distribution destination, and each of the M tally files is combined so as to be included in two different distribution files so as to be distributed to three or more distribution destinations. 2. The electronic tally generation method according to claim 1, wherein: 符号語ファイルと予め決めたK個のエレメントファイルと予め決めたM個の割符ファイルと平文を格納した平文ファイルとエレメント割振りテーブルをコンピュータメモリ上に準備する手順と、前記平文ファイルから平文を読み出して圧縮符号化し冗長なビットパターンを消した符号語を生成して前記符号語ファイルに格納する手順と、該符号語を読み出してK個のエレメントに切り刻みエレメントごとにK個の前記エレメントファイルに格納する手順と、各エレメントを読み出しては乱数に基づいてM個の前記割符ファイルのいずれかに振り分けて格納する手順と、その振り分け方法を前記エレメント割振りテーブルに記録する手順と、該エレメント割振りテーブルを読み出してM個に分割し前記割符ファイルにクローズヘッダとして追加する手順と、該割符ファイルごとのクローズヘッダに分配された前記エレメント割振りテーブルの分割片の配置リストをオープンヘッダとして前記割符ファイルに追加する手順をコンピュータに実行させて、前記割符ファイルに電子割符を生成するようにしたプログラム。Preparing a code word file, a predetermined K element file, a predetermined M tally file, a plain text file storing a plain text and an element allocation table on a computer memory, and reading the plain text from the plain text file. A procedure for generating a code word in which a redundant bit pattern is deleted by compression encoding and storing the code word in the code word file, and reading out the code word and chopping the code word into K elements, and storing in the K element files for each element. A procedure for reading each element, distributing and storing the elements in any of the M tally files based on random numbers, a procedure for recording the distribution method in the element allocation table, and reading the element allocation table Divided into M and added as a closed header to the tally file And a computer to execute a procedure of adding an arrangement list of the divided pieces of the element allocation table distributed to the closed header of each tally file to the tally file as an open header, and adding an electronic tally to the tally file. Program to be generated. 請求項10記載のプログラムを記録したコンピュータ読み取り可能な記憶媒体。A computer-readable storage medium storing the program according to claim 10.
JP2002211931A 2002-07-22 2002-07-22 Electronic tally generating method and program Pending JP2004053969A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2002211931A JP2004053969A (en) 2002-07-22 2002-07-22 Electronic tally generating method and program
PCT/JP2003/009198 WO2004010635A1 (en) 2002-07-22 2003-07-18 Electronic tally generation method and program
AU2003281562A AU2003281562A1 (en) 2002-07-22 2003-07-18 Electronic tally generation method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002211931A JP2004053969A (en) 2002-07-22 2002-07-22 Electronic tally generating method and program

Publications (1)

Publication Number Publication Date
JP2004053969A true JP2004053969A (en) 2004-02-19

Family

ID=30767790

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002211931A Pending JP2004053969A (en) 2002-07-22 2002-07-22 Electronic tally generating method and program

Country Status (3)

Country Link
JP (1) JP2004053969A (en)
AU (1) AU2003281562A1 (en)
WO (1) WO2004010635A1 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005229178A (en) * 2004-02-10 2005-08-25 Ntt Communications Kk System, method and program for secret information management and terminal program for secret information management system
JP2005346659A (en) * 2004-06-07 2005-12-15 Ntt Communications Kk Secret information management system, secret information management method, secret information management program and terminal program for secret information management system
JP2006208992A (en) * 2005-01-31 2006-08-10 Fujitsu Ltd Data compression method, data restoring method, data compressor, data restoring device, data compression program, and data restoring program
JP2006301849A (en) * 2005-04-19 2006-11-02 Global Friendship Inc Electronic information storage system
JP2006345160A (en) * 2005-06-08 2006-12-21 Base Technology Inc Information communication system
JP2009513049A (en) * 2005-10-21 2009-03-26 サントル・ナショナル・ドゥ・ラ・レシェルシュ・サイエンティフィーク−セ・エン・エール・エス− Method for secure data transfer
US8085938B2 (en) 2004-02-10 2011-12-27 Ntt Communications Corporation Secret information management scheme based on secret sharing scheme
JP2014011762A (en) * 2012-07-03 2014-01-20 Felica Networks Inc Information processing apparatus, terminal device, information processing system, method for information processing, and computer program
JP2018190211A (en) * 2017-05-09 2018-11-29 ネクスト・イット株式会社 Electronic information leak protection system, electronic information leak protection device, and electronic information leak protection method
JP6473864B1 (en) * 2018-07-09 2019-02-27 ネクスト・シェアリング株式会社 Confidential processing / restoration pre-processing application device, confidential processing / restoration pre-processing application device terminal, confidential processing / restoration pre-processing application device terminal Pre-processing method and confidentiality processing / restoration pre-processing method of the terminal
JP2019161443A (en) * 2018-03-13 2019-09-19 富士通株式会社 Encryption information processing device, encryption information processing system, decryption key information generation program, and decryption key information generation method
JPWO2020138505A1 (en) * 2018-12-29 2021-12-02 株式会社ピアフィード File transmission system

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62147447A (en) * 1985-12-20 1987-07-01 Shinko Micro:Kk Microfiche and photographing device for same
JPS62147477A (en) * 1985-12-20 1987-07-01 オムロン株式会社 Data encrypting apparatus
JPH01194627A (en) * 1988-01-29 1989-08-04 Nec Corp Line data secret holding device
JPH06189146A (en) * 1992-01-14 1994-07-08 Nec Corp Facsimile equipment
JP2000022684A (en) * 1998-07-01 2000-01-21 Nec Corp Method and system for data ciphering/deciphering communication
JP2000173178A (en) * 1998-11-30 2000-06-23 Nec Gumma Ltd Digital data storage method and computer system using the method
WO2000045358A1 (en) * 1999-01-28 2000-08-03 Yutaka Yasukura Method for securing safety of electronic information

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62147447A (en) * 1985-12-20 1987-07-01 Shinko Micro:Kk Microfiche and photographing device for same
JPS62147477A (en) * 1985-12-20 1987-07-01 オムロン株式会社 Data encrypting apparatus
JPH01194627A (en) * 1988-01-29 1989-08-04 Nec Corp Line data secret holding device
JPH06189146A (en) * 1992-01-14 1994-07-08 Nec Corp Facsimile equipment
JP2000022684A (en) * 1998-07-01 2000-01-21 Nec Corp Method and system for data ciphering/deciphering communication
JP2000173178A (en) * 1998-11-30 2000-06-23 Nec Gumma Ltd Digital data storage method and computer system using the method
WO2000045358A1 (en) * 1999-01-28 2000-08-03 Yutaka Yasukura Method for securing safety of electronic information

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005229178A (en) * 2004-02-10 2005-08-25 Ntt Communications Kk System, method and program for secret information management and terminal program for secret information management system
US8085938B2 (en) 2004-02-10 2011-12-27 Ntt Communications Corporation Secret information management scheme based on secret sharing scheme
JP4602675B2 (en) * 2004-02-10 2010-12-22 エヌ・ティ・ティ・コミュニケーションズ株式会社 CONFIDENTIAL INFORMATION MANAGEMENT SYSTEM, CONFIDENTIAL INFORMATION MANAGEMENT METHOD, CONFIDENTIAL INFORMATION MANAGEMENT PROGRAM, AND CONFIDENTIAL INFORMATION MANAGEMENT SYSTEM TERMINAL PROGRAM
JP2005346659A (en) * 2004-06-07 2005-12-15 Ntt Communications Kk Secret information management system, secret information management method, secret information management program and terminal program for secret information management system
JP4486851B2 (en) * 2004-06-07 2010-06-23 エヌ・ティ・ティ・コミュニケーションズ株式会社 CONFIDENTIAL INFORMATION MANAGEMENT SYSTEM, CONFIDENTIAL INFORMATION MANAGEMENT METHOD, CONFIDENTIAL INFORMATION MANAGEMENT PROGRAM, AND CONFIDENTIAL INFORMATION MANAGEMENT SYSTEM TERMINAL PROGRAM
US7965841B2 (en) 2005-01-31 2011-06-21 Fujitsu Limited Method and apparatus for compressing and decompressing data, and computer product
JP2006208992A (en) * 2005-01-31 2006-08-10 Fujitsu Ltd Data compression method, data restoring method, data compressor, data restoring device, data compression program, and data restoring program
JP4630080B2 (en) * 2005-01-31 2011-02-09 富士通株式会社 Data restoration method and data restoration program
JP2006301849A (en) * 2005-04-19 2006-11-02 Global Friendship Inc Electronic information storage system
JP2006345160A (en) * 2005-06-08 2006-12-21 Base Technology Inc Information communication system
JP2009513049A (en) * 2005-10-21 2009-03-26 サントル・ナショナル・ドゥ・ラ・レシェルシュ・サイエンティフィーク−セ・エン・エール・エス− Method for secure data transfer
JP2014011762A (en) * 2012-07-03 2014-01-20 Felica Networks Inc Information processing apparatus, terminal device, information processing system, method for information processing, and computer program
JP2018190211A (en) * 2017-05-09 2018-11-29 ネクスト・イット株式会社 Electronic information leak protection system, electronic information leak protection device, and electronic information leak protection method
JP2019161443A (en) * 2018-03-13 2019-09-19 富士通株式会社 Encryption information processing device, encryption information processing system, decryption key information generation program, and decryption key information generation method
JP6473864B1 (en) * 2018-07-09 2019-02-27 ネクスト・シェアリング株式会社 Confidential processing / restoration pre-processing application device, confidential processing / restoration pre-processing application device terminal, confidential processing / restoration pre-processing application device terminal Pre-processing method and confidentiality processing / restoration pre-processing method of the terminal
JP2020009150A (en) * 2018-07-09 2020-01-16 ネクスト・シェアリング株式会社 Confidentiality processing/restoration pre-processing application device, confidentiality processing/restoration pre-processing application device terminal, method performed by confidentiality processing/restoration pre-processing application device for causing terminal to perform confidentiality processing/restoration pre-processing, and confidentiality processing/restoration pre-processing method for the terminal
JPWO2020138505A1 (en) * 2018-12-29 2021-12-02 株式会社ピアフィード File transmission system
JP7497545B2 (en) 2018-12-29 2024-06-11 株式会社Altplan File Transfer System

Also Published As

Publication number Publication date
WO2004010635A1 (en) 2004-01-29
AU2003281562A1 (en) 2004-02-09

Similar Documents

Publication Publication Date Title
TWI750223B (en) Blockchain encrypted radio frequency chip storage design method
CN109194466B (en) Block chain-based cloud data integrity detection method and system
US9559837B2 (en) Methods for cryptographic delegation and enforcement of dynamic access to stored data
US5530757A (en) Distributed fingerprints for information integrity verification
KR101560131B1 (en) System and method for defining programmable processing steps applied when protecting the data
CN102426640B (en) For the fail-safe software product identifiers of Product Validation and activation
Cohen A cryptographic checksum for integrity protection
US8401186B2 (en) Cloud storage data access method, apparatus and system based on OTP
Yun et al. On protecting integrity and confidentiality of cryptographic file system for outsourced storage
EP1406410A1 (en) Method for an integrated protection system of data distributed processing in computer networks and system for carrying out said method
EP1515445A1 (en) Method of strongly encrypting .zip files
US8494154B2 (en) Cryptographic ignition key system
CA2695019A1 (en) Method and system for encryption of data
Sengupta et al. Embedding digital signature using encrypted-hashing for protection of DSP cores in CE
WO2012063755A1 (en) Distributed archive system, data archive device, and data restoring device
JP2004053969A (en) Electronic tally generating method and program
JP2000172548A (en) Electronic data management method and device and recording medium of electronic data management program
JP2004147218A (en) Data division management method and program
Jose et al. Hash and Salt based Steganographic Approach with Modified LSB Encoding
US7953970B2 (en) Method and apparatus for storage of security keys and certificates
JP2002135247A (en) Digital information storing method
CN116436708A (en) Trusted data sharing method and system based on blockchain technology
Wang et al. T-tracer: a blockchain-aided symbol mapping watermarking scheme for traitor tracing in non-repudiation data delivery
JP4194481B2 (en) Secret information storage processing method, secret information storage device, secret information restoration processing method, and secret information restoration device
Tang et al. Fragile watermarking based proofs of retrievability for archival cloud data

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040323