JP3636740B2

A compact microelectronic device for performing modular multiplication and exponentiation over large numbers

Abstract

This record has no abstract on file.

Term

Term ended

Expired 30 November 2013, 12.8 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

17 claims: 5 independent, 12 dependent

  1. 1
    An ultra-small electronic device having a plurality of adders and a plurality of registers to perform modular multiplication of a multiplier and a multiplicand, and the ultra-small electronic device is the multiplier and a partial result. And first main-shift and clock-type series inputs that operate to store the modulos, respectively.straightColumn output type register (10), second main shift type and clock type series input /straightColumn output type register (11) and third main shift type and clock type series input /straightColumn output type register (12) andA Montgomery constant register (17) that operates to store a predetermined Montgomery constant, andOf the multiplicandFor each of the plurality of parts, the first main shift type and clock type series input /straightReceives the multiplier from the column output type register (10)At the same time, it receives the current part of the multiplicand from the multiplicand register (16).The current multiplicandIn the partA first multiplexed series / parallel multiplication device (19) that operates to multiply the multiplier and generate an output containing the product obtained by the multiplication, and the second mainshift and clock. Serial input of expressions /straightSubtract the modulo from the contents of the column output type register (11) to obtain the contents of the register (11).On the other handLimitedIn meaningJointOutput in relation toEquipped with a first subtractor (28) for generating the above, where the plurality of parts of the multiplicand were processed by the first multiplexed series / parallel multiplication device (19). After that, the partial result relates to the result of performing the modular multiplication of the multiplier and the multiplicand.And moreLimitedIn meaningForming a congruence, the microelectronic device further comprises the output of the first multiplexed series / parallel multiplication device (19).And the output of the first subtractor (28) are added.And, in the first stage, the first series adder (30) that operates to produce one output, and the first series adder (30).SaidWith outputSaidMontgomery constantContents of register (17)In the second stage, the third main shift type and clock type series input /straightReceives the modulo from the column output type register (12)And a second multiplexed series / parallel multiplication device (20) that receives the output obtained in the first step.In the first step, of the Montgomeri constant and the first series adder (30).SaidOf outputpartIt operates to calculate the product of the first stage obtained by multiplication with, and in the second stage, it operates to multiply the product of the first stage by the modulo, thereby. Second series adder (31)In the first series adder (30)Like producing the partial result when combined with the outputSaidA second multiplexed series / parallel multiplication device (20) that operates to generate the output of the second stage, and at least the second multiplexed series / parallel multiplication device (20). ), The first stepInput inAnd in the second stageInputProvided respectivelyHowever, here, the input in the first stage is different from the input in the second stage.Switching elements (23, 26) and the first main shift type and clock type series input /straightIt is provided with a second subtractor (27) for subtracting the modulo from the contents of the column output type register (10) and generating the contents of the register (10) subtracted by the modulo. The first multiplexed series / parallel multiplication device (19) receives the contents of the register (10) subtracted by the modulo in series form and the current multiplicand.PartReceive in parallel formatRiThe ultra-small electronic device further receives the output of the second series adder (31) and is of the second series adder (31).SaidThe first multiplexed series / parallel multiplication device (19) comprises a borrow detection device (35) that operates to determine if the output is greater than or equal to the modulo.Bit length,and、Of the second multiplexed series / parallel multiplication device (20)Bit ofBoth lengths are kWhere k is any positive integer,The second series adder (31)Receives the output of the first series adder (30) with a delay of substantially k clock cycles.At the same time, it receives the output of the second stage of the second multiplexed series / parallel multiplication device (20).Of the first series adder (30)SaidOutput and saidThe above of the second multiplexed series / parallel multiplication device (20)The output of the second stage is added, thereby generating a second adder output such that the least significant bit of k-bit length is 0, and the first main shift type and clock type in series. input/straightColumn output type register (10) or the second main shift type and clock type series input /straightOne register selected from the column output type registers (11)As an input toThe second adder outputIn the registerActs to supplyAndThe ultra-small electronic device further includes It is located between the first series adder (30) and the second series adder (31) and operates to substantially add a delay of k clock cycles. An ultra-small electronic device including a bit delay element (34). 複数の加算器と複数のレジスタとを有し、乗数と被乗数とのモジュラ・乗算を遂行するための超小形電子系装置であって、該超小形電子系装置は、 前記乗数、部分的な結果およびモジュロをそれぞれ格納するように動作する第1のメインシフト形およびクロック式の直列入力/直列出力形のレジスタ(10)、第2のメインシフト形およびクロック式の直列入力/直列出力形のレジスタ(11)、および、第3のメインシフト形およびクロック式の直列入力/直列出力形のレジスタ(12)と、予め定められたモントゴメリ定数を格納するように動作するモントゴメリ定数レジスタ(17)と、前記被乗数の複数の部分の各々について、前記第1のメインシフト形およびクロック式の直列入力/直列出力形のレジスタ(10)から前記乗数を受け取ると共に、被乗数レジスタ(16)から前記被乗数の現在の部分を受け取り、前記被乗数の現在の部分に対し前記乗数を乗算し、乗算により得られる積を含む出力を発生させるように動作する第1の多重化された直列/並列形の乗算デバイス(19)と、 前記第2のメインシフト形およびクロック式の直列入力/直列出力形のレジスタ(11)の内容から前記モジュロを減算し、当該レジスタ(11)の内容に対してより限定された意味における合同の関係にある出力を生成するための第1の減算器(28)とを備え、 ここで、前記被乗数の複数の部分が、前記第1の多重化された直列/並列形の乗算デバイス(19)により処理された後は、前記部分的な結果が、前記乗数と前記被乗数との前記モジュラ・乗算を遂行した結果に関してより限定された意味における合同を形成し、 前記超小形電子系装置は、さらに、 前記第1の多重化された直列/並列形の乗算デバイス(19)の前記出力と前記第1の減算器(28)の前記出力とを加算し、一つの出力を生成するように動作する第1の直列形の加算器(30)と、 第1の段階にて、前記第1の直列形の加算器(30)の前記出力と前記モントゴメリ定数レジスタ(17)の内容とを受け取り、第2の段階にて、前記第3のメインシフト形およびクロック式の直列入力/直列出力形のレジスタ(12)から前記モジュロを受け取ると共に、前記第1の段階で得られる出力を受け取る第2の多重化された直列/並列形の乗算デバイス(20)であって、前記第1の段階にて、前記モントゴメリ定数と前記第1の直列形の加算器(30)の前記出力の一部との乗算により得られる第1の段階の積を算出するように動作し、前記第2の段階にて、前記第1の段階の積に対し前記モジュロを乗算するように動作し、これによって、第2の直列形の加算器(31)において前記第1の直列形の加算器(30)の前記出力と結合したときに前記部分的な結果を生成するような前記第2の段階の出力を発生させるように動作する第2の多重化された直列/並列形の乗算デバイス(20)と、 少なくとも前記第2の多重化された直列/並列形の乗算デバイス(20)に対し、前記第1の段階における入力および前記第2の段階における入力をそれぞれ提供し、ここで、前記第1の段階における入力は、前記第2の段階の入力とは異なっているスイッチング素子(23、26)と、 前記第1のメインシフト形およびクロック式の直列入力/直列出力形のレジスタ(10)の内容から前記モジュロを減算し、該モジュロにより減じられた当該レジスタ(10)の内容を生成するための第2の減算器(27)とを備え、 ここで、前記第1の多重化された直列/並列形の乗算デバイス(19)は、前記モジュロにより減じられた当該レジスタ(10)の内容を直列形式で受け取ると共に、前記被乗数の現在の部分を並列形式で受け取り、 前記超小形電子系装置は、さらに、 前記第2の直列形の加算器(31)の出力を受け取り、前記第2の直列形の加算器(31)の前記出力が、前記モジュロより大きいかもしくは該モジュロに等しいかを決定するように動作するボロー検出デバイス(35)とを備え、 前記第1の多重化された直列/並列形の乗算デバイス(19)のビットの長さ、および、前記第2の多重化された直列/並列形の乗算デバイス(20)のビットの長さが共にkであり、ここに、kは任意の正の整数であり、前記第2の直列形の加算器(31)は、実質的にkクロック・サイクルの遅延をもって前記第1の直列形の加算器(30)の出力を受け取ると共に、前記第2の多重化された直列/並列形の乗算デバイス(20)の前記第2の段階の出力を受け取り、前記第1の直列形の加算器(30)の前記出力と前記第2の多重化された直列/並列形の乗算デバイス(20)の前記第2の段階の出力とを加算し、これによって、kビット長の最下位のビットが0であるような第2の加算器出力を発生させ、前記第1のメインシフト形およびクロック式の直列入力/直列出力形のレジスタ(10)または前記第2のメインシフト形およびクロック式の直列入力/直列出力形のレジスタ(11)の中から選択された一つのレジスタに対する入力として、前記第2の加算器出力を当該レジスタに供給するように動作し、前記超小形電子系装置は、さらに、 前記第1の直列形の加算器(30)と前記第2の直列形の加算器(31)との中間に配設され、実質的にkクロック・サイクルの遅延を付与するように動作するkビットのディレイ素子(34)とを備えることを特徴とする超小形電子系装置。
  2. 8
    SaidThe second subtractor (27) receives the contents of the first main shift type and clock type series input / series output type registers (10) and subtracts the modulo from the contents of the register (10). , Thus, the multiplier subtracted by the modulo is calculated, and when the second adder output is greater than or equal to the modulo, the multiplier subtracted by the modulo is multiplied by the first multiplex. Supply to the serialized / parallel multiplication device (19)Claims1The device described. 前記第2の減算器(27)が、前記第1のメインシフト形およびクロック式の直列入力/直列出力形のレジスタ(10)の内容を受け取って当該レジスタ(10)の内容から前記モジュロを減算し、これによって、前記モジュロにより減じられた乗数を算出し、前記第2の加算器出力が前記モジュロより大きいかもしくは該モジュロに等しいときに、該モジュロにより減じられた乗数を、前記第1の多重化された直列/並列形の乗算デバイス(19)に供給する請求項1記載の装置。
  3. 9
    SaidThe microelectronic device further comprises a comparator that determines whether the second adder output is greater than or equal to the modulo.The comparator can control the subtraction of the modulo from the contents of the second main shift type and clock type series input / series output type registers (11). 28) combined withClaims8The device described. 前記超小形電子系装置が、さらに、前記第2の加算器出力が前記モジュロより大きいかもしくは該モジュロに等しいかを決定するコンパレータを備え、該コンパレータは、前記第2のメインシフト形およびクロック式の直列入力/直列出力形のレジスタ(11)の内容からの前記モジュロの減算を制御することができるように、前記第1の減算器(28)に結合されている請求項8記載の装置。
  4. 11
    SaidThe first subtractor (28) receives the contents of the second main shift type and clock type series input / series output type registers (11) and subtracts the modulo from the contents of the register (11). , Thus, the multiplier subtracted by the modulator is calculated, and when the output of the first series adder (30) is greater than or equal to the modulator, the multiplier subtracted by the modulator. The output of the register (11) is supplied to the second multiplexed series / parallel multiplication device (20).Claims1The device described. 前記第1の減算器(28)が、前記第2のメインシフト形およびクロック式の直列入力/直列出力形のレジスタ(11)の内容を受け取って当該レジスタ(11)の内容から前記モジュロを減算し、これによって、前記モジュロにより減じられた乗数を算出し、前記第1の直列形の加算器(30)の出力が前記モジュロより大きいかもしくは該モジュロに等しいときに、該モジュロにより減じられた当該レジスタ(11)の出力を、前記第2の多重化された直列/並列形の乗算デバイス(20)に供給する請求項1記載の装置。
  5. 17
    A method of using a microelectronic device with a power function to perform modular squares and modular multiplication of multipliers and multiplicands.Subdivided first main shift and clock series input / series output registers (10), subdivided second main shift and clock series input / series output registers (11) ), And the step of storing the multiplier, partial result and modulo in the subdivided third main shift type and clock type series / parallel type registers (12), respectively.A step to store a predetermined Montgomery constant in the Montgomery constant register (17), andFor each of the plurality of parts of the multiplicand, the multiplier is received from the first main shift type and clock type series input / series output type registers (10), and the current multiplicand is received from the multiplicand register (16). A step of receiving a part, multiplying the current part of the multiplicand by the multiplier, and generating an output containing the product obtained by the multiplication.In the first subtractor (28), the modulo is subtracted from the contents of the second main shift type and clock type series input / series output type registers (11), and the contents of the register (11) are reduced. Has a step to produce outputs that are congruent in a more limited sense.Here, after the plurality of parts of the multiplicand have been processed by the first multiplexed series / parallel multiplication device (19), the partial result is the multiplier and the multiplicand. Forming congruence in a more limited sense with respect to the results of performing the modular multiplicationThe method furtherThe first series adder (30) adds the output of the first multiplexed series / parallel multiplication device (19) to the output of the first subtractor (28). And the steps to generate one output,In the second multiplexed series / parallel multiplication device (20), in the first stage,The output of the first series adder (30) and the contents of the Montgomery constant (17) are received, and in the second stage, the third main shift type and clock type series input / series The step of receiving the modulo from the output-type register (12) and the output obtained in the first step of the second multiplexed series / parallel-type multiplication device (20). In the first step, the contents of the Montgomery constant register (17) are multiplied by a portion of the output of the first series adder (30), thereby multiplying the second multiplexing. The output of the first stage of the serial / parallel multiplication device (20) is generated, and in the second stage, the product of the first stage is multiplied by the modulo, whereby the above. With the step of generating the output of the second stage of the second multiplexed serial / parallel multiplication device (20),In the second series adder (31), the output of the second stage is coupled to the output of the first series adder (30), thereby producing the partial result. Steps to do andIn the second subtractor (27), the modulo is subtracted from the contents of the first and second main shift type and clock type series input / series output type registers (10), and the modulo is subtracted from the register (10). Steps to generate congruence in a limited sense with respect to content,A step of activating a borrow detection device (35) that operates to activate the first subtractor (28) and the second subtractor (27).At least for the second multiplexed series / parallel multiplication device (20), the input in the first stage and the input in the second stage are provided, respectively, where the first stage is described. The input in is different from the input in the second stage,A step of synchronizing at least the first step and the second step by a plurality of delay elements (32, 33 and 34).Use an ultra-small electronic device having a power function, characterized in that it has a step of using the ultra-small electronic system device to perform at least one of a modular multiplication operation and a modular square operation. how to。 モジュラ・2乗、および、乗数と被乗数とのモジュラ・乗算を遂行するために、べき乗の機能を有する超小形電子系装置を使用する方法であって、細分化された第1のメインシフト形およびクロック式の直列入力/直列出力形のレジスタ(10)、細分化された第2のメインシフト形およびクロック式の直列入力/直列出力形のレジスタ(11)、および、細分化された第3のメインシフト形およびクロック式の直列/並列形のレジスタ(12)の中に、前記乗数、部分的な結果およびモジュロをそれぞれ格納するステップと、予め定められたモントゴメリ定数をモントゴメリ定数レジスタ(17)に格納するステップと、前記被乗数の複数の部分の各々について、前記第1のメインシフト形およびクロック式の直列入力/直列出力形のレジスタ(10)から前記乗数を受け取ると共に、被乗数レジスタ(16)から前記被乗数の現在の部分を受け取り、前記被乗数の現在の部分に対し前記乗数を乗算し、乗算により得られる積を含む出力を発生させるステップと、第1の減算器(28)において、前記第2のメインシフト形およびクロック式の直列入力/直列出力形のレジスタ(11)の内容から前記モジュロを減算し、当該レジスタ(11)の内容に対してより限定された意味における合同の関係にある出力を生成するステップとを有し、ここで、前記被乗数の複数の部分が、前記第1の多重化された直列/並列形の乗算デバイス(19)により処理された後は、前記部分的な結果が、前記乗数と前記被乗数との前記モジュラ・乗算を遂行した結果に関してより限定された意味における合同を形成し、前記方法は、さらに、第1の直列形の加算器(30)により、前記第1の多重化された直列/並列形の乗算デバイス(19)の前記出力と前記第1の減算器(28)の前記出力とを加算し、一つの出力を生成するステップと、第2の多重化された直列/並列形の乗算デバイス(20)において、第1の段階にて、前記第1の直列形の加算器(30)の前記出力と前記モントゴメリ定数(17)の内容とを受け取り、第2の段階にて、前記第3のメインシフト形およびクロック式の直列入力/直列出力形のレジスタ(12)から前記モジュロを受け取ると共に、前記第2の多重化された直列/並列形の乗算デバイス(20)の前記第1の段階で得られる出力を受け取るステップであって、前記第1の段階にて、前記モントゴメリ定数レジスタ(17)の内容と前記第1の直列形の加算器(30)の前記出力の一部とを乗算し、これによって、前記第2の多重化された直列/並列形の乗算デバイス(20)の前記第1の段階の出力を生成し、前記第2の段階にて、前記第1の段階の積と前記モジュロとを乗算し、これによって、前記第2の多重化された直列/並列形の乗算デバイス(20)の前記第2の段階の出力を生成するステップと、前記第2の直列形の加算器(31)において、前記第2の段階の出力を前記第1の直列形の加算器(30)の出力に結合させ、これによって、前記部分的な結果を生成するステップと、第2の減算器(27)において、前記第1および第2のメインシフト形およびクロック式の直列入力/直列出力形のレジスタ(10)の内容から前記モジュロを減算し、当該レジスタ(10)の内容に関して限定された意味における合同を生成するステップと、前記第1の減算器(28)および前記第2の減算器(27)を活性化するように動作するボロー検出デバイス(35)を活性化するステップと、少なくとも前記第2の多重化された直列/並列形の乗算デバイス(20)に対し、前記第1の段階における入力および前記第2の段階における入力をそれぞれ提供し、ここで、前記第1の段階における入力は、前記第2の段階の入力とは異なっているステップと、複数のディレイ素子(32、33および34)により、少なくとも前記第1の段階および前記第2の段階を同期化するステップと、モジュラ・乗算動作およびモジュラ・2乗動作の少なくとも一方を遂行するために、前記超小形電子系装置を使用するステップとを有することを特徴とする、べき乗の機能を有する超小形電子系装置を使用する方法。