WO2008013154A1 - Programme de multiplication de champ d'extension et dispositif de multiplication de champ d'extension - Google Patents

Programme de multiplication de champ d'extension et dispositif de multiplication de champ d'extension Download PDF

Info

Publication number
WO2008013154A1
WO2008013154A1 PCT/JP2007/064474 JP2007064474W WO2008013154A1 WO 2008013154 A1 WO2008013154 A1 WO 2008013154A1 JP 2007064474 W JP2007064474 W JP 2007064474W WO 2008013154 A1 WO2008013154 A1 WO 2008013154A1
Authority
WO
WIPO (PCT)
Prior art keywords
encryption
extension
storage unit
decryption
multiplication
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.)
Ceased
Application number
PCT/JP2007/064474
Other languages
English (en)
French (fr)
Inventor
Yasuyuki Nogami
Yoshitaka Morikawa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Okayama University NUC
Original Assignee
Okayama University NUC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Okayama University NUC filed Critical Okayama University NUC
Priority to JP2008526767A priority Critical patent/JP4836208B2/ja
Priority to US12/309,524 priority patent/US8090099B2/en
Publication of WO2008013154A1 publication Critical patent/WO2008013154A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3026Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7209Calculation via subfield, i.e. the subfield being GF(q) with q a prime power, e.g. GF ((2**m)**n) via GF(2**m)

Definitions

  • Encryption Z decryption program Encryption Z decryption program, encryption Z decryption device, and multiplication device of extension field
  • the present invention relates to an encryption / decryption program, an encryption / decryption device, and an expansion field multiplication device that executes multiplication processing in encryption or decryption.
  • data encryption is performed in order to maintain confidentiality of data transmitted and received. That is, a sender who transmits plaintext data performs encryption processing on the plaintext data to generate encrypted data, and transmits this encrypted data to the receiver. On the other hand, a recipient who has received encrypted data can receive plaintext data by generating plaintext data by decrypting the encrypted data.
  • public key cryptography As a method for such encryption and decryption, a method called public key cryptography has been used recently.
  • public key cryptography a public key and a secret key are set in advance, and the public key is disclosed to the sender who sends the specified plaintext data.
  • the sender encrypts the plaintext data using the public key. Encrypted data is generated and sent to the recipient.
  • the receiver receives the encrypted data, the receiver decrypts the encrypted data using the secret key and generates plaintext data.
  • a plurality of unit length plaintext data is generated by dividing the plaintext data into predetermined data lengths according to the key length of the public key used for encryption, Unit length data is generated by performing multiplication using each unit length plaintext data and the public key, and encrypted data composed of a predetermined number of unit length encryption data is generated.
  • the encrypted data is divided into predetermined data lengths that match the key length of the secret key used for decryption to generate a plurality of unit length encrypted data.
  • Unit length plaintext data is generated by performing multiplication using the unit length encrypted data and the secret key, and plaintext data composed of a predetermined number of unit length plaintext data is generated.
  • RSA Rivest Shamir Adleman
  • elliptic curve ⁇ E1G ⁇ al ⁇ etc.
  • the key lengths of the public key and the secret key are increased in order to increase the security.
  • the key lengths of the public key and private key are increased, the number of private keys used for decryption will increase dramatically, making it impossible to decrypt in a realistic time. . Therefore, at present, the key length of 1024 bits or more is required for RSA ⁇ , 160 bits or more for Elliptic Curve ⁇ , and 1024 bits or more for ElGamal ⁇ .
  • an apparatus that can execute high-speed arithmetic processing such as a personal computer uses encryption with a public key and a private key having a key length as long as possible, such as a mobile phone or an IC card.
  • encryption using a public key and a secret key with a relatively short key length is used, and data is within the security range that can be guaranteed. Data is sent and received.
  • Patent Document 1 JP 2001-051832 A
  • the extension field necessary for arithmetic processing such as multiplication processing is specified as a predetermined extension field, so that the key length is made versatile.
  • an extension for each key length had to be prepared in advance. Therefore, the higher the versatility of the key length, the larger the storage area needed to store the extension corresponding to the key length.
  • the prime field p is a characteristic and the extension field of extension degree m
  • Encryption / decryption to generate plaintext data element C ⁇ c, c, c,.
  • km + 1 is a prime number and F is a positive integer k where p is a primitive element.
  • the second step is
  • the third step is
  • F is positive integer k 'where p is primitive element or order power 3 ⁇ 4'm and k'm is odd,
  • the second step is
  • the third step is
  • Encryption by encrypting plaintext data and encryption key as encryption key or encryption data and decryption key to generate element C ⁇ c, c, c, ..., c ⁇ , or encryption Data and decryption
  • the first storage unit for storing each element, the second storage unit for storing the extended order m, km + 1 is a prime number, and F is p Original positive km + 1
  • a third storage unit that identifies and stores an integer k based on an operation by an arithmetic unit, and two elements A and B, an extension field F of an extended order km using a positive integer k and a prime number p as a characteristic 2 in km
  • a storage unit for obtaining and storing ab modp q [[ ⁇ 3 ⁇ 4 respectively, with 0 ⁇ i ⁇ m-l;
  • a storage unit that stores q [ku ⁇ and q [ku (13 ⁇ 4])>] for each of 0 ⁇ i ⁇ m-l and l ⁇ t ⁇ k_l,
  • a storage unit for storing the integer k ′
  • a storage unit for finding and storing each K [t] such that 0 ⁇ t ⁇ k'-lT ⁇ p mt > K [t],
  • a storage unit for obtaining and storing ab modp q [[ ⁇ 3 ⁇ 4 respectively, with 0 ⁇ i ⁇ m-l;
  • the prime number p is a characteristic, and two expansion fields F m having an expansion degree m are used.
  • ⁇ A ⁇ a, a, a, ⁇ , a ⁇
  • the multiplication device of the extension field having an arithmetic unit for generating 0 1 2 m-1 0 1 2 m- 1 0 1 2 m- 1! /, And a first storage unit for storing each element, A second storage unit for storing the expansion order m, and a positive integer k for which km + 1 is a prime number and p km + 1 is a primitive element with F specified and stored based on an operation by an arithmetic unit 3 of the serial ⁇ and, two elements a, a B, and stores the result of multiplying the arithmetic unit a prime number p as two original in extension field F km extension degree km to target number with a positive integer k
  • the prime p is a characteristic
  • two elements A ⁇ a, a, a,... P 0 1 2 of the extension field F m of extension degree m
  • km + 1 is a prime number
  • F is a prime integer k where p is a primitive element.
  • n can be an arbitrary integer.
  • km + 1 is a prime number
  • F is p
  • p is a primitive element
  • the expansion field of the extension order km using the positive integer k becomes extremely easy to prepare the expansion field necessary for the calculation, so there is no need to prepare the expansion field corresponding to each expansion order m. You can choose unlimited.
  • the extension order m is a key length in encryption and decryption, and the key length can be arbitrarily selected. Therefore, the security of the encrypted data can be arbitrarily selected as necessary. I can help. In particular, if you want to increase safety, simply increase the expansion order m as much as possible. It is very easy to deal with the cryptanalysis of the encrypted data.
  • extension field of extension order km as a definition field, multiplication can be performed by decomposing into a repetition of a predetermined original addition or subtraction and multiplication, and parallel processing is easy. Thus, high-speed calculation can be performed.
  • FIG. 1 is a block diagram of an encryption / decryption device according to the present invention.
  • FIG. 2 is a flowchart in the encryption / decryption program according to the present invention.
  • FIG. 3 is a flowchart in the encryption / decryption program according to the present invention.
  • FIG. 4 is a flowchart of another embodiment.
  • FIG. 5 is a flowchart for obtaining an irreducible polynomial.
  • the expansion field having the prime number p as the characteristic is defined as the expansion field, and the expansion field of the expansion order m F m 2
  • Element A ⁇ a, a, a, ..., & ⁇
  • B ⁇ b, b, b path ..., b ⁇
  • the element C ⁇ c, c, c, ... .
  • km + 1 is a prime number
  • F is p and p is a primitive element
  • km + 1 is a prime number corresponding to an arbitrary extension order m
  • F is p + 1.
  • extension field F m of extension degree m with prime p an extension field F km of extension order km as a division field
  • two elements A and B can be multiplied even if the extension order m and characteristic P are arbitrary.
  • the extension order m corresponds to the key length in encryption and decryption, and that an arbitrary extension order m can be selected indicates that the key length can be arbitrarily selected, and as necessary.
  • encrypted data can be generated with an appropriate key length.
  • the expansion order m can be an arbitrary positive integer, and can be increased as much as desired.
  • the characteristic p can also be an arbitrary prime number.
  • Alice who sends message M downloads Bob's public key data g and B, and sends message M to message M.
  • Encryption is performed by calculating Where t is a random number.
  • Alice sends C and C to Bob, and Bob calculates C / C s using the received C and C.
  • the message M is decrypted by 1 2 1 2 1 2. That is,
  • This decryption is also performed using the encryption / decryption program of the present invention, the encryption / decryption device, or the multiplication device of the extension field, which will be described later.
  • decryption of message M is a calculation that can be performed only by Bob who has s as a secret, and it is not necessary to share one password as in the symmetric key number, and security is ensured.
  • a key having a certain length high reliability can be obtained.
  • FIG. 1 is a block diagram of the encryption / decryption device of this embodiment. This encryption / decryption device is also a multiplication device of an extension field.
  • the encryption / decryption device includes an arithmetic unit 10 such as a CPU (central processing unit), a nonvolatile storage unit 20 storing a program executed by the arithmetic unit 10, and the execution of the program. And a volatile storage unit 30 for temporarily storing necessary data.
  • the non-volatile storage unit 20 is configured by a non-volatile storage unit such as a so-called ROM (Read Only Memory) or a hard disk, and the volatile storage unit 30 is a so-called RAM (Random Acces). s Memory)!
  • the volatile storage unit 30 includes a plurality of registers, and each register stores necessary data.
  • the non-volatile storage unit 20 stores the encryption / decryption program of the present embodiment.
  • the encryption / decryption program is expanded in the volatile storage unit 30 as necessary to perform encryption or decryption operations.
  • the encryption / decryption device is provided with a data input / output unit 40, and an arbitrary expansion order m value can be input via the data input unit 40.
  • the input expansion order m Encryption can be executed based on the value of. Alternatively, it is possible to change the value of the characteristic p that is obtained only by the value of the expansion order m.
  • the data input / output unit 40 performs output of key data serving as a public key, input / output of encrypted data, and the like.
  • 50 is a data bus.
  • the required key data stored in the volatile storage unit 30, the value of the characteristic P, the expansion order m, and the like may be stored in the nonvolatile storage unit 20 as necessary. .
  • the encryption / decryption device or the multiplication device of the extension field corresponds to an encryption / decryption program that is not limited to a computer such as an electronic computer that executes the encryption / decryption program.
  • arithmetic device equipped with an arithmetic circuit for executing the arithmetic operation it is possible to speed up the arithmetic processing.
  • the coefficient Ci can be obtained by calculation in an electronic computer such as a personal computer by an encryption / decryption program based on the flowchart shown in FIG.
  • the electronic computer sets an expansion order m (step S 1).
  • the computer can also specify the extension order m from the key length of the secret key or public key.
  • the electronic computer uses a dedicated program to identify an appropriate positive integer k in which km + 1 is a prime number and F is a primitive element based on the set expansion order m ( Steps km + 1
  • the computation in the multiplication processing can be formed on a semiconductor substrate as an arithmetic processing circuit to be a semiconductor device for multiplication processing.
  • a semiconductor substrate as an arithmetic processing circuit to be a semiconductor device for multiplication processing.
  • an encryption / decryption device provided with this semiconductor device for multiplication processing, , Further speeding up of encryption and decryption can be achieved.
  • a semiconductor device for multiplication processing can be used as the multiplication device for the expansion field.
  • an arithmetic unit capable of executing a required operation is formed on a semiconductor substrate, and the following registers and register groups are formed as each storage unit.
  • each operation can be parallelized. Therefore, the speed of multiplication processing can be further increased by performing parallel processing. Therefore, it is possible to provide an encryption / decryption device or an expansion field multiplication device that enables high-speed encryption and decryption.
  • a mounting board capable of high-speed multiplication processing can be provided, and a mobile phone, an electronic computer, or the like can be configured using this mounting board. Accordingly, it is possible to provide a mobile phone, an electronic computer, and the like that can perform high-speed encryption and decryption and that can freely change the lengths of the public key and the secret key.
  • the definition field is an extension field whose prime is p.
  • ⁇ x> takes mod (2k'm + l) of x.
  • the coefficient c can be obtained by calculation using an electronic computer such as a personal computer by a program based on the flowchart shown in FIG.
  • the electronic computer sets the expansion order m (step Tl).
  • the computer specifies the extension order m from the key length of the secret key or public key.
  • the electronic computer determines that 2k'm + l is a prime number and F is p or primitive power or order power 3 ⁇ 4'm and k'm is an odd number Determining an appropriate positive integer k '
  • Step T2 At least one positive integer k 'in which 2k'm + l is a prime number in the range of 2k' ⁇ m can be identified, and the computer can identify the positive integer k 'in a relatively short time. Can be terminated.
  • the computer uses the extension field of the extension order k'm that is not the extension field F m of the extension order m as the definition field, so that 0 ⁇ i ⁇ ml and l ⁇ t ⁇ k_l, q Add [q [ku ( ⁇ ⁇ ])>] to [ ⁇ p3 ⁇ 4] and q [ku- ( ⁇ ])>] to q [ ⁇ ⁇ 3 ⁇ 4 respectively (step ⁇ 7 )
  • c can be decomposed into a repetition of a predetermined original addition or subtraction and multiplication, and can be operated, and parallel processing is easy, and high-speed operation can be performed. Can do.
  • the multiplication processing operation of the flowchart shown in FIG. 3 can also be formed on a semiconductor substrate as an arithmetic processing circuit to be a semiconductor device for multiplication processing.
  • the semiconductor device for multiplication processing is provided.
  • encryption / decryption device encryption and decryption can be further speeded up, and parallel processing can be performed, and the speed S can be further increased.
  • a semiconductor device for multiplication processing can also be used as the multiplication device for the expansion body.
  • an arithmetic unit capable of executing a required operation is formed on a semiconductor substrate, and the following registers and register groups are formed as each storage unit.
  • each operation can be parallelized, so that the multiplication processing can be further accelerated by performing parallel processing. I can help. Therefore, encryption that enables high-speed encryption and decryption
  • km + 1 is a prime number
  • S is a partial cyclic multiplicative group of order k in mod km + 1.
  • AOP All One Polynominal
  • the coefficient c can be obtained by calculation using an electronic computer such as a personal computer by a program based on the flowchart shown in FIG.
  • the expansion order m is set in the electronic computer (step Ul).
  • the computer specifies the extension order m from the key length of the secret key or public key.
  • Specify using a dedicated program (step U2).
  • ⁇ of the primitive k-th root of 1 is specified (step U3).
  • an expansion field may not be formed when m is a multiple of p, such as 8p
  • the configuration of the extension body for characteristic P can be made possible and the above limitation can be eliminated.
  • an odd field p and 4 are prime to each other, so that an extension field represented by F 4P can be constructed. That is, any odd characteristic and
  • the present invention can perform multiplication and division in an extension field without preparing a modulo polynomial as an irreducible polynomial. If the viewpoint is changed, the idea of the present invention can be used. Shows that an irreducible polynomial of arbitrary order can be generated
  • the former such as not included in the body as is referred to as a essential element, if the essential element of F m was alpha, its
  • the minimum polynomial of ⁇ that is, the polynomial of the lowest degree on F with ⁇ at zero ⁇ (X)
  • M (X) is expressed by the following equation.
  • M a (x) (x-- p ) ...
  • x- a p "'Lini"' + a m _ x x m ⁇ x + --- + a ⁇ + aa 0 , a l , a 2 ,-, a m _ l eF p
  • Tr (x) x + x p + x p2 + .. + ;
  • Step W5 any irreducible polynomial satisfying p> m can be obtained.
  • the processing described above can also be used to specify the minimum polynomial for a subfield that is not a prime field F.
  • F ′ mk can be constructed by F ′ m k-th order sequential expansion using (x k k + 1 ⁇ l) / (xl) as a modulus.
  • “” in “” is not a substitute for “”.
  • ⁇ ( ⁇ ) can be factored on F m , and can be factored on an arbitrary extension field.
  • the key length can be changed arbitrarily, and the encrypted data can be sent and received while adjusting the required security and the processing load of encryption or decryption. Is possible.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

明 細 書
暗号化 Z複号化プログラム、暗号化 Z複号化装置及び拡大体の乗算装 置
技術分野
[0001] 本発明は、暗号化/複号化プログラム、暗号化/複号化装置、及び暗号化または 復号化における乗算処理を実行する拡大体の乗算装置に関する。
背景技術
[0002] 従来、インターネットなどの電気通信回線を利用した情報通信において、送受信さ れるデータの秘匿性を保持するために、データの暗号化が行われている。すなわち 、平文データを送信する送信者は、平文データに暗号化処理を施して暗号データを 生成し、この暗号データを受信者に送信している。一方、暗号データを受信した受信 者は、暗号データに復号化処理を施して平文データを生成することにより、平文デー タを受け取ることができる。
[0003] このような暗号化及び復号化の方法として、昨今では公開鍵暗号と呼ばれる方法 が用いられている。公開鍵暗号では、公開鍵と秘密鍵があらかじめ設定され、所定の 平文データを送信する送信者に公開鍵を開示しており、送信者は公開鍵を用いて平 文データを暗号化することにより暗号データを生成し、受信者に送信している。受信 者は、暗号データを受信すると、秘密鍵を用いて暗号データを復号化して平文デー タを生成している。
[0004] ここで、平文データを暗号化する場合には、平文データを暗号化に用いる公開鍵 の鍵長に合わせた所定のデータ長ごとに分断して複数の単位長平文データを生成 し、各単位長平文データと公開鍵を用いて乗算処理を行うことにより単位長喑号デ一 タを生成し、所定数の単位長暗号データで構成された暗号データを生成してレ、る。
[0005] 一方、暗号データを復号化する場合には、暗号データを復号化に用いる秘密鍵の 鍵長に合わせた所定のデータ長ごとに分断して複数の単位長暗号データを生成し、 各単位長暗号データと秘密鍵を用いて乗算処理を行うことにより単位長平文データ を生成し、所定数の単位長平文データで構成された平文データを生成してレ、る。 [0006] このような公開鍵喑号には様々な方式が提案されており、 Rivest Shamir Adleman ( RSA)喑号、楕円曲線喑号、 E1G讓 al喑号などが知られている。
[0007] 昨今、パーソナルコンピュータなどの電子計算機の性能向上にともなって、各種の 暗号方法で暗号化された暗号データが解読されるおそれが高まってレ、る。すなわち 、暗号データは、秘密鍵さえ分かれば解読できることから、電子計算機によって手当 たり次第に秘密鍵を生成して復号化を試みることにより、時間はかかるものの解読さ れるおそれがあった。
[0008] そこで、各暗号方法では、安全性を高めるために公開鍵及び秘密鍵の鍵長を長く することが行われている。すなわち、公開鍵及び秘密鍵の鍵長を長くすると、解読に 用いる秘密鍵の数が飛躍的に増大し、現実的な時間内での解読を不可能とすること 力 Sできる力、らである。そのため、現在では、 RSA喑号では 1024ビット以上、楕円曲線 喑号では 160ビット以上、 ElGamal喑号では 1024ビット以上の鍵長が求められている
[0009] しかしながら、公開鍵及び秘密鍵の鍵長を長くした場合には、公開鍵を用いた乗算 処理による暗号化、及び秘密鍵を用いた乗算処理による復号化に多大な時間を要 することとなっていた。この場合、処理時間の短縮のためには、乗算処理の演算速度 が高速な演算手段が必要となることにより、安全性を高めるためのコストが増大するこ ととなつていた。
[0010] 一方で、現実的には、電気通信回線中を流れているデータにおいては重要度が様 々に異なっており、利用価値が高いために高度の秘匿性が必要なデータから、利用 価値が低レ、ために秘匿性を必要としなレ、データまでが存在して!/、る。
[0011] したがって、何れのデータに対しても同等の安全性で暗号化する必要はなぐ高い 安全性が要求されるデータには長レ、鍵長の公開鍵及び秘密鍵を用い、高!/、安全性 が要求されなレ、データには短レ、鍵長の公開鍵及び秘密鍵が用いられて!/、る。
[0012] また、パーソナルコンピュータなどのような高速な演算処理の実行が可能な装置で は、できるだけ長い鍵長の公開鍵及び秘密鍵による暗号化が利用されており、携帯 電話機や ICカードなどのような演算処理能力の乏しい装置では、比較的短い鍵長の 公開鍵及び秘密鍵による暗号化が利用され、保証され得る安全性の範囲内でデー タの送受信が行われてレ、る。
[0013] 特に、パーソナルコンピュータなどの電子計算機では、複数種類の鍵長の公開鍵 及び秘密鍵が利用可能となっており、送信するデータに応じた安全性、あるいは送 信先の装置における乗算処理の処理能力などに応じて鍵長を変えて暗号化すること も行われており、鍵長に汎用性を持たせることが提案されている(例えば、特許文献 1 参照。)。
特許文献 1 :特開 2001— 051832号公報
発明の開示
発明が解決しょうとする課題
[0014] しかしながら、通常、鍵長の決定にともなって、乗算処理などの演算処理に必要と なる拡大体が、所定の拡大体に特定されてしまうために、鍵長に汎用性を持たせた 場合には、鍵長ごとの拡大体をあらかじめ準備しておかなければならなかった。した がって、鍵長の汎用性を高めようとすればするほど、鍵長に対応した拡大体を記憶し ておくためのより大きな記憶領域が必要となっていた。
[0015] したがって、現実的には、準備できる記憶領域の大きさの制限から、鍵長は 3〜5種 類程度しか準備されておらず、必ずしも十分な汎用性が提供できてはいなかった。そ のため、準備された鍵長の公開鍵及び秘密鍵では安全性が十分に保証できなレヽ状 態となつた場合に、安全性をさらに高めることはできなかった。
[0016] しかも、従来の暗号化または復号化における乗算処理では、多項式積の計算の後 に多項式剰余算の計算が必要であって、多項式積の計算が終了するまでは多項式 剰余算の計算を開始することができなかった。したがって、このような乗算処理を演算 回路を構成して実行する場合には、演算回路の並列化が困難であって、処理速度 の高速化を図りにくいとレ、う問題もあった。
[0017] 本発明者らは、このような現状に鑑み、任意な鍵長を選択可能としながら高速に乗 算処理を実行可能とすることにより、利便性の高い暗号化及び復号化のシステムを 構築可能とするために研究を行って、本発明を成すに至ったものである。
課題を解決するための手段
[0018] 本発明の暗号化/複号化プログラムでは、素数 pを標数とし、拡大次数 mの拡大体 Fmの 2つの元 A = {a,a,a,·.·, a }、 B = {b,b,b, · . ·, b }を、平文データと暗号化 p 0 1 2 m-1 0 1 2 m- 1
鍵、または暗号データと復号化鍵として、電子計算機で、平文データと暗号化鍵とを 乗算して暗号データの元 C = {c,c,c,···, c }を生成させる、または暗号データと復
0 1 2 m-1
号化鍵とを乗算して平文データの元 C = {c,c,c,···, c }を生成させる暗号化/復
0 1 2 m-1
号化プログラムにおいて、 km+1が素数であって、 F で pが原始元となる正整数 kを
km+1
特定する第 1のステップと、 2つの元 A, Bを、正整数 kを用いて素数 pを標数とする拡 大次数 kmの拡大体 F kmにおける 2つの元として乗算を行う第 2のステップと、この乗算
P
の結果を用いて部分体である拡大次数 mの拡大体 F mの元における乗算の結果を求
P
める第 3のステップとを有することとした。
[0019] さらに、本発明の暗号化/複号化プログラムでは、
0≤i≤m-l, 0≤j≤k-lとし、
く x〉力 Sxの mod(km+l)をとるものとして、
第 2のステップが、
0≤t≤k-lで、く pmt〉 = K[t]となる各 K[t]をそれぞれ求めるステップと、
0≤i≤ kmで、それぞれ 0 = q [く i〉]とするステップと、
0≤i≤m-l"C\ abmodp = q[< >]をそれぞれ求めるステップと、
0≤i<j≤m-lで、(a_a)(b-b)modp = Mをそれぞれ求めて、 0≤t≤k_lで q [く ρ (ρ]Κ i j i j
[t])>]に Mをそれぞれ足し込むステップと
を有することにも特徴を有するものであり、
第 3のステップが、
0≤i≤m-lで、かつ l≤t≤k_lで、 q [く ρ¾に q [く ( 1¾])〉]をそれぞれ足し込むステツ プと、
0≤i≤m-l \ kq [く 0〉]_q [く pi〉] = cをそれぞれ求めるステップと
を有することにも特徴を有するものである。
[0020] さらに、本発明の暗号化/複号化プログラムでは、
k=2k'の場合に、
F で pが原始元あるいは位数力 ¾'mかつ k'mが奇数となる正整数 k'とし、
2k'm+l
0≤i≤m-l, 0≤j≤2k,-lとし、 く x〉力 Sxの mod(2k'm+l)をとるものとして、
第 2のステップが、
0≤t≤k'-lT\く pmt〉=K[t]となる各 K[t]をそれぞれ求めるステップと、
0≤i≤ 2k'mで、それぞれ 0 = q [く i〉]とするステップと、
0≤i≤m-l"C\ ab modp = q[< >]をそれぞれ求めるステップと、
0≤i<j≤m-lで、(a -a)(b -b )modp = Mをそれぞれ求めて、 0≤t≤k'_lで q [く pi+(pj i j i j
K[t])〉]に Mをそれぞれ足し込むとともに、 q [く pi-(pjK[t])〉]に Mをそれぞれ足し込むス を有することにも特徴を有し、
第 3のステップが、
0≤i≤m-lで、かつ l≤t≤k'_lで、 q [く ρ に q [く ( 1¾])〉]をそれぞれ足し込むととも
Figure imgf000007_0001
を有することにも特徴を有するものである。
[0021] また、本発明の暗号化/複号化装置では、素数 pを標数とし、拡大次数 mの拡大 体 F mの 2つの元 A = {a,a,a,· . ·, a }、 B = {b,b,b, · . ·, b }を、平文データと喑号 p 0 1 2 m-1 0 1 2 m- 1
化鍵、または暗号データと復号化鍵として、平文データと暗号化鍵とを乗算させて元 C = {c,c,c,· · ·, c }を生成することにより暗号化する、または暗号データと復号化
0 1 2 m-1
鍵とを乗算させて元 C = {c,c,c,· · ·, c }を生成することにより復号化する演算器を
0 1 2 m-1
備えた暗号化/複号化装置において、元をそれぞれ記憶する第 1の記憶部と、拡大 次数 mを記憶する第 2の記憶部と、 km+1が素数であって、 F で pが原始元となる正 km+1
整数 kを演算器による演算に基づいて特定して記憶する第 3の記憶部と、 2つの元 A , Bを、正整数 kを用いて素数 pを標数とする拡大次数 kmの拡大体 F kmにおける 2つ
P
の元として演算器で乗算した結果を記憶する第 4の記憶部と、拡大次数 kmの拡大体 F kmの元の乗算結果を用いて演算器で所定の演算を行って、部分体である拡大次
P
数 mの拡大体 F mの元における乗算の結果を求めて記憶する第 5の記憶部とを有す
P
ることとした。
[0022] さらに、本発明の暗号化/複号化装置では、 0≤i≤m-l , 0≤j≤k-lとし、
く x〉力 Sxの mod(km+l)をとるものとして、
第 4の記憶部が、
0≤t≤k-lで、く pmt〉 = K[t]となる各 K[t]をそれぞれ求めて記憶する記憶部と、 0≤i≤kmT\それぞれ 0 = q [く i〉]として記憶する記憶部と、
0≤i≤m-lで、 ab modp = q [く ρ¾をそれぞれ求めて記憶する記憶部と、
0≤i<j≤m-l-C\ (a -a)(b -b )modp = Mをそれぞれ求めて記憶する記憶部と、
0≤ t≤ k- 1で q [く pi+(pjK[t])〉]に Mをそれぞれ足し込んで記憶する記憶部と を有することにも特徴を有し、
第 5の記憶部が、
0≤i≤m-lで、かつ l≤t≤k_lで、 q [く ρ に q [く ( 1¾])〉]をそれぞれ足し込んで記 憶する記憶部と、
0≤i≤m-lで、 kq [く 0〉]_q [く 〉] =(^をそれぞれ求めて記憶する記憶部と
を有することにも特徴を有するものである。
さらに、本発明の暗号化/複号化装置では、
k=2k'の場合に、
F で pが原始元あるいは位数力 ¾'mかつ k'mが奇数となる正整数 k'として、この正
2k'm+l
整数 k'を記憶する記憶部を有し、
0≤i≤m-l , 0≤j≤2k'-lとし、
く x〉力 Sxの mod(2k'm+l)をとるものとして、
第 4の記憶部が、
0≤t≤k'-lT\く pmt〉=K[t]となる各 K[t]をそれぞれ求めて記憶する記憶部と、
0≤i≤2k'mで、それぞれ 0 = q [く i〉]として記憶する記憶部と、
0≤i≤m-lで、 ab modp = q [く ρ¾をそれぞれ求めて記憶する記憶部と、
0≤i<j≤m-l-C\ (a -a)(b -b )modp = Mをそれぞれ求めて記憶する記憶部と、
0≤t≤k'-lで q [く pi+(pjK[t])〉]に Mをそれぞれ足し込し込んで記憶するとともに、 q[< pi_(pjK[t])〉]に Mをそれぞれ足し込んで記憶する記憶部と
を有することにも特徴を有し、 第 5の記憶部が、
0≤i≤m-lで、かつ l≤t≤k'_lで、 q [く ρ¾に q [く ( 1¾])〉]をそれぞれ足し込むととも に、 q [く p¾に q [く- (ρ ΐ])〉]をそれぞれ足し込んで記憶する記憶部と、
0≤i≤m-lで、 _q [く pi〉] = cをそれぞれ求めて記憶する記憶部と
を有することにも特徴を有するものである。
[0024] また、本発明の乗算装置では、素数 pを標数とし、拡大次数 mの拡大体 F mの 2つの
P
兀 A = {a ,a ,a ,· · ·, a }、 B = {b ,b ,b ,· · ·, b }を乗算して兀 C = {c ,c ,c ,· · ·, c }
0 1 2 m-1 0 1 2 m- 1 0 1 2 m- 1 を生成する演算器を備えた拡大体の乗算装置にお!/、て、元をそれぞれ記憶する第 1 の記憶部と、拡大次数 mを記憶する第 2の記憶部と、 km+1が素数であって、 F で p km+1 が原始元となる正整数 kを演算器による演算に基づいて特定して記憶する第 3の記 憶部と、 2つの元 A, Bを、正整数 kを用いて素数 pを標数とする拡大次数 kmの拡大 体 F kmにおける 2つの元として演算器で乗算した結果を記憶する第 4の記憶部と、拡
P
大次数 kmの拡大体 F kmの元の乗算結果を用いて演算器で所定の演算を行って、部
P
分体である拡大次数 mの拡大体 F mの元における乗算の結果を求めて記憶する第 5
P
の記憶部とを有することとした。
発明の効果
[0025] 本発明では、素数 pを標数とし、拡大次数 mの拡大体 F mの 2つの元 A={a ,a ,a , · · p 0 1 2
· , a }、 B二 {b ,b ,b ,· · ·, b }を乗算して元 C二 {c ,c ,c ,· · ·, c }を生成する際に、 m-l 0 1 2 m-1 0 1 2 m-1
km+1が素数であって、 F で pが原始元となる正整数 kを用いて、素数 pを標数とす
km+1
る拡大次数 kmの拡大体 F kmを定義体として想定して演算を行うことにより、拡大次数
P
mを任意の整数とすること力 Sできる。
[0026] すなわち、任意の拡大次数 mを用いても、 km+1が素数であって、 F で pが原始元
km+1
となる正整数 kを用いた拡大次数 kmの拡大体によって、演算に必要な拡大体を極め て容易に準備できるので、拡大次数 mごとに対応した拡大体を準備する必要がなぐ 拡大次数 mを無制限に選択することができる。
[0027] この拡大次数 mは、暗号化及び復号化における鍵長であって、鍵長を任意に選択 することができるので、必要に応じて暗号データの安全性を任意に選択可能とするこ と力できる。特に、安全性を高めたければ拡大次数 mをできるだけ大きくするだけで よぐ暗号データの解読行為に対して極めて容易に対応できる。
[0028] しかも、拡大次数 kmの拡大体を定義体として用いることにより、乗算を、所定の元の 加算または減算と、乗算との繰り返しに分解して演算することができ、並列処理化が 容易であって、高速演算を可能とすることができる。
[0029] さらに、 k = 2k'となる k'を用いた場合には、所定の元の加算または減算と、乗算との 繰り返し回数を削減できることにより、演算のさらなる高速化を図ることができる。
図面の簡単な説明
[0030] [図 1]本発明に係る暗号化/複号化装置のブロック図である。
[図 2]本発明に係る暗号化/複号化プログラムにおけるフローチャートである。
[図 3]本発明に係る暗号化/複号化プログラムにおけるフローチャートである。
[図 4]他の実施形態のフローチャートである。
[図 5]既約多項式を求めるフローチャートである。
符号の説明
[0031] 10 演算器
20 不揮発性記憶部
30 揮発性記憶部
40 データ入出力部
50 データバス
発明を実施するための最良の形態
[0032] 本発明の暗号化/複号化プログラム、暗号化/複号化装置、及び拡大体の乗算 装置では、素数 pを標数とする拡大体を定義体とし、拡大次数 mの拡大体 F mの 2つ
P
の元 A={a,a,a,· · ·, & }、 B = {b,b,bパ · ·, b }を乗算して元 C = {c,c,c,· · ·,。
0 1 2 m-1 0 1 2 m- 1 0 1 2 m-
}を生成する際に、拡大次数 mに対応し、 km+1が素数であって、 F で pが原始元と
1 km+1
なる正整数 kを用いて素数 pを標数とする拡大次数 kmの拡大体 F kmを新たな定義体
P
として乗算を行い、この乗算の結果を用いて部分体である拡大次数 mの拡大体 F m
P
元における乗算の結果を求めている。
[0033] すなわち、任意の拡大次数 mに対応して、 km+1が素数であって、 F で pが原始元 km+1
となる正整数 kを用いることにより、素数 pを標数とする拡大次数 mの拡大体 F mを部 分体とする拡大次数 kmの拡大体 F kmを定義体として用いることができ、拡大次数 m及 び標数 Pを任意としても 2つの元 A、 Bの乗算を行うことができる。
[0034] ここで、拡大次数 mは、暗号化及び復号化における鍵長に当たり、任意の拡大次 数 mが選択できるということは、鍵長を任意に選択できることを示しており、必要に応 じて適宜の鍵長として暗号データを生成することができる。
[0035] したがって、状況に応じて鍵長を選択することにより、暗号データの安全性と、暗号 化及び復号化の演算の負荷をバランスさせながら適宜の鍵長とした暗号データを生 成できる。
[0036] 例えば、標数 p = 25°°— 863の 500ビットの素数を用いた場合には、下表に示すように 、拡大次数 m、ノ ラメータとなる正整数 k、鍵長の組み合わせを選択できる。
[表 1]
Figure imgf000011_0001
[0037] ここで、鍵長が短くなる組み合わせを用いれば、暗号化及び復号化の演算速度を 向上させることができ、鍵長が長くなる組み合わせを用いれば、解読困難な暗号化デ ータを生成して安全性を向上させることができる。
[0038] 特に、拡大次数 mは、任意な正整数とすることができ、いくらでも大きくすることもで きる。また、標数 pも任意の素数とすること力できる。
[0039] なお、暗号化に必要となる鍵は、 Diffie— Hellman鍵交換アルゴリズムを用いて受け 渡すことにより、安全に受け渡すことができる。
[0040] すなわち、アリスとボブが鍵交換を行う場合、まず、アリスからボブに鍵データとして g, A:^^ ? 1 "を送信している。
[0041] ボブは、 Aを受信すると、 C =Ab = gab e F mを計算して、 B = gb e F mを計算し、 B = gb をアリスに送信している。
[0042] アリスは、 Bを受信して C = Ba=gabE F mを計算することにより、アリスとボブとを接続 するネットワーク上に鍵 gabを流すことなく共有することができる。 [0043] なお、 ICカードにおける認証用データに用いる鍵の場合には、 ICカードの作成時 にあらかじめ ICカードに鍵データを記憶させておくことにより、ネットワーク上に鍵を流 すことなく共有すること力 Sでさる。
[0044] あるいは、一般的な公開鍵暗号の場合であれば、ボブがアリスから所要のデータを 受け取る際に、ボブは予め公開鍵を公開しておく。
[0045] 例えば、 Elgamal喑号の場合であれば、ボブは秘密鍵 sを用いて、 g, B = g≡F m
P
計算して公開しておく。
[0046] メッセージ Mを送信するアリスは、ボブの公開鍵データ g, Bをダウンロードして、メッ セージ Mに対して、
Figure imgf000012_0001
を計算することにより暗号化を行っている。ここで、 tは乱数である。
[0047] また、 Cの演算を行うに当たり、後述する本発明の暗号化/複号化プログラム、喑
1
号化/複号化装置、あるいは拡大体の乗算装置を用いて!/、る。
[0048] アリスは、 C、 Cをボブに送信し、ボブは、受信した C、 Cを用いて、 C /C sを演算
1 2 1 2 1 2 することによりメッセージ Mの復号化を行っている。すなわち、
C /C s = MBt/gts = Mgts/gts
1 2
[0049] この復号化においても、後述する本発明の暗号化/複号化プログラム、暗号化/ 復号化装置、あるいは拡大体の乗算装置を用いて!/、る。
[0050] このようにメッセージ Mの復号化は、 sを秘密にもつボブのみが行える計算であり、 対称鍵喑号のようにある一つのパスワードを互いに共有する必要がなぐかつ安全性 が確保される長さの鍵を使用することで高い信頼性を有することができる。
[0051] 図 1は、本実施形態の暗号化/複号化装置のブロック図である。なお、この暗号化 /復号化装置は拡大体の乗算装置でもある。
[0052] 暗号化/複号化装置は、 CPU (中央演算装置)などの演算器 10と、この演算器 10 が実行するプログラムなどを記憶した不揮発性記憶部 20と、プログラムの実行にとも なって必要となるデータを一時的に格納する揮発性記憶部 30とを備えている。不揮 発性記憶部 20は、いわゆる ROM (Read Only Memory)あるいはハードディスクなど の不揮発性の記憶手段で構成し、揮発性記憶部 30はいわゆる RAM (Random Acces s Memory)で構成して!/、る。
[0053] 特に、揮発性記憶部 30は、複数のレジスタを備えており、それぞれのレジスタで所 要のデータを記憶している。
[0054] 不揮発性記憶部 20には、本実施形態の暗号化/複号化プログラムを記憶しており
、この暗号化/複号化プログラムを起動させることにより、必要に応じて暗号化/復 号化プログラムを揮発性記憶部 30に展開して、暗号化あるいは復号化の演算を行つ ている。
[0055] さらに、暗号化/複号化装置にはデータ入出力部 40を設けており、このデータ入力 部 40を介して任意の拡大次数 mの値を入力可能とし、入力された拡大次数 mの値に 基づいて暗号化を実行可能としている。あるいは、拡大次数 mの値だけでなぐ標数 pの値を変更可能とすることもできる。
[0056] また、データ入出力部 40では、公開鍵となる鍵データの出力や、暗号化されたデー タの入出力などを行っている。図 1中、 50はデータバスである。
[0057] 演算器 10では、必要に応じて、揮発性記憶部 30に記憶されている所要の鍵データ 、標数 Pの値、拡大次数 mなどを不揮発性記憶部 20に記憶させてもよい。
[0058] 暗号化/複号化装置あるいは拡大体の乗算装置は、このように暗号化/復号化プ ログラムを実行する電子計算機などの装置に限定するものではなぐ暗号化/復号 化プログラムに相当する演算を実行する演算回路を備えた演算用デバイスとして、演 算処理の高速化を図ることもできる。
[0059] 以下において、暗号化あるいは復号化における 2つの元の乗算について説明する
[0060] まず、第 1実施形態として、以下の条件下における元 Aと元 Bの積の演算について 説明する。ここで、この積の演算が暗号化である場合には、元 Aと元 Bのいずれか一 方が暗号化鍵であって、他方が暗号化鍵の鍵長ごとに分断された単位長平文デー タであり、積の演算が復号化である場合には、元 Aと元 Bのいずれか一方が復号化 鍵であって、他方が復号化鍵の鍵長ごとに分断された単位長暗号データである。
[0061] ·素数 pを標数とする拡大体を定義体とする。
•拡大次数 mに対し、 km+1が素数であって、 F で pが原始元となる適当な正整数 k • 0≤i≤m-l, 0≤j≤k-lo
•く x〉が xの mod(km+l)をとるものとする。
• ωを 1の原始 km+1乗根とする。
}を拡大次数 mの拡大体 F mの元 A
0 1 2 m-1 p
[数 1]
Figure imgf000014_0001
•{b ,b ,b ,···, b }を拡大次数 mの拡大体 F mの元 B
0 1 2 m-1 p
[数 2]
Figure imgf000014_0002
[0062] なお、任意の正整数 mに対して、 km+1が素数となる正整数 kが少なくとも k<mの範 囲に存在していることは一般的に証明済みの事実であり、正整数 kを特定する専用 プログラムを用いて容易に見つけ出すことができる。
[0063] 通常、元 Aと元 Bの積 C=ABは、 CVMA (Cyclic Vector Multiplication Algorithm) で計算されるが、部分体における演算の閉性から元 Aと元 Bの積 Cも部分体 F mの元
P
なること力、ら、積 Cのベクトル表現においても、基底ベクトル ω'と ω"のベクトル係数が 等しくなる。
[0064] ここで、表記の便宜上、
Figure imgf000014_0003
及び、
Figure imgf000014_0004
であ ·ο。 [0065] したがって、求める必要があるのは 0≤i≤m-lでの ω 'の各係数 cのみであり、 [数 5コ
C =
Figure imgf000015_0001
として、係数 Ciは、図 2に示すフローチャートに基づく暗号化/複号化プログラムによ り、パーソナルコンピュータなどの電子計算機での演算によって求めることができる。
[0066] ただし、この場合、直接、 8p|m(p-l)となる拡大体を構成することはできない。そこで 、 8p|m(p_l)となる拡大体を構成する場合には、拡大次数 mの偶数因数部分 mと奇数
E
因数部分 mとに分けて (m = m -m )、それぞれを逐次拡大体に分けて拡大すること
0 E 0
により、 8p|m(p-l)となる拡大体にも対応可能とすることができる。なお、場合によって は後述する第 2実施形態を組み合わせて用いることが必要となることもある。
[0067] 暗号化の場合には、まず、電子計算機では拡大次数 mを設定する(ステップ S l)。
なお、復号化の場合には、電子計算機は、秘密鍵または公開鍵の鍵長から拡大次 数 mを特定することもできる。
[0068] 次いで、電子計算機は、設定された拡大次数 mに基づいて、 km+1が素数であって 、 F で pが原始元となる適当な正整数 kを専用プログラムを用いて特定する(ステツ km+1
プ S2)。なお、前述したように、 k< mの範囲で km+1が素数となる正整数 kは少なくと も 1つは特定でき、電子計算機は、比較的短時間で正整数 kの特定処理を終了する こと力 Sでさる。
[0069] 次いで、電子計算機は、 0≤t≤k-lで、く pmt〉 = K[t]となる各 K[t]をそれぞれ求め(ス テツプ S3)、さらに、 0≤i≤kmで、それぞれ 0 = q [く i〉]とする(ステップ S4)。
[0070] 次いで、電子計算機は、 0≤i≤m-lで、 ab modp = q [く ρ¾をそれぞれ求め(ステップ S 5)、その後、 0≤i<j≤m-lで、(a-a)(b -b )modp = Mをそれぞれ求めて、 0≤t≤k_ i j i j
[0071] その後、電子計算機は、拡大次数 mの拡大体 F mではなぐ拡大次数 kmの拡大体
P
を定義体として用いていることによる処理として、 0≤i≤m-lで、かつ l≤t≤k_lで、 q [く ρ¾への q [く (ρ ΐ])〉]の足し込みをそれぞれ行って(ステップ S 7)、最後に、 0≤i≤ m-1で、 kq [く 0〉]_q [く p = cを求めて!/、る(ステップ S8)。 [0072] このように、 cは、拡大次数 kmの拡大体 F kmにおける所定の元の加算または減算と
、乗算との繰り返しに分解して演算を行うことができ、並列処理化が容易であって、高 速演算を可能とすることができる。
[0073] 特に、演算の負荷が小さいことにより、携帯電話機や ICカードなどの演算機能の乏 しい装置でも容易に乗算処理を実行でき、し力、も公開鍵及び秘密鍵の鍵長の変更を 可倉 とすること力 Sでさる。
[0074] さらに、乗算処理における演算は、演算処理回路として半導体基板上に形成して 乗算処理用半導体デバイスとすることもでき、この乗算処理用半導体デバイスを備え た暗号化/複号化装置として、暗号化及び復号化のさらなる高速化を図ることができ
、しかも、並列処理化が可能であって、一層の高速化を図ることができる。また、拡大 体の乗算装置として乗算処理用半導体デバイスを用いることもできる。
[0075] すなわち、乗算処理用半導体デバイスでは、半導体基板上に、所要の演算を実行 可能とした演算器を形成するとともに、各記憶部として以下のレジスタ及びレジスタ群 を形成している。
-標数 Pを記憶するレジスタ。
•拡大次数 mを記憶するレジスタ。
•拡大次数 mに基づく拡大体 F mの元 Aを記憶するレジスタ群。
•拡大次数 mに基づく拡大体 F mの元 Bを記憶するレジスタ群。
•設定された拡大次数 mに対応した正整数 kを特定して記憶するレジスタ。
•0≤t≤k-lで、く pmt〉 = K[t]となる各 K[t]をそれぞれ求めて記憶するレジスタ群。 .0≤ i≤ km- 1で、それぞれ 0 = q [く i〉]として記憶するレジスタ群。
•0≤i≤m-lで、 ab modp = q [く ρ¾をそれぞれ求めて記憶するレジスタ群。
•0≤i<j≤m-l-C\ (a -a)(b -b )modp = Mをそれぞれ求めて記憶するレジスタ群。
• 0≤ t≤ k-1で q [く pi+(pjK[t])〉]に Mをそれぞれ足し込んで記憶するレジスタ群。
•0≤i≤m-lで、かつ l≤t≤k_lで、 q [く p に q [く (ρ ΐ])〉]をそれぞれ足し込んで記 'I思 レン タ 。
• 0≤ i≤m-lで、 kq [く 0〉]_q [く ρ = cをそれぞれ求めて記憶するレジスタ群。
[0076] これらのレジスタ及びレジスタ群を設けることにより、各演算は並列化が可能である ので、並列処理を行うことにより乗算処理をさらに高速化することができる。したがって 、高速な暗号化及び復号化を可能とする暗号化/複号化装置、あるいは拡大体の 乗算装置を提供できる。
[0077] この乗算処理用半導体デバイスを所要の実装ボードに装着することにより、高速な 乗算処理を可能とする実装ボードを提供でき、この実装ボードを用いて携帯電話機 や電子計算機などを構成することにより、高速な暗号化及び復号化が可能であって 、しかも公開鍵及び秘密鍵の鍵長の長さを自在に可変とした携帯電話機や電子計 算機などを提供することができる。
[0078] 以下において、第 2実施形態として、以下の条件下における元 Aと元 Bの積の演算 について説明する。ここで、第 1実施形態との違いは、 k= 2k'となる k'を用いて演算を 行うことである。すなわち、
•素数 pを標数とする拡大体を定義体とする。
•拡大次数 mに対し、 2k'm+ lが素数であって、 F で pが原始元あるいは位数力 ¾'m
2k'm+l
かつ k'mが奇数となる適当な正整数 k'。
• 0≤i≤m - l , 0≤j≤2k' - l o
.く x〉が xの mod(2k'm+ l)をとるものとする。
• ωを 1の原始 2k'm+ l乗根として、 τ = ω + ω— 1とする。
}を拡大次数 mの拡大体 F mの元 A
0 1 2 m-1 p
[数 6]
'
Figure imgf000017_0001
' {b,b,b, · . ·, b }を拡大次数 mの拡大体 F mの元 B
Figure imgf000017_0002
部分体における演算の閉性から元 Aと元 Bの積 Cも部分体 F mの元なることから、積
P
Cのベクトル表現においても、基底ベクトル τ 'と τ "のベクトル係数が等しくなる。 [0080] ここで、表記の便宜上、
[数 8コ
, (ρ' )
て = '
及び、
[数 9コ て''二て \ 1
である。
[0081] したがって、求める必要があるのは 0≤i≤m- lでの τ 'の係数 cのみであり、
[数 10]
Figure imgf000018_0001
として、係数 cは、図 3に示すフローチャートに基づくプログラムにより、パーソナルコ ンピュータなどの電子計算機での演算によって求めることができる。
[0082] ただし、この場合には、 4p|m(p- l)となる拡大体を構成することはできない。そこで、 4 p|m(p- l)となる拡大体を構成する場合には、拡大次数 mの偶数因数部分 mと奇数因
E
数部分 mとに分けて (m = m - m )、それぞれを逐次拡大体に分けて拡大することに
0 E 0
より、 4p|m(p- l)となる拡大体にも対応可能とすることができる。なお、場合によっては 前述した第 1実施形態を組み合わせて用いることが必要となることもある。
[0083] 暗号化の場合には、まず、電子計算機では拡大次数 mを設定する(ステップ Tl)。
なお、復号化の場合には、電子計算機は、秘密鍵または公開鍵の鍵長から拡大次 数 mを特定する。
[0084] 次いで、電子計算機は、設定された拡大次数 mに基づいて、 2k'm+ lが素数であつ て、 F で pが原始元あるいは位数力 ¾'mかつ k'mが奇数となる適当な正整数 k'を専
2k'm+l
用プログラムを用いて特定する(ステップ T2)。なお、前述したように、 2k' < mの範囲 で 2k'm+ lが素数となる正整数 k'は少なくとも 1つは特定でき、電子計算機は、比較的 短時間で正整数 k'の特定処理を終了することができる。
[0085] 次いで、電子計算機は、 0≤t≤k'- l T\く pmt〉 = K[t]となる各 K[t]をそれぞれ求め( ステップ T3)、さらに、 0≤i≤2k'm \それぞれ 0 = q [く i〉]とする(ステップ T4)。
[0086] 次いで、電子計算機は、 0≤i≤m-l \ ab modp = q [く ρ¾をそれぞれ求め(ステップ T5)、その後、 0≤i<j≤m-lで、(a -a)(b -b )modp = Mをそれぞれ求めて、 0≤t≤k' i j i j
-1で q [く pi+(pjK[t])〉]への Mの足し込みをそれぞれ行うとともに、 q [く pi— (p]K[t])〉]への [0087] その後、電子計算機は、拡大次数 mの拡大体 F mではなぐ拡大次数 k'mの拡大体 を定義体として用いていることによる処理として、 0≤i≤m-lで、かつ l≤t≤k_lで、 q [く p¾への q [く (ρ ΐ])〉]の足し込みをそれぞれ行うとともに、 q [く ρ¾への q [く- (ρ ΐ])〉] の足し込みをそれぞれ行って (ステップ Τ7)、電子計算機は、最後に、 0≤i≤m-l-e 、 - q [く pi〉] = cを求めている(ステップ T8)。
[0088] このように、 cは、所定の元の加算または減算と、乗算との繰り返しに分解して演算 を行うことができ、並列処理化が容易であって、高速演算を可能とすることができる。
[0089] また、図 3に示したフローチャートの乗算処理の演算も、演算処理回路として半導 体基板上に形成して乗算処理用半導体デバイスとすることもでき、この乗算処理用 半導体デバイスを備えた暗号化/複号化装置として、暗号化及び復号化のさらなる 高速化を図ることができ、しかも、並列処理化が可能であって、一層の高速化を図る こと力 Sでさる。また、拡大体の乗算装置として乗算処理用半導体デバイスを用いること もできる。
[0090] この場合、乗算処理用半導体デバイスでは、半導体基板上に、所要の演算を実行 可能とした演算器を形成するとともに、各記憶部として以下のレジスタ及びレジスタ群 を形成している。
-標数 Ρを記憶するレジスタ。
•拡大次数 mを記憶するレジスタ。
•拡大次数 mに基づく拡大体 F mの元 Aを記憶するレジスタ群。
•拡大次数 mに基づく拡大体 F mの元 Bを記憶するレジスタ群。
•設定された拡大次数 mに対応した正整数 k'を特定して記憶するレジスタ。
•0≤t≤k'-lで、く pmt〉 = K[t]となる各 K[t]をそれぞれ求めて記憶するレジスタ群。 •0≤i≤ 2k'm_lで、それぞれ 0 = q [く i〉]として記憶するレジスタ群。 •0≤i≤m-lで、 ab modp = q [く ρ¾をそれぞれ求めて記憶するレジスタ群。
•0≤i<j≤m-l-C\ (a -a)(b -b )modp = Mをそれぞれ求めて記憶するレジスタ群。
•0≤t≤k'-lで q [く pi+(pjK[t])〉]に Mをそれぞれ足し込し込んで記憶するとともに、 q[< pi-(pjK[t])〉]に Mをそれぞれ足し込んで記憶するレジスタ群。
•0≤i≤m-lで、かつ l≤t≤k'_lで、 q [く ρ¾に q [く ( 1¾])〉]をそれぞれ足し込んで記 憶するとともに、さらに、 q [く p¾に q [く- (ρ ΐ])〉]をそれぞれ足し込んで記憶するレジス タ群。
• 0≤ i≤m_lで、 _q [く ρ¾ = cをそれぞれ求めて記憶するレジスタ群。
[0091] これらのレジスタ及びレジスタ群を設けることにより、第 1の実施形態の場合と同様 に、各演算は並列化が可能であるので、並列処理を行うことにより乗算処理をさらに 高速化すること力できる。したがって、高速な暗号化及び復号化を可能とする暗号化
/復号化装置、あるいは拡大体の乗算装置を提供できる。
[0092] さらに、 km+1を素数とし、 Sを mod km+1における位数 kの部分巡回乗法群として、 k m次の AOP (All One Polynominal) (xkm+1— 1) / (x— 1)の零点を ωとして、
[数 11] =∑ωα
aeS
で与えられる γを用い、次の集合を考える。
[数 12]
Figure imgf000020_0001
[0093] ほ女 12]の集合が拡大体 F mにおいて正規基底を成すことは、 km/eが mと互いに素
P
となることと必要十分である。ここで、 eは pの mod km+1での位数である。前述した第 1 実施形態及び第 2実施形態は、この正規基底を用いた乗算に適用可能となっている
[0094] すなわち、
•eを F における元 pの位数とする。
km+ 1
•e =km e ·lの原始k乗根ε eF とする。
km+1
* \3. ,3. ,3. , * * * , 3. }を拡大次数 mの拡大体 F mの元 A
0 1 2 m-1 p
[数 13]
m-ι
•{b,b,b, · . ·, b }を拡大次数 mの拡大体 F mの元 B
0 1 2 m-1 p
[数 14] B二∑ '
[0095] このとき、部分体における演算の閉性から元 Aと元 Bの積 Cは、
[数 15]
C = AB = YCirpi
(=0
として、係数 cは、図 4に示すフローチャートに基づくプログラムにより、パーソナルコ ンピュータなどの電子計算機での演算によって求めることができる。
[0096] ここで、暗号化の場合には、まず、電子計算機では拡大次数 mを設定する(ステツ プ Ul)。なお、復号化の場合には、電子計算機は、秘密鍵または公開鍵の鍵長から 拡大次数 mを特定する。
[0097] 次いで、電子計算機は、設定された拡大次数 mに基づいて、 km+1が素数であって 、 e'( = km/e)と mとが互いに素となる適当な正整数 kを専用プログラムを用いて特 定する(ステップ U2)。正整数 kの特定にともなって、 1の原始 k乗根の εを特定する( ステップ U3)。
[0098] 次いで、電子計算機は、 1= [0], 0 = r[0]とする(ステップ U4)。
[0099] 次いで、電子計算機は、 0≤i≤mで、 0 = q [く i〉]とする(ステップ U5)。
[0100] 次いで、電子計算機は、 l≤t≤k-lで、く K[t_l] ε〉 = K[t]とする(ステップ U6)。
[0101] 次いで、電子計算機は、 0≤t≤m-lであって、 0≤t≤k-lで、 1+1= く 1¾]〉]とす る(ステップ U7)。
[0102] 次いで、電子計算機は、 0≤t≤m-l \ abmodp = q[i+l]をそれぞれ求める(ステツ プ U8)。
Figure imgf000022_0001
[0104] 最後に、電子計算機は、 0≤i≤m-lで、 kq [く 0〉]_q[i+l] = cを求めてい
U10) o
[0105] なお、 kが偶数の場合には、ステップ U9において kq [く 0〉] = 0とすることができる。
[0106] このように、より多くの正規基底に対して適用可能とすることができる。しかも、 kの値 をより小さくすることができるので、演算回数の削減による演算処理の高速化を図るこ ともできる。
[0107] なお、前述したように、 8p|m(p-l)あるいは 4p|m(p-l)などのように、 mが pの倍数であ る場合には拡大体を構成できないことがあるが、拡大次数 mを偶数因数部分 mと奇
E
数因数部分 mとに分けて、それぞれを逐次拡大体に分けて拡大することにより、奇
0
標数 Pに対しての拡大体の構成を可能とすることができ、上記の制限を排除すること ができる。
[0108] すなわち、例えば、 F 4Pを構成する場合を考える。この場合には、最初に F 4の拡大
P P
体を構成し、次いで、この拡大体を p次逐次拡大することにより、奇標数 pが 4と互い に素であることから F 4Pで表される拡大体を構成できる。すなわち、任意の奇標数及
P
び任意次数の拡大体を構成することが可能である。
[0109] 本発明は数学的に見た場合には、既約多項式として法多項式を準備することなく 拡大体における乗算や除算を行えるものであり、見方を変えれば本発明の考え方を 利用することにより、任意次数の既約多項式を生成することができることを示している
[0110] ここで、例えば F 4の (1,2,1,2)というベクトル表現を持つ元は F 2の元である。真部分
P P
体に含まれないような元を真性元と呼ぶこととして、 F mの真性元を αとした場合、そ
Ρ
の αの最小多項式、すなわち αを零点にもつ F上の最小次数の多項式 Μ (X)が求
P
まれば、それは F上の m次既約多項式となっている。
[0111] なお、 M (X)は、次式で表される。 Ma (x) =(x- - p)...[x- ap"'リニ "' + am_xxm~x +--- + a{+a a0,al,a2,--,am_l eFp
[0112] ここで、次式の計算式を考えることにする c
[数 17] am.x = -Trio)
(- lk— ( -'·_·/
Figure imgf000023_0001
Tr(x) = x + xp +xp2 +·.. + ;
[0113] 上式で、 i = m-2,m-3,' · ·,2,1,0の順に計算されることにより既約多項式が求められ ることとなる。
[0114] すなわち、拡大体 F mの任意の真性元 αの最小多項式は、図 5に示すフローチヤ一
Ρ
トに基づくプログラムにより、下のようにして求めることができる。
[0115] まず、電子計算機では、真性元 αのベクトル表現 (X を設
0,χ
1,χ
2, · · ·,χ ) 定する(ス m-1
テツプ Wl)。ここで、真性元 αの最小多項式 Μ (X)は次式となるものとする。
[数 19]
Figure imgf000023_0002
[0116] 次いで、電子計算機は、 l≤i≤mで、 T[i] = Tr ')とし(ステップ W2)、 a[m-l]=-T[l
[0117] 次いで、電子計算機は、 m-2≥i≥0で、 0 = Mとし、 0≤j≤m-l-iで、 -a[m-j]Tr( a '
[0118] 次いで、電子計算機は、
Figure imgf000023_0003
(ステップ W5)。 [0119] これにより、 p〉mを満たす任意の既約多項式を求めることができる。なお、前述し た処理は、素体 Fではない部分体に関する最小多項式の特定に用いることもできる
[0120] このように任意の既約多項式を求めることができることによって、異なる定義体間の 基底変換を可能とすることができる。
[0121] 基底変換を行うためには変換行列を特定する必要がある力 ここで変換行列を生 成したい拡大体 F' mがあり、これと同型の拡大体として F mを考える。なお、本明細書 にお!/、ては、数学にお!/、て通常使用されてレ、る「」記号付きの表現が利用できなレ、 ため、以下においては「」の代わりに「'」を代用している。
[0122] 第 1実施形態の方法を用いた基底変換行列の生成方法を考える。このとき、パラメ ータ kによって (xkm+1— l)/(x_l)という法多項式を考え、その零点 ωを用いて次式で表 される γを考え、この γを用いて次式の正規基底を考える。ここで、 ωは F kmに真性 元として存在する。
[数 20]
Figure imgf000024_0001
[数 21] , …, ,- '}
[0123] この γに相当する元 γ 'を拡大体 F' mの中から見つけることができれば拡大体 F' m における正規基底を特定し、基底間での対応関係から変換行列を特定することがで きる。この変換行列の逆行列を求めれば基底変換を可能とすることができる。
[0124] ここで、元 γ 'を求めるためには ωに相当する ω 'を拡大体 F' kmにお!/、て特定すれ ばよく、 ω 'を拡大体 F' kmにおいて特定するためには拡大体 F' m k次逐次拡大して
F kmと同型な F' kmを構成する。
[0125] ここで、 kと mが互いに素になるようにして、
(1) k'k+lが素数である。
(2) pのF における位数が k'kである(すなわち原始元である) ことを満たす k'を求めることができると、(xk k+1— l)/(x-l)を法として、 F' m k次逐次拡 大して F' mkを構成することができる。ここで、「 」の「 は「」の代用ではない。
[0126] この逐次拡大体 F' kmから次式を満たす元 B'を探し、 ω 'を求める。
[数 22]
'" - 1)/( !+1 ) j 1 )/ ( +ι )
Figure imgf000025_0001
[0127] ここで、 ω 'は位数 km+1の元となるので、 F kmの位数 km+1の元 ωに対応することとな
[0128] したがって、次式で与えられる元 γ 'により以下の集合を考えると、この集合を F mの 基底と対応づけることができる。これを用いて変換行列及びその逆行列を求めること ができ、基底変換を可能とすることができる。
[数 23]
Figure imgf000025_0002
[数 24] γ γ'Ρ ..
Figure imgf000025_0003
[0129] このように基底変換が可能なことから、既約多項式の因数分解を可能とすることが できる。
[0130] すなわち、まず、 F上の m次既約多項式 ί(χ)を考え、その零点 Θ 'による多項式基底
{ 1 , θ ', Θ '\ · · · , Θ —1}を用いて F' 1 "を構成することができる。ここで、「'」はに」に よる表示の代わりに用いてレ、る。
[0131] そして、 F' mの元 Θ 'を基底変換行列によって F mの対応する元 Θに写像すれば、 F 上の m次既約多項式 ί(χ)の 1つの解を F m上で求めたこととなる。
[0132] したがって、共役元まで考えれば、 ί(χ)を F m上で因数分解できることとなるので、任 意の拡大体上で因数分解できることとなる。
産業上の利用可能性
[0133] パーソナルコンピュータや携帯電話、あるいは ICチップ付きのクレジットカードのよう に、他の機器とデータの送受信が行われる機器において、鍵長を任意に変更可能と して、要求される安全性と、暗号化または復号化の処理負荷を調整ながら、暗号化 データの送受信を可能とする。

Claims

請求の範囲
[1] 素数 pを標数とし、拡大次数 mの拡大体 F mの 2つの元 A = {a,a,a,· · ·, a }、 B = { p 0 1 2 m-1 b,b,b, · · ·, b }を、平文データと暗号化鍵、または暗号データと復号化鍵として、
0 1 2 m-1
電子計算機で、前記平文データと前記暗号化鍵とを乗算して暗号データの元 c={ c ,c ,c ,···, c }を生成させる、または前記暗号データと前記復号化鍵とを乗算して
0 1 2 m-1
平文データの元 C = {c ,c ,c ,···, c }を生成させる暗号化/複号化プログラムにお
0 1 2 m-1
いて、
km+1が素数であって、 F で pが原始元となる正整数 kを特定する第 1のステップと
km+1 前記の 2つの元 A, Bを、前記正整数 kを用いて素数 pを標数とする拡大次数 kmの 拡大体 F kmにおける 2つの元として乗算を行う第 2のステップと、
P
この乗算の結果を用いて部分体である前記拡大次数 mの拡大体 F mの元における
P
乗算の結果を求める第 3のステップと
を有することを特徴とする暗号化/複号化プログラム。
[2] 0≤i≤m— 1、 0≤j≤k— 1とし、
く x〉力 Sxの mod(km+l)をとるものとして、
前記第 2のステップは、
0≤t≤k-lで、く pmt〉 = K[t]となる各 K[t]をそれぞれ求めるステップと、
0≤i≤ kmで、それぞれ 0 = q [く i〉]とするステップと、
0≤i≤m-l"C\ abmodp = q[< >]をそれぞれ求めるステップと、
0≤i<j≤m-lで、(a_a)(b-b)modp = Mをそれぞれ求めて、 0≤t≤k_lで q [く ρ (ρ]Κ i j i j
[t])>]に Mをそれぞれ足し込むステップと
を有することを特徴とする請求項 1記載の暗号化/複号化プログラム。
[3] 前記第 3のステップは、
0≤i≤m-lで、かつ l≤t≤k_lで、 q [く ρ に q [く ( 1¾])〉]をそれぞれ足し込むステツ プと、
0≤i≤m-l \ kq [く 0〉]_q [く pi〉] = cをそれぞれ求めるステップと
を有することを特徴とする請求項 2記載の暗号化/複号化プログラム。
[4] k=2k'の場合に、
F で pが原始元あるいは位数力 ¾'mかつ k'mが奇数となる正整数 k'とし、
2k'm+l
0≤i≤m-l, 0≤j≤2k'-lとし、
く x〉力 Sxの mod(2k'm+l)をとるものとして、
前記第 2のステップは、
0≤t≤k'-lT\く pmt〉=K[t]となる各 K[t]をそれぞれ求めるステップと、
0≤i≤ 2k'mで、それぞれ 0 = q [く i〉]とするステップと、
0≤i≤m-l"C\ abmodp = q[< >]をそれぞれ求めるステップと、
0≤i<j≤m-lで、(a- a)(b_b)modp = Mをそれぞれ求めて、 0≤t≤k'_lで q [く
i j i j
K[t])〉]に Mをそれぞれ足し込むとともに、 q [く pi-(pjK[t])〉]に Mをそれぞれ足し込むス を有することを特徴とする請求項 1記載の暗号化/複号化プログラム。
[5] 前記第 3のステップは、
0≤i≤m-lで、かつ l≤t≤k'_lで、 q [く ρ に q [く ( 1¾])〉]をそれぞれ足し込むととも
0≤i≤m-l \ _q [く p¾ = cをそれぞれ求めるステップと
を有することを特徴とする請求項 4記載の暗号化/複号化プログラム。
[6] 素数 pを標数とし、拡大次数 mの拡大体 F mの 2つの元 A = {a,a,a,· · ·, a }、 B = { p 0 1 2 m-1 b,b,b, · · ·, b }を、平文データと暗号化鍵、または暗号データと復号化鍵として、
0 1 2 m-1
前記平文データと前記暗号化鍵とを乗算させて元 C = {c ,c ,c ,···, c }を生成す
0 1 2 m-1
ることにより暗号化する、または前記暗号データと前記復号化鍵とを乗算させて元 c
={c,c,c,···, c }を生成することにより復号化する演算器を備えた暗号化/復号
0 1 2 m-1
化装置において、
前記元をそれぞれ記憶する第 1の記憶部と、
前記拡大次数 mを記憶する第 2の記憶部と、
km+1が素数であって、 F で pが原始元となる正整数 kを前記演算器による演算に
km+1
基づ!/、て特定して記憶する第 3の記憶部と、
前記の 2つの元 A, Bを、前記正整数 kを用いて素数 pを標数とする拡大次数 kmの 拡大体 F kI "における 2つの元として前記演算器で乗算した結果を記憶する第 4の記
P
憶部と、
前記拡大次数 kmの拡大体 F kmの元の乗算結果を用いて前記演算器で所定の演算
P
を行って、部分体である前記拡大次数 mの拡大体 F mの元における乗算の結果を求
P
めて記憶する第 5の記憶部と
を有することを特徴とする暗号化/複号化装置。
[7] 0≤i≤m-l、 0≤j≤k-lとし、
く x〉力 Sxの mod(km+l)をとるものとして、
前記第 4の記憶部は、
0≤t≤k-lで、く pmt〉 = K[t]となる各 K[t]をそれぞれ求めて記憶する記憶部と、 0≤i≤kmT\それぞれ 0 = q [く i〉]として記憶する記憶部と、
0≤i≤m-lで、 ab modp = q [く ρ をそれぞれ求めて記憶する記憶部と、 0≤i<j≤m-l-C\ (a -a)(b -b )modp = Mをそれぞれ求めて記憶する記憶部と、
0≤ t≤ k- 1で q [く pi+(pjK[t])〉]に Mをそれぞれ足し込んで記憶する記憶部と を有することを特徴とする請求項 6記載の暗号化/複号化装置。
[8] 前記第 5の記憶部は、
0≤i≤m-lで、かつ l≤t≤k_lで、 q [く ρ に q [く ( 1¾])〉]をそれぞれ足し込んで記 憶する記憶部と、
0≤i≤m-lで、 kq [く 0〉]_q [く 〉] =(^をそれぞれ求めて記憶する記憶部と を有することを特徴とする請求項 7記載の暗号化/複号化装置。
[9] k=2k'の場合に、
F で pが原始元あるいは位数力 ¾'mかつ k'mが奇数となる正整数 k'として、この正
2k'm+l
整数 k'を記憶する記憶部を有し、
0≤i≤m-l , 0≤j≤2k'-lとし、
く x〉力 Sxの mod(2k'm+l)をとるものとして、
前記第 4の記憶部は、
0≤t≤k'-lT\く pmt〉=K[t]となる各 K[t]をそれぞれ求めて記憶する記憶部と、 0≤i≤2k'mで、それぞれ 0 = q [く i〉]として記憶する記憶部と、 0≤i≤m-lで、 ab modp = q [く ρ¾をそれぞれ求めて記憶する記憶部と、 0≤i<j≤m-l-C\ (a -a)(b -b )modp = Mをそれぞれ求めて記憶する記憶部と、
0≤t≤k'-lで q [く pi+(pjK[t])〉]に Mをそれぞれ足し込し込んで記憶するとともに、 q[< pi_(pjK[t])〉]に Mをそれぞれ足し込んで記憶する記憶部と
を有することを特徴とする請求項 6記載の暗号化/複号化装置。
[10] 前記第 5の記憶部は、
0≤i≤m-lで、かつ l≤t≤k'_lで、 q [く ρ に q [く ( 1¾])〉]をそれぞれ足し込むととも に、 q [く p¾に q [く- (ρ ΐ])〉]をそれぞれ足し込んで記憶する記憶部と、
0≤i≤m-lで、 _q [く pi〉] = cをそれぞれ求めて記憶する記憶部と
を有することを特徴とする請求項 9記載の暗号化/複号化装置。
[11] 素数 pを標数とし、拡大次数 mの拡大体 F mの 2つの元 A = {a,a,a,· · ·, a }、 B = {
p 0 1 2 m-1 b ,b ,b , · · · , b }を乗算して元 C = {c,c,c,· . ·, c }を生成する演算器を備えた拡
0 1 2 m-1 0 1 2 m-1
大体の乗算装置において、
前記元をそれぞれ記憶する第 1の記憶部と、
前記拡大次数 mを記憶する第 2の記憶部と、
km+1が素数であって、 F で pが原始元となる正整数 kを前記演算器による演算に km+1
基づ!/、て特定して記憶する第 3の記憶部と、
前記の 2つの元 A, Bを、前記正整数 kを用いて素数 pを標数とする拡大次数 kmの 拡大体 F kmにおける 2つの元として前記演算器で乗算した結果を記憶する第 4の記
P
憶部と、
前記拡大次数 kmの拡大体 F kmの元の乗算結果を用いて前記演算器で所定の演算
P
を行って、部分体である前記拡大次数 mの拡大体 F mの元における乗算の結果を求
P
めて記憶する第 5の記憶部と
を有することを特徴とする拡大体の乗算装置。
PCT/JP2007/064474 2006-07-24 2007-07-24 Programme de multiplication de champ d'extension et dispositif de multiplication de champ d'extension Ceased WO2008013154A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008526767A JP4836208B2 (ja) 2006-07-24 2007-07-24 暗号化/復号化プログラム、暗号化/復号化装置及び拡大体の乗算装置
US12/309,524 US8090099B2 (en) 2006-07-24 2007-07-24 Computer-readable recording medium recording program and apparatus for encryption/decryption, apparatus for multiplication in extension field

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2006200946 2006-07-24
JP2006-200946 2006-07-24
JP2007010072 2007-01-19
JP2007-010072 2007-04-13

Publications (1)

Publication Number Publication Date
WO2008013154A1 true WO2008013154A1 (fr) 2008-01-31

Family

ID=38981465

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2007/064474 Ceased WO2008013154A1 (fr) 2006-07-24 2007-07-24 Programme de multiplication de champ d'extension et dispositif de multiplication de champ d'extension

Country Status (3)

Country Link
US (1) US8090099B2 (ja)
JP (1) JP4836208B2 (ja)
WO (1) WO2008013154A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012047199A1 (en) * 2010-10-05 2012-04-12 Hewlett-Packard Development Company, L.P. Modifying a length of an element to form an encryption key
WO2015004831A1 (ja) * 2013-07-12 2015-01-15 パナソニックIpマネジメント株式会社 暗号通信装置、暗号通信方法およびそのコンピュータプログラム
US9397834B2 (en) 2010-10-05 2016-07-19 Hewlett-Packard Development Company, L.P. Scrambling an address and encrypting write data for storing in a storage device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002304120A (ja) * 2001-04-06 2002-10-18 Japan Science & Technology Corp 楕円曲線暗号の処理方法および装置
JP2003084666A (ja) * 2001-09-07 2003-03-19 Japan Science & Technology Corp 楕円曲線暗号の処理方法および装置
JP2004233428A (ja) * 2003-01-28 2004-08-19 Nec Corp 逆元演算装置、逆元演算方法、及び逆元演算プログラム
JP2005284111A (ja) * 2004-03-30 2005-10-13 Japan Science & Technology Agency 楕円曲線暗号の高速演算処理方法および装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001034167A (ja) * 1999-07-23 2001-02-09 Toshiba Corp 演算装置及び暗号処理装置
JP2001016196A (ja) * 1999-04-28 2001-01-19 Fuji Soft Abc Inc 多重アファイン鍵を用いる暗号化・復号化方法、認証方法、及びこれを用いる各装置
JP4177526B2 (ja) 1999-08-05 2008-11-05 富士通株式会社 乗算剰余演算方法および乗算剰余回路
US7461115B2 (en) * 2002-05-01 2008-12-02 Sun Microsystems, Inc. Modular multiplier
JP4664850B2 (ja) * 2006-03-30 2011-04-06 株式会社東芝 鍵生成装置、プログラム及び方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002304120A (ja) * 2001-04-06 2002-10-18 Japan Science & Technology Corp 楕円曲線暗号の処理方法および装置
JP2003084666A (ja) * 2001-09-07 2003-03-19 Japan Science & Technology Corp 楕円曲線暗号の処理方法および装置
JP2004233428A (ja) * 2003-01-28 2004-08-19 Nec Corp 逆元演算装置、逆元演算方法、及び逆元演算プログラム
JP2005284111A (ja) * 2004-03-30 2005-10-13 Japan Science & Technology Agency 楕円曲線暗号の高速演算処理方法および装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012047199A1 (en) * 2010-10-05 2012-04-12 Hewlett-Packard Development Company, L.P. Modifying a length of an element to form an encryption key
GB2498122A (en) * 2010-10-05 2013-07-03 Hewlett Packard Development Co Modifying a length of an element to form an encryption key
US9397834B2 (en) 2010-10-05 2016-07-19 Hewlett-Packard Development Company, L.P. Scrambling an address and encrypting write data for storing in a storage device
WO2015004831A1 (ja) * 2013-07-12 2015-01-15 パナソニックIpマネジメント株式会社 暗号通信装置、暗号通信方法およびそのコンピュータプログラム
JPWO2015004831A1 (ja) * 2013-07-12 2017-03-02 パナソニックIpマネジメント株式会社 暗号通信装置、暗号通信方法およびそのコンピュータプログラム

Also Published As

Publication number Publication date
JPWO2008013154A1 (ja) 2009-12-17
JP4836208B2 (ja) 2011-12-14
US8090099B2 (en) 2012-01-03
US20090323929A1 (en) 2009-12-31

Similar Documents

Publication Publication Date Title
JP6083234B2 (ja) 暗号処理装置
CN106850221B (zh) 信息加密、解密方法及装置
JP6244728B2 (ja) 情報処理方法及びプログラム
JP5814880B2 (ja) 暗号システム、暗号方法、暗号プログラム及び復号装置
JP4137385B2 (ja) 公開鍵および秘密鍵による暗号化方法
US7835517B2 (en) Encryption processing apparatus, encryption processing method, and computer program
US11190340B2 (en) Efficient unified hardware implementation of multiple ciphers
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
CN104937537A (zh) 包括与标量或求幂的乘法运算的密码学方法
Hutter et al. NaCl’s crypto_box in hardware
KR100442218B1 (ko) 몽고메리의 알고리즘을 이용한 멱승 잉여 연산기
JP5852518B2 (ja) 認証暗号化装置、認証復号装置、およびプログラム
CN102098156A (zh) 密码转换数据文本的改进或与之相关的改进
JP2004505548A (ja) 暗号化秘密鍵を記憶/回復する方法および装置
EP3352411B1 (en) Method of generating cryptographic key pairs
WO2008013154A1 (fr) Programme de multiplication de champ d&#39;extension et dispositif de multiplication de champ d&#39;extension
Moldovyan et al. Commutative encryption method based on Hidden logarithm problem
Rostovtsev et al. AES side channel attack protection using random isomorphisms
JP5679344B2 (ja) 署名鍵難読化システム、署名鍵難読化方法、難読化された署名鍵を用いた暗号化署名システム、難読化された署名鍵を用いた暗号化署名方法とプログラム
Oder Efficient and side-channel resistant implementation of lattice-based cryptography
Hammad Efficient hardware implementations for the advanced encryption standard algorithm
JP5640531B2 (ja) 暗号鍵解析方法、暗号鍵解析装置および暗号鍵解析プログラム
Raharinirina Use of Signed Permutations in Cryptography
CN119945671B (zh) 一种多密钥内积功能加密方法及系统
JP2012242539A (ja) セキュリティシステム及びマイクロコンピュータ

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07791206

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 12309524

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2008526767

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: RU

122 Ep: pct application non-entry in european phase

Ref document number: 07791206

Country of ref document: EP

Kind code of ref document: A1