KR100403938B1 - High speed (7, 3) Adder for symmetric key cipher - Google Patents

High speed (7, 3) Adder for symmetric key cipher Download PDF

Info

Publication number
KR100403938B1
KR100403938B1 KR10-1999-0021571A KR19990021571A KR100403938B1 KR 100403938 B1 KR100403938 B1 KR 100403938B1 KR 19990021571 A KR19990021571 A KR 19990021571A KR 100403938 B1 KR100403938 B1 KR 100403938B1
Authority
KR
South Korea
Prior art keywords
inputs
adder
nand
oring
output
Prior art date
Application number
KR10-1999-0021571A
Other languages
Korean (ko)
Other versions
KR20010002008A (en
Inventor
서정욱
이상흥
Original Assignee
한국전자통신연구원
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 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR10-1999-0021571A priority Critical patent/KR100403938B1/en
Publication of KR20010002008A publication Critical patent/KR20010002008A/en
Application granted granted Critical
Publication of KR100403938B1 publication Critical patent/KR100403938B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5318Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with column wise addition of partial products, e.g. using Wallace tree, Dadda counters
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Abstract

본 발명은 대칭키 암호의 빠른 연산을 위해 요구되는 고속 곱셈기에서 곱셈 연산시 부분곱의 수를 줄이기 위한 대칭키 암호용 고속 (7, 3) 덧셈기에 관한 것이다. 본 발명은 종래의 Wallace, Dadda 및 Swartzlander에서 설계된 (7, 3) 덧셈기에 비해서 단순 게이트들을 사용하여 구성되었고, 또한 7개의 입력에 대하여 합(S) 출력 1개와, 2 웨이트와 4웨이트를 각기 갖는 캐리(C1, C2)를 출력하는 구성으로 되어 있다. 이에 따른 본발명의 (7,3) 덧셈기는 Swartzlander의 (7,3) 덧셈기 보다 50%, Mehta의 (7,3) 덧셈기 보다 25%의 성능(속도) 개선을 꾀할 수 있게 된다.The present invention relates to a fast (7, 3) adder for symmetric key cryptography to reduce the number of partial products in a multiplication operation in a fast multiplier required for fast operation of symmetric key cryptography. The present invention is constructed using simple gates compared to the (7, 3) adder designed in the conventional Wallace, Dadda and Swartzlander, and also has one sum (S) output, seven weights and four weights for seven inputs. It has a structure of outputting the carry (C 1, C 2). Accordingly, the (7,3) adder of the present invention can improve the performance (speed) by 50% than Swartzlander's (7,3) adder and 25% than Mehta's (7,3) adder.

Description

대칭키 암호용 고속 (7, 3) 덧셈기{High speed (7, 3) Adder for symmetric key cipher}High speed (7, 3) Adder for symmetric key cipher}

본 발명은 매우 큰 수를 사용하는 암호 프로세서의 곱셈에 관계된 기술분야에 관한 것으로서, 특히 빠른 곱셈을 위한 (7, 3) 덧셈기(카운터)에 관한 것이다.TECHNICAL FIELD The present invention relates to the technical field related to multiplication of cryptographic processors using very large numbers, and in particular, to a (7, 3) adder (counter) for fast multiplication.

곱셈은 많은 부분곱들이 곱을 만드는데 더해지기 때문에 본질적으로 느린 연산이다. 많은 사람들이 부분곱의 수를 줄이려는 노력과 함께, 부분곱의 합을 빠르게 연산하는 방법을 연구해 왔다.Multiplication is essentially a slow operation because many partial products are added to make a product. Many people have been exploring how to quickly calculate the sum of partial products, with efforts to reduce the number of partial products.

먼저, 부분곱의 수를 줄이기 위하여 변형 Booth 인코딩(encoding)이 사용될 수 있다. 일반적으로 많이 쓰이는 기수(Radix)-4 변형 Booth 인코딩 알고리즘은 16 × 16 비트 곱셈의 경우에 부분곱의 수를 16개에서 8개로 줄일 수 있으며, 인코딩이 용이하다. 그러나, 이것 역시 여전히 큰 수이며 전체 지연시간(delay time)을 실질적으로 좌우한다. 특히, 매우 큰 수를 사용하는 암호 프로세서는 지연시간을 줄이기 위하여 Radix-4을 사용하는 것 조차도 불충분하다. 이와 같은 이유로 인하여 radix-8, radix-16 등 더 높은 radix 체계가 사용되고 있지만 이 기수(radix) 체계는 인코딩이 복잡하여 많은 부가적인 하드웨어를 수반하여야 한다.First, modified Booth encoding may be used to reduce the number of partial products. The commonly used Radix-4 modified Booth encoding algorithm can reduce the number of partial products from 16 to 8 for 16 × 16 bit multiplication, and is easy to encode. However, this is still a large number and substantially dictates the overall delay time. In particular, cryptographic processors using very large numbers are not enough to even use Radix-4 to reduce latency. For this reason, higher radix schemes such as radix-8 and radix-16 are used, but this radix scheme is complicated in encoding and requires a lot of additional hardware.

다음은 부분곱의 합을 빠르게 하기 위한 종래기술의 예들을 살펴보면 다음과 같다.The following is an example of the prior art for speeding up the sum of partial products.

먼저, Wallace는 리플 캐리(ripple carry)가 없는 전가산기(full adder)들의 배열로서, 3 입력을 취하여 2 개의 등가 출력을 만들어 내는 가산기를 사용하였다. Wallace는 부분곱의 합을 구하는데 여러 레벨에서 덧셈기 (가산기)를 사용하였다.First, Wallace used an adder that takes three inputs and produces two equivalent outputs as an array of full adders without ripple carry. Wallace used an adder at several levels to sum the partial products.

또한 다른 예로서, Dadda는 부분곱 행렬을 줄이기 위하여 (n, m)병렬 덧셈기를 도입하였다. 병렬 덧셈기는 액티브(active)인 1의 개수를 세는 디바이스를 말한다. (n, m) 병렬 덧셈기는 n개의 입력과 m개의 출력을 갖는 조합 논리 회로이다.As another example, Dadda introduced a (n, m) parallel adder to reduce partial product matrices. A parallel adder is a device that counts the number of 1s that are active. The (n, m) parallel adder is a combinational logic circuit with n inputs and m outputs.

여기서, m은 입력에 들어오는 1의 개수를 2진수로 코드화한 값이다. 따라서, 반가산기(half adder)는 (2, 2) 덧셈기가 되며, 전가산기는 (3, 2)덧셈기가 된다. Dadda는 적절한 병렬 덧셈기들을 사용하여 부분곱의 높이를 줄이려고 하였으며, Dadda는 사용 가능한 병렬 덧셈기에 따라 각 레벨의 부분곱 행렬의 적절한 높이가 존재한다는 것을 이론적으로 정립하였다. 각 레벨에서, Dadda는 부분곱 행렬의 높이를 줄이기 위하여 (3, 2) 덧셈기와 (2, 2) 덧셈기 만을 사용하거나 (3, 2) 이외의 덧셈기((7, 3)덧셈기, (15, 4)덧셈기)를 사용하였다. 이러한 Dadda의 (n, m)병렬 덧셈기에서, n은 같은 웨이트(weight)를 갖는 입력의 수이다. n은 부분곱 행렬의 같은 열(column)로부터 나와야 한다. 그런데, Stenzel은 Dadda의 개념을 확장하여 다중 열(multiple columns)로 구성된 입력 비트를 갖는 병렬 덧셈기를 제안하였다.Where m is the number of 1s input to the binary coded value. Thus, the half adder becomes a (2, 2) adder and the full adder becomes a (3, 2) adder. Dadda tried to reduce the height of the partial product by using the appropriate parallel adders, and Dadda theoretically established that there is an appropriate height of the partial product matrix at each level according to the available parallel adders. At each level, Dadda uses only (3, 2) and (2, 2) adders to reduce the height of the partial product matrix, or adders other than (3, 2) ((7, 3) adders, (15, 4). Adder). In this Dadda's (n, m) parallel adder, n is the number of inputs with the same weight. n must come from the same column of the partial product matrix. However, Stenzel extended the concept of Dadda and proposed a parallel adder with input bits consisting of multiple columns.

또 다른 예로서, Swartzlander는 2개의 k 입력 덧셈기와 (1+|log2k| ) 단(stage) 리플 캐리 덧셈기를 사용하여 덧셈기를 설계하는 방법 ((2k+1)개 입력을 갖는 덧셈기)을 사용하였다. 예를 들어, (7, 3) 덧셈기는 3 입력의 (3,2) 카운터 2개와 2단의 리플 캐리 덧셈기로 구현된다.As another example, Swartzlander uses a method of designing an adder (two adders with (2k + 1) inputs) using two k input adders and a (1+ | log 2 k |) stage ripple carry adder. Used. For example, the (7, 3) adder is implemented with two 3-input (3,2) counters and a two-stage ripple carry adder.

또 다른 예로서, Mehta는 기존의 Wallace, Dadda의 설계들을 사용하는 것 보다 빠른 (7, 3) 카운터를 고안하여 16 × 16 비트 곱셈기를 설계하는데 적용하였다. 그러나, Mehta의 방법은 Wallace, Dadda 보다 빠르지만 하드웨어가 많이 소모된다는 단점이 있다.As another example, Mehta devised a (7, 3) counter that was faster than using existing Wallace, Dadda designs and applied it to design a 16x16 bit multiplier. However, Mehta's method is faster than Wallace and Dadda, but it consumes a lot of hardware.

다음은 Swartzlander의 (7,3) 덧셈기와 Mehta의 (7,3) 덧셈기에 대하여 설명하겠다. Swartzlander의 (7,3) 덧셈기는 (3,2) 덧셈기 만으로 설계된 덧셈기이다. 첫번째 레벨에서, 두 개의 (3,2) 덧셈기는 7개의 입력 중 6개를 취하여 두 개의 합과 두 개의 캐리 출력을 발생시킨다. 첫번째 레벨의 합 출력들은 두 번째 레벨에서 합 출력을 발생시키기 위하여 7번째 입력과 결합된다. 이 (3,2) 덧셈기의 캐리 출력은 다시 다른 (3,2) 덧셈기를 사용하여 첫번째 레벨에서의 두 캐리 출력과 결합되어 2 웨이트의 캐리 C1과 4 웨이트의 캐리 C2를 만든다. 이 회로는 6개의배타적(exclusive) 논리합(OR) 지연을 가진다.The following section describes Swartzlander's (7,3) adder and Mehta's (7,3) adder. Swartzlander's (7,3) adder is an adder designed only with (3,2) adders. In the first level, two (3,2) adders take six of the seven inputs and generate two sums and two carry outputs. The sum outputs of the first level are combined with the seventh input to generate a sum output at the second level. The carry output of this (3,2) adder is then combined with the two carry outputs at the first level using another (3,2) adder to produce two weights of carry C 1 and four weights of carry C 2 . This circuit has six exclusive OR delays.

또한, Mehta가 제안한 (7,3) 덧셈기는 다음과 같다. 먼저, 7개의 입력 (x0∼x6)을 두 군(x0, x1, x2, x3), (x4, x5, x6)으로 나눈다. 첫번째 내부신호(A)는 첫번째 군에서 입력의 1의 개수가 2개, 3개, 또는 4개에 대한 캐리이다. 반면, 두번째 내부 신호(B)는 두번째 군에서 입력의 1의 개수가 2개 또는 3개에 대한 캐리이다. 세번째 내부신호(C)는 첫번째 군에서 입력의 1의 개수가 4일 때와 두 군 사이에 1의 개수가 1-1, 1-3, 3-1일 때 논리합(이하, 'OR')을 함으로써 발생된다. 이 세 신호(A, B, C)들은 2 웨이트의 C1과 4 웨이트의 C2를 얻기 위하여 1개의 전가산기를 사용하여 결합된다. 본 발명에서는 앞의 두 덧셈기들 보다 더 빠른 덧셈기를 언급한다.Also, Mehta's proposed (7,3) adder is First, the seven inputs (x0 to x6) are divided into two groups (x0, x1, x2, x3) and (x4, x5, x6). The first internal signal A is a carry of two, three, or four 1s of the inputs in the first group. On the other hand, the second internal signal B is a carry of two or three inputs 1 in the second group. The third internal signal C is a logical sum ('OR') when the number of inputs 1 is 4 in the first group and the number of 1s is 1-1, 1-3, and 3-1 between the two groups. Is generated. These three signals (A, B, C) are combined using one full adder to obtain two weights of C 1 and four weights of C 2 . The present invention refers to a faster adder than the previous two adders.

본 발명은 대칭 암호 프로세서의 빠른 곱셈을 위하여 종래기술보다 (7, 3) 곱셈기의 속도를 개선하는데 그 목적이 있다.It is an object of the present invention to improve the speed of a (7, 3) multiplier over the prior art for faster multiplication of a symmetric cryptographic processor.

도 1은 본 발명의 고속 (7,3) 덧셈기의 구성도,1 is a block diagram of a high speed (7,3) adder of the present invention,

도 2는 본 발명의 고속 (7,3) 덧셈기의 예시도.2 is an illustration of a fast (7,3) adder of the present invention.

이하, 본 발명을 첨부된 도면을 참조하여 설명한다.Hereinafter, the present invention will be described with reference to the accompanying drawings.

도 1은 본 발명의 (7,3) 덧셈기의 구성도이다.1 is a block diagram of a (7,3) adder of the present invention.

본 발명의 (7,3)덧셈기는 인버터(inverter), NAND(낸드), NOR(노아), AOI(And-Or-Inverter) 및 OAI(Or-And-Inverter) 게이트들로 구성하였으며, 4입력이하로 실현하였다. ND는 NAND, NR는 NOR를 의미하며, ND와 NR 뒤의 숫자는 입력수를 의미한다. 또한, AO는 AOI, OA는 OAI를 의미하며 뒤의 숫자 둘은 각각 AND(앤드)나 OR(오아) 게이트의 입력의 수 및 게이트 수를 의미한다. 여기서, 같은 웨이트(weight)를 갖는 7비트 입력(부분합)이 주어질 때, S는 합이고, C1은 2 웨이트를 갖는 캐리이며, C2는 4 웨이트를 갖는 캐리이다.The (7,3) adder of the present invention is composed of an inverter, a NAND (NAND), a NOR (Noah), an AOI (And-Or-Inverter), and an OAI (Or-And-Inverter) gate. It was realized as follows. ND means NAND, NR means NOR, and the numbers after ND and NR mean the number of inputs. In addition, AO means AOI, OA means OAI, and the second two numbers mean the number of gates and the input of AND and OR gates, respectively. Here, when a 7-bit input (subtotal) with the same weight is given, S is a sum, C 1 is a carry with 2 weights, and C 2 is a carry with 4 weights.

도 1에서 4 웨이트를 갖는 캐리 C2에 대하여 설명하면 다음과 같다.Referring to the carry C 2 having a weight of 4 in FIG. 1 as follows.

먼저, 같은 웨이트를 갖는 7개의 입력 (x0∼x6)을 각각 받은 블록 ND2(10), AO24(11), AO23(12), AO24(13), ND3(14), NR2(15), ND2(16), NR3(17), AO34(18), NR4(19), ND4(20)가 계산된다.First, blocks ND2 (10), AO24 (11), AO23 (12), AO24 (13), ND3 (14), NR2 (15), and ND2 (7), each of which receives seven inputs (x0 to x6) having the same weight. 16), NR3 (17), AO34 (18), NR4 (19), and ND4 (20) are calculated.

다음, 앞서 계산된 블록 ND2(10), AO24(11), AO23(12), AO24(13), ND3(14), NR2(15)의 출력을 입력으로 받아 OA23(21) 블록에서 계산된다. 동시에, AO23(12)와 ND2(16)의 출력을 입력으로 받아 NR2(22)을 수행하고, NR3(17)과 AO34(18)의 출력을 입력으로 받아 NR2(23)을 수행하고, ND4(20)으로부터 입력을 받아 INV(24)블록에서 각각 반전(Inverting)되어 계산된다.Next, the outputs of the blocks ND2 (10), AO24 (11), AO23 (12), AO24 (13), ND3 (14), and NR2 (15) calculated above are input and calculated in the OA23 (21) block. At the same time, the outputs of AO23 (12) and ND2 (16) are received as inputs to perform NR2 (22), the outputs of NR3 (17) and AO34 (18) are inputted to perform NR2 (23) and ND4 ( 20) are inputted from the INV 24 block and are calculated.

다음으로, NR2(22)와 OA23(21)의 출력을 입력으로 받아 NR2(25) 블록, NR2(23), NR4(19) 및 INV(24)의 수행 결과를 입력으로 받아 NR3(26) 블록에서 노아(NOR)를 수행하여 계산된다.Next, the outputs of the NR2 (22) and the OA23 (21) are received as inputs, and the NR2 (26) blocks are received as the inputs of the NR2 (25) blocks, NR2 (23), NR4 (19), and INV (24). Calculated by performing NOR at.

마지막으로, NR2(25)와 NR3(26)의 출력을 ND2(27)블록에서 낸딩 계산을 함으로써 4 웨이트의 C2가 얻어진다.Finally, four weights of C 2 are obtained by NAND calculation of the outputs of NR2 25 and NR3 26 in the ND2 27 block.

한편, 2 웨이트를 갖는 캐리 C1에 대하여 설명하면 다음과 같다.On the other hand, a description will be given of the carry C 1 having two weights.

먼저, 같은 웨이트를 갖는 7개의 입력 (x0∼x6)으로부터 블록 NR3(31), AO34(32), ND3(33), AO34(34), ND4(35), ND4(36), AO23(37), AO42(38), AO23(39), ND4(40), ND3(41), AO32(42), AO33(43), ND3(44), ND3(47)이 계산된다.First, block NR3 (31), AO34 (32), ND3 (33), AO34 (34), ND4 (35), ND4 (36), and AO23 (37) from seven inputs (x0 to x6) having the same weight. , AO42 (38), AO23 (39), ND4 (40), ND3 (41), AO32 (42), AO33 (43), ND3 (44), and ND3 (47) are calculated.

다음, 앞서 계산된 블록 NR3(31)와 AO34(32)로부터 NR2(48) 블록, ND3(33)과 AO34(34)로부터 NR2(49) 블록, XO2(81)로부터 INV(84) 블록, ND4(36)과 AO23(37)로부터 NR2(55) 블록, ND4(20)과 AO23(12)로부터 NR2(45) 블록, ND2(16)과 ND3(44)로부터 AO02(46) 블록, ND3(47)과 AO34(18)로부터 NR2(56) 블록, AO42(38)과 AO23(39)로부터 NR2(50) 블록, ND4(40)과 AO23(37)로부터 NR2(51) 블록, ND3(41)과 AO33(43)으로부터 NR2(52) 블록, AO32(42), AO33(43)과 ND3(44)로부터 AO21(53) 블록이 각각 계산된다. 그리고 ND4(35)와 INV(84)로부터 NR2(54)가 계산되며, NR2(50), NR2(51), NR2(52), AO21(53)으로부터 NR4(59)가 계산되며, NR2(45), AO02(46), NR2(56)으로부터 NR3(58)이 계산된다.Next, the blocks NR3 (31) and NR2 (48) from AO34 (32), NR2 (49) blocks from ND3 (33) and AO34 (34), INV (84) blocks from XO2 (81), ND4 calculated above NR2 (55) blocks from 36 and AO23 (37), NR2 (45) blocks from ND4 (20) and AO23 (12), AO02 (46) blocks from ND2 (16) and ND3 (44), ND3 (47) NR2 (56) blocks from AO34 (18), NR2 (50) blocks from AO42 (38) and AO23 (39), NR2 (51) blocks from ND4 (40) and AO23 (37), ND3 (41) and NR2 (52) blocks from AO33 (43), AO32 (42), AO21 (53) blocks from AO33 (43) and ND3 (44) are calculated, respectively. NR2 (54) is calculated from ND4 (35) and INV (84), NR4 (59) is calculated from NR2 (50), NR2 (51), NR2 (52), AO21 (53), and NR2 (45). ), NR3 58 is calculated from AO02 46 and NR2 56.

계산된 NR2(48), NR2(54), NR2(49)와 NR2(55) 블록들의 출력을 입력으로 받아 NR4(57) 블록에서 논리적 노어에 의해 계산된다.The outputs of the calculated NR2 (48), NR2 (54), NR2 (49) and NR2 (55) blocks are input and calculated by the logical NOR in the NR4 (57) block.

계산된 NR4(57), NR3(58) 및 NR4(59) 블록들로부터의 출력을 입력받아 ND3(60)블록에서 계산되어 2 웨이트를 갖는 캐리 C1이 출력된다.The outputs of the calculated NR4 (57), NR3 (58) and NR4 (59) blocks are input and calculated in the ND3 (60) block to output a carry C 1 having two weights.

또한, 도 1에서와 같은, 1 웨이트를 갖는 합 S에 대하여 설명하면 다음과 같다. 여기서, XO는 배타적 논리합(exclusive-OR)을 의미하고, 뒤의 숫자는 입력 수를 의미한다.In addition, the sum S having one weight as in FIG. 1 will be described as follows. Here, XO means exclusive-OR, and the number after it means the number of inputs.

먼저, 같은 웨이트를 갖는 7개의 입력(x0∼x6)을 받아 XO2(81), XO2(82) 및XO2(83)블럭에서 각기 배타적 논리합을 수행하여 입력이 계산된다.First, inputs are calculated by receiving the seven inputs (x0 to x6) having the same weight and performing an exclusive OR on the XO2 81, XO2 82, and XO2 83 blocks, respectively.

다음, 상기 XO2(81)과 XO2(82)로부터의 두 출력을 입력으로 받아 XO2(85)에서 계산하고, XO2(83)의 출력과 입력(x6)을 받아 XO2(86)의 출력이 계산된다. 이 XO2(85)와 XO2(86) 블록에서 계산된 출력을 입력으로 받아 XO2(87)블록에서 배타적 논리합에 의한 계산으로 1 웨이트를 갖는 합 S가 출력된다.Next, the two outputs from the XO2 81 and the XO2 82 are received as inputs, calculated by the XO2 85, and the outputs of the XO2 86 and the outputs of the XO2 86 are calculated. . The output S calculated by the XO2 85 and XO2 86 blocks is received as an input, and the sum S having one weight is output by the exclusive logical sum in the XO2 87 block.

도 2는 상기 도 1의 구성에서 실제로 사용될 게이트 회로를 적용한 실현 예로써 구성 및 동작은 도 1과 동일하므로 생략한다.FIG. 2 is an embodiment in which the gate circuit to be actually used in the configuration of FIG. 1 is applied, and thus the configuration and operation thereof are the same as in FIG.

이상과 같은 본 발명을 이용하면, 대칭키 암호 프로세서의 곱셈을 수행하는데 속도를 개선시킬 수 있다.Using the present invention as described above, it is possible to improve the speed in performing the multiplication of the symmetric key cryptographic processor.

즉, 본 발명의 (7,3) 덧셈기와 기존의 (7,3) 덧셈기과의 비교를 통하여 본 발명의 효과를 설명해보면 다음과 같다.That is, the effects of the present invention will be described through comparison between the (7,3) adder of the present invention and the existing (7,3) adder.

배타적 논리합(exclusive-OR) 게이트는 단순 게이트 (인버터, 2-입력 NAND, 3-입력 NAND, 4-입력 NAND, 2-입력 NOR, 3-입력 NOR, 4-입력 NOR) 보다 두배의 지연시간을 가지며, 복합 게이트 AOI(AND-OR-Inverter), OAI(OR-AND-Inverter)는 단순 게이트의 1.5배 지연시간을 갖는다.Exclusive-OR gates have twice the latency of simple gates (inverter, 2-input NAND, 3-input NAND, 4-input NAND, 2-input NOR, 3-input NOR, 4-input NOR) The composite gate AND-OR-Inverter (AOI) and OR-AND-Inverter (OAI) have a 1.5 times delay time than a simple gate.

따라서, 총 게이트 지연시간 측면에서 종래기술과 비교를 하면, (3,2) 덧셈기 만을 사용한 Swartzlander (7,3) 덧셈기[Swartzlander, E.E., JR. , "Parallel Counters" , IEEE Trans on Computers, Vol. C-22, 1021-1024pp, 1973.8. ]는 12지연시간를 갖고 Mehta의 (7,3) 덧셈기[M. Mehta 등, "High-Speed Multiplier Design using Multi-Input Computer and Compressor Circuits", Proc. of the 10th Sym. on Computer Arithmetic, 1991]는 8 지연시간을 갖는 반면, 본 발명의 덧셈기는 6 지연시간(입력이 인버터를 거치는 경우에도 지연시간 1로 포함하여 계산)을 갖는다.Thus, compared with the prior art in terms of total gate delay time, Swartzlander (7,3) adder using only (3,2) adder [Swartzlander, E.E., JR. , "Parallel Counters", IEEE Trans on Computers, Vol. C-22, 1021-1024 pp, 1973.8. ] Has 12 delays and Mehta's (7,3) adder [M. Mehta et al., "High-Speed Multiplier Design using Multi-Input Computer and Compressor Circuits", Proc. of the 10th Sym. on Computer Arithmetic, 1991] has 8 delays, whereas the adder of the present invention has 6 delays (calculated as delay 1 even when the input goes through the inverter).

따라서, 본 발명의 덧셈기가 종래기술에서 제시하였던 (3,2) 만을 사용한 덧셈기 보다 지연시간면에서 50%가 개선되었으며, Mehta의 덧셈기 보다는 25%가 개선되었다.Therefore, the adder of the present invention is improved by 50% in terms of delay time compared to the adder using only (3,2), which was proposed in the prior art, and is improved by 25% compared to that of Mehta.

이에 따라, 본 발명의 덧셈기가 앞서 언급한 카운터들 보다 속도가 매우 개선되었음을 알 수 있다. 이를 요약하여 표 1에 나타내었다.Accordingly, it can be seen that the adder of the present invention is much faster than the counters mentioned above. This is summarized in Table 1.

(7,3) 덧셈기의 비교Comparison of (7,3) adders SwartzlanderSwwartzlander MehtaMehta 본 발명The present invention 지연시간Delay time 1212 88 66

Claims (1)

매우 큰 수를 사용하는 암호 프로세서의 곱셈시에 사용하는 대칭키 암호용 고속 (7,3) 덧셈기에 있어서,In the fast (7,3) adder for symmetric key cryptography used to multiply very large numbers of cryptographic processors, 2 입력의 NAND를 수행하기 위한 ND2 수단(10), 4 입력을 AND 및 OR하기 위한 AO24 수단(11), 3 입력을 AND 및 OR하기 위한 AO23 수단(12), 4 입력을 AND 및 OR하기 위한 AO24 수단(13), 3 입력의 NAND를 수행하기 위한 ND3 수단(14) 및 2 입력의 NOR를 수행하기 위한 NR2 수단(15)의 각 출력을 입력으로 하여 OR 및 AND를 수행하는 OA23수단(21)과,ND2 means 10 for performing NAND of 2 inputs, AO24 means 11 for ANDing and ORing 4 inputs, AO23 means 12 for ANDing and ORing 3 inputs, for ANDing and ORing 4 inputs OA23 means 21 for performing OR and AND by inputting each output of the AO24 means 13, the ND3 means 14 for performing NAND of 3 inputs, and the NR2 means 15 for performing NOR of 2 inputs. )and, ND2수단(16)의 출력과 상기 AO23수단(12)의 출력인 2 입력의 NOR를 수행하기 위한 NR2 수단(22), 이 NR2 수단(22)과 상기 OA23수단(21)으로부터의 두 입력을 받아 NOR를 수행하기 위한 NR2 수단(25)과,NR2 means 22 for performing an NOR of two inputs, the output of ND2 means 16 and the output of AO23 means 12, receiving two inputs from the NR2 means 22 and the OA23 means 21; NR2 means 25 for performing a NOR, 4 입력의 NAND를 수행하기 위한 ND4 수단(20), 4 입력의 NOR를 수행하기 위한 NR4 수단(19), 4 입력을 AND 및 OR하기 위한 AO34 수단(18), 3 입력의 NOR를 수행하기 위한 NR3 수단(17), 상기 AO34 수단(18)과 NR3 수단(17)로부터의 2 입력을 NOR하기 위한 NR2수단(23), 상기 ND4수단(20)의 출력을 인버팅하는 INV 수단(24), 상기 NR2수단(23)과 상기 INV 수단(24)과 상기 NR4 수단(19)으로부터의 3 입력을 받아 NOR를 수행하기 위한 NR3 수단(26)과,ND4 means 20 for performing NAND of 4 inputs, NR4 means 19 for performing NOR of 4 inputs, AO34 means 18 for ANDing and ORing 4 inputs, for performing NOR of 3 inputs NR3 means 17, NR2 means 23 for NOR two inputs from the AO34 means 18 and NR3 means 17, INV means 24 for inverting the output of the ND4 means 20, NR3 means 26 for performing NOR by receiving three inputs from the NR2 means 23, the INV means 24, and the NR4 means 19, 상기 NR2수단(25)과 상기 NR3 수단(26)으로부터의 2입력을 받아 NAND를 수행하기 위한 ND2 수단(27)으로 구성되어, 캐리 C2를 출력하는 제 1 캐리 출력 수단;A first carry output means for receiving a second input from the NR2 means 25 and the NR3 means 26 is composed of ND2 means (27) for performing a NAND, a carry output C 2; 3입력을 NOR수행하기 위한 NR3수단(31), 8입력을 AND 및 OR수행하기 위한 AO34수단(32), 이 NR3수단(31)과 AO34수단(32)의 두 출력을 NOR 하기 위한 NR2(48)과,NR3 means 31 for performing NOR 3 inputs, AO34 means 32 for ANDing and ORing 8 inputs, and NR2 (48) for NORing two outputs of this NR3 means 31 and AO34 means 32; )and, 3입력을 NAND 수행하기 위한 ND3 수단(33), 8입력을 AND 및 OR 수행하기 위한 AO34수단(34), 이 ND3 수단(33)과 AO34수단(34)의 두 출력을 NOR 수행하기 위한 NR2수단(49)과,ND3 means 33 for performing NAND 3 inputs, AO34 means 34 for ANDing and ORing 8 inputs, NR2 means for performing NOR two outputs of the ND3 means 33 and AO34 means 34 49, XO2(81)의 출력을 인터팅하는 INV 수단(84), 4입력을 NAND하기 위한 ND4수단(35), 상기 INV 수단(84)과 상기 ND4수단(35)의 두 출력을 NOR하기 위한 NR2(54)과,INV means 84 for intercepting the output of XO2 81, ND4 means 35 for NAND 4 inputs, NR2 for NOR two outputs of the INV means 84 and ND4 means 35 ( 54), 4입력을 NAND 수행하기 위한 ND4수단(36), 6 입력을 AND 및 OR 수행하기 위한 AO23수단(37), 이 ND4수단(36)과 AO23수단(37)의 출력인 2입력을 NOR하기 위한 NR2수단(55)과,ND4 means 36 for performing NAND 4 inputs, AO23 means 37 for ANDing and ORing 6 inputs, NR2 for NORing 2 inputs which are outputs of the ND4 means 36 and AO23 means 37 Means 55, 상기 NR2수단(48, 49, 54, 55)으로부터의 4 출력을 입력으로 하여 NOR를 수행하는 NR4수단(57)과,NR4 means 57 for performing NOR by inputting four outputs from the NR2 means 48, 49, 54, and 55, 6 입력을 AND 및 OR하기 위한 AO42 수단(38), 3 입력을 AND 및 OR하기 위한 AO23 수단(39), 4 입력의 NAND를 수행하기 위한 ND4 수단(40), 3 입력의 NAND를 수행하기 위한 ND3 수단(41), 5 입력을 AND 및 OR하기 위한 AO32 수단(42), 4 입력을 AND 및 OR하기 위한 AO33 수단(43), 3 입력의 NAND를 수행하기 위한 ND3 수단(44), 상기 AO42수단(38)과 AO23수단(39)으로부터의 2 입력을 받아 NOR를 수행하기 위한 NR2수단(50), 상기 AO23수단(37)과 ND4수단(40)으로부터의 2입력을 받아 NOR를 수행하기 위한 NR2수단(51), 상기 ND3수단(41)과 상기 AO33수단(43)으로부터의 2입력을 받아 NOR를 수행하기 위한 NR2수단(52), 상기 AO32수단(42), AO33수단(43) 및 ND3수단(44)으로부터의 3입력을 받아 AND 및 OR하기 위한 AO21수단(53), 상기 NR2수단(50, 51, 52)과 AO21수단(53)으로부터의 4입력을 받아 NOR를 수행하기 위한 NR4수단(59)과,AO42 means 38 to AND and OR 6 inputs, AO23 means 39 to AND and OR 3 inputs, ND4 means 40 to perform NAND 4 inputs, and to perform NAND of 3 inputs ND3 means 41, AO32 means 42 for ANDing and ORing 5 inputs, AO33 means 43 for ANDing and ORing 4 inputs, ND3 means 44 for performing NAND of 3 inputs, AO42 NR2 means 50 for receiving two inputs from the means 38 and AO23 means 39, and performing two NOR inputs from the AO23 means 37 and ND4 means 40 for performing the NOR. NR2 means 52, AO32 means 42, AO33 means 43 and ND3 for performing NOR by receiving two inputs from NR2 means 51, the ND3 means 41 and the AO33 means 43. AO21 means 53 for accepting and ORing three inputs from the means 44, NR4 means for receiving NOR inputs from the NR2 means 50, 51, 52 and AO21 means 53 and performing NOR. 59, 상기 AO23수단(12)과 ND4수단(20)으로부터의 2 입력을 받아 NOR를 수행하기 위한 NR2수단(45), 상기 ND2수단(16)과 상기 ND3수단(44)으로부터의 2 입력과 2 입력을 받아 AND 및 OR를 수행하기 위한 AO02수단(46), 3입력을 NAND를 하기 위한 ND3수단(47), 상기 AO34수단(18)과 ND3수단(47)으로부터의 2 입력을 NOR하기 위한 NR2수단(56), 상기 NR2수단(45), 상기 AO02수단(46) 및 상기 NR2수단(56)으로부터의 3입력을 NOR 수행하기 위한 NR3수단(58)과,NR2 means 45 for receiving 2 inputs from the AO23 means 12 and ND4 means 20, and performing 2 NOR inputs and 2 inputs from the ND2 means 16 and the ND3 means 44. AO02 means 46 for receiving AND and OR, ND3 means 47 for performing NAND 3 inputs, and NR2 means for NORing 2 inputs from AO34 means 18 and ND3 means 47 ( 56), NR3 means 58 for performing NOR three inputs from the NR2 means 45, the AO02 means 46 and the NR2 means 56, 상기 NR4수단(57), NR3수단(58) 및 NR4수단(59)으로부터의 3입력을 NAND 수행하기 위한 ND3수단(60)으로 구성되어, 캐리 C1을 출력하는 제 2 캐리 출력수단; 및Second carry output means configured to output carry C 1 by ND3 means (60) for performing NAND three inputs from the NR4 means (57), the NR3 means (58) and the NR4 means (59); And 2 입력을 각기 NOR하는 XO2수단(81, 82, 83), XO2수단(81)과 XO2수단(82)으로부터의 2 입력을 NOR하는 XO2수단(85), XO2수단(83)과 1 입력을 NOR하는 XO2수단(86), XO2수단(85)와 XO2수단(86)으로 부터의 2입력을 NOR하는 XO2수단(87)으로 구성되어, 합 S를 출력하는 합 출력수단으로 구성된 것을 특징으로 하는 대칭키 암호용 고속 (7, 3) 덧셈기.XO2 means (81, 82, 83) to NOR two inputs respectively, XO2 means (85), XO2 means (83) and one input to NOR two inputs from XO2 means (81) and XO2 means (82). Symmetrical characterized by consisting of a sum output means for outputting the sum S consisting of XO2 means 86, XO2 means 85 and XO2 means 87 for NOR two inputs from the XO2 means 86 Fast (7, 3) adder for key cryptography.
KR10-1999-0021571A 1999-06-10 1999-06-10 High speed (7, 3) Adder for symmetric key cipher KR100403938B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-1999-0021571A KR100403938B1 (en) 1999-06-10 1999-06-10 High speed (7, 3) Adder for symmetric key cipher

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-1999-0021571A KR100403938B1 (en) 1999-06-10 1999-06-10 High speed (7, 3) Adder for symmetric key cipher

Publications (2)

Publication Number Publication Date
KR20010002008A KR20010002008A (en) 2001-01-05
KR100403938B1 true KR100403938B1 (en) 2003-11-01

Family

ID=19591393

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1999-0021571A KR100403938B1 (en) 1999-06-10 1999-06-10 High speed (7, 3) Adder for symmetric key cipher

Country Status (1)

Country Link
KR (1) KR100403938B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10307706A (en) * 1997-02-28 1998-11-17 Digital Equip Corp <Dec> Wallace tree multiplier using half-adder and full-adder
US5867415A (en) * 1996-02-27 1999-02-02 Mitsubishi Denki Kabushiki Kaisha Multiplication element including a wallace tree circuit having adders divided into high and low order adders
KR20000066326A (en) * 1999-04-15 2000-11-15 김영환 Low power multiplier

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867415A (en) * 1996-02-27 1999-02-02 Mitsubishi Denki Kabushiki Kaisha Multiplication element including a wallace tree circuit having adders divided into high and low order adders
JPH10307706A (en) * 1997-02-28 1998-11-17 Digital Equip Corp <Dec> Wallace tree multiplier using half-adder and full-adder
KR20000066326A (en) * 1999-04-15 2000-11-15 김영환 Low power multiplier

Also Published As

Publication number Publication date
KR20010002008A (en) 2001-01-05

Similar Documents

Publication Publication Date Title
Fritz et al. Fast binary counters based on symmetric stacking
US4623982A (en) Conditional carry techniques for digital processors
US5325320A (en) Area efficient multiplier for use in an integrated circuit
Chen et al. Efficient modulo 2n+ 1 multipliers for diminished-1 representation
Makino et al. A 8.8-ns 54/spl times/54-bit multiplier using new redundant binary architecture
Oklobdzija High-speed VLSI arithmetic units: Adders and multipliers
US7620677B2 (en) 4:2 Carry save adder and 4:2 carry save adding method
Satish et al. Multiplier using NAND based compressors
EP1008033B1 (en) Digital adder circuit
Timarchi et al. A novel high-speed low-power binary signed-digit adder
KR100403938B1 (en) High speed (7, 3) Adder for symmetric key cipher
Ykuntam et al. Design of 32-bit carry select adder with reduced area
US5257217A (en) Area-efficient multiplier for use in an integrated circuit
RU2477513C1 (en) Homogeneous computing environment cell, homogeneous computing environment and apparatus for pipeline arithmetic calculations on given modulo
GB2127187A (en) Circuits for operating on N- digit operands
Singh et al. Modified booth multiplier with carry select adder using 3-stage pipelining technique
US3506817A (en) Binary arithmetic circuits employing threshold gates in which both the sum and carry are obtained in one gate delay interval
Ghasemizadeh et al. A 1.6 GHz 16× 16-bit low-latency pipelined booth multiplier
US20030074385A1 (en) Providing a fast adder for processor based devices
Lin et al. A novel approach for CMOS parallel counter design
Großschadl A unified radix-4 partial product generator for integers and binary polynomials
Nandini et al. High Speed and Power Optimized Parallel Prefix Modulo Adders using Verilog
Sam et al. Wallace Tree Multiplier Using MFA Counters
Gok et al. Efficient integer multiplication overflow detection circuits
Mohammadi et al. Design of 8 bit, 1633µm 2, 444µW squarer hardware for high performance VLSI applications

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20081001

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee