JP2022056275A - Cryptographic decryption system, cryptographic decryption method, and cryptographic decryption program - Google Patents

Cryptographic decryption system, cryptographic decryption method, and cryptographic decryption program Download PDF

Info

Publication number
JP2022056275A
JP2022056275A JP2020164201A JP2020164201A JP2022056275A JP 2022056275 A JP2022056275 A JP 2022056275A JP 2020164201 A JP2020164201 A JP 2020164201A JP 2020164201 A JP2020164201 A JP 2020164201A JP 2022056275 A JP2022056275 A JP 2022056275A
Authority
JP
Japan
Prior art keywords
decryption
encryption
generation unit
common key
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
JP2020164201A
Other languages
Japanese (ja)
Other versions
JP2022056275A5 (en
JP7406108B2 (en
Inventor
隆 岩野
Takashi Iwano
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.)
Toshiba Information Systems Japan Corp
Original Assignee
Toshiba Information Systems Japan 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 Toshiba Information Systems Japan Corp filed Critical Toshiba Information Systems Japan Corp
Priority to JP2020164201A priority Critical patent/JP7406108B2/en
Publication of JP2022056275A publication Critical patent/JP2022056275A/en
Publication of JP2022056275A5 publication Critical patent/JP2022056275A5/ja
Application granted granted Critical
Publication of JP7406108B2 publication Critical patent/JP7406108B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

To provide a cryptographic decryption system capable of eliminating key management while reducing computational load and cost.SOLUTION: The cryptographic decryption system includes: a cryptographic generator 100 having a cryptographic generation unit 101 that operates to generate ciphertext; and a decoder 200 having a decoding unit 201 that receives a ciphertext from the cryptographic generator 100 and decrypts the ciphertext into plaintext. The cryptographic generation unit 100 and the decoder 200 include a cryptographic side common key generator 102 and a decryption side common key generator 202 respectively for each generating an identical common key by exchanging notification information generated by a one-dimensional mapping operation. The cryptographic generation unit 101 performs cryptographic generation based on the common key, and the decoding unit performs a series of decryption processing based on the common key.SELECTED DRAWING: Figure 2

Description

この発明は、暗号復号システム、暗号復号方法、及び暗号復号用プログラムに関するものである。 The present invention relates to a cryptographic decryption system, a cryptographic decryption method, and a cryptographic decryption program.

一次元写像はカオス的性質があることから、特許文献1に示されるように乱数生成器や共通鍵暗号方法の提案がなされている。しかしながら、一次元写像は、乱数性能面では統計的指標が示されているが、セキュリティ面では安全性指標が現段階では示されておらず、安全性を確保する適切な鍵の実装方法や暗号手法が明確にされていない状況となっている。 Since the one-dimensional map has a chaotic property, a random number generator and a common key cryptographic method have been proposed as shown in Patent Document 1. However, in 1D mapping, statistical indicators are shown in terms of random number performance, but security indicators are not shown at this stage in terms of security, and appropriate key implementation methods and cryptography to ensure security are shown. The method has not been clarified.

特許文献2(特表2002-058638号公報)には、算術型圧縮暗号装置が開示されている。この算術型圧縮暗号装置は、シンボルの出現確率を予測するモデル器から出力されたシンボルの出現確率に基づいて上記シンボルの符号化を行う。更に、この算術型圧縮暗号装置は、入力したシンボルの出現確率に基づく動的な区分線形写像を暗号鍵で制御して出力符号を圧縮および暗号化する。この装置によれば、算術符号化による本来のデータ圧縮率を損なうことなく、高い安全性を得ることができ、また、単純な処理で効率良く出力符号を攪乱することができる。 Patent Document 2 (Japanese Patent Laid-Open No. 2002-08638) discloses an arithmetic compression encryption device. This arithmetic type compression encryption device encodes the symbol based on the appearance probability of the symbol output from the model device that predicts the appearance probability of the symbol. Further, this arithmetic type compression encryption device compresses and encrypts the output code by controlling a dynamic piecewise linear map based on the appearance probability of the input symbol with an encryption key. According to this device, high security can be obtained without impairing the original data compression rate due to arithmetic coding, and the output code can be efficiently disturbed by a simple process.

特許文献3には、高速演算が可能な新規なカオス的時系列を探索し、このカオス的時系列を用いてカオス発生装置やカオス暗号装置などを実現することが開示されている。このカオス発生装置は、変数nの増加に従って急激に増加する関数fi(n)[i=1~L、L≧1]に対し素数mi[i=1~L、L≧1]を設定する手段と、変数nの初期値n0に対してfi(n0)から素数miを法として剰余ri(n0)[i=1~L、L≧1]を導出する初期値演算手段と、fi(n+1)の計算では剰余ri(n)を利用して素数miを法として導出された剰余ri(n+1)を導出する反復演算手段と、変数nをn0から順次増大させながら前記剰余ri(n)[i=1~L、L≧1]を通して生成される一意の値を有するカオス的時系列Xnを出力するカオス信号出力手段から構成される。これによって、再現性のあるカオス的時系列信号を高速出力し、高安全性の暗号装置などを実現する。 Patent Document 3 discloses that a new chaotic time series capable of high-speed calculation is searched for, and a chaotic generator, a chaotic encryption device, or the like is realized by using this chaotic time series. This chaos generator is a means for setting a prime number mi [i = 1 to L, L ≧ 1] for a function fi (n) [i = 1 to L, L ≧ 1] that rapidly increases as the variable n increases. And the initial value calculation means for deriving the remainder ri (n0) [i = 1 to L, L ≧ 1] from fi (n0) with respect to the initial value n0 of the variable n, and fi (n + 1). In the calculation of, the iterative arithmetic means for deriving the remainder ri (n + 1) derived by the method of the prime number mi using the remainder ri (n), and the remainder ri (n) [i] while sequentially increasing the variable n from n0. = 1 to L, L ≧ 1], it is composed of a chaotic signal output means that outputs a chaotic time series Xn having a unique value. As a result, a reproducible chaotic time-series signal is output at high speed, and a highly secure encryption device or the like is realized.

特許文献4には、情報を暗号化して伝送するのに好適な暗号通信システムが開示されている。暗号通信システムの送信装置と受信装置とは、それぞれ秘密鍵と公開鍵を生成すると共に、現在時刻を基に乱数を生成し、生成された乱数を用いてセッション鍵を作り、RSA暗号の技術を用いてセッション鍵を共有する。共有されたセッション鍵は、乱数の暗号化にも用いられ、暗号化された乱数を復号したときに元の乱数と一致することをもって、セッション鍵が認証される。伝送すべき情報は、認証されたセッション鍵により、ベクトルストリーム暗号によって伝送され、通信の秘密を保つことができる。 Patent Document 4 discloses a cryptographic communication system suitable for encrypting and transmitting information. The transmitting device and the receiving device of the cryptographic communication system generate a private key and a public key, respectively, generate a random number based on the current time, create a session key using the generated random number, and use RSA encryption technology. Use to share the session key. The shared session key is also used for random number encryption, and the session key is authenticated by matching the original random number when the encrypted random number is decrypted. The information to be transmitted is transmitted by vector stream cipher with the authenticated session key, and the communication can be kept secret.

特許文献5には、暗号生成装置が開示されている。この装置は、鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、生成されたパラメータ列を用いてカオス演算を行ってカオスノイズを得るカオスノイズ発生手段と、カオスノイズを平文情報に対して適用する演算を行って暗号文を得る排他的論理和回路と、排他的論理和回路により得られる暗号文を上記カオスノイズ発生手段へフィードバックするフィードバック経路とを具備する。上記カオスノイズ発生手段においては、フィードバックされた暗号文に基づきカオス演算を行い、カオスノイズを得る。この構成によって、平文と暗号文の1ペアから、他の暗号文の解読を不可能にする。 Patent Document 5 discloses a cryptographic generator. This device has a parameter generation means that generates a parameter string used for chaos calculation based on key data, a chaos noise generation means that performs chaos calculation using the generated parameter sequence to obtain chaos noise, and a ciphertext of chaos noise. It includes an exclusive OR circuit that performs an operation applied to information to obtain a ciphertext, and a feedback path that feeds back the ciphertext obtained by the exclusive OR circuit to the chaos noise generating means. In the above-mentioned chaos noise generating means, chaos calculation is performed based on the fed-back ciphertext to obtain chaos noise. This configuration makes it impossible to decipher another ciphertext from one pair of plaintext and ciphertext.

上記の共通鍵暗号方式は、鍵の管理を必要とし通信相手がN対Nとした場合、N(N-1)個の鍵を必要とするため鍵の管理にコストがかかる。 The above-mentioned common key cryptosystem requires key management, and when the communication partner is N to N, N (N-1) keys are required, so that key management is costly.

特開2016-081274号公報Japanese Unexamined Patent Publication No. 2016-081274 再公表2002-058038号公報Republished 2002 No. 50838 Gazette 特開2005-17612号公報Japanese Unexamined Patent Publication No. 2005-17612 特開2006-67412号公報Japanese Unexamined Patent Publication No. 2006-67412 特開2008-197685号公報Japanese Unexamined Patent Publication No. 2008-197685

<Diffie-Hellman鍵共有方法>
従来、鍵共有の方法として、Diffie-Hellman鍵共有方法が知られている。この方法は、歴史上初めて鍵の配送問題を解決した鍵を共有するアルゴリズムとして知られている。図1は、Diffie-Hellman鍵共有方法のシーケンスである。
ここでは、暗号生成装置と復号装置が、秘密の共通鍵を共有する場合を説明する。暗号生成装置と復号装置は式(1)の合同算術式に関し、その生成元gと法(modulo)とする素数Pをお互いに連絡して合意する(S11)。

Figure 2022056275000002
上記合同算術の式を説明する。生成元gと、べき乗r、法Pと余りyからなり、例えば“g=2、r=11、P=11”と値を設定した場合、式(1)は、211≡2(mod 11)になり、211=2048を11で割ると余りが2となることを示し、11の法(modulo)をとった剰余は2となる。 <Diffie-Hellman key sharing method>
Conventionally, a Diffie-Hellman key sharing method is known as a key sharing method. This method is known as the key sharing algorithm that solves the key delivery problem for the first time in history. FIG. 1 is a sequence of Diffie-Hellman key sharing methods.
Here, a case where the encryption generator and the decryption device share a secret common key will be described. The cipher generator and the decryption device communicate with each other and agree on the joint arithmetic expression of the equation (1) with respect to the generator g and the prime number P as the modulo (S11).
Figure 2022056275000002
The formula of the above modal arithmetic will be described. It consists of a generator g, a power r, a method P, and a remainder y. For example, when the values are set as "g = 2, r = 11, P = 11", the equation (1) is 211≡2 (mod 11). When 211 = 2048 is divided by 11, the remainder is 2, and the remainder after the modulo 11 method is 2.

暗号生成装置は秘密情報として暗号生成装置のみが知る2以上P未満の数(自然数)Saを生成する(S12)。復号装置は秘密情報として復号装置のみが知る2以上P未満の数(自然数)Sbを生成する(S13)。暗号生成装置は復号装置と合意した生成元gと法となる素数Pを式(1)に設定する。暗号生成装置は秘密情報である数Saを式(1)のべき乗rに設定した次の式(2)による演算を実行し、余りyaを生成する。生成したyaは通知情報としてBに送信する(S14)。

Figure 2022056275000003
The encryption generator generates a number (natural number) Sa of 2 or more and less than P known only by the encryption generator as confidential information (S12). The decoding device generates a number (natural number) Sb of 2 or more and less than P known only by the decoding device as confidential information (S13). The encryption generator sets the generator g agreed with the decryptor and the prime number P to be the law in the equation (1). The encryption generator executes an operation according to the following equation (2) in which the number Sa, which is secret information, is set to the power r of the equation (1), and generates a remainder ya. The generated ya is transmitted to B as notification information (S14).
Figure 2022056275000003

一方、復号装置は秘密情報である数Sbを式(1)のべき乗rに設定して次の式(3)による演算を実行し、余りybを生成する。復号装置は、生成したybを通知情報として暗号生成装置へ送信する(S15)。

Figure 2022056275000004
On the other hand, the decoding device sets the number Sb, which is secret information, to the power r of the equation (1), executes the operation according to the following equation (3), and generates the remainder yb. The decryption device transmits the generated yb as notification information to the encryption generation device (S15).
Figure 2022056275000004

次に、暗号生成装置と復号装置が共有する秘密情報(共通鍵)を生成する。
暗号生成装置は復号装置から通知情報ybを受信し、通知情報ybを式(1)の生成元gに設定し、暗号生成装置(暗号生成装置のユーザなど)のみが知る数Saを式(1)のべき乗rに設定して余りCaを生成する(S16)。
処理を式で表すと次の式(4)となる。

Figure 2022056275000005
上記において、ybはgSbをPで法を取った値のためybにgSbを当てはめると、
Figure 2022056275000006
が成り立っている。 Next, the secret information (common key) shared by the encryption generator and the decryption device is generated.
The encryption generator receives the notification information yb from the decryption device, sets the notification information yb as the generation source g of the equation (1), and sets the number Sa known only by the encryption generator (user of the encryption generator, etc.) to the equation (1). ) Is set to the power r, and the remainder Ca is generated (S16).
When the processing is expressed by an equation, it becomes the following equation (4).
Figure 2022056275000005
In the above, since yb is a value obtained by formulating gSb by P, when gSb is applied to yb,
Figure 2022056275000006
Is established.

一方、復号側置は、暗号生成装置から通知情報yaを受信し、通知情報yaを式(2)の生成元gに設定し複号装置(復号装置のユーザなど)のみが知る数Sbをべき乗rに設定して余りCbを生成する(S17)。
処理を式で表すと次の式(6)となる。

Figure 2022056275000007
上記において、yaはgSaをPで法を取った値のためyaにgSaを当てはめると
Figure 2022056275000008
が成り立っている。 On the other hand, the decryption side receives the notification information ya from the encryption generator, sets the notification information ya as the generator g of the equation (2), and sets the number Sb known only to the compound device (user of the decryption device, etc.) to a power. It is set to r and the remainder Cb is generated (S17).
When the processing is expressed by an equation, it becomes the following equation (6).
Figure 2022056275000007
In the above, since ya is a value obtained by formulating gSa by P, when gSa is applied to ya,
Figure 2022056275000008
Is established.

暗号生成装置と復号装置で求めた余りCaとCbは次の式(8)の関係が成り立っており、暗号生成装置と復号装置はこの同じ数“Ca=Cb”をAとBで共有する共通鍵として使用することができる。

Figure 2022056275000009
The remainder Ca and Cb obtained by the cryptographic generator and the decryption device have the relationship of the following equation (8), and the cryptographic generator and the decryption device share the same number "Ca = Cb" between A and B. Can be used as a key.
Figure 2022056275000009

上記のDiffie-Hellman鍵共有方法によれば、鍵の管理を不要とすることができるものの、剰余を求める演算が必要であり演算負荷が大きくなり、演算コストが増大する問題点を有する。 According to the above-mentioned Diffie-Hellman key sharing method, although it is possible to eliminate the need for key management, there is a problem that an operation for obtaining a remainder is required, an operation load becomes large, and an operation cost increases.

本実施形態では、鍵の管理を不要とすることができ、また、演算負荷と演算コストの低減を図る。 In the present embodiment, it is possible to eliminate the need for key management, and to reduce the calculation load and the calculation cost.

本実施形態に係る暗号復号システムは、演算により暗号文を生成する暗号生成部を有する暗号生成装置と、前記暗号生成装置から暗号文を受けて該暗号文を復号し平文とする復号部を有する復号装置とを具備する暗号復号システムにおいて、前記暗号生成装置と前記復号装置には、一次元写像の演算によりそれぞれで生成した通知情報の交換を行って同一の共通鍵を生成する暗号側共通鍵生成部と復号側共通鍵生成部が備えられ、前記暗号生成部は前記共通鍵に基づく暗号生成を行い、前記復号部は前記共通鍵に基づく復号処理を行うことを特徴とする。 The encryption / decryption system according to the present embodiment has a cipher generator having a cipher generator that generates an cipher by calculation, and a decryption unit that receives an cipher from the cipher generator and decrypts the cipher into plain text. In a cryptographic decryption system including a decryption device, the cryptographic generation device and the decryption device exchange notification information generated by each of them by a one-dimensional mapping calculation to generate the same common key. It is characterized in that a generation unit and a decryption side common key generation unit are provided, the encryption generation unit performs encryption generation based on the common key, and the decryption unit performs decryption processing based on the common key.

Diffie-Hellman鍵共有方法のシーケンス図。Diffie-Hellman key sharing method sequence diagram. 本発明の第1の実施形態に係る暗号復号システムのブロック図。The block diagram of the encryption / decryption system which concerns on 1st Embodiment of this invention. 本発明の第1の実施形態に係る暗号生成装置を実現するコンピュータシステムの構成図Configuration diagram of a computer system that realizes the encryption generator according to the first embodiment of the present invention. ベルヌーイシフト写像のマップ。Map of Bernoulli shift map. 式(9)によるベルヌーイシフト写像のiを横軸とし、xi+1を縦軸とした時系列の図。The figure of the time series with the horizontal axis of i of the Bernoulli shift map by the equation (9) and the vertical axis of xi + 1. ある値による合同算術結果の数値を示す図。The figure which shows the numerical value of the joint arithmetic result by a certain value. 式(10)の5つからなる式によるベルヌーイシフト写像のマップ。A map of the Bernoulli shift map by the five equations of equation (10). 式(10)に初期値X0=1/11を与えて反復を行った値と式(9)の“g=5”を設定し、法として素数P=11を設定した値の遷移を示す図。The figure which shows the transition of the value which performed the repetition by giving the initial value X0 = 1/11 to the equation (10) and the value which set "g = 5" of the equation (9), and set the prime number P = 11 as a method. .. 整数演算化したベルヌーイシフト写像の式(11)と、合同算術の式(1)をC言語で記述したプログラムのソースコードを示す図。The figure which shows the source code of the program which described the formula (11) of the Bernoulli shift mapping which was made into an integer arithmetic, and the formula (1) of a joint arithmetic operation in C language. 図8のプログラムを実行した演算結果を示す図。The figure which shows the calculation result which executed the program of FIG. ベルヌーイシフト写像によるDiffie-Hellman鍵共有について、具体的に数値を入れて計算した例を示す図。The figure which shows the example which calculated by putting the numerical value concretely about the Diffie-Hellman key sharing by the Bernoulli shift mapping. 暗号側共通鍵生成部102と復号側共通鍵生成部202とが共通鍵生成するまでフローチャート。Flow chart until the cryptographic side common key generation unit 102 and the decryption side common key generation unit 202 generate a common key. 円において、初期値θ0=π/11に設定して位相をπ/11ずつ変化させた場合の円弧上の各点位置を示す図。The figure which shows the position of each point on an arc when the initial value θ0 = π / 11 is set and the phase is changed by π / 11 in a circle. 式(13)において、初期値θ0=π/11に設定して“2nθ0”を計算した結果を示す図。The figure which shows the result of having calculated "2nθ0" by setting the initial value θ0 = π / 11 in the formula (13). 「ガウスの消去法」を用いて4次の一変数多項式を求める例(前進消去)を示す図。The figure which shows the example (forward elimination) of finding the 4th-order one-variable polynomial using "Gauss-Jordan method". 「ガウスの消去法」を用いて4次の一変数多項式を求める例(後退代入)を示す図。The figure which shows the example (backward substitution) of finding the 4th-order one-variable polynomial using "Gauss-Jordan method". ガウスの消去法を用いて、Gを2から9まで振って各係数を求めた場合の、“sin2G2θ”と等価な2次以上の次数を持つ一変数多項式とそのマップを示す図。The figure which shows the one-variable polynomial which has the degree of degree 2 or more equivalent to "sin2G2θ" and the map when G is shaken from 2 to 9 and each coefficient is obtained by using the Gauss-Jordan method. 一変数多項式による鍵共有の計算方法のフローチャート。Flowchart of how to calculate key sharing by one-variable polynomial. 図16は、図15に示したフローチャートを実行して具体的な数値の動きを示した図。FIG. 16 is a diagram showing specific movements of numerical values by executing the flowchart shown in FIG. 式(24)において“P=19”とし、“n=7”まで計算した“Xi”の値を示す図。The figure which sets “P = 19” in the formula (24) and shows the value of “Xi” calculated up to “n = 7”. 本発明の第2の実施形態に係る暗号復号システムのブロック図。The block diagram of the encryption / decryption system which concerns on the 2nd Embodiment of this invention. 本発明の第2の実施形態に係る暗号復号システムのセッション鍵生成を示すフローチャート。The flowchart which shows the session key generation of the encryption / decryption system which concerns on 2nd Embodiment of this invention. 図18Aのフローチャートを実行した具体的な数値を示す図。The figure which shows the specific numerical value which executed the flowchart of FIG. 18A. 本発明の第2の実施形態の暗号生成部101と復号部201が、共通鍵CKとセッション鍵SKを使用して共通鍵暗号によるシステムを実現する場合の動作を示すフローチャート。The flowchart which shows the operation in the case where the encryption generation unit 101 and the decryption unit 201 of the second embodiment of the present invention realize a system by common key cryptography using a common key CK and a session key SK. 図20のフローチャートにて暗号化と復号に具体的な数値を入れた処理例を示す図。The figure which shows the processing example which put the concrete numerical value into the encryption and the decryption in the flowchart of FIG. 第2の実施形態の暗号復号システムの各部の処理内容を記述したブロック図。The block diagram which described the processing content of each part of the encryption / decryption system of 2nd Embodiment. 本発明の第3の実施形態に係る暗号復号システムのブロック図。The block diagram of the encryption / decryption system which concerns on 3rd Embodiment of this invention. 第2の実施形態における更新鍵生成の処理を示すフローチャート。The flowchart which shows the process of the update key generation in 2nd Embodiment. 図23の更新鍵生成の処理の要部を示すフローチャート。The flowchart which shows the main part of the process of the update key generation of FIG. 図23に示した処理をC言語プログラムで記述したものを示す図。The figure which shows the processing shown in FIG. 23 described in the C language program. 具体的な計算値を用いて本発明の第2の実施形態に係る更新鍵の生成過程における傾き係数Gの第1の変動パターン例を示す図。The figure which shows the 1st fluctuation pattern example of the inclination coefficient G in the generation process of the update key which concerns on 2nd Embodiment of this invention using a specific calculated value. 具体的な計算値を用いて第2の実施形態に係る更新鍵の生成過程における傾き係数Gの第2の変動パターン例を示す図。The figure which shows the 2nd fluctuation pattern example of the slope coefficient G in the generation process of the update key which concerns on 2nd Embodiment using the specific calculated value. 具体的な計算値を用いて第2の実施形態に係る更新鍵の生成過程を示す図。The figure which shows the generation process of the update key which concerns on 2nd Embodiment using the specific calculated value. 傾き係数Gを変動せず固定した場合の図8(a)の処理Aプログラムを具体的な数値を用いて実行した例を示す図。It is a figure which shows the example which executed the process A program of FIG. 8 (a) when the inclination coefficient G was fixed without changing, using concrete numerical values. 鍵を出力して暗号化を行い復号する暗号復号システムの動作を示すフローチャート。A flowchart showing the operation of an encryption / decryption system that outputs a key, encrypts it, and decrypts it. 図28の処理を具体的な数値を用いて行った場合の処理を示す図。It is a figure which shows the processing when the processing of FIG. 28 is performed using the specific numerical value. 一次不定方程式の整数解を求める手順を一例の数値を入れて示す図。The figure which shows the procedure for finding the integer solution of a linear indefinite equation with the numerical value of an example. 本発明の第4の実施形態に係る暗号復号システムのブロック図。The block diagram of the encryption / decryption system which concerns on 4th Embodiment of this invention. 共通鍵より生成した一変数多項式(28)とそのマップ図。A one-variable polynomial (28) generated from a common key and its map diagram. 式(28)を用いて鍵を更新する処理を示すフローチャート。The flowchart which shows the process of updating a key using the formula (28). 図32のフローチャートにより式(29)にて鍵更新を行った計算の例を示す図。The figure which shows the example of the calculation which performed the key update by the equation (29) by the flowchart of FIG. 一変数多項式の生成について別の手法を示す図。The figure which shows another method for the generation of a one-variable polynomial.

以下添付図面を参照して、本発明の第1乃至第3の実施形態に係る暗号復号システム、暗号復号方法、暗号復号用プログラムを説明する。各図において同一の構成要素には、同一の符号を付して重複する説明を省略する。図2は、暗号復号システムの第1の実施形態を示すブロック図である。第1の実施形態に係る暗号復号システムは、暗号生成装置100と復号装置200とを備えている。 Hereinafter, the encryption / decryption system, the encryption / decryption method, and the encryption / decryption program according to the first to third embodiments of the present invention will be described with reference to the accompanying drawings. In each figure, the same components are designated by the same reference numerals, and duplicate description will be omitted. FIG. 2 is a block diagram showing a first embodiment of a cryptographic decryption system. The encryption / decryption system according to the first embodiment includes a encryption generation device 100 and a decryption device 200.

暗号生成装置100には、演算により暗号文を生成する暗号生成部101と、暗号側共通鍵生成部102が備えられている。復号装置200には、上記暗号生成装置100から暗号文を受けて該暗号文を復号し平文とする復号部201と、復号側共通鍵生成部202が備えられている。暗号側共通鍵生成部102と復号側共通鍵生成部202とは、一次元写像の演算によりそれぞれで生成した通知情報の交換を行って同一の共通鍵を生成する。 The cipher generation device 100 includes a cipher generation unit 101 that generates a ciphertext by calculation, and a cipher side common key generation unit 102. The decryption device 200 includes a decryption unit 201 that receives a ciphertext from the encryption generation device 100 and decrypts the ciphertext into plaintext, and a decryption side common key generation unit 202. The cryptographic side common key generation unit 102 and the decryption side common key generation unit 202 exchange notification information generated by each of them by a one-dimensional mapping operation to generate the same common key.

図2Aは、本発明の第1の実施形態に係る暗号生成装置100を実現するコンピュータシステムの構成図である。図2Aは、本発明の第1の実施形態に係る復号装置200を実現するコンピュータシステムの構成図でもある。本発明の実施形態に係る暗号生成装置100と復号装置200は、例えば図2Aに示されるようなパーソナルコンピュータやワークステーション、その他のコンピュータシステムにより構成することができる。このコンピュータシステムは、CPU10が主メモリ11に記憶されている或いは主メモリ11に読み込んだプログラムやデータに基づき各部を制御し、必要な処理を実行することにより本実施形態や他の実施形態に係る暗号生成装置100や復号装置200として動作を行うものである。 FIG. 2A is a configuration diagram of a computer system that realizes the encryption generator 100 according to the first embodiment of the present invention. FIG. 2A is also a configuration diagram of a computer system that realizes the decoding device 200 according to the first embodiment of the present invention. The encryption generation device 100 and the decryption device 200 according to the embodiment of the present invention can be configured by, for example, a personal computer, a workstation, or another computer system as shown in FIG. 2A. This computer system relates to the present embodiment and other embodiments by controlling each part based on a program or data stored in the main memory 11 or read into the main memory 11 by the CPU 10 and executing necessary processing. It operates as a code generator 100 or a decryption device 200.

CPU10には、バス12を介して外部記憶インタフェース13、入力インタフェース14、表示インタフェース15、通信インタフェース16が接続されている。外部記憶インタフェース13には、状態変動検出用プログラム等のプログラムと必要なデータ等が記憶されている外部記憶装置23が接続されている。入力インタフェース14には、コマンドやデータを入力するための入力装置としてのキーボードなどの入力装置24とポインティングデバイスとしてのマウス22が接続されている。 An external storage interface 13, an input interface 14, a display interface 15, and a communication interface 16 are connected to the CPU 10 via a bus 12. A program such as a state change detection program and an external storage device 23 in which necessary data and the like are stored are connected to the external storage interface 13. An input device 24 such as a keyboard as an input device for inputting commands and data and a mouse 22 as a pointing device are connected to the input interface 14.

表示インタフェース15には、LEDやLCDなどの表示画面を有する表示装置25が接続されている。通信インタフェース16には、通知情報や暗号文を得るためのポート26-1、26-2、・・・、26-mが接続されている。本実施形態に係る暗号復号システムが、暗号生成装置100と復号装置200の2台が相互に通信をする場合には、ポート26-1、26-2、・・・、26-mを1つとすることができる。このコンピュータシステムには、他の構成が備えられていても良く、また、図2Aの構成は一例に過ぎない。このコンピュータシステムによる構成は、この第1の実施形態に限らず、第2の実施形態以降の各実施形態やその変形例としても構成に採用される。 A display device 25 having a display screen such as an LED or an LCD is connected to the display interface 15. Ports 26-1, 26-2, ..., 26-m for obtaining notification information and ciphertext are connected to the communication interface 16. In the encryption / decryption system according to the present embodiment, when the encryption generation device 100 and the decryption device 200 communicate with each other, one port 26-1, 26-2, ..., 26-m is used. can do. The computer system may be provided with other configurations, and the configuration of FIG. 2A is only an example. The configuration by this computer system is not limited to this first embodiment, but is also adopted in the configuration as each embodiment after the second embodiment and as a modification thereof.

一次元写像の一例としてベルヌーイシフト写像を挙げることができ、ベルヌーイシフト写像と先に説明した合同算術とは、同期することを突き止めた。
<ベルヌーイシフト写像について>
ベルヌーイシフト写像は、次の式(9)で定義される。

Figure 2022056275000010
As an example of a one-dimensional map, the Bernoulli shift map can be mentioned, and it was found that the Bernoulli shift map and the above-mentioned modal arithmetic are synchronized.
<About Bernoulli shift mapping>
The Bernoulli shift map is defined by the following equation (9).
Figure 2022056275000010

図3は、ベルヌーイシフト写像のマップである。図4は、上記式(9)によるベルヌーイシフト写像のiを横軸とし、xi+1を縦軸とした時系列である。
図4には、“初期値x0=0.234”とし、“x0<0.5”のため“x1=2x0”の演算を行いx1=0.468が得られ、“x1<0.5”のため“x2=2x1”の演算を行い“x2=0.936”が得られ、以降“x3,x4,…”と開区間(0,1)を反復し遷移してゆく時系列が示されている。
FIG. 3 is a map of the Bernoulli shift map. FIG. 4 is a time series in which i of the Bernoulli shift map according to the above equation (9) is the horizontal axis and xi + 1 is the vertical axis.
In FIG. 4, "initial value x0 = 0.234" is set, and since "x0 <0.5", the calculation of "x1 = 2x0" is performed to obtain x1 = 0.468, and "x1 <0.5". Therefore, the calculation of "x2 = 2x1" is performed to obtain "x2 = 0.936", and then "x3, x4, ..." And the open interval (0,1) are repeated and the transition is shown. ing.

<ベルヌーイシフト写像と合同算術との同期について>
ベルヌーイシフト写像と合同算術との同期について説明する。
式(9)の初期値x0に、“1/11”を設定したときの反復したxiの値、合同算術の式(1)に“g=2”を設定し、法として素数P=11を設定し、左辺の指数rを0~11に振ったときの余りの値を図5に示す。
式(1)について、指数rが大きくなるほど桁が莫大になるため合同算術では法(modulo)を取ることで、ある値Q同士を掛け算した結果の余りにもう一回ある値Qを掛け算して余りを出すと、元の掛け算(Q3)の余りに等しくなるといった性質があり、桁を抑えて演算できるため、このテクニックを使って計算している。
<Synchronization of Bernoulli shift mapping and modal arithmetic>
The synchronization between Bernoulli shift mapping and modal arithmetic is described.
The initial value x0 of the equation (9) is set to the repeated value of xi when "1/11" is set, and the arithmetic expression (1) is set to "g = 2", and the prime number P = 11 is set as the method. FIG. 5 shows the value of the remainder when the index r on the left side is set and swung from 0 to 11.
For equation (1), the larger the exponent r, the larger the digit becomes. Therefore, by taking the modulo method in the joint arithmetic, the result of multiplying a certain value Q is multiplied by another value Q, and the remainder is obtained. Is calculated using this technique because it has the property of being equal to the remainder of the original multiplication (Q3) and can be calculated with a reduced number of digits.

図5は、ベルヌーイシフト写像と合同算術の時系列比較を示す図である。図5(a)に示すベルヌーイシフト写像の計算結果Xiである分数における分子の数値と、図5(b)の合同算術による余りの数を比較すると、同じになっており同期していることが判る。
これは割り切れない数について考察すると、仮分数(2i/11)が例えばi=6のとき、64/11=55/11+9/11=5+9/11となり、帯分数は11の倍数として5が括り出され、真分数(9/11)の分子の9は11の割り算の余りとしても示されるからである。
以上から図5よりx10の時点で1/11とx0に戻りベルヌーイシフト写像は周期長10で繰り返されることが判る。
FIG. 5 is a diagram showing a time series comparison between the Bernoulli shift map and the joint arithmetic. Comparing the numerical value of the numerator in the fraction, which is the calculation result Xi of the Bernoulli shift map shown in FIG. 5 (a), with the number of remainders obtained by the joint arithmetic in FIG. 5 (b), it is found that they are the same and are synchronized. I understand.
Considering an indivisible number, when the improper fraction (2i / 11) is, for example, i = 6, 64/11 = 55/11 + 9/11 = 5 + 9/11, and the mixed fraction is a multiple of 11 and 5 is grouped out. This is because 9 in the numerator of the true fraction (9/11) is also shown as the remainder of the division of 11.
From the above, it can be seen from FIG. 5 that the Bernoulli shift mapping returns to 1/11 and x0 at the time of x10 and is repeated with a period length of 10.

次に、式(1)の生成元gが2以外の数値のベルヌーイシフト写像の式を考える。例としてg=5の場合を考え、これと同期するベルヌーイシフト写像は次の式(10)の5つからなる式になる。式(10)のマップを図6に示す。

Figure 2022056275000011
Next, consider an equation of a Bernoulli shift map in which the generating source g of the equation (1) is a numerical value other than 2. As an example, consider the case of g = 5, and the Bernoulli shift map synchronized with this is an equation consisting of the following equation (10). The map of equation (10) is shown in FIG.
Figure 2022056275000011

図7は、式(10)に初期値X0=1/11を与えて反復を行った値と式(1)の“g=5”を設定し、法として素数P=11を設定した値の遷移を示す図である。g=2の場合と同様に図7を参照すると、図7(a)に示される式(9)における反復のXiの分子と、図7(b)に示す合同算術による余りの数を比較すると、同じ値になっており同期していることが判る。これも、分数の演算では真分数の分子が合同算術の余りを指しているからであり、傾き係数がどのような値であっても、真分数の分子と合同算術の余りが同じ値となる。図7(a)では、X5=1/11となっており、初期値X0に戻るため周期長は5で繰り返されることが判る。 FIG. 7 shows a value obtained by giving an initial value X0 = 1/11 to the equation (10) and repeating it, and a value in which “g = 5” of the equation (1) is set and a prime number P = 11 is set as a method. It is a figure which shows the transition. Referring to FIG. 7 as in the case of g = 2, comparing the numerator of the repeat Xi in the formula (9) shown in FIG. 7 (a) with the number of remainders by the joint arithmetic shown in FIG. 7 (b). , It can be seen that they are the same value and are synchronized. This is also because in fraction operations, the numerator of the true fraction points to the remainder of the modal arithmetic, and no matter what the tilt coefficient is, the numerator of the true fraction and the remainder of the modal arithmetic have the same value. .. In FIG. 7A, X5 = 1/11, and it can be seen that the cycle length is repeated at 5 because it returns to the initial value X0.

上記を総合的に考察すると、ベルヌーイシフト写像の反復値の真分数の分子は合同算術の余りに相当し、合同算術の余りと同義であることが判る。以上から、生成元gのべき乗の法を取る合同算術は、ベルヌーイシフト写像に代替でき、合同算術のべき乗はベルヌーイシフト写像の反復回数に相当することが示された。 Considering the above comprehensively, it can be seen that the numerator of the true fraction of the iterated value of the Bernoulli shift map corresponds to the remainder of the modal arithmetic and is synonymous with the remainder of the modal arithmetic. From the above, it was shown that the modal arithmetic that takes the power method of the generator g can be replaced with the Bernoulli shift map, and the power of the joint arithmetic corresponds to the number of iterations of the Bernoulli shift map.

<ベルヌーイシフト写像の整数演算化>
次に、ベルヌーイシフト写像の整数演算化を考えてみる。
ここまでベルヌーイシフト写像は開区間(0,1)を扱っていたが、整数演算が行えるよう区間を素数P倍して開区間(0,P)にすることで、べき乗の合同算術の余りに相当するXiを得ることができる。
傾き係数を“G”とし、“1”から開区間(0,P)に拡大し整数演算化したベルヌーイシフト写像は各傾き係数Gの一次式をまとめて、次の式(11)のように簡潔に表すものとする。なお、本明細書においては、「G」について、「傾き係数G」、「生成元G」ガウスの消去法の場合のように単に「G」などとして同じ符号を用いるが、方程式に用いる「x」のように、ある数値であることを意味しており、特別な数値という意味ではないので、「傾き係数G」、「生成元G」、ガウスの消去法の場合などにおいて、区別せずに「G」を用いる。

Figure 2022056275000012
<Integer arithmetic of Bernoulli shift map>
Next, consider the integer arithmetic of the Bernoulli shift map.
Up to this point, the Bernoulli shift map has dealt with the open interval (0,1), but by multiplying the interval by a prime number P to make it an open interval (0, P) so that integer operations can be performed, it is equivalent to the remainder of the power arithmetic. Xi can be obtained.
The Bernoulli shift map, in which the slope coefficient is set to "G" and is expanded from "1" to the open section (0, P) and converted into an integer operation, the linear equations of each tilt coefficient G are put together as shown in the following equation (11). It shall be expressed briefly. In this specification, the same reference numerals are used for "G" simply as "G" as in the case of the "slope coefficient G" and the "generation source G" Gauss-Jordan method, but "x" used in the equation. It means that it is a certain numerical value, not a special numerical value, so it is not distinguished in the case of "slope coefficient G", "generation source G", Gauss-Jordan method, etc. Use "G".
Figure 2022056275000012

“Mk”の下付き添え字kは、式(11)の各一次式(一次式の数はG個)を選択する範囲毎の変数を示し、kは“0”(M0=0)から傾き係数G(Mk+1=G)未満までの自然数を表している。
例えば、P=1(拡大無し)とすれば、傾き係数G=2では式(9)が得られ、傾き係数G=5は式(10)が得られる。
The subscript k of "Mk" indicates a variable for each range for selecting each linear expression of the equation (11) (the number of linear expressions is G), and k is inclined from "0" (M0 = 0). It represents a natural number up to a coefficient G (Mk + 1 = G).
For example, if P = 1 (no enlargement), the equation (9) is obtained with the slope coefficient G = 2, and the equation (10) is obtained with the slope coefficient G = 5.

図8は、整数演算化したベルヌーイシフト写像の式(11)と、合同算術の式(1)をC言語で記述したプログラムのソースコードである。図8(a)は、ベルヌーイシフト写像のものであり、図8(b)は、合同算術のものである。
図9は、図8のプログラムを実行した演算結果である。図9(a)がベルヌーイシフト写像式(11)の傾き係数G=5、最大区間P=11、反復回数r=11に設定してX10まで反復を行ったXiの結果である。図9(b)は、合同算術式(1)の生成元g=5、法P=11として左辺のべき乗を“0,1,2,…,10”(r=11に設定)と変更してそれぞれの5のべき乗を法11で割った結果の余りを示すものである。図9(a)と図9(b)の2つとも、ベルヌーイシフト写像の反復回数“i”とべき乗の値が対応して同じ解となっていることが確認できる。
FIG. 8 is a source code of a program in which the formula (11) of the Bernoulli shift mapping converted into an integer arithmetic and the formula (1) of the joint arithmetic are described in C language. FIG. 8 (a) is of a Bernoulli shift map and FIG. 8 (b) is of a modal arithmetic operation.
FIG. 9 is a calculation result obtained by executing the program of FIG. FIG. 9A shows the result of Xi in which the slope coefficient G = 5, the maximum interval P = 11, the number of repetitions r = 11 are set in the Bernoulli shift mapping equation (11), and repetition is performed up to X10. In FIG. 9 (b), the power of the left side is changed to "0, 1, 2, ..., 10" (set to r = 11) with the generator g = 5 and the method P = 11 of the joint arithmetic expression (1). It shows the remainder of the result of dividing each power of 5 by the method 11. It can be confirmed that in both FIGS. 9 (a) and 9 (b), the number of iterations “i” of the Bernoulli shift map and the value of the power correspond to each other and have the same solution.

なお、図8(a)のベルヌーイシフト写像式(11)のプログラムでは、各区間の境界“P×Mk/G”や“P×Mk+1/G”が割り切れるように、区間(0,P)をさらにG倍することで最大区間(0,G×P)とし各区間の境界を整数のみで扱えるようにしている。具体例では、区間の境界値は式(11)から“0/5,11/5,22/5,33/5,44/5,55/5”となるが、割り切れないため5倍して“0,11,22,33,44,55”の値を境界値として求めておき、メモリ(配列interval[G])に保存する。Xiの値に対応する区間の検索処理(図8のプログラムでは降順に全件探索し見つかった時点で検索終了)により引き算する値“P×Mk”を選定している。 In the program of the Bernoulli shift mapping formula (11) of FIG. 8A, the section (0, P) is divided so that the boundary “P × Mk / G” or “P × Mk + 1 / G” of each section is divisible. Further, by multiplying by G, the maximum interval (0, G × P) is set, and the boundary of each interval can be handled only by an integer. In a specific example, the boundary value of the interval is "0/5, 11/5, 22/5, 33/5, 44, 5, 55/5" from the equation (11), but since it is not divisible, it is multiplied by 5. The value of "0,11,22,33,44,55" is obtained as a boundary value and stored in the memory (array interval [G]). The value "P × Mk" to be subtracted is selected by the search process of the section corresponding to the value of Xi (in the program of FIG. 8, all the cases are searched in descending order and the search ends when the search is completed).

このためプログラム中の演算結果をモニターに出力する“printf”文では、XiはGで割ってから出力し、関数の返り値もXiはGで割った値としている。
式(1)による合同算術の演算は、C言語で実装した図8(b)に示すソースコードのように、法11の余りに対してg=5を掛け算して法11の余りを求め、余りにg=5を掛け算する繰り返しで余りの算術を行う手法を使っている。
Therefore, in the "printf" statement that outputs the calculation result in the program to the monitor, Xi is divided by G and then output, and the return value of the function is also Xi divided by G.
The arithmetic operation by the equation (1) is performed by multiplying the remainder of the method 11 by g = 5 to obtain the remainder of the method 11, as shown in the source code shown in FIG. 8 (b) implemented in C language. The method of performing the remainder arithmetic by repeating multiplication by g = 5 is used.

<ベルヌーイシフト写像によるDiffie-Hellman鍵共有>
図10は、ベルヌーイシフト写像によるDiffie-Hellman鍵共有について、具体的に数値を入れて計算した例である。既に、式(1)の合同算術と式(11)の整数演算化したベルヌーイシフト写像は、同等の数列となることを示した。式(11)による図8(a)のベルヌーイシフト写像のプログラムにおける処理Aにより演算を行い、Diffie-Hellman鍵共有を行う。
図10に示す暗号側共通鍵生成部102と復号側共通鍵生成部202は、お互い事前に合意する式(11)の係数G、素数Pに、式(1)の生成元g=5と式(1)の法となる素数Pと同等の演算精度となる素数P=83を設定する。暗号側共通鍵生成部102では秘密情報である数Sa=8を設定し、復号側共通鍵生成部202では、秘密情報である数Sb=17を設定する。
<Diffie-Hellman key sharing by Bernoulli shift mapping>
FIG. 10 is an example of Diffie-Hellman key sharing by Bernoulli shift mapping, which is calculated by specifically inputting numerical values. It has already been shown that the modular arithmetic of Eq. (1) and the Bernoulli shift mapping of Eq. (11) converted into integers are equivalent sequences. The operation is performed by the process A in the Bernoulli shift mapping program of FIG. 8A according to the equation (11), and the Diffie-Hellman key sharing is performed.
The cryptographic side common key generation unit 102 and the decryption side common key generation unit 202 shown in FIG. 10 have the coefficient G and the prime number P of the equation (11) that are mutually agreed in advance, and the generator g = 5 of the equation (1). Set the prime number P = 83 having the same calculation accuracy as the prime number P which is the method of (1). The cryptographic side common key generation unit 102 sets the number Sa = 8, which is secret information, and the decryption side common key generation unit 202 sets the number Sb = 17, which is secret information.

図10の左側が暗号側共通鍵生成部102の処理となり、暗号側共通鍵生成部102は式(11)に式(1)の生成元gに相当する傾き係数G=5と式(1)の法となる素数Pと同等の演算精度となる素数P=83とを設定する(S21)。暗号側共通鍵生成部102は暗号側共通鍵生成部102のみが知る秘密情報である数Sa=8を写像の反復回数rに設定し、初期値X0=1に設定して写像の反復を8回行った結果X8=27となっている(S22)。暗号側共通鍵生成部102が求めたX8=27を復号側共通鍵生成部202へ通知情報として送信する(S23)。 The left side of FIG. 10 is the processing of the cryptographic side common key generation unit 102, and the cryptographic side common key generation unit 102 has an inclination coefficient G = 5 corresponding to the generation source g of the equation (1) and the equation (1) in the equation (11). (S21), a prime number P = 83 having a calculation accuracy equivalent to that of the prime number P according to the above method is set. The cryptographic side common key generation unit 102 sets the number Sa = 8, which is secret information known only to the cryptographic side common key generation unit 102, to the number of iterations r of the mapping, sets the initial value X0 = 1, and repeats the mapping to 8. As a result of the rounds, X8 = 27 (S22). X8 = 27 obtained by the cryptographic side common key generation unit 102 is transmitted to the decryption side common key generation unit 202 as notification information (S23).

一方、図10の右側が復号側共通鍵生成部202の処理となり、復号側共通鍵生成部202は式(11)に式(1)の生成元gに相当する傾き係数G=5と演算精度となる素数P=83を設定する(S24)。復号側共通鍵生成部202は、復号側共通鍵生成部202のみが知る秘密情報である数Sb=17を写像の反復回数rに設定し、初期値X0=1に設定して写像の反復を17回行った結果“X17=76”を得ている(S25)。復号側共通鍵生成部202が求めた“X17=76”を暗号側共通鍵生成部102へ通知情報として送信する(S26)。 On the other hand, the right side of FIG. 10 is the processing of the decryption-side common key generation unit 202, and the decoding-side common key generation unit 202 has a slope coefficient G = 5 corresponding to the generation source g of the equation (1) and calculation accuracy in the equation (11). The prime number P = 83 is set (S24). The decoding side common key generation unit 202 sets the number Sb = 17, which is secret information known only to the decoding side common key generation unit 202, to the number of iterations r of the mapping, and sets the initial value X0 = 1 to repeat the mapping. As a result of performing 17 times, "X17 = 76" is obtained (S25). The "X17 = 76" obtained by the decryption-side common key generation unit 202 is transmitted to the encryption-side common key generation unit 102 as notification information (S26).

次に、暗号側共通鍵生成部102と復号側共通鍵生成部202がお互いに送受信した通知情報から暗号側共通鍵生成部102と復号側共通鍵生成部202で共有する秘密情報を生成する以下の処理を実行する。
暗号側共通鍵生成部102は、復号側共通鍵生成部202から受信した“76”を式(11)に傾き係数G=76として設定する(S27)。演算精度となる素数P=83を設定して暗号側共通鍵生成部102は暗号側共通鍵生成部102のみが知る秘密情報である数Sa=8を写像の反復回数rに設定し、初期値X0=1に設定して写像の反復を行う(S27)。結果としてX8=36が得られる(S27A)。
Next, the secret information shared by the encryption side common key generation unit 102 and the decryption side common key generation unit 202 is generated from the notification information sent and received by the encryption side common key generation unit 102 and the decryption side common key generation unit 202. Executes the processing of.
The cryptographic side common key generation unit 102 sets “76” received from the decryption side common key generation unit 202 in the equation (11) as a slope coefficient G = 76 (S27). The prime number P = 83, which is the calculation accuracy, is set, and the cryptographic side common key generation unit 102 sets the number Sa = 8, which is secret information known only to the cryptographic side common key generation unit 102, to the number of iterations r of the mapping, and the initial value. The mapping is repeated by setting X0 = 1 (S27). As a result, X8 = 36 is obtained (S27A).

一方、復号側共通鍵生成部202は暗号側共通鍵生成部102から受信した“27”を式(4)に傾き係数G=27として設定する(S28)。演算精度となる素数P=83を設定して復号側共通鍵生成部202は復号側共通鍵生成部202のみが知る秘密情報Sb=17を写像の反復回数rに設定し、初期値X0=1に設定して写像の反復を行う(S28)。結果としてX17=36が得られる(S28A)。暗号側共通鍵生成部102と復号側共通鍵生成部202は、お互い共通の秘密情報“36”を直接相手に送信することなくこれを共有することができる。これを暗号側共通鍵生成部102と復号側共通鍵生成部202の共通鍵として共通鍵暗号方式で使用する。
図10Aは、以上の暗号側共通鍵生成部102と復号側共通鍵生成部202とが共通鍵生成するまでフローチャートである。第1行目のブロックでは、それぞれの秘密情報の生成と、合意した2つの数値(ここでは、GとP)の保持が行われている。第2行目のブロックでは、暗号側共通鍵生成部102と復号側共通鍵生成部202の夫々でベルヌーイシフト写像による通知情報の生成が行われ、この通知情報の交換が行われている。第3行目のブロックでは、交換した通知情報とそれぞれが秘密にしている秘密情報を用いてベルヌーイシフト写像による共通鍵の生成が行われる。
以上がDiffie-Hellman鍵共有方法をベルヌーイシフト写像により行った例であり、除算剰余の演算が引き算で済むようになり、演算コストの削減が期待できる。
以上がDiffie-Hellman鍵共有方法をベルヌーイシフト写像により行う場合には、ハードウエアにより構成することができ、ハードウエアの構成回路は、除算剰余の演算回路が引き算回路で済むことになり、ハードウエアの構成を簡素化し回路の簡素化を図ることが可能である。
On the other hand, the decryption side common key generation unit 202 sets “27” received from the encryption side common key generation unit 102 in the equation (4) as the slope coefficient G = 27 (S28). The prime number P = 83, which is the calculation accuracy, is set, and the decoding side common key generation unit 202 sets the secret information Sb = 17, which is known only to the decoding side common key generation unit 202, to the number of iterations r of the mapping, and the initial value X0 = 1. It is set to and the mapping is repeated (S28). As a result, X17 = 36 is obtained (S28A). The cryptographic side common key generation unit 102 and the decryption side common key generation unit 202 can share the secret information "36" common to each other without directly transmitting it to the other party. This is used in the common key cryptosystem as the common key of the encryption side common key generation unit 102 and the decryption side common key generation unit 202.
FIG. 10A is a flowchart until the cryptographic side common key generation unit 102 and the decryption side common key generation unit 202 generate a common key. In the block of the first line, each confidential information is generated and two agreed numerical values (here, G and P) are retained. In the block of the second line, the encryption side common key generation unit 102 and the decryption side common key generation unit 202 each generate notification information by Bernoulli shift mapping, and the notification information is exchanged. In the block of the third line, the common key is generated by the Bernoulli shift mapping using the exchanged notification information and the secret information kept secret by each.
The above is an example of performing the Diffie-Hellman key sharing method by Bernoulli shift mapping, and the calculation of the division remainder can be completed by subtraction, and the calculation cost can be expected to be reduced.
The above is the case where the Diffie-Hellman key sharing method is performed by Bernoulli shift mapping, it can be configured by hardware, and the configuration circuit of the hardware is such that the arithmetic circuit of the division remainder is a subtraction circuit, and the hardware. It is possible to simplify the configuration of the circuit and simplify the circuit.

上記暗号側共通鍵生成部102と上記復号側共通鍵生成部202とは、それぞれで異なる固有の秘密情報を保持すると共に2数値(本実施形態では、傾き係数Gと素数P)を同じく保持し、それぞれが上記秘密情報と上記2数値を用いて一次元写像の演算を行って通知情報を生成する。
また、上記暗号側共通鍵生成部102と上記復号側共通鍵生成部202とは、通知情報を受け取ると、この通知情報と上記秘密情報を用いて一次元写像の演算により共通鍵を生成する。
The cryptographic side common key generation unit 102 and the decryption side common key generation unit 202 each hold different unique secret information and also hold two numerical values (in this embodiment, a slope coefficient G and a prime number P). , Each performs a one-dimensional mapping calculation using the above secret information and the above two numerical values to generate notification information.
Further, when the encryption side common key generation unit 102 and the decryption side common key generation unit 202 receive the notification information, the encryption side common key generation unit 102 and the decryption side common key generation unit 202 generate a common key by a one-dimensional mapping calculation using the notification information and the secret information.

Diffie-Hellman鍵共有方法の安全性について、式(1)においてPが大きな素数のとき、「gとrとP」から余りyを求めることは簡単だが「gとyとP」からgを底としたyの対数rを求めることが非常に難しいとされ、これが離散対数問題と称されている。現在の所、離散対数問題を効率的に解く手法は見つかっておらず、安全性の根拠とされている。
現在使用されている素数Pのビット桁について、RFC3526(More Modular Exponential (MODP) Diffie-Hellman groups for Internet Key Exchange (IKE)、2003年5月)で公開されている生成元gと素数Pの組が存在しており、素数Pの桁は1536ビット(1536ビットMODPグループ)以上が用いられており、2048ビット以上を用いることが推奨されている。
Regarding the security of the Diffie-Hellman key sharing method, when P is a large prime number in equation (1), it is easy to find the remainder y from "g, r, and P", but the bottom is g from "g, y, and P." It is said that it is very difficult to obtain the logarithm r of y, which is called the discrete logarithm problem. At present, no method for efficiently solving the discrete logarithm problem has been found, and it is regarded as the basis of safety.
Regarding the bit digits of the prime number P currently used, the generator g and the prime number P set published in RFC3526 (More Modular Exponential (MODEP) Diffie-Hellman groups for Internet Key Exchange (IKE), May 2003). Is present, and the digit of the prime number P is 1536 bits (1536 bit MODP group) or more, and it is recommended to use 2048 bits or more.

<一変数多項式の一次元写像による鍵共有方法>
上記実施形態では、共通鍵生成の一次元写像をベルヌーイシフト写像によって行うことを示したが、この一次元写像は、一変数多項式の一次元写像であっても可能である。
式(11)のベルヌーイシフト写像では“x”の項の、べき乗数が“1”となる一次式となっている。ロジスティック写像のように、2次以上の次数を持つ多項式を一次元写像とした鍵共有を行う例を新たに示す。
ロジスティック写像は、次の漸化式の式(12)になり、Xiのべき乗数が2次となる。

Figure 2022056275000013
特開2019-168963「乱数生成装置」にて示されるように、式(12)は以下の式(13)に変換できる。 <Key sharing method by one-dimensional mapping of one-variable polynomial>
In the above embodiment, it has been shown that the one-dimensional mapping of common key generation is performed by the Bernoulli shift mapping, but this one-dimensional mapping can be a one-dimensional mapping of a one-variable polynomial.
In the Bernoulli shift map of equation (11), it is a linear equation in which the power multiplier of the term "x" is "1". A new example of key sharing using a polynomial having a second or higher degree as a one-dimensional map, such as a logistic map, is shown.
The logistic map becomes the following recurrence formula (12), and the power of Xi is quadratic.
Figure 2022056275000013
As shown in JP-A-2019-168963 "Random number generator", the equation (12) can be converted into the following equation (13).

ロジスティック写像の式(12)の初期値X0を三角関数sin2θの場合として代入する。

Figure 2022056275000014
X1は
Figure 2022056275000015
となるため、
Figure 2022056275000016

より
Figure 2022056275000017
三角関数の加法定理より
Figure 2022056275000018

のため、最終的に
Figure 2022056275000019

が得られる。同様に求めたX1を式(12)に代入することでX2は
Figure 2022056275000020
が得られ、X3,X4,…と繰り返していくことで写像の回数を示す添え字を“n”とすると
Figure 2022056275000021
が導かれ、“n”回目の写像の値が位相 “2nθ” により一意にわかるロジスティック写像の式(13)に変形できる。 The initial value X0 of the logistic map equation (12) is substituted as the case of the trigonometric function sin2θ.
Figure 2022056275000014
X1 is
Figure 2022056275000015
Because it becomes
Figure 2022056275000016

Than
Figure 2022056275000017
From the addition theorem of trigonometric functions
Figure 2022056275000018

Because of
Figure 2022056275000019

Is obtained. By substituting the similarly obtained X1 into the equation (12), X2 can be obtained.
Figure 2022056275000020
Is obtained, and if the subscript indicating the number of mappings is set to "n" by repeating X3, X4, ...
Figure 2022056275000021
Is derived, and the value of the "n" th map can be transformed into the logistic map equation (13) in which the value of the map is uniquely known by the phase "2nθ".

式(13)の位相“2nθ”に着目する。図11は、位相をπ/11ずつ変化させた場合の円弧上の各点位置を示す図であり、π/2を中心として左右に対称な位置の円弧上の点の値は同一の値をとる。ここで、例えば初期値θ0=π/11に設定して“2nθ0”を計算すると、図12のように“n=10”のとき位相が元のθ0=π/11に戻ることが判る。これは初等整数論における次の式(14)により示されるフェルマーの小定理から、素数P=11、生成元G=2とする、べき乗“n=P-1”、つまりn=10で位相θがπ/11に戻る。この現象は、上記で合同算術とベルヌーイシフト写像が同期する機構を示したことからも理解できる。

Figure 2022056275000022
Focus on the phase "2nθ" in equation (13). FIG. 11 is a diagram showing the positions of each point on the arc when the phase is changed by π / 11, and the values of the points on the arc at positions symmetrical to the left and right with respect to π / 2 have the same value. Take. Here, for example, if the initial value θ0 = π / 11 is set and “2nθ0” is calculated, it can be seen that the phase returns to the original θ0 = π / 11 when “n = 10” as shown in FIG. From Fermat's little theorem expressed by the following equation (14) in elementary number theory, this is a power "n = P-1" with a prime number P = 11 and a generator G = 2, that is, phase θ at n = 10. Returns to π / 11. This phenomenon can also be understood from the above-mentioned mechanism showing the mechanism of synchronization between the joint arithmetic and the Bernoulli shift map.
Figure 2022056275000022

この位相の周期性から式(12)と式(13)のロジスティック写像は、素数Pを初期値θ0=π/Pに設定して写像を“P-1”回行うと必ず“π/P”に戻ることが判り、生成元Gとして“2”の他の、任意の生成元Gを与えた場合も、写像を“P-1”回反復すると、“π/P”に戻ることが推定される。 Due to the periodicity of this phase, the logistic mapping of equations (12) and (13) is always "π / P" when the prime number P is set to the initial value θ0 = π / P and the mapping is performed “P-1” times. It is estimated that even if any other source G of "2" is given as the source G, it will return to "π / P" when the mapping is repeated "P-1" times. To.

次に式(14)の生成元Gに任意の正の整数を与えた“Xn=sin2Gnθ”と等価になる式(12)のような変数“X”を一つだけ使用する一変数多項式を作ることを考える。
例としてG=4を与え、“Xn=sin24nθ”と同等となる一変数多項式を求める。ここで“n=1とした場合、
“X1=sin24θ”となる解X1を考える。式(5)のロジスティック写像の値域となる区間は[0,1]である。このため“sin24θ”が“0から1”の間つまり三角関数sinの位相4θが“0からπ/2”の間で解X1が“0”か“1”となる位相θを考えると、
(1) θ=0π/8のとき 4θ=0のため、X1=sin24θ=0
(2) θ=1π/8のとき 4θ=4π/8=π/2のため、X1=sin24θ=1
(3) θ=2π/8のとき 4θ=8π/8=πのため、X1=sin24θ=0
(4)θ=3π/8のとき 4θ=12π/8=3π/2のため、X1=sin24θ=1
(5)θ=4π/8のとき 4θ=16π/8=2πのため、X1=sin24θ=0
になる極大値が2つと極小値が1つある多項式となることが判り、“Xn=sin24nθ”と等価な一変数多項式は以下の4次の式(15)のように構成されることが予想できる。

Figure 2022056275000023
Next, create a one-variable polynomial using only one variable "X" as in equation (12), which is equivalent to "Xn = sin2Gnθ" given an arbitrary positive integer to the generator G of equation (14). Think about it.
G = 4 is given as an example, and a one-variable polynomial equivalent to “Xn = sin24nθ” is obtained. Here, when "n = 1"
Consider a solution X1 such that "X1 = sin24θ". The range of the logistic map of equation (5) is [0,1]. Therefore, considering the phase θ in which the solution X1 is “0” or “1” while “sin24θ” is between “0 and 1”, that is, the phase 4θ of the trigonometric function sin is between “0 and π / 2”.
(1) When θ = 0π / 8 Since 4θ = 0, X1 = sin24θ = 0.
(2) When θ = 1π / 8 Since 4θ = 4π / 8 = π / 2, X1 = sin24θ = 1
(3) When θ = 2π / 8 Since 4θ = 8π / 8 = π, X1 = sin24θ = 0.
(4) When θ = 3π / 8 Since 4θ = 12π / 8 = 3π / 2, X1 = sin24θ = 1
(5) When θ = 4π / 8 Since 4θ = 16π / 8 = 2π, X1 = sin24θ = 0.
It is found that it is a polynomial with two maximum values and one minimum value, and it is expected that a one-variable polynomial equivalent to "Xn = sin24nθ" is constructed by the following fourth-order equation (15). can.
Figure 2022056275000023

次に以上の4次の式から係数“a,b,c,d,e”を求めることを考える。
上記(1)の情報から“x=0”のときは“f(0)=0”となるため、式(15)の係数eは“e=0”になることが判る。
残りの係数“a,b,c,d”は上記“(2)、(3)、(4)、(5)”の情報から4次の次数を持つ次の(16)に示す連立方程式を立てることで求められる。

Figure 2022056275000024



Next, consider finding the coefficients “a, b, c, d, e” from the above quaternary equations.
From the information in (1) above, when "x = 0", "f (0) = 0", so it can be seen that the coefficient e in the equation (15) is "e = 0".
The remaining coefficients "a, b, c, d" are the simultaneous equations shown in the following (16) having a fourth degree from the information of "(2), (3), (4), (5)" above. It is required by standing up.
Figure 2022056275000024



上記式(16)の連立方程式の項“x0,x1,x2,x3”に対しては各(2)、(3)、(4)、(5)からsin2θの値を次のように代入することで、“a,b,c,d”からなる連立方程式が4つ得られる。

Figure 2022056275000025

得られた4つの連立方程式から係数“a,b,c,d”を導出する手法を紹介する。
式(16)は行列を使って表すと次の行列式(18)になる。
Figure 2022056275000026
Substitute the values of sin2θ from (2), (3), (4), and (5) for the terms "x0, x1, x2, x3" of the simultaneous equations in the above equation (16) as follows. As a result, four simultaneous equations consisting of "a, b, c, d" can be obtained.
Figure 2022056275000025

We will introduce a method for deriving the coefficients "a, b, c, d" from the four simultaneous equations obtained.
The determinant (16) becomes the following determinant (18) when expressed using a matrix.
Figure 2022056275000026

ここで式(18)の“4×4”の変数xの行列部分を“X”、係数(a,b,c,d)を“A”、(0,1,0,1)を“E”とおくと、

Figure 2022056275000027

となり逆行列X-1を用意して式(19)の両辺にかけると、
Figure 2022056275000028

となり、逆行列X-1より係数Aを求めることができる。図13Aと図13Bは、「ガウスの消去法」を用いて4次の一変数多項式を求める例を示す図である。行列を用いた連立方程式の解法として「クラメルの公式」や「LU分解」が知られているが、ここでは図13Aと図13Bに示すように、「ガウスの消去法」を用いて4次の一変数多項式を求める。式(18)の変数“x0,x1,x2,x3”に上記の(数24)を代入したものが図13Aの最初の行列式となる。この4×4の行列式の位置を指定できるよう各行にC0~C3を、各列にR0~R3を振ってある。 Here, the matrix part of the variable x of the "4 × 4" in the equation (18) is "X", the coefficients (a, b, c, d) are "A", and (0,1,0,1) is "E". If you say,
Figure 2022056275000027

When the inverse matrix X-1 is prepared and applied to both sides of equation (19),
Figure 2022056275000028

Therefore, the coefficient A can be obtained from the inverse matrix X-1. 13A and 13B are diagrams showing an example of finding a fourth-order one-variable polynomial using the "Gauss-Jordan method". "Cramer's rule" and "LU decomposition" are known as methods for solving simultaneous equations using matrices, but here, as shown in FIGS. 13A and 13B, the fourth-order method is used using the "Gauss-Jordan method". Find a one-variable polynomial. Substituting the above (Equation 24) into the variables "x0, x1, x2, x3" in equation (18) is the first determinant in FIG. 13A. C0 to C3 are assigned to each row and R0 to R3 are assigned to each column so that the position of this 4 × 4 determinant can be specified.

ガウスの消去法では「前進消去」と「後退代入」の2つの処理からなり、「(1)前進消去」では図13Aの最初の行列に示すようにC0R0~C3R3上の左斜めの点線で囲った対角線上を“1”にして、その対角線左下の3角の点線部分で囲われた箇所を“0”に変換する。
計算過程の詳細は図13Aに記述されているが、行C単位に演算を行う。最初はC0R0を1にするため、行C0全体をC0R0で割り算する処理から開始し、得られた行C0=1に対し列R0の行C1,C2,C3の値を掛け算してそれぞれ得られる行C0で引き算を行うことで列R0の行C1,C2,C3の値を0にする。以降は同様に対角線上の値を1にしてゆき、各列Rを0にする計算を行うことで、最終的に図13Aの式Aが得られる。
The Gauss-Jordan method consists of two processes, "forward elimination" and "backward substitution". In "(1) forward elimination", it is surrounded by a diagonal left diagonal line on C0R0 to C3R3 as shown in the first matrix of FIG. 13A. The diagonal line is set to "1", and the part surrounded by the triangular dotted line at the lower left of the diagonal line is converted to "0".
The details of the calculation process are described in FIG. 13A, but the calculation is performed in units of rows C. At first, in order to set C0R0 to 1, the process of dividing the entire row C0 by C0R0 is started, and the obtained row C0 = 1 is multiplied by the values of the rows C1, C2, and C3 of the column R0 to obtain each row. By performing subtraction at C0, the values in rows C1, C2, and C3 in column R0 are set to 0. After that, by similarly setting the value on the diagonal line to 1 and setting each column R to 0, the formula A in FIG. 13A is finally obtained.

式Aから図13Bの「(2)後退代入」を実行することで最終的に係数(a,b,c,d)の値を導出する。
図13Aの演算過程は平方根の記号√(ルート)を使い、見易くするため有理化して√の項を分母から取り除いたものである。このような√や変数xなどの記号(Symbol)を用いた代数計算が行えるプログラミング言語として、Pythonの“SymPy”というライブラリが知られている。本実施形態は三角関数を使用し平方根を用いるため無理数を扱う演算になる。計算機実装では演算精度保証を考慮する必要があるが、このような根号記号√を用いた演算を行うライブラリを活用することで無限演算精度実装が行えるようになり計算誤差の影響を取り除くことができる。
以上、生成元G=4のとき4次の次数を持つ一変数多項式を求める例を示した。
By executing "(2) backward substitution" in FIG. 13B from the formula A, the value of the coefficient (a, b, c, d) is finally derived.
The calculation process in FIG. 13A uses the square root symbol √ (root) and is rationalized to make it easier to see, with the √ term removed from the denominator. Python's "SymPy" library is known as a programming language that can perform algebraic calculations using symbols (Symbol) such as √ and variable x. Since this embodiment uses trigonometric functions and square roots, it is an operation that handles irrational numbers. It is necessary to consider the operation accuracy guarantee in computer implementation, but by utilizing a library that performs operations using such a radical symbol √, infinite operation accuracy implementation can be performed and the influence of calculation error can be removed. can.
The above is an example of finding a one-variable polynomial having a fourth-order degree when the generator G = 4.

図14は、図13A、図13Bに示したガウスの消去法を用いて、Gを2から9まで振って各係数を求めた場合の、“sin2G2θ”と等価な2次以上の次数を持つ一変数多項式とそのマップ示す。
図14に示すGは一変数多項式の次数となっており、各Gの関数f(x)として次数Gを“fG(x)”のように上付きにGとあらわし区別している。多項式の係数を求めるとき式(18)はG=4であったことから行と列の成分数はG×Gになる。行列式(18)の右の解は図14のマップから横軸方向が“x=sin2G2θ”とした場合、sin2G2θの区間は[0,1]になるためこの区間内において解fG(x)が0か1を採る“x=sin2G2θ”を考えると図14の4次の多項式を求めた例で示したように

Figure 2022056275000029
の位相θが0からπ/2の間(三角関数sinは0から1の間)を取るとき、必ず解“fG(x)”が0か1になる個数は“G+1”個となることが推定できる。 FIG. 14 shows one having a second or higher order equivalent to “sin2G2θ” when each coefficient is obtained by swinging G from 2 to 9 using the Gauss-Jordan method shown in FIGS. 13A and 13B. A variable polynomial and its map are shown.
G shown in FIG. 14 is a degree of a one-variable polynomial, and the degree G is superscripted and distinguished from G as a function f (x) of each G, such as “fG (x)”. Since Eq. (18) was G = 4 when calculating the coefficients of the polynomial, the number of components in the rows and columns is G × G. In the solution on the right of the determinant (18), when the horizontal axis direction is "x = sin2G2θ" from the map of FIG. 14, the section of sin2G2θ is [0,1], so that the solution fG (x) is in this section. Considering "x = sin2G2θ" that takes 0 or 1, as shown in the example of finding the fourth-order polynomial in FIG.
Figure 2022056275000029
When the phase θ of is between 0 and π / 2 (trigonometric function sin is between 0 and 1), the number of solutions “fG (x)” that are 0 or 1 is always “G + 1”. Can be estimated.

ここで、式(20)において、“n=0”のときは解“f(x)=f(0)=0”となるため、式(15)で“e=0”になることを示したように、“x”が0次の項(定数項)は必ず“0”となるため、式(20)の“k=0”の場合を除いて、

Figure 2022056275000030
となり、行列式(18)の右の解は行G個とすることができる。
例えばG=5の場合は式(17)を参考にして“x”は、
Figure 2022056275000031

の5つを割り当てて5×5の行列を構成し、図13A、図13Bのようにガウスの消去法で各項の係数を求め、図14の“f5(x)”となる5次の多項式を得ることができる。 Here, in equation (20), when “n = 0”, the solution “f (x) = f (0) = 0”, so it is shown that “e = 0” in equation (15). As mentioned above, the term (constant term) of the 0th order of "x" is always "0", so except for the case of "k = 0" in the equation (20).
Figure 2022056275000030
Therefore, the solution on the right of the determinant (18) can be G rows.
For example, in the case of G = 5, "x" is based on the equation (17).
Figure 2022056275000031

A 5 × 5 matrix is constructed by allocating the five factors, and the coefficients of each term are obtained by the Gauss-Jordan method as shown in FIGS. 13A and 13B. Can be obtained.

また、ガウスの消去法を使わなくとも関数を合成することで各Gの一変数多項式を作ることもできる。
例えば図14のG=4の“f4(x)”を作成する場合はG=2のときのf2(x)をf2(x)に代入して“f4(x)=f2(f2(x))”を得る。図14の例ではG=2のとき

Figure 2022056275000032
のため“x”へ“f2(x)”を代入すると、
Figure 2022056275000033

から図14のG=4の場合の式が得られる。 It is also possible to create a one-variable polynomial for each G by synthesizing functions without using the Gauss-Jordan method.
For example, when creating "f4 (x)" of G = 4 in FIG. 14, f2 (x) at G = 2 is substituted for f2 (x) and "f4 (x) = f2 (f2 (x)). ) ”. In the example of FIG. 14, when G = 2.
Figure 2022056275000032
Therefore, when "f2 (x)" is substituted for "x",
Figure 2022056275000033

From this, the equation for G = 4 in FIG. 14 can be obtained.

他の例として、次数Gが3と4からなる合成関数を作る場合は12=3×4のため、12の次数を持つ一変数多項式を作ることができる。sin2Gnθと等価な、次数lと次数mから次数G=l×mを持つ合成写像を作成するとき、次の式(22)の関係が成り立つ。

Figure 2022056275000034
ただし次数Gが“2,3,5,7,11,13、…”となる素因数分解ができない素数の場合は、式(22)のように関数を合成して作ることができないため、図13のようにガウスの消去法を利用して多項式を求める。
なお、合成関数の生成はインタプリタ型言語Pythonの代数計算ライブラリ“SymPy”を利用し代数方程式を作ることができる。 As another example, when creating a composite function in which the degree G consists of 3 and 4, since 12 = 3 × 4, it is possible to create a one-variable polynomial having a degree of 12. When creating a composite map having a degree G = l × m from a degree l and a degree m equivalent to sin2Gnθ, the relationship of the following equation (22) holds.
Figure 2022056275000034
However, in the case of a prime number whose order G is "2,3,5,7,11,13, ..." and cannot be factored into prime numbers, it cannot be created by synthesizing a function as in Eq. (22), so FIG. 13 The polynomial is obtained by using the Gauss-Jordan method as in.
The synthetic function can be generated by using the algebraic calculation library "SymPy" of the interpreted language Python.

次に、図14に示した一変数多項式を用いて鍵共有を行う実施形態を説明する。図15は、鍵共有の計算方法のフローチャートである。図16は、図15に示したフローチャートを実行して具体的な数値の動きを示した図である。
図15と図16では、暗号側共通鍵生成部102が行う処理と復号側共通鍵生成部202が行う処理に分かれている。復号側共通鍵生成部202では交換する情報を生成して暗号側共通鍵生成部102は復号側共通鍵生成部202へ送信し、復号側共通鍵生成部202は暗号側共通鍵生成部102へ送信する。受信処理では、お互い相手が送信した情報を受信してその情報を設定して写像を行い共有する秘密情報を得る。
Next, an embodiment in which key sharing is performed using the one-variable polynomial shown in FIG. 14 will be described. FIG. 15 is a flowchart of the key sharing calculation method. FIG. 16 is a diagram showing specific movements of numerical values by executing the flowchart shown in FIG.
15 and 16 are divided into a process performed by the cryptographic side common key generation unit 102 and a process performed by the decryption side common key generation unit 202. The decryption side common key generation unit 202 generates information to be exchanged, the encryption side common key generation unit 102 sends it to the decryption side common key generation unit 202, and the decryption side common key generation unit 202 sends it to the encryption side common key generation unit 102. Send. In the reception process, the information transmitted by each other is received, the information is set, the mapping is performed, and the secret information to be shared is obtained.

図15のフローチャートについて図16の具体的な数値を参照して説明する。図16では表計算ソフトのエクセル(登録商標)を使用し計算を行うことが可能である。
暗号側共通鍵生成部102と復号側共通鍵生成部202は、事前に素数P=19、生成元G=2をお互いに合意する(S30A、S30B)。この素数P=19と、生成元G=2は、通知情報であり、暗号側共通鍵生成部102から復号側共通鍵生成部202へ送って、双方が保持することができる。暗号側共通鍵生成部102のみが知る秘密情報である数Saが生成され(S31A)、復号側共通鍵生成部202のみが知る秘密情報Sbが生成される(S31B)。生成元Gから多項式を生成する(S32A、S32B)。G=2の場合、多項式は以下のロジスティック写像の多項式である。暗号側共通鍵生成部102では、秘密情報である数Saを反復回数rに設定し、“sin2(π/P)”を初期値“x0”に設定する(S33A)。復号側共通鍵生成部202では、秘密情報Sbを反復回数rに設定し、“sin2(π/P)”を初期値“x0”に設定する(S33B)。
従来のDiffie-Hellman鍵共有を行った計算例が図16における表の列“DH”になり、列“i”の0以降から列“i”の値を参照して法をとる“2i mod 19”の演算を行うため、セルに数式“=MOD(POWER(2,i),19)”を代入して計算した結果となる。
The flowchart of FIG. 15 will be described with reference to the specific numerical values of FIG. In FIG. 16, it is possible to perform the calculation using the spreadsheet software Excel (registered trademark).
The cryptographic side common key generation unit 102 and the decryption side common key generation unit 202 mutually agree on a prime number P = 19 and a generation source G = 2 in advance (S30A, S30B). The prime number P = 19 and the generation source G = 2 are notification information, which can be sent from the cryptographic side common key generation unit 102 to the decryption side common key generation unit 202 and held by both. The number Sa, which is secret information known only to the cryptographic side common key generation unit 102, is generated (S31A), and the secret information Sb known only to the decryption side common key generation unit 202 is generated (S31B). A polynomial is generated from the generator G (S32A, S32B). When G = 2, the polynomial is the polynomial of the following logistic map. In the cryptographic side common key generation unit 102, the number Sa, which is secret information, is set to the number of repetitions r, and "sin2 (π / P)" is set to the initial value "x0" (S33A). In the decryption-side common key generation unit 202, the secret information Sb is set to the number of repetitions r, and "sin2 (π / P)" is set to the initial value "x0" (S33B).
A calculation example in which the conventional Diffie-Hellman key sharing is performed becomes the column “DH” in the table in FIG. This is the result of the calculation by substituting the formula "= MOD (POWER (2, i), 19)" into the cell to perform the calculation of ".

表の列“Xi”は、図14のG=2に該当する式(12)のロジスティック写像の多項式

Figure 2022056275000035
に初期値“x0=sin2(π/19)”を浮動点小数で与え写像の反復毎の計算結果となる。
送信前の処理では暗号側共通鍵生成部102は、暗号側共通鍵生成部102のみが知る秘密情報である数Saとして設定した反復回数7回、復号側共通鍵生成部202は、復号側共通鍵生成部202のみが知る秘密情報Sbとして設定した反復回数4回を設定し、写像の反復をそれぞれ行っている(S34A、S34B)。
列“i”が“0”のときに“X0=sin2(π/19)”の初期値を与える計算を行い列“Xi”セルに数式“=SIN(PI()/19)*SIN(PI()/19)”を代入し、列“i”が1以降のとき列“Xi”セルに一つ上のセルの数値を参照するようにして数式“=4*Xi-1*(1-Xi-1)”を代入し、“Xi-1”を参照して計算を行っている。これらの計算結果“Xi”は、小数点以下9まで表示させており結果として暗号側共通鍵生成部102は“0.541289673”、復号側共通鍵生成部202は“0.226525921”を計算結果として得ておりこれを相手に送信する(S34A、S34B)。
列“ArcSIN”は列“Xi”の数値を参照して、“sin2G(π/19)”となるGの値を次の式(23)の逆三角関数arcsin(sin-1とも表記)を用いて計算した結果となる。
Figure 2022056275000036
The column “Xi” in the table is the polynomial of the logistic map of equation (12) corresponding to G = 2 in FIG.
Figure 2022056275000035
The initial value "x0 = sin2 (π / 19)" is given to the floating point decimal number, and the calculation result is obtained for each iteration of the map.
In the processing before transmission, the cryptographic side common key generation unit 102 repeats 7 times set as the number Sa, which is secret information known only to the cryptographic side common key generation unit 102, and the decryption side common key generation unit 202 is common to the decryption side. The number of repetitions set as the secret information Sb known only to the key generation unit 202 is set to 4 times, and the mapping is repeated (S34A, S34B).
When the column "i" is "0", a calculation is performed to give the initial value of "X0 = sin2 (π / 19)", and the formula "= SIN (PI () / 19) * SIN (PI)" is added to the column "Xi" cell. () / 19) ”is substituted, and when the column“ i ”is 1 or later, the formula“ = 4 * Xi-1 * (1- "Xi-1)" is substituted, and the calculation is performed with reference to "Xi-1". These calculation results "Xi" are displayed up to 9 decimal places, and as a result, the encryption side common key generation unit 102 is "0.541289673" and the decryption side common key generation unit 202 is "0.2265252921" as the calculation result. Obtained and transmitted to the other party (S34A, S34B).
The column "ArcSIN" refers to the numerical value of the column "Xi", and the value of G that becomes "sin2G (π / 19)" is used as the inverse trigonometric function arcsin (also referred to as sin-1) of the following equation (23). It is the result of calculation.
Figure 2022056275000036

列“ArcSIN”のセルに数式“=19*ASIN(SQRT(Xi))/PI()”を代入し、“Xi”を参照してGを求めている。
Gについて列“DH”(Diffie-Hellman鍵共有)と比較して説明する。
位相の初期値を“π/19”とし、次の式(24)の“n”を0,1,2,3,…と振った値と、多項式で行った“Xi”の結果は上記の説明からも区間[0,1]で同じ値をとる。

Figure 2022056275000037
The formula "= 19 * ASIN (SQRT (Xi)) / PI ()" is substituted into the cell of the column "ArcSIN", and G is obtained by referring to "Xi".
G will be described in comparison with the column “DH” (Diffie-Hellman key sharing).
The initial value of the phase is "π / 19", the value obtained by substituting "n" in the following equation (24) as 0, 1, 2, 3, ... And the result of "Xi" performed by the polynomial are as described above. From the explanation, the same value is taken in the interval [0,1].
Figure 2022056275000037

図17は、式(24)において“P=19”とし、“n=7”まで計算した“Xi”の値を示す図である。この図17における位相の分子の値と、図16の暗号側共通鍵生成部102の送信処理の列“DH”の値は同じに数値になっている。また式(24)で行った計算結果と図16の列“Xi”の多項式で写像の反復を行う計算結果が等しいことを確認できる。図16の列“Xi”の結果は多項式で演算を行っているが、これと解が同等な式(24)は位相の上では、Diffie-Hellman鍵共有の合同算術(またはベルヌーイシフト写像)の演算と等価性を持っている。 FIG. 17 is a diagram showing the value of “Xi” calculated up to “n = 7” with “P = 19” in the equation (24). The value of the phase molecule in FIG. 17 and the value of the transmission processing column “DH” of the cryptographic side common key generation unit 102 in FIG. 16 are the same numerical value. Further, it can be confirmed that the calculation result performed by the equation (24) and the calculation result of iterating the mapping with the polynomial of the column “Xi” in FIG. 16 are equal. The result of the column "Xi" in FIG. 16 is calculated by a polynomial, but the equation (24) having the same solution is the Diffie-Hellman key sharing modal arithmetic (or Bernoulli shift mapping) in terms of phase. Has arithmetic and equivalence.

ところで、図16の列“ArcSIN”の数Gと列“DH”の数を見比べると、列“ArcSIN”は9以下の数値からなっており、“i=4”のとき列“DH”は16であるが、列“ArcSIN”では3になっている。
これについて三角関数sinは補角により
sin(16π/19)=sin(π-16π/19)=sin(3π/19)
となり、位相が“π/2”以上の場合は同じ値を取るためである。
このため、合同算術では式(14)のフェルマーの小定理により周期は“P-1”となるが、多項式を用いたとき写像が元に戻る周期は“(P-1)/2”になることが判り、“P=19”のため、周期9になる。
By the way, comparing the number G of the column "ArcSIN" and the number of the column "DH" in FIG. 16, the column "ArcSIN" consists of 9 or less numerical values, and when "i = 4", the column "DH" is 16. However, it is 3 in the column "ArcSIN".
About this, the trigonometric function sin has sin (16π / 19) = sin (π-16π / 19) = sin (3π / 19) depending on the complementary angle.
This is because the same value is taken when the phase is "π / 2" or more.
Therefore, in the joint arithmetic, the period is "P-1" according to Fermat's little theorem in Eq. (14), but the period at which the mapping returns to the original when using a polynomial is "(P-1) / 2". It turns out that the period is 9 because "P = 19".

多項式による鍵共有のGは、Diffie-Hellman鍵共有の法となる素数Pに対し“(P-1)/2”以下の値をとる。このため本実施形態では、使用するGは2~9の間であるため図14ではG=2~9を示している。
また、列“ArcSIN”をみると“(P-1)/2”より大きい10以上の値は列“DH”の値に対し“19-G”の関係が成り立っている。
The G of the key sharing by the polynomial takes a value of "(P-1) / 2" or less with respect to the prime number P which is the method of the Diffie-Hellman key sharing. Therefore, in the present embodiment, G used is between 2 and 9, so G = 2 to 9 is shown in FIG.
Further, looking at the column "ArcSIN", a value of 10 or more larger than "(P-1) / 2" has a "19-G" relationship with the value of the column "DH".

以上、図16の送信処理では、列“DH”(Diffie-Hellman鍵共有)は計算結果として暗号側共通鍵生成部102は“14”を、復号側共通鍵生成部202は“16”を相手に送信する。本実施形態の多項式による鍵共有では列“Xi”(多項式)の計算結果として暗号側共通鍵生成部102は“0.541289673”を、復号側共通鍵生成部202は“0.226525921”を相手に送信する(S34A、S34B)。 As described above, in the transmission process of FIG. 16, the column “DH” (Diffie-Hellman key sharing) has a calculation result of “14” for the cryptographic side common key generation unit 102 and “16” for the decryption side common key generation unit 202. Send to. In the key sharing by the polynomial of the present embodiment, the cryptographic side common key generation unit 102 has "0.541289673" and the decryption side common key generation unit 202 has "0.226525921" as the calculation result of the column "Xi" (polynomial). (S34A, S34B).

次に、図15のフローチャートを踏まえ、図16の受信処理について説明する。
列“DH”はDiffie-Hellman鍵共有の計算になり、暗号側共通鍵生成部102と復号側共通鍵生成部202は受信した値を生成元Gとして素数Pと自身の秘密情報を設定して、合同算術の演算を実行する。図16の例では暗号側共通鍵生成部102は受信した値からG=14を、復号側共通鍵生成部202は受信した値からG=16を設定し各々が秘密情報とした設定した値として暗号側共通鍵生成部102は7を、復号側共通鍵生成部202は4をべき乗数“i”に設定し、列“i”の0以降から列“i”の値を参照して“2i mod 19”を行い、セルに数式“=MOD(POWER(2,i),19)”を代入して計算し、最終的に共有する秘密情報“17”を得ている。
本実施形態による一変数多項式の一次元写像による鍵共有は、列“Xi”になり暗号側共通鍵生成部102の処理では復号側共通鍵生成部202から“0.226525921”を受信し(S35A)、受信した“0.226525921”より、式(23)により生成元にあたるG=3を算出する(S36A)。
Next, the reception process of FIG. 16 will be described with reference to the flowchart of FIG.
The column "DH" is a Diffie-Hellman key sharing calculation, and the encryption side common key generation unit 102 and the decryption side common key generation unit 202 set the prime number P and its own secret information with the received value as the generation source G. , Performs modal arithmetic operations. In the example of FIG. 16, the encryption side common key generation unit 102 sets G = 14 from the received value, and the decryption side common key generation unit 202 sets G = 16 from the received value, and each is set as secret information. The cryptographic side common key generation unit 102 sets 7 and the decryption side common key generation unit 202 sets 4 to the power multiplier "i", and refers to the values in the column "i" from 0 onward in the column "i" to "2i". "Mod 19" is performed, the formula "= MOD (POWER (2, i), 19)" is substituted into the cell for calculation, and finally the secret information "17" to be shared is obtained.
The key sharing by the one-dimensional mapping of the one-variable polynomial according to the present embodiment becomes the column "Xi", and in the processing of the cryptographic side common key generation unit 102, "0.2265252921" is received from the decryption side common key generation unit 202 (S35A). ), G = 3, which is the generation source, is calculated from the received “0.226525921” by the equation (23) (S36A).

次に、図14で示すG=3の多項式を生成して(S37A)、列“i”が0のときに“X0=sin2(π/19)”の初期値を与える計算を行うため、列“Xi”セルに数式“=SIN(PI()/19)*SIN(PI()/19)”を代入し、列“i”が1以降は列“Xi”セルに一つ上のセルの数値を参照するようにG=3の多項式の因数分解を行った数式“=Xi-1*(4*Xi-1-3)*(4*Xi-1-3)”を代入し、“Xi-1”を参照して計算を行っている(S38A、S39A)。
同様に、復号側共通鍵生成部202の処理では、暗号側共通鍵生成部102から“0.541289673”を受信し(S35B)、受信した“0.541289673”より式(23)により生成元にあたるG=5を算出する(S36B)。
次に、図14で示すG=5の多項式を生成して(S37B)、列“i”が0のときに“X0=sin2(π/19)”の初期値を与える計算を行うため“Xi”セルに数式“=SIN(PI()/19)*SIN(PI()/19)”を代入し列“i”が1以降は列“Xi”セルに一つ上のセルの数値を参照するようにG=5の多項式の因数分解を行った数式“=Xi-1*(16*Xi-1*Xi-1-20*Xi-1+5)*(16*Xi-1*Xi-1-20*Xi-1+5)”を代入し“Xi-1”を参照して計算を行っている(S38B、S39B)。
Next, in order to generate a polynomial of G = 3 shown in FIG. 14 (S37A) and give an initial value of “X0 = sin2 (π / 19)” when the column “i” is 0, the column Substitute the formula "= SIN (PI () / 19) * SIN (PI () / 19)" in the "Xi" cell, and after the column "i" is 1, the cell above the column "Xi" cell Substitute the mathematical formula "= Xi-1 * (4 * Xi-1-3) * (4 * Xi-1-3)" obtained by factoring the polynomial of G = 3 so as to refer to the numerical value, and "Xi". The calculation is performed with reference to -1 ”(S38A, S39A).
Similarly, in the processing of the decryption-side common key generation unit 202, "0.541289673" is received from the encryption-side common key generation unit 102 (S35B), and the generated "0.541289673" is generated by the equation (23). G = 5 is calculated (S36B).
Next, in order to generate a polynomial of G = 5 shown in FIG. 14 (S37B) and give an initial value of “X0 = sin2 (π / 19)” when the column “i” is 0, “Xi” is performed. Substitute the formula "= SIN (PI () / 19) * SIN (PI () / 19)" in the "cell" and refer to the numerical value of the cell one above the column "Xi" after the column "i" is 1. The formula "= Xi-1 * (16 * Xi-1 * Xi-1-20 * Xi-1 + 5) * (16 * Xi-1 * Xi-1-" 20 * Xi-1 + 5) ”is substituted and the calculation is performed with reference to“ Xi-1 ”(S38B, S39B).

その結果、暗号側共通鍵生成部102と復号側共通鍵生成部202の演算結果は“0.105429745”と同じ値となり、共有する秘密情報として用いることができる。
また、図15の受信側のi=1における“列Xi”の値は受信した値となっていることに着目すると、計算精度を考慮した上で受信した値をそのまま初期値X0として設定し、暗号側共通鍵生成部102と復号側共通鍵生成部202が自身で設定した秘密情報からマイナス1減算した反復回数(暗号側共通鍵生成部102は6、復号側共通鍵生成部202は3)を設定して写像の反復を行うことで共有する秘密情報を生成する方法が考えられる。
以上、一変数多項式の一次元写像を用いた鍵共有方法の実施形態を示した。
As a result, the calculation result of the cryptographic side common key generation unit 102 and the decryption side common key generation unit 202 has the same value as "0.10542975" and can be used as shared secret information.
Further, paying attention to the fact that the value of the “column Xi” at i = 1 on the receiving side in FIG. 15 is the received value, the received value is set as the initial value X0 as it is in consideration of the calculation accuracy. The number of iterations obtained by subtracting -1 from the secret information set by the encryption side common key generation unit 102 and the decryption side common key generation unit 202 (6 for the encryption side common key generation unit 102 and 3 for the decryption side common key generation unit 202). It is conceivable to generate confidential information to be shared by setting and repeating mapping.
The embodiment of the key sharing method using the one-dimensional mapping of the one-variable polynomial has been shown above.

図8(a)のベルヌーイシフト写像のプログラムでは、境界となる値を予めメモリに格納しておきIF分岐を使用して該当区間を検索する処理があり、生成元Gが大きいほどメモリ空間が多く必要となり検索処理のコストが大きくなるが、本実施形態により境界値をメモリへ格納して境界値を検索する処理が不要となり、多項式にしたことで数の分割処理を行わずに切れ目なく演算が行えるようになる。
演算コスト面で次のホーナー法を利用してべき乗の演算を行わないようにする手法がある。ホーナー法は最も少ない加算と乗算の演算回数でn次の多項式の演算を行う手法で、例えば図14のG=4の式の場合では、

Figure 2022056275000038
とすることで、べき乗の項をなくすことができる。
また、インタプリタ型言語Pythonの代数計算ライブラリ“SymPy”で提供される関数“factor”を用い、多項式を因数分解して計算式とすることでも演算コストの削減が期待できる。 In the Bernoulli shift mapping program of FIG. 8A, there is a process of storing the boundary value in the memory in advance and searching the corresponding section using the IF branch, and the larger the generation source G, the larger the memory space. This is necessary and the cost of the search process increases, but according to this embodiment, the process of storing the boundary value in the memory and searching for the boundary value becomes unnecessary, and by making it a polynomial, the operation can be performed seamlessly without performing the number division process. You will be able to do it.
In terms of calculation cost, there is a method that uses the following Horner's method to prevent the calculation of exponentiation. Horner's method is a method of performing operation of an nth-order polynomial with the minimum number of addition and multiplication operations. For example, in the case of the equation of G = 4 in FIG.
Figure 2022056275000038
By doing so, the exponentiation term can be eliminated.
Further, the calculation cost can be expected to be reduced by factoring the polynomial into a calculation formula by using the function "factor" provided by the algebraic calculation library "SymPy" of the interpreted language Python.

安全性の観点から、通信する度に違う暗号文を生成したい場合、お互い共有する秘密情報を元に乱数と合成して一時鍵を生成して通信の度に使い捨ての鍵を生成し暗号化を行うシーンがある。この使い捨ての鍵を、以降はセッション鍵SKと呼ぶことにする。この場合、秘密情報に乱数を足し算するだけなど実装の仕方によりセッション鍵SKの強度が弱くなる懸念がある。例えば、セッション鍵SKを使った暗号アルゴリズムがセッション鍵SKと平文との排他的論理和をとる以下の式を採用する場合を仮定する。

Figure 2022056275000039
上記式である場合、平文と暗号文のペアを入手し、鍵を推定する既知平文攻撃では平文と暗号文の排他的論理和である以下の式によりセッション鍵SKが判り、第三者に既知となる乱数を引き算すれば元となる秘密情報がすぐに判ってしまう。
Figure 2022056275000040
From the viewpoint of security, if you want to generate a different ciphertext each time you communicate, you can combine it with a random number based on the secret information shared by each other to generate a temporary key, generate a disposable key every time you communicate, and encrypt it. There is a scene to do. This disposable key will be referred to as a session key SK hereafter. In this case, there is a concern that the strength of the session key SK may be weakened depending on the implementation method such as simply adding a random number to the secret information. For example, suppose that the cryptographic algorithm using the session key SK adopts the following equation that takes the exclusive OR of the session key SK and plaintext.
Figure 2022056275000039
In the case of the above formula, the session key SK is known to a third party by the following formula, which is the exclusive OR of the plaintext and the ciphertext in the known plaintext attack that obtains the pair of plaintext and ciphertext and estimates the key. If you subtract the random number that becomes, the original secret information can be found immediately.
Figure 2022056275000040

そこで、第2の実施形態では、更にセッション鍵生成部を備える。図18は、第2の実施形態のブロックである。暗号生成装置100Aには暗号側セッション鍵生成部103が備えられ、復号装置200Aには復号側セッション鍵生成部203が備えられている。暗号側セッション鍵生成部103は上記暗号側共通鍵生成部102により生成された共通鍵に基づき上記一次元写像の演算を行ってセッション鍵SKを生成する。復号側セッション鍵生成部203は、上記復号側共通鍵生成部202により生成された共通鍵に基づき上記一次元写像の演算を行ってセッション鍵SKを生成する。この図の暗号生成部101は、上記共通鍵と上記セッション鍵SKとを用いて暗号文を生成し、復号部201は、前記共通鍵と前記セッション鍵SKとを用いた復号により平文を生成する。暗号生成装置100Aには、乱数生成部104が備えられている。 Therefore, in the second embodiment, a session key generation unit is further provided. FIG. 18 is a block of the second embodiment. The encryption generation device 100A is provided with a encryption side session key generation unit 103, and the decryption device 200A is provided with a decryption side session key generation unit 203. The cryptographic side session key generation unit 103 generates the session key SK by performing the operation of the one-dimensional mapping based on the common key generated by the cryptographic side common key generation unit 102. The decoding side session key generation unit 203 generates the session key SK by performing the operation of the one-dimensional mapping based on the common key generated by the decoding side common key generation unit 202. The encryption generation unit 101 in this figure generates a ciphertext using the common key and the session key SK, and the decryption unit 201 generates plaintext by decryption using the common key and the session key SK. .. The encryption generator 100A is provided with a random number generation unit 104.

本実施形態では、一次元写像にて写像の反復回数を秘密鍵として割り当てることで離散対数問題に基づく安全性を確保してセッション鍵SKの生成を行う。図18Aは、本実施形態のセッション鍵生成を示すフローチャートである。
図18Aに示すように、共通鍵CKを入手し(S41A、S41B)暗号生成装置100Aの乱数生成部104が乱数RNDを生成し復号装置200Aに送信する(S42A、S42B)。この乱数RNDは一次元写像の初期値X0に設定する。
予め暗号生成装置100Aと復号装置200Aが共有している秘密情報として共通鍵CK(Common Key)と乱数RNDを合成して傾き係数Gと演算精度の素数Pを決定し、共通鍵CKを写像の反復回数に設定する(S45A、S45B)。
図18Aに示すように、傾き係数Gは乱数RNDを共通鍵CKで割った余りを採用する(余りが“0”か“1”になるときは、最小値のGは2以上になるように足し算するなど傾き係数Gは0か1をとらないようにする)(S43A、S43B)。
素数Pは乱数RNDと共通鍵CKを掛け算して求めた値以下の一番近い素数を採用する(S44A、S44B)。
これらを式(11)で示される図8(a)の処理Aの一次元写像の各パラメータに設定し、写像の反復を共通鍵CK回行い、値XCKを得る(S46A、S46B)。得られた値XCKから所定の鍵長Mで割った余りを求めてセッション鍵SKを得る(S47A、S47B)。
In the present embodiment, the session key SK is generated by assigning the number of iterations of the mapping as a secret key in the one-dimensional mapping to ensure the security based on the discrete logarithm problem. FIG. 18A is a flowchart showing the session key generation of the present embodiment.
As shown in FIG. 18A, the common key CK is obtained (S41A, S41B), and the random number generation unit 104 of the encryption generator 100A generates a random number RND and transmits it to the decryption device 200A (S42A, S42B). This random number RND is set to the initial value X0 of the one-dimensional map.
The common key CK (Comon Key) and the random number RND are combined in advance as secret information shared by the encryption generation device 100A and the decryption device 200A to determine the inclination coefficient G and the prime number P of the calculation accuracy, and the common key CK is mapped. It is set to the number of repetitions (S45A, S45B).
As shown in FIG. 18A, the slope coefficient G adopts the remainder obtained by dividing the random number RND by the common key CK (when the remainder becomes “0” or “1”, the minimum value G is 2 or more. The slope coefficient G should not be 0 or 1 such as by adding) (S43A, S43B).
As the prime number P, the closest prime number equal to or less than the value obtained by multiplying the random number RND and the common key CK is adopted (S44A, S44B).
These are set in each parameter of the one-dimensional mapping of the process A of FIG. 8A represented by the equation (11), the mapping is repeated CK times with a common key, and the value XCK is obtained (S46A, S46B). The session key SK is obtained by obtaining the remainder obtained by dividing the obtained value XCK by the predetermined key length M (S47A, S47B).

図18Aのフローチャートを実行した具体的な数値を図19に示す。暗号生成装置100Aと復号装置200Aは、図10で得られた数36を共有する共通鍵CKとして設定する。暗号生成装置100Aの乱数生成部104は乱数として数141を生成し暗号生成装置100Aと復号装置200Aに送信する。
以降、暗号生成装置100Aと復号装置200Aは式(11)の傾き係数Gと演算精度の素数P、セッション鍵SK生成を同じ演算を行って決定する。
傾き係数Gは、乱数141を共通鍵36で割った余り21を設定し、初期値X0は、乱数141を設定する。
演算精度の素数Pは、乱数141と共通鍵36を掛け算した結果8460以下の一番近い素数8447を採用する。
以上求めた数値を式(11)の処理Aに設定して、写像の反復を秘密情報の回数分行って値を出し、数3062が得られる。本実施形態では、プロトコルとして鍵長が8ビットとして、8ビットの最大256で数3062を割った余りを求めることでセッション鍵SK(Session Key)として数“246”を得る。
なお、この例では式(11)のベルヌーイシフト写像を用いたが、ロジスティック写像等、図14に示すような一方向性をもつ他の一次元写像も利用できることが考えられる。
FIG. 19 shows specific numerical values obtained by executing the flowchart of FIG. 18A. The encryption generation device 100A and the decryption device 200A are set as a common key CK that shares the number 36 obtained in FIG. The random number generation unit 104 of the encryption generation device 100A generates the number 141 as a random number and transmits it to the encryption generation device 100A and the decryption device 200A.
Hereinafter, the encryption generation device 100A and the decryption device 200A determine the slope coefficient G of the equation (11), the prime number P of the calculation accuracy, and the session key SK generation by performing the same calculation.
The slope coefficient G sets the remainder 21 obtained by dividing the random number 141 by the common key 36, and the initial value X0 sets the random number 141.
As the prime number P of the calculation accuracy, the nearest prime number 8447 of 8460 or less as a result of multiplying the random number 141 and the common key 36 is adopted.
The numerical value obtained above is set in the process A of the equation (11), and the mapping is repeated for the number of times of the secret information to obtain a value, and the number 3062 is obtained. In the present embodiment, the key length is 8 bits as a protocol, and the number "246" is obtained as the session key SK (Session Key) by obtaining the remainder obtained by dividing the number 3062 by the maximum of 256 of 8 bits.
In this example, the Bernoulli shift map of the equation (11) is used, but it is conceivable that other one-dimensional maps having unidirectionality as shown in FIG. 14, such as a logistic map, can also be used.

以上においては、暗号に使用する共通鍵(セッション鍵を含む)の生成方法を示した。例えば、一次元写像の反復回数を秘密情報とすることで離散対数問題を安全性根拠とする共通鍵暗号方法が考えられる。
図20は、図18に示した暗号生成部101と復号部201が、共通鍵CKとセッション鍵SKを使用して共通鍵暗号によるシステムを実現する場合の動作を示すフローチャートである。
暗号生成部101が平文を暗号化して復号部201に送信するものとする。暗号生成部101と復号部201は同じセッション鍵SK(Session Key)と共通鍵CK(Common Key)をあらかじめ共有している。それらを用いて式(11)のパラメータの傾き係数Gと演算精度の素数P、写像の反復回数rを決定する。
In the above, the method of generating the common key (including the session key) used for encryption is shown. For example, a common key cryptographic method based on the discrete logarithm problem can be considered by using the number of iterations of a one-dimensional map as secret information.
FIG. 20 is a flowchart showing an operation when the encryption generation unit 101 and the decryption unit 201 shown in FIG. 18 realize a system by common key cryptography using the common key CK and the session key SK.
It is assumed that the encryption generation unit 101 encrypts the plaintext and transmits it to the decryption unit 201. The encryption generation unit 101 and the decryption unit 201 share the same session key SK (Session Key) and common key CK (Common Key) in advance. Using them, the slope coefficient G of the parameter of the equation (11), the prime number P of the calculation accuracy, and the number of iterations r of the mapping are determined.

写像の反復回数rはセッション鍵SKを設定し(S51A、S51B)、傾き係数Gはセッション鍵SKを共通鍵CKで割り算した余りを設定する。余りが0か1になるときは、最小値のGは2以上になるように足し算するなど傾き係数Gは、0か1を採らないようにする。演算精度となる素数Pは、セッション鍵SKと共通鍵CK掛け算して求めた値以下の一番近い素数を採用する(S52A、S52B)。
以上のパラメータを式(11)に設定し、平文は初期値X0として設定し写像の反復をSK回した結果“XSK”を、暗号生成部101は暗号文として復号部201へ送信する(S53A~S55A)。
The iteration count r of the mapping sets the session key SK (S51A, S51B), and the slope coefficient G sets the remainder obtained by dividing the session key SK by the common key CK. When the remainder becomes 0 or 1, the minimum value G is added so that it becomes 2 or more, and the slope coefficient G does not take 0 or 1. As the prime number P that is the calculation accuracy, the closest prime number equal to or less than the value obtained by multiplying the session key SK and the common key CK is adopted (S52A, S52B).
The above parameters are set in the equation (11), the plaintext is set as the initial value X0, and the result "XSK" is transmitted to the decryption unit 201 as a ciphertext as a result of repeating the mapping by SK (S53A to S53A). S55A).

次に、復号部201は受信した暗号文を復号する。式(14)のフェルマーの小定理を使うため、復号の原理について説明する。Pを素数とし、GをPの倍数でない整数(GとPは互いに素[最大公約数が1]、つまりPが素数であればよい)とするときに、合同算術では次のフェルマーの小定理

Figure 2022056275000041
が成り立ち、“G”を“P-1”乗して、”P”で割り算した余りは“1”になる。
上記で説明したように合同算術の余りと整数演算化したベルヌーイシフト写像の式(11)は同じ値を取得することができる。つまり、演算精度をPとする式(11)のベルヌーイシフト写像の反復を“P-1”回行うことで、Xi値が元に戻る周期を持っていることが判る。この機構から暗号生成部101は既にSK回の写像の反復を行っているため、復号部201は受信した暗号文を初期値X0に設定して残り回数の“P-1-SK”回の写像の反復を行うことで復号部201は暗号文を平文に戻す復号が行える(S53B~S55B)。
この暗号方法では秘密情報を写像の反復回数とするだけでなく、傾き係数Gと演算精度Pも秘密情報から生成するため第三者にとって追跡の手掛かりが小さくなるため安全性を高める効果を得ることができる。 Next, the decryption unit 201 decodes the received ciphertext. In order to use Fermat's little theorem in equation (14), the principle of decoding will be described. When P is a prime number and G is an integer that is not a multiple of P (G and P are relatively prime [the greatest common divisor is 1], that is, P is a prime number), the following Fermat's little theorem
Figure 2022056275000041
Is established, and the remainder obtained by multiplying "G" by "P-1" and dividing by "P" becomes "1".
As described above, the same value can be obtained from the remainder of the joint arithmetic and the Bernoulli shift mapping equation (11) that has been converted into an integer arithmetic. That is, it can be seen that the Xi value has a period of returning to the original value by repeating the Bernoulli shift mapping of the equation (11) with the calculation accuracy as P "P-1" times. Since the encryption generation unit 101 has already repeated the mapping of SK times from this mechanism, the decryption unit 201 sets the received ciphertext to the initial value X0 and maps the remaining number of "P-1-SK" times. The decryption unit 201 can perform decryption to return the ciphertext to plaintext by repeating the above (S53B to S55B).
In this encryption method, not only the secret information is used as the number of iterations of the mapping, but also the slope coefficient G and the calculation accuracy P are generated from the secret information, which reduces the clues for tracking to a third party and thus obtains the effect of improving security. Can be done.

図21は、図20のフローチャートにて暗号化と復号に具体的な数値を入れた処理例を示す図である。暗号化対象とする平文は例として文字“word”の4文字とする。アスキーコード8ビットでは、10進数とカッコ内を16進数で表すと各文字は「w=119(77h),o=111(6fh),r=114(72h),d=100(64h)」となる。
暗号化は8ビットずつのブロック単位で行い、一文字ずつ暗号化を行う。
以下、図21のフローチャートに沿って動作説明を行う。暗号生成装置100Aと復号装置200Aは、図10で生成した共通鍵CK=36、図19で生成したセッション鍵SK=246を共有しており(B11)、これらを用いて以降において傾き係数Gと素数Pを求める。
傾き係数Gはセッション鍵SK=246を共通鍵CK=36で割った余り30を与える。素数Pは共通鍵CK=36とセッション鍵SK=246を掛けた値8856以下に一番近い8849とする(B12)。
FIG. 21 is a diagram showing a processing example in which specific numerical values are input to encryption and decryption in the flowchart of FIG. The plaintext to be encrypted is, for example, the four characters "word". In ASCII code 8-bit, when the decimal number and the parentheses are expressed in hexadecimal, each character is "w = 119 (77h), o = 111 (6fh), r = 114 (72h), d = 100 (64h)". Become.
Encryption is performed in block units of 8 bits each, and encryption is performed character by character.
Hereinafter, the operation will be described according to the flowchart of FIG. The cryptographic generator 100A and the decryption device 200A share the common key CK = 36 generated in FIG. 10 and the session key SK = 246 generated in FIG. 19 (B11). Find the prime number P.
The slope coefficient G gives the remainder 30 obtained by dividing the session key SK = 246 by the common key CK = 36. The prime number P is 8849, which is the closest to the value 8856 or less obtained by multiplying the common key CK = 36 and the session key SK = 246 (B12).

上記から、反復回数r、演算精度P、傾き係数G、初期値X0を得て式(11)に、これらの値を設定し、暗号化と復号を行う(B13)。暗号生成部101は最初の文字“w”を式(11)の初期値X0=119に設定して、セッション鍵SKの数246回の写像の反復を行って暗号化を行った結果、暗号文として数997が得られている(D11)。暗号生成部101は復号部201へ暗号文”997”を送信する。復号部201は受信した暗号文を初期値X0に設定し、“P-1-SK=8849-1-246=8602”となるため、写像の反復を8602回行うことで“X8602=119”に復号されていることが確認できる(M11)。他の暗号化した文字についても復号されていることが確認できる(D12~D14、M12~M14)。
なお、図21では暗号化と復号の写像を反復した値Xiは最初の3回と最後の3回の値Xiを表示している。
From the above, the number of iterations r, the calculation accuracy P, the slope coefficient G, and the initial value X0 are obtained, these values are set in the equation (11), and encryption and decryption are performed (B13). The encryption generation unit 101 sets the first character "w" to the initial value X0 = 119 of the equation (11), repeats the mapping of the session key SK number 246 times, and performs encryption. As a result, the ciphertext is encrypted. As a result, the number 997 is obtained (D11). The encryption generation unit 101 transmits the ciphertext "997" to the decryption unit 201. The decryption unit 201 sets the received ciphertext to the initial value X0 and becomes "P-1-SK = 8849-1-246 = 8602". Therefore, by repeating the mapping 8602 times, it becomes "X8602 = 119". It can be confirmed that the decryption has been performed (M11). It can be confirmed that other encrypted characters are also decrypted (D12 to D14, M12 to M14).
In FIG. 21, the value Xi obtained by repeating the mapping of encryption and decryption displays the value Xi of the first three times and the last three times.

なお、法となる素数の桁数で暗号文の大きさが決まってしまうため、コンピュータ実装では図21の例ではバイト単位で扱うと、平文8ビットが暗号文16ビットに拡張され、暗号文は平文の2倍の大きさとして扱うこととなる。このため実用上、素数は平文の大きさの単位以上になるため、プロトコルで素数の最大桁を制限するなど平文と暗号文のブロック長を調整する。 Since the size of the ciphertext is determined by the number of digits of the prime number that is the law, in the computer implementation, if it is handled in byte units in the example of FIG. 21, 8 bits of plaintext is expanded to 16 bits of ciphertext, and the ciphertext is It will be treated as twice the size of plaintext. Therefore, in practice, the prime number is larger than the unit of the plaintext size, so the block length of the plaintext and the ciphertext is adjusted by limiting the maximum digit of the prime number by the protocol.

また、この例では同じ平文だと同じ暗号文が出力されるため、ブロックごとに傾き係数Gをプラス1ずつインクリメントしたり、もしくは平文の初期値X0にプラス1ずつインクリメントして復号後に同じ値で引き算を行ったりすることができる。これによって、ブロック毎に同じ平文でも異なる暗号文を出力する手法が実現される。また、暗号文の送信者と受信者で共通鍵から同じ乱数を発生してブロック毎に傾き係数や平文に乱数をバイアスする(足し算や引き算、排他的論理和をとる)構成を採用しても良い。 Also, in this example, the same ciphertext is output if it is the same plaintext, so the slope coefficient G is incremented by +1 for each block, or the initial value X0 of the plaintext is incremented by +1 and the same value is used after decoding. You can do subtraction. As a result, a method of outputting different ciphertexts for the same plaintext for each block is realized. In addition, even if the sender and receiver of the ciphertext generate the same random number from the common key and bias the random number to the tilt coefficient or plaintext for each block (addition, subtraction, exclusive OR) is adopted. good.

安全面について、この実施形態では8ビットのブロック単位に分けたが、暗号化する平文の大きさの単位が大きいほど演算コストは大きくなるが安全性は高くなる。このため、ブロックサイズはより大きくとることが望ましい。 In terms of security, this embodiment is divided into 8-bit block units, but the larger the unit of the size of the plaintext to be encrypted, the higher the calculation cost but the higher the security. Therefore, it is desirable to take a larger block size.

図21Aは、図18に示した暗号復号システムの各部の処理内容を記述したブロック図である。この暗号復号システムでは、暗号生成装置100Aの暗号側共通鍵生成部102と、復号装置200Aの復号側共通鍵生成部202により暗号生成装置100Aと復号装置200Aで同一の共通鍵が生成され、共有される(「共通鍵共有」)。更に、暗号生成装置100Aの暗号側セッション鍵生成部103と、復号装置200Aの復号側セッション鍵生成部203により暗号生成装置100Aと復号装置200Aで同一のセッション鍵SKが生成され、共有される(「共通鍵生成」)。上記共通鍵CKとセッション鍵SKにより、暗号生成装置100Aの暗号生成部101で暗号文の生成が行われ(「暗号化処理」)、上記共通鍵CKとセッション鍵SKにより、復号装置200Aの復号部201で暗号文を平文へ復号する処理(「復号処理」)が行われる。このシステムは、離散対数問題を安全性根拠とする共通鍵暗号方法を採用しており、鍵の管理を不要とすることができ、また、演算負荷と演算コストの低減を図ることができる。 FIG. 21A is a block diagram describing the processing contents of each part of the encryption / decryption system shown in FIG. In this encryption / decryption system, the same common key is generated and shared by the encryption generation device 100A and the decryption device 200A by the encryption side common key generation unit 102 of the encryption generation device 100A and the decryption side common key generation unit 202 of the decryption device 200A. ("Common key sharing"). Further, the same session key SK is generated and shared by the encryption generation device 100A and the decryption device 200A by the encryption side session key generation unit 103 of the encryption generation device 100A and the decryption side session key generation unit 203 of the decryption device 200A. "Common key generation"). The encryption generation unit 101 of the encryption generation device 100A uses the common key CK and the session key SK to generate an encrypted text (“encryption processing”), and the common key CK and the session key SK decrypt the decryption device 200A. In the unit 201, a process of decrypting the encrypted text into a plain text (“decryption process”) is performed. This system employs a common key cryptographic method based on the discrete logarithm problem, which eliminates the need for key management and can reduce the calculation load and calculation cost.

Diffie-Hellman鍵共有システムは、お互い交換する情報から共有する秘密情報を生成するシステムである。暗号生成装置100(100A(以下、省略))と復号装置200(200A(以下、省略))が同じ初期値を設定して任意の一方向性関数を用意し最終的な計算ステップ数が合えば同じ解が得られることに着目すると、各々の計算ステップ数を秘密情報として共有する秘密情報を生成する仕組みを考えることができる。
例えば、暗号生成装置100が秘密情報として5を選び、一方向関数を5ステップ分の計算を実行してその結果の数値NAを復号装置200に渡し、一方、復号装置200が秘密情報として9を選び、一方向関数を9ステップの計算を実行してその結果の数値NBを暗号生成装置100に渡すものとする。
NBを受け取った暗号生成装置100は暗号生成装置100のみが知る秘密情報5により5ステップ分の計算を実行することで、復号装置200が実行した9ステップ分に5ステップを追加した合計14ステップを行った数値結果を得る。一方、NAを受け取った復号装置200は復号装置200のみが知る秘密情報9により9ステップ分の計算を実行することで、暗号生成装置100が実行した5ステップ分に9ステップを追加した合計14ステップを行った数値結果を得る。以上から暗号生成装置100と復号装置200が計算する最終的な計算ステップ数が同じとなり、暗号生成装置100と復号装置200は同じ値を取得できる。
以上の論理を考慮し、以下に示す実施形態では初期値はお互い共有する共通鍵を設定することで、共通鍵を更新する暗号復号システム、暗号復号方法、暗号復号用プログラムを開示する。
The Diffie-Hellman key sharing system is a system that generates secret information to be shared from information exchanged with each other. If the encryption generator 100 (100A (hereinafter omitted)) and the decrypting device 200 (200A (hereinafter omitted)) set the same initial value, prepare an arbitrary one-way function, and the final number of calculation steps match. Focusing on the fact that the same solution can be obtained, it is possible to consider a mechanism for generating confidential information in which the number of each calculation step is shared as confidential information.
For example, the encryption generator 100 selects 5 as the secret information, executes the calculation for 5 steps in the one-way function, and passes the numerical value NA of the result to the decryption device 200, while the decryption device 200 selects 9 as the secret information. It is assumed that the one-way function is selected, the calculation of 9 steps is executed, and the numerical value NB of the result is passed to the encryption generator 100.
The cryptographic generator 100 that has received the NB executes a calculation for 5 steps using the secret information 5 known only to the cryptographic generator 100, so that a total of 14 steps are added to the 9 steps executed by the decryption device 200. Get the numerical results you made. On the other hand, the decryption device 200 that has received the NA executes the calculation for 9 steps by the secret information 9 known only to the decryption device 200, so that 9 steps are added to the 5 steps executed by the encryption generation device 100, for a total of 14 steps. Get the numerical result. From the above, the final number of calculation steps calculated by the encryption generation device 100 and the decryption device 200 is the same, and the encryption generation device 100 and the decryption device 200 can acquire the same value.
In consideration of the above logic, in the embodiment shown below, the encryption / decryption system, the encryption / decryption method, and the encryption / decryption program for updating the common key are disclosed by setting a common key shared by each other as the initial value.

図22は、第3の実施形態に係る暗号復号システムのブロック図である。第3の実施形態に係る暗号復号システムは、図2に示した暗号復号システムの構成において、暗号生成装置100Bに第1の暗号側更新鍵生成部105が備えられ、復号装置200Bに第1の復号側更新鍵生成部205が備えられている。第1の暗号側更新鍵生成部105は、暗号側共通鍵生成部102から共通鍵を受け取り、この共通鍵によりベルヌーイシフト写像を行い、暗号側交換情報を生成する。第1の復号側更新鍵生成部205は、復号側共通鍵生成部202から共通鍵を受け取り、この共通鍵によりベルヌーイシフト写像を行い、復号側交換情報を生成する。 FIG. 22 is a block diagram of the encryption / decryption system according to the third embodiment. In the encryption / decryption system according to the third embodiment, in the configuration of the encryption / decryption system shown in FIG. 2, the encryption generation device 100B is provided with the first encryption side update key generation unit 105, and the decryption device 200B is the first. The decryption side update key generation unit 205 is provided. The first cryptographic side update key generation unit 105 receives a common key from the cryptographic side common key generation unit 102, performs Berneuy shift mapping with this common key, and generates cryptographic side exchange information. The first decryption side update key generation unit 205 receives a common key from the decryption side common key generation unit 202, performs Bernoulli shift mapping with this common key, and generates decryption side exchange information.

更に、第1の暗号側更新鍵生成部105は、復号側交換情報を受け取ってこの復号側交換情報を用いてベルヌーイシフト写像を行い、更新鍵を生成する。また、第1の復号側更新鍵生成部205は、暗号側交換情報を受け取ってこの暗号側交換情報を用いてベルヌーイシフト写像を行い、更新鍵を生成する。 Further, the first encryption side update key generation unit 105 receives the decryption side exchange information, performs Bernoulli shift mapping using the decryption side exchange information, and generates the update key. Further, the first decryption side update key generation unit 205 receives the encryption side exchange information, performs Bernoulli shift mapping using the encryption side exchange information, and generates an update key.

上記第3の実施形態の具体例として、一方向性関数は傾き係数を変動するベルヌーシフト写像を用意し、このベルヌーシフト写像を用いて更新鍵生成を行う。図22Aは、更新鍵生成の処理を示すフローチャートであり、図23は図22Aの要部を示すフローチャートである。また、図24は、上記図23に示した処理をC言語プログラムで記述したものである。また、図25A、図25Bと図26は、具体的な計算値を用いて上記更新鍵の生成過程を示す図である。 As a specific example of the third embodiment, the one-way function prepares a Bernu shift map in which the slope coefficient fluctuates, and the update key is generated using this Bernu shift map. 22A is a flowchart showing the process of generating the update key, and FIG. 23 is a flowchart showing the main part of FIG. 22A. Further, FIG. 24 shows the process shown in FIG. 23 described in a C language program. Further, FIGS. 25A, 25B and 26 are diagrams showing the process of generating the update key using specific calculated values.

本実施形態においては、始めに図22Aのフローチャートに示すように共通鍵CKから傾き係数を変動するパターンを生成する(S60A、S60B)。具体的には、暗号生成装置100Bと復号装置200Bはお互い共有する共通鍵CKの値を2乗した値より小さく一番近い素数Pを算出する(S61A、S61B)。次に、傾き係数Gは図22Aのフローチャートに示される次の数式によって決定する。

Figure 2022056275000042
共通鍵CKの値を2乗してGmaxの割り算の剰余にGminを足した数を傾き係数Gとする(S62A、S62B)。
Gmaxは予めプロトコルで決めておき、Gminは“CK×CK mod Gmax”の剰余がゼロになった場合に、最小の傾き係数Gは2以上にするため“Gmin=2”を入れておく。次に、求めた傾き係数Gと素数Pより
Figure 2022056275000043
を実行してX0を求める(S63A、S63B)。 In the present embodiment, first, as shown in the flowchart of FIG. 22A, a pattern in which the inclination coefficient is changed is generated from the common key CK (S60A, S60B). Specifically, the encryption generation device 100B and the decryption device 200B calculate the closest prime number P, which is smaller than the squared value of the common key CK shared by each other (S61A, S61B). Next, the slope coefficient G is determined by the following mathematical formula shown in the flowchart of FIG. 22A.
Figure 2022056275000042
The value obtained by squaring the value of the common key CK and adding Gmin to the remainder of the division of Gmax is defined as the slope coefficient G (S62A, S62B).
Gmax is determined in advance by the protocol, and Gmin is set to "Gmin = 2" so that the minimum slope coefficient G is 2 or more when the remainder of "CK × CK mod Gmax" becomes zero. Next, from the obtained slope coefficient G and the prime number P
Figure 2022056275000043
Is executed to obtain X0 (S63A, S63B).

暗号生成装置100Bは乱数Saを発生させて(S64A)、図22Aの傾き変動するベルヌーイシフト写像の各初期パラメータ
Sa(乱数)⇒反復回数r、素数P⇒演算精度P、G⇒傾き係数G、X0⇒初期値X0
を設定する(S65A)。
同様に、復号装置200Bは乱数Sbを発生させて(S64B)、各初期パラメータSb(乱数)⇒反復回数r、素数P⇒演算精度P、G⇒傾き係数G、X0⇒初期値X0
を設定する(S65B)。
The cryptographic generator 100B generates a random number Sa (S64A), and each initial parameter Sa (random number) of the Bernoulli shift map whose slope fluctuates in FIG. 22A ⇒ number of repetitions r, prime number P ⇒ calculation accuracy P, G ⇒ slope coefficient G, X0 ⇒ Initial value X0
Is set (S65A).
Similarly, the decoding device 200B generates a random number Sb (S64B), and each initial parameter Sb (random number) ⇒ number of iterations r, prime number P ⇒ calculation accuracy P, G ⇒ slope coefficient G, X0 ⇒ initial value X0.
Is set (S65B).

次に、図23に示される傾き係数Gの変動パターンを決定する(SAF23)。
変数yを用意し、演算精度Pに傾き係数Gを割り算した余りの値“y=P mod G”とする。
次の合同算術式より法を素数PとしてG回繰り返しyを更新し、yから傾き係数の最大をGとして、Gに対して20%をとった値をdG[i]としてG個分格納する。

Figure 2022056275000044
Next, the fluctuation pattern of the slope coefficient G shown in FIG. 23 is determined (SAF23).
A variable y is prepared, and the remainder value “y = P mod G” obtained by dividing the slope coefficient G by the calculation accuracy P is set.
From the following modal arithmetic formula, the method is set to the prime number P, and y is updated G times, and the maximum slope coefficient from y is set to G, and the value obtained by taking 20% of G is stored as dG [i] for G pieces. ..
Figure 2022056275000044

次に、具体的な計算値を、図26の最上枠の数値を参照して説明する。
図10で得られた共通鍵36を利用し共通鍵を2乗した値は、“36×36=1296”となるため、それ以下の一番近い素数を探索すると素数P=1291となる。共通鍵の値が小さすぎる場合は、例えば素数は最低1000以上というルールを設け共通鍵の値の累乗を続けてもよい。
次に最大傾き係数Gは本実施形態のプロトコルでは99まで採れるとし、Gは変動する値になるため、最低10にすることでGは8、9、10の三種類が採れるようにする。このため、“Gmax=90”、“Gmin=10”として、“46=(1296 mod 90)+10”より、傾き係数G=46をとる。初期値X0はX0=P mod Gより“3=1291 mod 46”となり“X0=3”を得る。
以上のように、「傾き係数G、素数P、反復回数r、初期値X0」が決定され、図22のSAF23により示される図23の初期処理(S71)における設定がなされる。
Next, specific calculated values will be described with reference to the numerical values in the uppermost frame of FIG.
Since the value obtained by using the common key 36 obtained in FIG. 10 and squared the common key is "36 × 36 = 1296", when the nearest prime number less than that is searched, the prime number P = 1291. If the value of the common key is too small, for example, a rule that the prime number is at least 1000 or more may be set and the power of the value of the common key may be continued.
Next, it is assumed that the maximum slope coefficient G can be taken up to 99 in the protocol of the present embodiment, and G is a fluctuating value. Therefore, by setting it to at least 10, G can be taken in three types of 8, 9, and 10. Therefore, with "Gmax = 90" and "Gmin = 10", the slope coefficient G = 46 is taken from "46 = (1296 mod 90) +10". The initial value X0 becomes “3 = 1291 mod 46” from X0 = P mod G, and “X0 = 3” is obtained.
As described above, the "slope coefficient G, prime number P, number of repetitions r, initial value X0" is determined, and the setting in the initial process (S71) of FIG. 23 shown by SAF23 of FIG. 22 is made.

図23は、傾き係数を変動するベルヌーシフト写像の反復演算を示すフローチャートであり、その具体的なC言語プログラムが図24になる。上記のようにステップS71において「傾き係数G、素数P、反復回数r、初期値X0」が決定されて、続いて係数Gの変動パターンを生成する。変数yを用意し、入力された初期値X0=3と傾き係数G=46をかけた値“y=138”とする(S72)。
次に、yから傾き係数Gの変動パターンを決める。yは“y=(G×y) mod P”によりG回繰り返してyの値を更新し、“dG[i]=y mod (G×2/10)”により入力されたGは最大の傾き係数となり、本実施形態では46のため、その20%分の値0~8の46個分をdG[i]に格納する(S73、S74)。
FIG. 23 is a flowchart showing an iterative operation of the Bernu shift mapping in which the inclination coefficient is changed, and a specific C language program thereof is shown in FIG. 24. As described above, in step S71, "the slope coefficient G, the prime number P, the number of repetitions r, and the initial value X0" are determined, and subsequently, a fluctuation pattern of the coefficient G is generated. A variable y is prepared, and the value “y = 138” is set by multiplying the input initial value X0 = 3 and the slope coefficient G = 46 (S72).
Next, the fluctuation pattern of the slope coefficient G is determined from y. y is repeated G times by "y = (G × y) mod P" to update the value of y, and G input by “dG [i] = y mod (G × 2/10)” is the maximum slope. Since it is 46 in the present embodiment, it becomes a coefficient, and 46 pieces of values 0 to 8 corresponding to 20% thereof are stored in dG [i] (S73, S74).

以上で、傾き係数Gが変動するパターンが決まり、傾き係数Gを変動しながらベルヌーイシフト写像の反復演算を行う。傾き係数Gの変動は図23のフローチャートにも示すように

Figure 2022056275000045
により格納しておいたdG[i]を引き算した値が各区間“interval[i]”により選択される(S75、S76)。
例えば、傾き係数Gが最大100のときは、変動する傾き係数Gは80~100の間の値を採る。 With the above, the pattern in which the slope coefficient G fluctuates is determined, and the Bernoulli shift mapping is repeatedly calculated while the slope coefficient G fluctuates. The fluctuation of the slope coefficient G is also shown in the flowchart of FIG. 23.
Figure 2022056275000045
The value obtained by subtracting the dG [i] stored in is selected by each interval “interval [i]” (S75, S76).
For example, when the slope coefficient G is 100 at the maximum, the fluctuating slope coefficient G takes a value between 80 and 100.

図23に示すベルヌーイシフト写像の演算では、入力された傾き係数GからG個分の各区間“i”に該当する配列dG[i]を引いた38~46を採ることになる。本実施形態の具体的な配列dG[i]の値(46個分)と各区間の傾き係数Gのベルヌーイシフト写像のマップイメージを図25Aの第2番目枠に示す。 In the operation of the Bernoulli shift map shown in FIG. 23, 38 to 46 obtained by subtracting the array dG [i] corresponding to each interval “i” for each G pieces from the input inclination coefficient G is taken. The map image of the Bernoulli shift map of the specific array dG [i] values (46 pieces) of the present embodiment and the inclination coefficient G of each section is shown in the second frame of FIG. 25A.

以上のようにして、暗号生成装置100Bでは傾き係数Gの変動パターンを生成し、ベルヌーイシフト写像をSa回反復した結果Xsaを出力し、このXsaが復号装置200Bへ送られる(S66A)。また、復号装置200Bでは、傾き係数Gの変動パターンを生成し、ベルヌーイシフト写像をSb回反復した結果Xsbを出力し、このXsbが暗号生成装置100Bへ送られる(S66B)。 As described above, the encryption generation device 100B generates a fluctuation pattern of the slope coefficient G, outputs the Xsa as a result of repeating the Bernoulli shift mapping Sa times, and sends this Xsa to the decoding device 200B (S66A). Further, the decoding device 200B generates a fluctuation pattern of the slope coefficient G, outputs Xsb as a result of repeating the Bernoulli shift mapping Sb times, and sends this Xsb to the encryption generator 100B (S66B).

暗号生成装置100BではXsbを受け取り(S67A)、このXsbを初期値X0として設定して(S68A)、ベルヌーイシフト写像をSa回反復した更新鍵Xkを出力する(SAF23)。復号装置200BではXsaを受け取り(S67B)、このXsaを初期値X0として設定して(S68B)、ベルヌーイシフト写像をSb回反復した更新鍵Xkを出力する(SAF23)。 The encryption generator 100B receives Xsb (S67A), sets this Xsb as the initial value X0 (S68A), and outputs the update key Xk in which the Bernoulli shift mapping is repeated Sa times (SAF23). The decoding device 200B receives Xsa (S67B), sets this Xsa as the initial value X0 (S68B), and outputs the update key Xk in which the Bernoulli shift map is repeated Sb times (SAF23).

図24に示したプログラムにて鍵更新を行う具体的な数値例を図26に示す。
ここで、図8(a)の処理Aと図24のプログラムの違いについて説明する。図8(a)の処理Aでは、最後に返り値としてxをGで割った値“x/G”を返しているが、図24では、Gを変更するため、割り切れない値が生じることで演算結果の値が異なってしまうため、図23のステップS77に示されるように、“x”をそのまま返り値とする。
FIG. 26 shows a specific numerical example in which the key is updated by the program shown in FIG. 24.
Here, the difference between the process A of FIG. 8A and the program of FIG. 24 will be described. In the process A of FIG. 8A, the value “x / G” obtained by dividing x by G is finally returned as the return value, but in FIG. 24, since G is changed, an indivisible value is generated. Since the value of the calculation result is different, as shown in step S77 of FIG. 23, “x” is used as the return value as it is.

暗号生成装置100Bは秘密情報として“7”を生成し傾き係数Gを変動する写像の反復を7回実行し、“X7=24904”を得て復号装置200Bへ送信する。復号装置200Bは秘密情報として“10”を生成し、傾き係数Gを変動する写像の反復を10回実行し“X10=6162”を得て暗号生成装置100Bへ送信する。 The encryption generator 100B generates "7" as secret information, repeats the mapping with a variation of the slope coefficient G seven times, obtains "X7 = 24904", and transmits the "X7 = 24904" to the decryption apparatus 200B. The decryption device 200B generates "10" as confidential information, repeats the mapping with a variation of the slope coefficient G 10 times, obtains "X10 = 6162", and transmits the "X10 = 6162" to the encryption generation device 100B.

受信処理では暗号生成装置100Bは、復号装置200Bから受け取った通知情報6162を初期値X0に設定し、暗号生成装置100Bの秘密情報7から傾き係数を変動する写像の反復を7回実行し、“X7=49160”を更新鍵として得る。復号装置200Bは暗号生成装置100Bから受け取った通知情報24904を初期値X0に設定し、復号装置200Bの秘密情報10から傾き係数を変動する写像の反復を10回実行し、“X10=49160”を更新鍵として得る。このような処理を行い、暗号生成装置100Bと復号装置200Bは共通の更新鍵を持つことができる。暗号生成装置100Bと復号装置200Bは、生成された更新鍵を共通鍵として用いる。つまり、暗号文生成と暗号文を復号して平文を得るために用いることができる。 In the reception process, the encryption generation device 100B sets the notification information 6162 received from the decryption device 200B to the initial value X0, repeats the mapping with the tilt coefficient varying from the secret information 7 of the encryption generation device 100B seven times, and ". X7 = 49160 ”is obtained as an update key. The decryption device 200B sets the notification information 24904 received from the encryption generation device 100B to the initial value X0, repeats the mapping with the tilt coefficient varying from the secret information 10 of the decryption device 200B 10 times, and sets "X10 = 49160". Get it as an update key. By performing such processing, the encryption generation device 100B and the decryption device 200B can have a common update key. The encryption generation device 100B and the decryption device 200B use the generated update key as a common key. That is, it can be used to generate a ciphertext and decrypt a ciphertext to obtain a plaintext.

以上が傾き係数Gを変動する鍵更新方法である。ただし、注意点として傾き係数Gが一定の場合に次の合同算術式が示すように、お互い送信する交換情報同士を掛け算して法Pをとることで秘密情報Sが第三者に判ってしまう。

Figure 2022056275000046

暗号生成装置100Bは“GNA(mod P)”を復号装置200Bに送信し、復号装置200Bは“GNB(mod P)”を暗号生成装置100Bに送信して、暗号生成装置100Bと復号装置200Bは共有する“GNA + NB(mod P)”を得ることになる。ところが、お互い送信した情報GNAとGNBを掛け算してPで法をとった“GNA×GNB(mod P)”と同じ値になるため、素数Pさえ判れば共有する秘密情報Sを簡単に求められる。 The above is the key update method in which the slope coefficient G is varied. However, as a caveat, when the slope coefficient G is constant, the secret information S will be known to a third party by multiplying the exchanged information transmitted to each other and taking the method P, as shown in the following joint arithmetic formula. ..
Figure 2022056275000046

The encryption generation device 100B transmits "GNA (mod P)" to the decryption device 200B, the decryption device 200B transmits "GNB (mod P)" to the encryption generation device 100B, and the encryption generation device 100B and the decryption device 200B You will get the shared "GNA + NB (mod P)". However, since the value is the same as "GNA x GNB (mod P)" obtained by multiplying the information GNA and GNB transmitted to each other by P, the secret information S to be shared can be easily obtained if only the prime number P is known. ..

図27は、傾き係数Gを変動せず固定した場合の図8(a)の処理Aプログラムを具体的な数値を用いて実行した例を示す図である。図8(a)の処理Aでは、“初期値X0=1”となる。暗号生成装置100Bは7回写像した値102、復号装置200Bは10回写像した値482をお互いに送信する。
102×482=49164に法1291をとると余りは、“106”であり、図27の表の最後尾のように暗号生成装置100Bと復号装置200Bが算出し共有した値も“106”になっており、素数Pさえ判れば簡単に暗号生成装置100Bと復号装置200Bが共有する秘密情報が判ってしまう。このため、傾き係数Gの変動パターンは最低でも2以上は必ず異なる値Gに変動されるようにすることが必要である。
FIG. 27 is a diagram showing an example in which the process A program of FIG. 8A is executed using specific numerical values when the slope coefficient G is fixed without fluctuation. In the process A of FIG. 8A, “initial value X0 = 1” is obtained. The encryption generator 100B transmits the value 102 mapped 7 times, and the decryption device 200B transmits the value 482 mapped 10 times to each other.
When the method 1291 is applied to 102 × 482 = 49164, the remainder is “106”, and the value calculated and shared by the encryption generator 100B and the decryption device 200B is also “106” as shown at the end of the table in FIG. Therefore, if only the prime number P is known, the secret information shared by the encryption generation device 100B and the decryption device 200B can be easily known. Therefore, it is necessary that the fluctuation pattern of the slope coefficient G always fluctuates to a different value G by at least 2 or more.

他の傾き係数Gの変動パターン例を図25Bに示す。共通鍵は36として2進数にすると(00100100)2になるが、図25Aの例と同じように46個分の0~8の値G個分をdG[i]に格納することを考えると、ビットから取り出す場合は8以下の0~7を対象とする3ビット分を取り出すこととする。
図25Bのスキップ1とは1ビットおきに3ビット分を取り出して並べると、
{(001)2,(010)2,(100)2,(001)2,(010)2,(100)2,(000)2,(000)2,・・・}
の合計8個分を取り出すことができる。7ビット目では9ビット目以降は同じビット列(00100100)2を最後尾につなげることで(0010010000100100)2のようにして9ビット目以降が採れるようにする。
An example of another variation pattern of the slope coefficient G is shown in FIG. 25B. The common key is 36 and becomes (001100100) 2 in binary, but considering that 46 values of 0 to 8 G are stored in dG [i] as in the example of FIG. 25A. When extracting from bits, 3 bits of 8 or less 0 to 7 are extracted.
Skip 1 in FIG. 25B means that if 3 bits are taken out and arranged every 1 bit,
{(001) 2, (010) 2, (100) 2, (001) 2, (010) 2, (100) 2, (000) 2, (000) 2, ...}
A total of 8 pieces can be taken out. In the 7th bit, the same bit string (001001100) 2 is connected to the end of the 9th and subsequent bits so that the 9th and subsequent bits can be taken as in (0010010000100100) 2.

“dG[0]=1,dG[1]=2,dG[2]=4,dG[3]=1,dG[4]=2,dG[5]=4,dG[6]=0,dG[7]=0”のように採ることで、傾き変動パターンとして8個分確保できる。
次は図25Bのスキップ2に示すように、2ビットおきに3ビット分ずつを取り出す操作を繰り返し、最後尾で足りない分は同じビット列を繋げていくという方法で8個分採る。次は図示しないが、スキップ3で3ビットおきに1ビット取るというように、同様にスキップ7まで行い、全部で8×7=56通りが取得できる。
傾き係数G=46のため、図25Bに示す数値46個を取得して傾き変動パターン2として生成する。
ここまで各種パラメータを一つの共通鍵から生成する事例として示したが、各パラメータを予め複数の共通鍵として構成することも考えられ、より秘匿性を高めることが期待できる。
以上、ベルヌーイシフト写像の傾き係数の変動を行う鍵更新方法の例を示した。
"DG [0] = 1, dG [1] = 2, dG [2] = 4, dG [3] = 1, dG [4] = 2, dG [5] = 4, dG [6] = 0, By adopting dG [7] = 0 ”, eight tilt fluctuation patterns can be secured.
Next, as shown in Skip 2 of FIG. 25B, the operation of taking out 3 bits every 2 bits is repeated, and the same bit string is connected to the missing part at the end, and 8 pieces are taken. Although not shown next, skip 3 takes 1 bit every 3 bits, and so on, skip 7 is performed in the same manner, and a total of 8 × 7 = 56 ways can be acquired.
Since the slope coefficient G = 46, 46 numerical values shown in FIG. 25B are acquired and generated as the slope fluctuation pattern 2.
Up to this point, various parameters have been shown as an example of generating from one common key, but it is also possible to configure each parameter as a plurality of common keys in advance, and it is expected that the confidentiality will be further improved.
The example of the key update method for changing the tilt coefficient of the Bernoulli shift map is shown above.

次に、更新鍵を複数生成しながら、暗号生成装置100Bで暗号化を行い、復号装置200Bへ暗号文を送信して、復号装置200Bで復号を行う例を示す。
暗号生成装置100Bと復号装置200Bの双方は同じ傾き係数Gを変動するパターンを持つ一次元写像関数を使用しているため、更新鍵を生成した以降も暗号生成装置100Bと復号装置200Bは写像毎の出力“Xi+1”は同じ値が得られる。
Next, an example will be shown in which encryption is performed by the encryption generation device 100B while generating a plurality of update keys, a ciphertext is transmitted to the decryption device 200B, and decryption is performed by the decryption device 200B.
Since both the cryptographic generator 100B and the decryption device 200B use a one-dimensional mapping function having a pattern that fluctuates the same inclination coefficient G, the cryptographic generation device 100B and the decryption device 200B keep each mapping even after the update key is generated. The output "Xi + 1" of is obtained with the same value.

このため、鍵を追加しながら任意のデータ量分を鍵と平文を合成して暗号化を行う構成が考えられる。ここで、鍵の生成は1回の写像のたびに鍵を生成して暗号化を行うのではなく、写像を何回か反復を行っては出力される“Xi+1”を鍵として追加生成することが望ましい。 For this reason, a configuration is conceivable in which a key and plaintext are synthesized and encrypted for an arbitrary amount of data while adding a key. Here, the key is not generated by generating the key for each mapping and encryption, but the mapping is repeated several times and the output "Xi + 1" is additionally generated as the key. Is desirable.

なぜなら、ベルヌーイシフト写像の式(9)より得られた“Xi+1=0.3”とすると、式(9)を1回さかのぼることを考える。“Xi<0.5”の場合は式(9)の“2Xi”を実行しているため、“Xi=Xi+1/2”から“Xi+1”に“0.3”を代入することで“Xi=0.15”、一方、“0.5≦Xi”の場合は“2Xi-1”を実行しているため、“Xi=(Xi+1+1)/2”から“Xi+1”に“0.3”を代入することで、“Xi=0.65”が得られ、“Xi+1=0.3”の情報から“0.15”か“0.65”のどちらかから写像が行われたかが推測できる。このため、1回写像を空けてXi+1を出力すれば初期値X0は2つの候補が推測できる。3回写像の反復を行って得られた結果が“Xi+1=0.3”の場合は反復の3回前はどの値から来ていたかを予測すると候補が次の8通りになる。
(0.0375,0.1625,0.2875,0.4125,0.5375,0.6625,0.7875,0.9125)
This is because, assuming that "Xi + 1 = 0.3" obtained from the Bernoulli shift mapping equation (9), it is considered that the equation (9) is traced back once. In the case of "Xi <0.5", since "2Xi" in the equation (9) is executed, "Xi =" by substituting "0.3" from "Xi = Xi + 1/2" to "Xi + 1". 0.15 ", on the other hand, in the case of" 0.5≤Xi ", since" 2Xi-1 "is being executed," 0.3 "is substituted from" Xi = (Xi + 1 + 1) / 2 "to" Xi + 1 ". By doing so, "Xi = 0.65" is obtained, and it can be inferred from the information of "Xi + 1 = 0.3" whether the mapping was performed from either "0.15" or "0.65". Therefore, if Xi + 1 is output after one mapping, two candidates can be inferred for the initial value X0. When the result obtained by repeating the mapping three times is "Xi + 1 = 0.3", the following eight candidates are obtained by predicting which value came from three times before the iteration.
(0.0375, 0.1625, 0.2875, 0.4125, 0.5375, 0.6625, 0.7875, 0.9125)

これらの値を式(9)の初期値X0として写像の反復を3回行うと、全て“X3=0.3”が得られることになる。
写像を3回空けて“Xi+1”を取得する場合は8=23通りの初期値候補が推測されるため、3ビット分の安全性が確保できることになる。つまり8ビットの強度(256個の初期値候補)を得たいときは、28=256のため写像を8回分あけて暗号化を行えばよく、写像を8回反復しては鍵を出力する構造になる。このように写像の反復をあけることで鍵の生成系列の推定が難しくなることが期待できる。
When these values are set to the initial value X0 of the equation (9) and the mapping is repeated three times, "X3 = 0.3" is obtained in all cases.
When "Xi + 1" is acquired by leaving the map three times, 8 = 23 initial value candidates are estimated, so that the safety of 3 bits can be ensured. In other words, if you want to obtain 8-bit strength (256 initial value candidates), you can encrypt by opening the map 8 times because 28 = 256, and repeat the map 8 times to output the key. become. It can be expected that it will be difficult to estimate the key generation series by opening the iterations of the mapping in this way.

次に、鍵を出力して暗号化を行い復号する暗号復号システムの処理例を示す。図28は、鍵を出力して暗号化を行い復号する暗号復号システムの動作を示すフローチャートであり、図29は、図28の処理を具体的な数値を用いて行った場合の処理を示す図である。
図29では平文としてアスキーコード3文字“map”を暗号生成装置100Bが暗号化して復号装置200Bへ送信するものとする。“map”は1文字ずつ暗号化するため各文字8ビット分のアスキーコードを10進数にすると“m=109,a=97,p=112”となる。
図28に示すように、図22の“共通鍵CK”、“傾き係数G”、“更新鍵X0”、“素数P”を引き継ぎ(S81A、S81B)、写像の反復を空ける回数Sは傾き係数Gと共通鍵CKの排他的論理和

Figure 2022056275000047
をとることで算出する(S82A、S82B)。具体的な数値として図29ではCK=36、G=46のため、
Figure 2022056275000048
としている。
ここで数Sが小さすぎる場合は所定の数値以上をとるようにしておく。 Next, a processing example of an encryption / decryption system that outputs a key, encrypts it, and decrypts it will be shown. FIG. 28 is a flowchart showing the operation of an encryption / decryption system that outputs a key, encrypts and decrypts the key, and FIG. 29 is a diagram showing processing when the processing of FIG. 28 is performed using specific numerical values. Is.
In FIG. 29, it is assumed that the encryption generation device 100B encrypts the ASCII code 3 characters “map” as plain text and transmits it to the decryption device 200B. Since "map" is encrypted one character at a time, if the ASCII code for 8 bits of each character is converted into a decimal number, it becomes "m = 109, a = 97, p = 112".
As shown in FIG. 28, the “common key CK”, “slope coefficient G”, “update key X0”, and “prime number P” of FIG. Exclusive OR of G and common key CK
Figure 2022056275000047
Is calculated by taking (S82A, S82B). As specific numerical values, since CK = 36 and G = 46 in FIG. 29,
Figure 2022056275000048
It is supposed to be.
Here, if the number S is too small, it should be set to a predetermined value or more.

次に暗号化する平文の総数nを求め、更新鍵の生成回数iを0とする(S83A、S83B)。更に、図23のフローチャートによる処理部に、反復回数Sを反復回数rに設定し、素数Pを演算精度Pに設定し、傾き係数Gを傾き係数Gに設定し、更新鍵Xiを初期値X0へ設定する(S84A、S84B)。 Next, the total number n of plaintexts to be encrypted is obtained, and the number of times i for generating the update key is set to 0 (S83A, S83B). Further, in the processing unit according to the flowchart of FIG. 23, the number of repetitions S is set to the number of repetitions r, the prime number P is set to the calculation accuracy P, the slope coefficient G is set to the slope coefficient G, and the update key Xi is set to the initial value X0. (S84A, S84B).

図24のプログラムによって傾き係数Gを変動する写像をS回反復して鍵Xiを出力する(S85A、S85B)。次の式により更新鍵Xiを出力する(S86A、S86B)。

Figure 2022056275000049
The key Xi is output by repeating the mapping with the inclination coefficient G varying S times according to the program of FIG. 24 (S85A, S85B). The update key Xi is output by the following formula (S86A, S86B).
Figure 2022056275000049

本実施形態では暗号化は素数Pを利用し有限体GF(P)上で行うこととして、鍵Kと平文Tは素数P以下の値を対象とする。図24のプログラムで示した交換する値は、Gを掛けた値としたが、生成した値をGで割り算した値を鍵とすることで値が有限体GF(P)の位数P以下になるように鍵Kを生成する。
暗号化は次の式(24)により生成した鍵Kに平文Tを掛け合わせ、素数Pで割った余りを暗号文Cとする。この式(24)により暗号文Ciを生成し、復号装置200Bへ送信する(S87A)。ステップS88Aでは、平文の総数だけ暗号化がなされたかを検出している。

Figure 2022056275000050
In the present embodiment, the encryption is performed on the finite field GF (P) using the prime number P, and the key K and the plaintext T are targeted at values of the prime number P or less. The exchanged value shown in the program of FIG. 24 is a value multiplied by G, but the value is reduced to the order P or less of the finite field GF (P) by using the value obtained by dividing the generated value by G as a key. The key K is generated so as to be.
For encryption, the key K generated by the following equation (24) is multiplied by the plaintext T, and the remainder divided by the prime number P is the ciphertext C. The ciphertext Ci is generated by this equation (24) and transmitted to the decryption device 200B (S87A). In step S88A, it is detected whether or not the encryption has been performed for the total number of plaintexts.
Figure 2022056275000050

復号は暗号文Cを受け取った復号装置200Bは暗号生成装置100Bと共有している鍵Kから逆数K-1を算出し(S87B)、暗号文Cに逆数(乗法逆元)をとることで平文Tを算出する。即ち、図28のステップS88Bに示す式により復号を行う(S88B)。
ステップS89Bでは、平文の総数だけ暗号化がなされたかを検出している。合同算術では法Pが素数であれば乗法群からなる有限体GF(P)は乗法逆元が成り立つ逆数K-1が存在することが知られている。具体的には、以下に示すようにユークリッドの互除法を用いて平文Tを導出する。
式(24)は被除数K・Tを除数Pで割った商yの剰余がCということであり以下の式が成り立つ。

Figure 2022056275000051
For decryption, the decryption device 200B that received the ciphertext C calculates the reciprocal K-1 from the key K shared with the ciphertext generator 100B (S87B), and takes the reciprocal (multiplication reverse element) to the ciphertext C to obtain plaintext. Calculate T. That is, decoding is performed by the formula shown in step S88B of FIG. 28 (S88B).
In step S89B, it is detected whether or not the encryption has been performed for the total number of plaintexts. In modal arithmetic, it is known that if the method P is a prime number, the finite field GF (P) consisting of the multiplicative group has the reciprocal K-1 for which the multiplicative element holds. Specifically, the plaintext T is derived using the Euclidean algorithm as shown below.
Equation (24) means that the remainder of the quotient y obtained by dividing the divisions K and T by the divisor P is C, and the following equation holds.
Figure 2022056275000051

ここで、上記の式における右辺の“P・y”を左辺に移項すると以下の式(25)が得られる。

Figure 2022056275000052
式(25)からベズーの等式として知られる一次不定方程式の整数解を利用することで、平文Tを導出できる。以下に一次不定方程式の解法による例を提示し、平文Tの導出について説明する。 Here, by transposing "P · y" on the right side of the above equation to the left side, the following equation (25) is obtained.
Figure 2022056275000052
The plaintext T can be derived from equation (25) by using an integer solution of a linear indefinite equation known as Bezout's equation. An example of solving a linear indefinite equation is presented below, and the derivation of the plaintext T will be described.

<定理>一次不定方程式の整数解
“a”と“b”を互いに素な整数としたとき、以下の二元一次方程式を満たす整数解“x”と“y”が存在する。

Figure 2022056275000053
<Theorem> When the integer solutions "a" and "b" of a linear indefinite equation are relatively prime integers, there are integer solutions "x" and "y" that satisfy the following two-dimensional linear equations.
Figure 2022056275000053

式(26)の“x”は式(25)平文Tにあたり、平文Tを導出する例を示す。ここで、式(26)の右辺が1になっており式(25)の右辺は暗号文Cとなっているが、有限体GF(P)上で次の式のようにKとの逆数が1になるK-1を導出する。

Figure 2022056275000054
The “x” in the equation (26) corresponds to the plaintext T in the equation (25), and an example of deriving the plaintext T is shown. Here, the right side of the equation (26) is 1, and the right side of the equation (25) is the ciphertext C, but on the finite field GF (P), the reciprocal of K is as shown in the following equation. Derivation of K-1 to be 1.
Figure 2022056275000054

一次不定方程式の整数解「拡張されたユークリッドの互除法」によって、逆数(逆元)K-1となる“x”と、“y”を求める。具体例を図30に示す。図30は、一次不定方程式の整数解を求める手順を一例の数値を入れて示す図である。図30の値は図29にて図26で得られた更新鍵49160を初期値X0に設定し、S=10回の写像の反復を行い得られた値54610をG=46で割り算した商となる値を鍵K=1187とし、素数P=1219として求めたものである。その結果が、

Figure 2022056275000055

となり、上記式のように“x=-360,y=331”が得られたが“x”はマイナス、“y”はプラスになっており式(25)と見比べると“y”はマイナス、つまり“y=-y”となるため“x”がプラスとなるよう以下の手法を利用する。 The integer solution of the linear indefinite equation "extended Euclidean algorithm" is used to find "x" and "y", which are the reciprocals (inverse elements) K-1. A specific example is shown in FIG. FIG. 30 is a diagram showing a procedure for obtaining an integer solution of a linear indefinite equation with an example numerical value. The value in FIG. 30 is the quotient obtained by setting the update key 49160 obtained in FIG. 26 in FIG. 29 to the initial value X0 and dividing the value 54610 obtained by repeating the mapping S = 10 times by G = 46. The value is obtained with the key K = 1187 and the prime number P = 1219. The result is
Figure 2022056275000055

As shown in the above equation, "x = -360, y = 331" was obtained, but "x" was negative, "y" was positive, and "y" was negative when compared with equation (25). That is, since “y = −y”, the following method is used so that “x” becomes positive.

式(26)を以下に変形する。

Figure 2022056275000056
式(27)の“a×b”の部分は差し引きで消去できるため、式(26)と等しい。
求めた値は“x=-360,b=1219”また“y=331,a=1187”であるため、これを式(27)に代入すると

と“x=931,y=-856”になり、式(25)の形式が得られ逆数K-1は“931”となる。 Equation (26) is transformed into the following.
Figure 2022056275000056
Since the “a × b” portion of the equation (27) can be eliminated by subtraction, it is equivalent to the equation (26).
Since the obtained values are "x = -360, b = 1219" and "y = 331, a = 1187", substituting this into equation (27)

And "x = 931, y = -856", the form of equation (25) is obtained, and the reciprocal K-1 is "931".

次の式のように逆数K-1を図29の平文“m”(=109)の暗号文として与えられたC=283に乗法逆元(CとK-1掛け算してPの余りを算出)を取ることで平文Tに復号する。

Figure 2022056275000057
図29は、“map”3文字分を生成された各鍵の逆数を計算して復号を行い、各平文Tを算出した実施形態を示す図である。 Calculate the remainder of P by multiplying the reciprocal K-1 by the multiplicative inverse element (C and K-1) given as the ciphertext of the plaintext "m" (= 109) in FIG. 29 as shown in the following equation. ) To decode to plaintext T.
Figure 2022056275000057
FIG. 29 is a diagram showing an embodiment in which the reciprocal of each key generated for three “map” characters is calculated and decoded, and each plaintext T is calculated.

本実施形態は、初期値を共通鍵として鍵更新を行うものとして紹介したが、共通鍵を使い回し、通信の度に各々が乱数を生成して反復回数として設定し、写像を反復して毎回異なる値を交換することでセッション鍵SKの生成としても用いることができる。 In this embodiment, the key is updated using the initial value as the common key, but the common key is reused, each generates a random number for each communication and sets it as the number of repetitions, and the mapping is repeated every time. It can also be used to generate a session key SK by exchanging different values.

以上のように、本実施形態では初期値を共通鍵とした共通鍵暗号方式を示したが、Diffie-Hellman鍵共有のように初期値を第三者に公開する形態にて写像の反復のステップ数を秘密情報とした暗号復号システムとしても良い。この場合、初期値を公開するため、安全性は低くなるが通信者間で各々が生成する写像の反復のステップ数を秘密情報として送信データにマスキング(スクランブル)がかけられるため、無線回線やインターネット回線の第三者によるキャプチャリングに対して簡単な漏洩防止を行うことが可能である。
一般的な共通鍵暗号方式では鍵の管理が必要であるのに対して、この第3の実施形態では、共通鍵の共有が不要になるため、鍵の管理を不要とすることができる利点を有する。
As described above, in the present embodiment, the common key cryptosystem using the initial value as the common key is shown, but the step of repeating the mapping in the form of disclosing the initial value to a third party such as Diffie-Hellman key sharing. It may be a cryptographic decryption system using a number as confidential information. In this case, since the initial value is disclosed, the security is low, but the transmission data is masked (scrambled) with the number of steps of iterating the mapping generated by each communicator as confidential information, so that the wireless line or the Internet is used. It is possible to easily prevent leakage against capture by a third party on the line.
While key management is required in a general common key cryptosystem, in this third embodiment, sharing of a common key is not required, so that there is an advantage that key management can be eliminated. Have.

前述の第1の実施形態では一変数多項式によるDiffie-Hellman型の鍵共有方法を示したが、一変数多項式による一次元写像においても写像の反復回数が最終的に同じであれば同じ数を得ることが考えられる。
しかしながら、生成元Gが一定の場合は第3の実施形態で示したように一変数多項式を図17に示す三角関数の位相に置き換えて計算すると、生成元Gは一定のため交換する値と“初期値X0=sin2(π/P)”の設定から素数Pが推定される場合は共有する秘密情報が簡単に判ってしまう。なぜなら、2次以上の一変数多項式でも位相θに着目すると位相の上ではベルヌーイシフト写像の演算を行っていることと同等であるため、生成元Gを固定にした場合と同じ状況になり、位相の計算を追うことで図27のように秘密情報が簡単に特定できるからである。
In the first embodiment described above, a Diffie-Hellman type key sharing method using a one-variable polynomial is shown, but even in a one-dimensional mapping using a one-variable polynomial, if the number of iterations of the map is finally the same, the same number is obtained. Is possible.
However, when the generator G is constant, as shown in the third embodiment, when the one-variable polynomial is replaced with the phase of the trigonometric function shown in FIG. When the prime number P is estimated from the setting of "initial value X0 = sin2 (π / P)", the secret information to be shared can be easily known. This is because even in a one-variable polynomial of degree 2 or higher, focusing on the phase θ is equivalent to performing the Bernoulli shift mapping operation on the phase, so the situation is the same as when the generator G is fixed, and the phase. This is because the confidential information can be easily identified as shown in FIG. 27 by following the calculation of.

そこで、この第4の実施形態では、図14の一変数多項式の係数に着目し、係数を共通鍵とした鍵更新を行う暗号復号システム、暗号復号方法、暗号復号用プログラムを提供する。
図31は、第4の実施形態に係る暗号復号システムのブロック図である。図31は、第3の実施形態に係る暗号復号システムのブロック図の第1の暗号側更新鍵生成部105に代えて、暗号生成装置100Cには、第2の暗号側更新鍵生成部106が設けられ、第1の復号側更新鍵生成部205に代えて、復号装置200Cには第2の復号側更新鍵生成部206が設けられている点を除き、同一である。
Therefore, in this fourth embodiment, we focus on the coefficient of the one-variable polynomial in FIG. 14, and provide a cryptographic decryption system, a cryptographic decryption method, and a cryptographic decryption program that perform key update using the coefficient as a common key.
FIG. 31 is a block diagram of the encryption / decryption system according to the fourth embodiment. In FIG. 31, instead of the first encryption side update key generation unit 105 in the block diagram of the encryption / decryption system according to the third embodiment, the encryption generation device 100C has a second encryption side update key generation unit 106. It is the same except that the decoding device 200C is provided with a second decryption side update key generation unit 206 instead of the first decryption side update key generation unit 205.

第2の暗号側更新鍵生成部106は、暗号側共通鍵生成部102から共通鍵を受け取り、この共通鍵により一変数多項式を生成しこの一変数多項式による一次元写像を行い、暗号側交換情報を生成する。第2の復号側更新鍵生成部206は、復号側共通鍵生成部202から共通鍵を受け取り、この共通鍵により前記一変数多項式を生成しこの一変数多項式による一次元写像を行い、復号側交換情報を生成する。 The second cryptographic side update key generation unit 106 receives the common key from the cryptographic side common key generation unit 102, generates a one-variable polynomial with this common key, performs one-dimensional mapping with this one-variable polynomial, and performs cryptographic side exchange information. To generate. The second decoding side update key generation unit 206 receives the common key from the decoding side common key generation unit 202, generates the one-variable polynomial with this common key, performs one-dimensional mapping with this one-variable polynomial, and exchanges the decoding side. Generate information.

前記第2の暗号側更新鍵生成部は、復号側交換情報を受け取ってこの復号側交換情報を用いて前記一変数多項式による一次元写像を行い、更新鍵を生成し、
前記第2の復号側更新鍵生成部は、暗号側交換情報を受け取ってこの暗号側交換情報を用いて前記一変数多項式による一次元写像を行い、更新鍵を生成する。
The second cryptographic side update key generator receives the decryption side exchange information, performs one-dimensional mapping by the one-variable polynomial using the decryption side exchange information, and generates an update key.
The second decryption side update key generation unit receives the encryption side exchange information, performs one-dimensional mapping by the one-variable polynomial using the encryption side exchange information, and generates an update key.

本実施形態では、例として図14の次数G=4の一変数多項式の係数を共通鍵から変更することを考える。第1の実施形態において用いている図13で示したガウスの消去法では、4次の一変数多項式の解を(1,0,1,0)として、係数“a,b,c,d”を求めていた。
本実施形態では、共通鍵が8ビット(00100100)2(十進数36)として半分に分割すると、(0010)2と(0100)2になり、十進数にすると2と4となる。この2と4は“1”に対して2%分と4%分を減算するといったルールとして当てることを考え“0.98”と“0.96”が算出され、4次の一変数多項式の解を“(0.98,0,0.96,0)”に変更して与える。これを図13に示すガウスの消去法をコンピュータにプログラミング実装して、式(21)においてG=4としてxを得た場合と同じ次の値

Figure 2022056275000058
を与えて係数“a,b,c,d”を求めると次のような式(28)が得られる。
Figure 2022056275000059
In the present embodiment, as an example, consider changing the coefficient of the one-variable polynomial of degree G = 4 in FIG. 14 from the common key. In the Gauss-Jordan method shown in FIG. 13 used in the first embodiment, the coefficient “a, b, c, d” is set to (1,0,1,0) as the solution of the fourth-order one-variable polynomial. I was looking for.
In the present embodiment, when the common key is divided in half as 8 bits (001100100) 2 (decimal number 36), it becomes (0010) 2 and (0100) 2, and when it is made into a decimal number, it becomes 2 and 4. Considering that these 2 and 4 are applied as a rule such as subtracting 2% and 4% from "1", "0.98" and "0.96" are calculated, and the fourth-order one-variable polynomial Change the solution to "(0.98,0,0.96,0)" and give it. This is implemented by programming the Gauss-Jordan method shown in FIG. 13 on a computer, and the same next value as when x is obtained by setting G = 4 in the equation (21).
Figure 2022056275000058
Is given to obtain the coefficients “a, b, c, d”, and the following equation (28) is obtained.
Figure 2022056275000059

式(28)において、係数の桁は小数点以下6位まで示している。式(28)のxを0~1に振ってプロットしたものが図31Aのグラフである。グラフでは、

Figure 2022056275000060
のとき f(x0)=0.98、
のとき f(x2)=0.96
となっている。
図32は、式(28)を用いて鍵を更新するフローチャートであり、図33は、具体的な数値による本実施形態の動作を説明する図である。
この実施形態では、共通鍵CKを入手し(S91A、S91B)、共通鍵CKから多項式を生成し(S92A、S92B)、図32のフローチャートによる処理部に、秘密鍵情報である数Saを反復回数rに設定し、共通鍵CKを初期値X0へ設定する(S93A、S93B)。
次に、暗号生成装置100Cでは、多項式一元写像をSa回反復して結果Xsaを得て、これを復号装置200Cへ送信する(S94A)。復号装置200Cでは、多項式一元写像をSb回反復して結果Xsbを得て、これを暗号生成装置100Cへ送信する(S94B)。
次に、暗号生成装置100Cでは、結果Xsbを受信し(S95A)、復号装置200Cでは、結果Xsaを受信する(S95B)。暗号生成装置100Cでは、秘密鍵情報Saを反復回数rに設定し、結果Xsbを初期値X0へ設定し(S96A)、復号装置200Cでは、秘密鍵情報Sbを反復回数rに設定し、結果Xsaを初期値X0へ設定する(S96B)。
次に、暗号生成装置100Cでは、多項式一次元写像をSa回反復計算し、更新鍵Xkを得る(S97A)。暗号生成装置100Cでは、多項式一次元写像をSb回反復計算し、更新鍵Xkを得る(S97B)。 In equation (28), the digits of the coefficient are shown to the sixth decimal place. The graph of FIG. 31A is a plot in which x in the equation (28) is swayed from 0 to 1. In the graph,
Figure 2022056275000060
When f (x0) = 0.98,
When f (x2) = 0.96
It has become.
FIG. 32 is a flowchart for updating the key using the equation (28), and FIG. 33 is a diagram illustrating the operation of the present embodiment by specific numerical values.
In this embodiment, the common key CK is obtained (S91A, S91B), a polynomial is generated from the common key CK (S92A, S92B), and the number Sa, which is the secret key information, is repeated in the processing unit according to the flowchart of FIG. 32. Set to r and set the common key CK to the initial value X0 (S93A, S93B).
Next, the encryption generation device 100C repeats the polynomial unity mapping Sa times to obtain the result Xsa, which is transmitted to the decryption device 200C (S94A). The decryption device 200C repeats the polynomial unity mapping Sb times to obtain the result Xsb, which is transmitted to the encryption generation device 100C (S94B).
Next, the encryption generator 100C receives the result Xsb (S95A), and the decryption device 200C receives the result Xsa (S95B). In the encryption generator 100C, the secret key information Sa is set to the number of repetitions r, the result Xsb is set to the initial value X0 (S96A), and in the decryption device 200C, the secret key information Sb is set to the number of repetitions r, and the result Xsa. Is set to the initial value X0 (S96B).
Next, in the encryption generator 100C, the polynomial one-dimensional map is iteratively calculated Sa times to obtain the update key Xk (S97A). In the encryption generator 100C, the polynomial one-dimensional map is iteratively calculated Sb times to obtain the update key Xk (S97B).

本実施形態では、有限桁を扱う計算機との親和性から、式(28)の整数演算化を考える。
図14の“f4(x)”の多項式は次のようになっている

Figure 2022056275000061

In this embodiment, considering the affinity with a computer that handles finite digits, the integer arithmetic of the equation (28) is considered.
The polynomial of "f4 (x)" in FIG. 14 is as follows.
Figure 2022056275000061

図14の“f4(x)”のグラフの横軸xと縦軸f4(x)の区間は1となっているが、これをM倍に拡大する場合は次のような式で表される。

Figure 2022056275000062

上記の記号
Figure 2022056275000063
は整数を扱い、値Nの小数点以下は切り捨てにするという意味である。 The section between the horizontal axis x and the vertical axis f4 (x) in the graph of “f4 (x)” in FIG. 14 is 1, but when this is magnified M times, it is expressed by the following equation. ..
Figure 2022056275000062

Symbol above
Figure 2022056275000063
Means that integers are treated and the value N after the decimal point is rounded down.

式(28)を図31の横軸と縦軸の最大区間がM=1から例としてM=10000になるように拡大して整数演算化を行った一変数多項式による一次元写像は、次の漸化式(29)になる。

Figure 2022056275000064

The one-dimensional mapping by the one-variable polynomial obtained by expanding the equation (28) from M = 1 to M = 10000 as an example so that the maximum interval of the horizontal axis and the vertical axis of FIG. It becomes the recurrence formula (29).
Figure 2022056275000064

図33は、図32のフローチャートにより式(29)にて鍵更新を行った計算の例を示す図である。
図33では共通鍵の値36より式(29)を生成して、“初期値X0=36”と共通鍵の値を設定し、暗号生成装置100Cは秘密情報として7を設定し式(29)を7回反復して、“X7=8086”を得て復号装置200Cに送信する。一方、復号装置200Cは秘密情報として10を設定し、式(29)を10回反復して“X10=7284”を得て暗号生成装置100Cに送信する。
FIG. 33 is a diagram showing an example of calculation in which the key is updated by the equation (29) according to the flowchart of FIG. 32.
In FIG. 33, the equation (29) is generated from the common key value 36, “initial value X0 = 36” and the common key value are set, and the encryption generator 100C sets 7 as secret information and the equation (29). Is repeated 7 times to obtain "X7 = 8086" and transmit it to the decoding device 200C. On the other hand, the decryption device 200C sets 10 as confidential information, repeats the equation (29) 10 times to obtain "X10 = 7284" and transmits it to the encryption generation device 100C.

復号装置200Cから“7284”を受け取った暗号生成装置100Cは、暗号生成装置100Cのみが知る秘密情報7より初期値X0=7284に設定して式(29)を7回反復することで“X7=4721”を更新鍵として得る。一方、暗号生成装置100Cから“8086”を受け取った復号装置200Cは式(29)を復号装置200Cのみが知る秘密情報10より初期値X0=8086に設定して式(29)を10回反復することで“X10=4721”を更新鍵として得ることで暗号生成装置100Cと復号装置200Cは共通鍵を更新する。 The encryption generation device 100C that has received "7284" from the decryption device 200C sets the initial value X0 = 7284 from the secret information 7 known only to the encryption generation device 100C, and repeats the equation (29) seven times to obtain "X7 =". 4721 "is obtained as an update key. On the other hand, the decryption device 200C receiving "8086" from the encryption generation device 100C sets the equation (29) to the initial value X0 = 8086 from the secret information 10 known only to the decryption device 200C, and repeats the equation (29) 10 times. By obtaining "X10 = 4721" as the update key, the encryption generation device 100C and the decryption device 200C update the common key.

図34は、一変数多項式の生成について別の手法を示す図である。図34では、3次の一変数多項式”f(x)”と、2次の一変数多項式“g(x)”2つを用意する。ここで式(28)を生成したときのように、共通鍵からf(x)に“0.98”とg(x)に“0.96”を極大値に与えて、一変数多項式を生成する。この2つの関数を合成することで次の6次の一変数多項式数“h(x)”を生成する。

Figure 2022056275000065
FIG. 34 is a diagram showing another method for generating a one-variable polynomial. In FIG. 34, a cubic one-variable polynomial “f (x)” and a quadratic one-variable polynomial “g (x)” are prepared. Here, as in the case of generating equation (28), a one-variable polynomial is generated by giving "0.98" to f (x) and "0.96" to g (x) from the common key as maximum values. do. By synthesizing these two functions, the next 6th-order one-variable polynomial number "h (x)" is generated.
Figure 2022056275000065

これらは係数を変更した一変数多項式を生成して係数を共通鍵として用いるが、注意点としては、係数の選択は写像の反復を繰り返すことで急激に周期帯に落ちない(収束しない)、また発散しないパラメータ帯である必要がある。 These generate a one-variable polynomial with modified coefficients and use the coefficients as a common key, but note that the selection of coefficients does not suddenly fall into the periodic zone (does not converge) by repeating the mapping. It needs to be a parameter band that does not diverge.

本実施形態では、暗号生成装置100Cと復号装置200Cがお互い乱数を発生させ、そのステップ数の写像を行った結果の値を交換して共通鍵を更新する例として示した。これに対し、第3の実施形態で述べたように共通鍵(初期値)を公開する場合に安全性は低くなるが通信者間で各々が生成する写像の反復のステップ数を秘密情報として鍵共有を行うようにしても良い。 In the present embodiment, the encryption generation device 100C and the decryption device 200C generate random numbers to each other, and the values obtained by mapping the number of steps are exchanged to update the common key. On the other hand, as described in the third embodiment, when the common key (initial value) is disclosed, the security is low, but the number of steps of the iteration of the mapping generated by each communicator is used as the key as secret information. You may try to share.

なお、これまでの実施形態では、説明のため演算の桁を少なくとっていたが、Diffie-Hellman鍵共有方式では、現在2048bit以上の桁が推奨されているように演算の桁幅をより大きく取ることで安全性を確保するものとする。 In the previous embodiments, the number of digits in the calculation was reduced for the sake of explanation, but in the Diffie-Hellman key sharing method, the digit width of the calculation is increased as currently recommended for digits of 2048 bits or more. This shall ensure safety.

ロジスティック写像とテント写像が位相共役であることに着目すると、本発明の実施形態に示した2次以上の次数を持つ一変数多項式による一次元写像でもDiffie-Hellman型の鍵共有方式とできることが考えられ、ベルヌーイシフト写像ではメモリを確保し検索処理(IF分岐)を行っていたが、それが不要となり切れ目なく写像の反復が行えることが期待できる。また、公開鍵暗号方式において合同算術以外に一次元写像が有効であることを示すことができた。
Diffie-Hellman鍵共有方式は、各々の秘密情報をべき乗数としてお互い最終的なべき乗の回数が同じであればお互い共有する秘密情報を出力できることに着目すると、一次元写像で初期値を共通鍵とし秘密情報を写像の反復回数とする共通鍵を更新する装置やシステムが考えられる。この構成にて初期値を公開値にした場合に安全性は低くなるが、通信者各々の写像の反復回数を秘密情報として送信データをマスキングすることで第三者に情報漏洩の防止が可能となり鍵管理が不要になる暗号システムが提供できる。
更に、暗号生成側と復号側がお互い共有する共通鍵を写像の反復回数とする暗号化と復号を行う暗号方法によれば、離散対数問題を安全性根拠とした一次元写像による共通鍵暗号方法と、鍵共有とセッション鍵生成を含めた「制御パラメータ」と「写像の反復回数」を二重の鍵とする堅牢な共通鍵暗号複号システムを提供できる。
本発明に係る複数の実施形態を説明したが、これらの実施形態は例として提示するものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
Focusing on the fact that the logistic map and the tent map are phase-conjugated, it is considered that the Diffie-Hellman type key sharing method can be used even for a one-dimensional map using a one-variable polynomial having a second or higher order as shown in the embodiment of the present invention. In the Bernoulli shift mapping, memory was secured and search processing (IF branching) was performed, but it is no longer necessary and it can be expected that the mapping can be repeated seamlessly. In addition, it was possible to show that one-dimensional mapping is effective in public key cryptography in addition to modal arithmetic.
Focusing on the fact that the Diffie-Hellman key sharing method can output secret information shared by each other if the number of final powers is the same as each secret information as a power multiplier, the initial value is used as a common key in a one-dimensional mapping. A device or system that updates a common key whose secret information is the number of iterations of mapping can be considered. In this configuration, the safety is low when the initial value is set to the public value, but it is possible to prevent information leakage to a third party by masking the transmitted data using the number of iterations of each map of the communicator as confidential information. It is possible to provide a cryptographic system that eliminates the need for key management.
Furthermore, according to the encryption method in which the common key shared by the encryption generation side and the decryption side is the number of iterations of the mapping, the common key encryption method using the one-dimensional mapping based on the discrete logarithmic problem is used. It is possible to provide a robust common key cryptographic compound code system in which "control parameters" including key sharing and session key generation and "number of mapping iterations" are double keys.
Although a plurality of embodiments according to the present invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other embodiments, and various omissions, replacements, and changes can be made without departing from the gist of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are also included in the scope of the invention described in the claims and the equivalent scope thereof.

10・・・CPU、11・・・主メモリ、12・・・バス、13・・・外部記憶インタフェース、14・・・入力インタフェース、15・・・表示インタフェース、16・・・通信インタフェース、23・・・外部記憶装置、24・・・入力装置、25・・・表示装置、26-1~26-n・・・ポート、100、100A、100B、100C・・・暗号生成装置、101・・・暗号生成部、102・・・暗号側共通鍵生成部、103・・・暗号側セッション鍵生成部、104・・・乱数生成部、105・・・第1の暗号側更新鍵生成部、106・・・第2の暗号側更新鍵生成部、200、200A、200B、200C・・・復号装置、201・・・復号部、202・・・復号側共通鍵生成部、203・・・復号側セッション鍵生成部、205・・・第1の復号側更新鍵生成部、206・・・第2の復号側更新鍵生成部 10 ... CPU, 11 ... Main memory, 12 ... Bus, 13 ... External storage interface, 14 ... Input interface, 15 ... Display interface, 16 ... Communication interface, 23. External storage device, 24 ... Input device, 25 ... Display device, 26-1 to 26-n ... Port, 100, 100A, 100B, 100C ... Cryptographic generator, 101 ... Cryptographic generation unit, 102 ... Cryptographic side common key generation unit, 103 ... Cryptographic side session key generation unit, 104 ... Randomness generation unit, 105 ... First cryptographic side update key generation unit, 106. Second encryption side update key generation unit, 200, 200A, 200B, 200C ... Decryptor, 201 ... Decryption unit, 202 ... Decryption side common key generation unit, 203 ... Decryption side session Key generation unit, 205 ... First decryption side update key generation unit, 206 ... Second decryption side update key generation unit

Claims (21)

演算により暗号文を生成する暗号生成部を有する暗号生成装置と、前記暗号生成装置から暗号文を受けて暗号文を復号し平文とする復号部を有する復号装置とを具備する暗号復号システムにおいて、
前記暗号生成装置と前記復号装置には、一次元写像の演算によりそれぞれで生成した通知情報の交換を行って同一の共通鍵を生成する暗号側共通鍵生成部と復号側共通鍵生成部が備えられ、
前記暗号生成部は前記共通鍵に基づく暗号生成を行い、前記復号部は前記共通鍵に基づく復号処理を行うことを特徴とする暗号復号システム。
In a cryptographic decryption system including a cryptographic generator having a ciphertext generator that generates a ciphertext by calculation, and a decryption device having a decryption device that receives the ciphertext from the ciphertext generator and decrypts the ciphertext into plain text.
The cryptographic generator and the decryption device are provided with a cryptographic side common key generation unit and a decryption side common key generation unit that exchange notification information generated by each of them by a one-dimensional mapping calculation to generate the same common key. Be,
A encryption / decryption system characterized in that the encryption generation unit performs encryption generation based on the common key, and the decryption unit performs decryption processing based on the common key.
前記暗号側共通鍵生成部と前記復号側共通鍵生成部とは、それぞれで異なる固有の秘密情報を保持すると共に同じ2数値を保持し、それぞれが前記秘密情報と前記2数値を用いて一次元写像の演算を行って通知情報を生成することを特徴とする請求項1に記載の暗号復号システム。 The encryption side common key generation unit and the decryption side common key generation unit each hold different unique secret information and hold the same two numerical values, and each holds the secret information and the two numerical values in one dimension. The encryption / decryption system according to claim 1, wherein the notification information is generated by performing a mapping calculation. 前記暗号側共通鍵生成部と前記復号側共通鍵生成部とは、通知情報を受け取ると、この通知情報と前記秘密情報を用いて一次元写像の演算により共通鍵を生成することを特徴とする請求項2に記載の暗号復号システム。 When the encryption side common key generation unit and the decryption side common key generation unit receive the notification information, the encryption side common key generation unit and the decryption side common key generation unit are characterized in that a common key is generated by a one-dimensional mapping calculation using the notification information and the secret information. The encryption / decryption system according to claim 2. 前記暗号生成装置には、前記暗号側共通鍵生成部により生成された共通鍵に基づき前記一次元写像の演算を行ってセッション鍵を生成する暗号側セッション鍵生成部が備えられ、
前記暗号生成部は、前記共通鍵と前記セッション鍵とを用いて暗号文を生成し、
前記復号装置には、前記復号側共通鍵生成部により生成された共通鍵に基づき前記一次元写像の演算を行ってセッション鍵を生成する復号側セッション鍵生成部が備えられ、
前記復号部は、前記共通鍵と前記セッション鍵とを用いた復号により平文を生成することを特徴とする請求項1乃至3のいずれか1項に記載の暗号復号システム。
The cryptographic generator is provided with a cryptographic side session key generation unit that generates a session key by performing an operation on the one-dimensional mapping based on the common key generated by the cryptographic side common key generation unit.
The cipher-generating unit generates a ciphertext using the common key and the session key.
The decoding device is provided with a decoding side session key generation unit that generates a session key by performing an operation on the one-dimensional mapping based on the common key generated by the decoding side common key generation unit.
The encryption / decryption system according to any one of claims 1 to 3, wherein the decryption unit generates plaintext by decryption using the common key and the session key.
前記暗号生成装置には、乱数を生成し前記暗号側セッション鍵生成部と前記復号側セッション鍵生成部へ送出する乱数生成部が備えられていることを特徴とする請求項4に記載の暗号復号システム。 The encryption / decryption according to claim 4, wherein the encryption generation device includes a random number generation unit that generates a random number and sends the random number to the encryption side session key generation unit and the decryption side session key generation unit. system. 前記暗号側セッション鍵生成部と前記復号側セッション鍵生成部とは、ベルヌーイシフト写像またはロジスティック写像によりセッション鍵を生成することを特徴とする請求項4または5に記載の暗号復号システム。 The encryption / decryption system according to claim 4 or 5, wherein the encryption side session key generation unit and the decryption side session key generation unit generate a session key by a Bernoulli shift mapping or a logistic mapping. 前記暗号生成装置には、前記暗号側共通鍵生成部から共通鍵を受け取り、この共通鍵により一変数多項式を生成しこの一変数多項式による一次元写像を行い、暗号側交換情報を生成する第2の暗号側更新鍵生成部が備えられ、
前記復号装置には、前記復号側共通鍵生成部から共通鍵を受け取り、この共通鍵により前記一変数多項式による一次元写像を行い、復号側交換情報を生成する第2の復号側更新鍵生成部が備えられ、
前記第2の暗号側更新鍵生成部は、復号側交換情報を受け取ってこの復号側交換情報を用いて前記一変数多項式による一次元写像を行い、更新鍵を生成し、
前記第2の復号側更新鍵生成部は、暗号側交換情報を受け取ってこの暗号側交換情報を用いて前記一変数多項式による一次元写像を行い、更新鍵を生成することを特徴とする請求項1乃至8のいずれか1項に記載の暗号復号システム。
The cryptographic generator receives a common key from the cryptographic side common key generation unit, generates a one-variable polynomial with this common key, performs one-dimensional mapping with the one-variable polynomial, and generates cryptographic side exchange information. The cryptographic side update key generator is provided,
The decoding device receives a common key from the decoding side common key generation unit, performs a one-dimensional mapping by the one-variable polynomial with this common key, and generates a decoding side exchange information. Is provided,
The second cryptographic side update key generator receives the decryption side exchange information, performs one-dimensional mapping by the one-variable polynomial using the decryption side exchange information, and generates an update key.
The second decryption-side update key generation unit receives the encryption-side exchange information, performs one-dimensional mapping by the one-variable polynomial using the encryption-side exchange information, and generates an update key. The encryption / decryption system according to any one of 1 to 8.
前記暗号生成部では、生成された更新鍵を用いた暗号生成を行い、
前記復号部では、生成された更新鍵を用いた復号を行うことを特徴とする請求項5または7に記載の暗号復号システム。
In the cipher generation unit, cipher generation using the generated update key is performed.
The encryption / decryption system according to claim 5 or 7, wherein the decryption unit performs decryption using the generated update key.
演算により暗号文を生成する暗号生成部を有する暗号生成装置と、前記暗号生成装置から暗号文を受けて該暗号文を復号し平文とする復号部を有する復号装置とにおいて行われる暗号復号方法において、
前記暗号生成装置と前記復号装置には、暗号側共通鍵生成部と復号側共通鍵生成部が備えられ、
前記暗号生成部において共通鍵に基づく暗号生成を行い、前記復号部において共通鍵に基づく復号処理を行うことを特徴とする暗号復号方法。
In a cryptographic decryption method performed by a cryptographic generator having a ciphertext generator that generates a ciphertext by calculation and a decryption device having a decryption unit that receives a ciphertext from the ciphertext generator and decrypts the ciphertext into a plain text. ,
The encryption generator and the decryption device are provided with a cryptographic side common key generation unit and a decryption side common key generation unit.
A cryptographic decryption method comprising a cryptographic generation based on a common key in the cryptographic generation unit and a decryption process based on the common key in the decryption unit.
前記暗号側共通鍵生成部と前記復号側共通鍵生成部とにおいて、それぞれで異なる固有の秘密情報を保持すると共に同じ2数値を保持し、それぞれが前記秘密情報と前記2数値を用いて一次元写像の演算を行って通知情報を生成することを特徴とする請求項9に記載の暗号復号方法。 The cryptographic side common key generation unit and the decryption side common key generation unit each hold different unique secret information and hold the same two numerical values, and each holds the same two numerical values in one dimension using the secret information and the two numerical values. The encryption / decryption method according to claim 9, wherein the notification information is generated by performing a mapping calculation. 前記暗号側共通鍵生成部と前記復号側共通鍵生成部においては、通知情報を受け取ると、この通知情報と前記秘密情報を用いて一次元写像の演算により共通鍵を生成することを特徴とする請求項10に記載の暗号復号方法。 When the notification information is received, the encryption-side common key generation unit and the decryption-side common key generation unit are characterized in that a common key is generated by a one-dimensional mapping calculation using the notification information and the secret information. The encryption / decryption method according to claim 10. 前記一次元写像を、ベルヌーイシフト写像としたこと特徴とする請求項11に記載の暗号復号方法。 The encryption / decryption method according to claim 11, wherein the one-dimensional map is a Bernoulli shift map. 前記一次元写像を、一変数多項式の一次元写像としたこと特徴とする請求項11に記載の暗号復号方法。 The encryption / decryption method according to claim 11, wherein the one-dimensional map is a one-dimensional map of a one-variable polynomial. 前記暗号生成装置には、暗号側セッション鍵生成部が備えられ、この暗号側セッション鍵生成部においては、前記暗号側共通鍵生成部により生成された共通鍵に基づき前記一次元写像の演算を行ってセッション鍵を生成し、
前記暗号生成部においては、前記共通鍵と前記セッション鍵とを用いて暗号文を生成し、
前記復号装置には、復号側セッション鍵生成部が備えられ、この復号側セッション鍵生成部においては、前記復号側共通鍵生成部により生成された共通鍵に基づき前記一次元写像の演算を行ってセッション鍵を生成し、
前記復号部においては、前記共通鍵と前記セッション鍵とを用いた復号により平文を生成することを特徴とする請求項11乃至13のいずれか1項に記載の暗号復号方法。
The encryption generation device is provided with a encryption side session key generation unit, and the encryption side session key generation unit performs an operation of the one-dimensional mapping based on the common key generated by the encryption side common key generation unit. Generate a session key
In the cipher generator, a ciphertext is generated using the common key and the session key.
The decoding device is provided with a decoding side session key generation unit, and the decoding side session key generation unit performs an operation of the one-dimensional mapping based on the common key generated by the decoding side common key generation unit. Generate a session key and
The encryption / decryption method according to any one of claims 11 to 13, wherein the decryption unit generates plaintext by decryption using the common key and the session key.
前記暗号生成装置には、乱数生成部が備えられ、この乱数生成部において乱数を生成し前記暗号側セッション鍵生成部と前記復号側セッション鍵生成部へ送出することを特徴とする請求項14に記載の暗号復号方法。 13. The described encryption / decryption method. 前記暗号側セッション鍵生成部と前記復号側セッション鍵生成部においては、ベルヌーイシフト写像またはロジスティック写像によりセッション鍵を生成することを特徴とする請求項14または15に記載の暗号復号方法。 The encryption / decryption method according to claim 14, wherein the encryption-side session key generation unit and the decryption-side session key generation unit generate a session key by a Bernoulli shift mapping or a logistic mapping. 前記暗号生成装置には、第1の暗号側更新鍵生成部が備えられ、この第1の暗号側更新鍵生成部においては、前記暗号側共通鍵生成部から共通鍵を受け取り、この共通鍵によりベルヌーイシフト写像を行い、暗号側交換情報を生成し、
前記復号装置には、第1の復号側更新鍵生成部が備えられ、この第1の復号側更新鍵生成部においては、前記復号側共通鍵生成部から共通鍵を受け取り、この共通鍵によりベルヌーイシフト写像を行い、復号側交換情報を生成し、
前記第1の暗号側更新鍵生成部においては、復号側交換情報を受け取ってこの復号側交換情報を用いてベルヌーイシフト写像を行い、更新鍵を生成し、
前記第1の復号側更新鍵生成部においては、暗号側交換情報を受け取ってこの暗号側交換情報を用いてベルヌーイシフト写像を行い、更新鍵を生成することを特徴とする請求項9乃至16のいずれか1項に記載の暗号復号方法。
The encryption generation device is provided with a first encryption side update key generation unit, and the first encryption side update key generation unit receives a common key from the encryption side common key generation unit and uses this common key. Performs Bernoulli shift mapping, generates cryptographic exchange information,
The decryption device is provided with a first decryption side update key generation unit, and the first decoding side update key generation unit receives a common key from the decryption side common key generation unit, and Bernoulli receives the common key from this common key. Shift mapping is performed, decoding side exchange information is generated, and
The first encryption-side update key generation unit receives the decryption-side exchange information, performs Bernoulli shift mapping using the decryption-side exchange information, and generates an update key.
Claims 9 to 16, wherein the first decryption-side update key generation unit receives the encryption-side exchange information, performs Bernoulli shift mapping using the encryption-side exchange information, and generates an update key. The encryption / decryption method according to any one item.
生成された更新鍵を共通鍵またはセッション鍵として用いることを特徴とする請求項17に記載の暗号復号方法。 The encryption / decryption method according to claim 17, wherein the generated update key is used as a common key or a session key. 前記暗号生成装置には、第2の暗号側更新鍵生成部が備えられ、この第2の暗号側更新鍵生成部においては、前記暗号側共通鍵生成部から共通鍵を受け取り、この共通鍵により一変数多項式を生成しこの一変数多項式による一次元写像を行い、暗号側交換情報を生成し、
前記復号装置には、第2の復号側更新鍵生成部が備えられ、この第2の復号側更新鍵生成部において、前記復号側共通鍵生成部から共通鍵を受け取り、この共通鍵により前記一変数多項式を生成しこの一変数多項式による一次元写像を行い、復号側交換情報を生成し、
前記第2の暗号側更新鍵生成部においては、復号側交換情報を受け取ってこの復号側交換情報を用いて前記一変数多項式による一次元写像を行い、更新鍵を生成し、
前記第2の復号側更新鍵生成部においては、暗号側交換情報を受け取ってこの暗号側交換情報を用いて前記一変数多項式による一次元写像を行い、更新鍵を生成することを特徴とする請求項9乃至18のいずれか1項に記載の暗号復号方法。
The encryption generation device is provided with a second encryption side update key generation unit, and the second encryption side update key generation unit receives a common key from the encryption side common key generation unit and uses this common key. A one-variable polynomial is generated, a one-dimensional mapping is performed by this one-variable polymorphism, and cryptographic side exchange information is generated.
The decryption device is provided with a second decryption side update key generation unit, and the second decoding side update key generation unit receives a common key from the decryption side common key generation unit, and the common key is used to receive the common key. A variable polynomial is generated, a one-dimensional mapping is performed by this one-variable polynomial, and the decoding side exchange information is generated.
The second cryptographic side update key generation unit receives the decryption side exchange information, performs one-dimensional mapping by the one-variable polynomial using the decryption side exchange information, and generates an update key.
The second decryption-side update key generation unit receives the encryption-side exchange information, performs one-dimensional mapping by the one-variable polynomial using the encryption-side exchange information, and generates an update key. Item 9. The encryption / decryption method according to any one of Items 9 to 18.
前記暗号生成部においては、生成された更新鍵を用いた暗号生成を行い、
前記復号部においては、生成された更新鍵を用いた復号を行うことを特徴とする請求項18または19に記載の暗号復号方法。
In the cipher generation unit, cipher generation using the generated update key is performed.
The encryption / decryption method according to claim 18, wherein the decryption unit performs decryption using the generated update key.
暗号復号システムの暗号生成装置に備えられたコンピュータを、
演算により暗号文を生成する暗号生成部として機能させ、
暗号復号システムの復号装置に備えられたコンピュータを、前記暗号生成装置から暗号文を受けて該暗号文を復号し平文とする復号部として機能させ、
更に、コンピュータを
前記暗号生成装置に備えられたコンピュータと前記復号装置コンピュータを、一次元写像の演算によりそれぞれで生成した通知情報の交換を行って同一の共通鍵を生成する暗号側共通鍵生成部と復号側共通鍵生成部、
として機能させ、
前記暗号生成装置に備えられたコンピュータを、前記暗号生成部として前記共通鍵に基づく暗号生成を行うように機能させ、
前記復号装置に備えられたコンピュータを、前記復号部として前記共通鍵に基づく復号処理を行うように機能させる
ことを特徴とする暗号復号用プログラム。
A computer equipped with a cryptographic generator of a cryptographic decryption system,
It functions as a ciphertext generator that generates ciphertext by calculation,
A computer provided in the decryption device of the encryption / decryption system is made to function as a decryption unit that receives a ciphertext from the ciphertext generator and decrypts the ciphertext into plaintext.
Further, the cryptographic side common key generator that generates the same common key by exchanging the notification information generated by the computer provided in the cryptographic generator and the decryption device computer by the calculation of one-dimensional mapping. And the decryption side common key generator,
To function as
A computer provided in the encryption generator is made to function as the encryption generation unit to generate encryption based on the common key.
A encryption / decryption program, characterized in that a computer provided in the decryption device functions as the decryption unit to perform a decryption process based on the common key.
JP2020164201A 2020-09-29 2020-09-29 Encryption/decryption system, encryption/decryption method, and encryption/decryption program Active JP7406108B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020164201A JP7406108B2 (en) 2020-09-29 2020-09-29 Encryption/decryption system, encryption/decryption method, and encryption/decryption program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020164201A JP7406108B2 (en) 2020-09-29 2020-09-29 Encryption/decryption system, encryption/decryption method, and encryption/decryption program

Publications (3)

Publication Number Publication Date
JP2022056275A true JP2022056275A (en) 2022-04-08
JP2022056275A5 JP2022056275A5 (en) 2022-10-05
JP7406108B2 JP7406108B2 (en) 2023-12-27

Family

ID=80998481

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020164201A Active JP7406108B2 (en) 2020-09-29 2020-09-29 Encryption/decryption system, encryption/decryption method, and encryption/decryption program

Country Status (1)

Country Link
JP (1) JP7406108B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002540721A (en) * 1999-03-25 2002-11-26 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Multi-node encryption and key distribution
JP2008117373A (en) * 2006-10-31 2008-05-22 Samsung Electronics Co Ltd Method and apparatus for digital rights management
JP2016529753A (en) * 2013-08-30 2016-09-23 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. Key sharing device and method
JP2020052215A (en) * 2018-09-26 2020-04-02 東芝情報システム株式会社 Public key encryption system, public key encryption method, and public key encryption program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002540721A (en) * 1999-03-25 2002-11-26 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Multi-node encryption and key distribution
JP2008117373A (en) * 2006-10-31 2008-05-22 Samsung Electronics Co Ltd Method and apparatus for digital rights management
JP2016529753A (en) * 2013-08-30 2016-09-23 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. Key sharing device and method
JP2020052215A (en) * 2018-09-26 2020-04-02 東芝情報システム株式会社 Public key encryption system, public key encryption method, and public key encryption program

Also Published As

Publication number Publication date
JP7406108B2 (en) 2023-12-27

Similar Documents

Publication Publication Date Title
JP4774509B2 (en) Pseudo random number generation system
CA2723319C (en) A closed galois field cryptographic system
US10515567B2 (en) Cryptographic machines with N-state lab-transformed switching devices
CA2632857C (en) Closed galois field combination
JP5572610B2 (en) Transpose data conversion for security enhancement
JP2005215688A (en) Hardware encryption/decryption apparatus using s-box operation, and method for the same
JP2011164607A (en) Method and system for privacy-preserving computation of edit distance of symbol sequence
JP2007316614A (en) Hash value generating device, program, and hash value generating method
US11288985B2 (en) Encryption device, decryption device, encryption method, decryption method, encryption program product, and decryption program product
JP7023584B2 (en) Public key cryptosystem, public key cryptosystem, public key crypto program
Chaouch et al. Software application for simulation-based AES, RSA and elliptic-curve algorithms
JP5207153B2 (en) Pseudo random number generation system
JP7406108B2 (en) Encryption/decryption system, encryption/decryption method, and encryption/decryption program
Mihalkovich et al. MPF based symmetric cipher performance comparison to AES and TDES
JP2006517036A (en) Apparatus and method for manipulating masked data
JP2012177893A (en) Encryption processing system, encryption device, decryption device, program, and encryption processing method
JP2018092010A (en) Encryption device and encryption method, encryption program, key generation device, key generation method, and key generation program
JP5268011B2 (en) Encryption system and decryption system
Hammoud Multiple Image Encryption for Business Applications using DNA Coding, Jigsaw Transform, and Chaos Theory
JP5268010B2 (en) Encryption system and decryption system
Wade The Iso-RSA Cryptographic Scheme
WO2023091636A1 (en) Use of random entropy in cryptography
JP2006309201A (en) Multiplex scalar multiplying operation device in elliptic curve cryptosystem, signature verification device, and programs
Johnson FPGA Implementation of WG Stream Cipher

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220926

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220926

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20220926

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230803

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231127

R150 Certificate of patent or registration of utility model

Ref document number: 7406108

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150