JP5208797B2 - Integer encryption and decryption methods - Google Patents
Integer encryption and decryption methods Download PDFInfo
- Publication number
- JP5208797B2 JP5208797B2 JP2009030445A JP2009030445A JP5208797B2 JP 5208797 B2 JP5208797 B2 JP 5208797B2 JP 2009030445 A JP2009030445 A JP 2009030445A JP 2009030445 A JP2009030445 A JP 2009030445A JP 5208797 B2 JP5208797 B2 JP 5208797B2
- Authority
- JP
- Japan
- Prior art keywords
- integer
- encryption
- digits
- power
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 258
- 238000004364 calculation method Methods 0.000 claims description 109
- 238000006467 substitution reaction Methods 0.000 claims description 104
- 230000014509 gene expression Effects 0.000 claims description 19
- 238000011161 development Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 description 31
- 230000008569 process Effects 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000010187 selection method Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Description
本発明は、整数の暗号化及び復号化の方法に関する、特に、本発明は、守秘情報を参照するための識別情報等を高い秘匿性で暗号化し復号化する方法に関する。 The present invention relates to an integer encryption and decryption method, and in particular, the present invention relates to a method for encrypting and decrypting identification information and the like for referring to confidential information with high confidentiality.
従来より、法人組織等において構成員を識別するためにユニークな整数等を含む識別子を用いることが知られ、例えば国民健康保険制度等において加入者を識別するために8桁程度の数字が用いられ、又は銀行口座を識別するために銀行の支店及び口座のそれぞれに3桁から10桁程度の数字等が用いられ、あるいはクレジット会員を識別するために12桁程度の数字が用いられ、適当な区切り記号、文字列又は他の情報等を併用して、識別される本人が覚えやすい形式が適宜用いられている。
また、暗号及びデジタル署名を実現しうる方式として、桁数が大きい合成数の素因数分解問題が困難であることを安全性の根拠とした公開鍵暗号であるRSA暗号が知られている(特許文献1及び非特許文献1)。RSA暗号は、暗号化の段階においては適当な正数によるべき乗と素数2個の積を法数とする剰余演算とを用い、復号化においては当該積の素因数を要するべき乗根を用いることにより、素因数を知らなければ復号化が困難になることによって暗号の安全性を確保している。
さらに、コンピュータ・ネットワークを介する情報の送受信においてセキュリティを確保するために、暗号化、認証、改ざん検出の機能を有するSSLプロトコル等が知られている(非特許文献2)。SSLプロトコルに含まれる公開鍵証明書に基づく認証は、RSA暗号を用いうることが知られている。
Conventionally, it is known that an identifier including a unique integer is used to identify a member in a corporate organization or the like. For example, a number of about 8 digits is used to identify a subscriber in a national health insurance system or the like. Or, a bank branch and account are used to identify a bank account with a number of about 3 to 10 digits, or a number of about 12 digits is used to identify a credit member. A format that can be easily remembered by a person to be identified using a symbol, a character string, or other information is used as appropriate.
As a method capable of realizing encryption and digital signature, RSA encryption, which is a public key encryption based on the fact that the problem of prime factorization of a composite number having a large number of digits is difficult, is known (Patent Literature). 1 and Non-Patent Document 1). The RSA cipher uses a power of an appropriate positive number in the encryption stage and a remainder operation that uses a product of two prime numbers as a modulus, and uses a power root that requires a prime factor of the product in decryption. If the prime factor is not known, decryption becomes difficult, and thus the security of the encryption is ensured.
Furthermore, in order to ensure security in the transmission and reception of information via a computer network, an SSL protocol having encryption, authentication, and alteration detection functions is known (Non-Patent Document 2). It is known that the authentication based on the public key certificate included in the SSL protocol can use the RSA encryption.
しかし、従来技術又は従来技術の組み合わせにおいては、暗号化前の数字又は文字と、復号化後の数字又は文字の形式との組み合わせ等を手がかりとして、公開鍵と対をなす秘密鍵が解読されると、同じ公開鍵及び秘密鍵の組み合わせを用いる暗号は全て解読可能になるという弱点があった。RSA暗号においては素因数を特定するまでの所用時間の長さを暗号の安全性の根拠としていることから、解読に用いるコンピュータ機器等を高性能化することにより、一定の解読手法であってもより短時間で解読されて秘匿情報が漏洩する可能性が高まるという問題があった。 However, in the prior art or a combination of the prior arts, the secret key paired with the public key is decrypted using the combination of the number or characters before encryption and the number or character format after decryption as a clue. However, all ciphers that use the same combination of public and private keys have the weakness of being decipherable. In RSA cryptography, the length of time required to specify a prime factor is the basis of the security of the cryptography. Therefore, by improving the performance of computer equipment and the like used for decryption, even with a certain decryption technique, There has been a problem that the possibility of leaking confidential information increases in a short time.
また、パーソナル・コンピュータ用のアプリケーション・ソフトウェア等においては内部で取り扱える数値の範囲の制約から、例えば倍精度型としてコンピュータで扱える整数の精度は15桁程度までであり、例えば16桁の整数の自然数のべき乗等の計算を実行させるとプロセッサのオーバーフローが発生して、正確な計算結果が得られない場合がある。このため、元の整数を桁の範囲で適宜分割し、分割して得られた整数ごとに独立して、計算中にオーバーフローが生じないように、べき剰余計算を実施する等の方策が必要であった。これは文章の暗号化において単位バイト数ごとに分割して平文を暗号化及び復号化することと同様であるが、こうした手法では、分割した整数又は語句ごとに暗号化及び復号のための鍵が関連づけられるために、第三者により多くの解読の手がかりを与えてしまうという問題があった。
例えば、クレジットカードの登録番号及び有効期限の年月は、典型的にはそれぞれ16桁及び4桁の整数の形式を用いて表しうる。これらからなる20桁の整数を暗号化し復号化することが可能な、高い秘匿性を有する方法が提供できれば、桁を分割して複数の整数を別個に暗号化する従来の技法と比較して、第三者による解読のための手がかりとなる情報を増やすことなく、セキュリティを確保することが可能になる。すなわち、個人情報を秘匿する技術として、倍精度型整数の精度の範囲を超える多桁の整数を暗号化し復号化する方法が求められている。
In addition, in the application software for personal computers, the precision of integers that can be handled by a computer as a double precision type, for example, is limited to about 15 digits due to restrictions on the range of numerical values that can be handled internally. When calculation such as power is executed, an overflow of the processor may occur, and an accurate calculation result may not be obtained. For this reason, it is necessary to divide the original integer as appropriate within the range of digits, and implement measures such as power residue calculation so that overflow does not occur during the calculation independently for each integer obtained by the division. there were. This is the same as encrypting and decrypting plaintext by dividing it by the number of unit bytes in text encryption, but in this method, a key for encryption and decryption is divided for each divided integer or phrase. In order to be linked, there was a problem that a third party gave more clues for decryption.
For example, the credit card registration number and expiration date may be represented using the 16-digit and 4-digit integer formats, respectively. If a highly confidential method capable of encrypting and decrypting a 20-digit integer consisting of these can be provided, as compared with a conventional technique in which a plurality of integers are separately encrypted by dividing the digits, Security can be ensured without increasing the amount of information used as a clue for decryption by a third party. That is, as a technique for concealing personal information, a method for encrypting and decrypting a multi-digit integer exceeding the accuracy range of a double-precision integer is required.
さらに、音声による通話又は印刷物等の文書を介する情報の漏洩においては、コンピュータ・ネットワークを用いて伝達される情報に対するSSLプロトコル等のセキュリティ技術では対応できないため、音声又は文書等を含む多様な形態で個人情報を隠蔽しうる方法が必要であった。 In addition, information leakage via voice calls or documents such as printed materials cannot be handled by security technology such as SSL protocol for information transmitted using a computer network. Therefore, in various forms including voice or documents. There was a need for a way to conceal personal information.
本発明は、暗号化及び復号の諸段階の実施に要する処理時間は従来技術とほぼ同等のまま、パーソナル・コンピュータ用のアプリケーション・ソフトウェア等の有効数字の範囲内で、べき剰余を用いる暗号化及び復号の方法を提供することを目的とする。すなわち、本発明においては、20桁程度の整数を、第三者による解読の手がかりを増大することなく、当該有効数字の範囲内で、べき剰余を用いて正確に暗号化及び復号化する方法を提供することを目的とする。これにより、本発明は、コンピュータ・ネットワークを含む情報通信を介して送受信される個人情報等のセキュリティを確保することを目的とする。また、本発明は、コンピュータ・ネットワーク、音声、又は文書等の多様な形態で送受信しうる暗号化された情報を、同一の識別番号等から生成することを目的とする。 In the present invention, the processing time required for performing the steps of encryption and decryption is substantially the same as that of the prior art, and encryption using a power residue is within the range of significant figures such as application software for personal computers. An object is to provide a decoding method. That is, in the present invention, there is provided a method of accurately encrypting and decrypting an integer of about 20 digits using a power residue within the range of significant figures without increasing clues for decryption by a third party. The purpose is to provide. Accordingly, an object of the present invention is to ensure the security of personal information transmitted and received through information communication including a computer network. It is another object of the present invention to generate encrypted information that can be transmitted and received in various forms such as a computer network, voice, or document from the same identification number.
本発明者は、計算過程において計算機が桁あふれを生じるような大きな数を意図的に発生する計算手順を用い、所定の手順で桁あふれを回避して暗号化及び復号化を実施することにより、個人情報を秘匿する方法を見出した(特願2008−244761)。さらに、本発明者は、パーソナル・コンピュータ用のアプリケーション・ソフトウェア等の有効数字の範囲内で、多桁の整数のべき剰余を用いうる暗号化及び復号の方法を見出したことにより、本発明を完成するに至った。
本発明では、以下のような解決手段を提供する。
The inventor uses a calculation procedure in which a computer intentionally generates a large number that causes overflow in the calculation process, and performs encryption and decryption while avoiding overflow in a predetermined procedure. A method for concealing personal information has been found (Japanese Patent Application No. 2008-244761). Furthermore, the present inventor has completed the present invention by finding an encryption and decryption method that can use a power residue of a multi-digit integer within the range of significant digits such as application software for personal computers. It came to do.
The present invention provides the following solutions.
(1) コンピュータ装置が、0及び1を除く整数Xiを暗号化し復号化する方法であって、 コンピュータ装置が、入力された前記整数Xiを整数Yiに暗号化する、べき剰余暗号化ステップと、 コンピュータ装置が前記暗号化された整数Yiを前記整数Xiに復号化する、べき剰余復号化ステップとを含み、前記べき剰余暗号化ステップは、コンピュータ装置が、その積Nが入力された前記整数Xiを超える2つの素数A及びBを生成し、前記N、A、Bを記憶手段に記憶するステップであって、コンピュータ装置が、積Nを整数Mを基数とするM進表記に変換し、前記積NのM進表記の桁数を、少なくとも2つ以上に分割し、前記分割したそれぞれの桁に対応する整数部分と当該桁数をべき指数とするMのべき乗との積からなる単項式の和からなる前記積Nの展開形を生成し、前記展開形に含まれる前記それぞれの桁に対応する整数部分の集まりと前記それぞれの整数部分の桁の情報からなる前記それぞれの整数部分を関連づける情報とを生成するステップと、積Nと前記生成した、前記それぞれの整数部分と前記それぞれの整数部分を関連づける情報とを記憶手段に記憶するステップと、を含む前記ステップと、コンピュータ装置が(A−1)と(B−1)との積D及び(A−1)と(B−1)の最小公倍数Kを生成し、前記D及びKを記憶手段に記憶するステップと、コンピュータ装置がD又はKと素である数Eを生成して、前記整数XiのE乗がコンピュータ装置の計算手段の整数演算に桁あふれを発生するか否かを判定し、判定結果が真となるまで、前記D又はKと素である数Eの生成と前記判定を繰り返すステップと、コンピュータ装置が前記判定結果が真となるEを記憶手段に記憶するステップと、コンピュータ装置が、整数Xiを整数Mを基数とするM進表記に変換し、前記積Nと同じ桁数に分割し、前記分割したそれぞれの桁に対応する整数部分と当該桁数をべき指数とするMのべき乗との積からなる単項式の和からなる前記整数Xiの展開形を生成し、前記展開形に含まれる前記それぞれの桁に対応する整数部分の集まりと前記それぞれの整数部分の桁の情報からなる前記それぞれの整数部分を関連づける情報とを生成するステップと、前記整数Xiと前記生成した、前記それぞれの整数部分と前記それぞれの整数部分を関連づける情報とを記憶手段に記憶するステップと、コンピュータ装置が、前記生成した数Eをべき指数とする、次式記載の前記整数XiのE乗冪演算において、整数Xiの前記記憶された前記それぞれの整数部分の桁の情報に基づき、前記それぞれの桁に対応する整数部分間の計算に置き換えて展開し、桁ごとに積Nの前記生成した、前記それぞれの整数部分との差分を算出する剰余計算により、整数XiをE乗してNを法とする整数Yiを計算して、整数Xiを暗号化した整数Yiを生成し記憶手段に記憶するステップであって、前記整数Yiを整数Mを基数とするM進表記に変換し、前記積Nと同じ桁数に分割し、前記分割したそれぞれの桁に対応する整数部分と当該桁数をべき指数とするMのべき乗との積からなる単項式の和からなる前記整数Yiの展開形を生成し、前記展開形に含まれる前記それぞれの桁に対応する整数部分の集まりと前記それぞれの整数部分の桁の情報からなる前記それぞれの整数部分を関連づける情報とを生成するステップと、前記整数Yiと前記生成した、前記それぞれの整数部分と前記それぞれの整数部分を関連づける情報とを記憶手段に記憶するステップと、を含む前記ステップと、
前記べき剰余復号化ステップは、コンピュータ装置がmを任意の整数として次式を成立するFを生成し記憶手段に記憶するステップと、
The power residue decoding step includes a step in which the computer device generates F that satisfies the following expression with m as an arbitrary integer, and stores the F in the storage means ;
本発明の暗号化及び復号化方法においては、整数演算を実施可能なコンピュータ装置等を用い、整数を入力して暗号化した整数を生成し、当該生成した暗号化した整数を復号化することにより、入力した整数を復元しうる。
入力に用いる整数は、コンピュータ処理可能な整数であればよく、文字又は画像等から可逆的に変換された整数でもよい。例えば、コンピュータ処理可能な文字のそれぞれに割り当てられた文字コード等を1桁、2桁又は4桁等の16進数の整数として扱ってもよい。また、例えば、英字アルファベットに含まれる26個の文字を、26進数を表す1桁の整数として扱ってもよい。また、例えば、コンピュータ処理可能な画像に含まれる個々の画素を、RGB各8ビットの整数の一組とする24ビットの2進数の整数として扱ってもよい。
一実施形態において、構成員の識別番号等の個人情報は、コンピュータ処理可能な整数に可逆的に変換され、本発明の整数を暗号化し復号化する方法の入力に用いられる。
In the encryption and decryption method of the present invention, by using a computer device or the like capable of performing integer operations, an integer is input to generate an encrypted integer, and the generated encrypted integer is decrypted. The input integer can be restored.
The integer used for input may be an integer that can be processed by a computer, and may be an integer reversibly converted from a character or an image. For example, a character code or the like assigned to each computer-processable character may be handled as a hexadecimal integer such as 1 digit, 2 digits, or 4 digits. Further, for example, 26 characters included in an alphabetic alphabet may be handled as a single digit integer representing a 26-digit number. Further, for example, each pixel included in an image that can be processed by a computer may be treated as a 24-bit binary integer that is a set of 8-bit RGB RGB integers.
In one embodiment, personal information, such as a member's identification number, is reversibly converted to a computer-processable integer and used to input the method for encrypting and decrypting the integer of the present invention.
本発明の暗号化及び復号化方法に係る計算手段は、コンピュータに整数演算を実施させるプログラム等であり、アセンブラ又はコンパイラ等により生成された、インタープリタ等により変換された、あるいはスクリプト又はスプレッドシート等が内蔵する計算ルーチンにより呼び出される機械語プログラム等でありうる。
一実施形態において、桁あふれは、コンピュータが備える中央演算ユニット(CPU)の演算レジスタに発生しうる。従って、特定のCPUが有する演算レジスタの桁数に従って、有効な桁数の整数演算が実施されうる。例えば、レジスタ長が16ビットのCPUの場合、整数演算に用いうる整数は、例えば符号なし16ビット整数として、10進数の0〜65535の範囲である。レジスタ長が32ビットのCPUの場合は、同様に符号なし32ビット整数として、10進数の0〜4294967295の範囲である。
別の実施形態において、桁あふれは、インタープリタ、スクリプト又はスプレッドシート等が整数演算のために用意する内部関数において発生しうる。従って、特定のインタープリタ、スクリプト又はスプレッドシート等が有する内部関数が表現可能な整数の桁数に従って、有効な桁数の整数演算が実施されうる。例えば、特定のコンパイラ等において符号なし16ビット整数の型が定義された変数が表しうる整数は、10進数の0〜65535の範囲である。
The calculation means according to the encryption and decryption method of the present invention is a program or the like that causes a computer to perform integer arithmetic, and is generated by an assembler or compiler, converted by an interpreter, or a script or spreadsheet. It can be a machine language program called by a built-in calculation routine.
In one embodiment, overflow may occur in the arithmetic register of a central processing unit (CPU) included in the computer. Therefore, an integer operation with an effective number of digits can be performed in accordance with the number of digits in the operation register of a specific CPU. For example, in the case of a CPU having a register length of 16 bits, integers that can be used for integer operations are in the range of decimal numbers 0 to 65535, for example, as unsigned 16-bit integers. In the case of a CPU having a register length of 32 bits, similarly, an unsigned 32-bit integer is in the range of decimal 0 to 4294967295.
In another embodiment, overflow can occur in an internal function that an interpreter, script, spreadsheet, etc. provides for integer arithmetic. Therefore, an integer operation with an effective number of digits can be performed in accordance with the number of digits of an integer that can be represented by an internal function of a specific interpreter, script, spreadsheet, or the like. For example, an integer that can be represented by a variable in which a type of an unsigned 16-bit integer is defined in a specific compiler or the like is in the range of 0 to 65535 in decimal.
本発明に係る整数を暗号化し復号化する方法において、積NがXiを超える2つの素数A及びBを生成するステップは、積Nの桁を少なくとも二つに分割して積Nから少なくとも二つの整数部分を生成しうる。一実施形態において、積Nは次式を用いて上位の桁を有する整数部分Nu及び下位の桁を有する整数部分Ndに分割されうる。
一実施形態において、積Nと同様に、任意の整数Xは次式を用いて上位の桁Xu及び下位の桁Xdに分割されうる。任意の整数Xは、本発明に係る整数を暗号化し復号化する方法において、倍精度型の精度の範囲を超える整数でありうる。例えば、任意の整数Xは、入力された整数Xiが20桁の整数である場合に、整数Xiの2乗、3乗、4乗、等のべき乗の計算により生じうる整数でありうる。また例えば、任意の整数Xは、本発明に係る復号化において、整数Yiの2乗、3乗、4乗、等のべき乗の計算により生じうる整数でありうる。
本発明に係る、整数を暗号化し復号化する方法においては、それぞれの整数部分を関連づける情報が保持される。これにより、本発明においては、積N又は任意の整数Xに対して、上述の桁の分割から生じた整数部分は互いに関連づけられる。従って、本発明においては、それぞれの整数部分は別個に暗号化され復号化されうる独立した整数ではなく、一つの整数として暗号化され復号化されうる。すなわち、本発明に係る整数を暗号化し復号化する方法においては、第三者による解読のための手がかりを増すことなく、情報を秘匿することが可能になる。 In the method of encrypting and decrypting integers according to the present invention, information relating each integer part is retained. Thus, in the present invention, for the product N or any integer X, the integer parts resulting from the above-described digit division are related to each other. Thus, in the present invention, each integer part can be encrypted and decrypted as a single integer, rather than an independent integer that can be separately encrypted and decrypted. In other words, in the method for encrypting and decrypting integers according to the present invention, it is possible to conceal information without increasing clues for decryption by a third party.
本発明の方法においては、式(I)で表されるべき乗の計算において、上述の桁あふれを含む任意の桁あふれを発生するよう、整数Eを選択する。桁あふれは、例えばCPU内部における整数演算中の桁あふれの発生の検出、又はコンパイラ等が適宜備える整数演算ライブラリに含まれる桁あふれに対するエラー処理ルーチン等の、当技術分野に公知の手法を用いて検出しうる。 In the method of the present invention, the integer E is selected so as to generate an arbitrary overflow including the above-described overflow in the power calculation represented by the formula (I). The overflow is performed using a method known in the art, such as detection of occurrence of overflow during integer arithmetic in the CPU, or an error processing routine for overflow that is included in the integer arithmetic library appropriately provided in a compiler or the like. It can be detected.
本発明に係る暗号化及び復号化の方法に用いる展開形は、上述のように桁あふれを発生する条件を満たす整数のべき乗を代替する計算法を含む。具体的には、直接に式(I)を用いる代わりに、式(I)の項XiのE乗における桁あふれを回避するために、当該項を複数の整数の積で表す公知の手法を用いうるが、これに限定しない。
また、本発明に係る整数を暗号化し復号化する方法において、式(II)で表される整数Fは、任意のmを含んで選択された素数A及びBに基づいて生成しうる右辺の式(m×K+1)の因数であれば何でもよい。整数E及びFの対は、当業に公知の公開鍵暗号化技術における公開鍵及び秘密鍵の対として扱ってもよい。 In the method of encrypting and decrypting an integer according to the present invention, the integer F represented by the formula (II) is an expression on the right side that can be generated based on the prime numbers A and B selected including any m. Any factor of (m × K + 1) may be used. The pair of integers E and F may be treated as a public key and private key pair in public key encryption technology known to those skilled in the art.
本発明に係る整数を暗号化し復号化する方法においては、桁あふれを発生する条件で式(I)のEを選択するため、本発明の方法を用いないコンピュータ装置等においては暗号化した整数Yiを正確に得ることができず、情報秘匿性の高い暗号化を実施することが可能になる。また、桁の分割から生じるそれぞれの整数部分は別個に暗号化され復号化されうる独立した整数ではなく、全体として一つの整数として暗号化され復号化されうる。従って、本発明の方法においては、第三者による解読のための手がかりを増すことなく、情報を秘匿することが可能になる。 In the method for encrypting and decrypting an integer according to the present invention, E in the formula (I) is selected under the condition that overflow occurs. Therefore, an encrypted integer Yi is used in a computer apparatus that does not use the method of the present invention. Cannot be obtained accurately, and encryption with high information confidentiality can be performed. Also, each integer part resulting from digit division can be encrypted and decrypted as a whole as a whole, rather than as an independent integer that can be separately encrypted and decrypted. Therefore, in the method of the present invention, it is possible to conceal information without increasing clues for decryption by a third party.
(2) 前記それぞれの整数部分を関連づける情報は、前記それぞれの整数部分の桁の情報である、(1)に記載の整数を暗号化し復号化する方法。 (2) The method for encrypting and decrypting an integer according to (1), wherein the information that associates each integer part is information on digits of each integer part.
前述の式(V)及び式(VII)に例示したように、本発明に係る整数を暗号化し復号化する方法においては、積N及び任意の整数Xはそれぞれ桁を分割して得られる整数部分の集まりとして扱われうる。具体的には、積Nは、N15、N10、N5及びN0からなる4個の整数部分の集まりとして、任意の整数XはX15、X10、X5及びX0からなる4個の整数部分の集まりとして扱われうる。 In the method of encrypting and decrypting integers according to the present invention as exemplified in the above formulas (V) and (VII), the product N and the arbitrary integer X are integer parts obtained by dividing the digits, respectively. Can be treated as a collection of Specifically, the product N is a collection of four integer parts consisting of N 15 , N 10 , N 5 and N 0 , and an arbitrary integer X is 4 consisting of X 15 , X 10 , X 5 and X 0. It can be treated as a collection of integer parts.
それぞれの整数部分は、例えばN15はN10に対して上位の桁である等の相互の関係に基づく情報を伴いうる。積Nの他の整数部分及び任意の整数Xの整数部分についても同様である。従って、本発明に係る整数を暗号化し復号化する方法においては、それぞれの整数部分を関連づける桁の情報が保持される。これにより、本発明においては、分割した整数部分の集まりを一体の整数として扱うことが可能になる。 Each integer part may be accompanied by information based on the mutual relationship, for example, N 15 is a higher digit than N 10 . The same applies to the other integer parts of the product N and the integer part of an arbitrary integer X. Therefore, in the method for encrypting and decrypting integers according to the present invention, digit information relating each integer part is retained. Thereby, in the present invention, it is possible to handle a group of divided integer parts as an integral integer.
(3) さらに、コンピュータ装置が前記整数Xiを変換した整数Yiを生成する前に、コンピュータ装置が前記整数Xiから前記整数Xi以下の整数Tを加算して前記整数Xiと置き換えるステップと、コンピュータ装置が前記変換した整数Yiを整数Xnに復号化した後に、前記整数Xnに前記整数Tを減算して前記整数Xnと置き換えるステップと、を含む、(1)に記載の整数を暗号化し復号化する方法。 (3) In addition, before generating the integer Yi computer device has converts the integer Xi, the steps of the computer apparatus by adding the integer T follows the integer Xi from the integers Xi replaced with the integer Xi, the computer system after There decoding the integer Yi described above converted to an integer Xn, by subtracting the integer T to the integer Xn including the step of replacing said integer Xn, encrypt and decrypt integer according to (1) Method.
整数Tは、いわゆるオフセットであり、本発明に係る暗号化及び復号化においては、前述の換字式暗号化及び復号化に加えて、数値の加算によるオフセットの適用及び当該数値の減算によるオフセットの消去を用いて、情報の秘匿化を行いうる。
特に、べき剰余を用いる暗号化及び復号化においては、従来の公開鍵暗号化技術等では0、1、及び元の整数自身が変換されずに特異点となりうるが、本発明においてはオフセットを用いて従来法における特異点の数値を変更することが可能である。従って、本発明においては、従来法の特異点に係る問題を避けて暗号化及び復号化を実施することが可能になる。ここで、オフセットTの加算により得られる整数(Xi+T)が、上述の素数A及びBの積Nを超える場合は、入力として受け付ける整数Xiの範囲を(N−T)未満としてもよく、積Nが整数(Xi+T)を超えるように素数A及びBを改めて選択してもよく、適宜設計しうる。
The integer T is a so-called offset. In the encryption and decryption according to the present invention, in addition to the above-described substitutional encryption and decryption, the offset is applied by adding a numerical value and the offset is erased by subtracting the numerical value. Information can be concealed using.
In particular, in encryption and decryption using a power residue, 0, 1, and the original integer itself can be singularity without being converted in the conventional public key encryption technology, etc., but in the present invention, an offset is used. Thus, it is possible to change the numerical value of the singular point in the conventional method. Therefore, in the present invention, it is possible to perform encryption and decryption while avoiding the problems related to the singularities of the conventional method. Here, when the integer (Xi + T) obtained by adding the offset T exceeds the product N of the prime numbers A and B, the range of the integer Xi accepted as an input may be less than (N−T), and the product N The prime numbers A and B may be selected anew so as to exceed an integer (Xi + T), and can be appropriately designed.
(4) 整数Tはコンピュータ装置がランダムに発生した整数である、(3)に記載の整数を暗号化し復号化する方法。 (4) The method of encrypting and decrypting the integer according to (3), wherein the integer T is an integer randomly generated by the computer device .
前述の変数E、変数F、素数A、素数B、素数の積N、任意の整数m等と同様に、整数Tも、第三者による暗号の解読に用いられる可能性又は危険性が伴う情報でありうる。本発明に係る整数を暗号化し復号化する方法においては、整数Tをランダムに発生した整数とすることにより、第三者による暗号の解読を困難としうる。 Like the variable E, variable F, prime number A, prime number B, prime number product N, arbitrary integer number m, etc., the integer number T is also information with the possibility or danger of being used for decryption by a third party. It can be. In the method of encrypting and decrypting an integer according to the present invention, it is difficult to decrypt the encryption by a third party by making the integer T a randomly generated integer.
(5) さらに、コンピュータ装置が暗号化のための鍵をランダムな規則により選択するステップを含み、前記Eの生成は、コンピュータ装置がD又はKと素である数、すなわち暗号化のための鍵の候補となる数の集合を生成し、コンピュータ装置が前記生成した暗号化のための鍵の候補となる集合から、前記ランダムな規則により選択するステップにより生成されることを特徴とする、(1)に記載の整数を暗号化し復号化する方法。 (5) further comprises the step of computing devices selected by random rules a key for encryption, generation of the E, the number of computer devices is prime and D or K, i.e. a key for encryption A set of candidate numbers is generated, and the computer device generates the set of encryption key candidates from the generated encryption key candidates according to the random rule. A method for encrypting and decrypting the integer described in (1).
本発明に係る暗号化及び復号化の鍵はいずれも整数でありうる。換言すれば、整数として扱うことが可能な情報を、本発明に係る暗号化及び復号化の鍵として用いうる。例えば、文字コード等を用いて特定の文字情報と可逆的に対応する特定の整数を、本発明に係る暗号化及び復号化の鍵として用いてもよく、文字コードに限定せずに整数との関連づけが可能な情報を用いてもよい。
本発明に係る暗号化の鍵を選択するためのランダムな規則は、乱数の発生等を含むランダムな規則を用いることが可能である。例えば、整数の乱数を発生するためのコンピュータ・プログラムを用いて得られる整数を、本発明に係る暗号化の鍵として用いてもよい。これに限定せず、乱数賽等の機構、任意の時刻における電気的雑音の強度と関連づけた数値等をランダムな規則として、これらのランダムな規則に基づいて整数を選択して用いてもよい。
具体的には、本発明に係る整数を暗号化する方法においては、式(I)に含まれる整数Eは、ランダムな規則に基づいて選択されうる。また、本発明に係る整数を復号化する方法においては、式(II)により整数Eと関連づけられる整数Fが選択されうる。
本発明に係る整数を暗号化する方法においては、このランダムな規則による整数Eの選択により、整数Fも選択される。すなわち、本発明に係る任意の時点におけるべき剰余の計算において選択される一対の整数E及び整数Fは、他のべき剰余の計算中に選択された他の一対の整数E及び整数Fとは関連性のない整数でありうる。従って、本発明に係る暗号化及び復号化に用いられる整数E及び整数Fの正しい値を用いることのない第三者に対して、本発明は極めて高い秘匿性を提供することが可能になる。
Both encryption and decryption keys according to the present invention may be integers. In other words, information that can be handled as an integer can be used as a key for encryption and decryption according to the present invention. For example, a specific integer that reversibly corresponds to specific character information using a character code or the like may be used as a key for encryption and decryption according to the present invention. Information that can be associated may be used.
As a random rule for selecting an encryption key according to the present invention, a random rule including generation of a random number or the like can be used. For example, an integer obtained by using a computer program for generating an integer random number may be used as the encryption key according to the present invention. The present invention is not limited to this, and a mechanism such as a random number 、 or a numerical value associated with the intensity of electrical noise at an arbitrary time may be used as a random rule, and an integer may be selected and used based on these random rules.
Specifically, in the method for encrypting an integer according to the present invention, the integer E included in the formula (I) can be selected based on a random rule. Also, in the method for decoding an integer according to the present invention, an integer F associated with the integer E can be selected according to equation (II).
In the method of encrypting an integer according to the present invention, the integer F is also selected by selecting the integer E according to this random rule. That is, the pair of integers E and F selected in the calculation of the power residue at any point in time according to the present invention is related to the other pair of integers E and F selected during the calculation of the other power residue. It can be an inexact integer. Therefore, the present invention can provide extremely high confidentiality to a third party who does not use the correct values of the integer E and the integer F used for encryption and decryption according to the present invention.
(6) さらに、コンピュータ装置が換字式暗号化を用いて整数を換字暗号した整数に変換する換字暗号化ステップと、コンピュータ装置が換字式復号化を用いて前記換字暗号した整数を復号化する換字式復号化ステップと、を含み、前記べき剰余暗号化ステップ又は換字暗号化ステップのいずれか一方を先に実行し、続いて残りの一方を実行することで、整数を暗号化する暗号化ステップと、前記換字式暗号化ステップと前記べき剰余暗号化ステップの実行順序に対応して、前記換字式暗号化ステップを先に実行した場合はべき剰余復号化ステップを、前記べき剰余暗号化ステップを先に実行した場合は換字式復号化ステップを、それぞれ先に実行し、続いて残りの一方を実行することで、暗号化された整数を復号化する復号化ステップと、を含む、(1)に記載の整数を暗号化し復号化する方法。 (6) In addition, the computer system to decrypt the substitution encryption step of converting the substitution cipher integers, integers computer device is the substitution cipher with substitution type decoding an integer with a substitution cipher of substitution An encryption step of encrypting an integer by performing either the power residue encryption step or the substitution encryption step first, and then executing the remaining one. In accordance with the execution order of the substitution type encryption step and the power residue encryption step, the power residue decryption step is performed first when the substitution type encryption step is executed first, and the power residue encryption step is preceded by The decryption step for decrypting the encrypted integer by executing the substitution decryption step first and then executing the other one, A method for encrypting and decrypting the integer according to (1).
本発明に係る整数を暗号化し復号化する方法においては、上述のべき剰余を用いる暗号化及び復号化に加えて、換字式暗号化及び換字式復号化を、重畳して用いることが可能である。 In the method for encrypting and decrypting an integer according to the present invention, in addition to the above-described encryption and decryption using a power residue, it is possible to superimpose substitution encryption and substitution decryption. .
換字式暗号化を用いて整数を換字暗号した整数に変換するステップにおいては、入力の整数の数値又は記数法における桁の数字に対して換字暗号が実施される。好適な換字式暗号化はシーザー暗号化であるが、これに限定しない。例えば、整数Yiを換字暗号して整数Ziに換字式暗号化することにおいて、次式のような変換を用いうる。
さらに、本発明の方法に係る、換字式復号化を用いて換字暗号した整数を復号化するステップにおいては、前述の換字式暗号化を用いて変換された整数から、変換前の整数が復号化される。例えば、変換された整数Ziから元の整数Yiを復号化する場合に、次式に示す換字式復号化を用いうる。
本発明の方法は、暗号化において上述のべき剰余を用いる暗号化及び換字式暗号化の両者を用い、復号化においてこれらの両者を逆順で用いる。それぞれの暗号化の順序は何でもよく、暗号化において先に換字式暗号化を実施した後にべき剰余を用いる暗号化を実施してもよく、これらを入れ替えて暗号化してもよい。復号化は、対応する暗号化に含まれる換字式又はべき剰余による暗号化の手順を逆順で実施すればよい。 The method of the present invention uses both encryption using the above power residue and substitutional encryption in encryption, and uses both in reverse order in decryption. The order of each encryption may be any, and after performing substitution-type encryption in the encryption, encryption using a power residue may be performed, or these may be replaced and encrypted. Decryption may be performed in the reverse order by the substitution procedure included in the corresponding encryption or by the power residue.
従来技術に係る公開鍵暗号化等の同じ方法を用いて暗号化を繰り返すことは、他の鍵による1回の暗号化と等価でありうるが、本発明においてはべき剰余と異なる方法である換字式暗号化を含み、これらを重畳することで互いに独立した暗号化を多重に用いることになり、元の情報を飛躍的に解読困難とすることができる。すなわち、Fが第三者に知られにくいこと、換字式暗号化及びべき剰余を用いる暗号化が独立して繰り返し用いられうることによる解読の困難さに基づいて、本発明においては高いセキュリティを確保しうる。重畳及び繰り返しの詳細は後述する。 Repeating encryption using the same method such as public key encryption according to the prior art can be equivalent to one-time encryption with another key, but in the present invention, substitution is a method different from the power residue. Including encryption and superimposing these, multiple independent encryptions can be used, and the original information can be made extremely difficult to decipher. That is, high security is ensured in the present invention based on the difficulty of deciphering because F is difficult to be known by a third party and substitution encryption and encryption using a power residue can be repeatedly used independently. Yes. Details of superposition and repetition will be described later.
さらに、本発明に係る整数を暗号化し復号化する方法においては、べき剰余による暗号化において特異点である0、1及びNに対しても、これらの整数を換字式暗号化によって他の整数に変換することにより、べき剰余の特異点ではない整数に暗号化することが可能になる。すなわち、本発明に係る方法においては、従来技術における特異点を元の整数に含んでもよく、第三者による解読の手がかりとなりうる特異点がないことから、より高い秘匿性を提供することが可能になる。 Furthermore, in the method of encrypting and decrypting integers according to the present invention, these integers are converted into other integers by substitutional encryption for 0, 1 and N which are singular points in power residue encryption. By converting, it becomes possible to encrypt to an integer that is not a singular point of a power residue. That is, in the method according to the present invention, the singular point in the prior art may be included in the original integer, and since there is no singular point that can be used as a clue by a third party, higher confidentiality can be provided. become.
(7) 前記換字式暗号化の鍵は、コンピュータ装置がランダムな規則により選択する整数である、(6)に記載の整数を暗号化し復号化する方法。 (7) the key substitution cipher of the computer apparatus is an integer you select by random rules, how to encrypt and decrypt the integer of (6).
換字式暗号化の鍵Rは、第三者による暗号の解読に用いられる可能性又は危険性が伴う情報であり、本発明により暗号化される整数又は暗号化した整数を含む何らかの情報から推測されないことが望ましい。そこで、本発明に係る整数を暗号化し復号化する方法においては、換字式暗号化の鍵Rを、ランダムに発生した整数に基づいて選択することにより、第三者による暗号の解読を困難としうる。 The substitution encryption key R is information with the possibility or danger of being used for decryption by a third party, and is not inferred from any information including an integer encrypted by the present invention or an encrypted integer. It is desirable. Therefore, in the method for encrypting and decrypting an integer according to the present invention, it is possible to make it difficult for a third party to decrypt the encryption by selecting a substitution encryption key R based on a randomly generated integer. .
一実施形態において、換字式暗号化の鍵Rは、予め素数の集合等を用意し、この集合の要素を順番付けし、最大の順番の数字以下の整数の乱数を発生させ、発生した乱数を順番として有する要素として選択することができる。別の実施形態において、換字式暗号化の鍵Rは、暗号化される整数以下の整数の乱数を発生させ、発生した乱数との差が最も小さい素数から選択することができる。他の変数の値を選択することについても同様である。またこれらの選択の手順に限らず、発生した乱数との関連づけが可能な選択の手順により、上記の変数の値を選択してもよい。このようにすることで、本発明に係る整数を暗号化し復号化する方法においては、第三者による暗号の解読をさらに困難としうる。 In one embodiment, the substitution encryption key R prepares a set of prime numbers in advance, orders the elements of this set, generates an integer random number less than the maximum order number, and generates the generated random number. It can be selected as an element having an order. In another embodiment, the substitution encryption key R generates an integer random number less than or equal to the integer to be encrypted, and can be selected from prime numbers having the smallest difference from the generated random number. The same applies to selecting values for other variables. The values of the variables may be selected not only by these selection procedures but also by a selection procedure that can be associated with the generated random number. By doing so, in the method for encrypting and decrypting integers according to the present invention, it is possible to make it more difficult for a third party to decrypt the encryption.
(8) 前記換字式暗号化は、単表式暗号化、多表式暗号化及び自動鍵暗号化のいずれかであり、前記換字式復号化は、前記換字式暗号化に対応して単表式復号化、多表式復号化及び自動鍵復号化のいずれかである、(6)に記載の整数を暗号化し復号化する方法。 (8) The substitution encryption is one of single table encryption, multi-table encryption, and automatic key encryption , and the substitution decryption corresponds to the substitution encryption. The method of encrypting and decrypting the integer according to (6), which is any one of formula decryption, multi-form decryption, and automatic key decryption.
本発明に係る換字式暗号化は、当業に公知のシーザー暗号化を含む換字式暗号化を用いることが可能である。単表式暗号化は、単一換字式暗号化、単文字換字暗号化、単純換字暗号化を含む公知の暗号化でもよく、多表式暗号化は、ヴィジュネル暗号化、進行鍵暗号化、正方換字表を用いる暗号化を含む公知の暗号化でもよく、自動鍵暗号化は暗号化の鍵が元の整数又は暗号文、又はその両方に基づいて自動的に変更あるいは更新される暗号化でもよい。本発明に係る復号化においても、暗号化と同様に換字式復号化を用いることが可能であり、暗号化として列挙した種々の方法に対応する復号化の手順を用いることが可能である。 The substitution encryption according to the present invention can use substitution encryption including Caesar encryption known in the art. Single-table encryption may be well-known encryption including single substitution encryption, single-substitution encryption, and simple substitution encryption, and multi-table encryption includes visionnel encryption, progress key encryption, square Known encryption including encryption using a substitution table may be used, and automatic key encryption may be encryption in which the encryption key is automatically changed or updated based on the original integer and / or ciphertext. . Also in the decryption according to the present invention, substitutional decryption can be used in the same manner as encryption, and decryption procedures corresponding to various methods enumerated as encryption can be used.
(9) 前記整数を暗号化する暗号化ステップは、前記べき剰余暗号化ステップを先に実行し、続いて前記換字暗号化ステップを実行し、前記暗号化された整数を復号化する復号化ステップは、前記換字式復号化ステップを、先に実行し、続いて前記べき剰余復号化ステップを実行するものであって、前記換字暗号化ステップにおいて、コンピュータ装置が前記整数Yiを整数Ziに変換し、前記換字復号化ステップにおいて、コンピュータ装置が前記整数Ziを前記整数Yiに変換することを特徴とする、(6)に記載の整数を暗号化し復号化する方法。 (9) The encryption step for encrypting the integer performs the power residue encryption step first, and then executes the substitution encryption step to decrypt the encrypted integer. Performs the substitution decoding step first, and then executes the power residue decoding step. In the substitution encryption step, the computer device converts the integer Yi into an integer Zi. In the substitution decoding step, the computer device converts the integer Zi into the integer Yi . The method for encrypting and decrypting the integer according to (6),
このようにすることで、本発明に係る整数を暗号化する方法においては、異なる暗号化の方法を連続することにより、同じ暗号化の方法の繰り返しからは得られない、より秘匿性の高い暗号化が可能になる。本発明に係る整数を復号化する方法においても、対応する暗号化の手順を知らなければ正確な復号化ができないため、第三者による解読にはより多くの手間を必要とする。従って、本発明に係る整数を暗号化し復号化する方法においては、元の整数に対して極めて高い秘匿性を与えることが可能になる。 In this way, in the method for encrypting integers according to the present invention, by using different encryption methods in succession, it is possible to obtain a more confidential encryption that cannot be obtained by repeating the same encryption method. Can be realized. Even in the method for decrypting an integer according to the present invention, since accurate decryption cannot be performed without knowing the corresponding encryption procedure, more labor is required for decryption by a third party. Therefore, in the method for encrypting and decrypting an integer according to the present invention, it is possible to give extremely high confidentiality to the original integer.
(10) コンピュータ装置が前記べき剰余暗号化ステップと換字暗号化ステップとを連続する暗号化ステップ、及びコンピュータ装置が前記換字復号化ステップとべき剰余復号化ステップとを連続する復号化ステップは、それぞれ少なくとも2以上の同一の複数回数繰り返し実施される、(9)に記載の整数を暗号化し復号化する方法。 (10) encrypting step of computing device continuously and substitution encrypting step and the remainder encrypting step it should said, and decoding step of computer device to continuously and remainder decoding step to said substitution decoding step, each of at least two are the same plurality of times repeated, a method for encrypting and decrypting integer according to (9).
このようにすることで、暗号化ステップにおいては、べき剰余と換字とが交互に繰り返される。隣接する暗号化の方法は互いに異なるので、それぞれの暗号化は互いに独立して実施される。すなわち、隣接する二つの暗号化は、等価な一つのべき剰余又は換字式暗号化と置き換えることはできないので、本発明に係る連続する暗号化ステップを用いて暗号化した整数は、第三者による解読により多くの手間を必要とする。同様に、連続する復号化ステップにおける隣接する二つの復号化は、等価な一つのべき剰余又は換字式暗号化と置き換えることはできないため、本発明に係る整数を暗号化し復号化する方法においては、元の整数に対して極めて高い秘匿性を与えることが可能になる。 By doing in this way, in the encryption step, the power residue and substitution are repeated alternately. Since the adjacent encryption methods are different from each other, each encryption is performed independently of each other. That is, since two adjacent encryptions cannot be replaced with an equivalent power residue or substitution encryption, an integer encrypted using successive encryption steps according to the present invention is determined by a third party. Deciphering requires a lot of work. Similarly, since two adjacent decryptions in successive decryption steps cannot be replaced with an equivalent power residue or substitution encryption, in the method of encrypting and decrypting an integer according to the present invention, It becomes possible to give very high confidentiality to the original integer.
(11) 前記整数を暗号化する暗号化ステップは、前記換字暗号化ステップを先に実行し、続いて前記べき剰余暗号化ステップを実行し、前記暗号化された整数を復号化する復号化ステップは、前記べき剰余復号化ステップを先に実行し、続いて前記換字式復号化ステップを実行するものであって、前記整数Xiはコンピュータ装置が前記換字暗号化ステップを実行することにより変換された整数であることを特徴とする、(6)に記載の整数を暗号化し復号化する方法。 (11) The encryption step for encrypting the integer includes the substitution encryption step first, followed by the power residue encryption step, and the decryption step for decrypting the encrypted integer. Performs the power residue decoding step first, and then executes the substitution type decoding step, and the integer Xi is converted by the computer device executing the substitution encryption step. The method for encrypting and decrypting an integer according to (6), wherein the integer is an integer.
本発明に係る整数を暗号化し復号化する方法においては、連続する暗号化ステップとして換字式暗号化とべき剰余を用いる暗号化とが交互に実施され、連続する復号化ステップとしてべき剰余を用いる復号化と換字式復号化とが、暗号化と対応して逆順で交互に実施されればよい。前述の(2)に示したように、暗号化においてべき剰余を用いる暗号化を先に実施する場合は、復号化において換字式復号化を先に実施すればよく、(4)に示すように暗号化において換字式暗号化を先に実施する場合は、復号化においてべき剰余を用いる復号化を先に実施すればよい。これらの連続する手順が実施可能であることは、本発明に係る方法を用いて暗号化したときの正確な情報に基づいてのみ、暗号化された整数が正しく復号化され、当該正確な情報に基づかない解読の試行では、復号化に膨大な手間を必要とすることを意味している。従って、本発明に係る整数を暗号化し復号化する方法においては、元の整数に対して極めて高い秘匿性を与えることが可能になる。 In the method for encrypting and decrypting an integer according to the present invention, substitution encryption and encryption using a power residue are alternately performed as a continuous encryption step, and decryption using a power residue as a continuous decryption step And substitutional decryption may be performed alternately in reverse order corresponding to encryption. As shown in the above (2), when the encryption using the power residue in the encryption is performed first, the substitutional decryption may be performed in the decryption first, as shown in (4) When substituting encryption is performed first in encryption, decryption using a power residue in decryption may be performed first. The fact that these sequential procedures can be performed is that the encrypted integer is correctly decrypted only on the basis of accurate information when encrypted using the method according to the present invention, and the accurate information is A non-based decryption attempt means that much time is required for decryption. Therefore, in the method for encrypting and decrypting an integer according to the present invention, it is possible to give extremely high confidentiality to the original integer.
(12) コンピュータ装置が実行する前記換字暗号化ステップとべき剰余暗号化ステップとを連続する暗号化ステップ、及びコンピュータ装置が実行する前記べき剰余復号化ステップと換字復号化ステップを連続する復号化ステップは、それぞれ少なくとも2以上の同一の複数回数繰り返し実施する、(11)に記載の整数を暗号化し復号化する方法。 (12) decoding step for successive substitution decoding step and the power residue decoding step the substitution encryption step of continuous and remainder encrypting step to the encrypting step, and the computer unit executes the computer unit executes It is be multiple times repeated at least two or more identical respectively, a method for encrypting and decrypting integer according to (11).
前述の(9)に示した暗号化ステップと同様に、本発明においては、換字とべき剰余とを交互に繰り返して暗号化してもよい。隣接する暗号化の方法は互いに異なるので、それぞれの暗号化は互いに独立して実施されうる。すなわち、隣接する二つの暗号化は、等価な一つのべき剰余又は換字式暗号化と置き換えることはできないので、本発明に係る連続する暗号化ステップを用いて暗号化した整数は、第三者による解読により多くの手間を必要とする。同様に、連続する復号化ステップにおける隣接する二つの復号化は、等価な一つのべき剰余又は換字式復号化と置き換えることはできない。本発明においてはこれらの繰り返し手順が実施可能であり、本発明に係る方法を用いて暗号化したときの正確な情報に基づいてのみ、暗号化された整数が正しく復号化される。一方、当該正確な情報に基づかない第三者による解読の試行においては、復号化に膨大な手間を必要とする。従って、本発明に係る整数を暗号化し復号化する方法においては、元の整数に対して極めて高い秘匿性を与えることが可能になる。 Similarly to the encryption step shown in the above (9), in the present invention, the substitution and the power residue may be repeated alternately. Since the adjacent encryption methods are different from each other, the respective encryptions can be performed independently of each other. That is, since two adjacent encryptions cannot be replaced with an equivalent power residue or substitution encryption, an integer encrypted using successive encryption steps according to the present invention is determined by a third party. Deciphering requires a lot of work. Similarly, two adjacent decodings in successive decoding steps cannot be replaced with an equivalent power residue or substitution decoding. In the present invention, these iterative procedures can be performed, and the encrypted integer is correctly decrypted only on the basis of accurate information when encrypted using the method according to the present invention. On the other hand, in a trial of decryption by a third party that is not based on the accurate information, enormous effort is required for decryption. Therefore, in the method for encrypting and decrypting an integer according to the present invention, it is possible to give extremely high confidentiality to the original integer.
(13) 前記少なくとも2以上の同一の繰り返し実施する複数回数は、所定の正の整数、コンピュータ装置が前記所定の正の整数を暗号化した正の整数、及びコンピュータ装置がランダムに発生した正の整数のいずれかである、(9)又は(11)に記載の整数を暗号化し復号化する方法。 (13) wherein at least two of the plurality of times of repeated the same, the predetermined positive integer, the positive computer device encrypts the predetermined positive integer integer, and positive computing device occurs at random A method for encrypting and decrypting an integer according to (9) or (11), which is any integer.
当該回数は、コンピュータ・プログラムにおける制御のためのループカウンタ等に記憶させる数値として設定してもよい。当該回数は2回以上であればよいが、暗号化の強度を確保するために、予め下限を設定してもよい。また、暗号化及び復号化の計算処理のための時間を短縮するために、予め上限を設定してもよい。従って、本発明に係る整数を暗号化し復号化する方法における当該回数の値は、予め設定された下限及び/又は上限の範囲に従って、所定の正の整数、所定の正の整数を暗号化した正の整数、及びランダムに発生した正の整数からなる群から選ばれうる。当該回数を暗号化する方法は何でもよい。
このように、べき剰余を用いる暗号化及び換字式暗号化のいずれとも独立した変数でありうる当該回数を秘密とすることで、当該回数は第三者に不明となる。すなわち、第三者の解読の手間はさらに膨大となりうる。従って、本発明に係る整数を暗号化し復号化する方法においては、元の整数に対して極めて高い秘匿性を与えることが可能になる。
The number of times may be set as a numerical value stored in a loop counter or the like for control in the computer program. The number of times may be two or more, but a lower limit may be set in advance in order to ensure the strength of encryption. Further, an upper limit may be set in advance in order to shorten the time for calculation processing of encryption and decryption. Therefore, the value of the number of times in the method of encrypting and decrypting an integer according to the present invention is a positive integer obtained by encrypting a predetermined positive integer and a predetermined positive integer according to a preset lower limit and / or upper limit range. And a group consisting of randomly generated positive integers. Any method may be used to encrypt the number of times.
In this way, by making the number of times that can be a variable independent of both encryption using power residue and substitution-type encryption, the number of times becomes unknown to a third party. That is, the trouble of third party decoding can be further increased. Therefore, in the method for encrypting and decrypting an integer according to the present invention, it is possible to give extremely high confidentiality to the original integer.
(14) 前記整数Xiは、コンピュータ装置が識別子に含まれる文字又は数字の一部又は全体から、可逆的に変換した整数である、(1)に記載の整数を暗号化し復号化する方法。 (14) The integers Xi from some or all of the letters or numbers computing device is included in the identifier is reversibly converted integer, a method for encrypting and decrypting integer according to (1).
本発明に係る識別子は、典型的にはコンピュータ処理可能な文字(文字としての数字を含む)又は数値であり、文字は文字コード等の公知技法を用いることによりユニークな整数に変換されうる。従って、本発明に係る整数の暗号化及び復号化の方法においては、ユニークな整数との関連づけが可能な文字又は数値を元の整数として暗号化し、復号化することができる。 The identifier according to the present invention is typically a computer-processable character (including a number as a character) or a numerical value, and the character can be converted into a unique integer by using a known technique such as a character code. Therefore, in the method for encrypting and decrypting integers according to the present invention, characters or numerical values that can be associated with unique integers can be encrypted and decrypted as original integers.
(15) 前記整数Xiは、コンピュータ装置が1次元画像又は2次元画像から可逆的に変換した1次元画像の一部又は全体から、可逆的に変換した整数である、(1)に記載の整数を暗号化し復号化する方法。 (15) The integers Xi from some or all of the 1-dimensional image reversibly converted from the computer apparatus 1-dimensional images or two-dimensional image, which is reversibly converted integer, according to (1) To encrypt and decrypt integers.
本発明に係る画像は、典型的にはコンピュータ処理可能な画像データであり、例えば一つの画素は、R(赤)G(緑)B(青)の各色ごとに8ビットの階調の値を含む符号なしの24ビットの整数でありうる。2次元画像は、所定の手順に従って画素を並び替えることにより1次元画像に変換してもよい。このようにして、画素からなる画像は整数として扱うことができ、特定の画像はユニークな整数と関連づけられる。暗号化される元の整数に含まれる画素数は適宜設計しうる。従って、本発明に係る整数の暗号化及び復号化の方法においては、ユニークな整数との関連づけが可能な1次元又は2次元画像を元の整数として暗号化し、復号化することができる。 An image according to the present invention is typically image data that can be processed by a computer. For example, one pixel has an 8-bit gradation value for each color of R (red), G (green), and B (blue). It can be an unsigned 24-bit integer. A two-dimensional image may be converted into a one-dimensional image by rearranging pixels according to a predetermined procedure. In this way, an image consisting of pixels can be treated as an integer, and a particular image is associated with a unique integer. The number of pixels included in the original integer to be encrypted can be designed as appropriate. Therefore, in the method for encrypting and decrypting integers according to the present invention, a one-dimensional or two-dimensional image that can be associated with a unique integer can be encrypted and decrypted as an original integer.
(16) さらに、暗号化に先立って、コンピュータ装置が少なくとも一つの桁を元の整数に対して追加することにより桁を増した整数に置き換えるステップを含む、(1)に記載の整数を暗号化し復号化する方法。 (16) Further, prior to encryption, the computer device includes a step of replacing the integer with the added digit by adding at least one digit to the original integer, and encrypting the integer according to (1) How to decrypt.
このようにすることで、暗号化される整数Xiに対して、任意に選択される桁数を追加した整数を生成して暗号化の入力に用いうる。桁数を増した整数Wiは、元の整数Xiが同一であっても、増した桁数及び当該桁数の整数に含まれる各桁の数字に依存して変化しうる。従って、同一のXi及び任意に選択される桁数の整数に基づいて、互いに異なる整数Wiを生成して暗号化に用いうる。
一実施形態において、暗号化される整数Xiは生年月日の日付の情報を含む文字列に基づいて生成される4桁、6桁、又は8桁等の整数であり、任意に選択される桁数は例えば2桁の整数でありうる。本発明に係る整数を暗号化し復号化する方法のユーザ等は、自己の生年月日に基づく同一の整数及び任意に選択される2桁の整数から生成される、桁数を増した整数Wiを暗号化の入力とし、当該2桁の整数を使い分けることにより、複数の暗号化した整数を生成して利用しうる。暗号化される整数は例えば10桁等であっても、ユーザは全ての桁の数字を使用目的ごとに記憶する必要はなく、当該2桁の整数を使い分ければよい。
従って、本発明に係る整数を暗号化し復号化する方法においては、生年月日の日付等の個人情報を含む文字列と関連づけられる整数であっても、任意に選択される桁数を増して暗号化することにより、複数の暗号化した整数を生成して使い分けることが可能になる。
In this way, an integer obtained by adding an arbitrarily selected number of digits to the encrypted integer Xi can be generated and used for encryption input. The integer Wi with the increased number of digits can change depending on the increased number of digits and the number of each digit included in the integer of the number of digits even if the original integer Xi is the same. Therefore, different integers Wi can be generated and used for encryption based on the same Xi and an arbitrarily selected integer of digits.
In one embodiment, the encrypted integer Xi is an integer such as 4 digits, 6 digits, or 8 digits that is generated based on a character string that includes date of birth date information, and is an arbitrarily selected digit. The number can be, for example, a two-digit integer. The user of the method for encrypting and decrypting an integer according to the present invention can generate an integer Wi with an increased number of digits, which is generated from the same integer based on his / her date of birth and an arbitrarily selected two-digit integer. A plurality of encrypted integers can be generated and used by properly using the 2-digit integer as an input for encryption. Even if the integer to be encrypted is, for example, 10 digits, the user does not have to store all the digits for each purpose of use, and the two-digit integer may be used properly.
Therefore, in the method for encrypting and decrypting an integer according to the present invention, even if an integer is associated with a character string including personal information such as a date of birth, the number of digits selected arbitrarily is increased. By making it possible, a plurality of encrypted integers can be generated and used properly.
(17) さらに、コンピュータ装置が復号化の後に復号化した整数から前記追加した少なくとも一つの桁を除去するステップを含む、(16)に記載の整数を暗号化し復号化する方法。 (17) The method for encrypting and decrypting an integer according to (16), further comprising the step of removing the added at least one digit from the decrypted integer after decryption by the computer device .
このようにすることで、本発明に係る整数を暗号化し復号化する方法においては、復号化の後に、桁を増した整数Wiから元の整数Xiを完全に復号化することが可能になる。 By doing so, in the method for encrypting and decrypting an integer according to the present invention, it is possible to completely decrypt the original integer Xi from the integer Wi having an increased number of digits after decryption.
(18) 前記Fを生成し記憶手段に記憶するステップは、コンピュータ装置がmを任意の整数として、前記数式[数2]を成立する数Fを生成して、前記整数YiのF乗がコンピュータ装置の計算手段の整数演算に桁あふれを発生するか否かを判定し、判定結果が真となるまで、数Fの生成と前記判定を繰り返すステップと、コンピュータ装置が前記判定結果が真となるFを記憶手段に記憶するステップとを含む、ことを特徴とする(1)に記載の整数を暗号化し復号化する方法。 (18) The step of generating F and storing it in the storage means is such that a computer device generates a number F satisfying the mathematical formula [Equation 2], where m is an arbitrary integer, It is determined whether or not overflow occurs in the integer operation of the calculation means of the apparatus, the step of repeating the generation of the number F and the determination until the determination result becomes true, and the computer apparatus makes the determination result true. Storing the F in the storage means, and encrypting and decrypting the integer according to (1).
このようにすることで、復号化の計算過程において桁あふれを発生することにより、本発明の方法を用いない計算手段等においては、正しい復号を実施することはできない。By doing so, overflow occurs in the decoding calculation process, so that correct decoding cannot be performed in a calculation means that does not use the method of the present invention.
(19) (1)から(18)のいずれかに記載の方法の各ステップをコンピュータに実行させるための、コンピュータ・プログラム。
これにより、本発明に係る整数を暗号化し復号化する方法の各ステップをコンピュータに実行させうる。従って、暗号化及び復号化に係る各ステップはコンピュータを用いて自動的に処理されうる。
(19) A computer program for causing a computer to execute each step of the method according to any one of (1) to (18).
Thereby, each step of the method for encrypting and decrypting an integer according to the present invention can be executed by a computer. Accordingly, each step relating to encryption and decryption can be automatically processed using a computer.
本発明に係る整数を暗号化し復号化する方法を用いて、記憶媒体に記録する任意のデータ、及び/又は記憶媒体の特定の記憶領域を参照するためのファイル割り当てテーブル等に含まれる数値を暗号化及び復号化しうる。当該データ又は当該数値は整数と見なしうるものであれば何でもよい。すなわち、本発明により、第三者に対して隠蔽したコンピュータ可読媒体を提供しうる。具体的には、コンピュータ可読媒体はフラッシュメモリ等の電気的記憶媒体、CD−ROM等の光学読み取り可能媒体、ハードディスク等の磁気記憶媒体等の任意の形態を含む。本発明に係る整数を暗号化し復号化する方法を用いて提供しうるコンピュータ可読媒体は、暗号化又は復号化の諸段階においてコンピュータ・ネットワーク等を介する必要はなく、ネットワーク等から切り離されたオフライン状態でも本発明に係る暗号化及び復号化の方法を用いてエンコードした情報を記憶しうる。従って、本発明においては、通信技術と連携して動作するセキュリティ技術等とは独立して、単独で暗号化及び復号化の方法を用いるコンピュータ可読媒体を提供しうる。 Using the method for encrypting and decrypting integers according to the present invention, arbitrary data recorded on a storage medium and / or numerical values included in a file allocation table for referring to a specific storage area of the storage medium are encrypted. And decryption. The data or the numerical value may be anything as long as it can be regarded as an integer. That is, according to the present invention, a computer-readable medium concealed from a third party can be provided. Specifically, the computer-readable medium includes any form such as an electrical storage medium such as a flash memory, an optically readable medium such as a CD-ROM, and a magnetic storage medium such as a hard disk. The computer-readable medium that can be provided by using the method for encrypting and decrypting an integer according to the present invention does not need to go through a computer network or the like in various stages of encryption or decryption, and is in an offline state separated from the network or the like However, information encoded using the encryption and decryption methods according to the present invention can be stored. Accordingly, the present invention can provide a computer-readable medium that uses encryption and decryption methods independently, independently of security technologies that operate in cooperation with communication technologies.
(20) 入力された0及び1を除く整数Xiを暗号化し復号化する装置であって、積Nが入力された前記整数Xiを超える2つの素数A及びBを生成し、前記N、A、Bを記憶手段に記憶する素数生成部であって、積Nを整数Mを基数とするM進表記に変換し、前記積NのM進表記の桁数を、少なくとも2つ以上に分割し、前記分割したそれぞれの桁に対応する整数部分と当該桁数をべき指数とするMのべき乗との積からなる単項式の和からなる前記積Nの展開形を生成し、前記展開形に含まれる前記それぞれの桁に対応する整数部分の集まりと前記それぞれの整数部分の桁の情報からなる前記それぞれの整数部分を関連づける情報とを生成する素数生成部と、(A−1)と(B−1)との積D及び(A−1)と(B−1)の最小公倍数Kを生成し、前記D及びKを記憶手段に記憶し、前記D又はKと素である数Eを生成して、前記整数XiのE乗がコンピュータ装置の計算手段の整数演算に桁あふれを発生するか否かを判定し、判定結果が真となるまで、前記D又はKと素である数Eの生成と前記判定を繰り返し、判定結果が真となるEを記憶手段に記憶し、整数Xiを整数Mを基数とするM進表記に変換し、前記積Nと同じ桁数に分割し、前記分割したそれぞれの桁に対応する整数部分と当該桁数をべき指数とするMのべき乗との積からなる単項式の和からなる前記整数Xiの展開形を生成し、前記展開形に含まれる前記それぞれの桁に対応する整数部分の集まりと前記それぞれの整数部分の桁の情報からなる前記それぞれの整数部分を関連づける情報とを生成する生成部と、前記記憶された数Eをべき指数とする、次式記載の整数XiのE乗冪演算において、整数Xiの前記保持した前記それぞれの整数部分の桁の情報に基づき、前記それぞれの桁に対応する整数部分間の計算に置き換えて展開し、桁ごとに積Nの前記生成した、前記それぞれの整数部分との差分を算出する剰余計算により、整数XiをE乗してNを法とする整数Yiを計算して、前記整数Yiを前記積Nと同じ桁数に分割し、前記分割したそれぞれの桁に対応する整数部分と当該桁数をべき指数とするMのべき乗との積からなる単項式の和からなる展開形を生成し、前記展開形に含まれる前記それぞれの桁に対応する整数部分の集まりと前記それぞれの整数部分の桁の情報からなる前記それぞれの整数部分を関連づける情報とを生成する剰余暗号化実行部と、
mを任意の整数として次式を成立するFを生成し記憶手段に記憶する秘密鍵生成部と、
(21) 前記秘密鍵生成部は、
mを任意の整数として、前記数式[数12]を成立する数Fを生成して、前記整数YiのF乗がコンピュータ装置の計算手段の整数演算に桁あふれを発生するか否かを判定し、判定結果が真となるまで、数Fの生成と前記判定を繰り返す手段と、前記判定結果が真となるFを記憶手段に記憶する手段とを含む、ことを特徴とする(20)に記載の整数を暗号化し復号化する装置。
(20) An apparatus for encrypting and decrypting an input integer Xi excluding 0 and 1, wherein the product N generates two prime numbers A and B exceeding the input integer Xi, and the N, A, A prime number generation unit for storing B in a storage means, wherein the product N is converted into an M-notation notation based on an integer M, and the number of digits in the M-notation of the product N is divided into at least two or more, An expanded form of the product N consisting of a monomial sum consisting of a product of an integer part corresponding to each of the divided digits and a power of M with the number of digits as a power exponent is generated, and is included in the expanded form A prime number generation unit that generates a set of integer parts corresponding to each digit and information that associates each integer part with information on the digits of each integer part, (A-1) and (B-1) product D and (a-1) and the least common multiple K of the (B-1) Generating D and K in the storage means, generating a number E that is prime with D or K, and the power of the integer Xi to generate an overflow in the integer operation of the calculation means of the computer device Until the determination result is true, the generation of the number E that is prime with D or K and the determination are repeated, and E where the determination result is true is stored in the storage means, and the integer Xi is stored. Convert to an M-ary notation based on an integer M, divide into the same number of digits as the product N, and the product of the integer part corresponding to each of the divided digits and the power of M with the number of digits as the exponent Generating an expanded form of the integer Xi consisting of the sum of monomials consisting of the integers, and each of the integers comprising a set of integer parts corresponding to the respective digits included in the expanded form and information on the digits of the respective integer parts A generating unit that generates information for associating the parts; In the E-power multiplication operation of the integer Xi described in the following equation using the stored number E as a power exponent, the integer Xi corresponds to each digit based on the information of the digits of the held integer part of the integer Xi An integer Yi modulo N by multiplying the integer Xi to the E power by performing a remainder calculation that expands by replacing the calculation between the integer parts and calculates the difference between the generated integer N and the respective integer parts for each digit. And the integer Yi is divided into the same number of digits as the product N, and a monomial consisting of the product of the integer part corresponding to each of the divided digits and the power of M with the number of digits as the exponent A development form consisting of a sum is generated, and a set of integer parts corresponding to each digit included in the development form and information associating each integer part consisting of information on the digits of each integer part are generated. Remainder encryption An execution unit,
a secret key generation unit that generates F that satisfies the following expression, where m is an arbitrary integer, and is stored in the storage unit ;
(21) The secret key generation unit
By using m as an arbitrary integer, a number F that satisfies the mathematical expression [Formula 12] is generated, and it is determined whether or not the integer Yi raised to the F power causes overflow in the integer operation of the calculation means of the computer device. (20) including means for repeating generation of the number F and the determination until the determination result becomes true, and means for storing F in which the determination result is true in the storage means A device that encrypts and decrypts integers.
本発明に係る整数の暗号化及び復号化装置においては、CPU内部における整数演算中の桁あふれの検出又はプログラム実行中の整数演算の桁あふれ発生の検出を実施可能であればよい。
また、本発明に係る整数の暗号化及び復号化装置においては、桁あふれを発生する条件で前述の式(I)のEを選択した後に、例えば前述の式(IV)又は(V)を用いて積Nを展開し、さらに式(VI)又は(VII)を用いてXiを展開し、整数Xiを暗号化した整数Yiを正確に得ることができる。
さらに、本発明に係る装置においては、積N及び整数Xiのそれぞれを分割して得られる整数部分の関連づけの情報を保持しうる。これにより、本発明に係る装置においては、入力の整数Xiを一つの整数として暗号化し復号化することが可能になり、第三者による解読のための手がかりを増すことなく、情報を秘匿しうる。
In the integer encryption / decryption device according to the present invention, it is only necessary to be able to detect overflow in integer arithmetic in the CPU or detection of overflow in integer arithmetic during program execution.
Further, in the integer encryption and decryption device according to the present invention, after selecting E in the above-described formula (I) under the condition that overflow occurs, for example, the above-described formula (IV) or (V) is used. Then, the product N is expanded, and further, Xi is expanded using the formula (VI) or (VII), and the integer Yi obtained by encrypting the integer Xi can be accurately obtained.
Furthermore, in the apparatus according to the present invention, it is possible to hold information on association of integer parts obtained by dividing each of the product N and the integer Xi. As a result, in the device according to the present invention, the input integer Xi can be encrypted and decrypted as one integer, and information can be concealed without increasing clues for decryption by a third party. .
従って、本発明に係る整数を暗号化及び復号化する装置においては、個人情報等と関連づけられた整数に対して高いセキュリティを確保した暗号化した整数を生成でき、この暗号化した整数を正しく復号化して元の整数を得られる。 Therefore, in the device for encrypting and decrypting integers according to the present invention, it is possible to generate an encrypted integer that secures high security for the integer associated with personal information, etc., and correctly decrypt the encrypted integer. To get the original integer.
整数Xiを暗号化し復号化するシステムであって、積Nが入力された前記整数Xiを超える2つの素数A及びBを生成し、前記N、A、Bを記憶手段に記憶する素数生成手段であって、積Nを整数Mを基数とするM進表記に変換し、前記積NのM進表記の桁数を、少なくとも2つ以上に分割し、前記分割したそれぞれの桁に対応する整数部分と当該桁数をべき指数とするMのべき乗との積からなる単項式の和からなる前記積Nの展開形を生成し、前記展開形に含まれる前記それぞれの桁に対応する整数部分の集まりと前記それぞれの整数部分の桁の情報からなる前記それぞれの整数部分を関連づける情報とを生成する素数生成手段と、(A−1)と(B−1)との積D及び(A−1)と(B−1)の最小公倍数Kを生成し、前記D及びKを記憶手段に記憶し、前記D又はKと素である数Eを生成して、前記整数XiのE乗がコンピュータ装置の計算手段の整数演算に桁あふれを発生するか否かを判定し、判定結果が真となるまで、前記D又はKと素である数Eの生成と前記判定を繰り返し、判定結果が真となるEを記憶手段に記憶し、整数Xiを整数Mを基数とするM進表記に変換し、前記積Nと同じ桁数に分割し、前記分割したそれぞれの桁に対応する整数部分と当該桁数をべき指数とするMのべき乗との積からなる単項式の和からなる前記整数Xiの展開形を生成し、前記展開形に含まれる前記それぞれの桁に対応する整数部分の集まりと前記それぞれの整数部分の桁の情報からなる前記それぞれの整数部分を関連づける情報とを生成する生成手段と、前記記憶された数Eをべき指数とする、次式記載の整数XiのE乗冪演算において、整数Xiの前記保持した前記それぞれの整数部分の桁の情報に基づき、前記それぞれの桁に対応する整数部分間の計算に置き換えて展開し、桁ごとに積Nの前記生成した、前記それぞれの整数部分との差分を算出する剰余計算により、整数XiをE乗してNを法とする整数Yiを計算して、前記整数Yiを前記積Nと同じ桁数に分割し、前記分割したそれぞれの桁に対応する整数部分と当該桁数をべき指数とするMのべき乗との積からなる単項式の和からなる展開形を生成し、前記展開形に含まれる前記それぞれの桁に対応する整数部分の集まりと前記それぞれの整数部分の桁の情報からなる前記それぞれの整数部分を関連づける情報とを生成する剰余暗号化手段と、
mを任意の整数として次式を成立するFを生成し記憶手段に記憶する秘密鍵生成手段と、
(23) 前記秘密鍵生成手段は、mを任意の整数として、前記数式[数15]を成立する数Fを生成して、前記整数YiのF乗がコンピュータ装置の計算手段の整数演算に桁あふれを発生するか否かを判定し、判定結果が真となるまで、数Fの生成と前記判定を繰り返す手段と、前記判定結果が真となるFを記憶手段に記憶する手段とを含む、ことを特徴とする(22)に記載の整数を暗号化し復号化するシステム。
A system for encrypting and decrypting an integer Xi, wherein two prime numbers A and B exceeding the integer Xi to which a product N is inputted are generated, and the prime number generating means for storing the N, A, and B in a storage means The product N is converted into an M-ary notation based on an integer M, the number of digits in the M-ary notation of the product N is divided into at least two, and the integer part corresponding to each of the divided digits A product of the monomial sum consisting of the product of M and the power of M with the number of digits as the exponent, and a set of integer parts corresponding to the respective digits included in the expansion. Prime number generating means for generating information relating the digits of the integer parts and associating the integer parts ; products D and (A-1) of (A-1) and (B-1); Generate the least common multiple K of (B-1) and write D and K Storing in the storage means, generating a number E that is prime with D or K, and determining whether the integer Xi raised to the E power causes an overflow in the integer operation of the calculation means of the computer device; Until the result becomes true, generation of the number E that is prime with D or K and the determination are repeated, and E where the determination result is true is stored in the storage means, and the integer Xi is the M base with the integer M as the base. Converted into notation, divided into the same number of digits as the product N, and consisting of a monomial sum consisting of a product of an integer part corresponding to each of the divided digits and a power of M with the number of digits as the exponent An expanded form of the integer Xi is generated, and a set of integer parts corresponding to the respective digits included in the expanded form and information that associates the respective integer parts including information on the digits of the respective integer parts are generated. Generating means and the stored number E In the E-power operation of the integer Xi described in the following equation, the exponent is replaced with a calculation between the integer parts corresponding to the respective digits based on the information of the digits of the held integer parts of the integer Xi. The integer Yi is calculated by dividing the integer Xi to the E power and calculating the integer Yi modulo N by the remainder calculation that calculates the difference between the generated integer N of the product N for each digit. Is divided into the same number of digits as the product N, and an unfolded form consisting of a monomial sum consisting of a product of an integer part corresponding to each of the divided digits and a power of M with the number of digits as the exponent is generated. , and remainder encryption means for generating an information associating said respective integer part consisting of digits of information collection and the respective integer part of the integer part corresponding to the respective digits included in the deployment shape,
a secret key generating means for generating F that holds the following expression with m as an arbitrary integer and storing it in the storing means ;
(23) The secret key generation means generates a number F that holds the mathematical expression [Expression 15], where m is an arbitrary integer, and the power of the integer Yi is a digit in the integer calculation of the calculation means of the computer device. Determining whether or not overflow occurs, and means for repeating the generation of the number F and the determination until the determination result is true, and means for storing the F in which the determination result is true in the storage means, A system for encrypting and decrypting the integer described in (22) .
本発明に係る整数を暗号化及び復号化するシステムにおいては、CPU内部における整数演算中の桁あふれの検出又はプログラム実行中の整数演算の桁あふれ発生の検出を実施可能であればよく、これを用いて式(IX)で表されるべき乗計算に含まれる整数Eを選択してもよい。
また、本発明に係る整数を暗号化し復号化するシステムにおいては、桁あふれを発生する条件で前述の式(I)のEを選択した後に、例えば前述の式(IV)又は(V)を用いて積Nを展開し、さらに式(VI)又は(VII)を用いてXiを展開し、整数Xiを暗号化した整数Yiを正確に得ることができる。
さらに、本発明に係るシステムにおいては、積N及び整数Xiのそれぞれを分割して得られる整数部分の関連づけの情報を保持しうる。これにより、本発明に係るシステムにおいては、入力の整数Xiを一つの整数として暗号化し復号化することが可能になり、第三者による解読のための手がかりを増すことなく、情報を秘匿しうる。
In the system for encrypting and decrypting integers according to the present invention, it is only necessary to be able to detect overflow of integer operations in the CPU or detection of overflow of integer operations during program execution. The integer E included in the power calculation represented by the formula (IX) may be selected.
Further, in the system for encrypting and decrypting an integer according to the present invention, after selecting E of the above-described formula (I) under the condition that overflow occurs, for example, the above-described formula (IV) or (V) is used. Then, the product N is expanded, and further, Xi is expanded using the formula (VI) or (VII), and the integer Yi obtained by encrypting the integer Xi can be accurately obtained.
Furthermore, in the system according to the present invention, it is possible to hold information relating to the integer part obtained by dividing each of the product N and the integer Xi. As a result, in the system according to the present invention, the input integer Xi can be encrypted and decrypted as one integer, and information can be concealed without increasing clues for decryption by a third party. .
従って、本発明に係る整数を暗号化及び復号化するシステムにおいては、個人情報等と関連づけられた整数に対して高いセキュリティを確保した暗号化した整数を生成でき、この暗号化した整数を正しく復号化して元の整数を得られる。 Therefore, in the system for encrypting and decrypting integers according to the present invention, it is possible to generate an encrypted integer that secures high security for the integer associated with personal information and the like, and correctly decrypt the encrypted integer. To get the original integer.
本発明に係る整数を暗号化及び復号化する方法、装置、システム等は、コンピュータ・ネットワーク技術等の、既存の情報伝達技術等と組み合わせることができ、そのように組み合わせた技術もまた、本発明の技術範囲に含まれる。同様に、本発明の技法を含む情報記録システム、情報管理システム、情報処理システム等も、本発明の技術範囲に含まれる。さらに、本発明の技法は、暗号化及び復号化の諸段階を、FPGA(現場でプログラム可能なゲートアレイ)、ASIC(特定用途向け集積回路)、これらと同等のハードウェア・ロジック素子、プログラム可能な集積回路、又はこれらの組み合わせが記憶し得るプログラムの形態、すなわちプログラム製品として提供し得る。具体的には、入出力、データバス、メモリバス、システムバス等を備えるカスタムLSI(大規模集積回路)の形態として、本発明に係る暗号化及び復号化装置等を提供でき、そのように集積回路に記憶されたプログラム製品の形態も、本発明の技術範囲に含まれる。 The method, apparatus, system, etc. for encrypting and decrypting integers according to the present invention can be combined with existing information transmission technologies, such as computer network technologies, and such combined technologies are also included in the present invention. Included in the technical scope. Similarly, an information recording system, an information management system, an information processing system and the like including the technique of the present invention are also included in the technical scope of the present invention. In addition, the technique of the present invention allows the encryption and decryption stages to be performed in FPGA (field programmable gate array), ASIC (application specific integrated circuit), equivalent hardware logic elements, programmable. The integrated circuit or a combination thereof can be provided as a program form that can be stored, that is, as a program product. Specifically, the encryption and decryption device according to the present invention can be provided as a form of a custom LSI (large scale integrated circuit) including an input / output, a data bus, a memory bus, a system bus, etc. The form of the program product stored in the circuit is also included in the technical scope of the present invention.
本発明によれば、計算機が桁あふれを発生する条件において、有効数字の範囲内で当該整数を暗号化及び復号化する方法を用いて、個人を特定するための識別番号等を暗号化した整数を生成することができる。本発明においては、倍精度型の精度の範囲を超える多桁の整数であっても、相互に関連づけを有する整数部分の分割を用いてべき剰余を計算する方法を提供することにより、第三者による解読のための手がかりを増すことなく、情報を秘匿することが可能になる。すなわち、本発明は乱数を適用可能な目標に対して具体的な実装及び製品化が可能な形態を提供でき、簡単なロジックに比して解読の困難さを飛躍的に向上させたという効果がある。
従って、本発明によれば、第三者に対して生成した整数から当該識別番号等の推定を極めて困難として、当該識別番号を秘匿しうるという効果がある。また、本発明によれば、有効数字の範囲内で当該整数を暗号化及び復号化する方法に加えて、換字式暗号化を重畳して暗号化及び復号を実施することにより、第三者の解読は飛躍的に困難となって、当該識別番号等の秘匿性を高めることが可能である。また、本発明によれば、生年月日等の同一の個人情報を含む文字列を表す整数及び任意に選択される整数を用いて、ランダムに生成した鍵、又は桁数を増した整数を用いて暗号化及び復号化することにより、同一の個人情報等から複数の異なる暗号化した整数を生成して使い分けることが可能になる。さらに、本発明によれば、音声による通話又は印刷物等の文書等を含む多様な形態で個人情報を隠蔽することが可能になる。
According to the present invention, an integer obtained by encrypting an identification number or the like for identifying an individual using a method for encrypting and decrypting the integer within a range of significant digits under the condition that the computer overflows. Can be generated. In the present invention, a third party is provided by providing a method of calculating a power residue using division of integer parts having correlation with each other even for a multi-digit integer exceeding the range of precision of a double precision type. It is possible to keep information secret without increasing clues for decryption. That is, the present invention can provide a form that can be concretely implemented and commercialized for a target to which random numbers can be applied, and has the effect of dramatically improving the difficulty of decoding compared to simple logic. is there.
Therefore, according to the present invention, there is an effect that the identification number can be concealed by making it extremely difficult to estimate the identification number or the like from the integer generated for a third party. Further, according to the present invention, in addition to the method of encrypting and decrypting the integer within the range of significant digits, by performing superimposition of substitutional encryption and performing encryption and decryption, Decryption becomes extremely difficult, and the confidentiality of the identification number and the like can be improved. Further, according to the present invention, an integer representing a character string including the same personal information such as date of birth and an integer selected arbitrarily are used, a randomly generated key, or an integer with an increased number of digits is used. Thus, by encrypting and decrypting, a plurality of different encrypted integers can be generated from the same personal information and used separately. Furthermore, according to the present invention, it is possible to conceal personal information in various forms including a voice call or a document such as a printed matter.
以下、本発明の実施形態について、図面を併用して説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[暗号化及び復号化のフロー図]
図1及び図2に、本発明の一実施形態に係る、整数を暗号化し復号化する方法のフロー図を示す。図1は本発明に係る整数を暗号化する方法のフロー図の例であり、図2は当該暗号化した整数を復号化する方法のフロー図の例である。
[Flow diagram of encryption and decryption]
1 and 2 show a flow chart of a method for encrypting and decrypting an integer according to an embodiment of the present invention. FIG. 1 is an example of a flowchart of a method for encrypting an integer according to the present invention, and FIG. 2 is an example of a flowchart of a method for decrypting the encrypted integer.
[暗号化の諸段階]
まず、図1を参照し、暗号化の諸段階を説明する。本発明に係る整数を暗号化する方法は、図1のステップS100において、変数領域を確保する。具体的には、次の表1に列挙する変数を用いる計算のためにコンピュータ装置等のメモリ領域が適宜確保される。
First, the encryption steps will be described with reference to FIG. The method for encrypting an integer according to the present invention secures a variable area in step S100 of FIG. Specifically, a memory area of a computer device or the like is appropriately secured for calculation using the variables listed in the following Table 1.
暗号化する整数としては、識別子等に含まれうる符号なしの整数が挙げられるが、これに限定せず、任意の形式の整数を本発明に係る方法に用いうる。好適には、暗号化する整数は0以上の任意の整数でありうる。
一実施形態において、計算に用いるコンピュータ装置等における整数Xi、Yi、Zi、Xn及びYnのワード長は、当該コンピュータ装置等が備えるCPUの内部命令において一つの整数を表すために用いうるレジスタのビット幅の最大以内でありうる。例えば、16ビットレジスタを用いて内部命令に含まれる整数演算を実施可能なCPUを備えるコンピュータ装置においては、整数Xi、Yi、Zi、Xn及びYnのワード長は16ビット以下であり、これらの整数の変数は10進数の記法における0以上65535以下でありうる。
The integer to be encrypted includes an unsigned integer that can be included in an identifier or the like, but is not limited to this, and an integer in any format can be used in the method according to the present invention. Preferably, the integer to be encrypted can be any integer greater than or equal to zero.
In one embodiment, word lengths of integers Xi, Yi, Zi, Xn, and Yn in a computer device or the like used for calculation are register bits that can be used to represent one integer in an internal instruction of a CPU included in the computer device or the like. Can be within maximum width. For example, in a computer device equipped with a CPU that can execute an integer operation included in an internal instruction using a 16-bit register, the word lengths of integers Xi, Yi, Zi, Xn, and Yn are 16 bits or less. The variable may be 0 or more and 65535 or less in decimal notation.
次いで、本発明に係る整数を暗号化する方法は、ステップS110において、積NがXiを超える2つの素数A及びBを生成しうる。素数A及びBは、予め素数の集合等を用意して適宜選択してもよい。 Next, the method for encrypting an integer according to the present invention may generate two prime numbers A and B having a product N exceeding Xi in step S110. The prime numbers A and B may be selected as appropriate by preparing a set of prime numbers in advance.
一実施形態において、ステップS110は、積Nの桁を少なくとも二つに分割して積Nから少なくとも二つの整数部分を生成してもよい。例えば、積Nは次式を用いて上位の桁を有する整数部分Nu及び下位の桁を有する整数部分Ndに分割してもよい。
次いで、本発明に係る整数を暗号化する方法は、ステップS120において、(A−1)と(B−1)との積をDに代入し、(A−1)と(B−1)の最小公倍数をKに代入する。
次いで、本発明に係る整数を暗号化する方法は、ステップS130において、D又はKと素である数Eを生成する。
次いで、本発明に係る整数を暗号化する方法は、ステップS140において、次の式(XII)の右辺の項(XiのE乗)が、計算手段の整数演算に桁あふれを発生するか否かを判定する。判定の結果が真であればステップS150に進み、偽であればステップS130に戻る。
Next, the method for encrypting an integer according to the present invention generates a number E that is prime to D or K in step S130.
Next, in the method for encrypting an integer according to the present invention, in step S140, whether the term on the right side of the following equation (XII) (Xi raised to the E power) causes overflow in the integer operation of the calculation means. Determine. If the determination result is true, the process proceeds to step S150, and if it is false, the process returns to step S130.
桁あふれの検出は、計算手段が備えるCPUの内部動作の状況を記憶するための、CPUの特定のレジスタに含まれるフラグ(例えばステータス・レジスタ又はコンディション・レジスタ等に含まれるオーバーフロー・フラグ等)の値を参照してもよく、コンパイラ言語等により予めオペレーティング・システムに例外処理等を登録して当該例外処理の動作を参照してもよく、スクリプト言語又はコンパイラ言語等に付属するライブラリ等が備えるオーバーフロー・エラー処理を参照してもよく、適宜設計しうる。 The overflow detection is performed by using a flag included in a specific register of the CPU (for example, an overflow flag included in the status register or the condition register) for storing the internal operation status of the CPU included in the calculation means. You may refer to the value, register exception handling in the operating system in advance using the compiler language, etc., and refer to the operation of the exception handling, or an overflow provided by a library attached to the script language or compiler language, etc. • You may refer to error handling and design accordingly.
次いで、本発明に係る整数を暗号化する方法は、ステップS150において、式(XIII)の展開形を用いて、整数Xiを暗号化した整数Yiを生成しうる。式(XIII)の展開形には、例えば次の式を用いうる。
一実施形態において、積Nと同様に、本発明に係る方法は、ステップS150において、整数Xiを含む任意の整数Xに対して、次式を用いて上位の桁Xu及び下位の桁Xdに分割された整数部分を生成しうる。Xu及びXdは上述の式(XIV)と同様である。任意の整数Xは、本発明に係る整数を暗号化し復号化する方法において、倍精度型の精度の範囲を超える整数でありうる。例えば、任意の整数Xは、入力された整数Xiが20桁の整数である場合に、整数Xiの2乗、3乗、4乗、等のべき乗の計算により生じうる整数でありうる。また例えば、任意の整数Xは、本発明に係る復号化において、整数Yiの2乗、3乗、4乗、等のべき乗の計算により生じうる整数でありうる。
例えば、記数法の底であるMを2とし、Xiの桁数を16桁、下位の桁数Ctを8桁とする場合、式(IX)は次式のように表される。
例えば、本発明に係る整数を暗号化し復号化する方法の実施手段等が16ビット幅のレジスタを有するCPUを備えるコンピュータ装置等である場合に、元の整数Xiの値が10進数の65532等であると、任意の整数Xに対するべき乗の計算において、最も小さい整数のべき数でありうる2を用いた時点で、当該CPUが備える16ビット幅のレジスタを用いて表しうる整数の上限値65535を超えてしまう。すなわち、単に元の整数をそのままべき乗する通常の計算方法に従って式(XIII)の右辺に含まれるXiのE乗の計算を実施すると、正確なべき乗の値が得られない場合がある。
本発明に係る方法においては、例えば式(XVI)により表される桁の分割を用いて上位の桁と下位の桁をそれぞれ整数部分として分割しうる。例えば任意の整数Xとして10進数の65532を用い、これを2進数の1111111111111100(2)として表し、上位8桁と下位8桁等に分割し、上位8桁に含まれる整数11111111(2)(10進数の255)及び下位8桁に含まれる整数11111100(2)(10進数の252)を用い、255の2乗、255と252の積、252の2乗をそれぞれ計算すると、これらの整数の積はいずれも当該CPUが備える16ビット幅のレジスタを用いて表しうる整数の範囲内にあることは明白である。32ビット幅のレジスタ、64ビット幅のレジスタ等についても同様である。特に、64ビットのデータ長を有する整数は倍精度型の精度の範囲にあり、当該精度の範囲を超えうるべき乗等の計算結果に対して、本発明に係る方法は桁あふれによる誤りを避けることが可能である。
従って、例えば前述の式(XIII)として表されるXiのべき乗の計算において、最も少ない回数であるXiの2乗の場合に、式(XV)の右辺の2乗からは、Xuの2乗、Xu・Xd、及びXdの2乗が生成され、これらはいずれも元のXiの桁数以下の整数でありうるため、桁あふれを避けられる。すなわち、Xiの任意のべき乗において、式(XV)の手順を繰り返すことにより、べき乗の計算過程での桁あふれを避けることが可能になる。
For example, when the implementation means of the method for encrypting and decrypting an integer according to the present invention is a computer device including a CPU having a 16-bit width register, the value of the original integer Xi is a decimal number 65532, etc. If there is, in the calculation of a power to an arbitrary integer X, when 2 which can be the smallest integer power number is used, it exceeds the upper limit 65535 of the integer that can be expressed using the 16-bit width register provided in the CPU. End up. That is, if the calculation of the Ei power of Xi included in the right side of the formula (XIII) is performed according to a normal calculation method that simply powers the original integer as it is, an accurate power value may not be obtained.
In the method according to the present invention, for example, the upper digit and the lower digit can be divided as integer parts by using the digit division represented by the formula (XVI). For example, a decimal number 65532 is used as an arbitrary integer X, which is expressed as a binary number 1111111111111100 (2), divided into upper 8 digits, lower 8 digits, etc., and an integer 11111111 (2) (10 Using the integer number 111111100 (2) (decimal number 252) included in the lower 8 digits of the decimal number 255) and calculating the square of 255, the product of 255 and 252 and the square of 252 respectively, the product of these integers Is clearly within the range of integers that can be represented using the 16-bit wide registers of the CPU. The same applies to 32-bit wide registers, 64-bit wide registers, and the like. In particular, an integer having a data length of 64 bits is in the precision range of the double precision type, and the method according to the present invention avoids an error due to overflow when it is a calculation result such as a power that can exceed the precision range. Is possible.
Therefore, for example, in the calculation of the power of Xi expressed as the above formula (XIII), in the case of the square of Xi that is the smallest number of times, the square of the right side of the formula (XV) is changed to the square of Xu, Since Xu · Xd and the square of Xd are generated, both of which can be integers less than the number of digits of the original Xi, overflow is avoided. That is, it is possible to avoid overflow in the power calculation process by repeating the procedure of the equation (XV) at an arbitrary power of Xi.
別の実施形態において、入力の整数Xiを含む任意の整数Xは20桁の10進数として扱われ、次式を用いて5桁の10進数で表される4個の整数部分に分割されうる。
分割する桁数は、計算手段等が備えるCPUの整数演算のためのレジスタのビット幅等に基づいて適宜設定しうる。好適には、式(XV)に示したように、符号なし整数演算のためのレジスタのビット幅を等分した上位の桁数及び下位の桁数を、分割した桁として用いうる。より好適には、式(XVII)に示したように、入力の整数Xiを20桁の整数として表し、これを4個の5桁の整数に分割したそれぞれの整数部分を、分割した桁として用いうる。 The number of digits to be divided can be appropriately set based on the bit width of a register for integer arithmetic operation of the CPU provided in the calculation means or the like. Preferably, as shown in the equation (XV), the number of upper digits and the number of lower digits obtained by equally dividing the bit width of the register for unsigned integer arithmetic can be used as divided digits. More preferably, as shown in the formula (XVII), the input integer Xi is represented as a 20-digit integer, and each integer part obtained by dividing this into four 5-digit integers is used as the divided digits. sell.
以上の諸段階により、元の整数Xiから、べき剰余を用いて暗号化した整数であるYiを得られる。整数Yiを表すために必要なワード長は、元の整数Xiを表すためのワード長と同じでありうるが、これに限定せず、暗号化した整数Yiの用途等に応じて、又は他のセキュリティ手段又は方法等を組み合わせて、桁数を増す数字等を追加してもよく、あるいは整数Yiを文字に変換して適宜記号等を含む文字を任意に追加してもよい。 Through the above steps, Yi which is an integer encrypted using a power residue is obtained from the original integer Xi. The word length required to represent the integer Yi may be the same as the word length to represent the original integer Xi, but is not limited thereto, depending on the use of the encrypted integer Yi, etc. A number or the like that increases the number of digits may be added by combining security means or methods, or an integer Yi may be converted into a character and a character including a symbol or the like may be arbitrarily added.
次いで、本発明に係る整数を暗号化する方法は、ステップS160において、上述の用に分割したそれぞれの整数部分を関連づける情報を保持する。具体的には、分割前の整数に対するそれぞれの整数部分の桁の情報が保持される。例えば、分割前の整数Xに対して、整数部分であるX15、X10、X5、及びX0のそれぞれが、任意の整数Xの20位から16位、15位から11位、10位から6位、及び5位から1位であることの情報が保持される。 Next, in step S160, the method for encrypting an integer according to the present invention retains information relating each integer part divided for the above-described purpose. Specifically, the information of the digits of each integer part with respect to the integer before division is held. For example, with respect to the integer X before the division, the integer parts X 15 , X 10 , X 5 , and X 0 are the 20th to 16th, 15th to 11th, and 10th positions of the arbitrary integer X, respectively. The information indicating that it is 6th from 5th and 1st from 5th is held.
本発明に係る、整数を暗号化し復号化する方法においては、積N及び展開形に含まれるそれぞれの整数部分を関連づける情報が保持される。これにより、本発明においては、積N又は任意の整数Xに対して、上述の桁の分割から生じた整数部分は互いに関連づけられる。従って、本発明においては、それぞれの整数部分は別個に暗号化され復号化されうる独立した整数ではなく、一つの整数として暗号化され復号化されうる。すなわち、本発明に係る整数を暗号化し復号化する方法においては、第三者による解読のための手がかりを増すことなく、情報を秘匿することが可能になる。 In the method of encrypting and decrypting integers according to the present invention, information relating the product N and each integer part included in the expanded form is held. Thus, in the present invention, for the product N or any integer X, the integer parts resulting from the above-described digit division are related to each other. Thus, in the present invention, each integer part can be encrypted and decrypted as a single integer, rather than an independent integer that can be separately encrypted and decrypted. In other words, in the method for encrypting and decrypting integers according to the present invention, it is possible to conceal information without increasing clues for decryption by a third party.
このようにすることで、本発明に係る整数を暗号化し復号化する方法においては、桁あふれを発生する条件で式(XIII)のEを選択するため、本発明の方法を用いないコンピュータ装置等においては暗号化した整数Yiを正確に得ることができず、情報秘匿性の高い暗号化を実施することが可能になる。 In this way, in the method for encrypting and decrypting integers according to the present invention, since E in formula (XIII) is selected under the condition that overflow occurs, a computer apparatus that does not use the method of the present invention, etc. The encrypted integer Yi cannot be obtained accurately and encryption with high information confidentiality can be performed.
一実施形態において、本発明に係る暗号化の方法における任意の2個の整数の積は、次式のように置き換えて展開しうる。一例として、2個の整数として整数P及びQを示す。式中、P及びQはそれぞれ20桁の10進数として表し、上位の桁に数字が存在しない場合はゼロ詰めしてもよい。
式(XVIII)と同様に、2個の素数の積であるNを次式のように表してもよい。式中、素数A及びBはそれぞれ20桁の10進数として表し、上位の桁に数字が存在しない場合はゼロ詰めしてもよい。
本発明に係る整数を暗号化する方法においては、桁ごとに差分を算出することにより、Nに対する剰余を求めてもよい。一例として、次式に2個の整数PQの積のNに対する剰余を示す。剰余の算出においては、公知の計算技法を任意に用いることが可能である。例えば、第2式の差(PQ−AB)が負である場合の剰余はPQでありうる。
[復号化の諸段階]
次に、復号化の諸段階を説明する。本発明に係る整数を復号化する方法は、図2のステップS200において、変数領域を確保する。この変数領域の確保は、前述の暗号化の諸段階におけるステップS100と同様でもよく、暗号化及び復号の諸段階を単独のコンピュータ装置等に内蔵し、共通の変数領域を暗号化及び復号の両方の諸段階に用いてもよい。
[Decoding stages]
Next, the decoding steps will be described. The method for decoding an integer according to the present invention reserves a variable area in step S200 of FIG. The securing of the variable area may be the same as that in step S100 in the above-described encryption stages. The encryption and decryption stages are built in a single computer device, and both the common variable area is encrypted and decrypted. It may be used in these stages.
次いで、本発明に係る整数を復号化する方法は、ステップS410において、整数部分を関連づける情報を復元する。この関連づけは、図1を用いて示した本発明に係る暗号化のステップS160により保持された、整数部分どうしの関連づけの情報である。従って、ステップS410の動作により、複数の整数部分に対して、それぞれに関連づけられた桁の情報が復元される。例えば、整数部分であるX15、X10、X5、及びX0のそれぞれが、任意の整数Xの20位から16位、15位から11位、10位から6位、及び5位から1位であることの情報が復元され、分割前の整数Xの桁を正しく再現することが可能になる。 Next, in step S410, the method for decoding an integer according to the present invention restores information relating the integer part. This association is information for associating integer parts held in step S160 of encryption according to the present invention shown in FIG. Therefore, by the operation in step S410, the digit information associated with each of the plurality of integer parts is restored. For example, each of the integer parts X 15 , X 10 , X 5 , and X 0 is 20th to 16th, 15th to 11th, 10th to 6th, and 5th to 1st of any integer X. Is restored, and the digits of the integer X before division can be correctly reproduced.
次いで、本発明に係る整数を復号化する方法は、ステップS210において、mを任意の整数として次の式(XVI)を成立するFを生成する。
次いで、本発明に係る暗号化した整数を復号化する方法は、ステップS220において、次の式(XXII)を用いて前記暗号化したYiをXnに復号化する。
Next, in the method for decrypting an encrypted integer according to the present invention, in step S220, the encrypted Yi is decrypted into Xn using the following equation (XXII).
このようにすることで、本発明に係る整数を暗号化し復号化する方法においては、桁あふれを発生する条件で式(XIII)のEを選択するため、本発明の方法を用いないコンピュータ装置等においては暗号化した整数Yiを正確に得ることができず、情報秘匿性の高い暗号化を実施することが可能になる。さらに、本発明の整数を暗号化し復号化する方法においては、暗号化の過程である式(XIII)に含まれず、復号の過程である式(XXI)及び式(XXII)に含まれる整数Fが第三者に知られにくい又は推定されにくいことに基づいて高いセキュリティを確保しうる。 In this way, in the method for encrypting and decrypting integers according to the present invention, since E in formula (XIII) is selected under the condition that overflow occurs, a computer apparatus that does not use the method of the present invention, etc. The encrypted integer Yi cannot be obtained accurately and encryption with high information confidentiality can be performed. Furthermore, in the method for encrypting and decrypting an integer of the present invention, the integer F included in the formula (XXI) and the formula (XXII) that are not included in the formula (XIII) that is the process of decryption is included High security can be secured based on the fact that it is difficult to be known or estimated by a third party.
式(XXI)に含まれる任意の2個の整数の積の算出には、上述の式(XVIII)又は式(XIX)に示した、桁を分割した整数部分ごとの積の展開を用いてもよい。式(XXII)に含まれる剰余計算には、上述の式(XX)に示した、桁を分割した整数部分ごとの積の展開を用いてもよい。すなわち、本発明に係る整数を暗号化し復号化する方法においては、暗号化と同様に復号化においても、倍精度型の精度の範囲を超える整数の積又は剰余を正しく求めることが可能である。さらに、本発明においては、倍精度型の精度を超える整数の積又は剰余を用いる暗号化及び復号化の鍵の種類及び数は、倍精度型の精度の範囲内にある整数の暗号化及び復号化の鍵の種類及び数と同等である。従って、本発明においては、第三者による解読のための手がかりを増すことなく、倍精度型の精度を超える整数を暗号化し復号化することが可能である。 The calculation of the product of any two integers included in the formula (XXI) may be performed using the expansion of the product for each integer part obtained by dividing digits as shown in the above formula (XVIII) or the formula (XIX). Good. For the remainder calculation included in the formula (XXII), the expansion of the product for each integer part obtained by dividing the digits shown in the above formula (XX) may be used. That is, in the method for encrypting and decrypting integers according to the present invention, it is possible to correctly obtain an integer product or remainder exceeding the double precision type accuracy range in decryption as well as encryption. Furthermore, in the present invention, the type and number of encryption and decryption keys that use integer products or remainders that exceed the precision of the double precision type are the encryption and decryption of integers that are within the precision range of the double precision type. It is equivalent to the type and number of keys. Therefore, in the present invention, it is possible to encrypt and decrypt an integer exceeding the precision of the double precision type without increasing clues for decryption by a third party.
図1及び図2に示した本発明に係る整数を暗号化し復号化する方法においては、個人を識別するための識別子等を整数型の識別子として受け付けて暗号化しうる。これに限らず、本発明に係る整数を暗号化し復号化する方法においては、整数のべき乗及び剰余計算等を実施可能なコンピュータ装置等が受け付けうる、種々のデータもまた暗号化に用いうる。例えば、整数に変換した画像を本発明の方法を用いて暗号化することにより、第三者に対して隠蔽した画像の伝達が可能になる。また例えば、記憶媒体の特定の記憶領域を参照するためのファイル割り当てテーブル等を本発明の方法を用いて暗号化することにより、第三者に対して隠蔽した記憶媒体等を提供しうる。これらの、本発明に係る整数を暗号化する方法を用いて提供しうる記憶媒体等は、暗号化の諸段階においてコンピュータ・ネットワーク等を介する必要はなく、ネットワーク等から切り離されたオフライン状態でも暗号化及び復号化を実施可能である。従って、本発明においては、通信技術と連携して動作するセキュリティ技術等とは独立して、単独で暗号化及び復号化の方法を提供しうる。 In the method of encrypting and decrypting an integer according to the present invention shown in FIGS. 1 and 2, an identifier for identifying an individual can be received as an integer identifier and encrypted. However, the present invention is not limited to this, and in the method for encrypting and decrypting integers according to the present invention, various data that can be received by a computer device or the like capable of performing integer power and remainder calculation can also be used for encryption. For example, by encrypting an image converted into an integer using the method of the present invention, the concealed image can be transmitted to a third party. Further, for example, a file storage table or the like for referring to a specific storage area of the storage medium is encrypted using the method of the present invention, thereby providing a storage medium or the like hidden from a third party. These storage media that can be provided using the method for encrypting integers according to the present invention do not need to go through a computer network or the like at various stages of encryption, and can be encrypted even in an offline state separated from the network or the like. And decoding can be performed. Therefore, in the present invention, independent encryption and decryption methods can be provided independently of the security technology operating in cooperation with the communication technology.
[暗号化及び復号化の別の実施形態]
図3及び図4を用いて、本発明の別の実施形態に係る暗号化及び復号化の別の実施形態を説明する。まず、図3を参照し、暗号化の諸段階を説明する。前述の図1を用いて示した実施形態及び前述の表1と共通する箇所は説明を省略する。本発明に係る整数を暗号化する方法は、図3のステップS105において、変数領域を確保する。具体的には、前述の表1に示した変数に加えて、次の表2に示す変数を追加した計算のためにコンピュータ装置等のメモリ領域が適宜確保される。
3 and 4, another embodiment of encryption and decryption according to another embodiment of the present invention will be described. First, the encryption steps will be described with reference to FIG. The description of the portions common to the embodiment shown in FIG. 1 and the above-described Table 1 will be omitted. The method for encrypting an integer according to the present invention secures a variable area in step S105 of FIG. Specifically, in addition to the variables shown in Table 1 above, a memory area of a computer device or the like is appropriately secured for the calculation in which the variables shown in Table 2 below are added.
このとき、ループカウンタL等の初期設定を適宜実施してもよい。
例えば、べき剰余を用いる暗号化及び換字式暗号化の組み合わせを全体として3回繰り返す場合に、ステップS105においてループカウンタLに整数3を設定してもよい。これに限定せず、ループカウンタLは、所定の正の整数、前記所定の正の整数を暗号化した正の整数、及びランダムに発生した正の整数からなる群から選択してもよい。
ループカウンタLは、べき剰余を用いる暗号化及び換字式暗号化のいずれとも独立した変数であり、暗号化による秘匿性の強度に影響し、暗号化及び復号化のために計算時間に影響しうる。
ループカウンタLに対して、秘匿性の強度を確保するために、予め下限を設定してもよい。さらに、暗号化及び復号化の計算処理のための時間を短縮するために、予め上限を設定してもよい。従って、本発明に係る整数を暗号化し復号化する方法におけるループカウンタLの値は、予め設定された下限及び/又は上限の範囲に従って、所定の正の整数、前記所定の正の整数を暗号化した正の整数、及びランダムに発生した正の整数からなる群から選ばれうる。ループカウンタLを第三者に秘密とすることで、それぞれの暗号化の方法における秘匿性に加えて、第三者の解読の手間はさらに膨大となりうる。従って、本発明に係る整数を暗号化し復号化する方法においては、元の整数に対して極めて高い秘匿性を与えることが可能になる。
At this time, initial setting of the loop counter L and the like may be appropriately performed.
For example, when the combination of encryption using power remainder and substitution encryption is repeated three times as a whole, the integer 3 may be set in the loop counter L in step S105. The loop counter L may be selected from the group consisting of a predetermined positive integer, a positive integer obtained by encrypting the predetermined positive integer, and a randomly generated positive integer.
The loop counter L is an independent variable for both encryption using power remainder and substitution-type encryption, affects the strength of secrecy by encryption, and may affect calculation time for encryption and decryption. .
In order to ensure the strength of confidentiality for the loop counter L, a lower limit may be set in advance. Furthermore, an upper limit may be set in advance in order to shorten the time for calculation processing of encryption and decryption. Therefore, the value of the loop counter L in the method for encrypting and decrypting an integer according to the present invention is a predetermined positive integer according to a preset lower limit and / or upper limit range, and the predetermined positive integer is encrypted. Selected from the group consisting of a positive integer and a randomly generated positive integer. By keeping the loop counter L secret from a third party, in addition to the secrecy of each encryption method, the effort of the third party to decrypt can be further increased. Therefore, in the method for encrypting and decrypting an integer according to the present invention, it is possible to give extremely high confidentiality to the original integer.
他の、べき剰余を用いる暗号化に含まれる変数であるオフセットT及び任意の整数m、並びに換字式暗号化に含まれる変数である鍵Rも同様に、第三者に秘密となるように選択してもよい。 Similarly, the offset T and the arbitrary integer m included in the encryption using the power residue and the key R which is the variable included in the substitution encryption are also selected so as to be secret from a third party. May be.
後続のステップS10は、前述の図1を用いて示した本発明に係る暗号化の諸段階と同等である。ステップS10に含まれるステップS110からステップS160までの動作により、暗号化された整数Yi及び計算過程で用いた複数の整数部分を相互に関連づける情報が保持される。また、任意にオフセットTを用いて、暗号化された整数Yiをオフセットしてもよい。具体的には、ステップS150の動作により生成したYiに換えて、オフセットした(Yi+T)を用いてもよい。 Subsequent step S10 is equivalent to the stages of encryption according to the present invention shown using FIG. By the operations from step S110 to step S160 included in step S10, information that correlates the encrypted integer Yi and a plurality of integer parts used in the calculation process is held. Further, the encrypted integer Yi may be offset using the offset T arbitrarily. Specifically, instead of Yi generated by the operation in step S150, an offset (Yi + T) may be used.
次いで、本発明に係る整数を暗号化する方法は、ステップS30に含まれる換字式暗号化の諸段階を、順次実施する。ステップS30は、次のS310及びS320の各ステップを含む。まず、本発明に係る整数を暗号化する方法は、ステップS310において、鍵Rで整数Yiを換字式暗号化し、整数Ziを生成する。例えば、整数Ziは、次式で表される。
例えば、英字アルファベットを26進数の1桁の数字として扱い、unix(登録商標)オペレーティング・システムが備える文字列をシーザー暗号化するためのrot13関数等を利用してもよい。また例えば、このrot13関数が有する鍵である、整数の13に換えて任意の1桁の整数を鍵に用い、同様の関数を10進数の整数に対するシーザー暗号化の関数として定義して用いてもよい。
Next, the method for encrypting an integer according to the present invention sequentially performs the steps of substitutional encryption included in step S30. Step S30 includes the following steps S310 and S320. First, in the method for encrypting an integer according to the present invention, in step S310, the integer Yi is substitution-encrypted with the key R to generate the integer Zi. For example, the integer Zi is expressed by the following formula.
For example, an alphabetic alphabet may be treated as a one-digit number of 26 hexadecimal numbers, and a rot13 function or the like for Caesar encryption of a character string provided in a unix (registered trademark) operating system may be used. Further, for example, an arbitrary one-digit integer may be used as a key instead of the integer 13 which is the key of the rot13 function, and the same function may be defined and used as a Caesar encryption function for a decimal integer. Good.
次いで、本発明に係る整数を暗号化する方法は、ステップS320において、必要であれば桁数の情報を保持する。例えば、換字式暗号化により生成した整数Ziの最上位がゼロである場合に、この情報を変換前の整数Yiの桁数として保持してもよい。当該保持した桁数の情報は、後述する復号化の諸段階において生成する整数の確認のために用いられてもよい。すなわち、ステップS320の動作は、前述のステップS160の動作とは異なって、換字式暗号化により生じる桁数の変化等の情報を保持するために用いうる。 Next, the method for encrypting an integer according to the present invention retains information on the number of digits in step S320 if necessary. For example, when the most significant integer Zi generated by substitutional encryption is zero, this information may be held as the number of digits of the integer Yi before conversion. The information on the number of digits held may be used for confirmation of an integer generated at various stages of decoding to be described later. That is, unlike the operation of step S160 described above, the operation of step S320 can be used to hold information such as a change in the number of digits caused by substitutional encryption.
ステップS10及びステップS30を続けて実施した後に、本発明に係る整数を暗号化する方法は、ステップS180において、ループカウンタLをデクリメントする。さらに、ステップS190において、ループカウンタLが0以下であるかを判定する。判定の結果が真であれば終了し、偽であればステップS195に進み、上述の式(XII)から生成した整数ZiをXiとして、ステップS10の諸段階を繰り返す。
なお、繰り返しにおいて、変数A、B、D、Kは同じ値を再利用してもよい。変数E及びFの対も同じ値を再利用してもよいが、より好適には、ループカウンタLの値に依存して変数E及びFの対を変化することにより、第三者による解読をさらに困難にすることが可能になる。
このようにして、ステップS190の判定が真になるまで上述の諸段階を繰り返し、暗号化した整数Ziが得られる。例えば、ループカウンタLを3とした場合には、上述のステップS10及びステップS30からなる諸段階が3回繰り返される。
After performing step S10 and step S30 in succession, the method for encrypting an integer according to the present invention decrements the loop counter L in step S180. In step S190, it is determined whether the loop counter L is 0 or less. If the determination result is true, the process is terminated. If the determination result is false, the process proceeds to step S195, and the steps of step S10 are repeated with the integer Zi generated from the above-described equation (XII) as Xi.
In the repetition, the same values may be reused for the variables A, B, D, and K. The same value may be reused for the pair of variables E and F, but more preferably, the pair of variables E and F is changed depending on the value of the loop counter L so that the decryption by a third party is possible. It becomes possible to make it more difficult.
In this way, the above-described steps are repeated until the determination in step S190 becomes true, and an encrypted integer Zi is obtained. For example, when the loop counter L is set to 3, the steps including the above-described steps S10 and S30 are repeated three times.
従って、本発明に係る整数を暗号化する方法においては、ループカウンタLが0以下となるまで、ステップS10に含まれるべき剰余を用いる暗号化の諸段階、及びステップS30に含まれる換字式暗号化の諸段階が、続けて繰り返して実行される。べき剰余を用いる暗号化の諸段階と換字式暗号化の諸段階とは、全体を入れ替えてもよい。すなわち、ステップS100の変数初期化の後にステップS30に含まれる換字式暗号化の諸段階を実施し、その後にステップS10に含まれるべき剰余を用いる暗号化の諸段階を実施し、ステップS180及びステップS190、適宜ステップS195を実施してもよい。 Therefore, in the method for encrypting an integer according to the present invention, the stages of encryption using the remainder to be included in step S10 and the substitution encryption included in step S30 until the loop counter L becomes 0 or less. These steps are performed repeatedly in succession. The stages of encryption using a power residue and the stages of substitutional encryption may be interchanged. That is, after the variable initialization in step S100, the substitutional encryption steps included in step S30 are performed, and thereafter, the encryption steps using the remainder to be included in step S10 are performed. S190 and step S195 may be performed as appropriate.
このように、本発明に係る整数を暗号化する方法においては、べき剰余を用いる暗号化の諸段階と換字式暗号化の諸段階とを重畳して用いることにより、いずれかの暗号化のみを用いる場合と比較して、極めて高い秘匿性を確保することが可能になる。 Thus, in the method for encrypting an integer according to the present invention, only one of the encryptions can be performed by superimposing the steps of encryption using a power residue and the steps of substitutional encryption. Compared with the case of using it, it becomes possible to ensure extremely high secrecy.
次に、本発明に係る整数を暗号化し復号化する方法の別の実施形態の、復号化の諸段階を説明する。 Next, the steps of decryption of another embodiment of the method for encrypting and decrypting an integer according to the present invention will be described.
本発明に係る整数を暗号化する方法は、図4のステップS205において、変数領域を確保し、ループカウンタLを初期化する。この変数領域の確保は、前述の暗号化の諸段階におけるステップS105と同様でもよく、暗号化及び復号化の諸段階を一つのコンピュータ装置等に内蔵し、共通の変数領域を暗号化及び復号化の両方の諸段階に用いてもよい。ループカウンタLの初期化は、復号化と対応する暗号化におけるループカウンタLの値を繰り返し用いうる。例えば、暗号化においてループカウンタLを3とした場合には、復号化においても同様にループカウンタLを3とする。
次いで、本発明に係る暗号化した整数を復号化する方法は、ステップS40に含まれる換字式暗号を復号化する諸段階、及びステップS20に含まれるべき剰余を用いる復号化の諸段階を実施する。ここで、復号化の対象になる数は、図3を用いて前述した暗号化した整数Ziである。
The method for encrypting an integer according to the present invention secures a variable area and initializes the loop counter L in step S205 of FIG. The securing of the variable area may be the same as that in step S105 in the above-described encryption stages, and the encryption and decryption stages are built in one computer device and the common variable area is encrypted and decrypted. It may be used in both stages. The initialization of the loop counter L can repeatedly use the value of the loop counter L in the encryption corresponding to the decryption. For example, when the loop counter L is set to 3 in encryption, the loop counter L is set to 3 in decryption as well.
Next, the method for decrypting an encrypted integer according to the present invention implements the steps of decrypting the substitution cipher included in step S40 and the steps of decryption using the remainder to be included in step S20. . Here, the number to be decrypted is the encrypted integer Zi described above with reference to FIG.
ステップS40は、S410及びS420の各ステップを含む。ステップS410では、必要であれば整数Ziの桁数の情報が復元される。これは、単に暗号化の過程のステップS320において保持した情報との照合のために行われてもよい。ステップS420においては、換字式暗号の復号化が実施され、暗号化した整数Ziから整数Yiを生成する。例えば、整数Yiは次式により復号化される。
次いで、本発明に係る整数を復号化する方法においては、べき剰余を用いる復号化の諸段階を実施する。ステップS20に含まれるステップS410、ステップS210、及びステップS220は、図2を用いて前述した復号化の諸段階と共通であり説明を省略する。なお、ステップS150においてオフセットした(Yi+T)を用いた場合は、Xnの復号化において、ステップS220の動作に先立って、整数Yiに換えてオフセットを消去した(Yi−T)が用いられる。 Next, in the method for decoding an integer according to the present invention, steps of decoding using a power residue are performed. Step S410, step S210, and step S220 included in step S20 are common to the decoding stages described above with reference to FIG. When (Yi + T) that is offset in step S150 is used, prior to the operation in step S220, (Yi-T) in which the offset is deleted is used instead of the integer Yi in the decoding of Xn.
ステップS40及びステップS20を続けて実施した後に、本発明に係る整数を復号化する方法は、ステップS280において、ループカウンタLをデクリメントする。さらに、ステップS290において、ループカウンタLが0以下であるかを判定する。判定の結果が真であれば終了し、偽であればステップS295に進み、上述の式(XV)から生成した整数XnをZiとして、ステップS40の諸段階を繰り返す。このようにして、ステップS290の判定が真になるまで上述の諸段階を繰り返し、復号化した整数Xnが得られる。例えば、ループカウンタLを3とした場合には、上述のステップS40及びS20からなる諸段階が3回繰り返される。 After performing step S40 and step S20 in succession, the method for decoding an integer according to the present invention decrements the loop counter L in step S280. In step S290, it is determined whether the loop counter L is 0 or less. If the determination result is true, the process is terminated. If the determination result is false, the process proceeds to step S295, and the steps of step S40 are repeated with the integer Xn generated from the above equation (XV) as Zi. In this way, the above-described steps are repeated until the determination in step S290 becomes true, and a decoded integer Xn is obtained. For example, when the loop counter L is set to 3, the steps consisting of the above steps S40 and S20 are repeated three times.
従って、本発明に係る整数を復号化する方法においては、ループカウンタLが0以下となるまで、ステップS40に含まれる換字式暗号を復号化する諸段階、及びステップS20に含まれるべき剰余を用いる復号化の諸段階が、続けて繰り返して実行される。換字式暗号を復号化する諸段階とべき剰余を用いる復号化の諸段階とは、暗号化の諸段階の逆順であればよく、全体を入れ替えてもよい。すなわち、ステップS200の変数初期化の後にステップS20に含まれるべき剰余を用いる復号化の諸段階を実施し、その後にステップS40に含まれる換字式暗号を復号化する諸段階を実施し、ステップS280及びステップS290、適宜ステップS295を実施してもよい。 Therefore, in the method for decrypting an integer according to the present invention, the stages for decrypting the substitution cipher included in step S40 and the remainder to be included in step S20 are used until the loop counter L becomes 0 or less. The decryption steps are performed repeatedly in succession. The steps of decrypting the substitution cipher and the steps of decoding using a power residue may be in the reverse order of the steps of encryption, and the whole may be exchanged. That is, after the variable initialization in step S200, the various stages of decryption using the remainder to be included in step S20 are performed, and then the various stages of decrypting the substitution cipher included in step S40 are performed, and step S280 is performed. Step S290 and step S295 may be performed as appropriate.
このように、本発明に係る整数を復号化する方法においては、換字式暗号を復号化する諸段階とべき剰余を用いる復号化の諸段階とを重畳して用い、対応する暗号化の諸段階により暗号化された整数Ziから、元の整数Xiと等しい整数Xnに復号化することが可能になる。 Thus, in the method of decrypting an integer according to the present invention, the stages of decrypting the substitution cipher and the stages of decryption using a power residue are used in an overlapping manner, and the corresponding stages of encryption are used. It is possible to decrypt the encrypted integer Zi into an integer Xn equal to the original integer Xi.
[個人情報隠蔽手順の形態]
図5に、本発明の一実施形態に係る、整数を暗号化する方法を用いる個人情報隠蔽手順の例を示す。
暗号化手段100は、本発明に係る入力された整数から暗号化した整数を生成する手段である。暗号化手段100は、特定の個人20が有する識別のための数字及び/又は文字を含む識別子等を、整数型の識別子30として受け付ける。例えば、個人20は事業体等に所属する構成員の1人であり、整数型の識別子30は当該事業体において複数の構成員を識別するために適宜用いられる、複数の桁の整数を含む構成員識別子等でありうる。また例えば、整数型の識別子30はクレジットカード番号等の、特定の個人20と関連づけられた個人情報でありうる。典型的には、特定の個人20と整数型の識別子30とは1対1に関連づけられ、他の構成員等とは関連づけられない。また、構成員識別子等が英文字等を含む場合、整数型の識別子30は、英文字及び数字の全体又はその一部をコンピュータ処理可能な文字コードの集まりとして扱い、個々の文字コードを16進法の整数として、整数型の識別子30を構成してもよい。本発明に係る整数を暗号化し復号化する方法においては、このように変換された16進法の整数を暗号化し、当該暗号化した16進法の整数から元のコンピュータ処理可能な文字コードの集まりを復号化しうる。構成員識別子等が画像データの場合についても、16進法の整数の集まりとして元の画像データを扱うことにより、同様に暗号化及び復号化が可能である。
[Personal information hiding procedure]
FIG. 5 shows an example of a personal information concealment procedure using an integer encryption method according to an embodiment of the present invention.
The
暗号化手段100は、受け付けた整数型の識別子30の桁に基づいて適宜分割し、整数部分32、34を生成する。図5には、整数型の識別子30から2個の整数部分32、34が生成されることを示すが、これに限定せず、生成される整数部分の個数は2個以上であれば何個でもよい。好適には、それぞれの整数部分32、34は倍精度型の精度の範囲内にあり、64ビットの2進数を用いて表される整数でありうる。例えば、整数型の識別子30は20桁の10進数であり、暗号化手段100はこれを5桁ごとに4個の10進数に分割し、それぞれの整数部分の桁の情報35を保持しうる。このような桁の分割のためには、例えば、図1を用いて示した実施形態のステップS150の動作及び式(XVII)に示した桁の分割の方法を用いてもよい。それぞれの整数部分の桁の情報35は、式(XVII)に示したように、分割前の整数Xに対して、整数部分であるX15、X10、X5、及びX0のそれぞれが、任意の整数Xの20位から16位、15位から11位、10位から6位、及び5位から1位であることの情報でありうる。
The
識別用途A(122)、識別用途B(124)及び識別用途C(126)は、整数型の識別子30を用いて特定の個人20を識別することが必要な任意の用途でありうる。図1にはこれらの3つの識別用途を図示するが、これらに限定せず、識別用途の種類、個数等は適宜設定しうる具体的には、これらの用途は、特定の個人20による電子メール送受信等を含む事業体内部のコンピュータ・ネットワーク利用又は事業体と関連づけられるオンライン銀行業務又は保険サービス等の利用、あるいは事業体による特定の個人20の業務に係る記録行為等でありうる。それぞれの識別用途A(122)、識別用途B(124)及び識別用途C(126)は、暗号化手段100において互いに他を区別するための情報を含んでもよい。すなわち、識別用途Aの固有情報(62)、識別用途Bの固有情報(64)及び識別用途Cの固有情報(66)等は、互いに他と異なればよい。例えば、これらの識別用途の固有情報は特定の整数の値でもよく、前述の式(XIII)に含まれるN又はEの値として、それぞれ独立して異なる値を用いてもよい。
Identification application A (122), identification application B (124), and identification application C (126) can be any application that requires identification of a particular individual 20 using an
暗号化手段100は、受け付けた整数型の識別子30に対して、識別用途Aの固有情報(62)、識別用途Bの固有情報(64)又は識別用途Cの固有情報(66)を用い、それぞれの識別用途の固有情報ごとに独立して、暗号化計算A(72)、暗号化計算B(74)又は暗号化計算C(76)を実施しうる。当該暗号化計算には、前述のように、整数のべき乗を含む計算のために暗号化手段100が用いるコンピュータ装置等において桁あふれを発生する条件で、式(XIII)の展開形を用いて暗号化した整数を生成する諸段階を含む。当該暗号化計算の結果として、暗号化した整数A(42)、暗号化した整数B(44)又は暗号化した整数C(46)が生成される。
The
生成したそれぞれの暗号化した整数A(42)、暗号化した整数B(44)又は暗号化した整数C(46)のそれぞれは、独立して、対応する識別用途A(122)、識別用途B(124)又は識別用途C(126)のために提供されうる。
例えば、識別用途A(122)が事業体内部のコンピュータ・ネットワーク利用等である場合、本発明に係る暗号化手段100は、特定の個人20を識別するための整数型の識別子30に替えて暗号化した整数A(42)を、情報伝達経路A(82)を介して当該事業体のコンピュータ・ネットワーク132等に提供しうる。情報伝達経路A(82)は例えば当該事業体内のローカルエリアネットワーク等でありうる。
また、例えば、識別用途B(124)が事業体による特定の個人20の業務に係る記録行為等である場合、本発明に係る暗号化手段100は、特定の個人20を識別するための整数型の識別子30に替えて暗号化した整数B(44)を、情報伝達経路B(84)を介して当該事業体の勤務管理記憶装置134等に提供しうる。情報伝達経路B(84)は例えば当該事業体の出入口等に適宜備えられた入構者記録のための端末装置及び記憶装置等でありうる。
Each of the generated encrypted integer A (42), encrypted integer B (44) or encrypted integer C (46) is independently associated with the corresponding identification application A (122), identification application B. (124) or for identification application C (126).
For example, when the identification application A (122) is the use of a computer network inside the business entity, the
Further, for example, when the identification use B (124) is a recording act or the like related to the business of the
これらのコンピュータ処理可能な数値データに限らず、暗号化手段100は、特定の個人20を識別するための整数型の識別子30に替えて暗号化した整数C(46)を、情報伝達経路C(86)を介して不特定の他者136等に提供しうる。情報伝達経路C(86)は、口頭又は文書等を含む任意の形式でもよい。例えば、不特定の他者136は当該事業体と独立して運営される団体加入保険サービス業の受け付け担当者であり、当該事業体の構成員である特定の個人20は、情報伝達経路C(86)として一般公衆回線の電話等を用い、当該団体保健サービスにおいて自己を特定するための情報として、暗号化した整数C(46)を送信しうる。この送信は、通話、ファクシミリ、電子メール等の任意の形態を含む。従って、電話等の通話の音声がたまたま周囲にいる第三者に聞かれてしまう等の状況により、この送信の内容が無関係の第三者に傍受されても、本発明に係る暗号化手段100により暗号化した整数C(46)は、特定の個人20を識別するための整数型の識別子30とは異なる整数であるため、当該第三者は傍受内容から当該整数型の識別子30を知ることができない。すなわち、本発明に係る暗号化手段100を用いることにより、個人情報を隠蔽することが可能になる。
このようにして、本発明に係る暗号化手段100においては、特定の個人20に関連づけられる整数型の識別子30から、識別用途ごとに異なる暗号化した整数を生成し、当該特定の個人20の個人情報を隠蔽しうる。
The
In this way, in the encryption means 100 according to the present invention, an encrypted integer that is different for each identification purpose is generated from the
さらに、本発明に係る暗号化手段100は、特定の識別用途において複数の構成員の識別子を一括して暗号化してもよい。
本発明に係る暗号化手段100は特定の識別用途に対して特定の個人情報を隠蔽しうる。暗号化手段100が受け付ける整数型の識別子30が個々の特定の個人20ごとに異なることにより、別個の整数型の識別子30ごとに、暗号化した整数が生成される。従って、識別用途A(122)、識別用途Aの固有情報(62)及び暗号化計算A(72)が一定であっても、異なる整数型の識別子30を有する事業体内の複数の構成員等は、それぞれが異なる暗号化した整数A(72)を得ることができる。
例えば、事業体のネットワーク管理者等は、識別用途Aの固有情報(62)をネットワーク・メンテナンスの日時等の特定の条件に従って選択することにより、当該事業体の複数の構成員のネットワーク・アカウント情報のそれぞれを別個に一括して暗号化しうる。ネットワーク管理者等は識別用途Aの固有情報(62)を選択する条件を管理することにより、複数の構成員のアカウント情報を一括して暗号化して保持し、管理しうる。さらに式(XVI)及び式(XVII)に含まれる整数Fが第三者に知られにくい又は推定されにくいことにより、この値を知らない第三者に対して明示的なアカウント情報を隠蔽することが可能になる。
Furthermore, the
The encryption means 100 according to the present invention can conceal specific personal information for specific identification applications. Since the
For example, the network administrator of the business entity selects the specific information (62) of the identification use A according to the specific conditions such as the date and time of network maintenance, and thereby the network account information of a plurality of members of the business entity Each of these can be encrypted separately and collectively. The network administrator or the like can manage the conditions for selecting the unique information (62) for the identification use A, thereby collectively storing and managing the account information of a plurality of members. Furthermore, by concealing explicit account information from a third party who does not know this value because the integer F included in the formula (XVI) and formula (XVII) is difficult to be known or estimated by a third party. Is possible.
図5には、特定の個人20から事業体のコンピュータ・ネットワーク132、事業体の勤務管理記憶装置134、又は不特定の他者136等に向けて、本発明に係る暗号化手段100を用いて整数型の識別子30を暗号化して送信することを示すが、送受信の主体を入れ替えても、本発明に係る暗号化手段100を用いることができる。すなわち、事業体のコンピュータ・ネットワーク132に接続されたサーバ装置(図示せず)等が記憶した整数型の識別子30を本発明に係る暗号化手段100への入力として、上述の手順に従って暗号化した整数A(42)等を生成し、特定の個人20に送信してもよい。このようにすることで、事業体等は、構成員の識別情報又は事業に関連する情報等を暗号化し、当該暗号化した識別子等を使用するよう従業員に促して、セキュリティを高めることが可能になる。
In FIG. 5, the encryption means 100 according to the present invention is used from a specific individual 20 toward the
本発明に係る暗号化手段100は、具体的にはパーソナル・コンピュータ等で実行可能な汎用のワークシート等のアプリケーションに内蔵された整数計算ライブラリ等を用いて実施しうる。従って、本発明に係る整数を暗号化し復号化する方法においては、特に専用の計算機等を用意することなく、既存の計算機を用いて社員番号等の暗号化及び復号化を実施することも可能である。さらに、本発明においては、本発明に係る整数を暗号化し復号化する方法によらなければ暗号化又は復号化のいずれかの諸段階における桁あふれが発生して、正確な暗号化及び/又は復号化ができないため、本発明の方法を実施しない第三者に対して構成員の識別子等の個人情報を隠蔽することが可能になる。
Specifically, the
[個人情報隠蔽手順の別の形態]
図6に、本発明の一実施形態に係る、整数を暗号化する方法を用いる個人情報隠蔽手順の別の例を示す。図5と共通する箇所は説明を省略する。
[Another form of personal information hiding procedure]
FIG. 6 shows another example of the personal information hiding procedure using the method of encrypting an integer according to an embodiment of the present invention. Descriptions of parts common to those in FIG. 5 are omitted.
図6においては、暗号化手段100は特定の個人20から受け付けた整数型の識別子30に対して、追加の桁37を適宜追加しうる。この追加の桁は整数型の識別子30と同様に整数でありうる。追加の桁37の桁数は何桁でもよく、例えば2桁、3桁、又は4桁等でもよい。追加の桁37は、整数型の識別子30に対して左側から追加してもよく右側から追加してもよい。あるいは、整数型の識別子30を予め定めた桁において分割し、追加の桁37を挿入してもよく、追加の桁37の追加の態様は適宜設定しうる。また、追加の桁37の値は何でもよく、本発明に係る整数の暗号化及び復号化を利用する事業体又はシステム等により任意に用意されてもよく、あるいは整数型の識別子30から予め定めた手順により生成してもよい。例えば、整数型の識別子30の各桁の数字の和を算出した値の下位2桁等を、追加の桁37としてもよい。さらに、追加の桁37は、識別用途A(122)、識別用途B(124)及び識別用途C(126)等に依存してそれぞれの識別用途ごとに独立して用意されてもよい。
追加の桁37を追加することにより、整数型の識別子30及び追加の桁37に含まれる各桁の数字を含む新たな整数である、桁増しした識別子38が生成されうる。
In FIG. 6, the
By adding the
一実施形態において、桁増しした識別子38は、整数型の識別子30の右に追加の桁37を追加した整数として生成される。例えば、整数型の識別子30が16桁の整数であり、追加の桁37が4桁の整数である場合、桁増しした識別子38は20桁の整数であり、桁増しした識別子38は次式で表される。
追加の桁37を含む桁増しした識別子38に対する暗号化の諸段階は、図1及び図3に示した実施形態のフロー図、又は図5に示した実施形態の識別用途に依存して実施しうる暗号化の手順等と同様である。すなわち、桁増しした識別子38は、暗号化手段100において、例えば20桁の整数として表され、5桁ごとに4個の10進数に分割され、分割されたそれぞれの整数部分どうしを関連づける情報が保持される。次いで、式(XIII)に示したべき剰余を用いる暗号化が実施され、適宜、オフセット、換字式暗号化の重畳が用いられ、暗号化が実施されうる。図6に示す形態の暗号化の諸段階により生成される暗号化した整数は、コンピュータ・ネットワーク132又は勤務管理記憶装置134等を用いてコンピュータ処理可能なデータとして生成してもよく、不特定の他者136が知りうる音声又は出版物等の形態で生成してもよい。
The stages of encryption for the increased
一実施形態において、構成員の生年月日に含まれる数字等を識別子として利用する事業体等は、本発明に係る整数を暗号化し復号化する方法を用い、当該構成員の生年月日に含まれる数字等に追加して、任意の4桁の数字を追加の桁37として組み合わせうる。これにより、生年月日が同一の構成員が複数存在しても、任意の4桁の数字が相互に異なれば、生成する暗号化された数字は互いに異なるので、追加の桁37を用いることにより当該事業体等は暗号化した整数を用いて構成員を識別しうる。
In one embodiment, an entity that uses a number or the like included in a member's date of birth as an identifier is included in the date of birth of the member using the method of encrypting and decrypting an integer according to the present invention. Arbitrary 4-digit numbers can be combined as
このようにして、予め定めた桁数の追加の桁37を追加することにより、本発明に係る暗号化手段100の暗号化の諸段階に入力される整数は、特定の個人20等が有する識別のための情報そのものではなくなる。桁を追加して得られる整数を暗号化することにより、本発明に係る整数の暗号化においては、特定の個人20等の個人情報をさらに隠蔽した暗号化が可能になる。
In this way, by adding the
[個人情報隠蔽手順のさらに別の形態]
図7に、本発明の一実施形態に係る、整数を暗号化する方法を用いる個人情報隠蔽手順のさらに別の例を示す。図5と共通する箇所は説明を省略する。
[Another form of personal information hiding procedure]
FIG. 7 shows still another example of the personal information hiding procedure using the method of encrypting an integer according to an embodiment of the present invention. Descriptions of parts common to those in FIG. 5 are omitted.
図7に示す個人情報隠蔽手順においては、本発明に係る暗号化手段100が、乱数発生手段39及びオフセット情報40を含みうることを示す。
In the personal information concealment procedure shown in FIG. 7, it is shown that the
一実施形態において、本発明に係る暗号化手段100は乱数発生手段39を用いて乱数を発生させ、当該発生した乱数に基づいて、整数型の識別子30を暗号化しうる。具体的には、図1を用いて前述したステップS30に含まれる換字式暗号化の鍵Rの選択に、当該発生した乱数を用いることができる。具体的には、換字式暗号化の鍵Rの選択は、発生した乱数に対して直近の素数を選択してもよい。すなわち、重複無く素数を含む集合から、当該発生した乱数との差が最も小さい素数を選択してもよい。あるいは、換字式暗号化の鍵Rの選択は、重複無く素数を含む集合からそれぞれの要素(すなわち素数)を昇順又は降順に配列した数列を用意し、乱数の上限を当該集合の要素数として、発生した乱数を項番号とする要素(すなわち素数)を当該数列から選択してもよい。これらに限らず、乱数と素数の関連づけは適宜設計しうる。
In one embodiment, the
別の実施形態において、本発明に係る暗号化手段100はオフセット情報40を用いて整数型の識別子30をオフセットした後に、図1又は図3を用いて示した暗号化の諸段階を実施しうる。すなわち、本発明に係る暗号化手段100は、整数型の識別子30に整数型の所定の定数を加算又は減算しうる。この加算又は減算される所定の定数は、元の整数への復号化の段階において減算又は加算されることにより、整数型の識別子30が正しく復元されうる。オフセット情報40は定数に限らず、本発明に係る暗号化手段100が一つの整数型の識別子30を受け付けて動作するごとに、毎回異なる値を選択して用いてもよい。この異なる値の選択において、上述の乱数発生手段39を用いてもよい。
In another embodiment, the encryption means 100 according to the present invention may perform the steps of encryption shown in FIG. 1 or FIG. 3 after offsetting the
また別の実施形態において、本発明に係る暗号化手段100は乱数発生手段39を用いて乱数を発生させ、当該発生した乱数に基づいて、図3に示したステップS190のループカウンタLを選択してもよい。図4に示したステップS290のループカウンタLは、図3に示したステップS190のループカウンタLと同一の値でありうる。すなわち、ループカウンタLは、所定の正の整数、前記所定の正の整数を暗号化した正の整数、及びランダムに発生した正の整数からなる群から選ばれうる。
ループカウンタLは、暗号化の強度を確保するために、予め下限を設定してもよい。また、暗号化及び復号化の計算処理のための時間を短縮するために、予め上限を設定してもよい。従って、本発明に係る整数を暗号化し復号化する方法におけるループカウンタLの値は、予め設定された下限及び/又は上限の範囲に従って、所定の正の整数、前記所定の正の整数を暗号化した正の整数、及びランダムに発生した正の整数からなる群から選ばれうる。このように、べき剰余を用いる暗号化及び換字式暗号化のいずれとも独立した変数でありうるループカウンタLを秘密とすることで、第三者の解読の手間はさらに膨大となりうる。
In another embodiment, the
The loop counter L may set a lower limit in advance in order to ensure the strength of encryption. Further, an upper limit may be set in advance in order to shorten the time for calculation processing of encryption and decryption. Therefore, the value of the loop counter L in the method for encrypting and decrypting an integer according to the present invention is a predetermined positive integer according to a preset lower limit and / or upper limit range, and the predetermined positive integer is encrypted. Selected from the group consisting of a positive integer and a randomly generated positive integer. Thus, by making the loop counter L, which can be a variable independent of both the encryption using the power residue and the substitutional encryption, the trouble of decryption by a third party can be further increased.
さらに別の実施形態において、本発明に係る暗号化手段100は、公開鍵暗号化技術における公開鍵に対して、オフセット情報40を用いてオフセットした公開鍵を生成してもよい。具体的には、式(I)に含まれる変数Eを決定した後に、当該変数Eに整数型の所定の定数を加算又は減算して公開鍵としてもよい。従って、この整数型の所定の定数が加算又は減算されていることを知らない第三者が解読のために当該公開鍵を用いることは無駄な手順となる。従って、オフセット情報40を公開鍵に適用することにより、暗号化された整数等の情報の秘匿性はさらに高められる。
In still another embodiment, the
また別の実施形態において、本発明に係る暗号化手段100は、上述の乱数発生手段39及びオフセット情報40の両者を用いて、整数型の識別子30を暗号化してもよい。
In another embodiment, the
図7においては、識別用途A(122)、識別用途B(124)及び識別用途C(126)等のそれぞれに対して暗号化の過程を一つの矢印として表しているが、図1を用いて前述したように、本発明に係る暗号化の方法においては、それぞれの識別用途ごとに、べき剰余を用いる暗号化及び換字式暗号化が所定の繰り返し回数だけ交互に重畳されうる。それぞれの識別用途ごとに生成した、暗号化した整数A(42)、暗号化した整数B(44)又は暗号化した整数C(46)は、乱数発生手段39を用いて発生した乱数の情報、べき剰余を用いる暗号化の情報、及び換字式暗号化の情報の全てを正確に用いなければ、いずれも正しく復号化することができない。従って、本発明の実施の形態における個人情報隠蔽手順においては、正確な復号化のための情報の種類をより多く必要とすることで、周知の公開鍵暗号化技術等に比較してさらに秘匿性を高めることが可能になる。 In FIG. 7, the encryption process is represented as one arrow for each of the identification application A (122), the identification application B (124), the identification application C (126), etc., but FIG. As described above, in the encryption method according to the present invention, for each identification application, encryption using a power residue and substitution-type encryption can be alternately superimposed for a predetermined number of repetitions. The encrypted integer A (42), the encrypted integer B (44) or the encrypted integer C (46) generated for each identification application is information on random numbers generated using the random number generating means 39, If all of the encryption information using the power residue and the substitutional encryption information are not used accurately, neither can be decrypted correctly. Therefore, the personal information concealment procedure according to the embodiment of the present invention requires more types of information for accurate decryption, which further enhances the secrecy compared to known public key encryption technology and the like. Can be increased.
[復号化の手順の例]
図8に、本発明の一実施形態に係る、暗号化した整数の復号化手順の例を示す。図8においては、説明の簡潔化のためにコンピュータ処理可能な数値に関し、図5を示して説明した暗号化手段100が生成した暗号化した整数A(42)及び/又は暗号化した整数B(44)に対する復号化を説明するが、通話又は文書等の形態で伝達しうる暗号化した整数の復号化についても同様である。図5又は図6と共通する箇所は説明を省略する。
[Example of decryption procedure]
FIG. 8 shows an example of an encrypted integer decryption procedure according to an embodiment of the present invention. In FIG. 8, with respect to numerical values that can be processed by a computer for simplification of explanation, an encrypted integer A (42) and / or an encrypted integer B (generated by the encryption means 100 shown in FIG. 44), the same applies to decryption of an encrypted integer that can be transmitted in the form of a call or a document. Descriptions of portions common to FIG. 5 or FIG. 6 are omitted.
図8は、本発明に係る復号化手段110が、暗号化した整数A’(52)及び/又は暗号化した整数B’(54)を受け付け、整数型の復号化した識別子41を生成することを示す。ここで、暗号化した整数A’(52)は、整数型の識別子30に対して暗号化手段100が暗号化計算A(72)を用いて生成した暗号化した整数A(42)が、情報伝達経路A(82)を介してコンピュータ・ネットワーク132等に伝達された後に、さらに情報伝達経路A’(102)を介して本発明に係る復号化手段110に伝達したものでありうる。従って、整数型の数値としては、暗号化した整数A’(52)は対応する暗号化した整数A(42)と同一でありうる。
同様に、暗号化した整数B’(54)は暗号化した整数B(44)と同一でありうる。
FIG. 8 shows that the decryption means 110 according to the present invention accepts an encrypted integer A ′ (52) and / or an encrypted integer B ′ (54), and generates an integer-type decrypted
Similarly, the encrypted integer B ′ (54) may be the same as the encrypted integer B (44).
本発明に係る復号化手段110は、暗号化した整数A’(52)及び暗号化した整数B’(54)に対して、図1又は図3に示したステップS200からステップS220の諸段階を実施し、整数型の復号化した識別子41を生成しうる。
暗号化した整数A’(52)は、暗号化手段100による暗号化計算A(72)において識別用途A(122)の固有情報(62)を用いて生成した暗号化した整数A(42)でありうる。当該固有情報(62)は、前述の式(VIII)に含まれるN又はEの値、及びKの値でありうるので、例えば、暗号化計算A(72)において用いられたEの値及びKの値を固有情報(92)として復号化計算A(112)に用いうる。
同様に、暗号化計算B(74)において用いられたEの値及びKの値を固有情報(94)として復号化計算B(114)に用いうる。
固有情報(92)及び/又は固有情報(94)は、予め復号化手段110が記憶してもよく、予め定められた手順に従って暗号化手段100又は復号化手段110の一方又は両方が生成してもよく、適宜設定しうる。
The decryption means 110 according to the present invention performs the steps from step S200 to step S220 shown in FIG. 1 or FIG. 3 on the encrypted integer A ′ (52) and the encrypted integer B ′ (54). In practice, an integer-type decrypted
The encrypted integer A ′ (52) is an encrypted integer A (42) generated by using the unique information (62) of the identification application A (122) in the encryption calculation A (72) by the
Similarly, the value of E and the value of K used in the encryption calculation B (74) can be used as the unique information (94) in the decryption calculation B (114).
The unique information (92) and / or the unique information (94) may be stored in advance by the decryption means 110, and generated by one or both of the encryption means 100 and the decryption means 110 according to a predetermined procedure. It can be set as appropriate.
図8は、情報伝達経路A(82)、情報伝達経路B(84)、情報伝達経路A’(102)及び情報伝達経路B’(104)としてコンピュータ処理可能な数値を伝達しうるネットワーク等の情報伝達経路を示すが、これらに限らず、音声又は文書等を含む任意の伝達経路又は伝達手段を介して、暗号化した整数を暗号化手段100から復号化手段110に向かって伝達しうる。
本発明に係る整数を暗号化し復号化する方法には、これらの伝達経路又は伝達手段を介して伝達される整数が暗号化されていること、桁あふれを発生する条件での暗号化に用いた特定の数値で復号化する本発明の方法によらなければ元の整数を復号化することはできないという特徴がある。従って、本発明においては、伝達経路又は伝達手段等にアクセスする可能性のある第三者に対して個人情報を隠蔽し、所定の固有情報及び所定の暗号化及び所定の復号化の方法を用いる本発明の実施手段等のみが当該個人情報を正確に復号化することが可能になる。
FIG. 8 shows a network or the like that can transmit computer-processable numerical values as the information transmission path A (82), the information transmission path B (84), the information transmission path A ′ (102), and the information transmission path B ′ (104). Although an information transmission path is shown, the encrypted integer can be transmitted from the encryption means 100 to the decryption means 110 via any transmission path or transmission means including, but not limited to, audio or a document.
In the method of encrypting and decrypting integers according to the present invention, the integers transmitted through these transmission paths or means are encrypted, and used for encryption under conditions that cause overflow. The original integer cannot be decoded unless the method of the present invention for decoding with a specific numerical value is used. Accordingly, in the present invention, personal information is concealed from a third party who may access a transmission path or a transmission means, and predetermined specific information and predetermined encryption and decryption methods are used. Only the implementation means of the present invention can correctly decrypt the personal information.
図8には、暗号化手段100及び復号化手段110のそれぞれを別個に示したが、これに限らず、暗号化手段100及び復号化手段110を一体の装置としてもよい。暗号化した整数を伝達する伝達経路又は伝達手段等の形態は、コンピュータ・ネットワークでもよく、一般公衆回線の電話を含む通話、ファクシミリ、電子メール等の形態でもよく、任意に設定しうる。それぞれの伝達経路又は伝達手段に依存して、一つの整数型の識別子30から独立して別個に暗号化した整数を生成してもよく、さらに図4に示した追加の桁37、図7に示した乱数発生手段39、オフセット情報40、又はこれらの組み合わせを適宜用いて整数型の識別子30を加工した後に暗号化してもよい。このようにして、本発明に係る整数を暗号化し復号化する方法においては、構成員識別子等の一つの識別子から、当該識別子を用いる各種の情報伝達手段ごとに、個人情報を隠蔽した整数を識別子に替えて提供しうる。暗号化又は復号化の諸段階はコンピュータ装置等を用いて自動的に実施しうるので、本発明に係る方法のユーザはこれらの手順を特に意識することなく、自己の個人情報を隠蔽した整数を自己の識別子に替えて用いうる。
Although FIG. 8 shows the
図8には、整数型の識別子30が暗号化され、事業体のコンピュータ・ネットワーク132又は事業体の勤務管理記憶装置134等に向けて送信された後に、上述の用に復号化されうることを示すが、送受信の主体を入れ替えても、本発明に係る復号化手段110を用いることができる。すなわち、事業体のコンピュータ・ネットワーク132に接続されたサーバ装置(図示せず)等が記憶した整数型の識別子30を本発明に係る暗号化手段100で暗号化して構成員等に送信し、構成員等は上述の手順に従って、本発明に係る復号化手段110を用いて整数型の識別子30を復号化してもよい。
FIG. 8 shows that the
[実施例1:ワークシートの内部関数を用いて整数を暗号化する例]
図9に、本発明の一実施形態に係る、暗号化の諸段階をスプレッドシート形式の計算アプリケーション・パッケージを用いて実装する例を示す。スプレッドシート形式の計算アプリケーション・パッケージとしてはマイクロソフト社製エクセル2007等を用いうるが、これに限らず、整数のべき乗及び剰余計算を実施可能なパッケージ・ソフトウェア等を任意に用いうる。
図9に示す整数の暗号化計算ワークシート200は、複数の行及び列の形態に配列されるセルを含む、スプレッドシート形式の計算アプリケーションのデータでありうる。整数の暗号化計算ワークシート200に含まれる個々のセルは、1組の行番号及び列番号を用いて特定しうる。
[Example 1: Example of encrypting integer using internal function of worksheet]
FIG. 9 shows an example of implementing the stages of encryption using a spreadsheet-type calculation application package according to an embodiment of the present invention. As a spreadsheet application software package, Microsoft Excel 2007 or the like can be used. However, the present invention is not limited to this, and package software that can perform integer power and remainder calculation can be arbitrarily used.
The integer cryptographic calculation worksheet 200 shown in FIG. 9 may be spreadsheet application data including cells arranged in a plurality of rows and columns. Individual cells included in the integer cryptographic calculation worksheet 200 may be identified using a set of row and column numbers.
整数の暗号化計算ワークシート200に含まれる、2行1列から15行1列の領域、及び2行2列から15行(2n+1)列の領域は、図3に示したステップS105からステップS195における暗号化の諸段階に係る計算のために用いられうる。
具体的には、2行1列から15行1列の領域は、図3に示したステップS105における変数領域を確保するために用いられる。2行2列から15行(2n+1)列の領域は、図3に示したステップS10及びステップS30の繰り返しのために用いられる。図9には、変数A、B、D、Kはそれぞれ同じ値が繰り返して用いられ、変数E、F、Tはループカウンタに依存して繰り返しの各回において変化する例を示す。
The region of 2 rows and 1 column to 15 rows and 1 column and the region of 2 rows and 2 columns to 15 rows (2n + 1) columns included in the integer encryption calculation worksheet 200 are represented by steps S105 to S195 shown in FIG. Can be used for calculations related to encryption stages in
Specifically, the area from 2 rows and 1 column to 15 rows and 1 column is used to secure a variable area in step S105 shown in FIG. The region of 2 rows and 2 columns to 15 rows (2n + 1) columns is used for repeating step S10 and step S30 shown in FIG. FIG. 9 shows an example in which the same values are repeatedly used for the variables A, B, D, and K, and the variables E, F, and T change at each repetition depending on the loop counter.
例示的実施形態において、2行1列のセルは暗号化の入力Xiを記憶するために用いうる。1列の他のセルには、べき剰余を用いる復号化における素数A及びB、(A−1)と(B−1)との積D及び最小公倍数K、公開鍵及び秘密鍵の対でありうる整数Ei及びFi、換字式暗号化鍵Ri、オフセットTi、ループカウンタL等が適宜定義され得る。 In an exemplary embodiment, a 2 × 1 cell may be used to store the encryption input Xi. The other cells in one column are a pair of prime numbers A and B, a product D of (A-1) and (B-1) and a least common multiple K, a public key and a secret key in decoding using a power residue. Integers Ei and Fi, substitution type encryption key Ri, offset Ti, loop counter L, and the like can be appropriately defined.
すなわち、3行1列のセル及び4行2列のセルは、2個の素数A及びBを記憶するために用いうる。また、A及びBの積が入力Xiを超えることの判定を、例えば3行2列のセルを用いて表示してもよい。このA及びBの積は、前述の式(XIII)における積Nであり、Nは本発明に係る整数の暗号化に含まれる剰余計算の底でありうる。 That is, a cell of 3 rows and 1 column and a cell of 4 rows and 2 columns can be used to store two prime numbers A and B. The determination that the product of A and B exceeds the input Xi may be displayed using, for example, a cell with 3 rows and 2 columns. The product of A and B is the product N in the above-described formula (XIII), and N may be the base of the remainder calculation included in the integer encryption according to the present invention.
さらに、本発明の実施形態係る整数の暗号化計算ワークシート200は、積Nの展開形を、配列の形態を用いて3行2列に記憶してもよい。例えば、積Nは20桁の整数として扱われ、積Nの20位から16位、15位から11位、10位から6位、及び5位から1位のそれぞれを、5桁の10進数として表されるN15、N10、N5及びN0からなる4個の整数部分に展開されてもよい。3行2列のセルには、これらの集合{N15,N10,N5,N0}が配列の形態で記憶されてもよい。 Furthermore, the integer encryption calculation worksheet 200 according to the embodiment of the present invention may store the expanded form of the product N in 3 rows and 2 columns using an array form. For example, the product N is treated as a 20-digit integer, and the 20th to 16th, 15th to 11th, 10th to 6th, and 5th to 1st positions of the product N are each represented as a 5-digit decimal number. It may be expanded into four integer parts consisting of N 15 , N 10 , N 5 and N 0 represented. These sets {N 15 , N 10 , N 5 , N 0 } may be stored in the form of an array in a 3 × 2 cell.
7行1列のセルは、(A−1)及び(B−1)の積であるD値を記憶するために用いうる。8行1列のセルは、(A−1)と(B−1)の最小公倍数であるK値を記憶するために用いうる。D値及び/又はK値は、上述の積Nと同様に、展開された整数部分の集合でもよい。9行1列のセルは、D値又はK値と素である整数Eiを記憶するために用いうる。この整数Eiは、公開鍵暗号化技術における公開鍵として用いうる。11行1列のセルは、前述の式(XVI)を成立する整数Fを記憶するために用いうる。この整数Fiは、公開鍵暗号化技術における秘密鍵として用いうる。13行1列のセルは、換字式暗号化の鍵Riを、14行1列のセルはオフセットTiを、15行1列はループカウンタLを記憶するために用いうる。 The cell in 7 rows and 1 column can be used to store a D value that is the product of (A-1) and (B-1). The cell of 8 rows and 1 column can be used to store a K value that is the least common multiple of (A-1) and (B-1). The D value and / or K value may be a set of expanded integer parts, like the product N described above. A cell of 9 rows and 1 column can be used to store a D value or K value and a prime integer Ei. This integer Ei can be used as a public key in public key encryption technology. The cell of 11 rows and 1 column can be used to store the integer F that satisfies the above formula (XVI). This integer Fi can be used as a secret key in public key encryption technology. The cell of 13 rows and 1 column can be used to store the substitution encryption key Ri, the cell of 14 rows and 1 column can store the offset Ti, and the 15 rows and 1 column can store the loop counter L.
10行の各セルは、整数Eiによるべき乗がワークシート内蔵の整数演算においてオーバーフローを発生しているか否かを表示するために用いうる。例えば、当該オーバーフローが発生することは、整数Eiによるべき乗の値がスプレッドシート形式の計算アプリケーション・パッケージにおいて取り扱い可能な範囲を超えていることを表す「エラー」等の文字等により表されてもよく、又は当該エラーに対応して論理値の偽を表す数値等を表示してもよい。同様に、12行の各セルは、整数Fiによるべき乗がワークシート内蔵の整数演算においてオーバーフローを発生しているか否かを表示するために用いうる。これらの整数Eiによるべき乗又は整数Fiによるべき乗がオーバーフローを発生することを条件として、本発明に係るべき剰余を用いる暗号化の方法は、式(XX)に示した展開形を用いて正確なべき剰余を得ることができる。具体的には、1行2列の元の整数Xiに対して、14行2列のオフセットT1を用いてオフセットした整数から、暗号化した整数として2行2列に整数Y1を得ることができる。このときに、当該べき剰余を用いる暗号化から生じる公開鍵E1及び秘密鍵F1が、それぞれ9行2列、11行2列に記憶される。 Each cell in the 10 rows can be used to display whether or not the power of the integer Ei has caused an overflow in the integer operation incorporated in the worksheet. For example, the occurrence of the overflow may be represented by characters such as “error” indicating that the power value of the integer Ei exceeds the range that can be handled in the spreadsheet-type calculation application package. Alternatively, a numerical value or the like representing a false logical value may be displayed in response to the error. Similarly, each cell in the 12th row can be used to display whether or not the power of the integer Fi has overflowed in the integer operation built in the worksheet. On the condition that the power of the integer Ei or the power of the integer Fi generates an overflow, the encryption method using the power residue according to the present invention should be accurate using the expansion shown in the formula (XX). You can get a surplus. Specifically, it is possible to obtain an integer Y1 in 2 rows and 2 columns as an encrypted integer from an integer offset using an offset T1 of 14 rows and 2 columns with respect to the original integer Xi of 1 row and 2 columns. . At this time, the public key E1 and the secret key F1 resulting from the encryption using the power residue are stored in 9 rows and 2 columns and 11 rows and 2 columns, respectively.
なお、添え字iを伴う変数は配列でもよい。すなわち、1個のセルに割り当てられるEi、Fi、Ri及びTiのそれぞれは、{E1,E2,…,En},{F1,F2,…,Fn},{R1,R2,…,Rn},{T1,T2,…,Tn}等の配列又は配列の形式を用いる数列(適宜、漸化式又は任意の関数により各項を定義してもよい)でもよく、行ごとにこれらの配列に含まれる個々の整数を取り出して用いてもよい。 The variable with the subscript i may be an array. That is, each of Ei, Fi, Ri, and Ti assigned to one cell is {E1, E2,..., En}, {F1, F2,..., Fn}, {R1, R2,. {T1, T2, ..., Tn}, etc., or a sequence using an array format (each term may be defined by a recurrence formula or an arbitrary function as appropriate) may be included in these arrays for each row. Individual integers may be extracted and used.
さらなる例示的実施形態において、2列は、べき剰余を用いる暗号化のために用いられる。図9においては、2行2列には、べき剰余を用いる暗号化を1回実施して得られる整数Y1が記憶される。3列は、換字式暗号化のために用いられ、図9においては、2行3列には、Y1から換字式暗号化により生じる、変換された整数Z1が記憶される。
他の2列のセルには、暗号化の諸段階から生じる変数の値が適宜記憶される。例えば、9行2列には公開鍵E1、11行2列には秘密鍵F1、14行2列にはオフセットT1がそれぞれ記憶される。同様に、他の3列のセルに関しては、13行3列には換字式暗号化の鍵R1、15行3列には1回デクリメントされたループカウンタ(L−1)がそれぞれ記憶される。
このようにして、入力Xiから、2列にはべき剰余を用いる暗号化における変換後の整数Y1、他の変数E1、F1、及びT1が記憶され、3列には整数Y1から変換される整数Z1、他の変数R1、及びデクリメントされたループカウンタ(L−1)が記憶される。
In a further exemplary embodiment, two columns are used for encryption with a power residue. In FIG. 9, an integer Y1 obtained by performing encryption using a power residue once is stored in 2 rows and 2 columns. Three columns are used for substitution encryption. In FIG. 9, a converted integer Z1 generated by substitution encryption from Y1 is stored in two rows and three columns.
The values of variables resulting from the various stages of encryption are stored appropriately in the other two columns of cells. For example, the public key E1 is stored in the 9th and 2nd column, the secret key F1 is stored in the 11th and 2nd column, and the offset T1 is stored in the 14th and 2nd column. Similarly, for the other three columns of cells, the substitution encryption key R1 is stored in row 13 and column 3, and the loop counter (L-1) decremented once is stored in row 15 and column 3.
In this way, the converted integer Y1 and other variables E1, F1, and T1 in the encryption using the power residue are stored in the second column from the input Xi, and the third column is an integer converted from the integer Y1. Z1, the other variable R1, and the decremented loop counter (L-1) are stored.
なお、一つのセルに配列等を定義して複数の定数、変数又は計算式を任意に含みうることは当技術分野において公知である。すなわち、2行1列のセルは1個の整数Xiを記憶してもよく、配列の形式を用いて数列{X1,X2,X3,…,Xk}を記憶してもよい。ここに、Xkは、べき剰余を用いる暗号化における鍵の絶対値に依存して定義される、暗号化可能な整数の個数であり、この数列に含まれる整数の個数は最小公倍数Kと同じ値でもよく、当該個数はK−1,K−2,K−3等でもよく任意に設定しうる。数列{X1,X2,X3,…,Xk}の初項X1は0でもよく、1でもよく、2以上の整数でもよい。例えば、初項の値を整数2として、数列に含まれる整数の個数をK−1個とする場合は、全体としてこの数列にはK−2個の整数が含まれうる。本発明に係る整数を暗号化する方法は、このようなK−2個の整数のそれぞれを別個に暗号化し、暗号化した数列を得ることができるが、これに限定せずに、暗号化した数列に含まれる整数の個数は適宜設計しうる。従って、本発明のユーザは、予め計算された暗号化した数列から適宜抽出して暗号化した整数を用いることも可能である。
It is known in the art that an array or the like can be defined in one cell and a plurality of constants, variables, or calculation formulas can be arbitrarily included. That is, a cell of 2 rows and 1 column may store one integer Xi, or may store a number sequence {X1, X2, X3,..., Xk} using an array format. Here, Xk is the number of encryptable integers defined depending on the absolute value of the key in encryption using a power residue, and the number of integers included in this sequence is the same value as the least common multiple K Alternatively, the number may be K-1, K-2, K-3, or the like, and can be arbitrarily set. The first term X1 of the sequence {X1, X2, X3,..., Xk} may be 0, 1 or an integer of 2 or more. For example, when the value of the first term is an
次いで、本発明に係る整数を暗号化する方法は、換字式暗号化を用いて、2行2列に記憶された整数Y1を、2行3列の整数Z1に変換する。この変換は、換字式暗号化の鍵として13行3列のR1を用いうる。
換字式暗号化により整数Z1が得られた後に、本発明に係る整数を暗号化する方法は、15行1列のループカウンタLをデクリメントし、15行3列に当該デクリメントした値である(L−1)を記憶する。当該デクリメントした値がゼロ以下である場合は、暗号化の諸段階を終了させる。当該デクリメントしたループカウンタの値がゼロより大きければ、2行3列のZ1の値を上述の2行1列のXiの値のように取り扱い、べき剰余を用いる暗号化の諸段階及び換字式暗号化の諸段階を繰り返し、2行5列にZ2として暗号化した整数を得られる。
Next, the method of encrypting an integer according to the present invention converts the integer Y1 stored in 2 rows and 2 columns into an integer Z1 of 2 rows and 3 columns using substitution-type encryption. This conversion can use R1 in 13 rows and 3 columns as a key for substitutional encryption.
After the integer Z1 is obtained by substitutional encryption, the method of encrypting an integer according to the present invention is the value obtained by decrementing the loop counter L of 15 rows and 1 column and decrementing it to 15 rows and 3 columns (L -1) is stored. If the decremented value is less than or equal to zero, the encryption steps are terminated. If the value of the decremented loop counter is greater than zero, the value of Z1 in 2 rows and 3 columns is treated like the value of Xi in 2 rows and 1 column, the various stages of encryption using the power residue, and the substitution cipher By repeating the steps, the encrypted integer is obtained as Z2 in 2 rows and 5 columns.
このようにして、本発明に係る整数を暗号化する方法は、べき剰余を用いる暗号化及び換字式暗号化の組み合わせを繰り返し実施し、ループカウンタがゼロ以下となることを条件として、2行(2n+1)列に整数Znとして暗号化した整数が得られる。 In this way, the method for encrypting an integer according to the present invention repeatedly performs a combination of encryption using a power residue and substitution-type encryption, and the condition that the loop counter becomes zero or less is 2 lines ( In the 2n + 1) column, an integer encrypted as an integer Zn is obtained.
[実施例2:ワークシートの内部関数を用いて整数を復号化する例]
図10に、本発明の一実施形態に係る、復号化の諸段階をスプレッドシート形式の計算アプリケーション・パッケージを用いて実装する例を示す。図10に示す整数の復号化計算ワークシート220は、複数の行及び列の形態に配列されるセルを含む、スプレッドシート形式の計算アプリケーションのデータでありうる。整数の復号化計算ワークシート220に含まれる個々のセルは、1組の行番号及び列番号を用いて特定しうる。
[Example 2: Decoding an integer using an internal function of a worksheet]
FIG. 10 illustrates an example of implementing the decryption stages using a spreadsheet-style calculation application package according to one embodiment of the present invention. The integer decoding calculation worksheet 220 shown in FIG. 10 may be spreadsheet application data including cells arranged in a plurality of rows and columns. Individual cells included in the integer decryption calculation worksheet 220 may be identified using a set of row and column numbers.
整数の復号化計算ワークシート220に含まれる、2行1列から15行1列の領域、及び2行2列から15行(2n+1)列の領域は、図4に示したステップS205からステップS295における暗号化の諸段階に係る計算のために用いられうる。
具体的には、2行1列から15行1列の領域は、図3に示したステップS205における変数領域の確保及びループカウンタLの初期化のために用いられる。2行2列から15行(2n+1)列の領域は、図4に示したステップS40及びステップS20の繰り返しのために用いられる。
The region of 2 rows and 1 column to 15 rows and 1 column and the region of 2 rows and 2 columns to 15 rows (2n + 1) columns included in the integer decryption calculation worksheet 220 are the steps S205 to S295 shown in FIG. Can be used for calculations related to encryption stages in
Specifically, the area from 2
例示的実施形態において、2行1列のセルは復号化の入力Ziを記憶するために用いうる。1列の他のセルには、前述の図9を用いて示したべき剰余を用いる復号化における変数と同一である。すなわち、復号化の入力Ziに対応する暗号化の過程において、すでに用いられた値をそれぞれの変数A,B,D,K,Ei、Fi、Ri,Tiに用いることができる。従って、復号化においては、対応する暗号化の変数の値を再利用し、入力Ziに対応するループカウンタLを初期化してもよい。 In an exemplary embodiment, a 2 × 1 cell may be used to store the decoding input Zi. The other cells in one column are the same as the variables in the decoding using the remainder shown in FIG. That is, in the process of encryption corresponding to the decryption input Zi, the values already used can be used for the respective variables A, B, D, K, Ei, Fi, Ri, Ti. Therefore, in decryption, the value of the corresponding encryption variable may be reused to initialize the loop counter L corresponding to the input Zi.
本発明に係る整数の復号化においては、対応する暗号化と逆の手順により、暗号化された整数から元の整数を復号化する。例えば、べき剰余及び換字式の暗号化がこの順番の組み合わせで繰り返された場合、対応する復号化は、換字式及びべき剰余の復号化をこの順番で同じ回数だけ繰り返す。 In the decryption of the integer according to the present invention, the original integer is decrypted from the encrypted integer by a procedure reverse to the corresponding encryption. For example, when power residue and substitution encryption are repeated in this order combination, the corresponding decryption repeats substitution and power residue decryption the same number of times in this order.
まず、換字式復号化を用いて、入力Ziを変換する手順を説明する。換字式復号化においては、2行1列に記憶された整数Znを、2行2列の整数Ynに変換する。この変換のための換字式暗号化の鍵は13行2列のRnであり、当該Rnは対応する暗号化に用いられた、図9の整数の暗号化計算ワークシート200における13行(2n+1)列のRnと同一でありうる。 First, a procedure for converting the input Zi using substitution decoding will be described. In substitution decoding, the integer Zn stored in 2 rows and 1 column is converted into an integer Yn in 2 rows and 2 columns. The key for substitution encryption for this conversion is Rn in 13 rows and 2 columns, and the Rn is 13 rows (2n + 1) in the integer encryption calculation worksheet 200 of FIG. 9 used for the corresponding encryption. Can be the same as the Rn in the column.
次いで、本発明に係る整数の復号化において、2行2列のYnに対してべき剰余を用いる復号化を実施し、さらにオフセットを消去して、2行3列に整数Xn−1が得られる。べき剰余の指数には11行3列のFnが用いられ、オフセットの値としては14行3列のTnが用いられる。本発明に係るべき剰余を用いる復号化の方法は、式(XX)に示した展開形を用いて正確なべき剰余を得ることができる。 Next, in the decoding of the integer according to the present invention, decoding using a power residue is performed on Yn of 2 rows and 2 columns, and the offset is eliminated to obtain the integer Xn-1 in 2 rows and 3 columns. . Fn of 11 rows and 3 columns is used as the exponent of the power residue, and Tn of 14 rows and 3 columns is used as the offset value. The decoding method using the power residue according to the present invention can obtain an accurate power residue by using the expanded form shown in Expression (XX).
べき剰余を用いる復号化により整数Xn−1が得られた後に、本発明に係る整数を復号化する方法は、15行1列のループカウンタLをデクリメントし、15行3列に当該デクリメントした値である(L−1)を記憶する。当該デクリメントした値がゼロ以下である場合は、復号化の諸段階を終了させる。当該デクリメントしたループカウンタの値がゼロより大きければ、2行3列のXn−1の値を上述の2行1列のZiの値のように取り扱い、換字式復号化の諸段階及びべき剰余を用いる復号化の諸段階を繰り返し、2行5列にXn−2として復号化した整数を得られる。 After the integer Xn−1 is obtained by decoding using the power residue, the method of decoding the integer according to the present invention decrements the loop counter L of 15 rows and 1 column, and the value decremented to 15 rows and 3 columns. (L-1) is stored. If the decremented value is less than or equal to zero, the decoding steps are terminated. If the value of the decremented loop counter is greater than zero, the value of Xn-1 in 2 rows and 3 columns is treated like the value of Zi in 2 rows and 1 column, and the stages of substitution decoding and the power residue are determined. The decoding steps used are repeated to obtain an integer decoded as Xn-2 in 2 rows and 5 columns.
10行及び12行の各セルは、暗号化と同様に、整数Ei及び整数Fiによるべき乗がワークシート内蔵の整数演算においてオーバーフローを発生しているか否かを表示するために用いうる。これらの整数Eiによるべき乗又は整数Fiによるべき乗がオーバーフローを発生することを条件として、本発明に係るべき剰余を用いる復号化の方法は、式(VII)に示した展開形を用いて変換前の整数を展開し、正確なべき剰余を得ることができる。 Each cell in the 10th and 12th rows can be used to display whether or not the power of the integer Ei and the integer Fi has overflowed in the integer operation incorporated in the worksheet, as in the encryption. On the condition that the power by the integer Ei or the power by the integer Fi generates an overflow, the decoding method using the power residue according to the present invention uses the expansion form shown in Equation (VII) before conversion. You can expand integers to get the exact power remainder.
さらなる例示的実施形態において、2列は、べき剰余を用いる復号化のために用いられる。図10においては、2行2列には、べき剰余を用いる復号化を1回実施して得られる整数Y1が記憶される。3列は、換字式復号のために用いられ、図10においては、2行3列には、Y1から換字式復号化により生じる、変換された整数Z1が記憶される。
他の2列のセルには、復号化の諸段階から生じる変数の値が適宜記憶される。例えば、9行2列には公開鍵E1、11行2列には秘密鍵F1、14行2列にはオフセットT1がそれぞれ記憶される。同様に、他の3列のセルに関しては、13行3列には換字式暗号化の鍵R1、15行3列には1回デクリメントされたループカウンタ(L−1)がそれぞれ記憶される。
このようにして、入力Xiから、2列にはべき剰余を用いる暗号化における変換後の整数Y1、他の変数E1、F1、及びT1が記憶され、3列には整数Y1から変換される整数Z1、他の変数R1、及びデクリメントされたループカウンタ(L−1)が記憶される。
In a further exemplary embodiment, two columns are used for decoding with a power residue. In FIG. 10, in 2 rows and 2 columns, an integer Y1 obtained by performing decoding using a power residue once is stored. Three columns are used for substitution decoding. In FIG. 10, a converted integer Z1 generated by substitution decoding from Y1 is stored in 2 rows and 3 columns.
In the other two columns of cells, the values of variables resulting from the various stages of decoding are stored as appropriate. For example, the public key E1 is stored in the 9th and 2nd column, the secret key F1 is stored in the 11th and 2nd column, and the offset T1 is stored in the 14th and 2nd column. Similarly, for the other three columns of cells, the substitution encryption key R1 is stored in row 13 and column 3, and the loop counter (L-1) decremented once is stored in row 15 and column 3.
In this way, the converted integer Y1 and other variables E1, F1, and T1 in the encryption using the power residue are stored in the second column from the input Xi, and the third column is an integer converted from the integer Y1. Z1, the other variable R1, and the decremented loop counter (L-1) are stored.
このようにして、本発明に係る整数を復号化する方法は、換字式復号化及びべき剰余を用いる復号化の組み合わせを繰り返し実施し、ループカウンタがゼロ以下となることを条件として、2行(2n+1)列に整数X1として復号化した整数が得られる。これらの復号化の諸段階が、対応する暗号化の諸段階の逆順で実施されることにより、図10に示す整数の復号化計算ワークシート220の2行(2n+1)列に得られる整数X1は、図9に示した整数の暗号化計算ワークシート200の2行1列に入力された元の整数Xiと等しくなる。 In this way, the method for decoding an integer according to the present invention repeatedly executes a combination of substitution decoding and decoding using a power residue, on the condition that the loop counter becomes zero or less. An integer decoded as an integer X1 in 2n + 1) columns is obtained. By performing these decryption steps in the reverse order of the corresponding encryption steps, the integer X1 obtained in 2 rows (2n + 1) columns of the integer decryption calculation worksheet 220 shown in FIG. , Which is equal to the original integer Xi input in 2 rows and 1 column of the integer encryption calculation worksheet 200 shown in FIG.
本発明に係る整数の暗号化及び復号化の方法の諸段階を用いることにより、べき剰余を用いる暗号化及び復号化の諸段階のいずれにおいても、計算過程において桁あふれを発生することにより、本発明の方法を用いない計算手段等においては、正しい暗号化も復号化も実施することはできない。さらに、べき剰余に加えて換字式暗号化及び復号化を重畳することにより、本発明の方法においては情報の秘匿性を飛躍的に高めることが可能になる。これにより、本発明に係る整数の暗号化及び復号化の方法及び該方法の実施手段等は、個人情報等と関連する整数の形態の情報に対して高い秘匿性を付与することが可能になる。 By using the steps of the integer encryption and decryption method according to the present invention, it is possible to generate an overflow in the calculation process at any of the steps of encryption and decryption using a power residue. In a calculation means that does not use the method of the invention, neither correct encryption nor decryption can be performed. Furthermore, by superimposing substitutional encryption and decryption in addition to the power residue, it is possible to dramatically improve the confidentiality of information in the method of the present invention. As a result, the method of encrypting and decrypting integers according to the present invention and the means for implementing the method can provide high confidentiality to information in the form of integers related to personal information and the like. .
[解読のための所要時間]
本発明に係る整数を暗号化する方法を用いて生成した整数に対して、解読の可能性を総当たりにより探索する場合の所要時間を例示する。これは、いわゆるブルート・フォース・アタック(総当たり攻撃)を用いて秘密情報を解読するための計算時間でありうる。
コンピュータの計算能力が毎秒1ペタフロップス、すなわち1秒間に10の15乗命令数であると仮定すると、当該コンピュータは1年間に約10の22乗命令数を実行することが可能である。
本発明に係る整数を暗号化する方法において、元の整数が6桁の10進数であり、べき剰余を用いる暗号化及び換字式暗号化が連続して実行されるとする。暗号化において、この連続して実行される暗号化が5回繰り返される場合、当該5回繰り返された暗号化に含まれる独立した五重の換字式暗号化の組み合わせの総数は10の30乗(すなわち、10の6乗の5乗)であり、前述のコンピュータによる総当たり計算の所要時間は約10の8乗年(すなわち約1億年)と算出できる。本発明に係る暗号化の方法においては、さらに五重の独立したべき剰余を用いる暗号化が実施され、これらの暗号化に用いられる鍵は乱数発生手段によりランダムに選択されうるので、総当たりによる解読の所要時間は1億年をはるかに超える天文学的数字の時間でありうる。従って、本発明は乱数を適用可能な目標に対して具体的な実装及び製品化が可能な形態を提供でき、簡単なロジックに比して解読の困難さを飛躍的に向上させたという効果がある。
このように、本発明においては、べき剰余を用いる暗号化及び換字式暗号化を連続して複数回繰り返し実行することにより、元の整数から極めて秘匿性の高い暗号化した整数を生成することが可能である。本発明においては、第三者による解読の手間を膨大化することにより、守秘情報を参照するための識別情報等を高い秘匿性で暗号化し復号化することができる。
[Time required for decoding]
The time required in the case of searching for the possibility of a decipherment with respect to the integer produced | generated using the method which encrypts the integer based on this invention is illustrated. This can be the computation time for decrypting the secret information using a so-called brute force attack.
Assuming that the computing power of the computer is 1 petaflop per second, that is, 10 15 instructions per second, the computer can execute approximately 10 22 instructions per year.
In the method for encrypting an integer according to the present invention, it is assumed that the original integer is a 6-digit decimal number, and encryption using a power residue and substitution-type encryption are continuously executed. In the case of encryption, when this continuously executed encryption is repeated five times, the total number of independent five-fold substitutional encryption combinations included in the five-time repeated encryption is 10 30 ( That is, 10 6 to the 5th power), and the time required for the brute force calculation by the computer can be calculated to be about 10 8 years (that is, about 100 million years). In the encryption method according to the present invention, encryption using a quintuple independent power residue is further performed, and the keys used for these encryptions can be randomly selected by random number generation means. The time required for decoding can be astronomical figures well over 100 million years. Therefore, the present invention can provide a form that can be concretely implemented and commercialized for a target to which random numbers can be applied, and has the effect of dramatically improving the difficulty of decoding compared to simple logic. is there.
In this way, in the present invention, it is possible to generate an encrypted integer with extremely high secrecy from the original integer by repeatedly performing encryption using a remainder and substitution-type encryption a plurality of times in succession. Is possible. In the present invention, it is possible to encrypt and decrypt identification information or the like for referring to confidential information with high confidentiality by enlarging the effort of decryption by a third party.
以上、本発明の実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に、多様な変更又は改良を加えることができる。そのような変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。 As mentioned above, although demonstrated using embodiment of this invention, the technical scope of this invention is not limited to the range as described in the said embodiment. Various modifications or improvements can be added to the above embodiment. It is apparent from the scope of the claims that the embodiments added with such changes or improvements can be included in the technical scope of the present invention.
20 特定の個人
30 整数型の識別子
32、34 整数部分
35 整数部分の桁の情報
37 追加の桁
39 乱数発生手段
40 オフセット情報
41 整数型の復号化した識別子
42、44、46、52、54 暗号化した整数
62、64、66、92、94 固有情報
72、74、76 暗号化計算
82、84、102、104 情報伝達経路
100 暗号化手段
110 復号化手段
112、114 復号化計算
122、124、126 識別用途
20
Claims (23)
コンピュータ装置が、入力された前記整数Xiを整数Yiに暗号化する、べき剰余暗号化ステップと、
コンピュータ装置が前記暗号化された整数Yiを前記整数Xiに復号化する、べき剰余復号化ステップとを含み、
前記べき剰余暗号化ステップは、
コンピュータ装置が、その積Nが入力された前記整数Xiを超える2つの素数A及びBを生成し、前記N、A、Bを記憶手段に記憶するステップであって、
コンピュータ装置が、積Nを整数Mを基数とするM進表記に変換し、前記積NのM進表記の桁数を、少なくとも2つ以上に分割し、前記分割したそれぞれの桁に対応する整数部分と当該桁数をべき指数とするMのべき乗との積からなる単項式の和からなる前記積Nの展開形を生成し、前記展開形に含まれる前記それぞれの桁に対応する整数部分の集まりと前記それぞれの整数部分の桁の情報からなる前記それぞれの整数部分を関連づける情報とを生成するステップと、
積Nと前記生成した、前記それぞれの整数部分と前記それぞれの整数部分を関連づける情報とを記憶手段に記憶するステップと、を含む前記ステップと、
コンピュータ装置が(A−1)と(B−1)との積D及び(A−1)と(B−1)の最小公倍数Kを生成し、前記D及びKを記憶手段に記憶するステップと、
コンピュータ装置がD又はKと素である数Eを生成して、前記整数XiのE乗がコンピュータ装置の計算手段の整数演算に桁あふれを発生するか否かを判定し、判定結果が真となるまで、前記D又はKと素である数Eの生成と前記判定を繰り返すステップと、
コンピュータ装置が前記判定結果が真となるEを記憶手段に記憶するステップと、
コンピュータ装置が、整数Xiを整数Mを基数とするM進表記に変換し、前記積Nと同じ桁数に分割し、前記分割したそれぞれの桁に対応する整数部分と当該桁数をべき指数とするMのべき乗との積からなる単項式の和からなる前記整数Xiの展開形を生成し、前記展開形に含まれる前記それぞれの桁に対応する整数部分の集まりと前記それぞれの整数部分の桁の情報からなる前記それぞれの整数部分を関連づける情報とを生成するステップと、
前記整数Xiと前記生成した、前記それぞれの整数部分と前記それぞれの整数部分を関連づける情報とを記憶手段に記憶するステップと、
コンピュータ装置が、前記生成した数Eをべき指数とする、次式記載の前記整数XiのE乗冪演算において、整数Xiの前記記憶された前記それぞれの整数部分の桁の情報に基づき、前記それぞれの桁に対応する整数部分間の計算に置き換えて展開し、桁ごとに積Nの前記生成した、前記それぞれの整数部分との差分を算出する剰余計算により、整数XiをE乗してNを法とする整数Yiを計算して、整数Xiを暗号化した整数Yiを生成し記憶手段に記憶するステップであって、
前記整数Yiを整数Mを基数とするM進表記に変換し、前記積Nと同じ桁数に分割し、前記分割したそれぞれの桁に対応する整数部分と当該桁数をべき指数とするMのべき乗との積からなる単項式の和からなる前記整数Yiの展開形を生成し、前記展開形に含まれる前記それぞれの桁に対応する整数部分の集まりと前記それぞれの整数部分の桁の情報からなる前記それぞれの整数部分を関連づける情報とを生成するステップと、
前記整数Yiと前記生成した、前記それぞれの整数部分と前記それぞれの整数部分を関連づける情報とを記憶手段に記憶するステップと、を含む前記ステップと、
前記べき剰余復号化ステップは、
コンピュータ装置がmを任意の整数として次式を成立するFを生成し記憶手段に記憶するステップと、
コンピュータ装置が前記整数Xnを記憶手段に記憶し、暗号化した前記整数YiをXnすなわち、Xiに復号するステップと、を含むことを特徴とする整数を暗号化し復号化する方法。
A power residue encryption step in which the computer device encrypts the input integer Xi into an integer Yi;
A power residue decrypting step, wherein the computing device decrypts the encrypted integer Yi into the integer Xi;
The power residue encryption step includes:
Computing device, the method comprising the product N exceeds the integer Xi input to generate two prime numbers A and B, and stores the N, A, and B in the storage means,
The computer device converts the product N into an M-ary notation based on an integer M, divides the number of digits in the M-ary notation of the product N into at least two, and an integer corresponding to each of the divided digits Generating an expanded form of the product N consisting of a monomial sum consisting of a product of a part and a power of M with the number of digits as a power exponent, and a set of integer parts corresponding to the respective digits included in the expanded form Generating information for associating the respective integer parts comprising information of digits of the respective integer parts;
Storing the product N and the generated information relating the respective integer parts and the respective integer parts in a storage means, and
A computer generating a product D of (A-1) and (B-1) and a least common multiple K of (A-1) and (B-1), and storing the D and K in a storage means; ,
The computer device generates a number E that is prime with D or K, and determines whether or not the integer Xi raised to the E power causes an overflow in the integer operation of the calculation means of the computer device. Repeating the generation of the number E that is prime with D or K and the determination until
A step in which the computer stores E in which the determination result is true in a storage means ;
The computer device converts the integer Xi into an M-ary notation based on the integer M, divides it into the same number of digits as the product N, and converts the integer part corresponding to each of the divided digits and the number of digits into a power exponent Generating an expanded form of the integer Xi consisting of a monomial sum of products of the powers of M and a set of integer parts corresponding to the respective digits included in the expanded form and the digits of the respective integer parts Generating information associating each of said integer portions of information;
Storing in the storage means the integer Xi and the generated information relating the integer part and the integer part;
In the E power multiplication operation of the integer Xi described in the following equation, in which the computer apparatus uses the generated number E as a power exponent, each of the integer Xi based on the information of the digits of the stored integer part of the integer Xi The integer Xi is raised to the E power and N is calculated by the remainder calculation for calculating the difference between the generated integers of the product N for each digit. Calculating a modulo integer Yi, generating an integer Yi obtained by encrypting the integer Xi, and storing it in a storage means ;
The integer Yi is converted to an M-ary notation based on the integer M, divided into the same number of digits as the product N, and an integer part corresponding to each of the divided digits and the number of digits as an exponent Generates an expanded form of the integer Yi consisting of a monomial sum consisting of a product with a power, and includes a set of integer parts corresponding to the respective digits included in the expanded form and information on the digits of the respective integer parts Generating information associating the respective integer parts ;
Storing the integer Yi and the generated information associating the respective integer part and the respective integer part in a storage means, and
The power residue decoding step includes:
A step in which the computer device generates F that satisfies the following expression with m as an arbitrary integer and stores it in the storage means ;
And a computer device storing the integer Xn in a storage means and decrypting the encrypted integer Yi into Xn, that is, Xi. A method for encrypting and decrypting an integer.
コンピュータ装置が前記変換した整数Yiを整数Xnに復号化した後に、前記整数Xnに前記整数Tを減算して前記整数Xnと置き換えるステップと、
を含む、請求項1に記載の整数を暗号化し復号化する方法。 Furthermore, before generating the integer Yi computer device has converts the integer Xi, the steps of the computer apparatus by adding the integer T follows the integer Xi from the integers Xi replaced with the integer Xi,
After the computer device decodes the converted integer Yi into an integer Xn, subtracts the integer T from the integer Xn to replace the integer Xn;
A method of encrypting and decrypting an integer according to claim 1 comprising:
前記Eの生成は、コンピュータ装置がD又はKと素である数、すなわち暗号化のための鍵の候補となる数の集合を生成し、コンピュータ装置が前記生成した暗号化のための鍵の候補となる集合から、前記ランダムな規則により選択するステップにより生成されることを特徴とする、請求項1に記載の整数を暗号化し復号化する方法。 And further comprising the step of the computer device selecting a key for encryption according to a random rule,
The generation of E generates a set of numbers for which the computer device is prime with D or K, that is, a number of key candidates for encryption, and the computer device generates the key candidates for encryption generated above. The method for encrypting and decrypting an integer according to claim 1, wherein the integer is generated by the step of selecting according to the random rule from the set .
コンピュータ装置が換字式暗号化を用いて整数を換字暗号した整数に変換する換字暗号化ステップと、
コンピュータ装置が換字式復号化を用いて前記換字暗号した整数を復号化する換字式復号化ステップと、を含み、
前記べき剰余暗号化ステップ又は換字暗号化ステップのいずれか一方を先に実行し、続いて残りの一方を実行することで、整数を暗号化する暗号化ステップと、
前記換字式暗号化ステップと前記べき剰余暗号化ステップの実行順序に対応して、前記換字式暗号化ステップを先に実行した場合はべき剰余復号化ステップを、前記べき剰余暗号化ステップを先に実行した場合は換字式復号化ステップを、それぞれ先に実行し、続いて残りの一方を実行することで、暗号化された整数を復号化する復号化ステップと、
を含む、請求項1に記載の整数を暗号化し復号化する方法。 further,
A substitution encryption step where the computer device converts the integer to a substitution-encrypted integer using substitution encryption ;
A substitution decoding step wherein the computing device decrypts the substitution-encrypted integer using substitution decoding ;
An encryption step of encrypting an integer by executing either the power residue encryption step or the substitution encryption step first, and then executing the remaining one;
Corresponding to the execution order of the substitution type encryption step and the power residue encryption step, the power residue decryption step is executed first when the substitution type encryption step is executed first, and the power residue encryption step is given first. If executed, the substituting decryption step is executed first, and then the remaining one is executed to decrypt the encrypted integer, and
A method of encrypting and decrypting an integer according to claim 1 comprising:
前記換字式復号化は、前記換字式暗号化に対応して単表式復号化、多表式復号化及び自動鍵復号化のいずれかである、
請求項6に記載の整数を暗号化し復号化する方法。 The substitution cipher reduction are either single expressions encryption, multi expressions encryption and automated key encryption,
The substitutional decryption is one of single table decryption, multi-table decryption and automatic key decryption corresponding to the substitutional encryption .
A method for encrypting and decrypting an integer according to claim 6.
前記暗号化された整数を復号化する復号化ステップは、前記換字式復号化ステップを、先に実行し、続いて前記べき剰余復号化ステップを実行するものであって、
前記換字暗号化ステップにおいて、コンピュータ装置が前記整数Yiを整数Ziに変換し、
前記換字復号化ステップにおいて、コンピュータ装置が前記整数Ziを前記整数Yiに変換することを特徴とする、請求項6に記載の整数を暗号化し復号化する方法。 The encryption step for encrypting the integer performs the power residue encryption step first, followed by the substitution encryption step,
The decryption step of decrypting the encrypted integer is to perform the substitutional decryption step first, and then perform the power residue decryption step,
In the substitution encryption step, the computer device converts the integer Yi into an integer Zi;
7. The method of encrypting and decrypting an integer according to claim 6, wherein in the substitution decoding step, the computer device converts the integer Zi into the integer Yi .
前記暗号化された整数を復号化する復号化ステップは、前記べき剰余復号化ステップを先に実行し、続いて前記換字式復号化ステップを実行するものであって、
前記整数Xiはコンピュータ装置が前記換字暗号化ステップを実行することにより変換された整数であることを特徴とする、請求項6に記載の整数を暗号化し復号化する方法。 The encryption step for encrypting the integer performs the substitution encryption step first, followed by the power residue encryption step,
The decryption step for decrypting the encrypted integer is to perform the power residue decryption step first, and then perform the substitutional decryption step,
7. The method of encrypting and decrypting an integer according to claim 6, wherein the integer Xi is an integer converted by the computer device performing the substitution encryption step.
コンピュータ装置がmを任意の整数として、前記数式[数33]を成立する数Fを生成して、前記整数YiのF乗がコンピュータ装置の計算手段の整数演算に桁あふれを発生するか否かを判定し、判定結果が真となるまで、数Fの生成と前記判定を繰り返すステップと、Whether the computer apparatus generates a number F satisfying the mathematical expression [Expression 33], where m is an arbitrary integer, and whether or not the integer Yi raised to the F power causes overflow in the integer operation of the calculation means of the computer apparatus Repeating the generation of the number F and the determination until the determination result is true;
コンピュータ装置が前記判定結果が真となるFを記憶手段に記憶するステップとを含む、ことを特徴とする請求項1に記載の整数を暗号化し復号化する方法。The method for encrypting and decrypting an integer according to claim 1, further comprising a step of storing, in a storage unit, F for which the determination result is true.
積Nが入力された前記整数Xiを超える2つの素数A及びBを生成し、前記N、A、Bを記憶手段に記憶する素数生成部であって、積Nを整数Mを基数とするM進表記に変換し、前記積NのM進表記の桁数を、少なくとも2つ以上に分割し、前記分割したそれぞれの桁に対応する整数部分と当該桁数をべき指数とするMのべき乗との積からなる単項式の和からなる前記積Nの展開形を生成し、前記展開形に含まれる前記それぞれの桁に対応する整数部分の集まりと前記それぞれの整数部分の桁の情報からなる前記それぞれの整数部分を関連づける情報とを生成する素数生成部と、
(A−1)と(B−1)との積D及び(A−1)と(B−1)の最小公倍数Kを生成し、前記D及びKを記憶手段に記憶し、前記D又はKと素である数Eを生成して、前記整数XiのE乗がコンピュータ装置の計算手段の整数演算に桁あふれを発生するか否かを判定し、判定結果が真となるまで、前記D又はKと素である数Eの生成と前記判定を繰り返し、判定結果が真となるEを記憶手段に記憶し、
整数Xiを整数Mを基数とするM進表記に変換し、前記積Nと同じ桁数に分割し、前記分割したそれぞれの桁に対応する整数部分と当該桁数をべき指数とするMのべき乗との積からなる単項式の和からなる前記整数Xiの展開形を生成し、前記展開形に含まれる前記それぞれの桁に対応する整数部分の集まりと前記それぞれの整数部分の桁の情報からなる前記それぞれの整数部分を関連づける情報とを生成する生成部と、
前記記憶された数Eをべき指数とする、次式記載の整数XiのE乗冪演算において、整数Xiの前記保持した前記それぞれの整数部分の桁の情報に基づき、前記それぞれの桁に対応する整数部分間の計算に置き換えて展開し、桁ごとに積Nの前記生成した、前記それぞれの整数部分との差分を算出する剰余計算により、整数XiをE乗してNを法とする整数Yiを計算して、前記整数Yiを前記積Nと同じ桁数に分割し、前記分割したそれぞれの桁に対応する整数部分と当該桁数をべき指数とするMのべき乗との積からなる単項式の和からなる展開形を生成し、前記展開形に含まれる前記それぞれの桁に対応する整数部分の集まりと前記それぞれの整数部分の桁の情報からなる前記それぞれの整数部分を関連づける情報とを生成する剰余暗号化実行部と、
mを任意の整数として次式を成立するFを生成し記憶手段に記憶する秘密鍵生成部と、
It generates two prime numbers A and B exceeds the integer Xi which the product N is input, the N, A, a prime generating unit for storing a B in the storage means, the product N integers M and base M The number of digits in M notation of the product N is divided into at least two, an integer part corresponding to each of the divided digits, and a power of M with the number of digits as a power exponent; Generating an expanded form of the product N consisting of a monomial sum consisting of products of the above, and each of the integer parts corresponding to each digit included in the expanded form and each digit part information of the integer part A prime number generator for generating information relating the integer part of
A product D of (A-1) and (B-1) and a least common multiple K of (A-1) and (B-1) are generated, the D and K are stored in a storage means, and the D or K To generate a number E that is prime and to determine whether the integer Xi raised to the E power causes an overflow in the integer operation of the calculation means of the computer device, and until the determination result is true, The generation of the number E that is prime with K and the above determination are repeated, and E for which the determination result is true is stored in the storage means,
The integer Xi is converted into an M-ary notation based on the integer M, divided into the same number of digits as the product N, and the integer part corresponding to each of the divided digits and the power of M with the number of digits as the exponent Generating an expanded form of the integer Xi consisting of a monomial sum consisting of a product of and a set of integer parts corresponding to the respective digits included in the expanded form and the digits information of the respective integer parts A generator that generates information that associates each integer part;
In the E-power operation of the integer Xi described in the following equation using the stored number E as a power exponent, it corresponds to each digit based on the information of the digits of the integer part held in the integer Xi An integer Yi modulo N by multiplying the integer Xi to the E power by performing a remainder calculation that expands by replacing the calculation between the integer parts and calculates the difference between the generated integer N and the respective integer parts for each digit. And the integer Yi is divided into the same number of digits as the product N, and a monomial consisting of the product of the integer part corresponding to each of the divided digits and the power of M with the number of digits as the exponent A development form consisting of a sum is generated, and a set of integer parts corresponding to each digit included in the development form and information associating each integer part consisting of information on the digits of each integer part are generated. Remainder encryption An execution unit,
a secret key generation unit that generates F that satisfies the following expression, where m is an arbitrary integer, and is stored in the storage unit ;
mを任意の整数として、前記数式[数36]を成立する数Fを生成して、前記整数YiのF乗がコンピュータ装置の計算手段の整数演算に桁あふれを発生するか否かを判定し、判定結果が真となるまで、数Fの生成と前記判定を繰り返す手段と、By using m as an arbitrary integer, a number F that satisfies the mathematical formula [Equation 36] is generated, and it is determined whether or not the integer Yi raised to the F power causes overflow in the integer operation of the calculation means of the computer device. Means for repeating the generation of the number F and the determination until the determination result is true;
前記判定結果が真となるFを記憶手段に記憶する手段とを含む、ことを特徴とする請求項20に記載の整数を暗号化し復号化する装置。21. The apparatus for encrypting and decrypting an integer according to claim 20, further comprising: means for storing in the storage means F for which the determination result is true.
積Nが入力された前記整数Xiを超える2つの素数A及びBを生成し、前記N、A、Bを記憶手段に記憶する素数生成手段であって、積Nを整数Mを基数とするM進表記に変換し、前記積NのM進表記の桁数を、少なくとも2つ以上に分割し、前記分割したそれぞれの桁に対応する整数部分と当該桁数をべき指数とするMのべき乗との積からなる単項式の和からなる前記積Nの展開形を生成し、前記展開形に含まれる前記それぞれの桁に対応する整数部分の集まりと前記それぞれの整数部分の桁の情報からなる前記それぞれの整数部分を関連づける情報とを生成する素数生成手段と、
(A−1)と(B−1)との積D及び(A−1)と(B−1)の最小公倍数Kを生成し、前記D及びKを記憶手段に記憶し、前記D又はKと素である数Eを生成して、前記整数XiのE乗がコンピュータ装置の計算手段の整数演算に桁あふれを発生するか否かを判定し、判定結果が真となるまで、前記D又はKと素である数Eの生成と前記判定を繰り返し、判定結果が真となるEを記憶手段に記憶し、
整数Xiを整数Mを基数とするM進表記に変換し、前記積Nと同じ桁数に分割し、前記分割したそれぞれの桁に対応する整数部分と当該桁数をべき指数とするMのべき乗との積からなる単項式の和からなる前記整数Xiの展開形を生成し、前記展開形に含まれる前記それぞれの桁に対応する整数部分の集まりと前記それぞれの整数部分の桁の情報からなる前記それぞれの整数部分を関連づける情報とを生成する生成手段と、
前記記憶された数Eをべき指数とする、次式記載の整数XiのE乗冪演算において、整数Xiの前記保持した前記それぞれの整数部分の桁の情報に基づき、前記それぞれの桁に対応する整数部分間の計算に置き換えて展開し、桁ごとに積Nの前記生成した、前記それぞれの整数部分との差分を算出する剰余計算により、整数XiをE乗してNを法とする整数Yiを計算して、前記整数Yiを前記積Nと同じ桁数に分割し、前記分割したそれぞれの桁に対応する整数部分と当該桁数をべき指数とするMのべき乗との積からなる単項式の和からなる展開形を生成し、前記展開形に含まれる前記それぞれの桁に対応する整数部分の集まりと前記それぞれの整数部分の桁の情報からなる前記それぞれの整数部分を関連づける情報とを生成する剰余暗号化手段と、
mを任意の整数として次式を成立するFを生成し記憶手段に記憶する秘密鍵生成手段と、
Generates two prime numbers A and B exceeds the integer Xi which the product N is input, the N, A, a prime number generating means for storing the B in the storage means, the product N integers M and base M The number of digits in M notation of the product N is divided into at least two, an integer part corresponding to each of the divided digits, and a power of M with the number of digits as a power exponent; Generating an expanded form of the product N consisting of a monomial sum consisting of products of the above, and each of the integer parts corresponding to each digit included in the expanded form and each digit part information of the integer part Prime number generating means for generating information relating the integer part of
A product D of (A-1) and (B-1) and a least common multiple K of (A-1) and (B-1) are generated, the D and K are stored in a storage means, and the D or K To generate a number E that is prime and to determine whether the integer Xi raised to the E power causes an overflow in the integer operation of the calculation means of the computer device, and until the determination result is true, The generation of the number E that is prime with K and the above determination are repeated, and E for which the determination result is true is stored in the storage means,
The integer Xi is converted into an M-ary notation based on the integer M, divided into the same number of digits as the product N, and the integer part corresponding to each of the divided digits and the power of M with the number of digits as the exponent Generating an expanded form of the integer Xi consisting of a monomial sum consisting of a product of and a set of integer parts corresponding to the respective digits included in the expanded form and the digits information of the respective integer parts Generating means for generating information relating each integer part;
In the E-power operation of the integer Xi described in the following equation using the stored number E as a power exponent, it corresponds to each digit based on the information of the digits of the integer part held in the integer Xi An integer Yi modulo N by multiplying the integer Xi to the E power by performing a remainder calculation that expands by replacing the calculation between the integer parts and calculates the difference between the generated integer N and the respective integer parts for each digit. And the integer Yi is divided into the same number of digits as the product N, and a monomial consisting of the product of the integer part corresponding to each of the divided digits and the power of M with the number of digits as the exponent A development form consisting of a sum is generated, and a set of integer parts corresponding to each digit included in the development form and information associating each integer part consisting of information on the digits of each integer part are generated. Remainder encryption And means,
a secret key generating means for generating F that holds the following expression with m as an arbitrary integer and storing it in the storing means ;
mを任意の整数として、前記数式[数39]を成立する数Fを生成して、前記整数YiのF乗がコンピュータ装置の計算手段の整数演算に桁あふれを発生するか否かを判定し、判定結果が真となるまで、数Fの生成と前記判定を繰り返す手段と、
前記判定結果が真となるFを記憶手段に記憶する手段とを含む、ことを特徴とする請求項22に記載の整数を暗号化し復号化するシステム。 The secret key generation means includes
By using m as an arbitrary integer, a number F that holds the mathematical formula [Equation 39] is generated, and it is determined whether or not the integer Yi raised to the F power causes overflow in the integer operation of the calculation means of the computer device. Means for repeating the generation of the number F and the determination until the determination result is true;
23. The system for encrypting and decrypting an integer according to claim 22, further comprising: means for storing in the storage means F for which the determination result is true .
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009030445A JP5208797B2 (en) | 2009-02-12 | 2009-02-12 | Integer encryption and decryption methods |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009030445A JP5208797B2 (en) | 2009-02-12 | 2009-02-12 | Integer encryption and decryption methods |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2010186076A JP2010186076A (en) | 2010-08-26 |
| JP5208797B2 true JP5208797B2 (en) | 2013-06-12 |
Family
ID=42766762
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2009030445A Expired - Fee Related JP5208797B2 (en) | 2009-02-12 | 2009-02-12 | Integer encryption and decryption methods |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5208797B2 (en) |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0227389A (en) * | 1988-07-15 | 1990-01-30 | Sony Corp | Enciphering method and enciphering device/decoding device using enciphering method concerned |
| JPH0488736A (en) * | 1990-07-31 | 1992-03-23 | Matsushita Electric Ind Co Ltd | Data transmission method |
| JPH06282227A (en) * | 1993-03-29 | 1994-10-07 | Nippon Telegr & Teleph Corp <Ntt> | Public key encryption device and public key decryption device |
| JPH0720778A (en) * | 1993-07-02 | 1995-01-24 | Fujitsu Ltd | Residue calculation device, table creation device and multiplication remainder calculation device |
| US6026293A (en) * | 1996-09-05 | 2000-02-15 | Ericsson Inc. | System for preventing electronic memory tampering |
| JPH10307710A (en) * | 1997-03-05 | 1998-11-17 | Nippon Telegr & Teleph Corp <Ntt> | Remainder arithmetic method and apparatus therefor |
-
2009
- 2009-02-12 JP JP2009030445A patent/JP5208797B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2010186076A (en) | 2010-08-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN108463968B (en) | Fast format-preserving encryption of variable length data | |
| JP6783877B2 (en) | Cryptographic text query methods and systems for fully homomorphic encryption | |
| Thangavel et al. | Enhanced DNA and ElGamal cryptosystem for secure data storage and retrieval in cloud | |
| EP2742644B1 (en) | Encryption and decryption method | |
| JP2011164607A (en) | Method and system for privacy-preserving computation of edit distance of symbol sequence | |
| US20210279341A1 (en) | Cryptographic security system, method, and program product using data partitioning | |
| CN109474425B (en) | A method for obtaining a derivation key of arbitrary specified length based on multiple shared keys | |
| Attaullah et al. | Cryptosystem techniques based on the improved Chebyshev map: an application in image encryption | |
| KR100583495B1 (en) | Efficient block cipher method | |
| Sakib | Analysis of fundamental algebraic concepts and information security system | |
| Ahmad et al. | A secure network communication protocol based on text to barcode encryption algorithm | |
| JP5208717B2 (en) | Integer encryption and decryption methods | |
| JP5208796B2 (en) | Integer encryption and decryption methods | |
| Galbreath | Cryptography for Internet and database applications: developing secret and public key techniques with Java | |
| Jana et al. | A novel time-stamp-based audio encryption scheme using sudoku puzzle | |
| JP7411526B2 (en) | Information processing system and information processing method | |
| JP5208797B2 (en) | Integer encryption and decryption methods | |
| Babash | XOR ciphers model and the attack to it | |
| JP5208982B2 (en) | Method, apparatus and system for encrypting and decrypting integers | |
| JP5208642B2 (en) | Integer encryption and decryption methods | |
| Nam et al. | A transcendental number-based random insertion method for privacy protection | |
| CN114254366B (en) | Encryption method, decryption method, device and electronic device | |
| JP2015108682A (en) | Secrecy comparison method, program, and system | |
| CN112910626A (en) | Data encryption and decryption method based on power operation | |
| JP2000089667A (en) | Algorithm generation type secret key cryptosystem |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101215 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121113 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130109 |
|
| 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: 20130212 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130220 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160301 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5208797 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160301 Year of fee payment: 3 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |