JP5586758B1 - Dynamic encryption key generation system - Google Patents

Dynamic encryption key generation system Download PDF

Info

Publication number
JP5586758B1
JP5586758B1 JP2013182478A JP2013182478A JP5586758B1 JP 5586758 B1 JP5586758 B1 JP 5586758B1 JP 2013182478 A JP2013182478 A JP 2013182478A JP 2013182478 A JP2013182478 A JP 2013182478A JP 5586758 B1 JP5586758 B1 JP 5586758B1
Authority
JP
Japan
Prior art keywords
key information
data
key
program control
external data
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.)
Expired - Fee Related
Application number
JP2013182478A
Other languages
Japanese (ja)
Other versions
JP2015050708A (en
Inventor
導吉 佐藤
由貴雄 西原
露起 伊野
和哉 坂本
Original Assignee
東京システムハウス株式会社
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 東京システムハウス株式会社 filed Critical 東京システムハウス株式会社
Priority to JP2013182478A priority Critical patent/JP5586758B1/en
Application granted granted Critical
Publication of JP5586758B1 publication Critical patent/JP5586758B1/en
Publication of JP2015050708A publication Critical patent/JP2015050708A/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】 会社等のグループ単位で異なる鍵を安全に生成できるようにする暗号化技術を得る。
【解決手段】 ID対応データとプログラム制御要素を含んだプログラム制御値とを予め暗号化して得た外部データを提供した外部データ提供手段と;暗号化された外部データを復号してID対応データとプログラム制御値とを生成する外部データ復号手段と、得られたID対応データから第1鍵情報を生成する第1鍵情報生成手段と、得られたプログラム制御値から第2鍵情報を生成する第2鍵情報生成手段と、得られた第1鍵情報と第2鍵情報とから暗号化鍵を生成する暗号化鍵生成手段とを備えた暗号化処理装置と;を備えた動的暗号化鍵生成システム。
【選択図】 図1
PROBLEM TO BE SOLVED: To obtain an encryption technique capable of securely generating a different key for each group such as a company.
External data providing means for providing external data obtained by previously encrypting ID-corresponding data and a program control value including a program control element; and decrypting the encrypted external data; An external data decrypting means for generating a program control value; a first key information generating means for generating first key information from the obtained ID correspondence data; and a second key information for generating second key information from the obtained program control value. A dynamic encryption key comprising: a two-key information generation unit; and an encryption processing device including an encryption key generation unit configured to generate an encryption key from the obtained first key information and second key information. Generation system.
[Selection] Figure 1

Description

本発明は、例えば、関数多重化方式によって暗号化鍵を隠蔽する技術に関するものである。   The present invention relates to a technique for concealing an encryption key by a function multiplexing method, for example.

インターネットの普及に伴い、ますます多くのユーザがコンピュータシステム内に保存されている機密データの転送・送受信を、ネットワークを介して行っている。この場合に、コンピュータに保存されたデータは、何らかの保護メカニズムによって保護されていなければ、悪意のある第三者に盗まれる可能性がある。また、悪意を持ったハッカー(コンピュータ技術に通じた人)がインターネット回線を介して他者のデータを故意に盗んでしまうことも多々ある。   With the spread of the Internet, more and more users are transferring and transmitting / receiving confidential data stored in computer systems via a network. In this case, the data stored in the computer may be stolen by a malicious third party if it is not protected by any protection mechanism. In addition, malicious hackers (those who are familiar with computer technology) often intentionally steal data from others via the Internet.

このため、ネットワーク回線上等で転送・送受信するデータを如何に保護するかは重要な課題となっている。   For this reason, how to protect data transferred / transmitted / received on a network line or the like is an important issue.

一般的に、ユーザは、何らかの暗号化技術によってデータを暗号化することができる。こうしておけば、たとえ被暗号化データが漏洩しても、正しい鍵がなければ被暗号化データを正しく復号することができず、悪意を持ったハッカー等は、被暗号化データの正しいコンテンツにアクセスすることができないので、データの安全性が確保される。   In general, a user can encrypt data by some encryption technique. In this way, even if the encrypted data leaks, the encrypted data cannot be decrypted correctly without the correct key, and malicious hackers and others access the correct contents of the encrypted data. Data security is ensured.

現行の暗号化技術の大部分は、ユーザにパスワードの入力を要求し、パスワードに基づいてデータを暗号化する。ユーザは、被暗号化データを復号したいとき、元のデータを取得するためにパスワードを再入力するだけでよい。しかしながら、データの転送に合わせてパスワードを安全に交換しなけれなならないため、ユーザは不便を被ることになる。   Most current encryption techniques require the user to enter a password and encrypt the data based on the password. When the user wants to decrypt the encrypted data, the user only needs to re-enter the password to obtain the original data. However, the user must be inconvenienced because the password must be exchanged safely in accordance with the data transfer.

別のタイプの暗号化方法は、データを暗号化するために鍵を用いる(例えば、特許文献1参照)。このような暗号化方法では、ソフトウェアシステム内に鍵を生成するロジックを組み込むことにより安全性を保っている。しかしながら、同じソフトウェアシステムを利用している限り、異なるグループ間での被暗号化データが復号可能となってしまう。従って、この暗号化方法も十分に安全ではない。   Another type of encryption method uses a key to encrypt data (see, for example, Patent Document 1). In such an encryption method, security is maintained by incorporating a logic for generating a key in the software system. However, as long as the same software system is used, encrypted data between different groups can be decrypted. Therefore, this encryption method is also not sufficiently secure.

特開2012−209932号公報JP 2012-209932 A

従来のデータの暗号化装置では、ソフトウェアシステム内に鍵を生成するロジックを組み込むため、同じソフトウエアシステムにおいては、グループ毎に異なる鍵を生成することが出来なかった。   Since the conventional data encryption apparatus incorporates a logic for generating a key in the software system, a different key cannot be generated for each group in the same software system.

本発明は、会社等のグループ単位で異なる鍵を安全に生成できるようにする暗号化技術を得ることを目的とする。具体的には、(a) グループ単位で異なる鍵を生成することができ、(b) 悪意のある第三者がプログラムを入手した場合、鍵の奪取が困難となるという2つの課題を解決することを目的とする。更に、既存のプログラムの大規模な修正を行うことなく、グループ毎に異なる暗号化鍵を安全に生成するシステムを提供する。   It is an object of the present invention to obtain an encryption technique that enables a different key to be generated safely in units of groups such as companies. Specifically, it resolves two issues: (a) different keys can be generated on a group basis, and (b) when a malicious third party obtains the program, it becomes difficult to retrieve the key. For the purpose. Furthermore, a system for securely generating different encryption keys for each group without making a large-scale modification of an existing program is provided.

請求項1に記載された発明に係る動的暗号化鍵生成システムは、予め定められたアルゴリズムで暗号化鍵を生成する鍵生成処理装置と、この鍵生成処理装置にデータを提供する外部データ提供手段とを備えた動的暗号化鍵生成システムであって、
前記外部データ提供手段は、グループIDに対応したID対応データと、2つ以上のプログラム制御要素を含んだプログラム制御値とからなる外部データをグループIDの求めに応じて提供するものであり、
前記鍵生成処理装置は、
暗号化された外部データを復号してID対応データとプログラム制御値とを生成する外部データ復号手段と、
予め搭載されたアルゴリズムに沿って、得られたID対応データから第1鍵情報を生成する第1鍵情報生成手段と、
予め搭載された別のアルゴリズムに沿って、得られたプログラム制御値から第2鍵情報を生成する第2鍵情報生成手段と、
予め搭載された更に別のアルゴリズムに沿って、得られた第1鍵情報と第2鍵情報とから暗号化鍵を生成する暗号化鍵生成手段とを備えることを特徴とするものである。
A dynamic encryption key generation system according to a first aspect of the present invention includes a key generation processing device that generates an encryption key using a predetermined algorithm, and external data provision that provides data to the key generation processing device A dynamic encryption key generation system comprising means,
The external data providing means provides external data composed of ID-corresponding data corresponding to a group ID and a program control value including two or more program control elements in response to a request for the group ID.
The key generation processing device includes:
External data decrypting means for decrypting the encrypted external data to generate ID-corresponding data and a program control value;
First key information generating means for generating first key information from the obtained ID correspondence data in accordance with a pre-installed algorithm;
Second key information generating means for generating second key information from the obtained program control value according to another algorithm mounted in advance;
It is characterized by comprising an encryption key generating means for generating an encryption key from the obtained first key information and second key information in accordance with another algorithm mounted in advance.

請求項2に記載された発明に係る動的暗号化鍵生成システムは、請求項1に記載の外部データ提供手段で提供される外部データが、ID対応データとプログラム制御値とを結合させたものを予め定められた暗号化アルゴリズムで共通鍵Aを用いて暗号化したものであることを特徴とするものである。   In the dynamic encryption key generation system according to the invention described in claim 2, the external data provided by the external data providing means according to claim 1 is obtained by combining ID-corresponding data and a program control value. Is encrypted using a common key A with a predetermined encryption algorithm.

請求項3に記載された発明に係る動的暗号化鍵生成システムは、請求項2に記載の外部データ復号手段が、前記暗号化された外部データを共通鍵Aを用いて復号し、前記ID対応データとプログラム制御値とに分割することを特徴とするものである。   A dynamic encryption key generation system according to a third aspect of the present invention is the dynamic encryption key generation system according to the second aspect, wherein the external data decryption means decrypts the encrypted external data using a common key A, and the ID The data is divided into corresponding data and program control values.

請求項4に記載された発明に係る動的暗号化鍵生成システムは、請求項1〜3の何れか1項に記載の第1鍵情報生成手段が、制御変数B1と制御変数Bnとを備え、
制御変数B1で唯一選択される正規の関数と、1つ以上のダミー関数と、制御変数Bnで唯一選択され、正規の関数を経た中間データを用いて鍵情報を選定する正規の鍵情報選定手段と、1つ以上のダミーの鍵情報選定手段とを含み、
前記制御変数B1により選択された正規の関数に前記ID対応データを入力して中間データを作成し、
前記制御変数Bnにより選択された正規の鍵情報選定手段に前記中間データを入力して第1鍵情報を生成するものであることを特徴とするものである。
In the dynamic encryption key generation system according to the invention described in claim 4, the first key information generation means according to any one of claims 1 to 3 includes a control variable B1 and a control variable Bn. ,
A normal key information selection means for selecting key information using intermediate data that is selected only by the control variable B1, one or more dummy functions, and intermediate data that has been selected by the control variable Bn and passed through the normal function. And one or more dummy key information selection means,
The intermediate data is created by inputting the ID correspondence data to the regular function selected by the control variable B1;
The first key information is generated by inputting the intermediate data to the regular key information selecting means selected by the control variable Bn.

請求項5に記載された発明に係る動的暗号化鍵生成システムは、請求項1〜4の何れか1項に記載の第2鍵情報生成手段が、プログラム制御値を2つ以上のプログラム制御要素に分割する制御要素分割手段と、事前に組込まれている予め定められた大きさのメッセージCと、予め定められた関数によって第2鍵情報を選定する鍵情報選定手段とを備え、
前記制御要素分割手段によってプログラム制御値から変換された2つ以上のプログラム制御要素の1つと、メッセージCとから中間データを生成し、
前記関数に中間データを入力して第2鍵情報を生成するものであることを特徴とするものである。
The dynamic encryption key generation system according to the invention described in claim 5 is characterized in that the second key information generation means according to any one of claims 1 to 4 controls the program control value with two or more program controls. Control element dividing means for dividing into elements, a message C having a predetermined size incorporated in advance, and key information selecting means for selecting second key information by a predetermined function,
Intermediate data is generated from one of the two or more program control elements converted from the program control value by the control element dividing means and the message C;
The second key information is generated by inputting intermediate data to the function.

請求項6に記載された発明に係る動的暗号化鍵生成システムは、請求項1〜5の何れか1項に記載の暗号化鍵生成手段が、1つ以上の予め定められた個数(N1個)の第1鍵情報と1つ以上の予め定められた個数(N2個)の第2鍵情報とから暗号化鍵を生成するものであり、
前記N1個の第1鍵情報とN2個の第2鍵情報とに対して、予め定められた演算処理を行って暗号化鍵を得ることを特徴とするものである。
The dynamic encryption key generation system according to the invention described in claim 6 is characterized in that the encryption key generation means according to any one of claims 1 to 5 has one or more predetermined numbers (N1 Number of pieces of first key information and one or more predetermined number (N2 pieces) of second key information.
The N1 first key information and the N2 second key information are subjected to a predetermined calculation process to obtain an encryption key.

本発明は、同一ソフトウエアシステムにおいても、会社等のグループ単位で異なる鍵を安全に生成できるようにする暗号化技術を得ることができる。具体的には、(a) グループ単位で異なる鍵を生成することができ、(b) 悪意のある第三者がプログラムを入手した場合、鍵の奪取が困難となるという2つの課題を解決することができる。更に、既存のプログラムの大規模な修正を行うことなく、グループ毎に異なる暗号化鍵を安全に生成するシステムを提供することができるという効果がある。   The present invention can provide an encryption technique that enables a different key to be securely generated in units of groups such as companies even in the same software system. Specifically, it resolves two issues: (a) different keys can be generated on a group basis, and (b) when a malicious third party obtains the program, it becomes difficult to retrieve the key. be able to. Furthermore, there is an effect that it is possible to provide a system that can safely generate different encryption keys for each group without performing a large-scale modification of an existing program.

本発明の動的暗号化鍵生成システムの一実施例の概要を示す説明図である。It is explanatory drawing which shows the outline | summary of one Example of the dynamic encryption key generation system of this invention. 図1の外部データを作成する外部データ作成装置の一実施例の概要を示す説明図である。It is explanatory drawing which shows the outline | summary of one Example of the external data production apparatus which produces the external data of FIG. 図2の装置による外部データ作成処理工程を示す工程図である。It is process drawing which shows the external data creation process process by the apparatus of FIG. 外部データの送受信システムの一実施例の概要を示す説明図である。It is explanatory drawing which shows the outline | summary of one Example of the transmission / reception system of external data. 図4のシステムにおける外部データの送受信処理工程を示す工程図である。FIG. 5 is a process diagram showing an external data transmission / reception processing process in the system of FIG. 4. 図1の鍵生成処理装置の外部データ復号手段の一実施例の概要を示す説明図である。It is explanatory drawing which shows the outline | summary of one Example of the external data decoding means of the key generation processing apparatus of FIG. 図6の復号手段における外部データ復号手段の処理工程を示す工程図である。It is process drawing which shows the process of the external data decoding means in the decoding means of FIG. 図1の鍵生成処理装置の第1鍵情報生成手段の一実施例の概要を示す説明図である。It is explanatory drawing which shows the outline | summary of one Example of the 1st key information generation means of the key generation processing apparatus of FIG. 図8の第1鍵情報生成処理工程を示す工程図である。It is process drawing which shows the 1st key information generation process process of FIG. 図1の鍵生成処理装置の第2鍵情報生成手段の一実施例の概要を示す説明図である。It is explanatory drawing which shows the outline | summary of one Example of the 2nd key information generation means of the key generation processing apparatus of FIG. 図10の第2鍵情報生成処理工程を示す工程図である。It is process drawing which shows the 2nd key information generation process process of FIG. 図1の鍵生成処理装置の暗号化鍵生成手段の一実施例の概要を示す説明図である。It is explanatory drawing which shows the outline | summary of one Example of the encryption key production | generation means of the key production | generation apparatus of FIG. 図12の暗号化鍵生成処理工程を示す工程図である。It is process drawing which shows the encryption key production | generation process process of FIG.

本発明においては、予め定められたアルゴリズムで暗号化鍵を生成する鍵生成処理装置と、この鍵生成処理装置にデータを提供する外部データ提供手段とを備えた動的暗号化鍵生成システムであって、
前記外部データ提供手段は、グループIDに対応したID対応データと、2つ以上のプログラム制御要素を含んだプログラム制御値とからなる外部データをグループIDの求めに応じて提供するものであり、
前記鍵生成処理装置は、
暗号化された外部データを復号してID対応データとプログラム制御値とを生成する外部データ復号手段と、
予め搭載されたアルゴリズムに沿って、得られたID対応データから第1鍵情報を生成する第1鍵情報生成手段と、
予め搭載された別のアルゴリズムに沿って、得られたプログラム制御値から第2鍵情報を生成する第2鍵情報生成手段と、
予め搭載された更に別のアルゴリズムに沿って、得られた第1鍵情報と第2鍵情報とから暗号化鍵を生成する暗号化鍵生成手段とを備える。これにより、会社等のグループ単位で異なる鍵を安全に生成できるようにする暗号化技術を得ることができる。
According to the present invention, there is provided a dynamic encryption key generation system including a key generation processing device that generates an encryption key with a predetermined algorithm, and external data providing means that provides data to the key generation processing device. And
The external data providing means provides external data composed of ID-corresponding data corresponding to a group ID and a program control value including two or more program control elements in response to a request for the group ID.
The key generation processing device includes:
External data decrypting means for decrypting the encrypted external data to generate ID-corresponding data and a program control value;
First key information generating means for generating first key information from the obtained ID correspondence data in accordance with a pre-installed algorithm;
Second key information generating means for generating second key information from the obtained program control value according to another algorithm mounted in advance;
An encryption key generating unit that generates an encryption key from the obtained first key information and second key information in accordance with another algorithm mounted in advance is provided. As a result, it is possible to obtain an encryption technique that enables a different key to be securely generated for each group of companies.

本発明のID対応データは、例えば、乱数生成器を用いて予め定められたビット列(例えば、64、48、32、24ビットの何れかのビット列)を予め定められた個数生成される。尚、既に利用されている既存の乱数生成器としては、線形合同法、メルセンヌ・ツイスタ、ハードウェア乱数生成器等の乱数生成器から選択して用いればよい。   In the ID correspondence data of the present invention, a predetermined number of bit strings (for example, any one of 64, 48, 32, and 24 bits) is generated using a random number generator. An existing random number generator that is already used may be selected from a random number generator such as a linear congruential method, a Mersenne twister, or a hardware random number generator.

本発明のプログラム制御値は、復号化処理以降に利用する制御値であり、2つ以上のプログラム制御要素からなり、予め定められたアルゴリズムで生成されていればよい。例えば、乱数を用いて整数値nを1つ決定し、乱数を用いて予め定められた個数の整数値を決定されたn個生成し、生成した値をプログラム制御要素としたり、乱数を用いて予め定められた個数の整数値を重複なく生成して生成した値をプログラム制御要素としたり、乱数を用いて予め定められた範囲の整数値を重複なく予め定められた個数生成して、生成した値をプログラム制御要素としたり、これら要素の1つ又は1つ以上を組み合わせてプログラム制御値として用いることができる。   The program control value of the present invention is a control value that is used after the decryption process, and may be composed of two or more program control elements and generated by a predetermined algorithm. For example, one integer value n is determined using a random number, a predetermined number of integer values are generated using a random number, and the generated value is used as a program control element, or a random number is used. Generated by generating a predetermined number of integer values without duplication as a program control element or by generating a predetermined number of integer values within a predetermined range using random numbers A value can be used as a program control element, or one or more of these elements can be used in combination as a program control value.

本発明の外部データは、ID対応データとプログラム制御値とを結合したものを予め定められた暗号化アルゴリズムで共通鍵Aを用いて暗号化したものである。即ち、前述のこれらプログラム制御要素を選択して結合してプログラム制御値とする。ID対応データとプログラム制御値のデータを結合し、生成した値を暗号化前外部データとし、鍵の値として共通鍵Aを用いて、暗号化前外部データを暗号化し、生成した値を外部データとする。   The external data of the present invention is obtained by encrypting a combination of ID correspondence data and a program control value using a common key A with a predetermined encryption algorithm. That is, these program control elements are selected and combined to obtain a program control value. ID-corresponding data and program control value data are combined, the generated value is external data before encryption, the common key A is used as the key value, the external data before encryption is encrypted, and the generated value is external data And

従って、本発明の外部データ提供手段で提供される外部データは、好ましくは、ID対応データとプログラム制御値とを結合させたものを予め定められた暗号化アルゴリズムで共通鍵Aを用いて暗号化したものである。   Therefore, the external data provided by the external data providing means of the present invention is preferably encrypted by combining the ID correspondence data and the program control value using the common key A with a predetermined encryption algorithm. It is what.

尚、暗号化前外部データを暗号化する共通鍵Aについては、後述する外部データ復号手段で利用される共通鍵Aと同じ値を用いることとなるが、外部データ復号手段は、プログラム内固有値を用いた鍵情報生成手段によって共通鍵Aを得ている。暗号化前外部データの暗号化を行う外部データ作成装置においては、共通鍵Aの値を直接保存することが可能である。これは、外部データ作成装置自体は、外部に公開されないプログラムとして構成されるために可能となる。   The common key A for encrypting the external data before encryption uses the same value as the common key A used in the external data decryption means described later. However, the external data decryption means uses the unique value in the program. The common key A is obtained by the key information generating means used. In an external data creation device that encrypts external data before encryption, the value of the common key A can be directly stored. This is possible because the external data creation device itself is configured as a program that is not disclosed to the outside.

本発明の外部データ提供手段は、鍵生成処理装置とは個別に存在し、尚且つ、1つの鍵生成処理装置から問い合わせられたグループIDに対応した外部データを問い合わせた先の鍵生成処理装置に提供するものであればよい。例えば、通信回線上のサーバー内に装備されたり、場合によっては、メモリーチップ内に装備されてもよく、必要な場合には、鍵生成処理装置とメモリーチップとを繋いで使用してもよい。   The external data providing means of the present invention exists separately from the key generation processing apparatus, and further to the key generation processing apparatus that has inquired external data corresponding to the group ID inquired from one key generation processing apparatus. Anything provided is acceptable. For example, it may be installed in a server on a communication line, or may be installed in a memory chip in some cases, and if necessary, a key generation processing device and a memory chip may be connected and used.

外部データ提供手段からの外部データを取得するためには、具体的には、ユーザがグループIDと認証コードとを入力し、グループIDと認証コードをサーバーに送信する。サーバー上でグループIDと認証コードの値を確認し、どちらか一方、もしくは、両方の値が異なる場合は、エラーとする。両方の値が合致した場合には、サーバー上でグループIDに対応した外部データを取得し、サーバーから鍵生成処理装置へ外部データを送るようなシステムとすればよい。   In order to acquire external data from the external data providing means, specifically, the user inputs a group ID and an authentication code, and transmits the group ID and the authentication code to the server. Check the group ID and authentication code values on the server. If one or both values are different, an error is assumed. If both values match, the system may acquire external data corresponding to the group ID on the server and send the external data from the server to the key generation processing device.

本発明の外部データ復号手段は、前記暗号化された外部データを共通鍵Aを用いて復号して暗号化前外部データとし、この暗号化前外部データをID対応データとプログラム制御値とに分割する。この分割されたID対応データとプログラム制御値とを用いて、本発明の鍵生成処理装置によって、以降の鍵情報を作成する。   The external data decrypting means of the present invention decrypts the encrypted external data using the common key A to obtain external data before encryption, and divides the external data before encryption into ID-corresponding data and program control values. To do. Subsequent key information is created by the key generation processing device of the present invention using the divided ID correspondence data and the program control value.

即ち、鍵生成処理装置の第1鍵情報生成手段よって、予め搭載されたアルゴリズムに沿って、ID対応データから第1鍵情報を生成し、同じく第2鍵情報生成手段によって、予め搭載された別のアルゴリズムに沿って、得られたプログラム制御値から第2鍵情報を生成する。更に、同じく暗号化鍵生成手段によって、予め搭載された更に別のアルゴリズムに沿って、得られた第1鍵情報と第2鍵情報とから暗号化鍵を生成する。これにより、会社等のグループ単位で異なる鍵を安全に生成できるようにする暗号化技術を得ることができる。   That is, the first key information generating means of the key generation processing device generates the first key information from the ID correspondence data in accordance with the algorithm mounted in advance, and the second key information generating means also uses the first key information generating means. The second key information is generated from the obtained program control value according to the algorithm. Further, the encryption key generation means generates an encryption key from the obtained first key information and second key information in accordance with yet another algorithm that is mounted in advance. As a result, it is possible to obtain an encryption technique that enables a different key to be securely generated for each group of companies.

本発明の第1鍵情報生成手段は、制御変数B1と制御変数Bnとを備え、制御変数B1で唯一選択される正規の関数と、1つ以上のダミー関数と、制御変数Bnで唯一選択され、正規の関数を経た中間データを用いて第1鍵情報を選定する正規の鍵情報選定手段と、1つ以上のダミーの鍵情報選定手段とを含むものである。   The first key information generating means of the present invention comprises a control variable B1 and a control variable Bn, and is selected only by a normal function that is uniquely selected by the control variable B1, one or more dummy functions, and the control variable Bn. The normal key information selecting means for selecting the first key information using the intermediate data that has passed through the normal function, and one or more dummy key information selecting means.

制御変数B1により選択された正規の関数にID対応データを入力して中間データを作成する。この際に、ID対応データをそのまま正規の関数に入力するのではなく、鍵生成処理装置内のプログラム内に保存していたデータを加えて入力することも可能となる。正規の関数により、中間データが生成される。   The ID correspondence data is input to the regular function selected by the control variable B1 to create intermediate data. At this time, it is possible to input the data corresponding to the data stored in the program in the key generation processing apparatus instead of inputting the ID correspondence data as it is into the regular function. Intermediate data is generated by a regular function.

正規の関数及びダミー関数としては、四則演算、ビット演算の組み合わせでもよく、一方向性関数の一種である種々の暗号学的ハッシュ関数を組合せた関数を採用してもよい。暗号学的ハッシュ関数としては、MD5、SHA−1、SHA−256を用いる。組合せの例としては、SHA−256×MD5、MD5×SHA−1×MD5などである。SHA−256×MD5の場合は、SHA−256を先に実行し、その出力(ハッシュ値)をMD5へ入力する。MD5の出力をSHA−256×MD5の出力とする。   As the regular function and the dummy function, a combination of four arithmetic operations and bit operations may be used, or a function combining various cryptographic hash functions which are a kind of one-way function may be adopted. MD5, SHA-1, and SHA-256 are used as the cryptographic hash function. Examples of combinations are SHA-256 × MD5, MD5 × SHA-1 × MD5, and the like. In the case of SHA-256 × MD5, SHA-256 is executed first, and its output (hash value) is input to MD5. The output of MD5 is assumed to be the output of SHA-256 × MD5.

最終的には、制御変数Bnにより選択された正規の鍵情報選定手段に中間データを入力して第1鍵情報を生成する。この際に、用いる中間データは制御変数B1により選択された正規の関数、好ましくは正規の一方向性関数を用いてもよいし、更に、別の中間データであってもよい。   Finally, the intermediate data is input to the regular key information selection unit selected by the control variable Bn to generate the first key information. At this time, the intermediate data to be used may be a normal function selected by the control variable B1, preferably a normal one-way function, or may be another intermediate data.

例えば、制御変数B2で唯一選択される別の正規の一方向性関数に制御変数B1による中間データを入力して別の中間データを生成したもの、更には制御変数をB3,B4…と、これを予め定められた回数を繰り返してもよい。   For example, another normal one-way function selected only by the control variable B2 is inputted with intermediate data by the control variable B1 to generate another intermediate data, and further, the control variables are B3, B4. May be repeated a predetermined number of times.

また、制御変数B1で選択された正規の一方向性関数を繰り返し使用することも想定可能である。即ち、前述の通り、鍵生成処理装置内のプログラム内に保存していたデータを加えて入力したが、このプログラム内に保存していたデータを制御変数B1による中間データに変えて、この中間データを加えて入力して制御変数B1による正規の一方向性関数で中間データを生成することを予め定められた回数を繰り返してもよい。   It is also possible to assume that the regular one-way function selected by the control variable B1 is used repeatedly. That is, as described above, the data stored in the program in the key generation processing apparatus is added and input, but the data stored in the program is changed to intermediate data by the control variable B1, and this intermediate data is changed. May be input and the intermediate data may be generated with a normal one-way function based on the control variable B1 by repeating a predetermined number of times.

中間データより第1鍵情報を生成するアルゴリズムとしては、例えば、所定の個数のデータから幾つかのデータを選択するアルゴリズム等が選択可能である。どの値を選択するかは、事前にプログラム内に組込まれている。選択された選定アルゴリズムを用いて、中間データから所定の大きさ(ビット数)のデータを選定する。残りのデータは使用せずにダミーとなる。この選定されたデータが第1鍵情報となる。   As an algorithm for generating the first key information from the intermediate data, for example, an algorithm for selecting some data from a predetermined number of data can be selected. Which value to select is built into the program in advance. Using the selected selection algorithm, data having a predetermined size (number of bits) is selected from the intermediate data. The remaining data is not used and becomes a dummy. This selected data becomes the first key information.

以上のように、ダミーの演算を鍵生成処理装置のプログラム内に組み込み、第1鍵情報生成手段で利用することにより、鍵の推測を困難にする効果が奏される。尚、実際に計算を行うのは正規の関数であり、ダミー関数全てを用いるのではなく、実際には計算が行われないダミー関数が多数存在するため、極端なパフォーマンス低減を回避することが可能である。   As described above, the dummy calculation is incorporated into the program of the key generation processing device and used by the first key information generation means, thereby producing an effect that makes it difficult to guess the key. Note that the actual calculation is a normal function, and not all dummy functions are used, but there are many dummy functions that are not actually calculated, so it is possible to avoid extreme performance reductions. It is.

また、制御変数Bを用いることにより、どの関数が正規の関数であるのかの特定を困難にしている。   Further, by using the control variable B, it is difficult to specify which function is a normal function.

本発明の第2鍵情報生成手段は、好ましくは、プログラム制御値を2つ以上のプログラム制御要素に変換する制御要素分割手段と、事前に組込まれている予め定められた大きさのメッセージCと、予め定められた関数によって第2鍵情報を選定する鍵情報選定手段とを備え、
前記制御要素分割手段によってプログラム制御値から変換された2つ以上のプログラム制御要素の1つと、メッセージCとから中間データを生成し、
前記関数に中間データを入力して第2鍵情報を生成するものであることを特徴とするものである。
The second key information generating means of the present invention is preferably a control element dividing means for converting a program control value into two or more program control elements, and a message C having a predetermined size incorporated in advance. The key information selecting means for selecting the second key information by a predetermined function,
Intermediate data is generated from one of the two or more program control elements converted from the program control value by the control element dividing means and the message C;
The second key information is generated by inputting intermediate data to the function.

本発明のメッセージCは、事前に組込まれている予め定められた大きさを有するものであれば良い。   The message C of the present invention may be any message having a predetermined size incorporated in advance.

本発明の制御要素分割手段としては、プログラム制御値を構成する2つ以上のプログラム制御要素へ変換する。即ち、前述の通り、乱数を用いて予め定められた個数の整数値を重複なく生成して生成した値としてのプログラム制御要素や、乱数を用いて整数値nを1つ決定し、乱数を用いて予め定められた個数の整数値を決定されたn個生成し、生成した値としてのプログラム制御要素や、乱数を用いて予め定められた範囲の整数値を重複なく予め定められた個数生成して、生成した値としてのプログラム制御要素等を1つ又は1つ以上組み合わせたプログラム制御値を構成する各制御要素を得る。   As the control element dividing means of the present invention, the program control value is converted into two or more program control elements. That is, as described above, a program control element as a value generated by generating a predetermined number of integer values using random numbers without duplication, or one integer value n is determined using random numbers, and random numbers are used. A predetermined number of integer values are generated, and a predetermined number of integer values in a predetermined range using a program control element or a random number as a generated value are generated without duplication. Thus, each control element constituting a program control value obtained by combining one or more program control elements or the like as the generated value is obtained.

これらの制御要素の何れかと、メッセージCとから中間データが生成される。そして、この中間データを一方向性関数に入力して鍵情報が生成される。一方向性関数に入力される中間データとしては、1つのプログラム制御要素とメッセージCとから生成された中間データと同一でなくても、更に別のプログラム制御要素と中間データから生成された第2の中間データ、更に別のプログラム制御要素と第2の中間データとから生成されるように多重処理を行ってもよい。但し、多重に生成した場合には、パフォーマンス低減を招く短所が生じるため、1〜3重処理程度が良好である。   Intermediate data is generated from any of these control elements and the message C. Then, this intermediate data is input to a one-way function to generate key information. As the intermediate data input to the one-way function, the second data generated from another program control element and the intermediate data may be the same as the intermediate data generated from one program control element and the message C. Multiple processing may be performed so that the intermediate data is generated from the intermediate data, further program control elements, and the second intermediate data. However, in the case of multiple generations, there is a disadvantage that the performance is reduced.

本発明の第2鍵情報生成手段の予め定められた関数は、四則演算、ビット演算の組み合わせでもよく、一方向性関数の一種である種々の暗号学的ハッシュ関数を組合せた関数を採用してもよい。一方向性関数の一種である種々の暗号学的ハッシュ関数を組合せた関数としては、MD5、SHA−1、SHA−256を用いる。組合せの例としては、SHA−256×MD5、MD5×SHA−1×MD5などである。SHA−256×MD5の場合は、SHA−256を先に実行し、その出力(ハッシュ値)をMD5へ入力する。MD5の出力をSHA−256×MD5の出力とする。プログラム制御要素の値から、組合せる数、利用する暗号学的ハッシュ関数を決定する。   The predetermined function of the second key information generation means of the present invention may be a combination of four arithmetic operations and bit operations, and employs a function combining various cryptographic hash functions which are a kind of one-way function. Also good. MD5, SHA-1, and SHA-256 are used as functions that combine various cryptographic hash functions, which are a type of one-way function. Examples of combinations are SHA-256 × MD5, MD5 × SHA-1 × MD5, and the like. In the case of SHA-256 × MD5, SHA-256 is executed first, and its output (hash value) is input to MD5. The output of MD5 is assumed to be the output of SHA-256 × MD5. The number to be combined and the cryptographic hash function to be used are determined from the value of the program control element.

本発明の暗号化鍵生成手段は、好ましくは、1つ以上の予め定められた個数(N1個)の第1鍵情報と1つ以上の予め定められた個数(N2個)の第2鍵情報とから暗号化鍵を生成するものであり、N1個の第1鍵情報とN2個の第2鍵情報とに対して、予め定められた演算処理を行って暗号化鍵を得る。尚、第1鍵情報と第2鍵情報のサイズが大きく異なり必要な暗号化鍵のサイズに満たない場合も想定できるため、より好ましくは、N2個の第1鍵情報とN2個の第2鍵情報とを連結し、連結したデータを、鍵サイズのブロックに分割する操作を行うことを追加してもよい。この場合、分割したデータを予め定められた演算処理を行うことを行って暗号化鍵を得る。   The encryption key generating means of the present invention preferably has one or more predetermined number (N1) of first key information and one or more predetermined number (N2) of second key information. The encryption key is generated from the above, and a predetermined calculation process is performed on the N1 first key information and the N2 second key information to obtain the encryption key. In addition, since it can be assumed that the sizes of the first key information and the second key information are significantly different and less than the required encryption key size, more preferably, N2 first key information and N2 second keys. You may add performing operation which connects information and divides the connected data into the block of a key size. In this case, an encryption key is obtained by performing predetermined arithmetic processing on the divided data.

本発明における予め定められた演算処理としては、四則演算処理、ビット演算処理を指し、特にビット処理演算処理の1つである排他的論理和演算をも含む。   Predetermined arithmetic processing in the present invention refers to four arithmetic operations and bit arithmetic processing, and particularly includes exclusive OR operation which is one of the bit processing arithmetic processing.

図1は本発明の動的暗号化鍵生成システムの一実施例の概要を示す説明図である。図に示す通り、本実施例の動的暗号化鍵生成システムとしては、予め定められたアルゴリズムで暗号化鍵を生成する鍵生成処理装置(10)と、この鍵生成処理装置(10)に提供する外部データ(21)を予め保持する外部データ提供手段(30)との2つに分けられる。外部データ提供手段(30)で提供される外部データ(21)は、ID対応データ(40)とプログラム制御値(50)とからなる暗号化前外部データを暗号化したものである。   FIG. 1 is an explanatory diagram showing an outline of an embodiment of the dynamic encryption key generation system of the present invention. As shown in the figure, the dynamic encryption key generation system of the present embodiment provides a key generation processing device (10) that generates an encryption key with a predetermined algorithm, and provides this key generation processing device (10). The external data providing means (30) for holding the external data (21) to be stored in advance is divided into two. The external data (21) provided by the external data providing means (30) is obtained by encrypting the external data before encryption composed of the ID correspondence data (40) and the program control value (50).

鍵生成処理装置(10)は、暗号化された外部データ(21)を復号してID対応データ(40)とプログラム制御値(50)とを生成する外部データ復号手段(60)と、ID対応データ(40)から第1鍵情報(90)を生成する第1鍵情報生成手段(80)と、プログラム制御値(50)から第2鍵情報(110) を生成する第2鍵情報生成手段(100) と、第1鍵情報(90)と第2鍵情報(110) とから暗号化鍵(130) を生成する暗号化鍵生成手段(120) とを備える。   The key generation processing device (10) includes an external data decryption means (60) for decrypting the encrypted external data (21) to generate ID-corresponding data (40) and a program control value (50), and ID correspondence First key information generating means (80) for generating first key information (90) from data (40), and second key information generating means (110) for generating second key information (110) from program control value (50). 100) and encryption key generating means (120) for generating an encryption key (130) from the first key information (90) and the second key information (110).

図2は図1の外部データを作成する外部データ作成装置の一実施例の概要を示す説明図である。図3は図2の装置による外部データ作成処理工程を示す工程図である。図に示す通り、ID対応データ(40)は、外部データ作成装置(20)のID対応データ生成手段(22)で生成される。本実施例では、乱数生成器を用いて12ビット列を12個生成し、これをID対応データ(40)とし、第1鍵情報を10個生成するため、ID対応データを10個生成した。尚、ビット列、個数については、種々の選択が可能であることは言うまでもない。   FIG. 2 is an explanatory diagram showing an outline of an embodiment of the external data creation device for creating the external data of FIG. FIG. 3 is a process diagram showing an external data creation process by the apparatus of FIG. As shown in the figure, the ID correspondence data (40) is generated by the ID correspondence data generation means (22) of the external data creation device (20). In this embodiment, twelve 12-bit strings are generated using a random number generator, which is used as ID-corresponding data (40), and ten pieces of first key information are generated, so ten ID-corresponding data are generated. It goes without saying that various selections are possible for the bit string and the number.

プログラム制御値(50)は、復号化処理以降に利用する制御値であり、2つ以上のプログラム制御要素からなる。プログラム制御値生成手段(23)でプログラム制御値(50)を生成している。本実施例では、乱数を用いて1以上4以下の整数値nを1つ決定し、乱数を用いて1以上3以下の整数値をn個生成し、生成した値をプログラム制御要素1とする。   The program control value (50) is a control value used after the decryption process, and includes two or more program control elements. The program control value generation means (23) generates the program control value (50). In this embodiment, one integer value n of 1 to 4 is determined using a random number, n integer values of 1 to 3 are generated using a random number, and the generated value is used as the program control element 1. .

乱数を用いて1以上300以下の整数値を16個重複なく生成して生成した値をプログラム制御要素2とする。乱数を用いて0以上31以下の整数値を16個生成して、生成した値をプログラム制御要素3とする。これら要素1〜3を組み合わせてプログラム制御値(50)とした。尚、各制御要素の生成については、これらに限定されるものではないことは言うまでもない。尚、プログラム制御要素3については、重複も可である。本実施例ではプログラム制御値を5個生成した。   A program control element 2 is a value generated by generating 16 integer values from 1 to 300 using random numbers without duplication. Sixteen integer values from 0 to 31 are generated using random numbers, and the generated value is set as the program control element 3. These elements 1 to 3 were combined to obtain a program control value (50). Needless to say, the generation of each control element is not limited to these. Note that the program control element 3 can be duplicated. In this embodiment, five program control values are generated.

得られたID対応データ(40)とプログラム制御値(50)とはデータ結合手段(24)で結合され、暗号化前外部データ(25)となる。ID対応データ(40)とプログラム制御値(50)とのデータの結合は、種々のアルゴリズムが選択可能である。単純にID対応データ(40)の後にプログラム制御値(50)を繋げてもよいし、各々を所定の長さの群に分けて、この群を交互に繋げる等の手法を選択することができる。得られた暗号化前外部データ(25)は暗号化手段(26)によって、共通鍵A(27)を用いて暗号化され、外部データ(21)となる。   The obtained ID correspondence data (40) and the program control value (50) are combined by the data combining means (24) to become external data (25) before encryption. Various algorithms can be selected for combining the data corresponding to the ID correspondence data (40) and the program control value (50). The program control value (50) may be simply connected after the ID correspondence data (40), or a method of dividing each group into groups of a predetermined length and connecting these groups alternately can be selected. . The obtained pre-encrypted external data (25) is encrypted by the encryption means (26) using the common key A (27) to become external data (21).

図1に示す通り、鍵生成処理装置(10)が暗号化鍵(130) を得るためには、外部データ(21)が必要となる。外部データ(21)は外部データ提供手段(30)によって、鍵生成処理装置(10)とは個別に存在する。このため、鍵生成処理装置(10)にグループIDに対応した外部データを受信する必要がある。図4は外部データの送受信システムの一実施例の概要を示す説明図である。図5は図4のシステムにおける外部データの送受信処理工程を示す工程図である。   As shown in FIG. 1, external data (21) is required for the key generation processing device (10) to obtain the encryption key (130). The external data (21) exists separately from the key generation processing device (10) by the external data providing means (30). For this reason, it is necessary to receive external data corresponding to the group ID to the key generation processing device (10). FIG. 4 is an explanatory diagram showing an outline of an embodiment of an external data transmission / reception system. FIG. 5 is a process diagram showing external data transmission / reception processing steps in the system of FIG.

図に示す通り、鍵生成処理装置(10)には、外部データ取得機能(13)が備えられ、通信回線上のサーバー内の外部データ提供手段(30)内の外部データ(21)を受信する。グループID(11)と認証コード(12)とが鍵生成処理装置(10)に入力されると、鍵生成処理装置(10)内の外部データ取得機能(13)のサーバー送信機能(14)を介して外部データ提供手段(30)の認証機能(31)に送られ、グループID(11)と認証コード(12)との値を確認し、どちらか一方、もしくは、両方の値が異なる場合は、エラーとする。   As shown in the figure, the key generation processing device (10) has an external data acquisition function (13), and receives external data (21) in the external data providing means (30) in the server on the communication line. . When the group ID (11) and the authentication code (12) are input to the key generation processing device (10), the server transmission function (14) of the external data acquisition function (13) in the key generation processing device (10) is set. Is sent to the authentication function (31) of the external data providing means (30) to check the values of the group ID (11) and the authentication code (12), and if either or both values are different An error.

両方の値が合致した場合には、外部データ選択手段(32)でグループID(11)に対応した外部データ(21)を取得し、外部データ提供手段(30)から鍵生成処理装置(10)の外部データ受信機能(15)へ外部データ(21)を送る。   If both values match, the external data selection means (32) acquires the external data (21) corresponding to the group ID (11), and the key generation processing device (10) from the external data provision means (30). Send external data (21) to the external data reception function (15).

受信された外部データ(21)は鍵生成処理装置(10)の外部データ復号手段(60)で復号化され、暗号化前外部データ(25)を経て、ID対応データ(40)とプログラム制御値(50)とを得る。図6は図1の鍵生成処理装置の外部データ復号手段の一実施例の概要を示す説明図である。図7は図6の復号手段における外部データ復号処理工程を示す工程図である。   The received external data (21) is decrypted by the external data decrypting means (60) of the key generation processing device (10), passed through the external data (25) before encryption, and the ID corresponding data (40) and the program control value. Get (50). FIG. 6 is an explanatory diagram showing an outline of an embodiment of the external data decrypting means of the key generation processing apparatus of FIG. FIG. 7 is a process diagram showing an external data decoding process in the decoding means of FIG.

図に示す通り、外部データ(21)の入力を開始サインとして、外部データ復号手段(60)では、プログラム内固定値(61)を用いて鍵情報生成手段(62)によって共通鍵A(27)が生成される。この共通鍵A(27)は、前述の暗号化前外部データを暗号化する共通鍵A(27)と同じ値であり、この共通鍵A(27)を用いて、外部データ復号手段(63)によって外部データ(21)は暗号化前外部データ(25)に復号される。   As shown in the figure, with the external data (21) input as a start sign, the external data decrypting means (60) uses the fixed value (61) in the program and the common key A (27) by the key information generating means (62). Is generated. The common key A (27) has the same value as the common key A (27) for encrypting the above-mentioned external data before encryption, and the external data decrypting means (63) is used by using the common key A (27). Thus, the external data (21) is decrypted into the external data (25) before encryption.

引き続き、分割機能手段(64)によってID対応データ(40)とプログラム制御値(50)とに分割される。この分割機能手段(64)は、前述の外部データ作成装置(20)のデータ結合手段(24)の操作の逆を行うものである。得られたID対応データ(40)とプログラム制御値(50)とから、鍵生成処理装置によって以降の鍵情報が作成される。   Subsequently, the data is divided into ID correspondence data (40) and a program control value (50) by the division function means (64). The division function means (64) performs the reverse of the operation of the data combining means (24) of the external data creation device (20) described above. From the obtained ID correspondence data (40) and the program control value (50), the key generation processing device generates subsequent key information.

先ず、ID対応データ(40)を用いて第1鍵情報を得る。図8は図1の鍵生成処理装置の第1鍵情報生成手段の一実施例の概要を示す説明図である。図9は図8の第1鍵情報生成処理工程を示す工程図である。図に示す通り、分割されたID対応データ(40)は第1鍵情報生成手段(80)に入力される。   First, the first key information is obtained using the ID correspondence data (40). FIG. 8 is an explanatory diagram showing an outline of an embodiment of the first key information generation means of the key generation processing apparatus of FIG. FIG. 9 is a process diagram showing the first key information generation process of FIG. As shown in the figure, the divided ID correspondence data (40) is input to the first key information generating means (80).

第1鍵情報生成手段(80)は制御変数B1(91)と制御変数Bn(93)とを備え、制御変数B1(91)で唯一選択される正規の一方向性関数(84)と、1つ以上のダミー関数(85)と、制御変数Bn(93)で唯一選択され、正規の一方向性関数を経た中間データ(92)を用いて第1鍵情報(90)を選定する正規の鍵情報選定手段(87)と、1つ以上のダミーの鍵情報選定手段(88)とを含む。   The first key information generating means (80) includes a control variable B1 (91) and a control variable Bn (93), and a normal one-way function (84) selected only by the control variable B1 (91) and 1 A normal key that selects the first key information (90) using intermediate data (92) that is uniquely selected by one or more dummy functions (85) and a control variable Bn (93) and has passed a normal one-way function. Information selection means (87) and one or more dummy key information selection means (88) are included.

前述の通り、本実施例のID対応データ(40)は、12×12ビットの整数値である。この第1鍵情報生成手段(80)に入力されたID対応データ(40)の整数値にデータの組合せ手段(82)によって、プログラム内データ(81)が加えられる。加えられたデータは、制御変数B1(91)を用いた一方向性関数の選択手段(83)によって選択された正規の一方向性関数(84)に入力されて中間データ(92)が作成される。   As described above, the ID correspondence data (40) of the present embodiment is an integer value of 12 × 12 bits. The in-program data (81) is added to the integer value of the ID correspondence data (40) input to the first key information generating means (80) by the data combination means (82). The added data is input to the normal one-way function (84) selected by the one-way function selection means (83) using the control variable B1 (91) to create intermediate data (92). The

多数のダミー関数は悪意のある第三者が正規の一方向性関数を特定するのを阻害する。また、実際に計算を行うのは正規の一方向性関数であり、ダミー関数全てを用いるのではなく、実際には計算が行われないダミー関数が多数存在するため、極端なパフォーマンス低減を回避することが可能である。   A number of dummy functions prevent malicious third parties from specifying regular one-way functions. In addition, the actual calculation is a normal one-way function, and not all dummy functions are used, but there are many dummy functions that are not actually calculated. It is possible.

制御変数Bn(93)を用いて選定アルゴリズムの選択手段(86)によって選択された正規の鍵情報選定手段(87)に中間データ(92)を入力して第1鍵情報(90)を生成する。この場合、多数のダミー選定装置によって、悪意のある第三者が正規の鍵情報選定装置(87)を特定するのを阻害する。   The intermediate data (92) is input to the regular key information selection means (87) selected by the selection means (86) of the selection algorithm using the control variable Bn (93) to generate the first key information (90). . In this case, a large number of dummy selection devices prevent a malicious third party from specifying the legitimate key information selection device (87).

さて、第1鍵情報(90)を生成する際に、用いる中間データ(92)は制御変数B1(91)により選択された正規の一方向性関数(84)を用いてもよいし、更に、別の中間データであってもよい。1つの他の実施例では、図の一点鎖線に示す通り、制御変数B2(94)で唯一選択される別の正規の一方向性関数に制御変数B1による中間データを入力して別の中間データ(95)を生成したもの、更には制御変数をB3,B4…と、これを予め定められた回数を繰り返した中間データ(96)を用いてもよい。   When generating the first key information (90), the intermediate data (92) to be used may use a normal one-way function (84) selected by the control variable B1 (91), Other intermediate data may be used. In one other embodiment, as shown by the one-dot chain line in the figure, the intermediate data by the control variable B1 is input to another normal one-way function that is only selected by the control variable B2 (94) to obtain another intermediate data. .., (95) may be generated, and further, control data B3, B4... And intermediate data (96) obtained by repeating this a predetermined number of times may be used.

尚、一方向性関数としては、種々の暗号学的ハッシュ関数を組合せた関数を採用してもよい。例えば、暗号学的ハッシュ関数としては、MD5、SHA−1、SHA−256を用いる。また、組合せの例としては、SHA−256×MD5、MD5×SHA−1×MD5などを選択することが可能である。例えば、制御変数B1で選択される正規の一方向性関数をMD5×SHA−256とし、ダミー関数をSHA−256×MD5、MD5×SHA−1×MD5としてもよい。   As the one-way function, a function combining various cryptographic hash functions may be adopted. For example, MD5, SHA-1, and SHA-256 are used as the cryptographic hash function. As examples of combinations, SHA-256 × MD5, MD5 × SHA-1 × MD5, and the like can be selected. For example, the normal one-way function selected by the control variable B1 may be MD5 × SHA-256, and the dummy functions may be SHA-256 × MD5 and MD5 × SHA-1 × MD5.

また、別の他の実施例では、図の破線に示す通り、制御変数B1(91)で選択された正規の一方向性関数(84)で得られた中間データ(92)をプログラム内データ(81)に加えて再度正規の一方向性関数(84)で中間データを生成する操作を少なくとも1回以上繰り返してもよい。   In another embodiment, the intermediate data (92) obtained by the normal one-way function (84) selected by the control variable B1 (91) is converted into in-program data ( In addition to 81), the operation of generating intermediate data with the normal one-way function (84) may be repeated at least once more.

プログラム制御値(50)を用いて第2鍵情報(110) を得る。図10は図1の鍵生成処理装置の第2鍵情報生成手段の一実施例の概要を示す説明図である。図11は図10の第2鍵情報生成処理工程を示す工程図である。図に示す通り、第2鍵情報生成手段(100) は、プログラム制御値を2つ以上のプログラム制御要素に分割する制御要素分割手段(101) と、事前に組込まれている予め定められた大きさのメッセージC(102) と、予め定められた関数によって第2鍵情報を生成する鍵情報生成手段(108) とを備えている。   The second key information (110) is obtained using the program control value (50). FIG. 10 is an explanatory diagram showing an outline of an embodiment of the second key information generation means of the key generation processing apparatus of FIG. FIG. 11 is a process diagram showing the second key information generation process of FIG. As shown in the figure, the second key information generating means (100) includes a control element dividing means (101) for dividing the program control value into two or more program control elements, and a predetermined size incorporated in advance. Message C (102) and key information generating means (108) for generating second key information by a predetermined function.

プログラム制御値(50)が第2鍵情報生成手段(100) に入力されると、制御要素分割手段(101) によって、プログラム制御値(50)を構成している2つ以上のプログラム制御要素(103) に分割される。即ち、前述の通り、本実施例では、プログラム制御要素1とプログラム制御要素2とプログラム制御要素3とを組み合わせてプログラム制御値(50)としているが、制御要素分割手段(101) によってこの組合せの操作の逆処理を行って、プログラム制御要素1とプログラム制御要素2とプログラム制御要素3とに分割される。   When the program control value (50) is input to the second key information generating means (100), two or more program control elements (100) constituting the program control value (50) are controlled by the control element dividing means (101). 103). That is, as described above, in the present embodiment, the program control element 1, the program control element 2 and the program control element 3 are combined to obtain the program control value (50), but this combination is controlled by the control element dividing means (101). Operation reverse processing is performed, and the program control element 1, the program control element 2, and the program control element 3 are divided.

制御要素分割手段(101) によってプログラム制御値(50)から変換された2つ以上のプログラム制御要素の1つと、メッセージC(102) とから中間データ1(105)を生成する。例えば、メッセージCをサイズが32ビットの300個のデータとし、この300個のデータとプログラム制御要素2とを用いて、データ選定手段(104) により、計算に利用する16個のデータを選択し、16個のデータを中間データ1(105) としてもよい。   Intermediate data 1 (105) is generated from one of the two or more program control elements converted from the program control value (50) by the control element dividing means (101) and the message C (102). For example, the message C is set to 300 data having a size of 32 bits, and using the 300 data and the program control element 2, the data selection means (104) selects 16 data to be used for the calculation. , 16 data may be used as intermediate data 1 (105).

また、この中間データ1とプログラム制御要素3と合わせて、データ生成手段(106) によって中間データ2(107) を生成した後に、鍵情報生成手段(108) によって予め定められた関数に中間データ2(107) を入力して第2鍵情報(110) を生成させ、第2鍵情報(110) を出力する。尚、データ生成手段(106) は、中間データ1の16個の数値それぞれに対して、プログラム制御要素3で与えられた数値の分だけ右へ巡回シフトを行う。シフト後の16個のデータを繋げた512ビットのデータを中間データ2とした。   Further, after the intermediate data 2 and the program control element 3 are combined to generate the intermediate data 2 (107) by the data generation means (106), the intermediate data 2 is converted into a function predetermined by the key information generation means (108). (107) is input to generate the second key information (110), and the second key information (110) is output. The data generation means (106) cyclically shifts the 16 numerical values of the intermediate data 1 to the right by the numerical value given by the program control element 3. The 512-bit data obtained by connecting the 16 data after the shift is defined as intermediate data 2.

予め定められた関数としては、四則演算、ビット演算の組み合わせでもよく、一方向性関数の一種である種々の暗号学的ハッシュ関数を組合せた関数を採用してもよい。例えば、一方向性関数の一種である種々の暗号学的ハッシュ関数としては、MD5、SHA−1、SHA−256を用いる。組合せの例としては、SHA−256×MD5、MD5×SHA−1×MD5などである。SHA−256×MD5の場合には、SHA−256を先に実行し、その出力(ハッシュ値)をMD5へ入力する。MD5の出力をSHA−256×MD5の出力とする。具体的には、プログラム制御要素1の数字の値が暗号学的ハッシュ関数の種類、数字の数が組合せる数となる。例えば、221という数字の場合は、SHA−1×SHA−1×MD5となる。   As the predetermined function, a combination of four arithmetic operations and bit operations may be used, or a function combining various cryptographic hash functions which are a kind of one-way function may be adopted. For example, MD5, SHA-1, and SHA-256 are used as various cryptographic hash functions that are a kind of one-way function. Examples of combinations are SHA-256 × MD5, MD5 × SHA-1 × MD5, and the like. In the case of SHA-256 × MD5, SHA-256 is executed first, and its output (hash value) is input to MD5. The output of MD5 is assumed to be the output of SHA-256 × MD5. Specifically, the numerical value of the program control element 1 is the number of cryptographic hash function types and the number of numbers combined. For example, the number 221 is SHA-1 × SHA-1 × MD5.

得られた第1鍵情報(90)及び第2鍵情報(110) から暗号化鍵を(130) を得る。図12は図1の鍵生成処理装置の暗号化鍵生成手段の一実施例の概要を示す説明図である。図13は図12の暗号化鍵生成処理工程を示す工程図である。図に示す通り、暗号化鍵生成手段(120) は、第1鍵情報(90)と第2鍵情報(110) を用いて、暗号化鍵を(130) 生成する。本実施例では、暗号化鍵生成手段(120) は、1つ以上のN1個の第1鍵情報(90)として、例えば前述の通り10個の第1鍵情報(90)と、1つ以上のN2個の第2鍵情報(110) として、例えば前述の通り5個の第2鍵情報(110)とをビット演算処理して、暗号化鍵(130) とした。   The encryption key (130) is obtained from the obtained first key information (90) and second key information (110). FIG. 12 is an explanatory diagram showing an outline of an embodiment of the encryption key generation means of the key generation processing apparatus of FIG. FIG. 13 is a process diagram showing the encryption key generation process of FIG. As shown in the figure, the encryption key generation means (120) generates an encryption key (130) using the first key information (90) and the second key information (110). In the present embodiment, the encryption key generation means (120) includes, as one or more N1 pieces of first key information (90), for example, the 10 pieces of first key information (90) and one or more pieces as described above. As the N2 pieces of second key information (110), for example, as described above, five pieces of second key information (110) are subjected to bit operation processing to obtain an encryption key (130).

第1鍵情報、第2鍵情報のサイズは、関数によって異なる。例えば、MD5は128ビット、SHA−1は160ビット、SHA−256は256ビットとなる。例えば、SHA−256×MD5の場合は、最後に実行するMD5のサイズ128ビットになる。このため、第1鍵情報と第2鍵情報のサイズが大きく異なり必要な暗号化鍵のサイズに満たない場合を想定して、具体的には、N2個の第1鍵情報とN2個の第2鍵情報とを連結し、連結したデータを、鍵サイズのブロックに分割する操作を行い、分割したデータを排他的論理和演算処理を行うことを行って暗号化鍵を得た。   The sizes of the first key information and the second key information vary depending on the function. For example, MD5 is 128 bits, SHA-1 is 160 bits, and SHA-256 is 256 bits. For example, in the case of SHA-256 × MD5, the size of MD5 to be executed last is 128 bits. For this reason, assuming that the sizes of the first key information and the second key information are significantly different and less than the required encryption key size, specifically, N2 first key information and N2 first key information The encryption key was obtained by concatenating the two-key information, performing an operation of dividing the concatenated data into key-sized blocks, and performing an exclusive OR operation process on the divided data.

以上の通り、会社等のグループ単位で異なる鍵を安全に生成できるようにする暗号化技術を得ることができる。また、グループ単位で異なる鍵を生成することができ、悪意のある第三者がプログラムを入手した場合、鍵の奪取が困難となるという効果を奏する。更に、既存のプログラムの大規模な修正を行うことなく、グループ毎に異なる暗号化鍵を安全に生成するシステムを提供することができるという効果がある。   As described above, it is possible to obtain an encryption technique that enables a different key to be securely generated for each group of companies. In addition, different keys can be generated for each group, and when a malicious third party obtains the program, there is an effect that it is difficult to obtain the key. Furthermore, there is an effect that it is possible to provide a system that can safely generate different encryption keys for each group without performing a large-scale modification of an existing program.

(10) …鍵生成処理装置、
(11) …グループID、
(12) …認証コード、
(13) …外部データ取得機能、
(14) …サーバー送信機能、
(15) …外部データ受信機能、
(20) …外部データ作成装置、
(21) …外部データ、
(22) …ID対応データ生成手段、
(23) …プログラム制御値生成手段、
(24) …データ結合手段、
(25) …暗号化前外部データ、
(26) …暗号化手段、
(27) …共通鍵A、
(30) …外部データ提供手段、
(31) …認証機能、
(32) …外部データ選択手段、
(40) …ID対応データ、
(50) …プログラム制御値、
(60) …外部データ復号手段、
(61) …プログラム内固定値、
(62) …鍵情報生成手段、
(63) …外部データ復号手段、
(64) …分割機能手段、
(80) …第1鍵情報生成手段、
(81) …プログラム内データ、
(82) …データの組合せ手段、
(83) …選択手段、
(84) …正規の一方向性関数、
(85) …ダミー関数、
(86) …選定アルゴリズムの選択手段、
(87) …正規の鍵情報選定手段、
(88) …ダミーの鍵情報選定手段、
(90) …第1鍵情報、
(91) …制御変数B1、
(92) …中間データ、
(93) …制御変数Bn、
(94) …制御変数B2、
(95) …中間データ、
(96) …中間データ、
(100) …第2鍵情報生成手段、
(101) …制御要素分割手段、
(102) …メッセージC、
(103) …プログラム制御要素、
(104) …データ選定手段、
(105) …中間データ1、
(106) …データ生成手段、
(107) …中間データ2、
(108) …鍵情報選定手段、
(110) …第2鍵情報、
(120) …暗号化鍵生成手段、
(130) …暗号化鍵、
(10) ... key generation processing device,
(11)… Group ID,
(12)… authentication code,
(13)… External data acquisition function,
(14) ... Server transmission function,
(15)… External data reception function,
(20)… External data creation device,
(21)… External data,
(22) ... ID correspondence data generating means,
(23) ... program control value generation means,
(24) ... data combining means,
(25)… External data before encryption,
(26)… encryption means,
(27)… Common key A,
(30)… External data provision means,
(31)… Authentication function,
(32) ... external data selection means,
(40)… ID correspondence data,
(50)… Program control value,
(60) ... external data decoding means,
(61)… fixed value in program,
(62) ... key information generating means,
(63) ... external data decoding means,
(64) ... division function means,
(80) ... 1st key information generation means,
(81)… data in the program,
(82) ... data combination means,
(83)… selection means,
(84)… Regular one-way function,
(85)… dummy function,
(86) ... Selection algorithm selection means,
(87)… legitimate key information selection means,
(88)… Dummy key information selection means,
(90) ... 1st key information,
(91) ... control variable B1,
(92)… Intermediate data,
(93) ... control variable Bn,
(94) ... control variable B2,
(95)… Intermediate data,
(96)… Intermediate data,
(100)… second key information generating means,
(101)… control element dividing means,
(102)… Message C,
(103)… Program control element,
(104)… data selection means,
(105) ... Intermediate data 1,
(106)… data generation means,
(107) ... Intermediate data 2,
(108)… Key information selection means,
(110)… second key information,
(120) ... encryption key generation means,
(130)… encryption key,

Claims (6)

予め定められたアルゴリズムで暗号化鍵を生成する鍵生成処理装置と、この鍵生成処理装置にデータを提供する外部データ提供手段とを備えた動的暗号化鍵生成システムであって、
前記外部データ提供手段は、グループIDに対応したID対応データと、2つ以上のプログラム制御要素を含んだプログラム制御値とからなる外部データをグループIDの求めに応じて提供するものであり、
前記鍵生成処理装置は、
暗号化された外部データを復号してID対応データとプログラム制御値とを生成する外部データ復号手段と、
予め搭載されたアルゴリズムに沿って、得られたID対応データから第1鍵情報を生成する第1鍵情報生成手段と、
予め搭載された別のアルゴリズムに沿って、得られたプログラム制御値から第2鍵情報を生成する第2鍵情報生成手段と、
予め搭載された更に別のアルゴリズムに沿って、得られた第1鍵情報と第2鍵情報とから暗号化鍵を生成する暗号化鍵生成手段とを備えることを特徴とする動的暗号化鍵生成システム。
A dynamic encryption key generation system comprising a key generation processing device that generates an encryption key with a predetermined algorithm, and external data providing means for providing data to the key generation processing device,
The external data providing means provides external data composed of ID-corresponding data corresponding to a group ID and a program control value including two or more program control elements in response to a request for the group ID.
The key generation processing device includes:
External data decrypting means for decrypting the encrypted external data to generate ID-corresponding data and a program control value;
First key information generating means for generating first key information from the obtained ID correspondence data in accordance with a pre-installed algorithm;
Second key information generating means for generating second key information from the obtained program control value according to another algorithm mounted in advance;
A dynamic encryption key comprising encryption key generation means for generating an encryption key from the obtained first key information and second key information in accordance with yet another algorithm mounted in advance Generation system.
前記外部データ提供手段で提供される外部データが、ID対応データとプログラム制御値とを結合したものを予め定められた暗号化アルゴリズムで共通鍵Aを用いて暗号化したものであることを特徴とする請求項1に記載の動的暗号化鍵生成システム。   The external data provided by the external data providing means is obtained by encrypting a combination of ID correspondence data and a program control value using a common key A with a predetermined encryption algorithm. The dynamic encryption key generation system according to claim 1. 前記外部データ復号手段が、前記暗号化された外部データを共通鍵Aを用いて復号し、前記ID対応データとプログラム制御値とに分割することを特徴とする請求項2に記載の動的暗号化鍵生成システム。   3. The dynamic encryption according to claim 2, wherein the external data decrypting means decrypts the encrypted external data using a common key A and divides the encrypted external data into the ID corresponding data and a program control value. Key generation system. 前記第1鍵情報生成手段が、制御変数B1と制御変数Bnとを備え、
制御変数B1で唯一選択される正規の関数と、1つ以上のダミー関数と、制御変数Bnで唯一選択され、正規の関数を経た中間データを用いて鍵情報を選定する正規の鍵情報選定手段と、1つ以上のダミーの鍵情報選定手段とを含み、
前記制御変数B1により選択された正規の関数に前記ID対応データを入力して中間データを作成し、
前記制御変数Bnにより選択された正規の鍵情報選定手段に前記中間データを入力して第1鍵情報を生成するものであることを特徴とする請求項1〜3の何れか1項に記載の動的暗号化鍵生成システム。
The first key information generating means comprises a control variable B1 and a control variable Bn;
A normal key information selection means for selecting key information using intermediate data that is selected only by the control variable B1, one or more dummy functions, and intermediate data that has been selected by the control variable Bn and passed through the normal function. And one or more dummy key information selection means,
The intermediate data is created by inputting the ID correspondence data to the regular function selected by the control variable B1;
4. The first key information is generated by inputting the intermediate data to a regular key information selection unit selected by the control variable Bn. 5. Dynamic encryption key generation system.
前記第2鍵情報生成手段が、プログラム制御値を2つ以上のプログラム制御要素に分割する制御要素分割手段と、事前に組込まれている予め定められた大きさのメッセージCと、予め定められた関数によって第2鍵情報を選定する鍵情報選定手段とを備え、
前記制御要素分割手段によってプログラム制御値から変換された2つ以上のプログラム制御要素の1つと、メッセージCとから中間データを生成し、
前記関数に中間データを入力して第2鍵情報を生成するものであることを特徴とする請求項1〜4の何れか1項に記載の動的暗号化鍵生成システム。
The second key information generating means includes a control element dividing means for dividing the program control value into two or more program control elements, a message C having a predetermined size incorporated in advance, and a predetermined value. Key information selecting means for selecting second key information by a function,
Intermediate data is generated from one of the two or more program control elements converted from the program control value by the control element dividing means and the message C;
The dynamic encryption key generation system according to any one of claims 1 to 4, wherein intermediate data is input to the function to generate second key information.
前記暗号化鍵生成手段が、1つ以上の予め定められた個数(N1個)の第1鍵情報と1つ以上の予め定められた個数(N2個)の第2鍵情報とから暗号化鍵を生成するものであり、
前記N1個の第1鍵情報とN2個の第2鍵情報とに対して、予め定められた演算処理を行って暗号化鍵を得ることを特徴とする請求項1〜5の何れか1項に記載の動的暗号化鍵生成システム。
The encryption key generating means generates an encryption key from one or more predetermined number (N1) of first key information and one or more predetermined number (N2) of second key information. Which generates
6. The encryption key is obtained by performing predetermined arithmetic processing on the N1 first key information and the N2 second key information. The dynamic encryption key generation system described in 1.
JP2013182478A 2013-09-03 2013-09-03 Dynamic encryption key generation system Expired - Fee Related JP5586758B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013182478A JP5586758B1 (en) 2013-09-03 2013-09-03 Dynamic encryption key generation system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013182478A JP5586758B1 (en) 2013-09-03 2013-09-03 Dynamic encryption key generation system

Publications (2)

Publication Number Publication Date
JP5586758B1 true JP5586758B1 (en) 2014-09-10
JP2015050708A JP2015050708A (en) 2015-03-16

Family

ID=51617879

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013182478A Expired - Fee Related JP5586758B1 (en) 2013-09-03 2013-09-03 Dynamic encryption key generation system

Country Status (1)

Country Link
JP (1) JP5586758B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017204181A1 (en) 2017-03-14 2018-09-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Transmitter for emitting signals and receiver for receiving signals
CN108694333B (en) * 2017-04-07 2021-11-19 华为技术有限公司 User information processing method and device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007089101A (en) * 2005-09-20 2007-04-05 Chaosware Inc Vector type encryption control system
JP2009111775A (en) * 2007-10-30 2009-05-21 Fuji Electric Holdings Co Ltd Ic card network system, and information distribution device, information terminal device and program thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007089101A (en) * 2005-09-20 2007-04-05 Chaosware Inc Vector type encryption control system
JP2009111775A (en) * 2007-10-30 2009-05-21 Fuji Electric Holdings Co Ltd Ic card network system, and information distribution device, information terminal device and program thereof

Also Published As

Publication number Publication date
JP2015050708A (en) 2015-03-16

Similar Documents

Publication Publication Date Title
US7860241B2 (en) Simple universal hash for plaintext aware encryption
JP5167374B2 (en) Data encryption device and memory card
US8675864B2 (en) Apparatus for encrypting data
RU2005104945A (en) EFFECTIVE ENCRYPTION AND AUTHENTICATION FOR DATA PROCESSING SYSTEMS
WO2014136386A1 (en) Tag generation device, tag generation method, and tag generation program
CN111314050B (en) Encryption and decryption method and device
JP2017187724A (en) Encryption device, encryption method, decryption device, and decryption method
CN113098675B (en) Binary data encryption system and method based on polynomial complete homomorphism
JP5324813B2 (en) Key generation apparatus, certificate generation apparatus, service provision system, key generation method, certificate generation method, service provision method, and program
US20100124328A1 (en) Extensive ciphertext feedback
JP5586758B1 (en) Dynamic encryption key generation system
JP5171787B2 (en) Sign-encryption system and sign-encryption generation method
KR101602803B1 (en) The encryption and decryption Method of using to polarization
KR101934899B1 (en) Authenticated encryption device and method thereof
KR101566416B1 (en) Method and device of data encription with increased security
CN111314051B (en) Encryption and decryption method and device
KR101076747B1 (en) Method and apparatus for random accessible encryption and decryption by using a hierarchical tree structure of stream cipher module
KR101428665B1 (en) Security system and method for using aes-otp
Landge et al. VHDL based Blowfish implementation for secured embedded system design
CN117411727B (en) Encryption method, device and storage medium for symmetric encryption of communication transmission
CN111314079B (en) Encryption and decryption method and device
CN102474413A (en) Private key compression
JP2008203581A (en) Network system
CN116755618A (en) File secure access method based on blockchain and distributed storage
KR20150114782A (en) Cryptography method using format-preserving components

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140709

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140722

R150 Certificate of patent or registration of utility model

Ref document number: 5586758

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees