JPH11112490A - Ciphering method - Google Patents

Ciphering method

Info

Publication number
JPH11112490A
JPH11112490A JP9266633A JP26663397A JPH11112490A JP H11112490 A JPH11112490 A JP H11112490A JP 9266633 A JP9266633 A JP 9266633A JP 26663397 A JP26663397 A JP 26663397A JP H11112490 A JPH11112490 A JP H11112490A
Authority
JP
Japan
Prior art keywords
program
computer
encryption
execution environment
message
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
JP9266633A
Other languages
Japanese (ja)
Inventor
Mutsumi Komuro
睦 小室
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.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
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 Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP9266633A priority Critical patent/JPH11112490A/en
Publication of JPH11112490A publication Critical patent/JPH11112490A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To make deciphering of a cryptogram difficult and to unnecessitate a program only for decoding on a data receiver side by transmitting a program for returning data as an arithmetic result in execution environment as a ciphering result with respect to data. SOLUTION: Intermediate code interpreting mechanisms VM 203 and 204 with respect to select-fixed program language are provided for each of a transmitting side computer 201 and a receiving side computer. The computer 202 holds execution environment information ENV 205 for deciphering. The computer 201 evaluate a message M210 desired to send by the copy ENV 209 of information ENV 205 by the mechanism VM 203 to generate such one program E211 as outputs the message M210. Then, the program E211 expressed by intermediate codes is sent to the computer 202 by a cryptogram.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、ネットワークを介
してコンピュータユーザがお互いに情報を交換する場合
に、その通信を安全確実に行うために、実際の通信を行
う前の前処理を行う方法に係り、特に、通信文を暗号
化、復号化する方法に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method for performing pre-processing before actual communication in order for computer users to exchange information with each other via a network in a safe and secure manner. In particular, the present invention relates to a method of encrypting and decrypting a communication message.

【0002】[0002]

【従来の技術】従来、コンピュータ等の通信ネットワー
クを結合した図13に示すようなネットワーク環境で
は、ネットワーク11に各自のコンピュータを接続した
ユーザ12、13、14は、ネットワーク11を介し、
WWWやネットニュース、電子メール等で商品情報を含
む種々の情報を得ることができ、クレジットカードや電
子マネーを使って売買を行うことができる。この場合に
問題となることは、例えばユーザ12がユーザ14とメ
ッセージのやり取りを行おうとする時、ネットワーク1
1への中継中に、その情報を第3者であるユーザ13が
盗聴する可能性があり、さらにユーザ13がユーザ12
になりすましてデータを改ざんしてネットワーク11に
流すなどの不法行為を働く可能性があることである。
2. Description of the Related Art Conventionally, in a network environment as shown in FIG. 13 in which a communication network such as a computer is connected, users 12, 13, and 14 who connect their computers to a network 11 are connected via the network 11,
Various information including product information can be obtained by WWW, net news, e-mail, etc., and trading can be performed using a credit card or electronic money. The problem in this case is that when the user 12 wants to exchange messages with the user 14,
1 may be intercepted by the third party user 13 while relaying the information to the third party.
There is a possibility that illegal acts such as falsification of data and transmission to the network 11 may be performed.

【0003】この問題点を解決する基本的な技術として
暗号化の手法がある。従来、一般に用いられている暗号
化の手法は以下のようなものである。まず、情報の送信
者と受信者の間で何らかの手段を用いて鍵Kを共有させ
る。その後、暗号化変換E,復号化変換Dより平文Mと
暗号文Cを次のように互いに変換することで暗号通信を
行う。
As a basic technique for solving this problem, there is an encryption technique. Conventionally, generally used encryption methods are as follows. First, the key K is shared between the sender and the receiver of the information using some means. After that, the plaintext M and the ciphertext C are mutually converted by the encryption conversion E and the decryption conversion D as follows, thereby performing the encryption communication.

【0004】[0004]

【数1】C=E(M,K),M=D(C,K). すなわち、DとEは任意のMに対して、M=D(E
(M,K),K)という恒等式を満たす。
## EQU1 ## C = E (M, K), M = D (C, K). That is, D and E are given by M = D (E
(M, K), K).

【0005】[0005]

【発明が解決しようとする課題】しかしながら、従来の
暗号化法では、「数1」から分かるように暗号化アルゴ
リズムが固定になっている。このため、採用している暗
号化アルゴリズムから生じるデータ(暗号化結果)の分
布の偏りを解析して平文Mの解読に利用されてしまうと
いう問題があった。
However, in the conventional encryption method, the encryption algorithm is fixed as can be seen from "Equation 1". For this reason, there has been a problem that the distribution bias of data (encryption result) resulting from the employed encryption algorithm is analyzed and used for decrypting the plaintext M.

【0006】また、平文Mをひとつ固定した時、暗号化
して得られる暗号文Eは、暗号化の時点にかかわらず常
に一通りで一定であるため、暗号文を収集して解読に利
用する攻撃が可能であった。
Further, when one plaintext M is fixed, the ciphertext E obtained by encryption is always uniform regardless of the time of encryption, so that an attack that collects the ciphertext and uses it for decryption. Was possible.

【0007】一方、ネットワークコンピュータを利用す
る環境では、メッセージを受けて復号化する側に、ハー
ドディスク等の一時記憶領域がないため、複号化のため
のプログラムを保存しておくことができない。また、マ
ルチプラットフォーム化がすすんだ環境では同一のユー
ザが計算能力の異なる複数のマシンを用いる場合があ
り、その全てを同一のアルゴリズムの暗号で処理するの
は困難である。そして、新しい暗号アルゴリズムが考案
されると、それに応じた解読法の研究も行われる。この
ため、電子マネーシステムのように安全性を特に重視す
る場合には、定期的に暗号アルゴリズムを変更すること
が行われる。しかし、このためには、システム自体を変
更しなければならないという問題が生じる。
On the other hand, in an environment using a network computer, a program for decryption cannot be stored because there is no temporary storage area such as a hard disk on the side that receives and decrypts a message. Further, in an environment where multiplatforms have advanced, the same user may use a plurality of machines having different computational capabilities, and it is difficult to process all of them using the same algorithm. Then, when a new encryption algorithm is devised, research on a decryption method corresponding thereto is also performed. For this reason, when security is particularly important as in an electronic money system, the encryption algorithm is periodically changed. However, this causes a problem that the system itself must be changed.

【0008】一方また、企業内の人事データなどの機密
データ等では、人事部と管理職のみがアクセスでき、さ
らに管理職でも見ることができるのは自分の部下に関す
る部分のみに限られるという原則を設けているのが一般
的である。このように企業内等においては、同一のデー
タを、アクセスする人により見せ方を変えたい場合があ
る。このような場合、従来は見せ方の種類だけパスワー
ドを用意して該当者に教えるような手法がとられてい
た。しかし、これではパスワードの管理が難しく、さら
に職制異動等による体制変更に柔軟に対処できないとい
う問題が生じる。
On the other hand, the principle that confidential data such as personnel data in a company can be accessed only by the human resources department and managers, and that only managers can see only those related to their subordinates. It is generally provided. As described above, in a company or the like, there is a case where the same data is desired to be displayed differently depending on a person accessing the same data. In such a case, conventionally, a method of preparing a password only for the type of presentation and teaching the password to the person concerned has been adopted. However, this makes it difficult to manage passwords, and also causes a problem that it is not possible to flexibly cope with a system change due to a change in job system or the like.

【0009】本発明の目的は、暗号文の解読がより困難
であり、さらにデータの受け手側に複合化のための専用
のプログラムを必要としない暗号化方法およびシステム
を提供することにある。
It is an object of the present invention to provide an encryption method and system in which it is more difficult to decrypt a ciphertext and does not require a dedicated program for decryption on the data receiving side.

【0010】[0010]

【課題を解決するための手段】上記目的を達成するため
に、本発明は、コンピュータによるプログラムの実行環
境をキーとし、指定されたデータを前記実行環境で計算
結果として返すプログラムを、指定されたデータに対す
る暗号結果として受信側に送信することを特徴とする。
In order to achieve the above object, the present invention provides a program which uses a computer's execution environment as a key and returns specified data as a calculation result in the execution environment. The data is transmitted to the receiving side as an encryption result.

【0011】具体的には、まず、送信側と受信側でプロ
グラム言語を1つ選んで固定する。そして、送信側およ
び受信側のそれぞれに、このプログラム言語に対する中
間コードの解釈機械VMを設けると共に、受信側は送信
側から供給された復号のための実行環境NVを1つ保持
させておく。これはICカード等に入れて保持させてお
く。一方、送信側には、プログラム生成装置を設け、こ
れを用いて送信したいメッセージMに対して、中間コー
ドの解釈機構VMにより実行環境ENVで評価してメッ
セージMを出力するようなプログラムEを1つ生成す
る。送信側はこのプログラムEを暗号文として受信側に
送る。
Specifically, first, one programming language is selected and fixed on the transmitting side and the receiving side. Each of the transmission side and the reception side is provided with an intermediate code interpreting machine VM for this program language, and the reception side holds one execution environment NV for decoding supplied from the transmission side. This is stored in an IC card or the like. On the transmitting side, a program generating device is provided, and for a message M to be transmitted using the program generating device, an intermediate code interpreting mechanism VM evaluates the message E in the execution environment ENV and outputs a program E that outputs the message M. Generate one. The transmitting side sends the program E to the receiving side as ciphertext.

【0012】受信側は中間コードの解釈機構VMにより
実行環境ENVでプログラムEを評価し、メッセージM
を復元する。
The receiving side evaluates the program E in the execution environment ENV by the intermediate code interpreter VM, and
To restore.

【0013】[0013]

【発明の実施の形態】以下、図面を参照して本発明の一
実施形態を詳細に説明する。図2は、本発明を実施する
ための最も基本的なシステム構成を示した図であり、送
信側のコンピュータ201と受信側のコンピュータ20
2が存在する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings. FIG. 2 is a diagram showing the most basic system configuration for carrying out the present invention, in which a computer 201 on the transmitting side and a computer 20 on the receiving side are shown.
There are two.

【0014】両コンピュータ201と202のそれぞれ
には、共通のプログラム言語を1つ選んで固定してあ
る。さらに、送信側コンピュータ201と受信側コンピ
ュータ202のそれぞれに、選択固定したプログラム言
語に対する中間コードの解釈機械(VM)203、20
4が設けられている。また、受信側コンピュータ202
は送信側コンピュータ201から供給された復号のため
の実行環境報(ENV)205を1つ保持している。こ
れは例えばフロッピーディスク、ICカード等の補助記
憶206に格納して保持される。
Each of the computers 201 and 202 has one common programming language selected and fixed. Further, the transmission side computer 201 and the reception side computer 202 respectively provide intermediate code interpreting machines (VM) 203, 20 for a selected and fixed programming language.
4 are provided. Also, the receiving computer 202
Holds one execution environment report (ENV) 205 for decoding supplied from the sending computer 201. This is stored and held in an auxiliary storage 206 such as a floppy disk or an IC card.

【0015】送信側コンピュータ201には、プログラ
ム生成装置208と実行環境情報(ENV)205のコ
ピー(ENV)209が保存してあり、これらを用いて
送りたいメッセージ(M)210に対して、中間コード
の解釈機構(VM)203により実行環境情報のコピー
(ENV)209で評価することによってメッセージ
(M)210を出力するようなプログラム(E)211
を1つ生成するようになっている。
The transmission side computer 201 stores a program generation device 208 and a copy (ENV) 209 of the execution environment information (ENV) 205. A program (E) 211 that outputs a message (M) 210 by being evaluated by a copy (ENV) 209 of execution environment information by a code interpretation mechanism (VM) 203
Is generated.

【0016】送信側コンピュータ201は、プログラム
(E)211を中間コードで表現したものを暗号文とし
て受信側コンピュータ202に送る。受信側コンピュー
タ202は、解釈機構(VM)204と実行環境情報
(ENV)205とで、受信した暗号文であるプログラ
ム(E)211を評価し、送信側が送信したのと同じメ
ッセージ(M)212を得る。
The sending computer 201 sends the program (E) 211 expressed as an intermediate code to the receiving computer 202 as ciphertext. The receiving computer 202 evaluates the program (E) 211 which is a received cipher text with the interpreting mechanism (VM) 204 and the execution environment information (ENV) 205, and the same message (M) 212 as transmitted by the transmitting side. Get.

【0017】ここで、実行環境情報とは、送信側コンピ
ュータ201の性能、設置場所、送信側コンピュータ2
01のユーザが任意に設定した変数あるいは変数の組な
ど、情報の内容が変動し、ネットワークを監視していた
だけでは分からない情報である。
Here, the execution environment information includes the performance of the transmitting computer 201, the installation location, the transmitting computer 2
The contents of the information, such as variables or a set of variables arbitrarily set by the user No. 01, fluctuate and cannot be understood only by monitoring the network.

【0018】このように、送信側コンポ201の実行環
境の情報(ENV)209を暗号キーにしてメッセージ
M210をプログラム化して受信側コンピュータ202
に送ることにより、第3者が盗聴しようとしても、実行
環境の情報が不明であり、かつ変動するため、盗聴が実
質的に困難になる。また、実行形式のプログラムE21
1を送信しているため、受信側コンピュータ202に
は、中間コードの解釈機構(VM)204さえあればよ
く、特定の複合化プログラムを用意しておく必要がな
い。従って、ハードディスク等の一時記憶機構を備えて
いないネットワークコンピュータにおいても、各種の暗
号アルゴリズムを用意したコンピュータと同様の暗号通
信が可能になる。
As described above, the message M210 is programmed using the execution environment information (ENV) 209 of the transmission-side component 201 as an encryption key, and
In this case, even if a third party attempts to eavesdrop, the information on the execution environment is unknown and fluctuates, making eavesdropping substantially difficult. The executable program E21
1 is transmitted, the receiving computer 202 only needs to have the intermediate code interpreting mechanism (VM) 204, and there is no need to prepare a specific compounding program. Therefore, even in a network computer that does not have a temporary storage mechanism such as a hard disk, the same encrypted communication as a computer that prepares various encryption algorithms can be performed.

【0019】図3は、受信側コンピュータ202の保持
するキーとして実行環境情報以外にさらにサブプログラ
ム(F)303を付け加えた場合の構成図である。この
場合、送信された暗号コードであるプログラム(E)3
01は、解釈機構(VM)302で評価されると、この
サブプログラム(F)303と互いに呼びあいながら計
算をすすめ、送信側が送信したのと同じメッセージ30
4を復元する。
FIG. 3 is a block diagram showing a case where a subprogram (F) 303 is added as a key held by the receiving computer 202 in addition to the execution environment information. In this case, the transmitted encryption code, program (E) 3
01, when evaluated by the interpreter (VM) 302, proceeds with the calculation while calling each other with the subprogram (F) 303, and the same message 30 transmitted by the sender is transmitted.
4 is restored.

【0020】サブプログラム(F)303が付加される
ことによって盗聴がさらに困難になる。
The addition of the subprogram (F) 303 makes eavesdropping more difficult.

【0021】図4は、プログラム生成装置208の構成
例を示した図である。この装置208は実行環境情報
(ENV)401とメッセージ(M)402を入力とし
て受け取り、計算結果としてMを返すようなプログラム
(P)403を生成して出力する。説明を簡単にするた
め、ここでは(ENV)401は、{(x,0),
(y,1),(z,2)}のような変数とその値の組の
列であるとする(実際にはプログラムカウンタや戻りア
ドレスのカウンタを持っていてもよい)。以下の説明で
は大域変数ENVには、この環境が束縛され、ENVに
現れる変数たちの集合は大域変数Vに束縛されているも
のとする。また、プログラムデータベース(DB)40
4から検索に用いるキーの上限値が大域変数に束縛され
ているものとする。
FIG. 4 is a diagram showing a configuration example of the program generation device 208. The device 208 receives the execution environment information (ENV) 401 and the message (M) 402 as inputs, and generates and outputs a program (P) 403 that returns M as a calculation result. For the sake of simplicity, here (ENV) 401 is {(x, 0),
It is assumed that the sequence is a sequence of pairs of variables and their values such as (y, 1), (z, 2)} (actually, a program counter or a return address counter may be provided). In the following description, it is assumed that this environment is bound to the global variable ENV, and a set of variables appearing in the ENV is bound to the global variable V. Also, a program database (DB) 40
It is assumed that the upper limit value of the key used for the search from 4 is bound to the global variable.

【0022】簡単のため、以下、変数はすべて整数値を
とるものとして説明する。メッセージ分割装置406
は、メッセージ(M)402をいくつかの数の和または
積に分解する。分割のアルゴリズムの一例を図4に示
す。この例では、ステップ415からステップ417に
おいて、指定された上限値N以下の乱数列{(T1,R
1),(T2,R2),...,(Tn,Rn),M
0)}を生成し、MをT1+R1*(T2+R2
*(...Tn+Rn*M0)))の形に分解し、分割
結果Sとして出力している。なお、乱数Rは、乱数生成
装置410で生成される。
For simplicity, the following description will be made assuming that all variables take integer values. Message division device 406
Decomposes the message (M) 402 into a sum or product of several numbers. FIG. 4 shows an example of the dividing algorithm. In this example, in steps 415 to 417, a random number sequence {(T1, R
1), (T2, R2),. . . , (Tn, Rn), M
0)}, and M is calculated as T1 + R1 * (T2 + R2
* (... Tn + Rn * M0)))) and output as a division result S. Note that the random number R is generated by the random number generation device 410.

【0023】合成装置407は、この分解の結果の各数
を計算結果として返すプログラムをプログラムデータベ
ース(DB)404から検索して置き換え、1つのプロ
グラムとして合成する。一般に、検索結果として複数の
候補が得られるが、これらのうちからランダムに1つを
選ぶ。プログラムデータベース(DB)404内に格納
されているプログラムデータの例を図5に、DB検索の
アルゴリズムを図6に、プログラム合成のアルゴリズム
を図7に示す。
The synthesizing unit 407 searches the program database (DB) 404 for a program that returns each number of the result of the decomposition as a calculation result, replaces the program, and synthesizes as one program. Generally, a plurality of candidates are obtained as a search result, and one of them is selected at random. FIG. 5 shows an example of program data stored in the program database (DB) 404, FIG. 6 shows a DB search algorithm, and FIG. 7 shows a program synthesis algorithm.

【0024】プログラムデータベース(DB)404内
には、1からNまでの検索キーに対応して複数のそのキ
ーの値を評価値として持つようなプログラムが複数格納
されている。図5では、キーの値601が「13」であ
り、その「13」を計算結果として返すような3種類の
プログラム602,603,604が格納されている。
プログラム602ではライブラリ関数fibが使用され
ており、プログラムデータベース(DB)404中にそ
の定義605も格納されている。これらのプログラム
は、図6のステップ606から608で示す処理によ
り、検索され、3つのプログラム定義のうち1つに局所
変数書換えが施されて返される。
In the program database (DB) 404, a plurality of programs having a plurality of key values as evaluation values corresponding to search keys 1 to N are stored. In FIG. 5, the key value 601 is “13”, and three types of programs 602, 603, and 604 that return “13” as a calculation result are stored.
The program 602 uses a library function fib, and its definition 605 is also stored in the program database (DB) 404. These programs are searched by the processing shown in steps 606 to 608 in FIG. 6, and one of the three program definitions is returned after local variable rewriting is performed.

【0025】ここで、局所変数書換えとは、計算途中で
用いている局所変数の使用法が、その名前付けから推定
されるのを防ぐため、プログラム内の局所変数の名前の
書換えをすることを意味する。例えば、プログラム60
3の「λ(x){x^2−x+1}(4)」が選択され
た場合、局所変数のxはランダムに選ばれた変数名、例
えば「swk1125」に書換えられ、実際返されるプ
ログラムは、「λ(swk1125){swk1125
^2−swk1125+1}(4)」となる。
Here, local variable rewriting means rewriting the name of a local variable in a program in order to prevent the usage of the local variable used during the calculation from being inferred from its naming. means. For example, program 60
In the case where “λ (x) {x ^ 2-x + 1} (4)” of 3 is selected, x of the local variable is rewritten to a randomly selected variable name, for example, “swk1125”, and the actually returned program is , “Λ (swk1125) {swk1125
{2-swk1125 + 1} (4) ".

【0026】合成装置407による合成の際には、論理
式生成装置403により、論理式生成を行い、if文P
を1つ構成する。すなわち、生成された論理式の実行環
境情報(ENV)401での評価結果に応じてif文の
対応する枝に結果として返すべきプログラムRを置き、
別の枝にはランダムに生成した多項式を置く。
At the time of synthesizing by the synthesizing unit 407, a logical expression is generated by the logical expression generating unit 403, and the if sentence P
Are configured. That is, a program R to be returned as a result is placed in a corresponding branch of an if statement in accordance with the evaluation result of the generated logical expression in the execution environment information (ENV) 401,
Another branch contains a randomly generated polynomial.

【0027】上述のTi,Riに対応するデータベース
検索結果のプログラムをPa,PbとしてPa+Pb*
Pの形のプログラムを順に構成することにより全体のプ
ログラム合成を行っている。この合成は、図7のステッ
プ701から713で行なう。
The program of the database search result corresponding to Ti and Ri is Pa + Pb * as Pa and Pb.
By composing programs in the form of P in order, the entire program is synthesized. This synthesis is performed in steps 701 to 713 in FIG.

【0028】図7では、分割装置407から返される分
割結果Sをもとに、ステップ703でこのリストの各要
素(A,B)を取り出した後、ステップ704,705
でデータベース404の検索を行ない、Pa,Pbに代
入している。さらに、ステップ706,707でランダ
ム多項式の生成を行ない、Pに代入し、ステップ70
7,709で論理式を生成し、Lに代入している。与え
られた実行環境ENVで評価結果が真であるか偽である
かに応じてステップ711,712でif文の構成を行
なう。最後に、ステップ713で自分自身にはステップ
702で合成されたプログラムRを返す。
In FIG. 7, based on the division result S returned from the division device 407, each element (A, B) of this list is extracted in step 703, and then, in steps 704 and 705.
To search the database 404 and substitute it for Pa and Pb. Further, in steps 706 and 707, a random polynomial is generated and substituted into P.
At 7,709, a logical expression is generated and assigned to L. In steps 711 and 712, an if statement is constructed in accordance with whether the evaluation result is true or false in the given execution environment ENV. Finally, in step 713, the program R synthesized in step 702 is returned to itself.

【0029】論理式生成装置403は、この実行環境情
報(ENV)401に現われる変数を含む論理式をラン
ダムに生成して返す。但し、「0」を偽、「0」以外の
値を真と考えることで、変数に関する多項式等も論理式
とみなす。論理式生成の手順の例を図8のステップ80
1からステップ817に示す。ステップ801〜804
の論理演算子生成サブルーチンは、and,or,=の
論理演算子をランダムに選んで返す。ランダム多項式生
成サブルーチンは、次数nで、変数が「0」またはSが
空の時は単に乱数を生成して返す(ステップ806)。
それ以外の場合には、ステップ807で次数n−1の多
項式を自分自身を呼んで生成し、aに代入し、また、S
の最初の変数をxに代入する(ステップ808)。さら
に、x以外の変数から成るn次の多項式をやはり自分自
身を呼んで生成し、bに代入する(ステップ809)。
これらの結果をもとにn次多項式ax+bを構成し、最
終結果として返す(ステップ810)。
The logical expression generator 403 randomly generates and returns a logical expression including a variable appearing in the execution environment information (ENV) 401. However, by considering “0” as false and values other than “0” as true, polynomials and the like related to variables are also considered as logical expressions. An example of the procedure for generating a logical expression is shown in step 80 in FIG.
1 to step 817 are shown. Steps 801 to 804
Logical operator generation subroutine randomly selects and returns a logical operator of and, or, =. The random polynomial generation subroutine simply generates and returns a random number when the order is n and the variable is “0” or S is empty (step 806).
Otherwise, in step 807, a polynomial of degree n-1 is generated by calling itself, substituted into a, and
Is substituted for x (step 808). Further, an n-th order polynomial composed of variables other than x is generated by calling itself, and substituted into b (step 809).
An nth-order polynomial ax + b is constructed based on these results and returned as the final result (step 810).

【0030】倫理式生成ルーチンでは、以下のサブルー
チンを用いて、与えられた個数Lの論理演算子を含み、
変数リストSから成る論理式をランダムに生成する、L
が「0」の時は、単にランダム多項式生成を行なう(ス
テップ812,813)。そうでない時は、自分自身を
呼出して論理演算子を含まない論理式をleftに、n
−1個の論理演算子を含む論理式をrightに生成し
(ステップ814,815)、さらに論理演算子opを
ランダムに生成し(ステップ816)、最終結果として
left op rightの形の論理式を返す(ステ
ップ817)。以上のプログラム合成手続きを指定され
た回数k回繰り返す。プログラム選択/補正装置411
は、このようにして合成されたk個のプログラムのうち
からほぼ正しくメッセージを計算し、プログラムが一定
の基準以上に複雑なものを選択する。「ほぼ正しく」と
は、計算結果とメッセージとの差の絶対値がN以下であ
ることを指し、この差が「0」でない時にはプログラム
データベース(DB)検索を行い、結果の補正を行う。
プログラムの複雑さは、フローチャートにしたときのネ
ットワークの複雑さ、および分岐点での論理式の複雑さ
をもとに適当な重みをかけて算出する。
The ethical expression generation routine includes a given number L of logical operators using the following subroutines.
L that randomly generates a logical expression consisting of a variable list S
Is zero, a random polynomial is simply generated (steps 812 and 813). Otherwise, call itself and add a logical expression not containing the logical operator to left, n
A logical expression including one logical operator is generated in right (steps 814 and 815), and a logical operator op is randomly generated (step 816). As a final result, a logical expression in the form of left op right is obtained. Return (step 817). The above program synthesizing procedure is repeated a specified number of times k times. Program selection / correction device 411
Calculates a message almost correctly from the k programs synthesized in this way, and selects a program whose program is more complicated than a certain standard. "Almost correctly" indicates that the absolute value of the difference between the calculation result and the message is equal to or smaller than N. If the difference is not "0", a program database (DB) search is performed and the result is corrected.
The complexity of the program is calculated by applying appropriate weights based on the complexity of the network in a flowchart and the complexity of the logical expression at the branch point.

【0031】もし、一定基準以上に複雑なプログラムが
見い出せないときには、これらのプログラム集合をプロ
グラム変異器409にかけ、プログラムテキストの部分
的交換、局所変数の交換、ランダムテキストの挿入等の
変異操作を施し、新しいプログラムを生成し、再び選択
/補正装置411にかける。プログラム変異のアルゴリ
ズムの一例を図9および図10に示す。
If a program that is more complicated than a certain standard cannot be found, a set of these programs is applied to a program mutator 409 to perform mutating operations such as partial exchange of program text, exchange of local variables, insertion of random text, and the like. , A new program is generated and applied to the selection / correction device 411 again. An example of the algorithm for program mutation is shown in FIGS.

【0032】このアルゴリズム例では「*」,「+」等
の算術演算の展開1001、2つの合成プログラムの構
文木の部分マッチングを行い成功した場合の対応部分の
交換1002、実行ステートメントの順序交換100
3、プログラムデータベース(DB)404中に用いら
れているライブラリ関数の定義展開1004、プログラ
ム中に現れる定数を対応するプログラムデータベース
(DB)404のプログラムもしくは実行環境情報環境
(ENV)401中の束縛変数に置き換える代入100
5などの変異操作を施している。
In this algorithm example, expansion 1001 of arithmetic operations such as "*" and "+" is performed. Partial matching of the syntax trees of two synthesized programs is performed.
3. Definition expansion 1004 of library functions used in the program database (DB) 404, constants appearing in the program are bound variables in the program or execution environment information environment (ENV) 401 of the corresponding program database (DB) 404 Substitution 100 to replace
Mutational operations such as 5 are performed.

【0033】以下、このループを繰り返す。暗号の強度
に関する要請があまり強くないときには、この繰り返し
回数に上限値を設けて、適当なタイミングで強制的に終
了させてもよい。以上の一連の手順の流れ図を図11お
よび図12に示す。
Hereinafter, this loop is repeated. If the request regarding the encryption strength is not so strong, an upper limit value may be set for the number of repetitions, and the process may be forcibly terminated at an appropriate timing. FIGS. 11 and 12 show flowcharts of the above series of procedures.

【0034】図11のステップ1101はメッセージ分
割処理、ステップ1102はプログラムデータベース検
索処理、ステップ1103は論理式生成処理、ステップ
1104はプログラムデータベース検索処理を示し、1
105は生成された論理式の1つR1を示している。ま
た、図12のステップ1201はプログラム選択補正処
理、ステップ1203はプログラム変異処理を示し、1
202は選択補正結果、1204は変異結果のプログラ
ムを示している。
Step 1101 in FIG. 11 is a message division process, step 1102 is a program database search process, step 1103 is a logical expression generation process, and step 1104 is a program database search process.
105 indicates one of the generated logical expressions R1. Step 1201 in FIG. 12 shows a program selection correction process, and step 1203 shows a program variation process.
202 indicates a selection correction result, and 1204 indicates a mutation result program.

【0035】応用として、単一の暗号文で複数の複号方
法を持つものを作成できる。いま異なるn種類の相手が
いるとして、それぞれが異なる実行環境ENV
1,...,ENVnを複号キーとして保持しているも
のとする。それぞれに異なるメッセージM1,...,
Mnを伝えたい場合には、初期プログラムとして、例え
ば多項式F(M1)*(x−ENV2)*....*
(x−ENVn)+...+F(Mn)*(x−ENV
1)*...*(x−ENV(n−1))を構成し、プ
ログラム選択の条件を「ENViでMiを返す。(i=
1,...,n)」に置き換え、1メッセージの場合と
同様の手続きを踏めばよい。但し、Fは1メッセージの
場合の初期生成プログラムとする。
As an application, a single ciphertext having a plurality of decoding methods can be created. Assuming that there are n different types of opponents now, each has a different execution environment ENV
1,. . . , ENVn are held as decryption keys. Each different message M1,. . . ,
When it is desired to transmit Mn, as an initial program, for example, a polynomial F (M1) * (x-ENV2) *. . . . *
(X-ENVn) +. . . + F (Mn) * (x-ENV
1) *. . . * (X-ENV (n-1)), and the program selection condition is "Return Mi to ENVi. (I =
1,. . . , N)] and the same procedure as in the case of one message may be performed. Here, F is an initial generation program for one message.

【0036】このようにすれば、特に、指定されたキー
ENV1,...,ENVnを持つ複数の受信者には同
じメッセージを送り、他の者には復号を許さないという
制御が可能であり、復号できる受信者を発信者側が暗号
化する時点で決めることができる。
In this way, in particular, the designated keys ENV1,. . . , ENVn, the same message can be sent to other recipients, and decryption is not allowed to other recipients. The recipients that can be decrypted can be determined when the sender encrypts.

【0037】したがって、例えばENVnを持つ受信者
がいなくなり、代わりにENVn+1を持つ者に復号を
許したいというような場合でも、上述の方法をENV
1,...,ENVn−1,ENVn+1に適用すれば
よく、復号キーの交換等の作業が不要になり、キーの管
理作業が著しく軽減される。
Therefore, for example, even if there is no receiver having ENVn and instead wants to permit decryption to a person having ENVn + 1, the above-described method can be applied to ENVn + 1.
1,. . . , ENVn−1, ENVn + 1, the work such as exchange of the decryption key becomes unnecessary, and the key management work is remarkably reduced.

【0038】[0038]

【発明の効果】以上のように本発明の暗号化方法を用い
れば、データの受け手側に復号化のための専用プログラ
ムを持つことを不要にすることができ、特に複数の異な
るマシン環境で作業をするような場合に有用である。特
に、復号化に用いるアルゴリズムを受信者側が予め保持
しておく必要がないため、発信者側の判断で容易に変更
することができる。
As described above, the use of the encryption method of the present invention makes it unnecessary to have a dedicated program for decryption on the data receiving side. This is useful when you want to In particular, since the receiver does not need to hold the algorithm used for decoding in advance, it can be easily changed by the judgment of the sender.

【0039】また、本発明の暗号化方法を用いれば、使
用環境に応じて送信するプログラムの複雑度を変えるこ
とができる。すなわち、マシンパワーのない環境では、
暗号強度は低いが複号速度の早い暗号化、マシンパワー
が強力な環境では、暗号強度は高いが複号速度の遅い暗
号化を選択することができる。受信側はプログラム言語
の評価器を持つのみでよく、専用の複号プログラムが不
要となる。このため、暗号アルゴリズムの変更を送信側
のみの判断で実行でき、受信者側の環境に応じて暗号強
度を変えることもできる。
Further, by using the encryption method of the present invention, the complexity of the program to be transmitted can be changed according to the use environment. In other words, in an environment without machine power,
In an environment where encryption strength is low but encryption speed is fast and machine power is strong, encryption with high encryption strength but slow encryption speed can be selected. The receiving side only needs to have an evaluator in the programming language, and a dedicated decoding program is not required. For this reason, the encryption algorithm can be changed only by the transmission side, and the encryption strength can be changed according to the environment of the receiver side.

【0040】さらに、本発明の暗号方法では、1つの平
文に対応する暗号化の仕方が無限にあり、暗号文の収集
による解読は困難である。実際、一般的に2つのプログ
ラムが同じ計算結果を返すかどうかを機械的に判定する
ことは不可能であることが知られている(Riceの定
理)ので、本発明の暗号方法による暗号化を破ることは
著しく困難であると考えられる。
Further, in the encryption method of the present invention, the number of encryption methods corresponding to one plaintext is infinite, and it is difficult to decrypt the data by collecting the ciphertext. In fact, it is generally known that it is impossible to mechanically determine whether two programs return the same calculation result (Rice's theorem). It is considered extremely difficult to break.

【0041】また、キーとして実行環境のみではなくサ
ブプログラムも含めた場合、暗号コードはこのサブプロ
グラムなしではプログラムとして完結していないため、
解読することは一層困難となる。
When not only the execution environment but also a subprogram is included as a key, the encryption code is not completed as a program without this subprogram.
It is more difficult to decipher.

【0042】また、本発明による暗号化方法では、一つ
の暗号文に対応する復号化の仕方を複数用意することが
可能であり、同一の暗号文を送るだけで受信者により異
なるメッセージを受け取ることが可能となる。
Further, in the encryption method according to the present invention, it is possible to prepare a plurality of decryption methods corresponding to one ciphertext, and it is possible to receive different messages depending on the recipients by sending the same ciphertext. Becomes possible.

【0043】さらに、暗号時に復号を許す受信者グルー
プを指定することが可能となり、復号キーの管理が著し
く軽減されるなどの効果がある。
Further, it is possible to specify a recipient group that is allowed to decrypt the data at the time of encryption, and the management of the decryption key is significantly reduced.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の実施形態を示すシステム構成図であ
る。
FIG. 1 is a system configuration diagram showing an embodiment of the present invention.

【図2】キーにサブプログラムも含めた場合の実施形態
を示すシステム構成図である。
FIG. 2 is a system configuration diagram showing an embodiment when a key includes a subprogram.

【図3】プログラム生成装置の構成例を示す機能ブロッ
ク図である。
FIG. 3 is a functional block diagram illustrating a configuration example of a program generation device.

【図4】メッセージ分割のアルゴリズム例を説明する図
である。
FIG. 4 is a diagram illustrating an example of an algorithm for dividing a message.

【図5】プログラムデータベース内のデータ格納例を示
す図である。
FIG. 5 is a diagram showing an example of data storage in a program database.

【図6】プログラムデータベース検索のアルゴリズム例
を説明する図である。
FIG. 6 is a diagram illustrating an example of an algorithm of a program database search.

【図7】プログラム合成のアルゴリズム例を説明する図
である。
FIG. 7 is a diagram illustrating an example of an algorithm of program synthesis.

【図8】論理式生成とランダム多項式生成のアルゴリズ
ム例を説明する図である。
FIG. 8 is a diagram illustrating an example of an algorithm for generating a logical expression and generating a random polynomial.

【図9】プログラム変異の方法を説明する図である。FIG. 9 is a diagram illustrating a method of program mutation.

【図10】図9と同様、プログラム変異の方法を説明す
る図である。
FIG. 10 is a diagram illustrating a method of program mutation, as in FIG. 9;

【図11】プログラム生成全体の手順を説明する図であ
る。
FIG. 11 is a diagram for explaining the overall procedure of program generation.

【図12】プログラム選択補正以降の手順を説明する図
である。
FIG. 12 is a diagram illustrating a procedure after program selection correction.

【図13】ネットワークとその利用者の概念図である。FIG. 13 is a conceptual diagram of a network and its users.

【符号の説明】[Explanation of symbols]

210…送信側コンピュータ、202…受信側コンピュ
ータ、203、204…中間コードの解釈機構、20
5、209…実行環境情報、206…補助記憶装置、2
08…プログラム生成装置、303…サブプログラム、
210、212…メッセージ、406…メッセージ分割
装置、404…プログラムデータベース。
210: transmitting computer, 202: receiving computer, 203, 204: interpreter of intermediate code, 20
5, 209: execution environment information, 206: auxiliary storage device, 2
08: a program generation device; 303: a subprogram;
210, 212... Message, 406... Message dividing device, 404.

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】 コンピュータによるプログラムの実行環
境をキーとし、指定されたデータを前記実行環境で計算
結果として返すプログラムを、指定されたデータに対す
る暗号結果として受信側に送信することを特徴とする暗
号化方法。
1. A cipher, wherein a program for returning specified data as a calculation result in the execution environment using a program execution environment by a computer as a key is transmitted to a receiving side as an encryption result for the specified data. Method.
【請求項2】 プログラムの実行環境と特定のサブプロ
グラムとをキーとし、指定されたデータをその環境でそ
のサブプログラムと互いに呼び出し合いながら計算結果
として返すプログラムを、指定されたデータに対する暗
号結果として受信側に送信することを特徴とする暗号化
方法。
2. A program which uses a program execution environment and a specific subprogram as keys and returns specified data as a calculation result while calling each other with the subprogram in the environment as an encryption result for the specified data. An encryption method for transmitting to a receiving side.
【請求項3】 前記プログラムは、受信側が実行可能な
コード形式であることを特徴とする請急項1または2記
載の暗号化方法。
3. The encryption method according to claim 1, wherein the program is in a code format executable by a receiving side.
JP9266633A 1997-09-30 1997-09-30 Ciphering method Pending JPH11112490A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9266633A JPH11112490A (en) 1997-09-30 1997-09-30 Ciphering method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9266633A JPH11112490A (en) 1997-09-30 1997-09-30 Ciphering method

Publications (1)

Publication Number Publication Date
JPH11112490A true JPH11112490A (en) 1999-04-23

Family

ID=17433548

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9266633A Pending JPH11112490A (en) 1997-09-30 1997-09-30 Ciphering method

Country Status (1)

Country Link
JP (1) JPH11112490A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132364A (en) * 2000-10-19 2002-05-10 Yutaka Iizuka Method for protecting program from internal analysis, computer readable recording medium and program distribution method
JP2002278843A (en) * 2001-03-19 2002-09-27 Matsushita Electric Ind Co Ltd Contents reproduction device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132364A (en) * 2000-10-19 2002-05-10 Yutaka Iizuka Method for protecting program from internal analysis, computer readable recording medium and program distribution method
JP2002278843A (en) * 2001-03-19 2002-09-27 Matsushita Electric Ind Co Ltd Contents reproduction device
JP4659995B2 (en) * 2001-03-19 2011-03-30 パナソニック株式会社 Content playback device

Similar Documents

Publication Publication Date Title
Millen et al. The interrogator: Protocol secuity analysis
US5323464A (en) Commercial data masking
US6628786B1 (en) Distributed state random number generator and method for utilizing same
US5109152A (en) Communication apparatus
Daemen et al. Resynchronization weaknesses in synchronous stream ciphers
US6189095B1 (en) Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks
US20050125684A1 (en) Session key distribution methods using a hierarchy of key servers
KR19990082665A (en) Common Key Communication Method
CN110235409A (en) Use the protected RSA signature of homomorphic cryptography or the method for decryption
Meadows Using narrowing in the analysis of key management protocols
US20050201555A1 (en) System, method and apparatus for secure computation on encrypted data
Nieh et al. Modelling and analyzing cryptographic protocols using Petri nets
US7894608B2 (en) Secure approach to send data from one system to another
US8862893B2 (en) Techniques for performing symmetric cryptography
CN113517981A (en) Key management method, code version management method and device
CN116861477A (en) Data processing method, system, terminal and storage medium based on privacy protection
CN114640443B (en) Online engineering quotation safety interaction method and system
JPH10320478A (en) Ciphered/deciphered communication system and method therefor
JP2821204B2 (en) Information service system
US6823070B1 (en) Method for key escrow in a communication system and apparatus therefor
JPH11112490A (en) Ciphering method
Tillem et al. Mining encrypted software logs using alpha algorithm
JPH0946329A (en) Communication equipment and system therefor
JPH0777933A (en) Network data ciphering device
CN113014375B (en) Cross-organization processing method, related device and medium for network threat information

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040616