JP2011193180A - Key sharing system, key sharing method and key sharing program - Google Patents

Key sharing system, key sharing method and key sharing program Download PDF

Info

Publication number
JP2011193180A
JP2011193180A JP2010056878A JP2010056878A JP2011193180A JP 2011193180 A JP2011193180 A JP 2011193180A JP 2010056878 A JP2010056878 A JP 2010056878A JP 2010056878 A JP2010056878 A JP 2010056878A JP 2011193180 A JP2011193180 A JP 2011193180A
Authority
JP
Japan
Prior art keywords
random number
key sharing
terminal
randomness
key
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.)
Granted
Application number
JP2010056878A
Other languages
Japanese (ja)
Other versions
JP5440285B2 (en
Inventor
Yoichiro Ito
洋一郎 伊東
Toshihiko Okamura
利彦 岡村
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2010056878A priority Critical patent/JP5440285B2/en
Publication of JP2011193180A publication Critical patent/JP2011193180A/en
Application granted granted Critical
Publication of JP5440285B2 publication Critical patent/JP5440285B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To eliminate the problem of setting evaluation criteria or the like and an information leakage risk when a terminal performs the verification of the randomness of pseudo random numbers by constituting the terminal itself so as not to perform the verification. <P>SOLUTION: A key sharing/public key encryption means 112 takes out a part of data for state update for updating the internal state of a pseudo random number generation means 113, and performs public key encryption to the part of data transmitted to a server 120. A randomness evaluation means 124 transmits a randomness determination result of the internal state of the pseudo random number generation means 113 which is obtained on the basis of a comparison result between data obtained by updating a part of the data for state update received from the terminal 110 and a prescribed threshold to the terminal 110 through a key sharing/public key decryption means 123. The randomness evaluation means 124 executes key sharing processing when the randomness determination result passes, and performs randomness evaluation/update processing on the basis of the data received and decrypted by the key sharing/public key decryption means 123 when the randomness determination result is rejected. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は鍵共有方式、鍵共有方法及び鍵共有プログラムに係り、特にホスト機器となるサーバと端末との間の通信の暗号化に使用する鍵共有方式、鍵共有方法及び鍵共有プログラムに関する。   The present invention relates to a key sharing method, a key sharing method, and a key sharing program, and more particularly to a key sharing method, a key sharing method, and a key sharing program that are used for encryption of communication between a server that is a host device and a terminal.

通信秘匿のために暗号化は必須の技術となっている。現代暗号は、アルゴリズムを公開しても暗号の鍵を秘密にすることによって通信秘匿を実現する。暗号を用いた通信ではデータを暗号化するための秘密鍵を、通信を行う送信側と受信側との間でどのように共有するのかが課題となる。   Encryption is an indispensable technology for concealing communication. Modern encryption realizes communication concealment by keeping the encryption key secret even if the algorithm is disclosed. In communication using encryption, the issue is how to share a secret key for encrypting data between the transmitting side and the receiving side that perform communication.

現代暗号は、大きく共通鍵暗号と公開鍵暗号とに分類される。前者はDES(Data Encryption Standard)やAES(Advanced Encryption Standard)などのブロック暗号が代表的で、送信側と受信側とが予め同一の秘密鍵を持っていることを前提とする。後者はRSA暗号が代表的で、暗号化と復号で使用する鍵が異なり、暗号化で使用する鍵は公開鍵、復号で使用する鍵は秘密鍵と呼ばれる。公開鍵暗号は、公開鍵から秘密鍵を推測することは非常に困難という性質を持つ。このため、公開鍵は公開してあっても、秘密鍵の漏洩がなければ公開鍵で暗号化した情報は秘密鍵を持つ者のみが復号可能となる。ただし、公開鍵暗号は共通鍵暗号よりも非常な大きな計算量が必要である。このため、公開鍵暗号を用いて共通鍵暗号で使用する秘密鍵(セッション鍵と呼ばれる)を共有し、実際のデータは共通鍵暗号を用いて暗号化処理を行うことが多い。   Modern ciphers are broadly classified into common key ciphers and public key ciphers. The former is typically a block cipher such as DES (Data Encryption Standard) or AES (Advanced Encryption Standard), and assumes that the transmitting side and the receiving side have the same secret key in advance. The latter is typically RSA encryption, and the keys used for encryption and decryption are different. The key used for encryption is called a public key, and the key used for decryption is called a secret key. Public key cryptography has the property that it is very difficult to guess a secret key from a public key. For this reason, even if the public key is made public, if the secret key is not leaked, the information encrypted with the public key can be decrypted only by the person who has the secret key. However, public key cryptography requires a much larger calculation amount than common key cryptography. For this reason, a secret key (referred to as a session key) used in common key cryptography is shared using public key cryptography, and actual data is often encrypted using common key cryptography.

公開鍵暗号を使用する際には、公開鍵暗号で使用する演算を定義するドメインパラメータや公開鍵が正しいことを保証する必要がある。有限体上の離散対数を用いる方式の場合には、ドメインパラメータは剰余系演算を定める素数pと、離散対数問題の生成元となるmod_pの元g (mod p)とからなる。また、秘密鍵x mod qに対して公開鍵は、y=gx mod pと一般に定められる。ここで、素数qは元gの位数、つまりga=1 mod pとなる最小の自然数aである。qはp−1の約数となる。本明細書では、ドメインパラメータと公開鍵とを併せて公開パラメータと呼ぶことにする。 When using public key cryptography, it is necessary to ensure that domain parameters and public keys that define operations used in public key cryptography are correct. In the case of a method using a discrete logarithm on a finite field, the domain parameter is composed of a prime number p that determines a remainder system operation and an element g (mod p) of mod_p that is a generation source of the discrete logarithm problem. The public key is generally defined as y = g x mod p with respect to the secret key x mod q. Here, the prime number q is the order of the element g, that is, the smallest natural number a that satisfies g a = 1 mod p. q is a divisor of p-1. In this specification, the domain parameter and the public key are collectively referred to as a public parameter.

公開鍵暗号を使用した代表的な鍵共有アルゴリズムである、ディフィー(Diffie)とヘルマン(Hellman)により発表されたDiffie-Hellman鍵共有アルゴリズムは、公開鍵のgr mod pやgs mod pを盗聴して秘密情報を求める受動的な攻撃には強いが、なりすましなどの能動的な攻撃には弱いことが知られている。そこで、Diffie-Hellman鍵共有アルゴリズムを用いる際には、通信相手を認証することが必須となる。認証付鍵共有に関しては、例えば米国標準技術局(National Institute of Standards and Technology;NIST)が発行する非特許文献1に記載されている方法が知られている。 Which is a typical key sharing algorithm using the public key cryptography, Diffie-Hellman key agreement algorithm, which is published by Hermann (Hellman) and Diffie (Diffie) is, eavesdropping a g r mod p and g s mod p of the public key It is known to be strong against passive attacks that seek confidential information, but weak against active attacks such as spoofing. Therefore, when using the Diffie-Hellman key sharing algorithm, it is essential to authenticate the communication partner. As for the key sharing with authentication, for example, a method described in Non-Patent Document 1 issued by the National Institute of Standards and Technology (NIST) is known.

ところで、公開鍵パラメータの正当性保証に関しては認証局による公開鍵証明書に基づく方式がよく知られている。その一方で、閉じた暗号通信システムでは、信頼できる機関から公開情報を直接入手することによって、信頼性を確保することが可能となる。   By the way, a method based on a public key certificate by a certificate authority is well known for guaranteeing the validity of public key parameters. On the other hand, in a closed cryptographic communication system, it is possible to ensure reliability by directly obtaining public information from a reliable organization.

図12は、上記の閉じた暗号通信システムの一例のブロック図を示す。同図に示すように、この暗号通信システム500は、パラメータ生成手段501、ホスト機器となるサーバ502及び端末503からなる。1台のサーバ502に対して端末503は複数存在し、それぞれの端末503はサーバ502と通信を行う。パラメータ生成手段501は、端末配布時に公開鍵暗号のパラメータ、鍵情報を生成し、サーバ502と端末503に必要な情報を設定してから端末503をユーザに渡す。   FIG. 12 shows a block diagram of an example of the closed cryptographic communication system. As shown in the figure, the cryptographic communication system 500 includes parameter generation means 501, a server 502 serving as a host device, and a terminal 503. A plurality of terminals 503 exist for one server 502, and each terminal 503 communicates with the server 502. The parameter generation unit 501 generates public key encryption parameters and key information at the time of terminal distribution, sets necessary information in the server 502 and the terminal 503, and passes the terminal 503 to the user.

この暗号通信システム500では、サーバ502と端末503の安全性は大きく異なる状況を想定する。つまり、サーバ502は安全な場所にあり、秘密情報の漏洩や不正な処理などのリスクは非常に小さいと仮定する。一方、端末503は盗難や情報流出の危険性が高いと仮定する。公開鍵パラメータを端末503に事前に設定しておく場合、その端末503は比較的長期にわたってその設定を利用することになる。そのために、攻撃者が端末503のそれらの情報を入手した際には、比較的長期にわたってその公開鍵パラメータに対しての攻撃機会が発生することになる。   In this cryptographic communication system 500, it is assumed that the security of the server 502 and the terminal 503 is greatly different. In other words, it is assumed that the server 502 is in a safe place, and the risk of leakage of confidential information and unauthorized processing is very small. On the other hand, it is assumed that the terminal 503 has a high risk of theft or information leakage. When the public key parameter is set in advance in the terminal 503, the terminal 503 uses the setting for a relatively long time. Therefore, when an attacker obtains the information of the terminal 503, an attack opportunity for the public key parameter occurs for a relatively long time.

高強度セキュリティを要求されるアプリケーションにおいては、そのような状況は望ましくなく、攻撃者が端末503から得られる情報は極力小さくすることが望まれる。そのためには、端末503には何の鍵情報も事前に格納せずに、セッション開始時に公開鍵パラメータをサーバ502が端末503に送信する方法が考えられる。   In an application that requires high-strength security, such a situation is not desirable, and it is desirable that an attacker obtains as little information as possible from the terminal 503. For this purpose, a method is conceivable in which the server 502 transmits the public key parameter to the terminal 503 at the start of the session without storing any key information in the terminal 503 in advance.

しかしながら、このとき、サーバ502のなりすましが容易に行えてしまうという問題が発生する。また、不正なサーバが不正なドメインパラメータを端末503に送付した場合には、秘密鍵がたとえ漏洩していなくても安全性が損なわれる場合がある。例えば、非常に小さな位数を持つ元gを攻撃者が設定した場合には、攻撃者がたとえ秘密鍵を知らなくても、Diffie-Hellmanアルゴリズムで共有される鍵情報の推測が可能になってしまう。   However, at this time, there arises a problem that the server 502 can be easily impersonated. Further, when an unauthorized server sends an unauthorized domain parameter to the terminal 503, the security may be impaired even if the secret key is not leaked. For example, if an attacker sets an element g with a very small order, the attacker can guess the key information shared by the Diffie-Hellman algorithm without knowing the secret key. End up.

そこで、この課題に対処する鍵共有システムが特許文献1に開示されている。特許文献1に記載の鍵共有システムは、本発明者により開示された鍵共有方式で、以下、図13及び図14を用いてその発明の概略を説明する。図13及び図14中、図12と同一構成部分には同一符号を付してある。なお、鍵共有は、有限体上のDiffie-Hellman鍵共有アルゴリズムを使用しているが、有限体上の楕円曲線の有理点のなす加群を用いても同様の鍵共有を行うことができる。   A key sharing system that addresses this problem is disclosed in Patent Document 1. The key sharing system described in Patent Document 1 is a key sharing method disclosed by the present inventor, and the outline of the invention will be described below with reference to FIGS. 13 and 14. In FIG. 13 and FIG. 14, the same components as those in FIG. Note that the key sharing uses the Diffie-Hellman key sharing algorithm on a finite field, but the same key sharing can be performed using modules formed by rational points of elliptic curves on the finite field.

図13は、図12のパラメータ生成手段501で生成する情報と、サーバ502及び端末503が保持する情報を示す。図13において、パラメータ生成手段501は、端末503が与えられたときにドメインパラメータのリスト{p(i),q(i),g(i):i=1,2,3,...}を生成すると共に、対応する秘密鍵と公開鍵の(x(i),y(i))を設定する。また、パラメータ生成手段501は、p(i)とg(i)とを連接したビット列であるp(i)||g(i)を入力データとするハッシュ値h(i)(=Hash(p(i)||g(i)))を計算する。   FIG. 13 shows information generated by the parameter generation unit 501 in FIG. 12 and information held by the server 502 and the terminal 503. In FIG. 13, the parameter generation means 501 receives a list of domain parameters {p (i), q (i), g (i): i = 1, 2, 3,. And (x (i), y (i)) of the corresponding private key and public key are set. Also, the parameter generation unit 501 has a hash value h (i) (= Hash (p) with p (i) || g (i), which is a bit string obtained by concatenating p (i) and g (i), as input data. (i) || g (i))).

サーバ502は、パラメータ生成手段501から入力されるドメインパラメータのリストと秘密鍵と公開鍵の(x(i),y(i))とからなるリスト601を端末503毎に保持する。端末503は、パラメータ生成手段501から入力されるハッシュ値h(i)を公開鍵y(i)と併せたリスト602を格納する。   The server 502 holds, for each terminal 503, a list 601 composed of a list of domain parameters input from the parameter generation unit 501, a secret key, and public keys (x (i), y (i)). The terminal 503 stores a list 602 in which the hash value h (i) input from the parameter generation unit 501 is combined with the public key y (i).

次に、図14のフローチャートを用いて、特許文献1記載の鍵共有システムの動作について説明する。まず、端末503は、サーバ502に対して端末IDを送信する(ステップS401)。これにより、サーバ502は、送信元の端末503に対してのパラメータリストの中で使用するパラメータのインデックスiを決定する(ステップS402)。続いて、サーバ502は、インデックスiと対応するp=p(i)とg=g(i)とを連接したビット列p||gを生成し、それを送信する(ステップS403、S404)。   Next, the operation of the key sharing system described in Patent Document 1 will be described using the flowchart of FIG. First, the terminal 503 transmits a terminal ID to the server 502 (step S401). As a result, the server 502 determines the parameter index i to be used in the parameter list for the terminal 503 of the transmission source (step S402). Subsequently, the server 502 generates a bit string p || g obtained by concatenating p = p (i) and g = g (i) corresponding to the index i, and transmits it (steps S403 and S404).

端末503は、受信したビット列p||gに対してハッシュ値Hash(p||g)を計算し、格納しているハッシュ値h(i)と比較する(ステップS405)。一致していない場合は不正なパラメータが送付されたとして鍵共有処理を終了する。端末503は、ステップS405でp,gの正当性を確認できた場合は、以下のDiffie-Hellman鍵共有アルゴリズムによる鍵共有処理を実行する。   The terminal 503 calculates a hash value Hash (p || g) for the received bit string p || g and compares it with the stored hash value h (i) (step S405). If they do not match, the key sharing process is terminated, assuming that an invalid parameter has been sent. If the validity of p and g can be confirmed in step S405, the terminal 503 executes key sharing processing using the following Diffie-Hellman key sharing algorithm.

すなわち、端末503は、乱数rを発生し(ステップS406)、その乱数rを用いてw(=gr mod p)を計算し(ステップS407)、それをサーバ502へ送信する(ステップS408)。サーバ502は、秘密鍵x(i)を使って受信したビット列wからZ(=wx(i) mod p)を計算し(ステップS409)、その値Zから鍵導出関数kdf()を用いて秘密鍵Kを生成する(ステップS410)。 That is, the terminal 503 generates a random number r (step S406), calculates w (= g r mod p) using the random number r (step S407), and transmits it to the server 502 (step S408). The server 502 calculates Z (= w x (i) mod p) from the received bit string w using the secret key x (i) (step S409), and uses the key Z from the value Z using the key derivation function kdf (). A secret key K is generated (step S410).

一方、端末503は、公開鍵y(i)と乱数rを使ってz(=y(i)r mod p)を計算し(ステップS411)、その値zから鍵導出関数kdf()を用いて秘密鍵kを生成する(ステップS412)。ステップ310、312の鍵導出関数kdf()の入力である「otherinfo」は、サーバ502と端末503との間で事前に共有している情報である(公開情報でよい)。これにより、端末IDなどの端末503に固有の情報を情報「otherinfo」に含ませることで、なりすましの防止を図ることができる。なお、鍵導出関数kdf()には、ハッシュ関数などを適用する。 On the other hand, the terminal 503 calculates z (= y (i) r mod p) using the public key y (i) and the random number r (step S411) and uses the key derivation function kdf () from the value z. A secret key k is generated (step S412). “Otherinfo” that is an input of the key derivation function kdf () in steps 310 and 312 is information shared in advance between the server 502 and the terminal 503 (may be public information). As a result, information unique to the terminal 503 such as the terminal ID is included in the information “otherinfo”, so that spoofing can be prevented. A hash function or the like is applied to the key derivation function kdf ().

図14に示したフローチャートから分かるように、特許文献1記載の鍵共有方式の安全性は、端末503の生成する乱数rのランダム性(攻撃者に対しての予測の困難さ)に大きく依存する。乱数生成器は、物理現象に基づく真性乱数生成器(非決定性ランダムビット生成器)と擬似乱数生成器(決定性ランダムビット生成器)とに大きく分類される。後者は乱数生成器の内部状態に基づいて出力を決定するが、出力されるビット列を観測しても内部状態や次の出力を推測することが困難であるという性質を持ち、ハッシュ関数やブロック暗号を用いて乱数を発生する。擬似乱数発生器は、例えば非特許文献2に詳細に記載されている。   As can be seen from the flowchart shown in FIG. 14, the security of the key sharing method described in Patent Document 1 greatly depends on the randomness of the random number r generated by the terminal 503 (difficulty of prediction for an attacker). . Random number generators are broadly classified into true random number generators (non-deterministic random bit generators) and pseudo-random number generators (deterministic random bit generators) based on physical phenomena. The latter determines the output based on the internal state of the random number generator, but has the property that it is difficult to guess the internal state and the next output even if the output bit string is observed. Generate a random number using. The pseudo random number generator is described in detail in Non-Patent Document 2, for example.

ハードウェアを利用した真性乱数生成器を使用することが理想的ではあるが、これは環境や時間の経過によって特性も変わり、その評価が難しいことなどから端末503には擬似乱数生成器を用いることが適切となる場合が多い。   It is ideal to use a true random number generator using hardware, but this also changes the characteristics depending on the environment and the passage of time, and it is difficult to evaluate it. For this reason, a pseudo random number generator should be used for the terminal 503. Is often appropriate.

図15は、擬似乱数生成器の一例の動作機能図を示す。擬似乱数生成器700は、内部状態(メモリ)701に基づいて、出力生成処理702により出力するビット列である擬似乱数を決定する。この擬似乱数のビット幅は、出力生成処理702で使用するハッシュ関数やブロック暗号のデータ幅によって決まる。出力生成処理702を実行するときには、アルゴリズムによって定められているタイミングで内部状態の更新処理703を実行し、次の出力に備える。   FIG. 15 shows an operation function diagram of an example of the pseudorandom number generator. The pseudo-random number generator 700 determines a pseudo-random number that is a bit string output by the output generation processing 702 based on the internal state (memory) 701. The bit width of this pseudo-random number is determined by the hash function used in the output generation process 702 and the data width of the block cipher. When the output generation process 702 is executed, the internal state update process 703 is executed at a timing determined by the algorithm to prepare for the next output.

擬似乱数生成器700は、攻撃者がある時点で内部状態701の推測に成功した場合、その先のすべての系列を攻撃者が決定できてしまうため、外部からランダム性を取り入れて内部状態701を更新するリフレッシュ処理704が必要となる。また、擬似乱数生成器700は、起動時に内部状態701を設定する起動時処理705も必要となる。   When the attacker succeeds in guessing the internal state 701 at a certain point in time, the pseudo random number generator 700 can determine all sequences ahead of the attacker. A refresh process 704 for updating is required. The pseudo random number generator 700 also requires a startup process 705 for setting the internal state 701 at startup.

外部のランダム性は、端末の機器におけるランダム性を持つ要素である“エントロピーソース”から取得する。端末503が計算機であれば、エントロピーソースとしてプロセス番号、サーバ502との通信にかかった時間、ハードディスクへのアクセス速度などが候補として挙げられる。これらのデータを表すビット列を図15ではエントロピー情報706と呼んでいる。リフレッシュ処理704は、状態更新用データであるエントロピー情報706も用いて内部状態701を更新する処理であるため、攻撃者がある時点の内部状態701の推測に成功したとしても、エントロピー情報706を入手できなければ、攻撃者がリフレッシュ処理後の状態の推定を行うことは困難になる。   The external randomness is acquired from an “entropy source” which is an element having randomness in the terminal device. If the terminal 503 is a computer, a process number as an entropy source, a time taken for communication with the server 502, an access speed to the hard disk, and the like are listed as candidates. A bit string representing these data is called entropy information 706 in FIG. The refresh process 704 is a process for updating the internal state 701 using the entropy information 706 that is the state update data. Therefore, even if the attacker succeeds in guessing the internal state 701 at a certain point, the entropy information 706 is obtained. Otherwise, it will be difficult for an attacker to estimate the state after the refresh process.

図15の起動時処理705の入力となる固有情報は、計算機であればMAC(Media Access Control)アドレスやIP(Internet Protocol)アドレスといった機器固有の情報であり、固定値である。起動時に起動時処理705がこの固有情報を利用して内部状態701を設定することで、機器毎に異なる内部状態701を設定することができる。また、更新処理703、リフレッシュ処理704の入力となる付加情報707は、例えば公開鍵などのランダム性はないがテンポラリの情報である。この付加情報707も、固有情報と同様に、なりすましなどに対する実用的な対策の一つとなる。   The unique information that is input to the startup processing 705 in FIG. 15 is information unique to a device such as a MAC (Media Access Control) address or an IP (Internet Protocol) address in a computer, and is a fixed value. When the startup process 705 sets the internal state 701 using this unique information at startup, a different internal state 701 can be set for each device. Further, the additional information 707 that is input to the update process 703 and the refresh process 704 is temporary information that is not random, such as a public key. This additional information 707 is also one of practical measures against impersonation and the like, like the unique information.

上記の更新処理703は、非特許文献2に記載されている擬似乱数生成処理の更新処理(Update())を適用することができる。また、上記の出力生成処理702は、非特許文献2に記載されている擬似乱数生成処理の出力生成処理(Output())を適用することができる。   As the update process 703, the update process (Update ()) of the pseudorandom number generation process described in Non-Patent Document 2 can be applied. In addition, the output generation processing 702 described above can be applied to the output generation processing (Output ()) of the pseudorandom number generation processing described in Non-Patent Document 2.

図16(a)は、非特許文献2に記載の擬似乱数生成処理の更新処理(Update())を示し、鍵付きハッシュ関数であるHMAC(Hashed based Message Authentication Code)を利用した更新処理を示す。また、図16(b)は、非特許文献2に記載の擬似乱数生成処理の出力生成処理(Output())の具体的構成を示す。図16(a)、(b)において、(K,V)が内部状態となる。図16(a)、(b)中の「HMAC」については、非特許文献3に開示されている。   FIG. 16A shows the update processing (Update ()) of the pseudo random number generation processing described in Non-Patent Document 2, and shows the update processing using HMAC (Hashed based Message Authentication Code) that is a keyed hash function. . FIG. 16B shows a specific configuration of the output generation process (Output ()) of the pseudorandom number generation process described in Non-Patent Document 2. 16A and 16B, (K, V) is in the internal state. “HMAC” in FIGS. 16A and 16B is disclosed in Non-Patent Document 3.

なお、特許文献2には、2台の通信装置間の鍵共有方式において、一方の通信装置が公開鍵を生成して他方の通信装置へ送信する構成が開示されている。また、特許文献3には、乱数検証手段にて受信した乱数と一致するかどうかを比較し、その比較結果に基づいて鍵が共有されたと認識することが開示されている。   Patent Document 2 discloses a configuration in which one communication device generates a public key and transmits it to the other communication device in a key sharing method between two communication devices. Patent Document 3 discloses that a comparison is made as to whether or not the random number received by the random number verification means matches, and that the key is shared based on the comparison result.

特開2009−239737号公報JP 2009-239737 A 特開2006−140743号公報JP 2006-140743 A 特開平9−312643号公報JP-A-9-312463

NIST Special Publication (SP) 800-56A,「Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography」,2006年NIST Special Publication (SP) 800-56A, `` Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography '', 2006 NIST Special Publication 800-90,「Recommendation for Random Number Generator Using Deterministic Random Bit Generators (Rivised)」,2007年NIST Special Publication 800-90, `` Recommendation for Random Number Generator Using Deterministic Random Bit Generators (Rivised) '', 2007 NIST Federal Information Processing Standards (FIPS) Publication 198,「The Keyed-Hash Message Authentication Code(HMAC)」,2002年NIST Federal Information Processing Standards (FIPS) Publication 198, `` The Keyed-Hash Message Authentication Code (HMAC) '', 2002

図12に示した、安全なサーバ502と、攻撃などに対して脆弱な端末503とを含む暗号通信システム500における鍵共有で生成される秘密鍵の安全性は、端末503で使用する乱数の推測困難性に大きく依存する。この端末503の脆弱性に対する課題を解決することを目的とする特許文献1に記載の鍵共有方式は、秘密鍵の安全性が端末の生成する乱数に依存し、その乱数を発生する乱数生成器としては、擬似乱数生成器を用いることが適切となることが多く、擬似乱数生成器として非特許文献2に記載されたものを用いることができる。   The security of the secret key generated by key sharing in the cryptographic communication system 500 including the secure server 502 and the terminal 503 vulnerable to an attack shown in FIG. It depends heavily on the difficulty. The key sharing method described in Patent Document 1 aimed at solving the vulnerability to the vulnerability of the terminal 503 is based on a random number generator that generates a random number, and the security of the secret key depends on the random number generated by the terminal. In many cases, it is appropriate to use a pseudo-random number generator, and the pseudo-random number generator described in Non-Patent Document 2 can be used.

しかしながら、そのような擬似乱数生成器を用いたとしても、特許文献1記載の鍵共有方式では、安全性を保証するために端末が生成した擬似乱数の乱数性を端末自身で検証することが望ましく、その検証を行うことには計算リソースや評価基準の設定や端末からの統計情報の漏洩リスクなどの問題がある。   However, even if such a pseudo-random number generator is used, in the key sharing method described in Patent Document 1, it is desirable that the terminal itself verify the randomness of the pseudo-random number generated by the terminal in order to guarantee safety. In the verification, there are problems such as the setting of calculation resources and evaluation criteria and the risk of leakage of statistical information from the terminal.

また、特許文献2及び特許文献3では、乱数生成器は安全であるという前提の下での構成が開示されているに過ぎず、特許文献3に記載の乱数検証手段は乱数生成器の検証を行ってはいない。   Further, Patent Document 2 and Patent Document 3 only disclose a configuration under the premise that the random number generator is safe, and the random number verification means described in Patent Document 3 verifies the random number generator. Not going.

本発明は以上の点に鑑みなされたもので、安全なサーバと、攻撃などに対して脆弱な端末とを含む暗号通信システムにおいて、端末自身が擬似乱数のランダム性の検証を行わないようにすることにより、端末が検証を行う際の評価基準等の設定や情報漏洩リスクの問題をなくすことが可能な鍵共有方式、鍵共有方法及び鍵共有プログラムを提供することを目的とする。   The present invention has been made in view of the above points, and in a cryptographic communication system including a secure server and a terminal vulnerable to an attack or the like, the terminal itself does not verify the randomness of the pseudorandom number. Accordingly, an object of the present invention is to provide a key sharing method, a key sharing method, and a key sharing program that can eliminate the problem of the setting of evaluation criteria and the risk of information leakage when a terminal performs verification.

上記の目的を達成するため、本発明の鍵共有方式は、ホスト機器であるサーバと1台以上の端末との間の鍵共有方式であって、
端末は、擬似乱数を生成すると共に、その内部状態を更新するための状態更新用データの一部を抽出する擬似乱数生成手段と、擬似乱数生成手段により抽出された状態更新用データの一部である抽出データを、擬似乱数を使用して所定の公開鍵アルゴリズムに基づき公開鍵暗号化してサーバへ送信する公開鍵暗号化手段とを有し、
サーバは、端末から送信された公開鍵暗号を受信して抽出データを復号する公開鍵復号手段と、復号された抽出データに基づいて、端末の擬似乱数生成手段の現在の内部状態のランダム性を見積もるための数値である累積エントロピーを生成し、累積エントロピーと所定の閾値との比較結果に基づいて擬似乱数生成手段の内部状態のランダム性判定結果を生成するランダム性評価手段と、ランダム性判定結果が合格のときに所定の第1の鍵共有アルゴリズムによる鍵共有処理を実行する第1の鍵共有手段とを有することを特徴とする。
In order to achieve the above object, the key sharing method of the present invention is a key sharing method between a server that is a host device and one or more terminals,
The terminal generates a pseudo random number and extracts a part of the state update data for updating the internal state, and a part of the state update data extracted by the pseudo random number generator. Public key encryption means for encrypting certain extracted data using a pseudorandom number based on a predetermined public key algorithm and transmitting the extracted data to the server,
The server receives the public key encryption transmitted from the terminal and decrypts the extracted data. Based on the extracted extracted data, the server determines the randomness of the current internal state of the pseudorandom number generating means of the terminal. Randomness evaluation means for generating cumulative entropy, which is a numerical value for estimation, and generating a randomness determination result of an internal state of the pseudorandom number generation means based on a comparison result between the cumulative entropy and a predetermined threshold; and a randomness determination result And a first key sharing means for executing a key sharing process using a predetermined first key sharing algorithm when the key is passed.

また、上記の目的を達成するため、本発明の鍵共有方法は、ホスト機器であるサーバと1台以上の端末との間の鍵共有方法であって、端末内にて、擬似乱数生成手段により擬似乱数を生成させると共に、擬似乱数生成手段の内部状態を更新するための状態更新用データの一部を抽出する第1のステップと、端末が、第1のステップで抽出された状態更新用データの一部である抽出データを、擬似乱数を使用して所定の公開鍵アルゴリズムに基づき公開鍵暗号化してサーバへ送信する第2のステップと、サーバが、端末から送信された公開鍵暗号を受信して抽出データを復号する第3のステップと、サーバ内にて、復号された抽出データに基づいて、端末の擬似乱数生成手段の現在の内部状態のランダム性を見積もるための数値である累積エントロピーを生成する第4のステップと、第4のステップで生成された累積エントロピーと所定の閾値との比較結果に基づいて擬似乱数生成手段の内部状態のランダム性判定結果を生成する第5のステップと、サーバ内にて、ランダム性判定結果が合格のときに所定の第1の鍵共有アルゴリズムによる鍵共有処理を実行する第6のステップとを含むことを特徴とする。   In order to achieve the above object, a key sharing method of the present invention is a key sharing method between a server as a host device and one or more terminals. A first step of generating a pseudo-random number and extracting a part of the state update data for updating the internal state of the pseudo-random number generation means; and the state update data extracted by the terminal in the first step A second step of transmitting the extracted data that is a part of the encrypted data to the server using a pseudo-random number and public key encryption based on a predetermined public key algorithm, and the server receives the public key encryption transmitted from the terminal A third step of decoding the extracted data, and a cumulative value which is a numerical value for estimating the randomness of the current internal state of the pseudorandom number generating means of the terminal based on the extracted extracted data in the server. A fourth step of generating a loppy, and a fifth step of generating a randomness determination result of the internal state of the pseudorandom number generation means based on a comparison result between the cumulative entropy generated in the fourth step and a predetermined threshold value And a sixth step of executing a key sharing process using a predetermined first key sharing algorithm when the randomness determination result is acceptable in the server.

また、上記の目的を達成するため、本発明の鍵共有プログラムは、ホスト機器であるサーバに接続された1台以上の端末が有するコンピュータに鍵共有処理を行わせる鍵共有プログラムであって、コンピュータに、
擬似乱数を生成すると共に、擬似乱数生成の内部状態を更新するための状態更新用データの一部を抽出する抽出ステップと、抽出ステップで抽出された状態更新用データの一部である抽出データを、擬似乱数を使用して所定の公開鍵アルゴリズムに基づき公開鍵暗号化してサーバへ送信する公開鍵暗号化及び送信ステップとを実行させることを特徴とする。
In order to achieve the above object, a key sharing program of the present invention is a key sharing program for causing a computer included in one or more terminals connected to a server as a host device to perform key sharing processing. In addition,
An extraction step for generating a pseudo-random number and extracting a part of the state update data for updating the internal state of the pseudo-random number generation, and an extraction data that is a part of the state update data extracted in the extraction step , Public key encryption using a pseudo-random number and public key encryption based on a predetermined public key algorithm and transmitting to the server, and a transmission step are executed.

本発明によれば、公開鍵暗号化を適用することで端末は秘密鍵を保持する必要がなく、また、端末が発生する擬似乱数のランダム性の判定をサーバが行うため、端末自身が擬似乱数のランダム性の検証を行う必要がなく、これにより端末が検証を行う際の評価基準等の設定や情報漏洩リスクの問題をなくすことができる。   According to the present invention, by applying public key encryption, the terminal does not need to hold a secret key, and since the server determines the randomness of the pseudorandom number generated by the terminal, the terminal itself is a pseudorandom number. Therefore, it is possible to eliminate the problem of setting evaluation criteria and the risk of information leakage when the terminal performs verification.

本発明の鍵共有方式の一実施形態のブロック図である。It is a block diagram of one Embodiment of the key sharing system of this invention. 図1中の端末の鍵共有モジュールの動作説明用フローチャートである。It is a flowchart for operation | movement description of the key sharing module of the terminal in FIG. 図2中のステップS104の詳細動作説明用フローチャートである。It is a flowchart for detailed operation | movement description of step S104 in FIG. 図1中の端末の擬似乱数生成手段がビット若しくはシンボル単位で1個おきにビット(列)を抽出してデータSを生成するルールを模式的に示す図である。FIG. 2 is a diagram schematically showing a rule for generating data S by the pseudo random number generation means of the terminal in FIG. 1 extracting every other bit (sequence) in units of bits or symbols. 図3中のステップS205の詳細動作説明用フローチャートである。It is a flowchart for detailed operation | movement description of step S205 in FIG. 図1中のサーバの鍵共有処理の動作説明用フローチャートである。3 is a flowchart for explaining the operation of key sharing processing of the server in FIG. 1. 図6中のステップS301の詳細動作説明用フローチャートである。It is a flowchart for detailed operation | movement description of step S301 in FIG. 図6中のステップS304の詳細動作説明用フローチャートである。It is a flowchart for detailed operation | movement description of step S304 in FIG. エントロピー情報の頻度テーブルの一例の模式図である。It is a schematic diagram of an example of the frequency table of entropy information. エントロピー情報の頻度テーブルの他の例の模式図である。It is a schematic diagram of the other example of the frequency table of entropy information. 端末内の擬似乱数生成手段の動作の一例の説明図である。It is explanatory drawing of an example of operation | movement of the pseudorandom number generation means in a terminal. 暗号通信ステムの一例のブロック図である。It is a block diagram of an example of an encryption communication system. 図12中のパラメータ生成手段で生成する情報と、サーバ及び端末が保持する情報を示す図である。It is a figure which shows the information produced | generated by the parameter production | generation means in FIG. 12, and the information which a server and a terminal hold | maintain. 図12の動作説明用フローチャートである。13 is a flowchart for explaining the operation of FIG. 12. 擬似乱数生成器の一例の動作機能図である。It is an operation | movement functional diagram of an example of a pseudorandom number generator. 非特許文献2に記載されている擬似乱数生成処理の更新処理と出力生成処理とを示す図である。It is a figure which shows the update process of a pseudorandom number generation process described in the nonpatent literature 2, and an output generation process.

次に、本発明の実施形態について、図面を参照して説明する。   Next, embodiments of the present invention will be described with reference to the drawings.

図1は、本発明になる鍵共有方式の一実施形態のブロック図を示す。同図において、本実施形態の鍵共有方式100は、端末110とサーバ120とから構成される。端末110は複数台がサーバ120に接続されていてもよい。   FIG. 1 shows a block diagram of an embodiment of a key sharing method according to the present invention. In the figure, a key sharing method 100 according to the present embodiment includes a terminal 110 and a server 120. A plurality of terminals 110 may be connected to the server 120.

端末110は、鍵共有モジュール111を構成要素として持つ。鍵共有モジュール111は、鍵共有・公開鍵暗号化手段112及び擬似乱数生成手段113から構成される。また、端末110は、擬似乱数生成手段113にエントロピー情報を供給するエントロピーソースを持つ。鍵共有・公開鍵暗号化手段112は、擬似乱数生成手段113が生成する擬似乱数を使用して例えばDiffie-Hellman鍵共有アルゴリズムに基づき鍵共有処理を行う。また、鍵共有・公開鍵暗号化手段112は、擬似乱数生成手段113の内部状態を更新するための状態更新用データの一部を取り出し、それを例えばElGamal暗号アルゴリズムに基づき公開鍵暗号化してサーバ120へ送信する。   The terminal 110 has a key sharing module 111 as a component. The key sharing module 111 includes a key sharing / public key encryption unit 112 and a pseudo random number generation unit 113. Further, the terminal 110 has an entropy source that supplies entropy information to the pseudo-random number generation means 113. The key sharing / public key encryption unit 112 uses the pseudo random number generated by the pseudo random number generation unit 113 to perform key sharing processing based on, for example, the Diffie-Hellman key sharing algorithm. Further, the key sharing / public key encryption unit 112 takes out a part of the state update data for updating the internal state of the pseudo random number generation unit 113 and performs public key encryption on the server based on the ElGamal encryption algorithm, for example. 120.

サーバ120は、乱数生成手段121及び鍵共有モジュール122を備える。乱数生成手段121は、鍵共有モジュール122の外部にある信頼できる乱数生成手段であり、鍵共有モジュール122が鍵共有処理で使用する乱数を鍵共有モジュール122に供給する。鍵共有モジュール122は、鍵共有・公開鍵復号手段123とランダム性評価手段124とを構成要素として持つ。   The server 120 includes random number generation means 121 and a key sharing module 122. The random number generation means 121 is a reliable random number generation means outside the key sharing module 122, and supplies the random number used by the key sharing module 122 in the key sharing processing to the key sharing module 122. The key sharing module 122 includes a key sharing / public key decrypting unit 123 and a randomness evaluating unit 124 as components.

ランダム性評価手段124は、端末110から受信した状態更新用データの一部を更新したデータ(後述する累積エントロピーE)と所定の閾値との比較結果に基づいて得られた擬似乱数生成手段113の内部状態のランダム性判定結果を、鍵共有・公開鍵復号手段123を通して端末110へ送信する。また、ランダム性評価手段124は、上記のランダム性判定結果に応じて、鍵共有処理の実行を制御する。すなわち、ランダム性評価手段124は、ランダム性判定結果が合格のときには、例えばDiffie-Hellman鍵共有アルゴリズムに基づき鍵共有処理を実行する。また、ランダム性評価手段124は、ランダム性判定結果が不合格であるときには、鍵共有・公開鍵復号手段123が受信して復号した端末110から送信された公開鍵暗号化されたデータに基づいて、ランダム性評価・更新処理を行う。なお、上記の鍵共有処理と公開鍵暗号には同一の公開鍵パラメータが使用される。   The randomness evaluation unit 124 includes a pseudo-random number generation unit 113 that is obtained based on a comparison result between data obtained by updating a part of the state update data received from the terminal 110 (cumulative entropy E described later) and a predetermined threshold. The randomness determination result of the internal state is transmitted to the terminal 110 through the key sharing / public key decrypting means 123. Further, the randomness evaluation unit 124 controls the execution of the key sharing process according to the randomness determination result. That is, when the randomness determination result is acceptable, the randomness evaluation unit 124 executes key sharing processing based on, for example, the Diffie-Hellman key sharing algorithm. Further, when the randomness determination result is unacceptable, the randomness evaluation means 124 is based on the public key encrypted data transmitted from the terminal 110 received and decrypted by the key sharing / public key decryption means 123. , Perform randomness evaluation / update processing. The same public key parameter is used for the key sharing process and the public key encryption.

次に、本実施形態の鍵共有方式100の動作について説明する。   Next, the operation of the key sharing method 100 of this embodiment will be described.

まず、端末110の鍵共有モジュール111の動作について、図2のフローチャートを併せ参照して説明する。   First, the operation of the key sharing module 111 of the terminal 110 will be described with reference to the flowchart of FIG.

端末110の鍵共有モジュール111は、起動と共に擬似乱数生成手段113が起動時処理を実行し、擬似乱数生成手段113の状態ステータスを初期状態であることを示す“0”に設定する(ステップS101)。この擬似乱数生成手段113の起動時処理では、端末110の固有情報によって擬似乱数生成関数の内部状態の初期化が行われる。   When the key sharing module 111 of the terminal 110 is activated, the pseudo-random number generation unit 113 executes a startup process, and sets the status of the pseudo-random number generation unit 113 to “0” indicating the initial state (step S101). . In the startup process of the pseudo random number generation means 113, the internal state of the pseudo random number generation function is initialized with the unique information of the terminal 110.

続いて、擬似乱数生成手段113は起動後“スタンバイ”の動作となり、定期的に若しくは不定期的にエントロピーソースからエントロピー情報を更新する(ステップS102)。次に、鍵共有モジュール111は、ユーザ/アプリケーションから鍵共有処理実行の要求があるか否かを判定する(ステップS103)。鍵共有処理実行の要求がない場合は、ステップS102のスタンバイ動作を継続するが、鍵共有処理実行の要求がある場合は、鍵共有・公開鍵暗号化手段112が鍵共有処理を実行する(ステップS104)。この鍵共有処理では、鍵共有・公開鍵暗号化手段112は、後述するように、擬似乱数生成手段113からの出力である擬似乱数列も用いてサーバ120と通信を行い、擬似乱数生成手段113の内部状態のランダム性の検証の上で鍵共有アルゴリズムによる鍵共有処理を実行する。   Subsequently, the pseudo-random number generation unit 113 becomes a “standby” operation after being activated, and updates the entropy information from the entropy source periodically or irregularly (step S102). Next, the key sharing module 111 determines whether or not there is a request for execution of key sharing processing from the user / application (step S103). If there is no request for executing the key sharing process, the standby operation in step S102 is continued, but if there is a request for executing the key sharing process, the key sharing / public key encryption unit 112 executes the key sharing process (step S104). In this key sharing process, the key sharing / public key encryption unit 112 communicates with the server 120 using the pseudo-random number sequence output from the pseudo-random number generation unit 113, as will be described later, and the pseudo-random number generation unit 113. The key sharing process by the key sharing algorithm is executed after verifying the randomness of the internal state.

続いて、鍵共有モジュール111は、ユーザ/アプリケーションから鍵共有モジュールの停止要求があるか否かを判定する(ステップS105)。鍵共有モジュール111は、鍵共有モジュールの停止要求がない場合は、ステップS102のスタンバイ動作に戻るが、鍵共有モジュールの停止要求がある場合は、動作を終了する。   Subsequently, the key sharing module 111 determines whether or not there is a key sharing module stop request from the user / application (step S105). If there is no key sharing module stop request, the key sharing module 111 returns to the standby operation in step S102, but if there is a key sharing module stop request, the operation ends.

次に、ステップS104の詳細動作について図3と共に説明する。   Next, the detailed operation of step S104 will be described with reference to FIG.

図3は、鍵共有処理ステップS104の詳細動作説明用フローチャートを示す。鍵共有・公開鍵暗号化手段112は、鍵共有処理起動時に、サーバ120に状態ステータスを送信し、サーバ120からはランダム性判定結果を受信する(ステップS201)。続いて、鍵共有・公開鍵暗号化手段112は、送信する状態ステータスが初期状態を示す“0”ではなく、かつ、受信したランダム性判定結果が合格であるかどうかを判定する(ステップS202)。鍵共有・公開鍵暗号化手段112は、ステップS202の判定条件を満たしているときには後述するステップS208に進んで鍵共有アルゴリズムによる鍵共有処理を実行するが、判定条件を満たしていないときには、擬似乱数生成手段113と共にステップS203〜S207の処理を実行する。   FIG. 3 shows a flowchart for explaining the detailed operation of the key sharing processing step S104. The key sharing / public key encryption unit 112 transmits a status status to the server 120 when the key sharing process is activated, and receives a randomness determination result from the server 120 (step S201). Subsequently, the key sharing / public key encryption unit 112 determines whether the state status to be transmitted is not “0” indicating the initial state, and the received randomness determination result is acceptable (step S202). . The key sharing / public key encryption unit 112 proceeds to step S208, which will be described later, when the determination condition of step S202 is satisfied, and executes key sharing processing by the key sharing algorithm. If the determination condition is not satisfied, the pseudo-random number The process of step S203-S207 is performed with the production | generation means 113. FIG.

ステップS203では、擬似乱数生成手段113が、エントロピー情報からサーバ120に送信するデータを抽出し、鍵共有・公開鍵暗号化手段112に出力する。この抽出データは、擬似乱数生成手段113の内部状態を更新するための状態更新用データの一部であり、これを以下、抽出データSと呼ぶ。続くステップS204では、擬似乱数生成手段113がリフレッシュ処理を実行する。続くステップS205では、鍵共有・公開鍵暗号化手段112が、抽出データSを後述するように公開鍵暗号化してサーバ120に送信する、エントロピー情報送信処理を実行する。   In step S <b> 203, the pseudo random number generation unit 113 extracts data to be transmitted to the server 120 from the entropy information, and outputs the data to the key sharing / public key encryption unit 112. This extracted data is a part of the state update data for updating the internal state of the pseudo-random number generating means 113, and this is hereinafter referred to as extracted data S. In subsequent step S204, the pseudorandom number generation means 113 executes a refresh process. In the subsequent step S205, the key sharing / public key encryption unit 112 executes entropy information transmission processing in which the extracted data S is public key encrypted as described later and transmitted to the server 120.

続いて、ステップS206では、鍵共有・公開鍵暗号化手段112がサーバ120からランダム性判定結果を受信すると共に、状態ステータスが“0”のときには状態ステータスを初期状態でないことを示す“1”に設定する。そして、ステップS207では、鍵共有・公開鍵暗号化手段112がサーバ120から受信したランダム性判定結果が合格を示しているか否かを判定する。ランダム性判定結果が合格を示していないときには、端末鍵共有処理を終了するが、ランダム性判定結果が合格を示しているときには、鍵共有アルゴリズムによる鍵共有処理を実行する(ステップS208)。   Subsequently, in step S206, the key sharing / public key encryption unit 112 receives the randomness determination result from the server 120, and when the state status is “0”, the state status is set to “1” indicating that it is not the initial state. Set. In step S207, the key sharing / public key encryption unit 112 determines whether the randomness determination result received from the server 120 indicates success. When the randomness determination result does not indicate pass, the terminal key sharing process is terminated, but when the randomness determination result indicates pass, the key sharing process by the key sharing algorithm is executed (step S208).

図4は、ステップS203のエントロピー情報抽出処理を実行するために必要な、擬似乱数生成手段113の構成要素を示す。同図において、擬似乱数生成手段113は、エントロピー情報114から抽出手段115によりサーバ120に送信するデータSを抽出する。エントロピー情報114はメモリであり、エントロピーソースの種類に対応したデータ#1〜#4・・・を保持している。抽出手段115は、エントロピー情報114の一部の情報を取り出し、送信用の抽出データSを生成する。   FIG. 4 shows the constituent elements of the pseudorandom number generation means 113 necessary for executing the entropy information extraction process of step S203. In the figure, pseudo random number generation means 113 extracts data S to be transmitted to server 120 by extraction means 115 from entropy information 114. The entropy information 114 is a memory and holds data # 1 to # 4... Corresponding to the type of entropy source. The extraction unit 115 extracts a part of the entropy information 114 and generates extracted data S for transmission.

図4は、ビット若しくはシンボル単位で1個おきにビット(列)を抽出してデータSを生成するルールを模式的に示している。また、図4のソース#3のようなランダム性が保証されているソースに関しては、サーバ120への送信を行わない設定も考えられる。図4に示すように、これらの抽出ルールをサーバ120から端末110に動的に設定することも考えられる。   FIG. 4 schematically shows a rule for generating data S by extracting every other bit (column) in units of bits or symbols. In addition, regarding a source that guarantees randomness, such as source # 3 in FIG. As shown in FIG. 4, these extraction rules may be dynamically set from the server 120 to the terminal 110.

次に、図3のステップS205の詳細動作について、図5と共に説明する。   Next, the detailed operation of step S205 in FIG. 3 will be described with reference to FIG.

図5は、エントロピー情報送信処理ステップS205の詳細動作説明用フローチャートを示す。ステップS205のエントロピー情報送信処理において、まず、擬似乱数生成手段113が、公開鍵暗号化で使用する擬似乱数(一定長のビット列)Rを生成して出力する(ステップS2051)。続いて、鍵共有・公開鍵暗号化手段112は、上記のビット列Rを乱数として使用して、擬似乱数生成手段113により擬似乱数生成手段113の内部状態を更新するための状態更新用データから抽出された抽出データSを公開鍵で暗号化したデータを生成する(ステップS2052)。そして、鍵共有・公開鍵暗号化手段112は、ステップS2052で暗号化した抽出データSをサーバ120に送信する(ステップS2053)。   FIG. 5 shows a flowchart for explaining the detailed operation of the entropy information transmission processing step S205. In the entropy information transmission process of step S205, first, the pseudorandom number generation means 113 generates and outputs a pseudorandom number (a bit string of a fixed length) R used for public key encryption (step S2051). Subsequently, the key sharing / public key encryption unit 112 uses the bit string R as a random number and extracts it from the state update data for updating the internal state of the pseudo random number generation unit 113 by the pseudo random number generation unit 113. Data obtained by encrypting the extracted data S with the public key is generated (step S2052). Then, the key sharing / public key encryption unit 112 transmits the extracted data S encrypted in step S2052 to the server 120 (step S2053).

次に、サーバ120の鍵共有処理について、図6と共に説明する。   Next, the key sharing process of the server 120 will be described with reference to FIG.

図6は、サーバ120の鍵共有処理の動作説明用フローチャートを示す。まず、サーバ120内のランダム性評価手段124は、端末110の擬似乱数生成手段113の内部状態のランダム性判定処理を実行する(ステップS301)。このランダム性判定処理ステップS301の詳細動作は後述する。   FIG. 6 is a flowchart for explaining the operation of the key sharing process of the server 120. First, the randomness evaluation unit 124 in the server 120 executes a randomness determination process for the internal state of the pseudorandom number generation unit 113 of the terminal 110 (step S301). The detailed operation of this randomness determination processing step S301 will be described later.

続いて、サーバ120内の鍵共有・公開鍵復号手段123は、ステップS301で得られたランダム性判定結果が合格であるか否かを判定する(ステップS302)。鍵共有・公開鍵復号手段123は、ランダム性判定結果が合格であればステップS306に進んで鍵共有アルゴリズムによる鍵共有処理を実行し、ランダム性判定結果が不合格であれば、以下のステップS303〜S305の処理を実行する。   Subsequently, the key sharing / public key decrypting means 123 in the server 120 determines whether or not the randomness determination result obtained in step S301 is acceptable (step S302). If the randomness determination result is acceptable, the key sharing / public key decrypting unit 123 proceeds to step S306 to execute the key sharing process by the key sharing algorithm, and if the randomness determination result is unacceptable, the following step S303 is performed. The process of S305 is executed.

ステップS303では、鍵共有・公開鍵復号手段123が、端末110から図5のステップS2053で送信された暗号化データを受信し、これを復号して端末110のエントロピー情報からの抽出データSを得る。続くステップS304では、ランダム性評価手段124が、鍵共有・公開鍵復号手段123から入力された抽出データSに基づき、端末110の現在のエントロピー情報のランダム性(情報量)を算出してランダム性判定を行い、ランダム性評価手段124における抽出データの統計値を更新する。このランダム性評価・更新処理ステップS304の詳細動作は後述する。   In step S303, the key sharing / public key decrypting means 123 receives the encrypted data transmitted in step S2053 in FIG. 5 from the terminal 110, decrypts it, and obtains the extracted data S from the entropy information of the terminal 110. . In the subsequent step S304, the randomness evaluation unit 124 calculates the randomness (information amount) of the current entropy information of the terminal 110 based on the extracted data S input from the key sharing / public key decryption unit 123, and the randomness. The determination is performed, and the statistical value of the extracted data in the randomness evaluation unit 124 is updated. The detailed operation of this randomness evaluation / update processing step S304 will be described later.

そして、ステップS305では、鍵共有・公開鍵復号手段123が、ステップS304で得られたランダム性判定結果が合格であるか否かを判定する。鍵共有・公開鍵復号手段123は、ランダム性判定結果が合格であればステップS306に進んで鍵共有アルゴリズムによる鍵共有処理を実行し、ランダム性判定結果が不合格であれば、鍵共有処理を終了する。   In step S305, the key sharing / public key decrypting unit 123 determines whether the randomness determination result obtained in step S304 is acceptable. If the randomness determination result is acceptable, the key sharing / public key decryption unit 123 proceeds to step S306 to execute the key sharing process by the key sharing algorithm, and if the randomness determination result is unacceptable, the key sharing process is performed. finish.

次に、図6のステップS301の詳細動作について図7と共に説明する。   Next, the detailed operation of step S301 in FIG. 6 will be described with reference to FIG.

図7は、ランダム性判定処理ステップS301の詳細動作説明用フローチャートを示す。ランダム性評価手段124は、ステップS301において、各端末110毎の現在の内部状態のランダム性を見積もるための数値(以下、これを累積エントロピーEと呼ぶ)を管理する。以下、図7のフローチャートを説明する。   FIG. 7 shows a flowchart for explaining the detailed operation of the randomness determination processing step S301. In step S301, the randomness evaluation unit 124 manages a numerical value for estimating the randomness of the current internal state for each terminal 110 (hereinafter referred to as cumulative entropy E). Hereinafter, the flowchart of FIG. 7 will be described.

ランダム性評価手段124は、端末110が送信した状態ステータスを鍵共有・公開鍵復号手段123を通して受信し(ステップS3011)、その状態ステータスが“0”である否かを判定する(ステップS3012)。ランダム性評価手段124は、状態ステータスが“0”であると判定したときには、端末110が起動時の状態と判断して、その端末110に対応する累積エントロピーEを“0”にリセットし(ステップS3013)、その端末110に対して不合格を示すランダム性判定結果を、鍵共有・公開鍵復号手段123を通して通知する(ステップS3014)。   The randomness evaluation unit 124 receives the state status transmitted from the terminal 110 through the key sharing / public key decryption unit 123 (step S3011), and determines whether or not the state status is “0” (step S3012). When it is determined that the status status is “0”, the randomness evaluation means 124 determines that the terminal 110 is in a startup state, and resets the accumulated entropy E corresponding to the terminal 110 to “0” (step S3013), the randomness determination result indicating failure is notified to the terminal 110 through the key sharing / public key decryption means 123 (step S3014).

一方、ランダム性評価手段124は、ステップS3012で状態ステータスが“0”でないと判定したときには、端末110が起動時の状態ではないと判断して、その端末に対応する累積エントロピーEの値が予め設定した閾値T以上であるか否かを判定する(ステップS3015)。ステップS3015にて累積エントロピーEが閾値T未満であると判定したときには、ステップS3014に進んで不合格を示すランダム性判定結果を鍵共有・公開鍵復号手段123を通して端末110に通知する。   On the other hand, when it is determined in step S3012 that the status status is not “0”, the randomness evaluation unit 124 determines that the terminal 110 is not in the starting state, and the value of the cumulative entropy E corresponding to the terminal is determined in advance. It is determined whether or not the set threshold value T is exceeded (step S3015). When it is determined in step S3015 that the cumulative entropy E is less than the threshold value T, the process proceeds to step S3014, and a randomness determination result indicating failure is notified to the terminal 110 through the key sharing / public key decryption unit 123.

他方、ランダム性評価手段124は、ステップS3015で累積エントロピーEが閾値T以上であると判定したときには、その端末110に対して合格を示すランダム性判定結果を、鍵共有・公開鍵復号手段123を通して通知する(ステップS3016)。続いて、ランダム性評価手段124は、その端末110の累積エントロピーEを更新する(ステップS3017)。この更新は、鍵共有アルゴリズムで使用する乱数列の量に応じて小さくするもので、鍵共有アルゴリズムでは一定量の乱数列を使用するため、典型的には累積エントロピーEに対して定数を減ずる形で行われる。   On the other hand, when the randomness evaluation unit 124 determines in step S3015 that the cumulative entropy E is greater than or equal to the threshold value T, the randomness determination result indicating pass to the terminal 110 is passed through the key sharing / public key decryption unit 123. Notification is made (step S3016). Subsequently, the randomness evaluation unit 124 updates the cumulative entropy E of the terminal 110 (step S3017). This update is made smaller in accordance with the amount of random number sequences used in the key sharing algorithm. Since a certain amount of random number sequences are used in the key sharing algorithm, typically, a constant is reduced with respect to the cumulative entropy E. Done in

次に、ステップS304の詳細動作について図8と共に説明する。   Next, the detailed operation of step S304 will be described with reference to FIG.

図8は、ランダム性評価・更新処理ステップS304の詳細動作説明用フローチャートを示す。ランダム性評価・更新処理ステップS304において、まず、ランダム性評価手段124は、保持しているエントロピー情報の頻度テーブルを用いて、ステップS303で復元された抽出データSに基づいて、端末110における現在のエントロピー情報が保持するエントロピーを推定する(ステップS3041)。このステップS3041では、頻度テーブルが例えば、復元された抽出データにおけるビットパタンと頻度とからなる頻度テーブルの場合は、受信して復元された抽出データのビットパタンの発生確率を頻度テーブルに基づいて推定する。   FIG. 8 shows a flowchart for explaining the detailed operation of the randomness evaluation / update processing step S304. In the randomness evaluation / update processing step S304, first, the randomness evaluation means 124 uses the frequency table of the entropy information that is held, based on the extracted data S restored in step S303, The entropy held by the entropy information is estimated (step S3041). In this step S3041, if the frequency table is, for example, a frequency table composed of the bit pattern and frequency in the restored extracted data, the probability of occurrence of the bit pattern of the received and restored extracted data is estimated based on the frequency table. To do.

続いて、ランダム性評価手段124は、ステップS3041で推定したエントロピーを用いて、端末110の擬似乱数生成手段113の内部状態の累積エントロピーEを更新する(ステップS3042)。この更新は、典型的には擬似乱数生成アルゴリズムから決定される上限の下、ステップS3041で推定したエントロピーを累積エントロピーEに加算する形で行われる。   Subsequently, the randomness evaluation unit 124 updates the accumulated entropy E of the internal state of the pseudorandom number generation unit 113 of the terminal 110 using the entropy estimated in step S3041 (step S3042). This update is typically performed by adding the entropy estimated in step S3041 to the cumulative entropy E under an upper limit determined from a pseudorandom number generation algorithm.

続いて、ランダム性評価手段124は、保持しているエントロピー情報の頻度テーブルを、受信して復元された抽出データSに基づいて更新する(ステップS3043)。この頻度テーブルの更新のタイミングは、ステップS3042の処理に続いて行う必要はなく、鍵共有処理の終了後に実行することもできる。   Subsequently, the randomness evaluation unit 124 updates the held entropy information frequency table based on the extracted data S received and restored (step S3043). The update timing of the frequency table does not need to be performed following the process of step S3042, and can be performed after the key sharing process is completed.

続いて、ランダム性評価手段124は、前記のステップS3015と同様に、端末110に対応する累積エントロピーEの値が予め設定した閾値T以上であるか否かを判定する(ステップS3044)。ステップS3044にて累積エントロピーEが閾値T未満であると判定したときには、ステップS3047に進んで不合格を示すランダム性判定結果を鍵共有・公開鍵復号手段123を通して端末110に通知する。   Subsequently, the randomness evaluation unit 124 determines whether or not the value of the cumulative entropy E corresponding to the terminal 110 is equal to or greater than a preset threshold value T as in step S3015 (step S3044). When it is determined in step S3044 that the cumulative entropy E is less than the threshold T, the process proceeds to step S3047, and a randomness determination result indicating failure is notified to the terminal 110 through the key sharing / public key decryption unit 123.

他方、ランダム性評価手段124は、ステップS3044で累積エントロピーEが閾値T以上であると判定したときには、その端末110に対して合格を示すランダム性判定結果を、鍵共有・公開鍵復号手段123を通して通知する(ステップS3045)。続いて、ランダム性評価手段124は、その端末110の累積エントロピーEをステップS3017と同様に更新する(ステップS3046)。   On the other hand, when the randomness evaluation unit 124 determines in step S3044 that the cumulative entropy E is greater than or equal to the threshold T, the randomness evaluation result indicating pass to the terminal 110 is passed through the key sharing / public key decryption unit 123. Notification is made (step S3045). Subsequently, the randomness evaluation unit 124 updates the cumulative entropy E of the terminal 110 in the same manner as in step S3017 (step S3046).

図9は、ステップS3041、S3043で使用されるエントロピー情報の頻度テーブルの一例の模式図を示す。頻度テーブルは、図9(A)に模式的に示すように、各端末とエントロピーソースの各ソースとを対応させたテーブルであり、そのテーブルの各欄は図9(B)に示すようにサーバ120が復号した抽出データにおけるビットパタンとその頻度から構成される。ここで、「頻度」は、対応するビットパタンがどの程度発生するかの確率を示す。なお、各ソースに対して端末のトータルを計算した頻度テーブルも考えられる。また、起動時からの時間経緯を考慮して、このような頻度テーブルを複数用意することも考えられる。   FIG. 9 is a schematic diagram illustrating an example of a frequency table of entropy information used in steps S3041 and S3043. As schematically shown in FIG. 9A, the frequency table is a table in which each terminal and each source of the entropy source are associated with each other, and each column of the table is a server as shown in FIG. 9B. 120 is composed of the bit pattern and its frequency in the extracted data decoded. Here, “frequency” indicates the probability of the occurrence of the corresponding bit pattern. A frequency table in which the total of terminals is calculated for each source is also conceivable. It is also conceivable to prepare a plurality of such frequency tables in consideration of the time history from the startup.

図10は、ステップS3041、S3043で使用されるエントロピー情報の頻度テーブルの他の例の模式図を示す。他の例の頻度テーブルは、図10(A)に模式的に示すように、各端末毎に起動回数とエントロピーソースの各ソースとを対応させたテーブルであり、そのテーブルの各欄は図10(B)に示すように起動後のエントロピー情報のビットパタンとその頻度から構成される。この頻度テーブルを用いた場合は、起動後のエントロピー情報の変化を考慮して擬似乱数生成手段113の内部状態のエントロピーを推定することが可能となる。   FIG. 10 is a schematic diagram of another example of the entropy information frequency table used in steps S3041 and S3043. The frequency table of another example is a table in which the number of activations and each source of the entropy source are associated with each terminal, as schematically shown in FIG. 10 (A). As shown in (B), it is composed of a bit pattern of entropy information after activation and its frequency. When this frequency table is used, it is possible to estimate the entropy of the internal state of the pseudorandom number generator 113 in consideration of the change in entropy information after activation.

次に、上記の実施形態の要部について更に具体的かつ詳細に説明する。   Next, the main part of the above embodiment will be described more specifically and in detail.

端末110におけるステップS208の鍵共有アルゴリズム、及びサーバ120におけるステップS306の鍵共有アルゴリズムには、前述したDiffie-Hellman鍵共有アルゴリズムを適用することができる。このとき、ステップS205において用いられる抽出データSの公開鍵暗号化アルゴリズムとしては、鍵共有アルゴリズムと同一ドメインパラメータと公開鍵とを用いてのElGamal暗号を適用するのが自然である。   The aforementioned Diffie-Hellman key sharing algorithm can be applied to the key sharing algorithm in step S208 in the terminal 110 and the key sharing algorithm in step S306 in the server 120. At this time, as the public key encryption algorithm of the extracted data S used in step S205, it is natural to apply ElGamal encryption using the same domain parameter and public key as the key sharing algorithm.

このステップS205におけるElGamal暗号化は、図14で用いた記述を用いると、Diffie-Hellman鍵共有アルゴリズムのドメインパラメータp(法となる素数)、g(生成元)に対して、擬似乱数生成手段113からの出力である乱数Rを用いて、抽出データSを次式による暗号文Cに変換することである。   In the ElGamal encryption in step S205, using the description used in FIG. 14, pseudo-random number generation means 113 for domain parameters p (modulus prime number) and g (generation source) of the Diffie-Hellman key sharing algorithm. Is used to convert the extracted data S into ciphertext C according to the following equation.

C=(gR mod p,S・y(i)R mod p) (1)
サーバ120は、ステップS113において、秘密鍵x(i)と受信した暗号文C中のgR mod pとから
y(i)R mod p=(gRx(i) mod p (2)
を求め、更に次式により抽出データSを復号する。
C = (g R mod p, S · y (i) R mod p) (1)
In step S113, the server 120 calculates y (i) R mod p = (g R ) x (i) mod p (2) from the secret key x (i) and g R mod p in the received ciphertext C.
And the extracted data S is decoded by the following equation.

S・y(i)R /y(i)R mod p=S (3)
上記のp、g、y(i)の正当性の保証は、図14で説明したと同様に実現することができる。
S · y (i) R / y (i) R mod p = S (3)
The guarantee of the validity of the above p, g, and y (i) can be realized in the same manner as described with reference to FIG.

端末110が計算機の場合の典型的なエントロピーソースとしては、前述のようにプロセスID、ハードディスクのシーク時間、サーバ120との通信時間、プログラムの実行時間などが挙げられるが、真性乱数生成器やオペレーティングシステムが提供する外部乱数生成手段をエントロピーソースとして用いることも考えられる。   Typical entropy sources when the terminal 110 is a computer include process ID, hard disk seek time, communication time with the server 120, program execution time, etc., as described above. It is also conceivable to use an external random number generation means provided by the system as an entropy source.

このとき、図11に示すように、外部乱数生成手段の出力の一部を擬似乱数生成手段113のエントロピー情報114に保持されるエントロピーソースとして用い、外部乱数生成手段の出力の残りを擬似乱数生成手段113の出力生成処理116で得られた出力系列と加算器117にて加算して最終的な擬似乱数を生成する方式が考えられる。   At this time, as shown in FIG. 11, a part of the output of the external random number generation unit is used as an entropy source held in the entropy information 114 of the pseudo random number generation unit 113, and the remaining output of the external random number generation unit is generated as a pseudo random number. A method of generating a final pseudorandom number by adding the output series obtained by the output generation process 116 of the means 113 and the adder 117 is conceivable.

また、端末110内の擬似乱数生成手段113で使用する擬似乱数生成アルゴリズムとしては、例えば非特許文献2に記載されている任意の安全性の保証されたアルゴリズムを使用することができる。図16に示したHMACを用いる擬似乱数アルゴリズムでHMACのハッシュ関数としてSHA−256を使用する場合には、セキュリティ強度の最大値が256(ビット)であるため、累積エントロピーEも「256」以下とすることが自然となる。このとき、サーバ120におけるステップS3042の累積エントロピーEの更新時には、この値を上限として更新処理を行う。また、ステップS3015、S3044にて用いられる閾値Tは、システムが設定するセキュリティパラメータであり、SHA−256のHMACを使用する擬似乱数生成アルゴリズムでは、通常、「112」以上に設定される。   Further, as a pseudo-random number generation algorithm used by the pseudo-random number generation unit 113 in the terminal 110, for example, any secure algorithm assured in Non-Patent Document 2 can be used. When the SHA-256 is used as the HMAC hash function in the pseudo-random algorithm using the HMAC shown in FIG. It becomes natural to do. At this time, when updating the cumulative entropy E in step S3042 in the server 120, the update process is performed with this value as the upper limit. The threshold T used in steps S3015 and S3044 is a security parameter set by the system, and is generally set to “112” or more in the pseudorandom number generation algorithm using the SHA-256 HMAC.

また、抽出データSのソース#1、#2、#3、・・・に対応するビットパタンを(s_1,s_2,s_3,・・・)として、図9に示した頻度テーブルから求められるビットパタンs_iの推定確率をp_iとすると、抽出データSのランダム性(情報量)は各ソースが独立であるという仮定の下、次式により見積もることができる。   Also, the bit pattern corresponding to the sources # 1, # 2, # 3,... Of the extracted data S is (s_1, s_2, s_3,...), And the bit pattern obtained from the frequency table shown in FIG. If the estimated probability of s_i is p_i, the randomness (information amount) of the extracted data S can be estimated by the following equation under the assumption that each source is independent.

h(S)=−log p_1−log p_2−log p_3・・・ (4)
ここで、(4)式中logの底は2とする。また、h(S)の単位はビットである。頻度テーブルの統計量が十分でない場合は、ベイズ推定などに基づいて補正値を考慮して推定確率p_iを決めることが適切である。また、事前に十分に学習して頻度テーブルを生成してから使用することも考えられる。
h (S) =-log p_1-log p_2-log p_3 (4)
Here, the bottom of log in the formula (4) is 2. The unit of h (S) is a bit. When the statistics of the frequency table are not sufficient, it is appropriate to determine the estimation probability p_i in consideration of the correction value based on Bayesian estimation. It is also conceivable that the frequency table is generated after sufficiently learning and used.

また、図9に示した頻度テーブルでは、抽出データSに対して推定確率p_iが各端末110及び端末のトータルに対してそれぞれ求められるため、h(S)もこれに応じて算出することができる。このとき抽出データSのランダム性は、その最小値で見積もることが適切となる。このように、本実施形態では、サーバ120に各端末110のエントロピー情報を集約することによって、他の端末に対してのランダム性も測ることができるため、ランダム性評価の精度を向上させることができる。   Further, in the frequency table shown in FIG. 9, since the estimated probability p_i is obtained for each of the terminals 110 and the total for the extracted data S, h (S) can also be calculated accordingly. . At this time, it is appropriate to estimate the randomness of the extracted data S with the minimum value. As described above, in this embodiment, by collecting the entropy information of each terminal 110 in the server 120, randomness with respect to other terminals can also be measured, so that the accuracy of randomness evaluation can be improved. it can.

なお、サーバ120内のランダム性評価手段124で使用する抽出データSは、疑似乱数生成手段113のエントロピー情報の一部であるため、疑似乱数生成手段113のエントロピー情報のランダム性の推定値Hは、(4)式に対して
H=λh(S) (5)
と係数λを設定して導出する方式が考えられる。
Since the extracted data S used by the randomness evaluation unit 124 in the server 120 is a part of the entropy information of the pseudorandom number generation unit 113, the estimated value H of the randomness of the entropy information of the pseudorandom number generation unit 113 is , (4) H = λh (S) (5)
And a method of deriving by setting the coefficient λ can be considered.

エントロピー情報全体から比率ρでビットを抜き出して抽出データSを生成する場合には、単純には上記係数λを1/ρに設定することになる。しかし、抽出データSと前述したエントロピー情報の残りの部分とが独立とはみなせない場合には、係数λは1/ρより小さな値に設定することが適切となる。また、この独立性は仮定するが、サーバ120への送信時の漏洩を仮定する場合には、上記係数λを1/(ρ−1)に設定することが考えられる。これらの事項を総合的に考えて、サーバ120は抽出データSから端末110のエントロピー情報のランダム性を定量化する。   When the extracted data S is generated by extracting bits from the entire entropy information at the ratio ρ, the coefficient λ is simply set to 1 / ρ. However, when the extracted data S and the remaining portion of the entropy information cannot be regarded as independent, it is appropriate to set the coefficient λ to a value smaller than 1 / ρ. In addition, although this independence is assumed, it is conceivable that the coefficient λ is set to 1 / (ρ−1) when leakage at the time of transmission to the server 120 is assumed. Considering these matters comprehensively, the server 120 quantifies the randomness of the entropy information of the terminal 110 from the extracted data S.

また、図7のステップS3017及び図8のステップS3046の累積エントロピーEの更新は、鍵共有で使用した乱数列の量に応じて累積エントロピーEを減少させる処理となる。擬似乱数生成手段113の内部状態をランダムに設定して系列を発生させたテーブルを作成して、実際に発生した乱数列とのマッチングをとって内部状態を推定する攻撃を考えると、同一のテーブルであれば攻撃の成功確率は実際に取得した乱数列の長さに比例する。   Further, the update of the cumulative entropy E in step S3017 in FIG. 7 and step S3046 in FIG. 8 is a process of reducing the cumulative entropy E according to the amount of the random number sequence used in key sharing. Considering an attack in which the internal state of the pseudo-random number generating means 113 is randomly set to generate a sequence and matching with the actually generated random number sequence to estimate the internal state, the same table Then, the success probability of the attack is proportional to the length of the actually acquired random number sequence.

そこで、鍵共有アルゴリズムで長さLの乱数列を使用するとすれば、上記ステップS3017及びステップS3046の累積エントロピーEの更新では、次式のAで表される定数を現在の累積エントロピーEから減ずる処理を行う。   Therefore, if a random number sequence of length L is used in the key sharing algorithm, the update of the cumulative entropy E in steps S3017 and S3046 described above is a process of subtracting the constant represented by A in the following equation from the current cumulative entropy E. I do.

E←E−A,A=log(L)+c (6)
ただし、(6)式中、cは適切な定数である。
E ← E−A, A = log (L) + c (6)
However, in the formula (6), c is an appropriate constant.

ステップS205の抽出データSの公開鍵暗号化処理の際にも、鍵共有アルゴリズムと同一長の乱数列を使用するため、図8のステップS3042の累積エントロピーEの更新は、次式のBで表される値を現在の累積エントロピーEに加算する処理を行う。   Since the random number sequence having the same length as the key sharing algorithm is used in the public key encryption process of the extracted data S in step S205, the update of the cumulative entropy E in step S3042 in FIG. The value to be added is added to the current cumulative entropy E.

E←E+B,B=max(H−A,0) (7)
ただし、(7)式中、H、Aはそれぞれ(5)式、(6)式で示される値であり、またmax(x,y)は、xとyとで値が大きい方を選択する関数である。
E ← E + B, B = max (HA, 0) (7)
However, in the formula (7), H and A are values indicated by the formula (5) and the formula (6), respectively, and max (x, y) is selected as a larger value between x and y. It is a function.

このように、本実施形態の鍵共有方式では、端末110が発生する擬似乱数のランダム性の判定(擬似乱数生成手段113の内部状態のランダム性の判定)をサーバ120が行うため、端末110自身が擬似乱数のランダム性の検証を行う必要がなく、これにより端末110が検証を行う際の評価基準等の設定や情報漏洩リスクの問題をなくすことができる。   As described above, in the key sharing method of the present embodiment, since the server 120 performs the determination of the randomness of the pseudorandom number generated by the terminal 110 (the determination of the randomness of the internal state of the pseudorandom number generation unit 113), the terminal 110 itself However, it is not necessary to verify the randomness of the pseudo-random numbers, thereby eliminating the problem of setting evaluation criteria and the risk of information leakage when the terminal 110 performs verification.

また、本実施形態の鍵共有方式では、端末110のエントロピー情報を端末110自身が公開鍵暗号化してからサーバ120へ送信するため、通信路上のデータを第三者に取得されたとしても漏洩する情報を抑えることができる。また、本実施形態では、公開鍵暗号化を適用することで端末110には秘密鍵を保持する必要がなく、また、鍵共有アルゴリズムと公開鍵暗号とでドメインパラメータや公開鍵の公開情報を端末110とサーバ120とが共有するようにしているため、その正当性チェックなどの追加処理も不要となる。更に、本実施形態では、サーバ120において、各端末110のエントロピー情報を集約するようにしたため、ランダム性評価の精度を向上させることができる。   Further, in the key sharing method of the present embodiment, since the terminal 110 itself encrypts the entropy information of the terminal 110 and transmits it to the server 120, it leaks even if data on the communication path is acquired by a third party. Information can be suppressed. Further, in the present embodiment, by applying public key encryption, the terminal 110 does not need to hold a secret key, and domain parameters and public key public information are transmitted to the terminal using a key sharing algorithm and public key encryption. Since 110 and the server 120 are shared, additional processing such as a validity check becomes unnecessary. Furthermore, in this embodiment, since the server 120 aggregates the entropy information of each terminal 110, the accuracy of randomness evaluation can be improved.

なお、本発明は以上の実施形態に限定されるものではなく、例えば、鍵共有モジュール111や122の各動作をそれぞれ端末110内やサーバ120内のコンピュータにより実行させる鍵共有プログラムも包含するものである。   The present invention is not limited to the above embodiment, and includes, for example, a key sharing program that causes each operation of the key sharing module 111 or 122 to be executed by a computer in the terminal 110 or the server 120, respectively. is there.

上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。   A part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.

(付記1)
ホスト機器であるサーバと1台以上の端末との間の鍵共有方式であって、
前記端末は、
擬似乱数を生成すると共に、その内部状態を更新するための状態更新用データの一部を抽出する擬似乱数生成手段と、
前記擬似乱数生成手段により抽出された前記状態更新用データの一部である抽出データを、前記擬似乱数を使用して所定の公開鍵アルゴリズムに基づき公開鍵暗号化して前記サーバへ送信する公開鍵暗号化手段と
を有し、
前記サーバは、
前記端末から送信された公開鍵暗号を受信して前記抽出データを復号する公開鍵復号手段と、
前記復号された抽出データに基づいて、前記端末の前記擬似乱数生成手段の現在の内部状態のランダム性を見積もるための数値である累積エントロピーを生成し、前記累積エントロピーと所定の閾値との比較結果に基づいて前記擬似乱数生成手段の内部状態の前記ランダム性判定結果を生成するランダム性評価手段と、
前記ランダム性判定結果が合格を示しているときに所定の第1の鍵共有アルゴリズムによる鍵共有処理を実行する第1の鍵共有手段と
を有することを特徴とする鍵共有方式。
(Appendix 1)
A key sharing method between a server that is a host device and one or more terminals,
The terminal
A pseudo-random number generating means for generating a pseudo-random number and extracting a part of the state update data for updating the internal state;
Public key cryptography that encrypts the extracted data that is a part of the state update data extracted by the pseudo random number generation means based on a predetermined public key algorithm using the pseudo random number and transmits it to the server And means for
The server
Public key decryption means for receiving the public key cipher transmitted from the terminal and decrypting the extracted data;
Based on the decoded extracted data, a cumulative entropy that is a numerical value for estimating the randomness of the current internal state of the pseudo-random number generating means of the terminal is generated, and a comparison result between the cumulative entropy and a predetermined threshold value Randomness evaluation means for generating the randomness determination result of the internal state of the pseudorandom number generation means based on
And a first key sharing unit that executes a key sharing process using a predetermined first key sharing algorithm when the randomness determination result indicates success.

(付記2)
前記ランダム性評価手段は、前記ランダム性判定結果を前記端末へ送信する機能を備え、
前記端末は、前記サーバから送信された前記ランダム性判定結果を受信し、そのランダム判定結果が不合格を示しているときに前記公開鍵暗号化手段による前記公開鍵暗号化を実行させ、前記ランダム判定結果が合格を示しているときに所定の第2の鍵共有アルゴリズムによる鍵共有処理を実行する第2の鍵共有手段を有することを特徴とする付記1記載の鍵共有方式。
(Appendix 2)
The randomness evaluation means has a function of transmitting the randomness determination result to the terminal,
The terminal receives the randomness determination result transmitted from the server, and executes the public key encryption by the public key encryption means when the random determination result indicates failure, and the random The key sharing method according to appendix 1, further comprising second key sharing means for executing a key sharing process using a predetermined second key sharing algorithm when the determination result indicates success.

(付記3)
前記ランダム性評価手段は、前記累積エントロピーが前記閾値以上であるとき合格を示し、前記閾値未満のときは不合格を示す前記ランダム性判定結果を生成することを特徴とする付記1記載の鍵共有方式。
(Appendix 3)
The key sharing method according to claim 1, wherein the randomness evaluation unit generates the randomness determination result indicating pass when the cumulative entropy is equal to or greater than the threshold, and indicating failure when the cumulative entropy is less than the threshold. method.

(付記4)
前記サーバは、前記端末の前記擬似乱数生成手段に対して、前記状態更新用データの一部を抽出する抽出ルールを動的に設定する設定手段を有することを特徴とする付記1記載の鍵共有方式。
(Appendix 4)
The key sharing according to claim 1, wherein the server has setting means for dynamically setting an extraction rule for extracting a part of the state update data for the pseudo-random number generation means of the terminal. method.

(付記5)
前記端末は、外部乱数生成手段を有し、
前記擬似乱数生成手段は、前記外部乱数生成手段の出力の一部を前記擬似乱数生成手段のエントロピーソースとして用い、前記外部乱数生成手段の出力の残りを出力系列と加算して、前記公開鍵暗号化手段へ供給する最終的な擬似乱数を生成することを特徴とする付記1記載の鍵共有方式。
(Appendix 5)
The terminal has external random number generation means;
The pseudo random number generation means uses a part of the output of the external random number generation means as an entropy source of the pseudo random number generation means, adds the remainder of the output of the external random number generation means to an output sequence, and The key sharing method according to appendix 1, wherein a final pseudo-random number to be supplied to the generating means is generated.

(付記6)
前記ランダム性評価手段は、前記復号された抽出データにおけるビットパタンの頻度テーブルを備え、受信して復号された前記抽出データのビットパタンの発生確率を、前記頻度テーブルを用いて推定し、その推定結果で前記累積エントロピーを更新し、更新後の前記累積エントロピーを前記端末の前記擬似乱数発生手段の内部状態のランダム性の判定に利用することを特徴とする付記1記載の鍵共有方式。
(Appendix 6)
The randomness evaluation means includes a frequency table of bit patterns in the decoded extracted data, estimates the occurrence probability of the bit pattern of the extracted data received and decoded using the frequency table, and estimates The key sharing method according to supplementary note 1, wherein the cumulative entropy is updated with the result, and the updated cumulative entropy is used to determine the randomness of the internal state of the pseudorandom number generating means of the terminal.

(付記7)
前記頻度テーブルは、前記サーバに接続された個々の前記端末毎に、又はすべての前記端末をまとめた頻度テーブルであることを特徴とする付記6記載の鍵共有方式。
(Appendix 7)
The key sharing method according to appendix 6, wherein the frequency table is a frequency table for each of the terminals connected to the server or for all the terminals.

(付記8)
前記ランダム性評価手段は、前記累積エントロピー更新後に前記頻度テーブルを前記復号された抽出データに基づいて更新することを特徴とする付記6又は7記載の鍵共有方式。
(Appendix 8)
The key sharing method according to appendix 6 or 7, wherein the randomness evaluation unit updates the frequency table based on the decrypted extracted data after the cumulative entropy update.

(付記9)
前記公開鍵暗号化手段による公開鍵暗号化と、前記第1の鍵共有手段による鍵共有処理とは同一の公開鍵パラメータを使用することを特徴とする付記1乃至8のうちいずれか一項記載の鍵共有方式。
(Appendix 9)
The public key encryption performed by the public key encryption unit and the key sharing process performed by the first key sharing unit use the same public key parameter, wherein the same public key parameter is used. Key sharing method.

(付記10)
前記公開鍵暗号化手段は、ElGamal暗号により公開鍵暗号化を行い、前記第1及び第2の鍵共有手段は、Diffie-Hellman鍵共有アルゴリズムにより鍵共有処理を行うことを特徴とする付記2乃至8のうちいずれか一項記載の鍵共有方式。
(Appendix 10)
The public key encryption means performs public key encryption using ElGamal encryption, and the first and second key sharing means perform key sharing processing using a Diffie-Hellman key sharing algorithm. The key sharing method according to claim 8.

(付記11)
ホスト機器であるサーバと1台以上の端末との間の鍵共有方法であって、
前記端末内にて、擬似乱数生成手段により擬似乱数を生成させると共に、前記擬似乱数生成手段の内部状態を更新するための状態更新用データの一部を抽出する第1のステップと、
前記端末が、前記第1のステップで抽出された前記状態更新用データの一部である抽出データを、前記擬似乱数を使用して所定の公開鍵アルゴリズムに基づき公開鍵暗号化して前記サーバへ送信する第2のステップと、
前記サーバが、前記端末から送信された公開鍵暗号を受信して前記抽出データを復号する第3のステップと、
前記サーバ内にて、前記復号された抽出データに基づいて、前記端末の前記擬似乱数生成手段の現在の内部状態のランダム性を見積もるための数値である累積エントロピーを生成する第4のステップと、
前記第4のステップで生成された前記累積エントロピーと所定の閾値との比較結果に基づいて前記擬似乱数生成手段の内部状態の前記ランダム性判定結果を生成する第5のステップと、
前記サーバ内にて、前記ランダム性判定結果が合格のときに所定の第1の鍵共有アルゴリズムによる鍵共有処理を実行する第6のステップと
を含むことを特徴とする鍵共有方法。
(Appendix 11)
A key sharing method between a server that is a host device and one or more terminals,
A first step of generating a pseudo-random number by the pseudo-random number generator in the terminal and extracting a part of the state update data for updating the internal state of the pseudo-random number generator;
The terminal transmits the extracted data, which is a part of the state update data extracted in the first step, to the server by public key encryption using the pseudo random number based on a predetermined public key algorithm. A second step of:
A third step in which the server receives the public key cipher transmitted from the terminal and decrypts the extracted data;
A fourth step of generating cumulative entropy, which is a numerical value for estimating the randomness of the current internal state of the pseudorandom number generation means of the terminal, based on the decoded extracted data in the server;
A fifth step of generating the randomness determination result of the internal state of the pseudo-random number generation means based on a comparison result between the cumulative entropy generated in the fourth step and a predetermined threshold;
And a sixth step of executing a key sharing process by a predetermined first key sharing algorithm when the randomness determination result is acceptable in the server.

(付記12)
前記第5のステップで生成された前記ランダム性判定結果を前記端末へ送信する第7のステップと、
前記端末が、前記サーバから送信された前記ランダム性判定結果を受信して、そのランダム性判定結果が合格を示しているか否かを判定する第8のステップと、
前記第8のステップで前記ランダム判定結果が不合格を示しているときに前記第2のステップによる前記公開鍵暗号化を実行させ、前記ランダム判定結果が合格を示しているときに所定の第2の鍵共有アルゴリズムによる鍵共有処理を実行する第9のステップと
を含むことを特徴とする付記11記載の鍵共有方法。
(Appendix 12)
A seventh step of transmitting the randomness determination result generated in the fifth step to the terminal;
An eighth step in which the terminal receives the randomness determination result transmitted from the server and determines whether the randomness determination result indicates pass;
When the random determination result indicates failure in the eighth step, the public key encryption in the second step is executed, and when the random determination result indicates success, a predetermined second The key sharing method according to claim 11, further comprising: a ninth step of executing a key sharing process based on the key sharing algorithm.

(付記13)
前記第5のステップは、前記累積エントロピーが前記閾値以上であるとき合格を示し、前記閾値未満のときは不合格を示す前記ランダム性判定結果を生成することを特徴とする付記11記載の鍵共有方法。
(Appendix 13)
The key sharing according to claim 11, wherein the fifth step generates the randomness determination result indicating pass when the cumulative entropy is greater than or equal to the threshold, and indicating failure when the cumulative entropy is less than the threshold. Method.

(付記14)
前記サーバが、前記端末の前記第1のステップにおいて前記状態更新用データの一部を抽出する抽出ルールを動的に設定する第10のステップを含むことを特徴とする付記11記載の鍵共有方法。
(Appendix 14)
The key sharing method according to claim 11, wherein the server includes a tenth step of dynamically setting an extraction rule for extracting a part of the state update data in the first step of the terminal. .

(付記15)
前記第1のステップは、外部乱数生成手段の出力の一部をエントロピーソースとして用いて前記状態更新用データの一部を抽出し、前記外部乱数生成手段の出力の残りを出力系列と加算して、前記第2のステップで使用する最終的な擬似乱数を生成することを特徴とする付記11記載の鍵共有方法。
(Appendix 15)
The first step uses a part of the output of the external random number generation unit as an entropy source to extract a part of the state update data, and adds the remainder of the output of the external random number generation unit to the output sequence. The key sharing method according to appendix 11, wherein a final pseudo-random number used in the second step is generated.

(付記16)
前記第5のステップは、受信して復号された前記抽出データのビットパタンの発生確率を、前記復号された抽出データにおけるビットパタンの頻度テーブルを用いて推定し、その推定結果で前記累積エントロピーを更新し、更新後の前記累積エントロピーを前記端末の前記擬似乱数発生手段の内部状態のランダム性の判定に利用することを特徴とする付記11記載の鍵共有方法。
(Appendix 16)
The fifth step estimates a probability of occurrence of a bit pattern of the extracted data received and decoded using a frequency table of bit patterns in the decoded extracted data, and the cumulative entropy is calculated based on the estimation result. 12. The key sharing method according to appendix 11, wherein the updated entropy is used for determining the randomness of the internal state of the pseudorandom number generating means of the terminal.

(付記17)
前記頻度テーブルは、前記サーバに接続された個々の前記端末毎に、又はすべての前記端末をまとめた頻度テーブルであることを特徴とする付記16記載の鍵共有方法。
(Appendix 17)
The key sharing method according to supplementary note 16, wherein the frequency table is a frequency table for each of the terminals connected to the server or for all the terminals.

(付記18)
前記第5のステップは、前記累積エントロピー更新後に前記頻度テーブルを前記復号された抽出データに基づいて更新することを特徴とする付記16又は17記載の鍵共有方法。
(Appendix 18)
The key sharing method according to supplementary note 16 or 17, wherein the fifth step updates the frequency table based on the decrypted extracted data after the cumulative entropy update.

(付記19)
前記第2のステップによる公開鍵暗号化と、前記第6のステップによる鍵共有処理とは同一の公開鍵パラメータを使用することを特徴とする付記11乃至18のうちいずれか一項記載の鍵共有方法。
(Appendix 19)
The key sharing according to any one of appendices 11 to 18, wherein the public key encryption in the second step and the key sharing process in the sixth step use the same public key parameters. Method.

(付記20)
前記第2のステップは、ElGamal暗号により公開鍵暗号化を行い、前記第6のステップ及び前記第8のステップは、Diffie-Hellman鍵共有アルゴリズムにより鍵共有処理を行うことを特徴とする付記12乃至18のうちいずれか一項記載の鍵共有方法。
(Appendix 20)
The second step includes public key encryption using ElGamal encryption, and the sixth step and the eighth step perform key sharing processing using a Diffie-Hellman key sharing algorithm. The key sharing method according to claim 18.

(付記21)
ホスト機器であるサーバに接続された1台以上の端末が有するコンピュータに鍵共有処理を行わせる鍵共有プログラムであって、
前記コンピュータに、
擬似乱数を生成すると共に、擬似乱数生成の内部状態を更新するための状態更新用データの一部を抽出する抽出ステップと、
前記抽出ステップで抽出された前記状態更新用データの一部である抽出データを、前記擬似乱数を使用して所定の公開鍵アルゴリズムに基づき公開鍵暗号化して前記サーバへ送信する公開鍵暗号化及び送信ステップと
を実行させることを特徴とする鍵共有プログラム。
(Appendix 21)
A key sharing program that causes a computer of one or more terminals connected to a server that is a host device to perform key sharing processing,
In the computer,
An extraction step of generating a pseudo-random number and extracting a part of the state update data for updating the internal state of the pseudo-random number generation;
Public key encryption, wherein the extracted data, which is a part of the state update data extracted in the extraction step, is public key encrypted based on a predetermined public key algorithm using the pseudo random number and transmitted to the server; A key sharing program characterized by causing the transmission step to be executed.

(付記22)
前記サーバが受信した前記公開鍵暗号化された前記抽出データを復号し、復号されて前記抽出データに基づいて生成して送信した前記擬似乱数の内部状態のランダム性判定結果を受信して、そのランダム性判定結果が合格を示しているか否かを判定する判定ステップと、
前記判定ステップで前記ランダム判定結果が不合格を示しているときに前記公開鍵暗号化及び送信ステップによる前記公開鍵暗号化を実行させ、前記ランダム判定結果が合格を示しているときに所定の鍵共有アルゴリズムによる鍵共有処理を実行する鍵共有ステップと
を更に実行させることを特徴とする付記21記載の鍵共有プログラム。
(Appendix 22)
Decrypting the public key encrypted extracted data received by the server, receiving the randomness determination result of the internal state of the pseudo-random number that is decrypted and generated and transmitted based on the extracted data; A determination step of determining whether or not the randomness determination result indicates success;
The public key encryption and the public key encryption by the transmission step are executed when the random determination result indicates failure in the determination step, and a predetermined key is selected when the random determination result indicates pass The key sharing program according to appendix 21, further comprising: a key sharing step for executing a key sharing process using a sharing algorithm.

(付記23)
1台以上の端末に接続されたホスト機器であるサーバが有するコンピュータに鍵共有処理を行わせる鍵共有プログラムであって、
前記コンピュータに、
前記端末が、擬似乱数を生成して、その擬似乱数の内部状態を更新するための状態更新用データの一部を所定の公開鍵アルゴリズムに基づき公開鍵暗号化して送信した公開鍵暗号を受信して、前記状態更新用データの一部である抽出データを復号する復号ステップと、
前記復号された抽出データに基づいて、前記端末の前記擬似乱数の現在の内部状態のランダム性を見積もるための数値である累積エントロピーを生成する累積エントロピー生成ステップと、
生成された前記累積エントロピーと所定の閾値との比較結果に基づいて前記擬似乱数の内部状態の前記ランダム性判定結果を生成するランダム性判定結果生成ステップと、
前記ランダム性判定結果が合格のときに所定の第1の鍵共有アルゴリズムによる鍵共有処理を実行する鍵共有ステップと
を実行させることを特徴とする鍵共有プログラム。
(Appendix 23)
A key sharing program for causing a computer of a server, which is a host device connected to one or more terminals, to perform key sharing processing,
In the computer,
The terminal generates a pseudo random number, receives a public key cipher transmitted by public key encrypting a part of state update data for updating the internal state of the pseudo random number based on a predetermined public key algorithm A decoding step of decoding the extracted data that is part of the state update data;
A cumulative entropy generating step of generating a cumulative entropy that is a numerical value for estimating the randomness of the current internal state of the pseudo-random number of the terminal based on the decoded extracted data;
A randomness determination result generation step for generating the randomness determination result of the internal state of the pseudorandom number based on a comparison result between the generated cumulative entropy and a predetermined threshold;
And a key sharing step for executing a key sharing process using a predetermined first key sharing algorithm when the randomness determination result is acceptable.

100 鍵共有方式
110、503 端末
112 鍵共有・公開鍵暗号化手段
113 擬似乱数生成手段
114 エントロピー情報(メモリ)
115 抽出手段
116 出力生成処理
117 加算器
120、502 サーバ
121 乱数生成手段
122、111 鍵共有モジュール
123 鍵共有・公開鍵復号手段
124 ランダム性評価手段
500 暗号通信システム
501 パラメータ生成手段
100 Key sharing method 110, 503 Terminal 112 Key sharing / public key encryption means 113 Pseudorandom number generation means 114 Entropy information (memory)
115 Extraction means 116 Output generation processing 117 Adder 120, 502 Server 121 Random number generation means 122, 111 Key sharing module 123 Key sharing / public key decryption means 124 Randomness evaluation means 500 Cryptographic communication system 501 Parameter generation means

Claims (10)

ホスト機器であるサーバと1台以上の端末との間の鍵共有方式であって、
前記端末は、
擬似乱数を生成すると共に、その内部状態を更新するための状態更新用データの一部を抽出する擬似乱数生成手段と、
前記擬似乱数生成手段により抽出された前記状態更新用データの一部である抽出データを、前記擬似乱数を使用して所定の公開鍵アルゴリズムに基づき公開鍵暗号化して前記サーバへ送信する公開鍵暗号化手段と
を有し、
前記サーバは、
前記端末から送信された公開鍵暗号を受信して前記抽出データを復号する公開鍵復号手段と、
前記復号された抽出データに基づいて、前記端末の前記擬似乱数生成手段の現在の内部状態のランダム性を見積もるための数値である累積エントロピーを生成し、前記累積エントロピーと所定の閾値との比較結果に基づいて前記擬似乱数生成手段の内部状態の前記ランダム性判定結果を生成するランダム性評価手段と、
前記ランダム性判定結果が合格を示しているときに所定の第1の鍵共有アルゴリズムによる鍵共有処理を実行する第1の鍵共有手段と
を有することを特徴とする鍵共有方式。
A key sharing method between a server that is a host device and one or more terminals,
The terminal
A pseudo-random number generating means for generating a pseudo-random number and extracting a part of the state update data for updating the internal state;
Public key cryptography that encrypts the extracted data that is a part of the state update data extracted by the pseudo random number generation means based on a predetermined public key algorithm using the pseudo random number and transmits it to the server And means for
The server
Public key decryption means for receiving the public key cipher transmitted from the terminal and decrypting the extracted data;
Based on the decoded extracted data, a cumulative entropy that is a numerical value for estimating the randomness of the current internal state of the pseudo-random number generating means of the terminal is generated, and a comparison result between the cumulative entropy and a predetermined threshold value Randomness evaluation means for generating the randomness determination result of the internal state of the pseudorandom number generation means based on
And a first key sharing unit that executes a key sharing process using a predetermined first key sharing algorithm when the randomness determination result indicates success.
前記ランダム性評価手段は、前記ランダム性判定結果を前記端末へ送信する機能を備え、
前記端末は、前記サーバから送信された前記ランダム性判定結果を受信し、そのランダム判定結果が不合格を示しているときに前記公開鍵暗号化手段による前記公開鍵暗号化を実行させ、前記ランダム判定結果が合格を示しているときに所定の第2の鍵共有アルゴリズムによる鍵共有処理を実行する第2の鍵共有手段を有することを特徴とする請求項1記載の鍵共有方式。
The randomness evaluation means has a function of transmitting the randomness determination result to the terminal,
The terminal receives the randomness determination result transmitted from the server, and executes the public key encryption by the public key encryption means when the random determination result indicates failure, and the random 2. The key sharing method according to claim 1, further comprising second key sharing means for executing key sharing processing by a predetermined second key sharing algorithm when the determination result indicates success.
前記サーバは、前記端末の前記擬似乱数生成手段に対して、前記状態更新用データの一部を抽出する抽出ルールを動的に設定する設定手段を有することを特徴とする請求項1記載の鍵共有方式。   2. The key according to claim 1, wherein the server has setting means for dynamically setting an extraction rule for extracting a part of the state update data for the pseudo-random number generation means of the terminal. Sharing method. 前記端末は、外部乱数生成手段を有し、
前記擬似乱数生成手段は、前記外部乱数生成手段の出力の一部を前記擬似乱数生成手段のエントロピーソースとして用い、前記外部乱数生成手段の出力の残りを出力系列と加算して、前記公開鍵暗号化手段へ供給する最終的な擬似乱数を生成することを特徴とする請求項1記載の鍵共有方式。
The terminal has external random number generation means;
The pseudo random number generation means uses a part of the output of the external random number generation means as an entropy source of the pseudo random number generation means, adds the remainder of the output of the external random number generation means to an output sequence, and 2. The key sharing method according to claim 1, wherein a final pseudo-random number to be supplied to the converting means is generated.
前記ランダム性評価手段は、前記復号された抽出データにおけるビットパタンの頻度テーブルを備え、受信して復号された前記抽出データのビットパタンの発生確率を、前記頻度テーブルを用いて推定し、その推定結果で前記累積エントロピーを更新し、更新後の前記累積エントロピーを前記端末の前記擬似乱数発生手段の内部状態のランダム性の判定に利用することを特徴とする請求項1記載の鍵共有方式。   The randomness evaluation means includes a frequency table of bit patterns in the decoded extracted data, estimates the occurrence probability of the bit pattern of the extracted data received and decoded using the frequency table, and estimates 2. The key sharing method according to claim 1, wherein the cumulative entropy is updated with the result, and the updated cumulative entropy is used to determine the randomness of the internal state of the pseudo random number generation means of the terminal. ホスト機器であるサーバと1台以上の端末との間の鍵共有方法であって、
前記端末内にて、擬似乱数生成手段により擬似乱数を生成させると共に、前記擬似乱数生成手段の内部状態を更新するための状態更新用データの一部を抽出する第1のステップと、
前記端末が、前記第1のステップで抽出された前記状態更新用データの一部である抽出データを、前記擬似乱数を使用して所定の公開鍵アルゴリズムに基づき公開鍵暗号化して前記サーバへ送信する第2のステップと、
前記サーバが、前記端末から送信された公開鍵暗号を受信して前記抽出データを復号する第3のステップと、
前記サーバ内にて、前記復号された抽出データに基づいて、前記端末の前記擬似乱数生成手段の現在の内部状態のランダム性を見積もるための数値である累積エントロピーを生成する第4のステップと、
前記第4のステップで生成された前記累積エントロピーと所定の閾値との比較結果に基づいて前記擬似乱数生成手段の内部状態の前記ランダム性判定結果を生成する第5のステップと、
前記サーバ内にて、前記ランダム性判定結果が合格のときに所定の第1の鍵共有アルゴリズムによる鍵共有処理を実行する第6のステップと
を含むことを特徴とする鍵共有方法。
A key sharing method between a server that is a host device and one or more terminals,
A first step of generating a pseudo-random number by the pseudo-random number generator in the terminal and extracting a part of the state update data for updating the internal state of the pseudo-random number generator;
The terminal transmits the extracted data, which is a part of the state update data extracted in the first step, to the server by public key encryption using the pseudo random number based on a predetermined public key algorithm. A second step of:
A third step in which the server receives the public key cipher transmitted from the terminal and decrypts the extracted data;
A fourth step of generating cumulative entropy, which is a numerical value for estimating the randomness of the current internal state of the pseudorandom number generation means of the terminal, based on the decoded extracted data in the server;
A fifth step of generating the randomness determination result of the internal state of the pseudo-random number generation means based on a comparison result between the cumulative entropy generated in the fourth step and a predetermined threshold;
And a sixth step of executing a key sharing process by a predetermined first key sharing algorithm when the randomness determination result is acceptable in the server.
前記第5のステップで生成された前記ランダム性判定結果を前記端末へ送信する第7のステップと、
前記端末が、前記サーバから送信された前記ランダム性判定結果を受信して、そのランダム性判定結果が合格を示しているか否かを判定する第8のステップと、
前記第8のステップで前記ランダム判定結果が不合格を示しているときに前記第2のステップによる前記公開鍵暗号化を実行させ、前記ランダム判定結果が合格を示しているときに所定の第2の鍵共有アルゴリズムによる鍵共有処理を実行する第9のステップと
を含むことを特徴とする請求項6記載の鍵共有方法。
A seventh step of transmitting the randomness determination result generated in the fifth step to the terminal;
An eighth step in which the terminal receives the randomness determination result transmitted from the server and determines whether the randomness determination result indicates pass;
When the random determination result indicates failure in the eighth step, the public key encryption in the second step is executed, and when the random determination result indicates success, a predetermined second The key sharing method according to claim 6, further comprising: a ninth step of executing a key sharing process according to the key sharing algorithm.
前記サーバが、前記端末の前記第1のステップにおいて前記状態更新用データの一部を抽出する抽出ルールを動的に設定する第10のステップを含むことを特徴とする請求項6記載の鍵共有方法。   The key sharing according to claim 6, wherein the server includes a tenth step of dynamically setting an extraction rule for extracting a part of the state update data in the first step of the terminal. Method. ホスト機器であるサーバに接続された1台以上の端末が有するコンピュータに鍵共有処理を行わせる鍵共有プログラムであって、
前記コンピュータに、
擬似乱数を生成すると共に、擬似乱数生成の内部状態を更新するための状態更新用データの一部を抽出する抽出ステップと、
前記抽出ステップで抽出された前記状態更新用データの一部である抽出データを、前記擬似乱数を使用して所定の公開鍵アルゴリズムに基づき公開鍵暗号化して前記サーバへ送信する公開鍵暗号化及び送信ステップと
を実行させることを特徴とする鍵共有プログラム。
A key sharing program that causes a computer of one or more terminals connected to a server that is a host device to perform key sharing processing,
In the computer,
An extraction step of generating a pseudo-random number and extracting a part of the state update data for updating the internal state of the pseudo-random number generation;
Public key encryption, wherein the extracted data, which is a part of the state update data extracted in the extraction step, is public key encrypted based on a predetermined public key algorithm using the pseudo random number and transmitted to the server; A key sharing program characterized by causing the transmission step to be executed.
前記サーバが受信した前記公開鍵暗号化された前記抽出データを復号し、復号されて前記抽出データに基づいて生成して送信した前記擬似乱数の内部状態のランダム性判定結果を受信して、そのランダム性判定結果が合格を示しているか否かを判定する判定ステップと、
前記判定ステップで前記ランダム判定結果が不合格を示しているときに前記公開鍵暗号化及び送信ステップによる前記公開鍵暗号化を実行させ、前記ランダム判定結果が合格を示しているときに所定の鍵共有アルゴリズムによる鍵共有処理を実行する鍵共有ステップと
を更に実行させることを特徴とする請求項9記載の鍵共有プログラム。
Decrypting the public key encrypted extracted data received by the server, receiving the randomness determination result of the internal state of the pseudo-random number that is decrypted and generated and transmitted based on the extracted data; A determination step of determining whether or not the randomness determination result indicates success;
The public key encryption and the public key encryption by the transmission step are executed when the random determination result indicates failure in the determination step, and a predetermined key is selected when the random determination result indicates pass The key sharing program according to claim 9, further comprising: a key sharing step for executing a key sharing process using a sharing algorithm.
JP2010056878A 2010-03-15 2010-03-15 Key sharing method, key sharing method, and key sharing program Active JP5440285B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010056878A JP5440285B2 (en) 2010-03-15 2010-03-15 Key sharing method, key sharing method, and key sharing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010056878A JP5440285B2 (en) 2010-03-15 2010-03-15 Key sharing method, key sharing method, and key sharing program

Publications (2)

Publication Number Publication Date
JP2011193180A true JP2011193180A (en) 2011-09-29
JP5440285B2 JP5440285B2 (en) 2014-03-12

Family

ID=44797664

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010056878A Active JP5440285B2 (en) 2010-03-15 2010-03-15 Key sharing method, key sharing method, and key sharing program

Country Status (1)

Country Link
JP (1) JP5440285B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018220952A1 (en) * 2017-06-02 2018-12-06 パナソニック株式会社 Randomness verification system and method of verifying randomness
CN113296737A (en) * 2020-07-30 2021-08-24 阿里巴巴集团控股有限公司 Random number generation system, method and device and cloud server

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005517998A (en) * 2002-02-21 2005-06-16 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Online randomness test to detect irregular patterns
JP2007187698A (en) * 2006-01-11 2007-07-26 Nec Corp Random number quality control device and control method
JP2008507768A (en) * 2004-07-23 2008-03-13 クゥアルコム・インコーポレイテッド Method and apparatus for random number generator
JP2009239737A (en) * 2008-03-27 2009-10-15 Nec Corp Key sharing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005517998A (en) * 2002-02-21 2005-06-16 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Online randomness test to detect irregular patterns
JP2008507768A (en) * 2004-07-23 2008-03-13 クゥアルコム・インコーポレイテッド Method and apparatus for random number generator
JP2007187698A (en) * 2006-01-11 2007-07-26 Nec Corp Random number quality control device and control method
JP2009239737A (en) * 2008-03-27 2009-10-15 Nec Corp Key sharing system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018220952A1 (en) * 2017-06-02 2018-12-06 パナソニック株式会社 Randomness verification system and method of verifying randomness
JP2018205502A (en) * 2017-06-02 2018-12-27 パナソニック株式会社 Randomness verification system and randomness verification method
JP2021177255A (en) * 2017-06-02 2021-11-11 パナソニック株式会社 Random number generation device and random number generation method
US11190354B2 (en) 2017-06-02 2021-11-30 Panasonic Corporation Randomness verification system and method of verifying randomness
JP7147024B2 (en) 2017-06-02 2022-10-04 パナソニックホールディングス株式会社 RANDOM NUMBER GENERATOR AND RANDOM NUMBER GENERATION METHOD
CN113296737A (en) * 2020-07-30 2021-08-24 阿里巴巴集团控股有限公司 Random number generation system, method and device and cloud server

Also Published As

Publication number Publication date
JP5440285B2 (en) 2014-03-12

Similar Documents

Publication Publication Date Title
US9882717B2 (en) System and method for generating a server-assisted strong password from a weak secret
US8762723B2 (en) Cryptographic security using fuzzy credentials for device and server communications
US10027654B2 (en) Method for authenticating a client device to a server using a secret element
JP7024563B2 (en) Confidential and mutually authenticated key exchange
US10015159B2 (en) Terminal authentication system, server device, and terminal authentication method
US9911010B2 (en) Secure field-programmable gate array (FPGA) architecture
JP6448668B2 (en) Password-based authentication
KR101685810B1 (en) System and method for key exchange based on authtication information
WO2017147503A1 (en) Techniques for confidential delivery of random data over a network
JP5506704B2 (en) Decryption system, key device, decryption method, and program
WO2016060735A1 (en) Password manipulation for secure account creation and verification through third-party servers
JP6950745B2 (en) Key exchange device, key exchange system, key exchange method, and key exchange program
CN111526007B (en) Random number generation method and system
CN109075965A (en) Use the mthods, systems and devices for the forward secrecy cryptographic technique that password code is verified
CN111211897A (en) Time control encryption security enhancement method based on random prediction model
Tahir et al. A scheme for the generation of strong icmetrics based session key pairs for secure embedded system applications
JP5440285B2 (en) Key sharing method, key sharing method, and key sharing program
WO2015094114A1 (en) Entity authentication in network
Mao et al. RSA-based handshake protocol in internet of things
JP5125682B2 (en) Key sharing system
Rosen Analysis of the porticor homomorphic key management protocol
Murdoch et al. A Forward-secure Efficient Two-factor Authentication Protocol
Abduljabbar et al. Towards efficient authentication scheme with biometric key management in cloud environment
Jinno et al. A study on construction and security of computer-aided security schemes
Dutta et al. Key variation technique based on piggybacking strategies under public key environments

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130827

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131027

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: 20131119

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131202

R150 Certificate of patent or registration of utility model

Ref document number: 5440285

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150