JP2014109865A - Device for designing logic circuit - Google Patents

Device for designing logic circuit Download PDF

Info

Publication number
JP2014109865A
JP2014109865A JP2012263228A JP2012263228A JP2014109865A JP 2014109865 A JP2014109865 A JP 2014109865A JP 2012263228 A JP2012263228 A JP 2012263228A JP 2012263228 A JP2012263228 A JP 2012263228A JP 2014109865 A JP2014109865 A JP 2014109865A
Authority
JP
Japan
Prior art keywords
registers
register
input
logic circuit
elements
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012263228A
Other languages
Japanese (ja)
Other versions
JP5992809B2 (en
Inventor
Kazuhide Fukushima
和英 福島
Shinsaku Kiyomoto
晋作 清本
Masaru Miyake
優 三宅
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.)
KDDI Corp
Original Assignee
KDDI Corp
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 KDDI Corp filed Critical KDDI Corp
Priority to JP2012263228A priority Critical patent/JP5992809B2/en
Publication of JP2014109865A publication Critical patent/JP2014109865A/en
Application granted granted Critical
Publication of JP5992809B2 publication Critical patent/JP5992809B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a device for designing a logic circuit in which safety, circuit scale, and an operation frequency are considered.SOLUTION: A device for designing a logic circuit corresponding to an input logical formula comprises: input means that inputs the number of registers; and determination means that determines insertion positions of registers for storing intermediate values as many as the number of registers separately from a register for storing an input value to the logic circuit and a register for storing an output value of the logic circuit. The determination means determines the insertion positions of the registers so that a difference in the number of logic elements between registers is equal to or smaller than a predetermined value.

Description

本発明は、回路規模、動作周波数及びサイドチャネル攻撃への耐性を考慮した論理回路の設計技術に関する。   The present invention relates to a logic circuit design technique considering circuit scale, operating frequency, and resistance to side channel attacks.

例えば、暗号処理を行うハードウェアは、当該ハードウェアが扱う暗号鍵等の秘密情報が、サイドチャネル攻撃等によって漏洩することを防ぐ様に構成しなければならない。特許文献1及び2並びに非特許文献1及び2は、ハードウェアが扱う情報の漏えいを防ぐ論理回路の安全な実装方法を開示している。   For example, hardware that performs cryptographic processing must be configured to prevent leakage of secret information such as cryptographic keys handled by the hardware due to side channel attacks or the like. Patent Documents 1 and 2 and Non-Patent Documents 1 and 2 disclose safe mounting methods of logic circuits that prevent leakage of information handled by hardware.

特開2007−334016号公報JP 2007-334016 A 特開2012−004888号公報JP 2012-004888 A

Joan Daemen, et al.,"Bitslice Ciphers and Power Analysis Attacks,"Proc. of Fast Software Encryption (FSE2000),Lecture Notes in Computer Science 1978, pp.134−149,2000年Joan Daemen, et al. , “Bitsciphers and Power Analysis Attacks,” Proc. of Fast Software Encryption (FSE2000), Texture Notes in Computer Science 1978, pp.134-149, 2000 Jovan Dj. Golic, et al.,"Univrsal Masking on Logic Gate Level",Electronics Letters,Vol.40,No.9,2004年4月29日Jovan Dj. Golic, et al. , “Universal Masking on Logic Gate Level”, Electronics Letters, Vol. 40, No. 9, April 29, 2004

しかしながら、ハードウェアの構成においては、サイドチャネル攻撃等に対する安全性のみならず、回路規模や動作周波数をも考慮する必要がある。しかしながら、上記従来技術は、回路規模や動作周波数を考慮してはいない。   However, in the hardware configuration, it is necessary to consider not only the safety against side channel attacks and the like, but also the circuit scale and operating frequency. However, the above prior art does not consider the circuit scale or the operating frequency.

本発明は、安全性、回路規模及び動作周波数を考慮した論理回路の設計装置及び当該設計装置としてコンピュータを機能させるプログラムを提供するものである。   The present invention provides a logic circuit design device that takes safety, circuit scale, and operating frequency into consideration, and a program that causes a computer to function as the design device.

本発明の一態様によると、入力された論理式に対応する論理回路の設計装置であって、レジスタ数を入力する入力手段と、前記論理回路への入力値を保存するレジスタと、前記論理回路の出力値を保存するレジスタとは別に、中間値を保存する前記レジスタ数のレジスタの挿入位置を決定する決定手段と、を備えており、前記決定手段は、レジスタ間の論理素子数の差が所定の値以下となる様にレジスタの挿入位置を決定することを特徴とする。   According to one aspect of the present invention, there is provided an apparatus for designing a logic circuit corresponding to an input logical expression, input means for inputting the number of registers, a register for storing an input value to the logic circuit, and the logic circuit Apart from a register for storing the output value of the output, a determination means for determining the register insertion position of the number of registers for storing the intermediate value, wherein the determination means has a difference in the number of logical elements between the registers. The insertion position of the register is determined so as to be less than a predetermined value.

本発明の一態様によると、入力された論理式に対応する論理回路の設計装置であって、レジスタ数及び最大素子数を入力する入力手段と、前記論理回路への入力値を保存するレジスタと、前記論理回路の出力値を保存するレジスタとは別に、前記論理回路の中間値を保存するレジスタを、前記入力手段に入力されたレジスタ数だけ挿入することでレジスタ間の素子数を前記最大素子数以下にできるかを判定する判定手段と、前記最大素子数以下にできない場合には警告を出力する出力手段と、を備えていることを特徴とする。   According to one aspect of the present invention, an apparatus for designing a logic circuit corresponding to an input logical expression, the input means for inputting the number of registers and the maximum number of elements, and a register for storing an input value to the logic circuit; In addition to the register for storing the output value of the logic circuit, the register for storing the intermediate value of the logic circuit is inserted by the number of registers input to the input means, whereby the number of elements between the registers is set to the maximum element. It is characterized by comprising determination means for determining whether or not the number can be reduced, and output means for outputting a warning when the maximum number of elements cannot be reduced.

安全性、回路規模及び動作周波数を考慮した論理回路を設計することができる。   A logic circuit can be designed in consideration of safety, circuit scale and operating frequency.

一実施形態による論理回路の設計方法の説明図。Explanatory drawing of the design method of the logic circuit by one Embodiment. 一実施形態による論理回路の設計方法の説明図。Explanatory drawing of the design method of the logic circuit by one Embodiment. 一実施形態による論理回路の設計方法の説明図。Explanatory drawing of the design method of the logic circuit by one Embodiment. 一実施形態による論理回路の設計方法の説明図。Explanatory drawing of the design method of the logic circuit by one Embodiment. 一実施形態による論理回路の設計方法の説明図。Explanatory drawing of the design method of the logic circuit by one Embodiment. 一実施形態による論理回路の設計方法の説明図。Explanatory drawing of the design method of the logic circuit by one Embodiment. 一実施形態による論理回路の設計方法の説明図。Explanatory drawing of the design method of the logic circuit by one Embodiment. 一実施形態による論理回路の設計方法のフローチャート。6 is a flowchart of a logic circuit design method according to an embodiment. 一実施形態による論理回路の設計装置の概略的な構成図。1 is a schematic configuration diagram of a logic circuit design device according to an embodiment. FIG.

以下、本発明の例示的な実施形態について図面を参照して説明する。なお、以下の各図においては、実施形態の説明に必要ではない構成要素については図から省略する。   Hereinafter, exemplary embodiments of the present invention will be described with reference to the drawings. In the following drawings, components that are not necessary for the description of the embodiments are omitted from the drawings.

何らかの論理演算を行う論理回路は、ANDゲートやORゲート等の論理素子を複数組み合わせて実現するが、これら論理回路の中間段に中間値を保存するためのレジスタを設けることがある。ここで、レジスタ数を抑えるために、レジスタ間の論理素子数を増大させると、動作クロックを低くする必要が生じ動作周波数が低下する。つまり、動作周波数を速くするためには、レジスタ間の論理素子数を減らす必要がある。しかしながら、これは、レジスタ数を増加させ回路規模を増大させる。一方、レジスタ数を多くし、回路規模を大きくすると、各素子が発するノイズ等が増加しサイドチャネル攻撃への耐性が向上する。つまり、一般的には、回路規模を小さくすると、動作周波数及びサイドチャネル攻撃に対する耐性が低下し、動作周波数及びサイドチャネル攻撃に対する耐性を増加させようとすると回路規模が増大することになる。   A logic circuit that performs some logic operation is realized by combining a plurality of logic elements such as AND gates and OR gates. A register for storing intermediate values may be provided in an intermediate stage of these logic circuits. Here, if the number of logic elements between the registers is increased in order to suppress the number of registers, it is necessary to lower the operation clock, and the operation frequency is lowered. That is, in order to increase the operating frequency, it is necessary to reduce the number of logic elements between registers. However, this increases the number of registers and the circuit scale. On the other hand, when the number of registers is increased and the circuit scale is increased, noise generated by each element is increased and resistance to side channel attacks is improved. That is, generally, when the circuit scale is reduced, the resistance against the operating frequency and the side channel attack is reduced, and when the resistance against the operating frequency and the side channel attack is increased, the circuit scale is increased.

ここで、目標とする回路規模が与えられたとしても、そのために追加するレジスタの位置によっては、動作周波数が最適にはならないといった様に、ある条件のもとで、できるだけ適切な回路構成を決定する必要がある。本発明は、その様な設計装置を提供するものである。   Here, even if a target circuit scale is given, an appropriate circuit configuration is determined under certain conditions so that the operating frequency is not optimized depending on the position of the register to be added. There is a need to. The present invention provides such a design apparatus.

<第一実施形態>
本実施形態において、設計装置は、論理式と、所望の安全性及び回路規模を考慮して決定した追加するレジスタ数を入力として、動作周波数をできるだけ高くする回路構成を出力する。なお、以下の各実施形態において各論理素子における遅延時間は同じであるものとする。
<First embodiment>
In the present embodiment, the design apparatus inputs a logical expression and the number of registers to be added determined in consideration of desired safety and circuit scale, and outputs a circuit configuration that increases the operating frequency as much as possible. In the following embodiments, the delay time in each logic element is the same.

図9(A)は、本実施形態における設計装置1の概略的な構成図である。以下、本実施形態における設計処理について説明する。   FIG. 9A is a schematic configuration diagram of the design apparatus 1 in the present embodiment. Hereinafter, the design process in this embodiment will be described.

手順0:設計装置1の入力部11に論理式と、追加するレジスタ数を入力する。なお、以下の説明においては、一例として、入力する論理式を(X∧(Y)∨(Z∧(U∨W)))とし、追加するレジスタ数を3とする。なお、演算子""は、否定(NOT)演算を意味している。 Procedure 0: A logical expression and the number of registers to be added are input to the input unit 11 of the design apparatus 1. In the following description, as an example, an input logical expression is (X∧ (Y ) ∨ (Z∧ (U∨W) )), and the number of registers to be added is 3. The operator “ ” means a NOT (NOT) operation.

手順1:設計装置の変換部12は、入力された論理式を木構造で表す。なお、木構造の葉ノードは、各変数の値を格納するレジスタであり、それ以外のノードは論理素子であるものとする。また、論理式の出力は、レジスタREGに格納する。本例における入力論理式(X∧(Y)∨(Z∧(U∨W)))は、図1の木構造で表すことができる。図1において、X、Y、U、W、Zは、変数を表すレジスタであり、ルート・ノードは、論理式の結果が格納されるレジスタREGではなく、最後に実行されるOR演算とする。 Procedure 1: The conversion unit 12 of the design apparatus represents the input logical expression in a tree structure. Note that the leaf node of the tree structure is a register that stores the value of each variable, and the other nodes are logic elements. The output of the logical expression is stored in the register REG. The input logical expression (X∧ (Y ) ∨ (Z∧ (U∨W) )) in this example can be represented by the tree structure of FIG. In FIG. 1, X, Y, U, W, and Z are registers representing variables, and the root node is not the register REG in which the result of the logical expression is stored, but the OR operation executed last.

手順2:設計装置の分割部13は、木構造の各葉ノードの深さを計算する。ノードの深さは、ノードのルート・ノードからの距離を示し、ここでは、ルート・ノードの深さを0とし、その他のノードの深さは、親ノードの深さに1を足したものとする。例えば、図1の各葉ノードの下の数字は、各葉ノードの深さを示している。   Procedure 2: The dividing unit 13 of the design apparatus calculates the depth of each leaf node of the tree structure. The depth of the node indicates the distance from the root node of the node. Here, the depth of the root node is 0, and the depth of the other nodes is the sum of the depth of the parent node plus 1. To do. For example, the number below each leaf node in FIG. 1 indicates the depth of each leaf node.

手順3:分割部13は、最大の深さを持つ葉ノードを選択し、ルート・ノードから選択した葉ノードに至る経路の中間点にレジスタを挿入して木構造を2つに分割する。ここで、中間点とは、レジスタを挿入して当該経路を2つの部分に分割することで、分割された2つの部分の論理素子数が同じか、その差が1となる位置である。なお、最大の深さを持つ葉ノードが複数存在する場合には、任意の1つを選択する。例えば、図1においては深さの最大値は4であり、葉ノードU又はWを選択する。ここで、葉ノードUを選択すると、AND演算とNOT演算の間の位置にレジスタを挿入して2つに分割することで、レジスタUと挿入するレジスタ間の論理素子数と、レジスタREGと挿入するレジスタ間の論理素子数は共に2となるため、この位置にレジスタを挿入する。図2は、分割後の2つの木構造を示している。図2に示す様に、分割して生成した新たな木構造のルート・ノードはNOT演算であり、NOT演算の結果は挿入したレジスタREG1に格納される。   Procedure 3: The dividing unit 13 selects a leaf node having the maximum depth, and inserts a register at an intermediate point of a route from the root node to the selected leaf node to divide the tree structure into two. Here, the intermediate point is a position where a register is inserted and the path is divided into two parts, so that the number of logical elements in the two divided parts is the same or the difference is 1. If there are a plurality of leaf nodes having the maximum depth, an arbitrary one is selected. For example, in FIG. 1, the maximum value of the depth is 4, and the leaf node U or W is selected. Here, when the leaf node U is selected, a register is inserted at a position between the AND operation and the NOT operation and is divided into two, whereby the number of logical elements between the register U and the register to be inserted, and the register REG are inserted. Since the number of logic elements between the registers to be both is 2, the register is inserted at this position. FIG. 2 shows two tree structures after division. As shown in FIG. 2, the root node of the new tree structure generated by dividing is a NOT operation, and the result of the NOT operation is stored in the inserted register REG1.

手順4:分割部13は、追加したレジスタ数が、入力されたレジスタ数である3となるまで手順2及び3を繰り返す。本例においては、2回目の手順2で計算される葉ノードの深さは図2に示す通りとなり、2回目の手順3で最大の深さを持つ葉ノードYが選択される。この場合、AND演算とNOT演算の間にレジスタREG2を挿入して木構造を分割する。分割後の状態は図3に示す通りとなる。   Procedure 4: The dividing unit 13 repeats the procedures 2 and 3 until the added number of registers becomes 3, which is the number of input registers. In this example, the leaf node depth calculated in the second procedure 2 is as shown in FIG. 2, and the leaf node Y having the maximum depth is selected in the second procedure 3. In this case, the tree structure is divided by inserting the register REG2 between the AND operation and the NOT operation. The state after the division is as shown in FIG.

さらに、3回目の手順2で計算される葉ノードの深さは図3に示す通りとなる。3回目の手順3で最大の深さ2を持つ葉ノードXを選択したとすると、例えば、OR演算とAND演算の間にレジスタREG3を挿入して木構造を分割する。分割後の状態は図4に示す通りとなる。この時点で追加したレジスタ数が、入力されたレジスタ数と等しくなるため手順4を終了する。   Furthermore, the depth of the leaf node calculated in the second procedure 2 is as shown in FIG. If the leaf node X having the maximum depth 2 is selected in the third procedure 3, for example, the register REG3 is inserted between the OR operation and the AND operation to divide the tree structure. The state after the division is as shown in FIG. Since the number of registers added at this time is equal to the number of input registers, the procedure 4 is terminated.

手順5:設計装置の出力部14は、手順4で決定した木構造の通りに論理回路を構成する。   Procedure 5: The output unit 14 of the design apparatus configures a logic circuit according to the tree structure determined in Procedure 4.

本実施形態においては、最大の深さを持つ葉ノードに至る経路の中点にレジスタを追加して木構造を分割することを追加するレジスタ数だけ繰り返す。その結果、レジスタ間の論理素子数は略平均化され、よって、レジスタ間の論理素子数が偏ることにより、レジスタ間の論理素子数の最大数により論理回路全体の動作周波数が制限されることを防ぐことができる。なお、上記実施形態では、レジスタ間の論理素子数の差は最大で1であるが、所定の値以下となる様にレジスタを挿入する形態であっても良い。   In the present embodiment, adding a register to the midpoint of the path to the leaf node having the maximum depth and dividing the tree structure are repeated for the number of registers to be added. As a result, the number of logic elements between the registers is substantially averaged. Therefore, the number of logic elements between the registers is biased, and the maximum number of logic elements between the registers limits the operating frequency of the entire logic circuit. Can be prevented. In the above embodiment, the maximum difference in the number of logic elements between the registers is 1. However, the registers may be inserted so as to be equal to or less than a predetermined value.

<第二実施形態>
本実施形態において、設計装置は、論理式と、安全性を考慮して決定した追加するレジスタの数と、動作周波数を考慮して決定したレジスタ間の論理素子の最大数とを入力として、入力されたレジスタ数を追加し、かつ、レジスタ間の論理素子の最大数を満たす回路構成が可能であるか否かを判定し、可能な場合にはその回路構成を出力する。図9(B)は、本実施形態における設計装置2の概略的な構成図であり、図8は、本実施形態の処理のフローチャートである。以下、本実施形態における設計処理について説明する。
<Second embodiment>
In the present embodiment, the design apparatus inputs a logical expression, the number of additional registers determined in consideration of safety, and the maximum number of logical elements between the registers determined in consideration of the operating frequency as inputs. It is determined whether or not a circuit configuration satisfying the maximum number of logic elements between the registers is possible, and if possible, the circuit configuration is output. FIG. 9B is a schematic configuration diagram of the design apparatus 2 in the present embodiment, and FIG. 8 is a flowchart of the processing of the present embodiment. Hereinafter, the design process in this embodiment will be described.

手順0:設計装置2の入力部21に論理式と、追加するレジスタ数と、レジスタ間の論理素子の最大数(最大素子数)を入力する。なお、以下の説明においては、入力された論理式を(X∧(Y)∨(Z∧U))とし、追加するレジスタ数Mを2とし、レジスタ間の論理素子の最大数Nを2とする。 Procedure 0: A logical expression, the number of registers to be added, and the maximum number of logical elements (maximum number of elements) between the registers are input to the input unit 21 of the design apparatus 2. In the following description, the input logical expression is (X∧ (Y ) ∨ (Z∧U)), the number of registers M to be added is 2, and the maximum number N of logic elements between the registers is 2. And

図8のS10で、設計装置2の変換部22は、第一実施形態と同様に入力された論理式を木構造で表す。図5は、入力された(X∧(Y)∨(Z∧U))を木構造で表したものである。なお、REGは、第一実施形態と同様に入力された論理式の出力を格納するレジスタである。設計装置2の分割部23は、S10でカウンタiを0に初期化する。 In S10 of FIG. 8, the conversion unit 22 of the design apparatus 2 represents the input logical expression in a tree structure as in the first embodiment. FIG. 5 shows the input (X∧ (Y ) ∨ (Z∧U)) in a tree structure. Note that REG is a register that stores the output of an input logical expression as in the first embodiment. The dividing unit 23 of the design apparatus 2 initializes the counter i to 0 in S10.

S11で、分割部23は、第一実施形態と同様に木構造の各葉ノードの深さを計算する。図5の各葉ノードの下の数字は、各葉ノードの深さを示している。そして、分割部23は、S11で最大の深さがレジスタ間の論理素子の最大数Nより大きいか否かを判定する。大きい場合にはS13に進み、そうでない場合にはS12に進む。例えば、図5において、最大の深さは3であり、最大数N=2より大きいためS12に進む。   In S11, the dividing unit 23 calculates the depth of each leaf node of the tree structure as in the first embodiment. The numbers below each leaf node in FIG. 5 indicate the depth of each leaf node. Then, the dividing unit 23 determines whether or not the maximum depth is larger than the maximum number N of logic elements between the registers in S11. If it is larger, the process proceeds to S13, and if not, the process proceeds to S12. For example, in FIG. 5, the maximum depth is 3, which is larger than the maximum number N = 2, so that the process proceeds to S12.

分割部23は、S12で最大の深さを持つ葉ノードを選択し、ルート・ノードから選択した葉ノードに至る経路上においてレジスタを挿入して木構造を2つに分割する。なお、レジスタを挿入する位置は、レジスタを挿入して当該経路を2つの部分に分割することで、分割された2つの部分のいずれかの論理素子数が最大数Nとなる位置である。なお、最大の深さを持つ葉ノードが複数存在する場合には、任意の1つを選択する。例えば、図5において、最大の深さ3を持つ葉ノードYに至る経路上のAND演算とNOT演算の間にレジスタを挿入して2つの木構造に分割するで、レジスタREGと挿入するレジスタ間の論理素子数が最大数N=2となるため、この位置にレジスタを挿入する。図6は、分割後の2つの木構造を示している。また、分割部23は、レジスタを1つ追加したのでカウンタiを1だけ増加させる。その後、再度、S11を行う。   The dividing unit 23 selects a leaf node having the maximum depth in S12, inserts a register on the route from the root node to the selected leaf node, and divides the tree structure into two. Note that the position where the register is inserted is a position where the number of logical elements in either of the two divided parts becomes the maximum number N by inserting the register and dividing the path into two parts. If there are a plurality of leaf nodes having the maximum depth, an arbitrary one is selected. For example, in FIG. 5, a register is inserted between an AND operation and a NOT operation on the path leading to the leaf node Y having the maximum depth 3 and divided into two tree structures. Since the maximum number N of logic elements is N = 2, a register is inserted at this position. FIG. 6 shows two tree structures after division. In addition, since one register is added, the dividing unit 23 increases the counter i by one. Then, S11 is performed again.

本例においては、2回目のS11で木構造の最大の深さは2であり、最大数N=2に等しいため、S13に進む。   In this example, since the maximum depth of the tree structure is 2 in S11 for the second time and is equal to the maximum number N = 2, the process proceeds to S13.

設計装置2の判定部24は、S13で追加したレジスタ数を示すiが追加するレジスタ数M=2未満であるかを判定する。iがM未満であるとS14に進み、そうでなければS15に進む。本例においては、追加したレジスタ数iは1であり、追加するレジスタ数M=2未満であるため、S14に進む。S14において、設計装置2の生成部25は、追加するレジスタ数が入力されたレジスタ数Mとなる様に、(M−i個)ダミーの論理回路を追加する。追加するダミーの論理回路は、レジスタ間の論理素子の数が最大数N以下であればその演算式の内容は任意である。本例においては(M−i)=1であるため、図7に示す様に、入力された論理式(X∧(Y)∨(Z∧U))とは無関係に、REG2=(X∨Y)を演算する1つの論理回路を挿入している。設計装置2の出力部26は、ダミーを含む木構造の通りに論理回路を構成して処理を終了する。 The determination unit 24 of the design apparatus 2 determines whether i indicating the number of registers added in S13 is less than the number of added registers M = 2. If i is less than M, the process proceeds to S14; otherwise, the process proceeds to S15. In this example, the added register number i is 1, and the added register number M is less than 2, so the process proceeds to S14. In S <b> 14, the generation unit 25 of the design apparatus 2 adds (M−i) dummy logic circuits so that the number of registers to be added becomes the input register number M. If the number of logic elements between the registers is equal to or less than the maximum number N, the content of the arithmetic expression of the dummy logic circuit to be added is arbitrary. In this example, since (M−i) = 1, as shown in FIG. 7, REG 2 = (X X) regardless of the input logical expression (X∧ (Y ) ∨ (Z∧U)). (Y) One logic circuit for calculating is inserted. The output unit 26 of the design apparatus 2 configures a logic circuit according to a tree structure including a dummy and ends the process.

なお、S13でiがM未満ではない場合、判定部24は、S15でiとMが等しいかを判定する。iとMが等しい場合、ダミーの論理回路を追加する必要がないので、出力部26は、木構造の通りに論理回路を構成して処理を終了する。一方、S15でiとMが等しくなければ、レジスタ間の論理素子数の最大数をN以下とするためには、追加するレジスタ数をMより大きくしなければならないため、出力部26は、S16でレジスタ数Mでは最大数をN以下にできないことを示す出力を行って処理を終了する。   If i is not less than M in S13, the determination unit 24 determines whether i and M are equal in S15. When i and M are equal, there is no need to add a dummy logic circuit, so the output unit 26 configures the logic circuit in a tree structure and ends the process. On the other hand, if i and M are not equal in S15, the number of registers to be added must be larger than M in order to make the maximum number of logical elements between registers N or less, the output unit 26 is configured to have S16. Then, an output indicating that the maximum number cannot be reduced to N or less with the number of registers M is performed, and the process is terminated.

本実施形態においては、所望の安全性及び動作周波数を満足する論理回路構成が存在するか否かと、存在する場合にはその構成を決定できる。   In the present embodiment, it is possible to determine whether or not there is a logic circuit configuration that satisfies the desired safety and operating frequency, and if so, the configuration.

なお、本発明による設計装置1、2は、コンピュータを設計装置1、2として動作させるプログラムにより実現することができる。これらコンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。   The design apparatuses 1 and 2 according to the present invention can be realized by a program that causes a computer to operate as the design apparatuses 1 and 2. These computer programs can be stored in a computer-readable storage medium or distributed via a network.

Claims (5)

入力された論理式に対応する論理回路の設計装置であって、
レジスタ数を入力する入力手段と、
前記論理回路への入力値を保存するレジスタと、前記論理回路の出力値を保存するレジスタとは別に、中間値を保存する前記レジスタ数のレジスタの挿入位置を決定する決定手段と、
を備えており、
前記決定手段は、レジスタ間の論理素子数の差が所定の値以下となる様にレジスタの挿入位置を決定することを特徴とする設計装置。
An apparatus for designing a logic circuit corresponding to an input logic expression,
An input means for inputting the number of registers;
A determination means for determining a register insertion position of the number of registers for storing intermediate values separately from a register for storing an input value to the logic circuit and a register for storing an output value of the logic circuit;
With
The design apparatus is characterized in that the determination means determines a register insertion position so that a difference in the number of logical elements between registers is equal to or less than a predetermined value.
前記決定手段は、
前記論理式を木構造に対応させ、当該木構造のルート・ノードから、当該ルート・ノードとの距離が最も遠い葉ノードに至る経路を分割することで生じる2つの部分のノード数が同じか、その差が1となる様に当該木構造を分割し、
追加するレジスタ数が2以上である場合には、さらに、分割して生じた各木構造について、ルート・ノードからの距離が最も遠い葉ノードを有する木構造のルート・ノードから、当該最も遠い葉ノードに至る経路上であって、当該経路を分割することで生じる2つの部分のノード数が同じか、その差が1となる位置で当該木構造を分割することを、追加するレジスタ数から1だけ引いた回数だけ繰り返し、
木構造を分割した位置を、前記中間値を保存するレジスタの挿入位置に決定することを特徴とする請求項1に記載の設計装置。
The determining means includes
Whether the number of nodes of the two parts generated by dividing the path from the root node of the tree structure to the leaf node farthest from the root node is the same, associating the logical expression with the tree structure, Divide the tree structure so that the difference is 1,
When the number of registers to be added is 2 or more, for each tree structure generated by division, the farthest leaf from the root node of the tree structure having the leaf node farthest from the root node Dividing the tree structure at a position where the number of nodes in the two parts generated by dividing the route is the same or the difference between them is 1 on the route to the node. Repeated as many times as
2. The design apparatus according to claim 1, wherein a position where the tree structure is divided is determined as an insertion position of a register for storing the intermediate value.
入力された論理式に対応する論理回路の設計装置であって、
レジスタ数及び最大素子数を入力する入力手段と、
前記論理回路への入力値を保存するレジスタと、前記論理回路の出力値を保存するレジスタとは別に、前記論理回路の中間値を保存するレジスタを、前記入力手段に入力されたレジスタ数だけ挿入することでレジスタ間の素子数を前記最大素子数以下にできるかを判定する判定手段と、
前記最大素子数以下にできない場合には警告を出力する出力手段と、
を備えていることを特徴とする設計装置。
An apparatus for designing a logic circuit corresponding to an input logic expression,
Input means for inputting the number of registers and the maximum number of elements;
Separately from the register for storing the input value to the logic circuit and the register for storing the output value of the logic circuit, the register for storing the intermediate value of the logic circuit is inserted by the number of registers input to the input means. Determining means for determining whether the number of elements between the registers can be equal to or less than the maximum number of elements,
An output means for outputting a warning when the maximum number of elements cannot be reduced,
A design apparatus characterized by comprising:
前記レジスタ間の素子数が前記最大素子数以下となる様にレジスタの挿入位置を決定する決定手段と、
前記決定手段が挿入位置を決定したレジスタ数が、前記入力手段に入力されたレジスタ数未満である場合、追加するレジスタ数が前記入力手段に入力されたレジスタ数に等しくなる様に、ダミーの論理回路を生成する生成手段と、
を備えていることを特徴とする請求項3に記載の設計装置。
Determining means for determining a register insertion position so that the number of elements between the registers is equal to or less than the maximum number of elements;
If the number of registers for which the determining means has determined the insertion position is less than the number of registers input to the input means, a dummy logic is used so that the number of registers to be added is equal to the number of registers input to the input means. Generating means for generating a circuit;
The design apparatus according to claim 3, further comprising:
請求項1から4のいずれか1項に記載の設計装置としてコンピュータを機能させることを特徴とするプログラム。   A program that causes a computer to function as the design apparatus according to claim 1.
JP2012263228A 2012-11-30 2012-11-30 Logic circuit design equipment Expired - Fee Related JP5992809B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012263228A JP5992809B2 (en) 2012-11-30 2012-11-30 Logic circuit design equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012263228A JP5992809B2 (en) 2012-11-30 2012-11-30 Logic circuit design equipment

Publications (2)

Publication Number Publication Date
JP2014109865A true JP2014109865A (en) 2014-06-12
JP5992809B2 JP5992809B2 (en) 2016-09-14

Family

ID=51030473

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012263228A Expired - Fee Related JP5992809B2 (en) 2012-11-30 2012-11-30 Logic circuit design equipment

Country Status (1)

Country Link
JP (1) JP5992809B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11272641A (en) * 1998-03-20 1999-10-08 Sharp Corp Register generating method, device therefor and record medium recording register generating program
JP2011169977A (en) * 2010-02-16 2011-09-01 Renesas Electronics Corp Cryptography processing device
US20120105099A1 (en) * 2010-10-29 2012-05-03 The Regents Of The University Of California Homogeneous Dual-Rail Logic for DPA Attack Resistive Secure Circuit Design

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11272641A (en) * 1998-03-20 1999-10-08 Sharp Corp Register generating method, device therefor and record medium recording register generating program
JP2011169977A (en) * 2010-02-16 2011-09-01 Renesas Electronics Corp Cryptography processing device
US20120105099A1 (en) * 2010-10-29 2012-05-03 The Regents Of The University Of California Homogeneous Dual-Rail Logic for DPA Attack Resistive Secure Circuit Design

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6016030213; 鄭カイ 外5名: '自動パイプライン化を用いたFPGAにおけるプロトタイピングの高速化' 電子情報通信学会技術研究報告 Vol.109,No.34, 20090513, pp.19-24, 社団法人電子情報通信学会 *

Also Published As

Publication number Publication date
JP5992809B2 (en) 2016-09-14

Similar Documents

Publication Publication Date Title
Hamburg Ed448-Goldilocks, a new elliptic curve
Belaïd et al. Randomness complexity of private circuits for multiplication
Courtois et al. Solving circuit optimisation problems in cryptography and cryptanalysis
EP3208789A1 (en) Method of protecting a circuit against a side-channel analysis
JP6110577B1 (en) Elliptic curve point multiplication procedure to resist side channel information leakage
Ghandali et al. A design methodology for stealthy parametric trojans and its application to bug attacks
EP2973144A1 (en) System, method and computer-accessible medium for facilitating logic encryption
US20190287427A1 (en) Device and method for performing obfuscated arithmetic
US20160149708A1 (en) Electronic signature system
JP2013113978A (en) Semiconductor device and ic card
Niasar et al. Optimized architectures for elliptic curve cryptography over Curve448
Van Beirendonck et al. Analysis and comparison of table-based arithmetic to boolean masking
Rashidi High-throughput and lightweight hardware structures of HIGHT and PRESENT block ciphers
Sghaier et al. Fast hardware implementation of ECDSA signature scheme
Dubeuf et al. Enhanced elliptic curve scalar multiplication secure against side channel attacks and safe errors
EP3367611A1 (en) Generating elliptic curve cryptographic system parameters
JP5992809B2 (en) Logic circuit design equipment
Gebotys et al. Preaveraging and carry propagate approaches to side-channel analysis of HMAC-SHA256
Van Gelder Verifying propositional unsatisfiability: Pitfalls to avoid
Arribas et al. Glitch-resistant masking schemes as countermeasure against fault sensitivity Analysis
Covic et al. Circuit masking: from theory to standardization, a comprehensive survey for hardware security researchers and practitioners
Fournaris et al. Comparing design approaches for elliptic curve point multiplication over GF (2k) with polynomial basis representation
van den Berg RISC-V implementation of the NaCl-library
Chaves et al. SCA-Resistance for AES: How Cheap Can We Go?
Burns et al. Security Evaluation of Balanced 1-of-$ n $ Circuits

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150805

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160726

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: 20160808

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160818

R150 Certificate of patent or registration of utility model

Ref document number: 5992809

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees