JP2022056275A - Cryptographic decryption system, cryptographic decryption method, and cryptographic decryption program - Google Patents
Cryptographic decryption system, cryptographic decryption method, and cryptographic decryption program Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 132
- 238000013507 mapping Methods 0.000 claims abstract description 138
- 238000012545 processing Methods 0.000 claims abstract description 28
- 238000004364 calculation method Methods 0.000 claims description 96
- 230000008569 process Effects 0.000 claims description 37
- 230000006870 function Effects 0.000 claims description 27
- 238000010586 diagram Methods 0.000 description 30
- 230000000739 chaotic effect Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 5
- 230000002829 reductive effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 102220588435 Keratin, type I cytoskeletal 18_S34A_mutation Human genes 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 230000008030 elimination Effects 0.000 description 3
- 238000003379 elimination reaction Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000002194 synthesizing effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 102220588695 Keratin, type I cytoskeletal 18_S53A_mutation Human genes 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 150000001875 compounds Chemical class 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- XPYGGHVSFMUHLH-UUSULHAXSA-N falecalcitriol Chemical compound C1(/[C@@H]2CC[C@@H]([C@]2(CCC1)C)[C@@H](CCCC(O)(C(F)(F)F)C(F)(F)F)C)=C\C=C1\C[C@@H](O)C[C@H](O)C1=C XPYGGHVSFMUHLH-UUSULHAXSA-N 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- NCGICGYLBXGBGN-UHFFFAOYSA-N 3-morpholin-4-yl-1-oxa-3-azonia-2-azanidacyclopent-3-en-5-imine;hydrochloride Chemical compound Cl.[N-]1OC(=N)C=[N+]1N1CCOCC1 NCGICGYLBXGBGN-UHFFFAOYSA-N 0.000 description 1
- 102220560886 Aldehyde dehydrogenase family 16 member A1_S38A_mutation Human genes 0.000 description 1
- 102220561477 Aldehyde dehydrogenase family 16 member A1_S85A_mutation Human genes 0.000 description 1
- 102220561414 Aldehyde dehydrogenase family 16 member A1_S88A_mutation Human genes 0.000 description 1
- 102220522837 Brain acid soluble protein 1_S87A_mutation Human genes 0.000 description 1
- 102220571247 Cell division cycle protein 20 homolog_S41A_mutation Human genes 0.000 description 1
- 241000136406 Comones Species 0.000 description 1
- 102220485819 Desmoplakin_S28A_mutation Human genes 0.000 description 1
- 102220485816 Desmoplakin_S32A_mutation Human genes 0.000 description 1
- 102220638051 E3 ubiquitin-protein ligase RFWD3_S37A_mutation Human genes 0.000 description 1
- 102220636733 E3 ubiquitin-protein ligase RFWD3_S46A_mutation Human genes 0.000 description 1
- 102220636731 E3 ubiquitin-protein ligase RFWD3_S63A_mutation Human genes 0.000 description 1
- 102220638049 E3 ubiquitin-protein ligase RFWD3_S65A_mutation Human genes 0.000 description 1
- 102220638505 E3 ubiquitin-protein ligase RFWD3_S84A_mutation Human genes 0.000 description 1
- 102220638215 E3 ubiquitin-protein ligase RFWD3_S92A_mutation Human genes 0.000 description 1
- 102220638235 E3 ubiquitin-protein ligase RFWD3_S95A_mutation Human genes 0.000 description 1
- 101001115218 Homo sapiens Ubiquitin-40S ribosomal protein S27a Proteins 0.000 description 1
- 102220588441 Keratin, type I cytoskeletal 18_S30A_mutation Human genes 0.000 description 1
- 102220588436 Keratin, type I cytoskeletal 18_S31A_mutation Human genes 0.000 description 1
- 102220588433 Keratin, type I cytoskeletal 18_S42A_mutation Human genes 0.000 description 1
- 102220588444 Keratin, type I cytoskeletal 18_S44A_mutation Human genes 0.000 description 1
- 102220588443 Keratin, type I cytoskeletal 18_S47A_mutation Human genes 0.000 description 1
- 102220588696 Keratin, type I cytoskeletal 18_S51A_mutation Human genes 0.000 description 1
- 102220471249 M-phase inducer phosphatase 1_S82A_mutation Human genes 0.000 description 1
- 102220479869 Protein FAM180A_S62A_mutation Human genes 0.000 description 1
- 102220484577 Protein NDNF_S43A_mutation Human genes 0.000 description 1
- 102220473584 Putative ankyrin repeat domain-containing protein 26-like protein_S67A_mutation Human genes 0.000 description 1
- 102220483407 Septin-4_S91A_mutation Human genes 0.000 description 1
- 102220471539 Single-stranded DNA cytosine deaminase_S39A_mutation Human genes 0.000 description 1
- 102220471544 Single-stranded DNA cytosine deaminase_S86A_mutation Human genes 0.000 description 1
- 102220471558 Single-stranded DNA cytosine deaminase_S94A_mutation Human genes 0.000 description 1
- 102220585512 T cell receptor gamma constant 1_S60A_mutation Human genes 0.000 description 1
- 102220585513 T cell receptor gamma constant 1_S83A_mutation Human genes 0.000 description 1
- 102220536512 THAP domain-containing protein 1_S52A_mutation Human genes 0.000 description 1
- 102220536494 THAP domain-containing protein 1_S55A_mutation Human genes 0.000 description 1
- 102220598993 Transcriptional coactivator YAP1_S61A_mutation Human genes 0.000 description 1
- 102100023341 Ubiquitin-40S ribosomal protein S27a Human genes 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 102220198042 rs121913407 Human genes 0.000 description 1
- 102220280441 rs776730435 Human genes 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Abstract
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
特許文献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を出力するカオス信号出力手段から構成される。これによって、再現性のあるカオス的時系列信号を高速出力し、高安全性の暗号装置などを実現する。
特許文献4には、情報を暗号化して伝送するのに好適な暗号通信システムが開示されている。暗号通信システムの送信装置と受信装置とは、それぞれ秘密鍵と公開鍵を生成すると共に、現在時刻を基に乱数を生成し、生成された乱数を用いてセッション鍵を作り、RSA暗号の技術を用いてセッション鍵を共有する。共有されたセッション鍵は、乱数の暗号化にも用いられ、暗号化された乱数を復号したときに元の乱数と一致することをもって、セッション鍵が認証される。伝送すべき情報は、認証されたセッション鍵により、ベクトルストリーム暗号によって伝送され、通信の秘密を保つことができる。
特許文献5には、暗号生成装置が開示されている。この装置は、鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、生成されたパラメータ列を用いてカオス演算を行ってカオスノイズを得るカオスノイズ発生手段と、カオスノイズを平文情報に対して適用する演算を行って暗号文を得る排他的論理和回路と、排他的論理和回路により得られる暗号文を上記カオスノイズ発生手段へフィードバックするフィードバック経路とを具備する。上記カオスノイズ発生手段においては、フィードバックされた暗号文に基づきカオス演算を行い、カオスノイズを得る。この構成によって、平文と暗号文の1ペアから、他の暗号文の解読を不可能にする。
上記の共通鍵暗号方式は、鍵の管理を必要とし通信相手が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.
<Diffie-Hellman鍵共有方法>
従来、鍵共有の方法として、Diffie-Hellman鍵共有方法が知られている。この方法は、歴史上初めて鍵の配送問題を解決した鍵を共有するアルゴリズムとして知られている。図1は、Diffie-Hellman鍵共有方法のシーケンスである。
ここでは、暗号生成装置と復号装置が、秘密の共通鍵を共有する場合を説明する。暗号生成装置と復号装置は式(1)の合同算術式に関し、その生成元gと法(modulo)とする素数Pをお互いに連絡して合意する(S11)。
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).
暗号生成装置は秘密情報として暗号生成装置のみが知る2以上P未満の数(自然数)Saを生成する(S12)。復号装置は秘密情報として復号装置のみが知る2以上P未満の数(自然数)Sbを生成する(S13)。暗号生成装置は復号装置と合意した生成元gと法となる素数Pを式(1)に設定する。暗号生成装置は秘密情報である数Saを式(1)のべき乗rに設定した次の式(2)による演算を実行し、余りyaを生成する。生成したyaは通知情報としてBに送信する(S14)。
一方、復号装置は秘密情報である数Sbを式(1)のべき乗rに設定して次の式(3)による演算を実行し、余りybを生成する。復号装置は、生成したybを通知情報として暗号生成装置へ送信する(S15)。
次に、暗号生成装置と復号装置が共有する秘密情報(共通鍵)を生成する。
暗号生成装置は復号装置から通知情報ybを受信し、通知情報ybを式(1)の生成元gに設定し、暗号生成装置(暗号生成装置のユーザなど)のみが知る数Saを式(1)のべき乗rに設定して余りCaを生成する(S16)。
処理を式で表すと次の式(4)となる。
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).
一方、復号側置は、暗号生成装置から通知情報yaを受信し、通知情報yaを式(2)の生成元gに設定し複号装置(復号装置のユーザなど)のみが知る数Sbをべき乗rに設定して余りCbを生成する(S17)。
処理を式で表すと次の式(6)となる。
When the processing is expressed by an equation, it becomes the following equation (6).
暗号生成装置と復号装置で求めた余りCaとCbは次の式(8)の関係が成り立っており、暗号生成装置と復号装置はこの同じ数“Ca=Cb”をAとBで共有する共通鍵として使用することができる。
上記の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.
以下添付図面を参照して、本発明の第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
暗号生成装置100には、演算により暗号文を生成する暗号生成部101と、暗号側共通鍵生成部102が備えられている。復号装置200には、上記暗号生成装置100から暗号文を受けて該暗号文を復号し平文とする復号部201と、復号側共通鍵生成部202が備えられている。暗号側共通鍵生成部102と復号側共通鍵生成部202とは、一次元写像の演算によりそれぞれで生成した通知情報の交換を行って同一の共通鍵を生成する。
The
図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
CPU10には、バス12を介して外部記憶インタフェース13、入力インタフェース14、表示インタフェース15、通信インタフェース16が接続されている。外部記憶インタフェース13には、状態変動検出用プログラム等のプログラムと必要なデータ等が記憶されている外部記憶装置23が接続されている。入力インタフェース14には、コマンドやデータを入力するための入力装置としてのキーボードなどの入力装置24とポインティングデバイスとしてのマウス22が接続されている。
An
表示インタフェース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
一次元写像の一例としてベルヌーイシフト写像を挙げることができ、ベルヌーイシフト写像と先に説明した合同算術とは、同期することを突き止めた。
<ベルヌーイシフト写像について>
ベルヌーイシフト写像は、次の式(9)で定義される。
<About Bernoulli shift mapping>
The Bernoulli shift map is defined by the following equation (9).
図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に示す。
図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」を用いる。
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".
“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
なお、図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
<ベルヌーイシフト写像による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
図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
一方、図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
次に、暗号側共通鍵生成部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
The cryptographic side common
一方、復号側共通鍵生成部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
FIG. 10A is a flowchart until the cryptographic side common
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
Further, when the encryption side common
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次となる。
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.
ロジスティック写像の式(12)の初期値X0を三角関数sin2θの場合として代入する。
より
のため、最終的に
が得られる。同様に求めたX1を式(12)に代入することでX2は
Than
Because of
Is obtained. By substituting the similarly obtained X1 into the equation (12), X2 can be obtained.
式(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に戻る。この現象は、上記で合同算術とベルヌーイシフト写像が同期する機構を示したことからも理解できる。
この位相の周期性から式(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)のように構成されることが予想できる。
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.
次に以上の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)に示す連立方程式を立てることで求められる。
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.
上記式(16)の連立方程式の項“x0,x1,x2,x3”に対しては各(2)、(3)、(4)、(5)からsin2θの値を次のように代入することで、“a,b,c,d”からなる連立方程式が4つ得られる。
得られた4つの連立方程式から係数“a,b,c,d”を導出する手法を紹介する。
式(16)は行列を使って表すと次の行列式(18)になる。
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.
ここで式(18)の“4×4”の変数xの行列部分を“X”、係数(a,b,c,d)を“A”、(0,1,0,1)を“E”とおくと、
となり逆行列X-1を用意して式(19)の両辺にかけると、
となり、逆行列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,
When the inverse matrix X-1 is prepared and applied to both sides of equation (19),
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次の多項式を求めた例で示したように
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.
ここで、式(20)において、“n=0”のときは解“f(x)=f(0)=0”となるため、式(15)で“e=0”になることを示したように、“x”が0次の項(定数項)は必ず“0”となるため、式(20)の“k=0”の場合を除いて、
例えばG=5の場合は式(17)を参考にして“x”は、
の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).
For example, in the case of G = 5, "x" is based on the equation (17).
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のとき
から図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.
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)の関係が成り立つ。
なお、合成関数の生成はインタプリタ型言語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.
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
図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
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)のロジスティック写像の多項式
送信前の処理では暗号側共通鍵生成部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とも表記)を用いて計算した結果となる。
In the processing before transmission, the cryptographic side common
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
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.
列“ArcSIN”のセルに数式“=19*ASIN(SQRT(Xi))/PI()”を代入し、“Xi”を参照してGを求めている。
Gについて列“DH”(Diffie-Hellman鍵共有)と比較して説明する。
位相の初期値を“π/19”とし、次の式(24)の“n”を0,1,2,3,…と振った値と、多項式で行った“Xi”の結果は上記の説明からも区間[0,1]で同じ値をとる。
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].
図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
ところで、図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
次に、図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
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
次に、図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
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
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
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の式の場合では、
また、インタプリタ型言語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.
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と平文との排他的論理和をとる以下の式を採用する場合を仮定する。
そこで、第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
本実施形態では、一次元写像にて写像の反復回数を秘密鍵として割り当てることで離散対数問題に基づく安全性を確保してセッション鍵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
The common key CK (Comon Key) and the random number RND are combined in advance as secret information shared by the
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
Hereinafter, the
The slope coefficient G sets the
As the prime number P of the calculation accuracy, the nearest prime number 8447 of 8460 or less as a result of multiplying the
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
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
It is assumed that the
写像の反復回数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
次に、復号部201は受信した暗号文を復号する。式(14)のフェルマーの小定理を使うため、復号の原理について説明する。Pを素数とし、GをPの倍数でない整数(GとPは互いに素[最大公約数が1]、つまりPが素数であればよい)とするときに、合同算術では次のフェルマーの小定理
上記で説明したように合同算術の余りと整数演算化したベルヌーイシフト写像の式(11)は同じ値を取得することができる。つまり、演算精度をPとする式(11)のベルヌーイシフト写像の反復を“P-1”回行うことで、Xi値が元に戻る周期を持っていることが判る。この機構から暗号生成部101は既にSK回の写像の反復を行っているため、復号部201は受信した暗号文を初期値X0に設定して残り回数の“P-1-SK”回の写像の反復を行うことで復号部201は暗号文を平文に戻す復号が行える(S53B~S55B)。
この暗号方法では秘密情報を写像の反復回数とするだけでなく、傾き係数Gと演算精度Pも秘密情報から生成するため第三者にとって追跡の手掛かりが小さくなるため安全性を高める効果を得ることができる。
Next, the
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
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
The slope coefficient G gives the
上記から、反復回数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
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
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
The
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
更に、第1の暗号側更新鍵生成部105は、復号側交換情報を受け取ってこの復号側交換情報を用いてベルヌーイシフト写像を行い、更新鍵を生成する。また、第1の復号側更新鍵生成部205は、暗号側交換情報を受け取ってこの暗号側交換情報を用いてベルヌーイシフト写像を行い、更新鍵を生成する。
Further, the first encryption side update
上記第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のフローチャートに示される次の数式によって決定する。
Gmaxは予めプロトコルで決めておき、Gminは“CK×CK mod Gmax”の剰余がゼロになった場合に、最小の傾き係数Gは2以上にするため“Gmin=2”を入れておく。次に、求めた傾き係数Gと素数Pより
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
暗号生成装置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
Is set (S65A).
Similarly, the
Is set (S65B).
次に、図23に示される傾き係数Gの変動パターンを決定する(SAF23)。
変数yを用意し、演算精度Pに傾き係数Gを割り算した余りの値“y=P mod G”とする。
次の合同算術式より法を素数PとしてG回繰り返しyを更新し、yから傾き係数の最大をGとして、Gに対して20%をとった値をdG[i]としてG個分格納する。
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. ..
次に、具体的な計算値を、図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
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
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
以上で、傾き係数Gが変動するパターンが決まり、傾き係数Gを変動しながらベルヌーイシフト写像の反復演算を行う。傾き係数Gの変動は図23のフローチャートにも示すように
例えば、傾き係数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.
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
暗号生成装置100BではXsbを受け取り(S67A)、このXsbを初期値X0として設定して(S68A)、ベルヌーイシフト写像をSa回反復した更新鍵Xkを出力する(SAF23)。復号装置200BではXsaを受け取り(S67B)、このXsaを初期値X0として設定して(S68B)、ベルヌーイシフト写像をSb回反復した更新鍵Xkを出力する(SAF23)。
The
図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
受信処理では暗号生成装置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
以上が傾き係数Gを変動する鍵更新方法である。ただし、注意点として傾き係数Gが一定の場合に次の合同算術式が示すように、お互い送信する交換情報同士を掛け算して法Pをとることで秘密情報Sが第三者に判ってしまう。
暗号生成装置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. ..
The
図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
When the
他の傾き係数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.
{(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
Since the slope coefficient G = 46, 46 numerical values shown in FIG. 25B are acquired and generated as the
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
Since both the
このため、鍵を追加しながら任意のデータ量分を鍵と平文を合成して暗号化を行う構成が考えられる。ここで、鍵の生成は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
次に、鍵を出力して暗号化を行い復号する暗号復号システムの処理例を示す。図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の排他的論理和
ここで数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
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
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)。
本実施形態では暗号化は素数Pを利用し有限体GF(P)上で行うこととして、鍵Kと平文Tは素数P以下の値を対象とする。図24のプログラムで示した交換する値は、Gを掛けた値としたが、生成した値をGで割り算した値を鍵とすることで値が有限体GF(P)の位数P以下になるように鍵Kを生成する。
暗号化は次の式(24)により生成した鍵Kに平文Tを掛け合わせ、素数Pで割った余りを暗号文Cとする。この式(24)により暗号文Ciを生成し、復号装置200Bへ送信する(S87A)。ステップS88Aでは、平文の総数だけ暗号化がなされたかを検出している。
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
復号は暗号文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ということであり以下の式が成り立つ。
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.
ここで、上記の式における右辺の“P・y”を左辺に移項すると以下の式(25)が得られる。
<定理>一次不定方程式の整数解
“a”と“b”を互いに素な整数としたとき、以下の二元一次方程式を満たす整数解“x”と“y”が存在する。
式(26)の“x”は式(25)平文Tにあたり、平文Tを導出する例を示す。ここで、式(26)の右辺が1になっており式(25)の右辺は暗号文Cとなっているが、有限体GF(P)上で次の式のようにKとの逆数が1になるK-1を導出する。
一次不定方程式の整数解「拡張されたユークリッドの互除法」によって、逆数(逆元)K-1となる“x”と、“y”を求める。具体例を図30に示す。図30は、一次不定方程式の整数解を求める手順を一例の数値を入れて示す図である。図30の値は図29にて図26で得られた更新鍵49160を初期値X0に設定し、S=10回の写像の反復を行い得られた値54610をG=46で割り算した商となる値を鍵K=1187とし、素数P=1219として求めたものである。その結果が、
となり、上記式のように“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
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)を以下に変形する。
求めた値は“x=-360,b=1219”また“y=331,a=1187”であるため、これを式(27)に代入すると
と“x=931,y=-856”になり、式(25)の形式が得られ逆数K-1は“931”となる。
Equation (26) is transformed into the following.
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に復号する。
本実施形態は、初期値を共通鍵として鍵更新を行うものとして紹介したが、共通鍵を使い回し、通信の度に各々が乱数を生成して反復回数として設定し、写像を反復して毎回異なる値を交換することでセッション鍵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
そこで、この第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
第2の暗号側更新鍵生成部106は、暗号側共通鍵生成部102から共通鍵を受け取り、この共通鍵により一変数多項式を生成しこの一変数多項式による一次元写像を行い、暗号側交換情報を生成する。第2の復号側更新鍵生成部206は、復号側共通鍵生成部202から共通鍵を受け取り、この共通鍵により前記一変数多項式を生成しこの一変数多項式による一次元写像を行い、復号側交換情報を生成する。
The second cryptographic side update
前記第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を得た場合と同じ次の値
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).
式(28)において、係数の桁は小数点以下6位まで示している。式(28)のxを0~1に振ってプロットしたものが図31Aのグラフである。グラフでは、
のとき 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,
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
Next, the
Next, in the
本実施形態では、有限桁を扱う計算機との親和性から、式(28)の整数演算化を考える。
図14の“f4(x)”の多項式は次のようになっている
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.
図14の“f4(x)”のグラフの横軸xと縦軸f4(x)の区間は1となっているが、これをM倍に拡大する場合は次のような式で表される。
上記の記号
Symbol above
式(28)を図31の横軸と縦軸の最大区間がM=1から例としてM=10000になるように拡大して整数演算化を行った一変数多項式による一次元写像は、次の漸化式(29)になる。
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).
図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
復号装置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
図34は、一変数多項式の生成について別の手法を示す図である。図34では、3次の一変数多項式”f(x)”と、2次の一変数多項式“g(x)”2つを用意する。ここで式(28)を生成したときのように、共通鍵からf(x)に“0.98”とg(x)に“0.96”を極大値に与えて、一変数多項式を生成する。この2つの関数を合成することで次の6次の一変数多項式数“h(x)”を生成する。
これらは係数を変更した一変数多項式を生成して係数を共通鍵として用いるが、注意点としては、係数の選択は写像の反復を繰り返すことで急激に周期帯に落ちない(収束しない)、また発散しないパラメータ帯である必要がある。 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
なお、これまでの実施形態では、説明のため演算の桁を少なくとっていたが、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.
前記暗号生成部は、前記共通鍵と前記セッション鍵とを用いて暗号文を生成し、
前記復号装置には、前記復号側共通鍵生成部により生成された共通鍵に基づき前記一次元写像の演算を行ってセッション鍵を生成する復号側セッション鍵生成部が備えられ、
前記復号部は、前記共通鍵と前記セッション鍵とを用いた復号により平文を生成することを特徴とする請求項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.
前記復号装置には、前記復号側共通鍵生成部から共通鍵を受け取り、この共通鍵により前記一変数多項式による一次元写像を行い、復号側交換情報を生成する第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.
前記暗号生成部においては、前記共通鍵と前記セッション鍵とを用いて暗号文を生成し、
前記復号装置には、復号側セッション鍵生成部が備えられ、この復号側セッション鍵生成部においては、前記復号側共通鍵生成部により生成された共通鍵に基づき前記一次元写像の演算を行ってセッション鍵を生成し、
前記復号部においては、前記共通鍵と前記セッション鍵とを用いた復号により平文を生成することを特徴とする請求項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.
前記復号装置には、第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.
前記復号装置には、第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.
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)
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 |
-
2020
- 2020-09-29 JP JP2020164201A patent/JP7406108B2/en active Active
Patent Citations (4)
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 |