KR20030082255A - 향상된 선형 궤환 시프트 레지스터 구조의 유한체 승산기 - Google Patents

향상된 선형 궤환 시프트 레지스터 구조의 유한체 승산기 Download PDF

Info

Publication number
KR20030082255A
KR20030082255A KR1020020020906A KR20020020906A KR20030082255A KR 20030082255 A KR20030082255 A KR 20030082255A KR 1020020020906 A KR1020020020906 A KR 1020020020906A KR 20020020906 A KR20020020906 A KR 20020020906A KR 20030082255 A KR20030082255 A KR 20030082255A
Authority
KR
South Korea
Prior art keywords
input
register
output
registers
cells
Prior art date
Application number
KR1020020020906A
Other languages
English (en)
Other versions
KR100450750B1 (ko
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-2002-0020906A priority Critical patent/KR100450750B1/ko
Publication of KR20030082255A publication Critical patent/KR20030082255A/ko
Application granted granted Critical
Publication of KR100450750B1 publication Critical patent/KR100450750B1/ko

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/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
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명의 선형 궤환 시프트 레지스터 구조의 유한체 승산기는, 제1 입력 데이터를 시프트하되, 하나의 클락 신호에 대응하여 적어도 2개의 제1 입력 데이터를 시프트하는 제1 입력 셀들과, 제2 입력 데이터를 시프트하되, 하나의 클락 신호에 대응하여 적어도 2개의 제2 입력 데이터를 시프트하는 제2 입력 셀들, 및 제1 입력 셀들 및 제2 입력 셀들로부터의 출력값에 따른 결과 데이터를 저장하는 출력 레지스터들을 구비하는 것을 특징으로 한다.

Description

향상된 선형 궤환 시프트 레지스터 구조의 유한체 승산기{Finite field multiplier having improved structure of linear feedback shift register}
본 발명은 암호화 장치 및 오류 정정 부호화 장치와 같은 연산 장치 내에서 기본적인 유한체 승산을 수행하는 유한체 승산기에 관한 것으로서, 특히 연산 속도가 개선된 선형 궤환 시프트 레지스터 구조의 유한체 승산기에 관한 것이다.
최근 디지털 서명, 인증 및 전자 상거래와 같은 정보 보안 분야에서의 정보 보호 기술에 대한 개발이 급격히 추진되고 있다. 이 정보 보호 기술은 암호학적인 알고리즘에 의한 복잡한 연산을 수행하도록 하는 암호 기술이라고 할 수 있다. 여기서 암호학적인 알고리즘은 정수 및 소인수 분해의 어려움에 기반을 두거나 유한체(finite field) 위에서 정의된 이산 대수 문제에 기초를 두는 경우가 대부분이다.
유한체는 GF(Galois Field)라고도 불리는데, 이 유한체 상에서 연산을 수행하는 연산 구조들은 기저 표현 방식(base representation)에 의해 분류된다. 가장 많이 사용되는 표현 방식들은 표준(standard) 기저, 정규(normal) 기저 및 이중(dual) 기저이다. 이 중에서도 특히 표준 기저와 정규 기저가 주로 사용되는데, 정규 기저 표현 방식은 유한체 내의 거듭 제곱 연산(exponentiation)의 수행에서는 매우 효율적이지만, 하드웨어로 구현하였을 때의 규칙성(regularity)과 확장성(extensibility)이 표준 기저 표현 방식보다 떨어진다. 이에 반하여 표준 기저 표현 방식은 대부분의 유한체 연산에서 효율적인 구조를 보이고 또한 사용하기에 가장 익숙한 구조로 알려져 있다.
표준 기저의 유한체 연산기 가운데 승산기는 가장 사용 빈도수가 높고 중요한 역할을 하기 때문에 많은 연구가 이루어지고 있으며, 그 결과 직렬승산기(serial multiplier), 시스톨릭 병렬 승산기(systolic parallel multiplier) 및 하이브리드 승산기(hybrid multiplier)가 제안된 바 있다. 하이브리드 승산기는 가격 대 성능비가 가장 우수하지만, 유한체의 크기가 같더라도 암호학적인 복잡도가 감소되는 합성 유한체에서만 사용이 가능하고, 암호학적인 특성이 우수한 소수 유한체에서는 사용할 수 없다는 단점을 갖는다. 시스톨릭 병렬 승산기는 2차원 배열 유한체 승산기로서 직렬 승산기에 비하여 m배의 하드웨어를 사용하여 m배의 계산 속도를 얻어내는 방식으로서 가격 대 성능비에서 효율이 떨어진다. 이에 반하여 직렬 승산기는 유한체 승산기의 가장 기본적인 구조로 인식되며, 일반적으로 선형 궤환 시프트 레지스터(LFSR; Linear Feedback Shift Register) 구조를 갖는다.
도 1은 종래의 선형 궤환 시프트 레지스터 구조의 유한체 승산기의 일 예를 나타내 보인 도면이다. 도 1에서 참조 부호 "110"은 AND 게이트를 나타내고, 참조 부호 "120"은 XOR(exclusive OR) 게이트를 나타낸다.
도 1을 참조하면, 상기 유한체 승산기는, 승산을 위한 m비트의 입력 데이터를 저장하기 위하여 m개의 제1 입력 레지스터들(a0, a1, …, am-2, am-1) 및 m개의 제2 입력 레지스터들(b0, b1, …, bm-2, bm-1)을 구비한다. 그리고 m비트의 승산 결과 데이터를 저장하기 위한 m개의 출력 레지스터들(z0, z1, …, zm-2, zm-1)도 구비한다. 또한 기약 다항식의 m개의 계수를 저장하는 계수 레지스터들(p0, p1, …, pm-2, pm-1)을 구비한다. 따라서 상기 유한체 승산기의 경우, m비트의 승산을 위해서는 m개의 클럭 사이클수와 4m개의 레지스터들이 필요하며, 결국 승산하고자 하는 비트 수가 증가할수록 계산 속도가 저하된다는 문제가 있다.
상기 문제를 해결하기 위하여 짝수 레지스터 회로 및 홀수 레지스터 회로로 구성된 유한체 승산기가 제안된 바 있다.
도 2는 이와 같은 유한체 승산기의 짝수 레지스터 회로를 나타내 보인 도면이다. 도 2에서 참조 부호 "210"은 AND 게이트를 나타내고, 참조 부호 "220"은 XOR 게이트를 나타낸다.
도 2를 참조하면, 상기 유한체 승산기의 짝수 레지스터 회로는, 승산을 위한 m비트의 입력 데이터를 저장하기 위하여 m개의 제1 입력 레지스터들(a0, a1, a2, …, am-3, am-2, am-1) 및 m개의 제2 입력 레지스터들(b0, b1, b2, …, bm-3, bm-2, bm-1)을 구비한다. 그리고 m비트의 승산 결과 데이터를 저장하기 위한 m개의 결과 레지스터들(z0, z1, z2, …, zm-3, zm-2, zm-1)도 구비한다. 또한 기약 다항식의 m개의 계수를 저장하는 계수 레지스터들(p0, p1, p2, …, pm-3, pm-2, pm-1)을 구비한다. 제1 입력 레지스터들(a0, a1, a2, …, am-3, am-2, am-1), 제2 입력 레지스터들(b0, b1, b2, …, bm-3, bm-2, bm-1) 및 계수 레지스터들(p0, p1, p2, …, pm-3, pm-2, pm-1)은, 짝수 레지스터 회로 외에도 홀수 레지스터 회로에 공통으로 연결된다. 상기 유한체 승산기의 짝수 레지스터 회로의 경우, 각각 m개의 AND 게이트(210), XOR 게이트(220) 및 결과 레지스터들(z0, z1, z2, …, zm-3, zm-2, zm-1)이 포함되어야 한다. 홀수 레지스터 회로의 구조가 짝수 레지스터 회로의 구조와 동일하므로, 홀수 레지스터 회로의 경우에도, 각각 m개의 AND 게이트, XOR 게이트 및 결과 레지스터들이 포함되어야 한다. 따라서 상기 유한체 승산기의 경우, 승산 데이터를 짝수 및 홀수로 나누고 이를 동시에 처리하므로 처리 속도는 증가하지만, 이에 비례하여 요구되는 결과 레지스터들의 수도 또한 증가되어 회로 구성이 복잡해진다는 단점을 갖는다.
본 발명이 이루고자 하는 기술적 과제는 레지스터들의 수를 증가시키지 않고 처리 속도를 증대시킬 수 있는 선형 궤환 시프트 레지스터 구조의 유한체 승산기를 제공하는 것이다.
도 1은 종래의 선형 궤환 시프트 레지스터 구조의 유한체 승산기의 일 예를 나타내 보인 도면이다.
도 2는 종래의 선형 궤환 시프트 레지스터 구조의 유한체 승산기의 다른 예를 나타내 보인 도면이다.
도 3은 본 발명에 따른 선형 궤환 시프트 레지스터 구조의 유한체 승산기의 일 실시예를 나타내 보인 도면이다.
도 4는 도 3의 유한체 승산기의 제1 입력 셀(ACELLi+1)의 내부 구성을 나타내 보인 블록도이다.
도 5a 및 도 5b는 도 3의 유한체 승산기의 출력 레지스터의 내부 구성을 나타내 보인 회로도들이다.
도 6은 본 발명에 따른 유한체 승산기의 동작 결과를 종래의 유한체 승산기 경우와 비교하여 설명하기 위하여 나타내 보인 도면이다.
상기 기술적 과제를 달성하기 위하여, 본 발명에 따른 유한체 승산기는, 제1 입력 데이터를 시프트하되, 하나의 클락 신호에 대응하여 적어도 2개의 제1 입력 데이터를 시프트하는 제1 입력 셀들; 제2 입력 데이터를 시프트하되, 하나의 클락 신호에 대응하여 적어도 2개의 제2 입력 데이터를 시프트하는 제2 입력 셀들; 및 상기 제1 입력 셀들 및 제2 입력 셀들로부터의 출력값에 따른 결과 데이터를 저장하는 출력 레지스터들을 구비하는 것을 특징으로 한다.
상기 제1 입력 셀들 및 제2 입력 셀들에 입력되는 클락 신호는 동일한 클락 신호인 것이 바람직하다.
상기 제1 입력 셀은, 상기 클락 신호에 연결된 적어도 2개의 제1 입력 레지스터들을 포함하는 것이 바람직하다. 상기 제1 입력 셀은, 입력되는 복수개의 신호들을 선택하여 상기 제1 입력 레지스터로 전달하기 위한 적어도 2개의 멀티플렉서를 구비하는 것이 바람직하다. 그리고 최고 차수에 대응하는 제1 입력 레지스터를 포함하는 상기 제1 입력 셀 내의 상기 제1 입력 레지스터의 출력값과 최고 차수 이전 차수에 대응하는 제1 입력 레지스터의 출력값을 궤환시키는 것이 바람직하다. 이 경우 상기 제1 입력 레지스터의 출력값은 계수의 값이 1인 항의 차수보다 한 차수 더 적은 제1 입력 레지스터의 출력값과 XOR 연산을 수행하도록 하고, 상기 최고 차수 이전 차수에 대응하는 제1 입력 레지스터의 출력값은 계수의 값이 1인 항의 차수보다 두 차수 더 적은 제1 입력 레지스터의 출력값과 XOR 연산을 수행하도록 하는 것이 바람직하다. 또한 계수의 값이 1인 항보다 한 차수 더 적은 제1 입력 레지스터의 값을 저장하기 위한 별도의 레지스터를 더 구비하는 것이 바람직하다.
상기 출력 레지스터는, 제1 입력 셀 및 제2 입력 셀로부터의 출력 신호를 입력으로 하는 제1 및 제2 AND 게이트; 상기 출력 레지스터의 결과값을 저장하는 플립 플랍; 및 상기 제1 및 제2 AND 게이트로부터의 출력 신호와 상기 플립 플랍으로부터의 출력을 입력받고 상기 플립 플랍으로 출력시키는 XOR 게이트를 포함하는 것이 바람직하다.
이하 첨부 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 그러나, 본 발명의 실시예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 아래에서 상술하는 실시예들로 인해 한정되어지는 것으로 해석되어져서는 안된다.
도 3은 본 발명에 따른 선형 궤환 시프트 레지스터 구조의 유한체 승산기의일 실시예를 나타내 보인 도면이다.
도 3을 참조하면, m비트의 제1 입력 데이터들이 저장되는 제1 입력 셀들(ACELL0, ACELL1, …, ACELLi, ACELLi+1, ACELLi+2, …, ACELL(m/2)-1)이 m/2개 존재한다. m이 홀수일 경우 상기 제1 입력 셀들은 (m+1)/2개 존재하게 된다. 각각의 제1 입력 셀(ACELL0, ACELL1, …, ACELLi, ACELLi+1, ACELLi+2, … 또는 ACELL(m/2)-1)에는 2비트의 제1 입력 데이터가 저장되기 위한 2개의 제1 입력 레지스터들(a0과 a1, a2와 a3, …, ak-1과 ak, ak+1과 ak+2, ak+3과 ak+4, … 또는 am-2와 am-1)이 포함된다. 또한 m비트의 제2 입력 데이터들이 저장되는 제2 입력 셀들(BCELL0, …, BCELL(m/2)-1)도 m/2개 존재한다. m이 홀수일 경우 상기 제2 입력 셀들은 (m+1)/2개 존재하게 된다. 각각의 제2 입력 셀(BCELL0, … 또는 BCELL(m/2)-1)에는 2비트의 제1 입력 데이터가 저장되기 위한 2개의 제2 입력 레지스터들(b0과 b1, … 또는 bm-2와 bm-1)이 포함된다. 제1 입력 셀들(ACELL0, ACELL1, …, ACELLi, ACELLi+1, ACELLi+2, …, ACELL(m/2)-1)의 각각 및 제2 입력 셀들(BCELL0, …, BCELL(m/2)-1)의 각각은 동일한 클락(CLK)에 연결된다. 따라서 하나의 클락(CLK)에 의해 2개의 제1 입력 데이터들(a0과 a1, a2와 a3, …, ak-1과 ak, ak+1과 ak+2, ak+3과 ak+4, …, 및 am-2와 am-1) 및 2개의 제2 입력 데이터들(b0과 b1, …, 및 bm-2와 bm-1)이 처리되므로 처리 속도를 증가시킬 수 있다.
상기 제1 입력 레지스터들(a0과 a1, a2와 a3, …, ak-1과 ak, ak+1과 ak+2, ak+3과 ak+4, … 또는 am-2와 am-1) 사이의 연결은 짝수 비트와 홀수 비트로 나누어져 이루어진다. 즉 짝수 비트를 갖는 제1 입력 레지스터들끼리 상호 연결되며, 홀수 비트를 갖는 제1 입력 레지스터들끼리 상호 연결된다. 예컨대 제1 입력 레지스터(a0)는 제1 입력 레지스터(a2)와 연결되고, 다시 제1 입력 레지스터(a2)는 제1 입력 레지스터(a4)와 연결된다. 마찬가지로 제1 입력 레지스터(a1)는 제1 입력 레지스터(a3)와 연결되고, 다시 제1 입력 레지스터(a3)는 제1 입력 레지스터(a5)와 연결된다. 제2 입력 레지스터들(b0과 b1, … 및 bm-2와 bm-1)의 경우도 제1 입력 레지스터들의 경우와 동일한 방식으로 연결된다. 단지 클락 신호가 발생될 때마다, 제2 입력 셀들(BCELL0, …, BCELL(m/2)-1)에 저장되어 있던 데이터들은 1비트씩 시프트된다. 즉 클락 신호가 발생하면 제2 입력 셀(BCELL1) 내의 제2 입력 레지스터(b2, b3)는 제2 입력 셀(BCELL0) 내의 제2 입력 레지스터(b0, b1)로 시프트된다.
본 발명에 따른 유한체 승산기는, m비트의 승산 결과 데이터를 저장하기 위한 m개의 출력 레지스터들(z0, z1, …, zk, zk+1, …, zm-1)도 또한 구비한다. 각 출력 레지스터(z0, z1, …, zk, zk+1, … 또는 zm-1)에 입력되는 데이터는 각 출력 레지스터(z0, z1, …, zk, zk+1, … 또는 zm-1), 제1 입력 셀의 출력값 및 제2 입력 셀의출력값에 의해 결정된다. 예컨대 제1 입력 셀(ACELL0) 내의 제1 입력 레지스터(a0)의 출력값과 제2 입력 셀(BCELL0) 내의 제2 입력 레지스터(b1)의 출력값이 AND 게이트(311)에 입력된다. 또한 제1 입력 셀(ACELL0) 내의 제1 입력 레지스터(a1)의 출력값과 제2 입력 셀(BCELL0) 내의 제2 입력 레지스터(b0)의 출력값이 AND 게이트(312)에 입력된다. AND 게이트(311)의 출력값과 AND 게이트(312)의 출력값은 XOR 게이트(320)에 입력된다. XOR 게이트(320)에는, 이 외에도, 출력 레지스터(z0)의 출력값도 입력된다. 이와 같이, AND 게이트(311)의 출력값, AND 게이트(312)의 출력값 및 출력 레지스터(z0)의 출력값을 입력받은 XOR 게이트(320)의 출력값은 출력 레지스터(z0)의 입력 데이터가 된다.
한편 처리하고자 하는 기약 다항식의 계수가 1이 존재하는 경우, 궤환이 발생하도록 회로 구성이 이루어진다. 예컨대 기약 다항식의 k번째와 0번째 항에서 계수가 1인 경우, 제1 입력 레지스터들(a0및 ak)에서 궤환이 발생한다. 즉 제1 입력 레지스터(am-1)의 출력값이 제1 입력 레지스터(ak)의 출력값과 함께 XOR 게이트(331)에 입력되고, XOR 게이트(331)의 출력값은 제1 입력 레지스터(ak+2)에 입력된다. 그리고 제1 입력 레지스터(am-1)의 출력값이 제1 입력 레지스터(a1)에 입력된다. 또한 제1 입력 레지스터(am-2)의 출력값도 궤환된다. 즉 제1 입력 레지스터(am-2)의 출력값이 제1 입력 레지스터(ak-1)의 출력값과 함께 XOR게이트(332)에 입력되고, XOR 게이트(332)의 출력값은 제1 입력 레지스터(ak+1)에 입력된다. 그리고 제1 입력 레지스터(am-2)의 출력값이 제1 입력 레지스터(a0)에 입력된다.
특히 궤환이 발생하는 제1 입력 레지스터보다 한 차수 낮은 제1 입력 레지스터의 비트를 별도의 레지스터에 저장시킨다. 즉 궤환이 발생하는 제1 입력 레지스터(ak)보다 한 차수 낮은 제1 입력 레지스터(ak-1)의 비트를 별도의 레지스터(340)에 저장시켜, 출력 레지스터의 승산 결과를 연산하는데 사용되도록 한다.
도 4는 도 3의 유한체 승산기의 제1 입력 셀(ACELLi+1)의 내부 구성을 나타내 보인 블록도이다.
도 4를 참조하면, 제1 입력 셀(ACELLi+1)은 제1 및 제2 멀티플렉서(MUX)(410, 420)와 제1 및 제2 플립 플랍(F/F)(430, 440)으로 구성된다. 제1 플립 플랍(430)은 제1 입력 레지스터(ak+1)이고, 제2 플립 플랍(440)은 제1 입력 레지스터(ak+2)이다. 따라서 제1 플립 플랍(430) 및 제2 플립 플랍(440)의 출력 단자(OUT)들은 제1 입력 셀(ACELLi+2)에 연결된다. 그리고 제1 플립 플랍(430)의 입력 단자(IN)는 제1 멀티플렉서(410)의 출력과 연결되고, 제2 플립 플랍(440)의 입력 단자(IN)는 제2 멀티플렉서(420)의 출력과 연결된다. 제1 멀티플렉서(410)는 제1 입력 셀(ACELLi)의 출력값을 입력받을 수 있거나, 또는 제1 플립 플랍(430)의 초기 설정값(ak+1)을 입력받을 수 있다. 마찬가지로 제2 멀티플렉서(420)는 제1 입력셀(ACELLi)의 출력값을 입력받을 수 있거나, 또는 제2 플립 플랍(440)의 초기 설정값(ak+2)을 입력받을 수 있다. 제1 멀티플렉서(410) 및 제2 멀티플렉서(420)에서의 데이터 출력 선택은 출력 로드 신호(LOAD)에 의해 수행된다. 그리고 제1 플립 플랍(430) 및 제2 플립 플랍(440)에서의 데이터 처리는 클락 신호(CLK)에 의해 수행된다. 상기 도 4를 참조하여 설명한 제1 입력 셀(ACELLi+1)의 구조는 제2 입력 셀의 구조와 동일하다.
도 5a 및 도 5b는 도 3의 유한체 승산기의 출력 레지스터의 내부 구성을 나타내 보인 회로도들이다. 도 5a는 출력 레지스터(zk)의 내부 구성을 나타내 보인 회로도이고, 도 5b는 출력 레지스터(zk+1)의 내부 구성을 나타내 보인 회로도이다. 제1 입력 레지스터의 비트 순서에 따라서 AND 연산되는 제2 입력 레지스터의 순서가 다르므로, 도 5a 및 도 5b에 도시된 바와 같이, 출력 레지스터는 2가지 내부 구성을 갖는다.
먼저 도 5a를 참조하면, 출력 레지스터(zk)는 플립 플랍(F/F)(510), 제1 AND 게이트(521), 제2 AND 게이트(522) 및 XOR 게이트(530)를 포함하여 구성된다. 플립 플랍(510)의 입력 단자(IN)는 XOR 게이트(530)의 출력과 연결된다. 플립 플랍(510)의 출력 단자(OUT)는 XOR 게이트(530)의 입력과 연결된다. 플립 플랍(510)의 클락 단자(CLK)는 클락 신호와 연결되고, 리셋 단자(CLR)는 리셋 신호와 연결된다. 제1 AND 게이트(521)는 제1 입력 레지스터(ak-1) 및 제2 입력 레지스터(bi)로부터 신호를 입력받는다. 제2 AND 게이트(522)는 제1 입력 레지스터(ak) 및 제2 입력 레지스터(bi+1)로부터 신호를 입력받는다. XOR 게이트(530)는 제1 AND 게이트(521), 제2 AND 게이트(522) 및 플립 플랍(510)으로부터 신호를 입력받는다.
다음에 도 5b를 참조하면, 출력 레지스터(zk+1)는 플립 플랍(F/F)(540), 제1 AND 게이트(551), 제2 AND 게이트(552) 및 XOR 게이트(560)를 포함하여 구성된다. 플립 플랍(540)의 입력 단자(IN)는 XOR 게이트(560)의 출력과 연결된다. 플립 플랍(540)의 출력 단자(OUT)는 XOR 게이트(560)의 입력과 연결된다. 플립 플랍(540)의 클락 단자(CLK)는 클락 신호와 연결되고, 리셋 단자(CLR)는 리셋 신호와 연결된다. 제1 AND 게이트(551)는 제1 입력 레지스터(ak) 및 제2 입력 레지스터(bi)로부터 신호를 입력받는다. 제2 AND 게이트(552)는 제1 입력 레지스터(ak+1) 및 제2 입력 레지스터(bi+1)로부터 신호를 입력받는다. XOR 게이트(560)는 제1 AND 게이트(551), 제2 AND 게이트(552) 및 플립 플랍(540)으로부터 신호를 입력받는다.
도 6은 본 발명에 따른 유한체 승산기의 동작 결과를 종래의 유한체 승산기 경우와 비교하여 설명하기 위하여 나타내 보인 도면이다.
도 6을 참조하면, 12개의 제1 입력 레지스터들(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)을 구비하고, 1번째와 5번째 제1 입력 레지스터들(a0, a4)에서 궤환이 발생하는 경우를 나타낸다.
이 경우, 한 사이클당 한 비트씩 제1 입력 레지스터의 값이 시프트되는 종래의 유한체 승산기에서의 제1 입력 레지스터들의 값의 변화는 다음과 같다.
상태 0에서 제1 입력 레지스터들(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)의 값은 각각 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12이고, 상태 1에서의 제1 입력 레지스터들(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)의 값은 각각 12, 1, 2, 3, 4, 5??12, 6, 7, 8, 9, 10, 11이 되고, 상태 2에서의 제1 입력 레지스터들(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)의 값은 각각 11, 12, 1, 2, 3, 4??11, 5??12, 6, 7, 8, 9, 10이 되고, 상태 3에서의 제1 입력 레지스터들(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)의 값은 각각 10, 11, 12, 1, 2, 3??10, 4??11, 5??12, 6, 7, 8, 9가 되고, 상태 4에서의 제1 입력 레지스터들(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)의 값은 각각 9, 10, 11, 12, 1, 2??9, 3??10, 4??11, 5??12, 6, 7, 8이 되고, 상태 5에서의 제1 입력 레지스터들(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)의 값은 각각 8, 9, 10, 11, 12, 1??8, 2??9, 3??10, 4??11, 5??12, 6, 7이 되고, 상태 6에서의 제1 입력 레지스터들(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)의 값은 각각 7, 8, 9, 10, 11, 12??7, 1??8, 2??9, 3??10, 4??11, 5??12, 6이 되고, 상태 7에서의 제1 입력 레지스터들(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)의 값은 각각 6, 7, 8, 9, 10, 11??6,12??7, 1??8, 2??9, 3??10, 4??11, 5??12가 되고, 상태 8에서의 제1 입력 레지스터들(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)의 값은 각각 5??12, 6, 7, 8, 9, 10??5??12, 11??6, 12??7, 1??8, 2??9, 3??10, 4??11이 되고, 상태 9에서의 제1 입력 레지스터들(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)의 값은 각각 4??11, 5??12, 6, 7, 8, 9??4??11, 10??5??12, 11??6, 12??7, 1??8, 2??9, 3??10이 되고, 상태 10에서의 제1 입력 레지스터들(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)의 값은 각각 3??10, 4??11, 5??12, 6, 7, 8??3??10, 9??4??11, 10??5??12, 11??6, 12??7, 1??8, 2??9가 되고, 그리고 상태 11에서의 제1 입력 레지스터들(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)의 값은 각각 2??9, 3??10, 4??11, 5??12, 6, 7??2??9, 8??3??10, 9??4??11, 10??5??12, 11??6, 12??7, 1??8이 된다. 여기서 "??"는 XOR 연산을 의미한다.
이에 반하여 한 사이클당 두 비트식 제1 입력 레지스터의 값이 시프트되는 본 발명에 따른 유한체 승산기에서의 제1 입력 레지스터들의 값의 변화는 다음과 같다.
상태 0에서 제1 입력 레지스터들(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)의 값은 각각 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12이고, 상태 1에서의 제1 입력 레지스터들(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)의 값은 각각 11, 12, 1, 2, 3, 4??11, 5??12, 6, 7, 8, 9, 10이 되고, 상태 2에서의 제1 입력 레지스터들(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)의 값은 각각 9, 10, 11, 12, 1, 2??9, 3??10, 4??11, 5??12, 6, 7, 8이 되고, 상태 3에서의 제1 입력 레지스터들(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)의 값은 각각 7, 8, 9, 10, 11, 12??7, 1??8, 2??9, 3??10, 4??11, 5??12, 6이 되고, 상태 4에서의 제1 입력 레지스터들(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)의 값은 각각 5??12, 6, 7, 8, 9, 10??5??12, 11??6, 12??7, 1??8, 2??9, 3??10, 4??11이 되고, 상태 5에서의 제1 입력 레지스터들(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)의 값은 각각 3??10, 4??11, 5??12, 6, 7, 8??3??10, 9??4??11, 10??5??12, 11??6, 12??7, 1??8, 2??9가 되고, 그리고 상태 6에서의 제1 입력 레지스터들(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)의 값은 각각 1??8, 2??9, 3??10, 4??11, 5??12, 6, 7??2??9, 8??3??10, 9??4??11, 10??5??12, 11??6, 12??7이 된다. 여기서 "??"는 XOR 연산을 의미한다.
상기 연산 결과에서 알 수 있듯이, 본 발명에 따른 유한체 승산기의 경우 종래의 유한체 승산기보다 대략 2배의 처리 속도를 나타낸다.
이상 본 발명을 바람직한 실시예를 들어 상세하게 설명하였으나, 본 발명은 상기 실시예에 한정되지 않으며, 본 발명의 기술적 사상 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러 가지 변형이 가능함은 당연하다.
이상의 설명에서와 같이, 본 발명에 따른 선형 궤환 시프트 레지스터 구조의 유한체 승산기에 의하면 다음과 같은 효과가 나타난다.
첫째로, 한 싸이클당 2비트의 레지스터 시프트가 발생하므로 한 싸이클당 1비트의 레지스터 시프트를 발생시키는 종래의 유한체 승산기에 비하여 대략 2배의 처리 속도 증가를 나타낸다.
둘째로, 처리 속도가 증가하더라도 출력 레지스터의 수는 증가하지 않는다.
그리고 셋째로, 출력 레지스터의 수가 증가하지 않으므로 회로 집적도를 향상시킬 수 있다.

Claims (8)

  1. 제1 입력 데이터를 시프트하되, 하나의 클락 신호에 대응하여 적어도 2개의 제1 입력 데이터를 시프트하는 제1 입력 셀들;
    제2 입력 데이터를 시프트하되, 하나의 클락 신호에 대응하여 적어도 2개의 제2 입력 데이터를 시프트하는 제2 입력 셀들; 및
    상기 제1 입력 셀들 및 제2 입력 셀들로부터의 출력값에 따른 결과 데이터를 저장하는 출력 레지스터들을 구비하는 것을 특징으로 하는 유한체 승산기.
  2. 제1항에 있어서,
    상기 제1 입력 셀들 및 제2 입력 셀들에 입력되는 클락 신호는 동일한 클락 신호인 것을 특징으로 하는 유한체 승산기.
  3. 제1항에 있어서,
    상기 제1 입력 셀은, 상기 클락 신호에 연결된 적어도 2개의 제1 입력 레지스터들을 포함하는 것을 특징으로 하는 유한체 승산기.
  4. 제3항에 있어서,
    상기 제1 입력 셀은, 입력되는 복수개의 신호들을 선택하여 상기 제1 입력 레지스터로 전달하기 위한 적어도 2개의 멀티플렉서를 구비하는 것을 특징으로 하는 유한체 승산기.
  5. 제3항에 있어서,
    최고 차수에 대응하는 제1 입력 레지스터를 포함하는 상기 제1 입력 셀 내의 상기 제1 입력 레지스터의 출력값과 최고 차수 이전 차수에 대응하는 제1 입력 레지스터의 출력값을 궤환시키는 것을 특징으로 하는 유한체 승산기.
  6. 제5항에 있어서,
    상기 제1 입력 레지스터의 출력값은 계수의 값이 1인 항의 차수보다 한 차수 더 적은 제1 입력 레지스터의 출력값과 XOR 연산을 수행하도록 하고, 상기 최고 차수 이전 차수에 대응하는 제1 입력 레지스터의 출력값은 계수의 값이 1인 항의 차수보다 두 차수 더 적은 제1 입력 레지스터의 출력값과 XOR 연산을 수행하도록 하는 것을 특징으로 하는 유한체 승산기.
  7. 제5항에 있어서,
    계수의 값이 1인 항보다 한 차수 더 적은 제1 입력 레지스터의 값을 저장하기 위한 별도의 레지스터를 더 구비하는 것을 특징으로 하는 유한체 승산기.
  8. 제1항에 있어서, 상기 출력 레지스터는,
    제1 입력 셀 및 제2 입력 셀로부터의 출력 신호를 입력으로 하는 제1 및 제2 AND 게이트;
    상기 출력 레지스터의 결과값을 저장하는 플립 플랍; 및
    상기 제1 및 제2 AND 게이트로부터의 출력 신호와 상기 플립 플랍으로부터의 출력을 입력받고 상기 플립 플랍으로 출력시키는 XOR 게이트를 포함하는 것을 특징으로 하는 유한체 승산기.
KR10-2002-0020906A 2002-04-17 2002-04-17 향상된 선형 궤환 시프트 레지스터 구조의 유한체 승산기 KR100450750B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0020906A KR100450750B1 (ko) 2002-04-17 2002-04-17 향상된 선형 궤환 시프트 레지스터 구조의 유한체 승산기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0020906A KR100450750B1 (ko) 2002-04-17 2002-04-17 향상된 선형 궤환 시프트 레지스터 구조의 유한체 승산기

Publications (2)

Publication Number Publication Date
KR20030082255A true KR20030082255A (ko) 2003-10-22
KR100450750B1 KR100450750B1 (ko) 2004-10-01

Family

ID=32379287

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0020906A KR100450750B1 (ko) 2002-04-17 2002-04-17 향상된 선형 궤환 시프트 레지스터 구조의 유한체 승산기

Country Status (1)

Country Link
KR (1) KR100450750B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100478974B1 (ko) * 2002-12-03 2005-03-25 한국전자통신연구원 직렬 유한체 승산기
CN107102840A (zh) * 2016-02-22 2017-08-29 三星电子株式会社 数据提取方法和设备
KR20170126999A (ko) * 2015-05-21 2017-11-20 구글 엘엘씨 신경망 프로세서에서 사용하기 위한 가중치들의 프리페칭
US11399079B2 (en) 2018-02-14 2022-07-26 Eingot Llc Zero-knowledge environment based networking engine

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5280488A (en) * 1990-11-08 1994-01-18 Neal Glover Reed-Solomon code system employing k-bit serial techniques for encoding and burst error trapping
US6252958B1 (en) * 1997-09-22 2001-06-26 Qualcomm Incorporated Method and apparatus for generating encryption stream ciphers
KR100417136B1 (ko) * 2001-04-13 2004-02-05 한국전자통신연구원 다항식 기저에서 유한체 승산 장치 및 그 방법
KR100416291B1 (ko) * 2001-06-08 2004-01-31 이광엽 타원곡선암호화의 유한체 역원과 승산 장치 및 그 방법

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100478974B1 (ko) * 2002-12-03 2005-03-25 한국전자통신연구원 직렬 유한체 승산기
KR20170126999A (ko) * 2015-05-21 2017-11-20 구글 엘엘씨 신경망 프로세서에서 사용하기 위한 가중치들의 프리페칭
KR20200045006A (ko) * 2015-05-21 2020-04-29 구글 엘엘씨 신경망 프로세서에서 사용하기 위한 가중치들의 프리페칭
US10878316B2 (en) 2015-05-21 2020-12-29 Google Llc Prefetching weights for use in a neural network processor
US11281966B2 (en) 2015-05-21 2022-03-22 Google Llc Prefetching weights for use in a neural network processor
KR20220092642A (ko) * 2015-05-21 2022-07-01 구글 엘엘씨 신경망 프로세서에서 사용하기 위한 가중치들의 프리페칭
US11853865B2 (en) 2015-05-21 2023-12-26 Google Llc Prefetching weights for use in a neural network processor
CN107102840A (zh) * 2016-02-22 2017-08-29 三星电子株式会社 数据提取方法和设备
US9898254B2 (en) 2016-02-22 2018-02-20 Samsung Electronics Co., Ltd. Data extraction method and apparatus
CN107102840B (zh) * 2016-02-22 2023-07-04 三星电子株式会社 数据提取方法和设备
US11399079B2 (en) 2018-02-14 2022-07-26 Eingot Llc Zero-knowledge environment based networking engine

Also Published As

Publication number Publication date
KR100450750B1 (ko) 2004-10-01

Similar Documents

Publication Publication Date Title
JP5866128B2 (ja) 算術プロセッサ
Kim et al. A digit-serial multiplier for finite field GF (2/sup m/)
Lee Low complexity bit-parallel systolic multiplier over GF (2m) using irreducible trinomials
Meher et al. Low-Latency, Low-Area, and Scalable Systolic-Like Modular Multipliers for $ GF (2^{m}) $ Based on Irreducible All-One Polynomials
EP0416869B1 (en) Digital adder/accumulator
US6687725B1 (en) Arithmetic circuit for finite field GF (2m)
US8244790B2 (en) Multiplier and cipher circuit
Katti et al. Low complexity multiplication in a finite field using ring representation
KR100450750B1 (ko) 향상된 선형 궤환 시프트 레지스터 구조의 유한체 승산기
KR100478974B1 (ko) 직렬 유한체 승산기
Lee Low-Latency Bit-Parallel Systolic Multiplier for Irreducible x m+ x n+ 1 with gcd (m, n)= 1
Lee et al. Area-Delay Efficient Digit-Serial Multiplier Based on $ k $-Partitioning Scheme Combined With TMVP Block Recombination Approach
Namin et al. A Fully Serial-In Parallel-Out Digit-Level Finite Field Multiplier in $\mathbb {F} _ {2^{m}} $ Using Redundant Representation
Chen et al. Scalable and systolic Montgomery multipliers over GF (2 m)
EP1455270A2 (en) Method and apparatus for basis conversion in finite field and a multiplier
US6230178B1 (en) Method for the production of an error correction parameter associated with the implementation of a modular operation according to the Montgomery method
JP3913921B2 (ja) 有限フィールドでの任意要素の逆数具現回路
US8933731B2 (en) Binary adder and multiplier circuit
Lu et al. A programmable VLSI architecture for computing multiplication and polynomial evaluation modulo a positive integer
KR100946256B1 (ko) 다정도 캐리 세이브 가산기를 이용한 듀얼필드상의확장성있는 몽고매리 곱셈기
Saleh et al. Novel serial–parallel multipliers
Sun et al. Design of scalable hardware architecture for dual-field montgomery modular inverse computation
Wu et al. Optimized Design of ECC Point Multiplication Algorithm Over GF (2m)
Wei VLSI architectures of divider for finite field GF (2/sup m/)
Wolf Efficient circuits for multiplying in GF (2m) for certain values of m

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

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee