(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-12-13
(45)【発行日】2022-12-21
(54)【発明の名称】ディオファントス方程式及び人工知能が関与する暗号、復号、及び鍵生成の装置並びに方法
(51)【国際特許分類】
G09C 1/00 20060101AFI20221214BHJP
【FI】
G09C1/00 610Z
【外国語出願】
(21)【出願番号】P 2022097392
(22)【出願日】2022-06-16
【審査請求日】2022-08-17
(31)【優先権主張番号】10202109894Y
(32)【優先日】2021-09-09
(33)【優先権主張国・地域又は機関】SG
【早期審査対象出願】
(73)【特許権者】
【識別番号】522242247
【氏名又は名称】エアーズ インベストメント ホールディングス プライベート リミテッド
(74)【代理人】
【識別番号】110002527
【氏名又は名称】弁理士法人北斗特許事務所
(72)【発明者】
【氏名】林 明量
【審査官】行田 悦資
(56)【参考文献】
【文献】特開2015-031935(JP,A)
【文献】特開2002-258743(JP,A)
【文献】特開2006-194990(JP,A)
【文献】AKIYAMA, K., et al.,A Public-key Encryption Scheme Based on Non-linear Indeterminate Equations,2018年07月30日,pp.1-52,Cryptology ePrint Archive, Paper 2017/1241, [online], [令和4年11月22日検索], インターネット<URL:https://eprint.iacr.org/2017/1241>
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
少なくとも1つの平文を受信することと、
前記少なくとも1つの平文を少なくとも1つの事前暗号整数(M1,…,Mn)に変換することと、
前記少なくとも1つの事前暗号整数(M1,…,Mn)と、少なくとも1つの対称鍵から導出される少なくとも1つの変数解集合(v1,…,vn)とを利用し、前記少なくとも1つの変数解集合(v1,…,vn)により解くことが可能な少なくとも1つのディオファントス方程式を生成することと、これは、
前記少なくとも1つの変数解集合(v1,…,vn)の第1部分集合を利用して、少なくとも1つの初期ディオファントス方程式を生成し、
前記少なくとも1つの変数解集合(v1,…,vn)の第2部分集合から導出される隠蔽変数を利用して、前記少なくとも1つの初期ディオファントス方程式を変更して前記少なくとも1つのディオファントス方程式を生成することを含み、
学習済みAIモデルを利用して前記少なくとも1つのディオファントス方程式の非可解性又は可解性を予測することと、
もし前記学習済みAIモデルによって前記少なくとも1つのディオファントス方程式が非可解と予測された場合、前記少なくとも1つのディオファントス方程式を少なくとも1つの暗号文として提供することと、
を含む、
暗号方法。
【請求項2】
もし前記少なくとも1つのディオファントス方程式の一の部分集合以外である、前記少なくとも1つのディオファントス方程式のいずれか1つが、前記学習済みAIモデルによって可解と予測され、かつ、少なくとも1つの替わりのディオファントス方程式が、前記学習済みAIモデルによって非可解と予測された場合、前記少なくとも1つの替わりのディオファントス方程式と、前記少なくとも1つのディオファントス方程式の前記一の部分集合とを暗号文として提供することを更に含み、これは、
前記少なくとも1つの替わりのディオファントス方程式を生成し、前記学習済みAIモデルを利用して前記少なくとも1つの替わりのディオファントス方程式の非可解性又は可解性を予測することを含む、
請求項1に記載の暗号方法。
【請求項3】
前記少なくとも1つの変数解集合(v1,…,vn)を利用して、少なくとも1つの偽のディオファントス方程式を生成することと、
前記少なくとも1つの偽のディオファントス方程式の一の解を非整数として確認することとを更に含み、
前記学習済みAIモデルを利用して前記少なくとも1つのディオファントス方程式の非可解性又は可解性を予測することは、
前記学習済みAIモデルを利用して前記少なくとも1つの偽のディオファントス方程式の非可解性又は可解性を予測することを含み、
もし前記学習済みAIモデルによって前記少なくとも1つのディオファントス方程式が非可解と予測された場合、前記少なくとも1つのディオファントス方程式を少なくとも1つの暗号文として提供することは、
もし前記学習済みAIモデルによって前記少なくとも1つの偽のディオファントス方程式が非可解と予測された場合、前記少なくとも1つの偽のディオファントス方程式を前記少なくとも1つの暗号文の偽の暗号文として提供することを含む、
請求項1に記載の暗号方法。
【請求項4】
前記少なくとも1つの変数解集合における各変数は、暗号文説明変数から更に導出される、
請求項1に記載の暗号方法。
【請求項5】
前記暗号文説明変数は、前の暗号文のディオファントス方程式における変数の係数に基づいていて、
前記前の暗号文のディオファントス方程式における前記変数は、前の暗号文説明変数に基づく多項式の次数を含む、
請求項4に記載の暗号方法。
【請求項6】
前記少なくとも1つの変数解集合(v1,…,vn)の前記第2部分集合から導出された前記隠蔽変数を利用して、前記少なくとも1つの初期ディオファントス方程式を変更して前記少なくとも1つのディオファントス方程式を生成することは、
前記隠蔽変数で、前記少なくとも1つの初期ディオファントス方程式に加算、減算、乗算、及び/又は除算を実行することを含む、
請求項1に記載の暗号方法。
【請求項7】
前記少なくとも1つの事前暗号整数(M1,…,Mn)と、少なくとも1つの対称鍵から導出された少なくとも1つの変数解集合(v1,…,vn)とを利用し、前記少なくとも1つの変数解集合(v1,…,vn)により解くことが可能な少なくとも1つのディオファントス方程式を生成することは、
複数の互いに素である整数を利用して、前記少なくとも1つの事前暗号整数(M1,…,Mn)を複数の分割整数に分割することと、
前記複数の分割整数を利用して、前記少なくとも1つのディオファントス方程式の複数のディオファントス方程式を生成することと、を含み、
前記複数の互いに素である整数の総数、前記複数の分割整数の総数、及び前記複数のディオファントス方程式の総数は、等しい、
請求項1に記載の暗号方法。
【請求項8】
前記少なくとも1つの事前暗号整数(M1,…,Mn)を前記複数の分割整数に分割することは、
前記少なくとも1つの事前暗号整数(M1,…,Mn)、及び複数の除数である前記複数の互いに素である整数を利用した複数のモジュロ演算を実行することと、その実行結果から複数の余りである前記複数の分割整数を導出することと、を含む、
請求項7に記載の暗号方法。
【請求項9】
コンピュータ実行可能な指示を格納するための少なくとも1つの記憶部と、
前記少なくとも1つの記憶部と通信可能に接続されて、前記コンピュータ実行可能な指示を実行して、請求項1~8のいずれか1項に記載の暗号方法を実行するように構成された少なくとも1つのプロセッサと、
を備える、
暗号装置。
【請求項10】
少なくとも1つのコンピュータプロセッサに、請求項1~8のいずれか1項に記載の暗号方法を実行させるように構成されたコンピュータ実行可能な指示を含む、
非一時的な、コンピュータ可読媒体。
【請求項11】
少なくとも1つの平文を受信するように構成された平文入力部と、
少なくとも1つの対称鍵を受信するように構成された対称鍵入力部と、
前記平文入力部と通信可能に接続されて、前記平文入力部から前記少なくとも1つの平文を受信し、前記少なくとも1つの平文を少なくとも1つの事前暗号整数(M1,…,Mn)に変換するように構成された平文整数部と、
前記対称鍵入力部と通信可能に接続されて、前記対称鍵入力部から前記少なくとも1つの対称鍵を受信し、前記少なくとも1つの対称鍵を利用して少なくとも1つの変数解集合(v1,…,vn)を導出するように構成された多項式生成部と、
前記平文整数部及び前記多項式生成部と通信可能に接続されて、前記多項式生成部から前記少なくとも1つの変数解集合(v1,…,vn)を受信し、前記少なくとも1つの変数解集合(v1,…,vn)の第1部分集合を利用して少なくとも1つの初期ディオファントス方程式を生成して、前記少なくとも1つの変数解集合(v1,…,vn)の第2部分集合から導出される隠蔽変数を利用して前記少なくとも1つの初期ディオファントス方程式を変更するように構成されていることで、前記少なくとも1つの事前暗号整数(M1,…,Mn)及び前記少なくとも1つの変数解集合(v1,…,vn)を利用して前記少なくとも1つの変数解集合(v1,…,vn)により解くことが可能な少なくとも1つのディオファントス方程式を生成するように構成された暗号部と、
前記暗号部と通信可能に接続されて、前記少なくとも1つのディオファントス方程式を受信し、前記少なくとも1つのディオファントス方程式の非可解性又は可解性を予測するように構成された学習済みAIモデルを有するAI部と、
を備え、
さらに前記暗号部は、暗号文出力部と通信可能に接続されて、もし前記学習済みAIモデルによって前記少なくとも1つのディオファントス方程式が非可解と予測された場合、前記少なくとも1つのディオファントス方程式を少なくとも1つの暗号文として前記暗号文出力部に提供する、
暗号装置。
【請求項12】
前記暗号部は、前記少なくとも1つのディオファントス方程式のいずれか1つが、前記学習済みAIモデルによって可解と予測された場合、少なくとも1つの替わりのディオファントス方程式を生成するように構成され、
前記AI部は、前記少なくとも1つの替わりのディオファントス方程式の非可解性又は可解性を予測するように構成され、
前記暗号部は、前記学習済みAIモデルによって可解と予測された前記少なくとも1つのディオファントス方程式の前記いずれか1つ以外である、前記少なくとも1つのディオファントス方程式の一の部分集合と、前記少なくとも1つの替わりのディオファントス方程式と、を少なくとも1つの暗号文として、前記暗号文出力部に提供する、
請求項11に記載の暗号装置。
【請求項13】
前記暗号部は、
前記少なくとも1つの変数解集合(v1,…,vn)を利用して、少なくとも1つの偽のディオファントス方程式を生成し、
前記少なくとも1つの偽のディオファントス方程式の一の解を非整数として確認するように構成され、
前記AI部は、前記少なくとも1つの偽のディオファントス方程式を受信するように構成され、前記AIモデルは、前記少なくとも1つの偽のディオファントス方程式の非可解性又は可解性を予測するように構成され、
前記暗号部は、もし前記少なくとも1つの偽のディオファントス方程式の前記一の解が非整数である場合、前記少なくとも1つの偽のディオファントス方程式を、偽の暗号文として、前記暗号文出力部に提供するように構成される、
請求項11に記載の暗号装置。
【請求項14】
前記暗号部と通信可能に接続された暗号文説明変数部を更に備え、
前記暗号文説明変数部は、暗号文説明変数を前記多項式生成部に提供するように構成され、
前記多項式生成部は、
前記暗号文説明変数を利用して前記少なくとも1つの変数解集合(v1,…,vn)を更に導出する、
ように構成されることにより、
前記少なくとも1つの対称鍵を利用して前記少なくとも1つの変数解集合(v1,…,vn)を導出する、
請求項11に記載の暗号装置。
【請求項15】
前記暗号文説明変数部は、前の暗号文のディオファントス方程式における変数の係数に基づいて、前記暗号文説明変数を確認するように構成され、
前記前の暗号文のディオファントス方程式における前記変数は、前の暗号文説明変数に基づく多項式の次数を含む、
請求項14に記載の暗号装置。
【請求項16】
前記暗号部は、
前記隠蔽変数で、前記少なくとも1つの初期ディオファントス方程式に加算、減算、乗算、及び/又は除算を実行する、
ように構成されることにより、
前記少なくとも1つの変数解集合(v1,…,vn)の前記第2部分集合から導出された前記隠蔽変数を利用して、前記少なくとも1つの初期ディオファントス方程式を変更する、
請求項11に記載の暗号装置。
【請求項17】
前記平文整数部は、複数の互いに素である整数を利用して、前記少なくとも1つの事前暗号整数(M1,…,Mn)を複数の分割整数に分割するように構成された整数分
割部を有し、
前記暗号部は、
前記少なくとも1つの事前暗号整数(M1,…,Mn)と、前記少なくとも1つの変数解集合(v1,…,vn)と、前記複数の分割整数とを利用して前記少なくとも1つのディオファントス方程式の複数のディオファントス方程式を生成する、
ように構成されることにより、
前記少なくとも1つの事前暗号整数(M1,…,Mn)と、前記少なくとも1つの変数解集合(v1,…,vn)とを利用して前記少なくとも1つの変数解集合(v1,…,vn)により解くことが可能な前記少なくとも1つのディオファントス方程式を生成し、
前記複数の互いに素である整数の総数、前記複数の分割整数の総数、及び前記複数のディオファントス方程式の総数は、等しい、
請求項11に記載の暗号装置。
【請求項18】
前記整数分
割部は、
前記少なくとも1つの事前暗号整数(M1,…,Mn)、及び複数の除数である前記複数の互いに素である整数を利用した複数のモジュロ演算を実行し、その実行結果から複数の余りである前記複数の分割整数を導出する、
ように構成されることにより、
前記少なくとも1つの事前暗号整数(M1,…,Mn)を、前記複数の互いに素である整数に基づき、前記複数の分割整数に分割する、
請求項17に記載の暗号装置。
【請求項19】
少なくとも1つのディオファントス方程式を含む少なくとも1つの暗号文を受信することと、
対称鍵を利用して、前記少なくとも1つのディオファントス方程式を解くための少なくとも1つの変数解集合(v1,…,vn)を導出することと、
前記少なくとも1つの変数解集合(v1,…,vn)を利用して、前記少なくとも1つのディオファントス方程式を解いて少なくとも1つの事前暗号整数(M1,…,Mn)を確認することと、これは、
前記少なくとも1つの変数解集合(v1,…,vn)の第1部分集合を利用して、少なくとも1つの初期整数を確認し、
前記少なくとも1つの変数解集合(v1,…,vn)の第2部分集合から導出される隠蔽変数を利用して、前記少なくとも1つの初期整数を変更して前記少なくとも1つの事前暗号整数(M1,…,Mn)を確認することを含み、
前記少なくとも1つの事前暗号整数(M1,…,Mn)を少なくとも1つの平文に変換することと、
を含む、
復号方法。
【請求項20】
前記少なくとも1つの変数解集合(v1,…,vn)を利用して、前記少なくとも1つのディオファントス方程式を解いて前記少なくとも1つの事前暗号整数(M1,…,Mn)を確認することは、
前記少なくとも1つの整数(M1,…,Mn)及び少なくとも1つの非整数を、前記少なくとも1つのディオファントス方程式の異なる複数のディオファントス方程式から確認して、前記異なる複数のディオファントス方程式における、前記少なくとも1つの非整数に対応する1つを、偽のディオファントス方程式として確認することを含む、
請求項19に記載の復号方法。
【請求項21】
前記対称鍵を利用して、前記少なくとも1つのディオファントス方程式を解くための前記少なくとも1つの変数解集合(v1,…,vn)を導出することは、
前記対称鍵と暗号文説明変数とを利用して、前記少なくとも1つの変数解集合(v1,…,vn)を導出することを含む、
請求項19に記載の復号方法。
【請求項22】
前記暗号文説明変数は、前の暗号文のディオファントス方程式における変数の係数に基づいていて、
前記前の暗号文のディオファントス方程式における前記変数は、前の暗号文説明変数に基づく多項式の次数を含む、
請求項21に記載の復号方法。
【請求項23】
前記少なくとも1つの変数解集合(v1,…,vn)の前記第2部分集合から導出された前記隠蔽変数を利用して、前記少なくとも1つの初期整数を変更して前記少なくとも1つの事前暗号整数(M1,…,Mn)を確認することは、
前記隠蔽変数で、前記少なくとも1つのディオファントス方程式に加算、減算、乗算、及び/又は除算を実行することを含む、
請求項19に記載の復号方法。
【請求項24】
前記少なくとも1つの変数解集合(v1,…,vn)を利用して、前記少なくとも1つのディオファントス方程式を解いて前記少なくとも1つの事前暗号整数(M1,…,Mn)を確認することは、
前記少なくとも1つの変数解集合(v1,…,vn)を利用して、前記少なくとも1つのディオファントス方程式の複数のディオファントス方程式を解いて複数の分割整数を確認することと、
複数の互いに素である整数と前記複数の分割整数とを利用して、前記少なくとも1つの事前暗号整数(M1,…,Mn)を確認することと、を含み、
前記複数の互いに素である整数の総数、前記複数の分割整数の総数、及び前記複数のディオファントス方程式の総数は、等しい、
請求項19に記載の復号方法。
【請求項25】
前記複数の互いに素である整数と前記複数の分割整数とを利用して、前記少なくとも1つの事前暗号整数(M1,…,Mn)を確認することは、
前記複数の分割整数を複数の余りとして、前記複数の互いに素である整数を複数の商としてそれぞれ用いて複数のユークリッドの互除法演算を実行することにより、前記複数の分割整数の分割解除を実行し、その実行結果から少なくとも1つの事前暗号整数(M1,…,Mn)を導出することを含む、
請求項24に記載の復号方法。
【請求項26】
コンピュータ実行可能な指示を格納するための少なくとも1つの記憶部と、
前記少なくとも1つの記憶部と通信可能に接続されて、前記コンピュータ実行可能な指示を実行して、請求項19~25のいずれか1項に記載の復号方法を実行するように構成された少なくとも1つのプロセッサと、
を備える、
復号装置。
【請求項27】
少なくとも1つのコンピュータプロセッサに、請求項19~25のいずれか1項に記載の復号方法を実行させるように構成されたコンピュータ実行可能な指示を含む、
非一時的な、コンピュータ可読媒体。
【請求項28】
少なくとも1つのディオファントス方程式を含む少なくとも1つの暗号文を受信するように構成された暗号文入力部と、
少なくとも1つの対称鍵を受信するように構成された対称鍵入力部と、
前記暗号文入力部及び前記対称鍵入力部と通信可能に接続された復号部と、
前記復号部と通信可能に接続された整数平文部と、
を備え、
前記復号部は、
前記対称鍵入力部から前記対称鍵を、前記暗号文入力部から前記少なくとも1つのディオファントス方程式をそれぞれ受信し、
前記対称鍵を利用して、前記少なくとも1つのディオファントス方程式を解くための少なくとも1つの変数解集合(v1,…,vn)を導出するように構成され、
さらに前記復号部は、
前記少なくとも1つの変数解集合(v1,…,vn)の第1部分集合を利用して、少なくとも1つの初期整数を確認し、
前記少なくとも1つの変数解集合(v1,…,vn)の第2部分集合から導出される隠蔽変数を利用して、前記少なくとも1つの初期整数を変更して前記少なくとも1つの事前暗号整数(M1,…,Mn)を確認する、
ように構成されることにより、
前記少なくとも1つの変数解集合(v1,…,vn)を利用して、前記少なくとも1つのディオファントス方程式を解いて少なくとも1つの事前暗号整数(M1,…,Mn)を確認し、
前記整数平文部は、
前記復号部から、前記少なくとも1つの事前暗号整数(M1,…,Mn)を受信し、前記少なくとも1つの事前暗号整数(M1,…,Mn)を少なくとも1つの平文に変換するように構成される、
復号装置。
【請求項29】
前記復号部は、
前記少なくとも1つの整数(M1,…,Mn)及び少なくとも1つの非整数を、前記少なくとも1つのディオファントス方程式の異なる複数のディオファントス方程式から確認して、前記異なる複数のディオファントス方程式における1つを、偽のディオファントス方程式として確認する、
ように構成されることにより、
前記少なくとも1つの変数解集合(v1,…,vn)を利用して、前記少なくとも1つのディオファントス方程式を解いて前記少なくとも1つの事前暗号整数(M1,…,Mn)を確認する、
請求項28に記載の復号装置。
【請求項30】
前記復号部は、
前記対称鍵及び暗号文説明変数を利用して、前記少なくとも1つの変数解集合(v1,…,vn)を導出する、
ように構成されることにより、
前記対称鍵を利用して、前記少なくとも1つのディオファントス方程式を解くための前記少なくとも1つの変数解集合(v1,…,vn)を導出する、
請求項28に記載の復号装置。
【請求項31】
前記暗号文説明変数は、前の暗号文のディオファントス方程式における変数の係数に基づいていて、
前記前の暗号文のディオファントス方程式における前記変数は、前の暗号文説明変数に基づく多項式の次数を含む、
請求項30に記載の復号装置。
【請求項32】
前記復号部は、
前記隠蔽変数で、前記少なくとも1つのディオファントス方程式に加算、減算、乗算、及び/又は除算を実行する、
ように構成されることにより、
前記少なくとも1つの変数解集合(v1,…,vn)の前記第2部分集合から導出された前記隠蔽変数を利用して、前記少なくとも1つの初期整数を変更して前記少なくとも1つの事前暗号整数(M1,…,Mn)を確認する、
請求項28に記載の復号装置。
【請求項33】
前記復号部は、
前記少なくとも1つの変数解集合(v1,…,vn)を利用して、前記少なくとも1つのディオファントス方程式の複数のディオファントス方程式を解いて複数の分割整数を確認し、
複数の互いに素である整数と前記複数の分割整数とを利用して、前記少なくとも1つの事前暗号整数(M1,…,Mn)を確認する、
ように構成されることにより、
前記少なくとも1つの変数解集合(v1,…,vn)を利用して、前記少なくとも1つのディオファントス方程式を解いて前記少なくとも1つの事前暗号整数(M1,…,Mn)を確認し、
前記複数の互いに素である整数の総数、前記複数の分割整数の総数、及び前記複数のディオファントス方程式の総数は、等しい、
請求項28に記載の復号装置。
【請求項34】
前記整数平文部は、整数分割解除部を有し、
前記整数分割解除部は、
前記復号部から前記複数の分割整数を受信し、前記複数の分割整数を複数の余りとして、前記複数の互いに素である整数を複数の商としてそれぞれ用いて複数のユークリッドの互除法演算を実行することにより、前記複数の分割整数の分割解除を実行し、その実行結果から少なくとも1つの事前暗号整数(M1,…,Mn)を導出することを含む、
請求項33に記載の復号装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、暗号文として非可解なディオファントス方程式を利用する、対称鍵生成、暗号、及び復号に関する。
【背景技術】
【0002】
暗号技術は、通常、対称鍵暗号と公開鍵暗号(又は非対称鍵暗号)とに分類される。対称鍵暗号では、送信者と受信者とが同じ鍵をシェアしてメッセージの暗号と復号を行う。公開鍵暗号では、送信者と受信者とが公開鍵と秘密鍵とをそれぞれ保有し、公開鍵は全てのパーティにアクセス可能である。送信者は、通常、公開鍵を使用してメッセージを暗号化し、秘密鍵を保有する受信者だけがその暗号化されたメッセージを復号できる。
【0003】
例えばUS 2006/0251247 A1 (Akiyama et al.)、及び株式会社東芝による公開鍵暗号システムの不定方程式暗号:Giophantus(商標)等では、ディオファントス方程式を利用した暗号方法及び装置が提案されている。しかし、そのような従来から提案される暗号方法及び装置は、公開鍵暗号用に設計されたものであった。
【発明の概要】
【0004】
本発明の第1の態様では、暗号方法が提供される。前記暗号方法は、
少なくとも1つの平文を受信することと、
前記少なくとも1つの平文を少なくとも1つの事前暗号整数(M1,…,Mn)に変換することと、
前記少なくとも1つの事前暗号整数(M1,…,Mn)と、少なくとも1つの対称鍵から導出される少なくとも1つの変数解集合(v1,…,vn)とを利用し、前記少なくとも1つの変数解集合(v1,…,vn)により解くことが可能な少なくとも1つのディオファントス方程式を生成することと、これは、
前記少なくとも1つの変数解集合(v1,…,vn)の第1部分集合を利用して、少なくとも1つの初期ディオファントス方程式を生成し、
前記少なくとも1つの変数解集合(v1,…,vn)の第2部分集合から導出される隠蔽変数を利用して、前記少なくとも1つの初期ディオファントス方程式を変更して前記少なくとも1つのディオファントス方程式を生成することを含み、
学習済みAIモデルを利用して前記少なくとも1つのディオファントス方程式の非可解性又は可解性を予測することと、
もし前記学習済みAIモデルによって前記少なくとも1つのディオファントス方程式が非可解と予測された場合、前記少なくとも1つのディオファントス方程式を少なくとも1つの暗号文として提供することと、
を含む。
【0005】
上記第1の態様の実施形態は、請求項2~8で主張されるように提供される。
【0006】
本発明の第2の態様では、暗号装置が提供される。前記暗号装置は、
コンピュータ実行可能な指示を格納するための少なくとも1つの記憶部と、
前記少なくとも1つの記憶部と通信可能に接続されて、前記コンピュータ実行可能な指示を実行して、請求項1~8のいずれか1項に記載の暗号方法を実行するように構成された少なくとも1つのプロセッサと、
を備える。
【0007】
本発明の第3の態様では、非一時的な、コンピュータ可読媒体が提供される。前記コンピュータ可読媒体は、少なくとも1つのコンピュータプロセッサに、請求項1~8のいずれか1項に記載の暗号方法を実行させるように構成されたコンピュータ実行可能な指示を含む。
【0008】
本発明の第4の態様では、暗号装置が提供される。前記暗号装置は、
少なくとも1つの平文を受信するように構成された平文入力部と、
少なくとも1つの対称鍵を受信するように構成された対称鍵入力部と、
前記平文入力部と通信可能に接続されて、前記平文入力部から前記少なくとも1つの平文を受信し、前記少なくとも1つの平文を少なくとも1つの事前暗号整数(M1,…,Mn)に変換するように構成された平文整数部と、
前記対称鍵入力部と通信可能に接続されて、前記対称鍵入力部から前記少なくとも1つの対称鍵を受信し、前記少なくとも1つの対称鍵を利用して少なくとも1つの変数解集合(v1,…,vn)を導出するように構成された多項式生成部と、
前記平文整数部及び前記多項式生成部と通信可能に接続されて、前記多項式生成部から前記少なくとも1つの変数解集合(v1,…,vn)を受信し、前記少なくとも1つの変数解集合(v1,…,vn)の第1部分集合を利用して少なくとも1つの初期ディオファントス方程式を生成して、前記少なくとも1つの変数解集合(v1,…,vn)の第2部分集合から導出される隠蔽変数を利用して前記少なくとも1つの初期ディオファントス方程式を変更するように構成されていることで、前記少なくとも1つの事前暗号整数(M1,…,Mn)及び前記少なくとも1つの変数解集合(v1,…,vn)を利用して前記少なくとも1つの変数解集合(v1,…,vn)により解くことが可能な少なくとも1つのディオファントス方程式を生成するように構成された暗号部と、
前記暗号部と通信可能に接続されて、前記少なくとも1つのディオファントス方程式を受信し、前記少なくとも1つのディオファントス方程式の非可解性又は可解性を予測するように構成された学習済みAIモデルを有するAI部と、
を備え、
さらに前記暗号部は、暗号文出力部と通信可能に接続されて、もし前記学習済みAIモデルによって前記少なくとも1つのディオファントス方程式が非可解と予測された場合、前記少なくとも1つのディオファントス方程式を少なくとも1つの暗号文として前記暗号文出力部に提供する。
【0009】
上記第4の態様の実施形態は、請求項12~18で主張されるように提供される。
【0010】
本発明の第5の態様では、復号方法が提供される。前記復号方法は、
少なくとも1つのディオファントス方程式を含む少なくとも1つの暗号文を受信することと、
対称鍵を利用して、前記少なくとも1つのディオファントス方程式を解くための少なくとも1つの変数解集合(v1,…,vn)を導出することと、
前記少なくとも1つの変数解集合(v1,…,vn)を利用して、前記少なくとも1つのディオファントス方程式を解いて少なくとも1つの事前暗号整数(M1,…,Mn)を確認することと、これは、
前記少なくとも1つの変数解集合(v1,…,vn)の第1部分集合を利用して、少なくとも1つの初期整数を確認し、
前記少なくとも1つの変数解集合(v1,…,vn)の第2部分集合から導出される隠蔽変数を利用して、前記少なくとも1つの初期整数を変更して前記少なくとも1つの事前暗号整数(M1,…,Mn)を確認することを含み、
前記少なくとも1つの事前暗号整数(M1,…,Mn)を少なくとも1つの平文に変換することと、
を含む。
【0011】
上記第5の態様の実施形態は、請求項20~25で主張されるように提供される。
【0012】
本発明の第6の態様では、復号装置が提供される。前記復号装置は、
コンピュータ実行可能な指示を格納するための少なくとも1つの記憶部と、
前記少なくとも1つの記憶部と通信可能に接続されて、前記コンピュータ実行可能な指示を実行して、請求項19~25のいずれか1項に記載の復号方法を実行するように構成された少なくとも1つのプロセッサと、
を備える。
【0013】
本発明の第7の態様では、非一時的な、コンピュータ可読媒体が提供される。前記コンピュータ可読媒体は、少なくとも1つのコンピュータプロセッサに、請求項19~25のいずれか1項に記載の復号方法を実行させるように構成されたコンピュータ実行可能な指示を含む。
【0014】
本発明の第8の態様では、復号装置が提供される。前記復号装置は、
少なくとも1つのディオファントス方程式を含む少なくとも1つの暗号文を受信するように構成された暗号文入力部と、
少なくとも1つの対称鍵を受信するように構成された対称鍵入力部と、
前記暗号文入力部及び前記対称鍵入力部と通信可能に接続された復号部と、
前記復号部と通信可能に接続された整数平文部と、
を備え、
前記復号部は、
前記対称鍵入力部から前記対称鍵を、前記暗号文入力部から前記少なくとも1つのディオファントス方程式をそれぞれ受信し、
前記対称鍵を利用して、前記少なくとも1つのディオファントス方程式を解くための少なくとも1つの変数解集合(v1,…,vn)を導出するように構成され、
さらに前記復号部は、
前記少なくとも1つの変数解集合(v1,…,vn)の第1部分集合を利用して、少なくとも1つの初期整数を確認し、
前記少なくとも1つの変数解集合(v1,…,vn)の第2部分集合から導出される隠蔽変数を利用して、前記少なくとも1つの初期整数を変更して前記少なくとも1つの事前暗号整数(M1,…,Mn)を確認する、
ように構成されることにより、
前記少なくとも1つの変数解集合(v1,…,vn)を利用して、前記少なくとも1つのディオファントス方程式を解いて少なくとも1つの事前暗号整数(M1,…,Mn)を確認し、
前記整数平文部は、
前記復号部から、前記少なくとも1つの事前暗号整数(M1,…,Mn)を受信し、前記少なくとも1つの事前暗号整数(M1,…,Mn)を少なくとも1つの平文に変換するように構成される。
【0015】
上記第8の態様の実施形態は、請求項29~34で主張されるように提供される。
【図面の簡単な説明】
【0016】
本発明の実施形態は、添付の図面を参照しながら詳細に説明される。
【0017】
【
図1】
図1は、鍵生成装置、暗号装置、及び復号装置間におけるメッセージ交換を示す簡略化したフローチャートである。
【0018】
【0019】
【
図2B】
図2Bは、鍵生成方法を示す簡略化したフローチャートである。
【0020】
【0021】
【
図3B】
図3Bは、暗号方法を示す簡略化したフローチャートである。
【0022】
【0023】
【
図3D】
図3Dは、AI学習及び/又は予測方法を示す簡略化したフローチャートである。
【0024】
【0025】
【
図4B】
図4Bは、復号方法を示す簡略化したフローチャートである。
【発明を実施するための形態】
【0026】
以下の説明では、多数の詳細な説明が、本発明の様々な例示的な実施形態の完全な理解を提供するために記載される。しかし、本発明の実施形態は、これらの詳細な説明の一部又は全部が無くても実施され得ることは、当業者には理解されるであろう。ここで使用される技術は、特定の実施形態のみを説明する目的のものであり、本発明の範囲を限定する趣旨はないことも理解されるであろう。図面では、参照ラベルや数字は、幾つかの観点を通じて、同じ又は類似する機能性又は特徴を参照するものである。図面では、特徴間に示される矢印の方向は、幾つかの実施形態の記述に応じて、それらの間におけるデータ又は情報の転送を示しているが、そのような方向に限定されない。言い換えると、特徴間におけるデータ又は情報の、図の矢印の方向とは逆方向の転送、及び/又は矢印で図示されていない転送も想定され得るが、実施形態の説明が分かりにくくなることを避けるために、そのような転送は図示していない。
【0027】
複数の装置又は複数の方法の1つの文脈に記述される実施形態は、他の装置又は方法に対しても同様に有効である。同様に、1つの装置の文脈に記述される実施形態は、1つの方法に対しても同様に有効であり、その逆も然りである。
【0028】
一の実施形態又は実施例の文脈に記載される複数の特徴は、他の複数の実施形態又は実施例内の同じ又は類似する複数の特徴にも、それに応じて適用可能であり得る。たとえ他の複数の実施形態又は実施例内に明示的な記載がなくても、一の実施形態又は実施例の文脈に記載される複数の特徴は、他の複数の実施形態又は実施例内の同じ又は類似する複数の特徴にも、それに応じて適用可能であり得る。さらに、一の実施形態又は実施例の文脈における特徴について記載されるような追加、及び/又は組み合わせ、及び/又は代替は、他の複数の実施形態又は実施例内の同じ又は類似する特徴にも、それに応じて適用可能であり得る。
【0029】
特徴又は要素に使用される冠詞“a”、“an”及び“the”は、1又は複数の特徴又は要素に対する参照を含むことを理解するべきである。また、用語“及び/又は”は、1又は複数の関連する特徴又は要素のいずれかの組み合わせと全ての組み合わせを含む。また、明細書及び請求項で使用される用語“comprising”、“including”、“having”“involving”及びそれらの関連用語は、挙げられた特徴又は要素以外の追加的な特徴又は要素が存在し得ることを意味するオープンエンド形式であることを意図している。また、例えば“第1”“第2”“第3”等の識別子は、単にラベルとして使用しているに過ぎず、それらの対象物に数的な要件を課すことを意図しておらず、また、それら限定間において何等かの相対的な位置、又は時系列を課す手法に解釈されることを意図しない。
【0030】
用語“接続された”及び関連用語は、動作的な意味で使用されていて、必ずしも直接的で物理的な接続又は結合に限定されるとは限らない。したがって、例えば2つの装置は、直接的に接続されてもよいし、1又は複数の中継的な装置を介して接続されてもよい。本開示に基づいて、当業者は、上記の定義に応じて「接続」が存在する様々な方法を認識するだろう。
【0031】
ここで使用される数学記号は、一般的に周知のものである。疑義が生じることを避けるために、次に例示的な記号を記載する。記号“^”は、累乗を示すために用いる。例えば、A^b=Abである。例えば、X^2=(X)(X)=X2である。記号“.”又は“*”は、乗算を示すために用いる。例えば、A.B=A*Bである。例えば、A/B=A÷Bである。記号“/”は、除算を示すために用いる。例えば、A/B=A÷Bである。記号“∈”は集合の要素を示すために用いる。記号“⇒”は、含意記号を示すために用いる。例えば、A⇒Bは、Aが真であるならBも真であることを意味する。記号“{}”は、要素の特定のドメインを示すために用いる。記号“π”は、乗積記号を示すために用いる。
(イントロダクション)
【0032】
ディオファントス方程式は、整数解のみが許される代数方程式である。一般的な手法又はアルゴリズムにより解かれ得るある他の数学的又は代数方程式と違って、異なる種類のディオファントス方程式は、それを解くために異なる手法を必要とし得る。そのため、数学者は全てのディオファントス方程式を解くための一般的手法が存在するか否かを研究していた。しかしながら、マチャセビッチの定理/MRDPの定理によれば、全てのディオファントス方程式を解くための一般的手法又はアルゴリズムは存在しないことが証明され、その結果、ディオファントス方程式は、決定不能な問題である。そのため、現在、一般的にディオファントス方程式の可解性を決定する数学的手法を使用することは不可能である。
【0033】
決定不能な暗号とは、双方向の暗号及び復号方法を指しており、それにより、鍵無しで暗号化された暗号文を解読するための唯一の一般的手法は、無限に多くのアルゴリズムを必要とするような決定不能な問題を解くこと、及び/又はそれを解く一般的なアルゴリズムが存在しないことである。そのため、決定不能な問題を解くための一般的手法又はアルゴリズムが存在しない事実を考えると、鍵無しで解読されたあるクラスの暗号文に対して、解くために無限に多くのアルゴリズム又は手法を必要とする無限に多くのクラスの暗号文が残り、及び/又は、手法又はアルゴリズムが解くことのできない限りなく又は無限に多くのクラスの暗号文が存在するだろう。
【0034】
上記の観点において、ディオファントス方程式暗号の一般的な限定は、どのディオファントス方程式が可解で、どのディオファントス方程式が非可解かに関する知識の欠如である。例えば、既約多項式及び非線形ディオファントス方程式が、非可解なディオファントス方程式にとって良い候補を作ることを知るだろう。しかし、全ての既約及び非線形ディオファントス方程式が非可解であることは正しくない。
【0035】
人工知能(AI)は、データから学習可能であり、そのため、独立した方法で予測が可能である。しかし、AIは、メモリを制限し、一般的に、機能するための限度及び固定されたルールを必要とする。決定不能な暗号の文脈の中で、限度及びルールとは、決定不能な問題の限度及びルールである。
【0036】
上記の問題及び他の問題を考慮して、本発明は、決定不能な暗号とAIをその組み合わせにより用いる。そのような組み合わせは、経時と共に変化又は進化し、安定した学習によってより強化するだろう。特に、AIは、鍵無しで解読されたクラスの暗号文の生成を除外するだろう。その結果、ディオファントス方程式暗号の文脈において、AIは、解かれたディオファントス方程式の過去のデータに基づき、(鍵無しで解かれた又は解読された、或いは解読可能と知られてしまった)クラスのディオファントス方程式、つまり暗号文を除外するだろう。より詳細には、暗号がAIとペアリングされると、周知の過去のデータに基づく非可解な又は不解読なディオファントス方程式だけが、暗号に利用されることになるだろう。ある特定のクラスのディオファントス方程式が将来解かれてしまった場合、AIは、暗号時にそれらの解かれた又は解読されたクラスのディオファントス方程式の使用を除外するだろう。
(多項式の生成)
【0037】
複数の整数からディオファントス方程式を構築するための多項式の生成について、非限定的な例を参照しながら、ここで説明する。
【0038】
[例1]
vnがディオファントス方程式の変数を示し、対称鍵が[y1, y2,y3, z1, z2, z3]によって示されるとすると、変数vnは、ディオファントス方程式を解くために変数解集合(v1, v2,v3,…, vn)を提供するように下記のように定義され得る。
0 < n < 4のとき、
v1 = y1+ 10 z1
v2 = y2+ 10 z2
v3 = y3+ 10 z3
n ≧ 4のとき、
vn = n + y1+ y2 + y3
y1 = 1, y2= 2, y3 = 3, z1 = 1, z2 = 2, z3 = 3とすると、上記の定義に基づき、v1 = 11, v2 = 102,v3 = 1003となる。
整数X = 10000とすると、Xは、下記のような方法又はディオファントス方程式で表せられ得る。
X = (v1)2+ (v2)2 + (v3)2 - 1006534 又は
X = (v2)3- (v3) 2 + 20 (v1) 2 - 47619 又は
X = 10(v3) + v2+ v1 - 143
上記を考慮して、Xをv1, v2,v3の記号で表現可能な多数方法が存在する。言い換えると、Xは、多数のディオファントス方程式で表現することができ、対称鍵は、複数の変数解集合(v1,…,vn)、及び有限数の整数を有する対称鍵を持つ無限に多くの変数を生成し、ディオファントス方程式は、無限に多くの解を持ち得る。
(ディオファントス方程式の決定不能性)
【0039】
ディオファントス方程式の決定不能性について、非限定的な例を参照しながら、ここで説明する。
【0040】
[例2]
式:an + bn = cnの全ての整数解を見つける。
0 ≦ a ≦ 2, 0 ≦ b ≦ 2, 0 ≦ c ≦ 2, n=3を考えると、試行錯誤により、a=b=c=0が上記の式の解であることが得られ、正の整数解が存在しないことが示される。この式には合計27のケースが存在し、その結果、試行錯誤による決定が可能である。
問いを言い換えて、a, b, c, nの制限を取り除き、a,b, c, n ∈ Nと仮定して、式:an + bn = cnの全ての正の整数解を見つける。
この有名な式は、フェルマーの最終定理として知られていて、1995年にアンドリュー・ワイルズによって解かれるまで300年以上にわたって数学者を困惑させた。
この例では、変数a, b, c, nの制限を取り除くことにより、試行錯誤による方法がそれ以上働かなくなり、結論に到達するためにより困難になったことが明確に分かる。
しかし、式が解かれると、an + bn = cnに対する整数解が存在するかを確認するための方法が存在すると決定可能と考えられる。
(非可解なディオファントス方程式)
【0041】
非可解なディオファントス方程式の生成について、非限定的な例を参照しながら、ここで説明する。
【0042】
例2では、ディオファントス方程式の例が提供され、変数の制限について議論される。多項式のディオファントス方程式が例1に従って次のように生成されることを仮定する。
X = (v1) 2+ (v2) 2 + (v3) 2 - 1006534
X = (v2) 3- (v3) 2 + 20 (v1) 2 - 47619
X = 10(v3) + v2+ v1 - 143
もし何の修正も無しでこれらの式が用いられると、これらの式が整数解を持つ暗号文を他人が解読することは明白である。
そのため、別の変数(例えば隠蔽変数)を持つ真の式を隠す必要があり、これは、決定不能な暗号を生成するために重要なステップである。
上の式は、変数v4を式の右辺に追加することで変更され得る。v4 = 20000とすると、例1の式は下記のように変更され得る。
X = (v1) 2+ (v2) 2 + (v3) 2 - 1026534
X = (v2) 3- (v3) 2 + 20 (v1) 2 - 67619
X = 10(v3) + v2+ v1 - 20143
その結果、変更後の式が整数解を持たない可能性がある。
しかし、Xは線形項のままであるため、整数解を見つけることは常に可能である。
例えば、X = (v1) 2 + (v2) 2+ (v3) 2 - 1026534において、v1=v2=v3= 1とすると、X = -1026531となる。
しかし、もしXが非線形項に変換されて、v1 = 11と考えると、式X = (v1) 2 + (v2)2 + (v3) 2 - 1006534は、下記のように変更され得る。
(v1)X = (v1)3 + 11(v2) 2 + 11(v3) 2 -11091874
(v1) 2 (X)2 = 10000[(v1) 4 + 121(v2) 2+ 121(v3) 2 - 121810614]
より高い累乗を持つ変数で、各ディオファントス方程式はより複雑になり、整数解が存在するか否かが不明確になる。
上記を考慮して、多項式の生成は、多面的なプロセスであり、異なる種類の多項式を生成するために多数の方法が常に存在する。
(有限の鍵サイズに基づく無制限の変数)
【0043】
有限の鍵サイズに基づく無制限の変数の生成について、非限定的な例を参照しながら、ここで説明する。
【0044】
対称暗号鍵は通常、ビットで定義された有限の長さを有し、鍵サイズは通常、128、192、又は256ビットサイズである。128ビットの鍵サイズの鍵は2128の異なる組み合わせの鍵サイズを持ち、一方、256ビットの鍵サイズは2256の鍵サイズを持つだろう。鍵サイズが128と仮定し、4つの変数v1, v2,v3, v4について考えるとし、変数が1から232までの整数によって表され、32ビットの鍵サイズが各変数に割り当てられると仮定すると、合計で(232) 4又は2128の異なる組み合わせが存在する。しかし、変数は、依然として例えば以下のように232によって制限される。
Max [v1]= 232
Max [v2]= 232
Max [v3]= 232
Max [v4]= 232
【0045】
決定不能な暗号を生成するために、最大整数値を持つ変数を用いることはできない。そのため、変数を直接整数で表す代わりに、整数を構築するために対称鍵を用いる。例えば、それぞれ16ビットの2つの変数y1, z1に割られた32ビットの鍵の長さで、下記の式を構築できる。
v1 = y1 + (100000000) z1
v1の最大値は、232、又は4294967296より十分に高い値である65536+(100000000)65536である。しかし、変数が表すことが可能な制限及び整数範囲が大幅に増加したにも関わらず、問題は依然として残る。言い換えると、変数には最大値が依然として存在する。
【0046】
上記の問題は、暗号文を依存する暗号文説明変数Kの導入で解消され得る。交換された暗号文に依存して、暗号文変数の値Kは、変化するかもしれないし、或いはしないかもしれない。
【0047】
[例3]
Kの初期値をK = 10とする。
下の暗号文1では、Kの値は変化しない。
X = (v1) 2+(v2) 3 + 1000 (v3) 5 - 25020
下の暗号文2では、暗号文2が変数1000 (v3) 10を含むなら、Kの値は10から1000まで変化する。
X = (v1) 2+ (v2) 3 + 1000 (v3) 10 - 25020
【0048】
一般に、暗号文説明変数のある値(K = C)に対して、もし多項式の次数Cと係数Aを持つディオファントス方程式暗号文に変数が存在する場合にのみ、Cの値は、CからAに変化する。
【0049】
上記を考慮して、変数を構築するために対称鍵、及び暗号文説明変数を利用することで構築された変数は無制限となるだろう。これは、決定不能な暗号方法にとって重要な特徴である。
【0050】
一般に、vnが、Kを含む複数の整数で構築された整数であることを考えると、-∞< K< ∞ ⇒ -∞<vn<∞(Kが無制限であることは、無制限のKで構築された整数が存在することを意味する)のようなvnが存在する。K ∈ Z ⇒ vn ∈ Zは、暗号説明変数の使用のための重要な条件である。実際、制限は、暗号及び復号の処理速度を速めるために変数に導入され得る。しかし、その弱みは、設計というより、コンピュータのパワー不足により課せられるものである。
(加算、減算、乗算を用いた整数分割)
【0051】
整数分割方法を用いた、暗号ごとに選択される多数のディオファントス方程式の生成について、非限定的な例を参照しながら、ここで説明する。
【0052】
1つの整数は、加算、及び/又は減算により分割され得る。例えば、整数X = 10000は、X = 5000 + 1000 + 6000 - 2000によって分割又は表現され、その後、分割整数1000、2000、5000、及び6000は、ディオファントス方程式として表現され得る。この分割方法の弱みの1つは、その複数の方程式を1つの式に組み合わせることで処理を逆にできてしまうことである。
【0053】
1つの整数は、乗算により分割され得る。例えば、整数X = 10000は、因数分解によりX = 10*10*100によって分割又は表現され、その後、分割整数10、及び100は、ディオファントス方程式として表現され得る。この分割方法の弱みの1つは、Xが素数の時、この方法は機能せず、さらに生成されたディオファントス方程式は、還元可能なディオファントス方程式となり、可解となり得る。
(互いに素な座標を用いた整数分割)
【0054】
[素数の集合と素数の座標]
度々数学において、数は、自然数の集合{N}、又は整数の集合{Z}に属するように記述される。しかし、数の特性をより密に検証する場合、素数の集合に属するように数を記述することも可能である。本開示では、素数の集合を、{Px}と記述する。
【0055】
[定義1:素数の集合]
{Px}を、以下からの自然数の集合を表すとする。
n=x
{1, 2, 3, 4 ….. π Pn}
n=1
その中で、Pは、一連の素数であり、P1 = 2 , P2= 3 , P3 = 5 , P4 = 7である。
例えば{P5}は、1から2310までの自然数の集合を表す(2310 = 2.3.5.7.11)。
{P6}は、1から30030までの自然数の集合を表す(30030 =2.3.5.7.11.13) 。
【0056】
定義2:素数の座標
{Px}について、x座標が存在するだろう。
自然数N ∈ {Px}について、その座標は、(N mod P1, N mod P2, N mod P3 …….N mod Px )によって定義される。その中で、modはモジュロ演算であり、N mod P1はNを2で割った場合の余りを表す。
【0057】
[証明1:座標による証明]
ステートメント:
{Px}について、
n=x
π Pn のユニークな座標がある。
n=1
自然数N ∈ {Px}について、ユニークな素数の座標を持つ。
N1≠N2で、N1とN2が同じ素数の座標を持つようなN1 ∈ {Px}とN2 ∈ {Px}が存在すると仮定する。つまり、
N1 mod P1= N2 mod P1
N1 mod P2= N2 mod P2
N1 mod Px= N2 mod Px
である。
| N1 - N2 | = N3で、N3 mod P1= 0, N3 mod P2 = 0 …. N3 mod Px= 0とすると、2,3,5,7…Pxで割れる零でない最小の整数は、2.3.5.7.11.13….Pxである。
N1∈ {Px}, N2 ∈ {Px}の故に、
n=x n=x
π Pn ≦ N3, | N1 - N2 |. < π Pn
n=1 n=1
である。
そのため、矛盾があり、その結果、各自然数N ∈ {Px}は、ユニークな素数の座標を持つ。
【0058】
[素数座標関数]
些細な例は、座標の数に関係なく自然数1を表す(1,1,1,1,1,1)である。
(1,1,1,1,1,1) =(1,1,1,1,1,1,1,1,1,1) = (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1) = 1
別の些細な例は、素数に対して1 mod Px = 1であり、2より大きい素数に対して2 mod Px = 2であるが故に、(0,2) = (0,2,2,2,2,2,2,2) =(0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2) = 2である。
【0059】
素数座標(1,2,3,4,5,6,)の表記は、下記のように確認され得る。関数の使用は、複数のディオファントス方程式を解くことを必要とする(特に上記の例において)。
(1,2,3,4,5,6) = Xとする。
関数の定義により、
X mod 2 = 1
X mod 3 = 2
X mod 5 = 3
X mod 7 = 4
X mod 11 = 5
X mod 13 = 6
である。
次のディオファントス方程式に対する積分解は、見つける必要がある。
n1, n2, n3, n4, n5, n6が整数であるとすると、
X = 2n1 + 1
X = 3n2 + 2
X = 5n3 + 3
X = 7n4 + 4
X = 11n5 + 5
X = 13n6 + 6
である。
ディオファントス方程式を解くことから、次の2つの問題が自然に発生する。
(i) 積分解は存在するか?
(ii) 積分解をどのように導出するか?
【0060】
[証明2]
ステートメント:
もしk1, k2, k3…. が素数であれば、フォーマット内に2つの変数を持つ線形ディオファントス方程式のセットについて積分解が存在する。
X = k1y+ z1, X = k2y+ z2, X = k3y+z3
その中で、k1, k2,k3 ….及びz1, z2, z3 ……は整数である。
証明1は、以下の点を示した。
{Px}について、
n=x
π Pn のユニークな座標があり、
n=1
自然数N ∈ {Px}について、ユニークな素数の座標を持つ。
次の2つの条件を考えると、矛盾と鳩ノ巣原理によって証明することができる。
(1){Px}について、
n=x
π Pn の自然数、及び
n=1
n=x
π Pn の座標が真に存在する。
n=1
(2)自然数N ∈ {Px}について、ユニークな座標が存在する。
x座標を持つ素数の座標関数、及び積分解を持たない対応するディオファントス方程式のセットが存在すると仮定すると、
n=x
π Pn の自然数が存在するとき、
n=1
n=x
π Pn - 1の座標の最大値存在する。
n=1
これは、鳩ノ巣原理によって同じ座標を持つ1以上の自然数N ∈ {Px}が存在し、それにより証明1が矛盾していることを意味する。
その結果、上記ステートメントは真である。
【0061】
ディオファントス方程式を解くと、数29243が導出される。
(1,2,3,4,5,6) =29243
29243 mod 2 = 1
29243 mod 3 = 2
29243 mod 5 = 3
29243 mod 7 = 4
29243 mod 11 = 5
29243 mod 13 = 6
【0062】
[素数ベクトル]
(1,0,0,0), (0,1,0,0), (0,0,1,0), (0,0,0,1)の表現は、次のようになる。
この場合、{P4}は、210までの自然数の集合を表す。
(1,0,0,0) = 105
(0,1,0,0) = 70
(0,0,1,0) = 126
(0,0,0,1) = 120
そして、
(1,2,3,4) = [105 + 2(70) +3(126) + 4(120)] mod 210 = 1103 mod 210 = 53
数53は、(1,2,3,4,9)又は(1,2,3,4,9,1)等として表現できる。
【0063】
[素数ベクトルの決定]
Zth座標上にx項及び1を持つ素数ベクトル座標については以下に等しい。
n=x
π (Pn) . (K1)/ Pz
n=1
その中で、K1は、ディオファントス方程式におけるxに対する積分解である。
n=x
π (Pn) / Pzmod Pz . x = (Pz)y + 1
n=1
計算の便宜上、0< K1となるようにK1を最小の正の積分解とする。
【0064】
[例4]
(0,0,1,0,0)の値を決定する。Pz = P3= 5, X=5
n=x
π (Pn) / Pz= 2.3.7.11 = 462
n=1
462 mod 5 = 2
ディオファントス方程式に対する積分解
2x = 5y + 1
これは、K1 =3とすると、x = 3, y = 1となる。
n=x
π (Pn) . (K1)/ Pz = 2.3.5.7.11.(3/7) = 462.3 = 1386
n=1
【0065】
[例5]
(0,0,0,0,0,0,1) の値を決定する。Pz=P7=17, X=7
n=x
π (Pn) / Pz= 2.3.5.7.11.13 = 30030
n=1
30030 mod 17 = 8
ディオファントス方程式に対する積分解
8x = 17y +1
これは、K1 = 15とすると、x = 15, y = 7となる。
n=x
π (Pn) .(K1) / Pz = 2.3.5.7.11.13.17(15/17) = 30030(15) = 450450
n=1
【0066】
[素数座標の決定]
素数座標は、モジュロ演算により決定されたルールで加算、減算又は乗算が可能である。
例えば、上記の(0,0,0,0,0,0,1) = 450450から決定される。
n=x
π (Pn) =2.3.5.7.11.13.17 = 510510
n=1
(0,0,0,0,0,0,2),(0,0,0,0,0,0,3) ∈ {P7},
(0,0,0,0,0,0,2),(0,0,0,0,0,0,3) ≦ 510510,
(0,0,0,0,0,0,2) = 450450(2)mod 510510 = 900900 mod 510510 = 390390
(0,0,0,0,0,0,3) = 450450(3)mod 510510 = 1351350 mod 510510 = 330330
【0067】
[素数ベクトルの特性]
素数ベクトルの特性は、モジュロ演算の特性に類似する。
(1)結合
X1 mod n + X2mod n + X3 mod n + X4 mod n = X1 mod n + (X2 mod n + X3 mod n + X4 mod n)
X1 mod n . X2mod n . X3 mod n . X4 mod n = X1 mod n . (X2 mod n . X3 mod n . X4 mod n)
(0,0,1) + (0,0,1)+ (0,0,1) = [(0,0,1) + (0,0,1)] + (0,0,1) = (0,0,1) + [(0,0,1) + (0,0,1)] =(0,0,3)
(2)分配
3 [(0,0,1)] = 1[(0,0,1)] + 2 [(0,0,1)] = (0,0,3)
(3)交換
3 [(0,0,1)] .1[(0,0,1)] = 1[(0,0,1)] 3 [(0,0,1)] = (0,0,3)
【0068】
[素数座標系のバリエーション(互いに素な座標系)]
一般的に、互いに素数の集合は、代替座標系を形成するために利用可能である。示された証明1は、その系について真となり、その特性は、一般的には同じである。
【0069】
[例6]
代替座標系{30,7,11}について、3つの数字は互いに素である。
(1,0,0) = 1771
(0,1,0) = 330
(0,0,1) = 210
(1,2,3) = [1771 +660 + 630] mod 2310 = 751
なお、30.7.11 = 2310である(2310の異なる組み合わせの座標が存在する)。
【0070】
[例7]
代替座標系{4,9,25}について、3つの数字は互いに素である。
(1,0,0) = 225
(0,1,0) = 100
(0,0,1) = 576
(1,2,3) = [225 +200 + 1728] mod 900 = 353
なお、4.9.25 = 900である(900の異なる組み合わせの座標が存在する)。
(鍵の生成、暗号、復号)
【0071】
ここで鍵の生成、暗号、復号について、本発明の幾つかの実施形態に従って説明する。
【0072】
図1を参照する。
図1は、鍵生成装置20、暗号装置30,及び復号装置40間におけるメッセージの交換を示す簡略化したフローチャートである。
【0073】
ブロック101において、鍵生成装置20は、鍵生成要求を受信し、対称鍵を生成する。
【0074】
ブロック103において、鍵生成装置20は、対称鍵、及び任意で少なくとも1つの暗号化パラメータを1又は複数の通信方式で暗号装置30に送信する。暗号化パラメータの一例は、暗号文説明変数である。
【0075】
ブロック105Aにおいて、暗号装置30は、対称鍵、及び任意で少なくとも1つの暗号化パラメータを受信する。
【0076】
ブロック105Bにおいて、復号装置40は、対称鍵、及び任意で少なくとも1つの暗号化パラメータを受信する。復号装置40は、それらを鍵生成装置20、又は暗号装置30から受信し得る。
【0077】
ブロック107において、暗号装置30は、少なくとも1つの平文を含む平文メッセージを受信する。少なくとも対称鍵と任意で少なくとも1つの暗号化パラメータを利用して、暗号装置30は、平文メッセージを暗号化し、少なくとも1つの暗号文を含む暗号文メッセージを提供又は生成する。
【0078】
ブロック109において、暗号装置30は、暗号文メッセージを復号装置40に直接的又は間接的に送信する。
【0079】
ブロック111において、復号装置40は、暗号装置30により生成された暗号文メッセージを受信する。対称鍵、任意で少なくとも1つの暗号化パラメータ、及び可能なら他のパラメータを利用して、復号装置40は、暗号文メッセージを復号化し、ブロック107における平文メッセージと必然的に等価な平文メッセージを提供又は生成する。
【0080】
任意ブロック113において、もし暗号化パラメータが変更されると、暗号装置30は、変更又は更新された暗号化パラメータを鍵生成装置20、及び/又は復号装置40に送信する。
【0081】
任意ブロック115において、鍵生成装置20は、後続の鍵生成において使用され得る、変更又は更新された暗号化パラメータを受信し得る。その変更又は更新は、ブロック107において生成された暗号文から確認され得る。
【0082】
任意ブロック117において、復号装置40は、更新された暗号化パラメータを受信し、後続の復号において、その更新された暗号化パラメータを使用し得る。
【0083】
送信者側装置は、暗号装置30と通信可能に接続されるか、又は暗号装置30を含み、平文メッセージを暗号装置30に提供し得ることは理解されるであろう。受信者側装置は、復号装置40と通信可能に接続されるか、又は復号装置40を含み、対称鍵を復号装置40に提供し得る。鍵生成装置20は、暗号装置30又は他の装置から、鍵生成指令を受信し得る。
[鍵生成]
【0084】
本発明の幾つかの実施形態に従って
図2A及び
図2Bを参照する。
【0085】
図2Aは、鍵生成装置20の概略図である。鍵生成装置20は、制御部21、制御部21に通信可能に接続された整数生成部22、及び制御部21に通信可能に接続された対称鍵出力部23を備え得る。制御部21は、鍵生成指令を受信するように構成され得る。対称鍵出力部23は、対称鍵を別の装置に送信又は提供するように構成され得る。
【0086】
図2Bは、鍵生成方法を示すフローチャートである。鍵生成方法は、鍵生成装置20又は他の適切な鍵生成装置によって実行され得る。
【0087】
ブロック201では、鍵生成装置20(例えば制御部21又は整数生成部22)は、鍵生成指令を受信する。
【0088】
ブロック203では、制御部21によって整数生成部22に提供され得る鍵生成に応じて、鍵生成装置20(例えば整数生成部22)は、複数の整数(例えばランダム整数)を生成する。複数の整数は、所定のアルゴリズムに従って生成され得る。鍵生成装置20は、複数の整数を制御部21に提供する。或いは、複数の整数は、予め定義されてもよい。ブロック203は、ブロック207(つまりブロック205を迂回する)に、又はブロック205に進み得る。
【0089】
任意のブロック205では、鍵生成装置20(例えば制御部21)は、所定の鍵パラメータとの追従について、生成された複数の整数をチェックし得る。例えば、生成された複数の整数は、それらが制限値内か、制限値を超えたかについて確認され得る。もし、所定の鍵パラメータと追従していれば、ブロック205は、ブロック207に進み、そうでなければ、もし所定の鍵パラメータと追従していなければ、ブロック205は、ブロック203に戻り、替わりの整数が生成されて、追従についてチェックされる。
【0090】
ブロック207では、ブロック203からの生成された複数の整数を利用して、鍵生成装置20(例えば制御部21)は、ディオファントス方程式を解くように構成された、少なくとも1つの変数解集合(v1,…,vn)を生成する。
【0091】
ブロック209では、生成された複数の整数、及び変数解集合(v1,…,vn)は、制御部21によって対称鍵出力部23に提供又は出力され得る。対称鍵出力部23は、対称鍵及び/又は少なくとも1つの変数解集合(v1,…,vn)を、暗号装置30、復号装置40及び/又は他の装置に送信又は提供し得る。
[暗号化]
【0092】
本発明の幾つかの実施形態に従って
図3A及び
図3Bを参照する。
【0093】
図3Aは、暗号装置30の概略図である。暗号装置30は、暗号部31と、平文整数部33と、多項式生成部35と、人工知能(AI)部36と、任意の暗号文説明変数部37と、暗号文出力部38とを備え得る。暗号部31は、(暗号部31から少なくとも1つの対称鍵を受信するように構成され得る)対称鍵入力部32と通信可能に接続され得る。平文整数部33は、平文入力部34から少なくとも1つの事前暗号整数(M
1,…,M
n) を受信するように構成され得る。多項式生成部35は、対称鍵入力部32又は暗号部31から、少なくとも1つの対称鍵を受信し、少なくとも1つの変数解集合(v
1,…,v
n)を暗号部31に提供するように構成され得る。人工知能(AI)部36は、暗号部31から、少なくとも1つのディオファントス方程式を受信し、ディオファントス方程式の非可解性又は可解性の予測を暗号部31に提供するように構成され得る。暗号文説明変数部37は、暗号部31から、少なくとも1つのディオファントス方程式を受信し、暗号文変数を暗号部31に提供するように構成され得る。暗号文出力部38は、暗号部31から、少なくとも1つのディオファントス方程式である暗号文を受信し、暗号文を復号装置40に直接的に又は間接的に送信する。平文整数部33は、任意の整数分割部を有し得る。整数分割部は、対称鍵入力部32から直接的に又は暗号部31を介して間接的に、複数の素数の整数を受信し、複数の分割整数を暗号部31に提供するように構成され得る。平文整数部33は、平文入力部34と通信可能に接続され得る。平文入力部34は、別の装置から、少なくとも1つの平文を受信し、受信した平文を平文整数部33に提供するように構成され得る。対称鍵入力部32は、別の装置から、少なくとも1つの対称鍵を受信し、受信した対称鍵を暗号部31及び任意で多項式生成部35に提供するように構成され得る。
【0094】
図3Bは、暗号装置30又は他の適切な暗号装置によって実行され得る暗号方法を示すフローチャートである。
【0095】
ブロック301では、暗号装置30(例えば対称鍵入力部32)は、少なくとも1つの対称鍵を受信する。暗号装置30(例えば平文入力部34)は、少なくとも1つの平文を含む平文メッセージを受信し、平文メッセージを平文整数部33に送信する。対称鍵及び平文メッセージの受信は、異なるタイミング又はシーケンスで起こり得ることは理解されるべきである。
【0096】
ブロック303では、暗号装置30(例えば平文整数部33)は、少なくとも1つの平文を少なくとも1つの事前暗号整数(M1,…,Mn) に変換する。
【0097】
ブロック305では、少なくとも1つの対称鍵及び少なくとも1つの事前暗号整数(M1,…,Mn) を利用して、暗号装置(例えば暗号部31)は、暗号文メッセージとして提供されるだろう少なくとも1つのディオファントス方程式を生成する。暗号文メッセージは、少なくとも1つの暗号文を含む。ブロック305は、以下に記載される可能な方法例の1つによって実施され得る。
【0098】
一例(基本)において、少なくとも1つの対称鍵を利用して、暗号装置30(例えば多項式生成部35)は、少なくとも1つのディオファントス方程式を生成するための少なくとも1つの変数解集合(v1,…,vn)(これによりディオファントス方程式を解くことが可能となる)を生成し得る。各変数は、少なくとも1つの対称鍵の少なくとも1つの整数から導出され得る。生成された変数解集合(v1,…,vn)、及び少なくとも1つの事前暗号整数(M1,…,Mn) を利用して、暗号装置30(例えば暗号部31)は、少なくとも1つの変数解集合(v1,…,vn)によって解くことが可能な少なくとも1つのディオファントス方程式を生成し得る。
【0099】
別の例(偽のディオファントス方程式に関する)において、少なくとも1つの対称鍵を利用して、暗号装置30(例えば多項式生成部35)は、少なくとも1つのディオファントス方程式及び少なくとも1つの偽のディオファントス方程式を生成するための、少なくとも1つの変数解集合(v1,…,vn) を生成し得る。各変数は、少なくとも1つの対称鍵の少なくとも1つの整数から導出され得る。生成された変数解集合(v1,…,vn)、及び少なくとも1つの事前暗号整数(M1,…,Mn) を利用して、暗号装置(例えば暗号部31)は、少なくとも1つの変数解集合(v1,…,vn)によって解くことが可能な少なくとも1つのディオファントス方程式と、少なくとも1つの偽のディオファントス方程式とを生成し得る。各偽のディオファントス方程式のための解が、例えば暗号部31、又はそれと通信可能に接続された、偽の方程式評価又は他の部(不図示)によって、所定の偽のディオファントス方程式条件との追従について確認される。もし、その解が非整数として確認されると、偽のディオファントス方程式は、偽の暗号文として提供されるだろう。もし、その解が整数として確認されると、偽のディオファントス方程式は、暗号文として提供されず、代わりに、替わりの偽のディオファントス方程式が、例えば暗号部31によって生成され、同様の方法で、追従について確認されるだろう。
【0100】
更に別の例(暗号文説明変数に関する)において、少なくとも1つの対称鍵と、例えば暗号文説明変数部37によって提供された暗号文説明変数とを利用して、暗号装置30(例えば多項式生成部35)は、少なくとも1つのディオファントス方程式を生成するための少なくとも1つの変数解集合(v1,…,vn) (これによりディオファントス方程式を解くことが可能となる)を生成し得る。各変数は、少なくとも1つの対称鍵の少なくとも1つの整数、及び暗号文説明変数から導出され得る。生成された変数解集合(v1,…,vn)を利用して、暗号装置30(例えば暗号部31)は、少なくとも1つの変数解集合(v1,…,vn)によって解くことが可能な少なくとも1つのディオファントス方程式を生成し得る。暗号文説明変数は、所定値(例えばランダム値)で初期的に設定され、その後、生成された暗号文に応じて変更又は更新され得る。例えば、暗号文説明変数は、前の暗号文のディオファントス方程式における変数(v1,…, or vn)の係数に基づき得る。前の暗号文のディオファントス方程式における変数(v1,…, or vn)は、前の暗号文説明変数に基づく多項式の次数を含む。
【0101】
また、更なる例(隠蔽変数に関する)において、少なくとも1つの対称鍵を利用して、暗号装置30(例えば多項式生成部35)は、少なくとも1つのディオファントス方程式を生成するために少なくとも1つの変数解集合(v1,…,vn)を生成し得る(これによりディオファントス方程式を解くことが可能となる)。各変数は、少なくとも1つの対称鍵の少なくとも1つの整数から導出され得る。生成された変数解集合(v1,…,vn)(又はその第1部分集合)の少なくとも幾つかの変数、及び少なくとも1つの事前暗号整数(M1,…,Mn)を利用して、暗号装置30(例えば暗号部31)は、少なくとも1つの初期ディオファントス方程式を生成し得る。変数解集合(v1,…,vn)(又はその第2部分集合)の少なくとも1つの変数から導出された少なくとも1つの隠蔽変数を利用して、暗号装置30(例えば暗号部31)は、少なくとも1つの初期ディオファントス方程式を変更して、少なくとも1つの変数解集合(v1,…,vn)によって解くことが可能な少なくとも1つのディオファントス方程式を生成し得る。そのような変更は、隠蔽変数又はその派生で、少なくとも1つの初期ディオファントス方程式に加算、減算、乗算、及び/又は除算を実行することを含み得る。第1部分集合及び第2部分集合は、互いに排他的な変数を含んでもよいし、又は、共通の変数を含んでもよい。
【0102】
また、更に別の例(整数分割に関する)において、少なくとも1つの対称鍵を利用して、暗号装置30(例えば多項式生成部35)は、少なくとも1つのディオファントス方程式(v1,…,vn)を生成するために少なくとも1つの変数解集合(v1,…,vn)を生成し得る(これによりディオファントス方程式を解くことが可能となる)。各変数は、少なくとも1つの対称鍵の少なくとも1つの整数、及び暗号文説明変数から導出され得る。例えば対称鍵入力部32により提供された複数の互いに素である整数に基づき、暗号装置(例えば任意の整数分割部)は、事前暗号整数(M1,…,Mn)を複数の分割整数に分割する。ディオファントス方程式の数、又は総数は、分割整数の総数と同様に、互いに素である整数の総数と等しくてもよい。少なくとも1つの事前暗号整数(M1,…,Mn)を分割することは、少なくとも1つの事前暗号整数(M1,…,Mn)、及び複数の除数である複数の互いに素である整数を利用して、複数のモジュロ演算を実行すること、及び、その実行結果から複数の余りである複数の分割整数を導出することを含み得る。
【0103】
また、更に別の例(暗号文説明変数、隠蔽変数、及び整数分割に関する)において、少なくとも1つの対称鍵、及び暗号文説明変数を利用して、暗号装置30(例えば多項式生成部35)は、少なくとも1つのディオファントス方程式(v1,…,vn)を生成するために少なくとも1つの変数解集合(v1,…,vn)を生成し得る(これによりディオファントス方程式を解くことが可能となる)。各変数は、少なくとも1つの対称鍵の少なくとも1つの整数、及び暗号文説明変数から導出され得る。例えば対称鍵入力部32により提供された複数の互いに素である整数に基づき、暗号装置(例えば任意の整数分割部)は、少なくとも1つの事前暗号整数(M1,…,Mn)を複数の分割整数に分割する。変数解集合(v1,…,vn)(又はその第1部分集合)の少なくとも幾つかの変数、及び分割整数を利用して、暗号装置30(例えば暗号部31)は、複数の初期ディオファントス方程式を生成し得る。変数解集合(v1,…,vn)(又はその第2部分集合)の少なくとも1つの変数から導出された隠蔽変数を利用して、暗号装置(例えば暗号部31)は、複数の初期ディオファントス方程式を変更して、少なくとも1つの変数解集合(v1,…,vn)によって解くことが可能な複数のディオファントス方程式を生成し得る。ディオファントス方程式の数、又は総数は、分割整数の総数と同様に、互いに素である整数の総数と等しくてもよい。暗号文説明変数、及び隠蔽変数は、先の例で説明した同様の方法で確認され得る。少なくとも1つの事前暗号整数(M1,…,Mn)を分割することは、少なくとも1つの事前暗号整数(M1,…,Mn)、及び複数の除数である複数の互いに素である整数を利用して、複数のモジュロ演算を実行すること、及び、その実行結果から複数の余りである複数の分割整数を導出することを含み得る。
【0104】
ブロック307では、暗号装置30(例えばAI部36)は、予測アルゴリズムを備え得る学習済みAIモデルを利用して、ブロック305にて生成された、(偽のディオファントス方程式を含む)少なくとも1つのディオファントス方程式の非可解性、又は可解性を予測する。もし、偽のディオファントス方程式を含む少なくとも1つのディオファントス方程式が非可解と予測されると、少なくとも1つのディオファントス方程式は、暗号文として提供又は出力されるだろう。一方、もし、偽のディオファントス方程式を含むディオファントス方程式が可解と予測されると、フローチャートは、ブロック305に戻り、少なくとも1つの替わりのディオファントス方程式が生成され、その非可解性又は可解性がブロック307で予測される。もし、少なくとも1つの替わりのディオファントス方程式が非可解と予測されると、この替わりのディオファントス方程式は、非可解と予測される少なくとも1つのディオファントス方程式の部分集合と同様に、暗号文として提供又は出力されるだろう。
【0105】
ブロック309では、ブロック307における少なくとも1つのディオファントス方程式の非可解性、又は可解性のAI予測に基づき、暗号装置30(例えば暗号文出力部38)は、非可解と予測された、替わりの又は偽のディオファントス方程式を含む少なくとも1つの非可解のディオファントス方程式を、少なくとも1つの暗号文を含む暗号文メッセージとして提供又は出力する。暗号文は、復号装置40又は別の装置に送信され得る。
【0106】
上記例(少なくとも1つの偽のディオファントス方程式に関する)において、所定の偽のディオファントス方程式条件に準拠する少なくとも1つの偽のディオファントス方程式は、少なくとも1つの偽の暗号文を含む偽の暗号文メッセージとして提供又は出力される。偽の暗号文メッセージ、及び暗号文メッセージは、例えば暗号文出力部38によって、所定の間隔で又はランダムの間隔で復号装置40又は他の装置に送信又は提供され得る。
[人工知能]
【0107】
本発明の幾つかの実施形態に従って
図3C及び
図3Dを参照する。
【0108】
図3Cは、暗号装置30によって採用され得る人工知能(AI)部36の概念図である。AI部36は、ディオファントス方程式入力部361と、それと通信可能に接続される記憶部362と、それと通信可能に接続される学習済みAIモデル363と、それと通信可能に接続される予測出力部364と、を備える。学習済みAIモデル363は、ディオファントス方程式の非可解性、又は可解性を予測するように構成された、予測アルゴリズム又は等価物を備え得る。
【0109】
図3Dは、AI部36又は他の適切なAI装置によって実行され得るAI学習方法のフローチャートを含む。
【0110】
ブロック3601では、AI部36(例えばディオファントス方程式入力部361)は、解くことが可能なクラス又は例の複数のディオファントス方程式を受信する。
【0111】
ブロック3603では、AI部36(例えば記憶部362)は、受信した可解なクラス又は例の複数のディオファントス方程式を格納する。
【0112】
ブロック3605では、AI部36(例えば予測アルゴリズムを備え得るAIモデル363)は、記憶部362によって提供される可解な複数のディオファントス方程式を用いて訓練される。
【0113】
図3Dは、AI部36又は他の適切なAI装置によって実行され得るAI予測方法のフローチャートを含む。
【0114】
ブロック3607では、AI部36(例えばディオファントス方程式入力部361)は、暗号文として利用されるためにブロック305で生成された少なくとも1つのディオファントス方程式を受信する。
【0115】
ブロック3609では、記憶部362又は他の記憶部に格納され得る可解なクラス又は例の複数のディオファントス方程式を利用して、AI部36(例えば学習済みAIモデル363)は、暗号文として利用される受信したディオファントス方程式が非可解か可解かを予測する。
【0116】
ブロック3611では、ブロック3609からの予測結果を利用して、AI部36(例えば予測出力部364)は、予測結果(例えば暗号文として利用される受信したディオファントス方程式の非可解性、又は可解性)を提供又は出力する。予測結果は、上記のブロック307で考慮されるために、暗号部31に送信され得る。
[復号化]
【0117】
本発明の幾つかの実施形態に従って
図4A及び
図4Bを参照する。
【0118】
図4Aは、復号装置40の概念図である。復号装置40は、復号部41と、任意の暗号文説明変数部43と、対称鍵入力部44と、整数平文部45と、を備え得る。復号部41は、(暗号部を別の装置から受信し、暗号文を復号部41に提供するように構成され得る)暗号文入力部42と通信可能に接続される。暗号文説明変数部43は、暗号文説明変数を復号部41に提供するように構成され得る。対称鍵入力部44は、別の装置から対称鍵を受信し、復号部41に提供するように構成され得る。整数平文部45は、復号部41から整数を受信し、平文を平文出力部46に提供するように構成され得る。整数平文部45は、平文出力部46と通信可能に接続され、複数の整数の分解を解除して解除された整数を平文出力部46に提供ように構成され得る任意の整数分割解除部を有し得る。任意の暗号文説明変数部43は、暗号文入力部42と通信可能に接続され得る。任意の暗号文説明変数部43は、鍵生成装置20から暗号文説明変数の初期値を受信し、その後、暗号文入力部42から暗号文説明変数の後続の値、又は更新された値を受信する、或いは暗号文入力部42から受信した暗号文に基づき、暗号文説明変数の後続の値、又は更新された値を確認し得る。
【0119】
図4Bは、復号装置40又は他の適切な復号装置によって実行され得る復号方法を示すフローチャートである。
【0120】
ブロック401では、復号装置40(例えば対称鍵入力部44)は、対称鍵を受信する。復号装置40(例えば暗号文入力部42)は、少なくとも1つの暗号文を含む暗号文メッセージを受信する。対称鍵及び暗号文メッセージの受信は、異なるタイミング又はシーケンスで発生し得ることは理解されるべきである。暗号文は、ブロック403で識別される少なくとも1つの偽のディオファントス方程式を含み得る、非可解な少なくとも1つのディオファントス方程式を含み得る。
【0121】
ブロック403では、少なくとも1つの対称鍵及び少なくとも1つの暗号文を利用して、復号装置40(例えば復号部41)は、少なくとも1つのディオファントス方程式を解き、少なくとも1つの事前暗号又は復号整数(M1,…,Mn)を確認又は取得し得る。ブロック403は、以下に記載される可能な方法の例の1つによって実施され得る。
【0122】
一例では、少なくとも1つの対称鍵を利用して、復号装置40(例えば復号部41)は、少なくとも1つのディオファントス方程式を解く又は復号するための少なくとも1つの変数解集合(v1,…,vn)を生成し得る。各変数は、少なくとも1つの対称鍵の少なくとも1つの整数から導出され得る。生成された変数解集合(v1,…,vn)を利用して、復号装置40(例えば復号部41)は、少なくとも1つのディオファントス方程式を解き、少なくとも1つの事前暗号又は復号整数(M1,…,Mn)を確認し、その後、事前暗号整数(M1,…,Mn)を整数平文部45に提供する。
【0123】
別の例(偽のディオファントス方程式に関する)では、少なくとも1つの対称鍵を利用して、復号装置40(例えば復号部41)は、少なくとも1つのディオファントス方程式を解く又は復号するための少なくとも1つの変数解集合(v1,…,vn)を生成し得る。各変数は、少なくとも1つの対称鍵の少なくとも1つの整数から導出され得る。生成された変数解集合(v1,…,vn)を利用して、復号装置40(例えば復号部41)は、少なくとも1つのディオファントス方程式、つまり、複数のディオファントス方程式を解き、少なくとも1つの事前暗号又は復号整数(M1,…,Mn)を確認し、その後、少なくとも1つの事前暗号整数(M1,…,Mn)を整数平文部45に提供する。もし、少なくとも1つのディオファントス方程式のいずれかを解いて非整数解を生成するなら、その特定のディオファントス方程式は、偽のディオファントス方程式として確認され、その結果、その非整数解は、整数平文部45には提供されないだろう。整数解(M1,…,Mn)だけが、整数平文部45に提供されるだろう。
【0124】
更に別の例(暗号文説明変数に関する)では、少なくとも1つの対称鍵、及び例えば暗号文説明変数入力部43により提供された暗号文説明変数を利用して、復号装置40(例えば復号部41)は、少なくとも1つのディオファントス方程式を解く又は復号するための少なくとも1つの変数解集合(v1,…,vn)を生成し得る。各変数は、少なくとも1つの対称鍵の少なくとも1つの整数、及び暗号文説明変数から導出され得る。生成された変数解集合(v1,…,vn)を利用して、復号装置40(例えば復号部41)は、少なくとも1つのディオファントス方程式を解き、少なくとも1つの事前暗号又は復号整数を確認し、その後、事前暗号整数を整数平文部45に提供する。
【0125】
また、更なる例(隠蔽変数に関する)では、少なくとも1つの対称鍵を利用して、復号装置40(例えば復号部41)は、少なくとも1つのディオファントス方程式を解く又は復号するための少なくとも1つの変数解集合(v1,…,vn)を生成し得る。各変数は、少なくとも1つの対称鍵の少なくとも1つの整数から導出され得る。生成された変数解集合(v1,…,vn)(又はその第1部分集合)の少なくとも幾つかの変数、及び隠蔽変数(又は生成された変数解集合(v1,…,vn) の第2部分集合)を利用して、復号装置40(例えば復号部41)は、少なくとも1つのディオファントス方程式を解き、これは、少なくとも1つのディオファントス方程式、又は隠蔽変数によるその派生を変更して、事前暗号又は復号整数(M1,…,Mn)を確認し、その後、整数平文部45に提供されることを含む。隠蔽変数は、生成された変数解集合(v1,…,vn)(又はその第2部分集合)の少なくとも1つの変数から導出され得る。そのような変更は、隠蔽変数を利用して、少なくとも1つのディオファントス方程式又はそれの派生に、隠蔽変数を用いた暗号化の間に実行された変更を補う又は否定する方法で、加算、減算、乗算、及び/又は除算を実行することを含み得る。第1部分集合及び第2部分集合は、互いに排他的な変数を含んでもよいし、或いは同じ変数を含んでもよい。
【0126】
また、更に別の例(整数分割に関する)では、少なくとも1つの対称鍵を利用して、復号装置40(例えば復号部41)は、少なくとも1つのディオファントス方程式を解く又は復号するための少なくとも1つの変数解集合(v1,…,vn)を生成し得る。各変数は、少なくとも1つの対称鍵の少なくとも1つの整数から導出され得る。生成された変数解集合(v1,…,vn)(又はその第1部分集合)の少なくとも幾つかの変数を利用して、復号装置40(例えば復号部41)は、少なくとも1つのディオファントス方程式、つまり、複数のディオファントス方程式を解き、複数の分割整数(又は分割された複数の事前暗号又は復号整数)を確認する。その後、複数の分割整数は、整数分割解除部に提供され得る。第1部分集合及び第2部分集合は、互いに排他的な変数を含んでもよいし、或いは同じ変数を含んでもよい。
【0127】
また、更に別の例(暗号文説明変数、隠蔽変数、及び整数分割に関する)では、少なくとも1つの対称鍵、及び暗号文説明変数を利用して、復号装置40(例えば復号部41)は、少なくとも1つのディオファントス方程式を解く又は復号するための少なくとも1つの変数解集合(v1,…,vn)を生成し得る。各変数は、少なくとも1つの対称鍵の少なくとも1つの整数、及び暗号文説明変数から導出され得る。生成された変数解集合(v1,…,vn)(又はその第1部分集合)の少なくとも幾つかの変数、及び隠蔽変数(又は生成された変数解集合(v1,…,vn)の第2部分集合)を利用して、復号装置40(例えば復号部41)は、少なくとも1つのディオファントス方程式、つまり、複数のディオファントス方程式を解き、複数の分割整数(又は分割された複数の事前暗号又は復号整数)を確認する。その解くことは、少なくとも1つの変数解集合(v1,…,vn)を複数のディオファントス方程式に代えること、隠蔽変数(例えば暗号文説明変数)を用いて、このシーケンスで、又は異なるシーケンスで複数のディオファントス方程式を変更すること、を含み得る。少なくとも1つのディオファントス方程式を変更することは、隠蔽変数を利用して、複数のディオファントス方程式又はそれらの派生に、同じ隠蔽変数を用いた暗号化の間に実行された変更を補う又は否定する方法で、加算、減算、乗算、及び/又は除算を実行することを含み得る。その後、複数の分割整数は、整数分割解除部に提供され得る。第1部分集合及び第2部分集合は、互いに排他的な変数を含んでもよいし、或いは同じ変数を含んでもよい。
【0128】
ブロック405では、復号装置40(例えば整数平文部45)は、少なくとも1つの事前暗号又は復号整数を少なくとも1つの平文に変換し、平文出力部46に提供又は出力する。
【0129】
複数の分割整数が平文に変換されるために整数平文部45に提供される前述の例(整数分解を含む)では、復号装置40(例えば整数分割解除部)は、複数の分割整数の分割を解除し、少なくとも1つの事前暗号整数(M1,…,Mn)を確認又は取得し得る。特に、複数の互いに素である整数、及び複数の分割整数を利用して、事前暗号整数(M1,…,Mn)は、確認又は取得される。複数の互いに素である整数は、分割の解除の間において少なくとも1つの変数解集合(v1,…,vn)を複数のディオファントス方程式に代えることを通じて、少なくとも1つの暗号文から取得され得る。分割の解除は、複数の分割整数を複数の余りとして、複数の互いに素である整数を複数の商として用いて、複数のユークリッドの互除法演算を実行すること、及び、その演算結果から少なくとも1つ事前暗号整数(M1,…,Mn)を導出することを含み得る。複数の互いに素である整数の総数、複数の分割整数の総数、及び復号される複数のディオファントス方程式の総数は、等しい。
【0130】
ブロック405の後、復号装置40(例えば平文出力部)は、少なくとも1つの平文を含む平文メッセージを別の装置に送信又は提供し得る。
【0131】
鍵生成、暗号、及び復号の実施例について以下に示す。
【0132】
[実施例(基本)]
鍵生成:
<鍵を生成する指令を受信する>
(y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, z1, z2, z3, z4, z5, z6, z7, z8, z9, z10) で表す20個のランダムの整数を生成する。
vn = yn * znとする。
<ランダムの整数を生成する>
この実施例では、
y1=1, y2=2, y3=3, y4=4, y5=5, y6=6, y7=7, y8=8, y9=9, y10=10
z1=1, z2=2, z3=3, z4=4, z5=5, z6=6, z7=7, z8=8, z9=9, z10=10
v1=1*1=1
v2=2*2=4
v3=3*3=9
v4=4*4=16
v5=5*5=25
v6=6*6=36
v7=7*7=49
v8=8*8=64
v9=9*9=81
v10=10*10=100
<鍵の生成を終了する>
暗号開始:
<平文メッセージを取得する>
平文メッセージを“hi!”とする。
<平文を整数に変換する>
ASCII codeを用いて“hi!”は、104, 105, 33で表される。暗号化及び復号化を素早くするために、“9”が2桁の数字の前に追加される。
その結果、暗号化される整数は、“104105933”となる。
<対称鍵に基づきディオファントス方程式を生成する>
上記から、v1, v2, v3, v4, v5, v6, v7, v8, v9, v10の値が確認される。
v1, v2, v3, v4, v5, v6, v7, v8, v9, v10は、ディオファントス方程式において複数の変数として利用される。
生成されたディオファントス方程式:
X2= 5v1
10005032 + 2(v2
2)(v1
89)+v3
2+v4
2+v5
2+v6
2+v7
2+v8
2+v9
2+v10
3 +10838045284785136
<人工知能>
ディオファントス方程式を解く歴史的、既知の方法に基づいて、上記式の非可解性又は可解性が予測される。
もし、上記のディオファントス方程式について解くことが可能、又は可解と予測されると、替わりのディオファントス方程式が生成される。もし、上記のディオファントス方程式について非可解と予測されると、暗号文として利用される。
<暗号文を出力する>
X2= 5v1
10005032 + 2(v2
2)(v1
89)+v3
2+v4
2+v5
2+v6
2+v7
2+v8
2+v9
2+v10
3 +10838045284785136
<暗号を終了する>
復号開始:
<暗号文を取得する>
X2= 5v1
10005032 + 2(v2
2)(v1
89)+v3
2+v4
2+v5
2+v6
2+v7
2+v8
2+v9
2+v10
3 +10838045284785136
<対称鍵を利用してディオファントス方程式を解く>
次の値が与えられる。
y1=1, y2=2, y3=3, y4=4, y5=5, y6=6, y7=7, y8=8, y9=9, y10=10
z1=1, z2=2, z3=3, z4=4, z5=5, z6=6, z7=7, z8=8, z9=9, z10=10
vn = yn * znとする。
v1=1*1=1
v2=2*2=4
v3=3*3=9
v4=4*4=16
v5=5*5=25
v6=6*6=36
v7=7*7=49
v8=8*8=64
v9=9*9=81
v10=10*10=100
対称鍵を利用して、Xの値は、X=104105933として確認される。
<メッセージ整数を生成する>
上記から、X=104105933
<整数をメッセージに変換する>
整数104, 105, 33についてASCII codeに基づき、メッセージ“hi!”が確認される。
<復号を終了する>
【0133】
[実施例(偽のディオファントス方程式に関する)]
鍵生成:
<鍵を生成する指令を受信する>
(y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, z1, z2, z3, z4, z5, z6, z7, z8, z9, z10)で表す20個のランダムの整数を生成する。
vn = yn * znとする。
<ランダムの整数を生成する>
この実施例では、
y1=1, y2=2, y3=3, y4=4, y5=5, y6=6, y7=7, y8=8, y9=9, y10=10
z1=1, z2=2, z3=3, z4=4, z5=5, z6=6, z7=7, z8=8, z9=9, z10=10
v1=1*1=1
v2=2*2=4
v3=3*3=9
v4=4*4=16
v5=5*5=25
v6=6*6=36
v7=7*7=49
v8=8*8=64
v9=9*9=81
v10=10*10=100
<鍵の生成を終了する>
暗号開始:
<平文メッセージを取得する>
平文メッセージを“hi!”とする。
<平文を整数に変換する>
ASCII codeを用いて“hi!”は、104, 105, 33で表される。暗号化及び復号化を素早くするために、“9”が2桁の数字の前に追加される。
その結果、暗号化される整数は、“104105933”となる。
<対称鍵に基づきディオファントス方程式を生成する>
上記から、v1, v2, v3, v4, v5, v6, v7, v8, v9, v10の値が確認される。
v1, v2, v3, v4, v5, v6, v7, v8, v9, v10は、ディオファントス方程式において複数の変数として利用される。
生成されたディオファントス方程式:
X2= 5v1
10005032 + 2(v2
2)(v1
89)+v3
2+v4
2+v5
2+v6
2+v7
2+v8
2+v9
2+v10
3 +10838045284785136
<偽のディオファントス方程式を生成する>
X2= 12v1
10002 + 2(v2
2)(v1
8129)+v3
2+v4
2+v5
2+v6
2+v7
2+v8
2+v9
2+v10
3 +103090640
解のチェック(対称鍵を利用する時)
X= 10203.23478
v1=1*1=1
v2=2*2=4
v3=3*3=9
v4=4*4=16
v5=5*5=25
v6=6*6=36
v7=7*7=49
v8=8*8=64
v9=9*9=81
v10=10*10=100
の時、Xは、整数でない。
Xは整数でないため、偽のディオファントス方程式は利用できる。もし、Xが整数であれば、替わりの偽のディオファントス方程式が生成されてその解がチェックされる。
<人工知能>
ディオファントス方程式を解く歴史的、既知の方法に基づいて、上記式の非可解性又は可解性が予測される。
もし、上記のディオファントス方程式について解くことが可能、又は可解と予測されると、替わりのディオファントス方程式が生成される。もし、上記のディオファントス方程式について非可解と予測されると、暗号文として利用される。
<暗号文を出力する>
X2 = 5v1
10005032 + 2(v2
2)(v1
89)+v3
2+v4
2+v5
2+v6
2+v7
2+v8
2+v9
2+v10
3 +10838045284785136
X2= 12v1
10002 + 2(v2
2)(v1
8129)+v3
2+v4
2+v5
2+v6
2+v7
2+v8
2+v9
2+v10
3 +103090640
<暗号を終了する>
復号開始:
<暗号文を取得する>
X2= 5v1
10005032 + 2(v2
2)(v1
89)+v3
2+v4
2+v5
2+v6
2+v7
2+v8
2+v9
2+v10
3 +10838045284785136
X2= 12v1
10002 + 2(v2
2)(v1
8129)+v3
2+v4
2+v5
2+v6
2+v7
2+v8
2+v9
2+v10
3 +103090640
<対称鍵を利用してディオファントス方程式を解く>
次の値が与えられる。
y1=1, y2=2, y3=3, y4=4, y5=5, y6=6, y7=7, y8=8, y9=9, y10=10
z1=1, z2=2, z3=3, z4=4, z5=5, z6=6, z7=7, z8=8, z9=9, z10=10
vn = yn * znとする。
v1=1*1=1
v2=2*2=4
v3=3*3=9
v4=4*4=16
v5=5*5=25
v6=6*6=36
v7=7*7=49
v8=8*8=64
v9=9*9=81
v10=10*10=100
対称鍵を利用して、Xの値は、X=104105933、又はX=10203.23478として確認される。
X=10203.23478であるため、これは偽のディオファントス方程式又は偽の暗号文であることが分かる。一方で、X=104105933は、本当の又は本物のディオファントス方程式又は暗号文を提供する。
<メッセージ整数を生成する>
上記から、X=104105933
<整数をメッセージに変換する>
整数104, 105, 33についてASCII codeに基づき、メッセージ“hi!”が確認される。
<復号を終了する>
【0134】
[実施例(暗号文説明変数に関する)]
鍵生成:
<鍵を生成する指令を受信する>
(y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, z1, z2, z3, z4, z5, z6, z7, z8, z9, z10)で表す20個のランダムの整数を生成する。
暗号文説明変数Knを生成する。
vn = yn * zn *Knとする。
<ランダムの整数を生成する>
この実施例では、
y1=1, y2=2, y3=3, y4=4, y5=5, y6=6, y7=7, y8=8, y9=9, y10=10
z1=1, z2=2, z3=3, z4=4, z5=5, z6=6, z7=7, z8=8, z9=9, z10=10
Kn = 10
v1=1*1*10=10
v2=2*2*10=40
v3=3*3*10=90
v4=4*4*10=160
v5=5*5*10=250
v6=6*6*10=360
v7=7*7*10=490
v8=8*8*10=640
v9=9*9*10=810
v10=10*10*10=1000
<鍵の生成を終了する>
暗号開始:
<平文メッセージを取得する>
平文メッセージを“hi!”とする。
<平文を整数に変換する>
ASCII codeを用いて“hi!”は、104, 105, 33で表される。暗号化及び復号化を素早くするために、“9”が2桁の数字の前に追加される。
その結果、暗号化される整数は、“104105933”となる。
<対称鍵に基づきディオファントス方程式を生成する>
上記から、v1, v2, v3, v4, v5, v6, v7, v8, v9, v10の値が確認される。
v1, v2, v3, v4, v5, v6, v7, v8, v9, v10は、ディオファントス方程式において複数の変数として利用される。
生成されたディオファントス方程式:
X2= 5v1
10 + v2
2+v3
2+v4
2+v5
2+v6
2+v7
2+v8
2+v9
2+v10
3 + 10837994284269289
なお、ディオファントス方程式が累乗10、係数5を持つ項5v1
10を有するように後続の暗号において暗号文を生成すると、Knの値は10から5に変化する。
v1…v10の値は、後続の暗号において以下の値にそれぞれ変化する。
v1=1*1*5=5
v2=2*2*5=20
v3=3*3*5=45
v4=4*4*5=80
v5=5*5*5=125
v6=6*6*5=180
v7=7*7*5=245
v8=8*8*5=320
v9=9*9*5=105
v10=10*10*5=500
<人工知能>
ディオファントス方程式を解く歴史的、既知の方法に基づいて、上記式の非可解性又は可解性が予測される。
もし、上記のディオファントス方程式について解くことが可能、又は可解と予測されると、替わりのディオファントス方程式が生成される。もし、上記のディオファントス方程式について非可解と予測されると、暗号文として利用される。
<暗号文を出力する>
X2= 5v1
10 + v2
2+v3
2+v4
2+v5
2+v6
2+v7
2+v8
2+v9
2+v10
3 +10837994284269289
<暗号を終了する>
復号開始:
<暗号文を取得する>
X2=5v1
10 + v2
2+v3
2+v4
2+v5
2+v6
2+v7
2+v8
2+v9
2+v10
3 +10837994284269289
<対称鍵を利用してディオファントス方程式を解く>
次の値が与えられる。
y1=1, y2=2, y3=3, y4=4, y5=5, y6=6, y7=7, y8=8, y9=9, y10=10
z1=1, z2=2, z3=3, z4=4, z5=5, z6=6, z7=7, z8=8, z9=9, z10=10
Kn = 10
vn = yn * zn * Knとする。
v1=1*1*10=10
v2=2*2*10=40
v3=3*3*10=90
v4=4*4*10=160
v5=5*5*10=250
v6=6*6*10=360
v7=7*7*10=490
v8=8*8*10=640
v9=9*9*10=810
v10=10*10*10=1000
対称鍵及び暗号文説明変数を利用して、以下が得られる:
X= 104105933
累乗10、係数5を持つ項5v1
10が存在するように後続の復号において暗号文を復号すると、Knの値は10から5に変化する。
v1…v10の値は、後続の復号において以下の値にそれぞれ変化する。
v1=1*1*5=5
v2=2*2*5=20
v3=3*3*5=45
v4=4*4*5=80
v5=5*5*5=125
v6=6*6*5=180
v7=7*7*5=245
v8=8*8*5=320
v9=9*9*5=105
v10=10*10*5=500
<メッセージ整数を生成する>
上記から、X=104105933
<整数をメッセージに変換する>
整数104, 105, 33についてASCII codeに基づき、メッセージ“hi!”が確認される。
<復号を終了する>
【0135】
[実施例(隠蔽変数に関する)]
鍵生成:
<鍵を生成する指令を受信する>
(y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, z1, z2, z3, z4, z5, z6, z7, z8, z9, z10, z11)で表す22個のランダムの整数を生成する。
vn = yn * znとする。
<ランダムの整数を生成する>
この実施例では、
y1=1, y2=2, y3=3, y4=4, y5=5, y6=6, y7=7, y8=8, y9=9, y10=10, y11=11
z1=1, z2=2, z3=3, z4=4, z5=5, z6=6, z7=7, z8=8, z9=9, z10=10, z11=11
v1=1*1=1
v2=2*2=4
v3=3*3=9
v4=4*4=16
v5=5*5=25
v6=6*6=36
v7=7*7=49
v8=8*8=64
v9=9*9=81
v10=10*10=100
v11=11*11=121
<鍵の生成を終了する>
暗号開始:
<平文メッセージを取得する>
平文メッセージを“hi!”とする。
<平文を整数に変換する>
ASCII codeを用いて“hi!”は、104, 105, 33で表される。暗号化及び復号化を素早くするために、“9”が2桁の数字の前に追加される。
その結果、暗号化される整数は、“104105933”となる。
<対称鍵に基づきディオファントス方程式を生成する>
上記から、v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11の値が確認される。
v1, v2, v3, v4, v5, v6, v7, v8, v9, v10は、ディオファントス方程式において複数の変数として利用され、v11は、隠蔽変数として利用される。
生成されたディオファントス方程式:
X2= 5v1
10005032 + 2(v2
2)(v1
89)+v3
2+v4
2+v5
2+v6
2+v7
2+v8
2+v9
2+v10
3 +10838045284785015
<人工知能>
ディオファントス方程式を解く歴史的、既知の方法に基づいて、上記式の非可解性又は可解性が予測される。
もし、上記のディオファントス方程式について解くことが可能、又は可解と予測されると、替わりのディオファントス方程式が生成される。もし、上記のディオファントス方程式について非可解と予測されると、暗号文として利用される。
<暗号文を出力する>
X2 = 5v1
10005032 + 2(v2
2)(v1
89)+v3
2+v4
2+v5
2+v6
2+v7
2+v8
2+v9
2+v10
3 +10838045284785015
<暗号を終了する>
復号開始:
<暗号文を取得する>
X2= 5v1
10005032 + 2(v2
2)(v1
89)+v3
2+v4
2+v5
2+v6
2+v7
2+v8
2+v9
2+v10
3 +10838045284785015
<対称鍵を利用してディオファントス方程式を解く>
次の値が与えられる。
y1=1, y2=2, y3=3, y4=4, y5=5 ,y6=6, y7=7, y8=8, y9=9, y10=10, y11=11
z1=1, z2=2, z3=3, z4=4, z5=5 ,z6=6, z7=7, z8=8, z9=9, z10=10, z11=11
vn = yn * znとする。
v1=1*1=1
v2=2*2=4
v3=3*3=9
v4=4*4=16
v5=5*5=25
v6=6*6=36
v7=7*7=49
v8=8*8=64
v9=9*9=81
v10=10*10=100
v11=11*11=121
対称鍵を利用して、以下が得られる:
X2=10838045285800368(この段階で、ディオファントス方程式は非整数値において上記結果からXとしてまだ解かれない。)
隠蔽変数v11=121をその式の右辺に追加すると、以下が得られる:
X2=10838045285800489
X= 104105933(この段階でディオファントス方程式はXが整数値として解かれる。)
<メッセージ整数を生成する>
上記から、X=104105933
<整数をメッセージに変換する>
整数104, 105, 33についてASCII codeに基づき、メッセージ“hi!”が確認される。
<復号を終了する>
【0136】
[実施例(整数分割に関する)]
鍵生成:
<鍵を生成する指令を受信する>
(y1,y2,y3,y4,y5,y6,y7,z1,z2,z3,z4,z5,z6,z7)で表す14個のランダムの整数を生成する。
vn= yn+ (10) znとする。
その中で、vnは、ディオファントス方程式に対する変数である。
<ランダムの整数を生成する>
この実施例では、
y1=1, y2=2, y3=3, y4=4, y5=5, y6=6, y7=7
z1=1, z2=2, z3=3, z4=4, z5=5, z6=6, z7=7
v1=1+101 = 11
v2=2+102 = 102
v3=3+103 = 1003
v4=4+104 = 10004
v5=5+105 = 100005
v6=6+106 =1000006
v7=7+107= 10000007
<整数がパラメータを満たしていることをチェックする>
<鍵の生成を終了する>
暗号開始:
<平文メッセージを取得する>
平文メッセージを“hi!”とする。
<平文を整数に変換する>
ASCII codeを用いて“hi!”は、104, 105, 33で表される。暗号化及び復号化を素早くするために、“9”が2桁の数字の前に追加される。
その結果、暗号化される整数は、“104105933”となる。
<互いに素である座標に基づき整数を分割する>
3つのランダムの互いに素である整数が選択される。
p1=512
p2=729
p3=1953125
104105933mod 512 = 461
104105933mod 729 = 359
104105933mod 1953125 = 590308
<対称鍵に基づきディオファントス方程式を生成する>
上記から、v1, v2,v3,v4,v5,v6,v7の値が確認される。
v1,v2,v3,v4,v5,v6,v7は、ディオファントス方程式において複数の変数として利用される。
生成されたディオファントス方程式:
v1X = 11[A(v7-10v6+v5-10v4+v3-4v2+v1 - 6) + 4v2 +5(v1) 2- 552]
v1X = 11[B(v7-10v6+v5-10v4+v3-10v2+(v1)2+713) +3(v1)2 - 4]
v1X= 11[C(v7-10v6+v5-10v4+v3-10v2+1000(v1)3+ 622230) + (v3)2- 415701]
この実施例では、3つの新しいランダムの変数A, B, Cが生成される。
<人工知能>
ディオファントス方程式を解く歴史的、既知の方法に基づいて、上記式の非可解性又は可解性が予測される。
もし、上記のディオファントス方程式について解くことが可能、又は可解と予測されると、替わりのディオファントス方程式が生成される。もし、上記のディオファントス方程式について非可解と予測されると、暗号文として利用される。
<暗号文を出力する>
v1X = 11[A(v7-10v6+v5-10v4+v3-4v2+v1 - 6) + 4v2 +5(v1)2 - 552]
v1X = 11[B(v7-10v6+v5-10v4+v3-10v2+(v1)2+713) +3(v1) 2 - 4]
v1X = 11[C(v7-10v6+v5-10v4+v3-10v2+1000(v1)3 +622230) + (v3)2 -415701]
<暗号を終了する>
復号開始:
<暗号文を取得する>
v1X = 11[A(v7-10v6+v5-10v4+v3-4v2+v1 - 6) + 4v2 +5(v1)2 - 552]
v1X = 11[B(v7-10v6+v5-10v4+v3-10v2+(v1)2+713) +3(v1)2 - 4]
v1X= 11[C(v7-10v6+v5-10v4+v3-10v2+1000(v1)3+ 622230) + (v3)2- 415701]
<対称鍵及び暗号文説明変数を利用してディオファントス方程式を解く>
次の値が与えられる。
v1=1+101 = 11
v2=2+102 = 102
v3=3+103 = 1003
v4=4+104 = 10004
v5=5+105 = 100005
v6=6+106 =1000006
v7=7+107 =10000007
対称鍵を利用して、以下が得られる。
X =A(512) + 461
X =B(729) + 359
X= C(1953125) + 590308
<メッセージ整数を生成する>
整数の分割解除を用いて式を解くと、X=104105933
<整数をメッセージに変換する>
整数104, 105, 33についてASCII codeに基づき、メッセージ“hi!”が確認される。
<復号を終了する>
【0137】
[実施例(暗号文説明変数、隠蔽変数、及び整数分割に関する)]
鍵生成:
<鍵を生成する指令を受信する>
(y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, z1, z2, z3, z4, z5, z6, z7, z8, z9, z10)で表す20個のランダムの整数を生成する。
vn = yn + (Kn) Znとする。
その中で、Kn は、暗号文説明変数であり、vnは、ディオファントス方程式に対する変数である。
<ランダムの整数を生成する>
この実施例では、
K1=K2=K3=K4=K5= K6= K7= K8= K9= K10=10
y1=1, y2=2, y3=3, y4=4, y5=5, y6=6, y7=7, y8=8, y9=9, y10=10
z1=1, z2=2, z3=3, z4=4,z5=5, z6=6, z7=7, z8=8, z9=9, z10=10
v1=1+101 = 11
v2=2+102 = 102
v3=3+103 = 1003
v4=4+104 = 10004
v5=5+105 = 100005
v6=6+106 =1000006
v7=7+107 =10000007
v8=8+108 =100000008
v9=9+109 =1000000009
v10=10+1010 = 10000000010
<整数がパラメータを満たしていることをチェックする>
<鍵の生成を終了する>
暗号開始:
<平文メッセージを取得する>
平文メッセージを“hi!”とする。
<平文を整数に変換する>
ASCII codeを用いて“hi!”は、104, 105, 33で表される。暗号化及び復号化を素早くするために、“9”が2桁の数字の前に追加される。
その結果、暗号化される整数は、“104105933”となる。
<互いに素である座標に基づき整数を分割する>
3つのランダムの互いに素である整数が選択される。
p1=512
p2=729
p3=1953125
104105933mod 512 = 461
104105933mod 729 = 359
104105933mod 1953125 = 590308
<対称鍵及び暗号文説明変数に基づき、ディオファントス方程式を生成する>
上記から、v1, v2, v3, v4, v5, v6, v7, v8, v9, v10の値が確認される。
v1, v2, v3, v4, v5, v6, v7は、ディオファントス方程式において複数の変数として利用され、v8, v9, v10は、隠蔽変数、つまりディオファントス方程式を隠すために利用される変数となる。
生成されたディオファントス方程式:
v1X = 11[A(v7-10v6+v5-10v4+v3-4v2+v1 -100000014) + 4v2 +5(v1)2 - 552]
v1X = 11[B(v7-10v6+v5-10v4+v3-10v2+(v1)2 -999999296) +3(v1)2 - 4]
v1X = 11[C(v7-10v6+v5-10v4+v3-10v2+1000(v1)3 - 9999377780) + (v3)2 - 415701]
この実施例では、3つの新しいランダムの変数A, B, Cが生成され、各式は、それぞれ、v1.A.v8, v1.B.v9及びv1.C.v10を減算することで隠蔽される。
<人工知能>
ディオファントス方程式を解く歴史的、既知の方法に基づいて、上記式の非可解性又は可解性が予測される。
もし、上記のディオファントス方程式について解くことが可能、又は可解と予測されると、替わりのディオファントス方程式が生成される。もし、上記のディオファントス方程式について非可解と予測されると、暗号文として利用される。
<暗号文を出力する>
v1X = 11[A(v7-10v6+v5-10v4+v3-4v2+v1 -100000014) + 4v2 +5(v1)2 - 552]
v1X = 11[B(v7-10v6+v5-10v4+v3-10v2+(v1)2 -999999296) +3(v1)2 - 4]
v1X = 11[C(v7-10v6+v5-10v4+v3-10v2+1000(v1)3 - 9999377780) + (v3)2 - 415701]
なお、暗号文説明変数Kは値を変えなかった。
<暗号を終了する>
復号開始:
<暗号文を取得する>
v1X = 11[A(v7-10v6+v5-10v4+v3-4v2+v1 -100000014) + 4v2 +5(v1)2 - 552]
v1X = 11[B(v7-10v6+v5-10v4+v3-10v2+(v1)2 -999999296) +3(v1)2 - 4]
v1X = 11[C(v7-10v6+v5-10v4+v3-10v2+1000(v1)3 - 9999377780) + (v3)2 - 415701]
なお、暗号文説明変数Kは値を変えなかった。
<対称鍵及び暗号文説明変数を利用してディオファントス方程式を解く>
次の値が与えられる。
v1=1+101 = 11
v2=2+102 = 102
v3=3+103 = 1003
v4=4+104 = 10004
v5=5+105 = 100005
v6=6+106 =1000006
v7=7+107 =10000007
v8=8+108 =100000008
v9=9+109 =1000000009
v10=10+1010 =10000000010
真のディオファントス方程式は、隠蔽された変数(v1)(A)v8, (v1)(B)v9, (v1)(C)v10をそれぞれの式に加算することで得られる。
v1X = 11[A(v7-10v6+v5-10v4+v3-4v2+v1 -100000014) + 4v2 +5(v1)2 - 552] +(v1)(A)v8
v1X = 11[B(v7-10v6+v5-10v4+v3-10v2+(v1)2 -999999296) +3(v1)2 - 4] + (v1)(B)v9
v1X = 11[C(v7-10v6+v5-10v4+v3-10v2+1000(v1)3 - 9999377780) + (v3)2 - 415701] + (v1)(C)v10
対称鍵及び暗号文説明変数Kを利用して、以下が得られる。
X =A(512) + 461
X =B(729) +359
X= C(1953125) + 590308
<メッセージ整数を生成する>
整数の分割解除を用いて式を解くと、X=104105933
<整数をメッセージに変換する>
整数104, 105, 33についてASCII codeに基づき、メッセージ“hi!”が確認される。
<復号を終了する>
【0138】
本発明の実施形態は、以下の内容を含む幾つかの利点を提供するが、これらに限定されない。
【0139】
暗号化の安全性は、決定不能な暗号(例えば非可解なディオファントス方程式)、(真のディオファントス方程式を隠蔽し、それにより解を分かり難くする)偽のディオファントス方程式)、(真のディオファントス方程式を隠蔽し、それにより解を分かり難くする)隠蔽変数、(変数の境界を除外する)暗号文説明変数、及び/又は(オリジナルの平文を隠蔽する)整数分解を利用することにより改善される。
【0140】
さらに、従来の暗号方法及び装置(例えばUS2006/0251247 A1 (Akiyama et al.))は、一般的に人工知能利用していなかった。人工知能研究について近年の発展及び進歩は、様々な分野を跨ぐ使用の可能性を開いていて、近年のこれらの発展の幾つかはFacebookの人工知能研究者(Lample & Charton, 2020)による“Deep learning for symbolic mathematics”に従って、数学の分野での人工知能の利用を含む。本発明の実施形態において、人工知能の利用は、暗号時に解読された又は可解と知られたクラスのディオファントス方程式の除外を可能にし、新規及び更新データを含む学習データからの学習を通じて自動改善を可能にし、そして経験又は訓練による予測の改善を可能にする。
【0141】
ロジックフローを示すフローチャートは、本発明の新規の態様を実行するための例示的な方法論の代表であることを理解されたい。説明を簡略にするために、ここで示した1又は複数の方法論は、一連の行為として示され記述されているが、当業者ならその方法論がその順序での行為に限定されないことは理解するだろう。それに応じて、幾つかの行為は、ここで示され記述されたものとは異なる順序及び/又は他の行為と同時に起こり得る。例えば、当業者なら方法論が代替的に一連の相互に関連する状態又はイベント(例えば状態図)として表現されることができることは理解するだろう。さらに方法論で示される全ての行為が新規の実装に必要というわけではない。
【0142】
ロジックフローを示すフローチャートは、ソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせにて実施され得る。ソフトウェア及びファームウェアの実施形態では、ロジックフローは、非一時的なコンピュータ可読媒体又はマシーン可読媒体(例えば光学、磁気、又は半導体ストレージ)に格納されたコンピュータ実行可能な指示又はコードによって実施され得る。コンピュータ実行可能な指示は、ロジックフローを実行する少なくとも1つのコンピュータプロセッサを指示するように構成される。実施形態はこの文脈に限定されない。
【0143】
ここに記述された装置は、本発明の新規の態様を実行するための例示的な装置の代表であることを理解されたい。当業者ならそれらの装置がここで記述された要素に限定されないことは理解するだろう。ここで記述された装置のいずれかにおいては、少なくとも1つの記憶部、及びそれと通信可能に接続された少なくとも1つのプロセッサを備え得る。少なくとも1つのプロセッサは、例えば、マイクロプロセッサ、組み込みプロセッサ、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサ、マルチコアプロセッサ、シングルコアプロセッサ、又は、コード又はコンピュータ実行可能な指示を実行してここで記述したフローチャート、アルゴリズム、プロセス又は演算を実行又は実施するように構成された他の装置等の、いずれかのタイプのコンピュータプロセッサであってよい。少なくとも1つの記憶部は、コード又はコンピュータ実行可能な指示を格納又は備える非一時的なコンピュータ可読媒体又はマシーン可読媒体でもよい。その例としては、Random Access Memory (RAM)、Read Only Memory (ROM)、Field Programmable Gate Array (FPGA)のロジックブロック、Erasable Programmable Read Only Memory (EPROM)、及びElectrically Erasable Programmable ROM (EEPROM)が挙げられるが、これらに限定されない。
【0144】
上記の実施形態及び特徴は、例示的なものであり、制限されないと考えるべきであると理解されたい。多くの他の実施形態は、本発明の仕様及び実施を考慮することから当業者には明らかであろう。さらに特定の用語は、説明を明確にする目的で使用されており、本発明で開示された実施形態を限定するものではない。
【要約】 (修正有)
【課題】暗号文として非可解なディオファントス方程式及び人工知能利用する、暗号、復号及び鍵生成の装置並びに方法を提供する。
【解決手段】暗号方法において、対称鍵は、複数のディオファントス方程式を復号してそれらを元の平文に変換するために復号装置により使用される。特に、決定不能な暗号と人工知能(AI)との組み合わせが採用される。AIは、鍵無しで解かれたか、解読されたか又は解くことが可能と知られたクラスのディオファントス方程式を除外する。あるクラスのディオファントス方程式が将来解かれた場合、AIは、その解かれた又は解くことが可能なクラスのディオファントス方程式を暗号化において使用することを除外する。
【選択図】
図3B