KR100954584B1 - Apparatus and Method for MSD first GF3^m serial multiplication and Recording medium using this - Google Patents

Apparatus and Method for MSD first GF3^m serial multiplication and Recording medium using this Download PDF

Info

Publication number
KR100954584B1
KR100954584B1 KR1020080039068A KR20080039068A KR100954584B1 KR 100954584 B1 KR100954584 B1 KR 100954584B1 KR 1020080039068 A KR1020080039068 A KR 1020080039068A KR 20080039068 A KR20080039068 A KR 20080039068A KR 100954584 B1 KR100954584 B1 KR 100954584B1
Authority
KR
South Korea
Prior art keywords
msd
multiplication
operator
generate
polynomial
Prior art date
Application number
KR1020080039068A
Other languages
Korean (ko)
Other versions
KR20090113138A (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 KR1020080039068A priority Critical patent/KR100954584B1/en
Publication of KR20090113138A publication Critical patent/KR20090113138A/en
Application granted granted Critical
Publication of KR100954584B1 publication Critical patent/KR100954584B1/en

Links

Images

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
    • G06F7/523Multiplying only
    • G06F7/525Multiplying only in serial-serial fashion, i.e. both operands being entered serially
    • 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/722Modular multiplication

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)
  • Complex Calculations (AREA)

Abstract

MSD first

Figure 112009081895453-pat00001
직렬 곱셈 장치, 그 방법 및 이를 기록한 기록매체가 개시된다.MSD first
Figure 112009081895453-pat00001
A serial multiplication apparatus, a method thereof, and a recording medium recording the same are disclosed.

본 발명에 따른 MSD first

Figure 112009081895453-pat00002
직렬 곱셈 장치는,
Figure 112009081895453-pat00670
상에서 차수가
Figure 112009081895453-pat00671
인 삼항 기약 다항식
Figure 112009081895453-pat00672
을 사용하며, 상기
Figure 112009081895453-pat00673
의 해가
Figure 112009081895453-pat00674
일 때, 유한체 상의 두 원소
Figure 112009081895453-pat00675
,
Figure 112009081895453-pat00676
의 곱셈을 수행하여 직렬 곱셈 결과값
Figure 112009081895453-pat00677
를 생성하는
Figure 112009081895453-pat00678
기반의 MSD first 디지트 직렬 곱셈 장치에 있어서, 루프 인덱스
Figure 112009081895453-pat00679
Figure 112009081895453-pat00680
일 때,
Figure 112009081895453-pat00681
개의 디지트의 인덱스를
Figure 112009081895453-pat00682
라 하면, 상기
Figure 112009081895453-pat00683
의 계수
Figure 112009081895453-pat00684
,
Figure 112009081895453-pat00685
, 상기 삼항 기약 다항식의 계수로부터 생성되는
Figure 112009081895453-pat00686
, 및 상기 삼항 기약 다항식의 계수에 따라 생성되는
Figure 112009081895453-pat00687
를 입력으로 하여
Figure 112009081895453-pat00688
Figure 112009081895453-pat00689
을 생성하고, 상기
Figure 112009081895453-pat00690
를 이용하여
Figure 112009081895453-pat00691
를 생성하는 초기값 생성부; 루프 인덱스
Figure 112009081895453-pat00692
Figure 112009081895453-pat00693
일 때, 상기 연산된
Figure 112009081895453-pat00694
를 이용하여 제 1 치환 연산자 λj를 생성하고, 상기 연산된
Figure 112009081895453-pat00695
를 이용하여 제 2 치환 연산자 δj를 생성하는 전처리 연산부; 상기 전처리 연산부에서 생성된 제 2 치환 연산자 δj, 상기
Figure 112009081895453-pat00696
의 계수
Figure 112009081895453-pat00697
,
Figure 112009081895453-pat00698
,
Figure 112009081895453-pat00699
Figure 112009081895453-pat00700
를 입력으로 하여
Figure 112009081895453-pat00701
의 결과값
Figure 112009081895453-pat00702
을 생성하는 곱셈부; 이전 루프의 MSD first 디지트 직렬 곱셈의 결과값
Figure 112009081895453-pat00703
, 상기 제 1 치환 연산자 λj, 및 상기 곱셈부의 결과값을 입력으로 하여 덧셈 결과값을 생성하는 가산부; 및 상기 덧셈 결과값을 라이트 쉬프트하여 상기 가산부에 피드백하는 쉬프트 레지스터를 포함한다.MSD first according to the invention
Figure 112009081895453-pat00002
Serial multiplication device,
Figure 112009081895453-pat00670
Order on
Figure 112009081895453-pat00671
Phosphorus Ternary Polynomial
Figure 112009081895453-pat00672
Using the above
Figure 112009081895453-pat00673
The sun
Figure 112009081895453-pat00674
When, two elements on the finite body
Figure 112009081895453-pat00675
,
Figure 112009081895453-pat00676
Series multiplication results by multiplying
Figure 112009081895453-pat00677
To generate
Figure 112009081895453-pat00678
Loop index for MSD first digit serial multiplier
Figure 112009081895453-pat00679
end
Figure 112009081895453-pat00680
when,
Figure 112009081895453-pat00681
Indexes of digits
Figure 112009081895453-pat00682
If I say
Figure 112009081895453-pat00683
Coefficient of
Figure 112009081895453-pat00684
,
Figure 112009081895453-pat00685
, Generated from the coefficients of the ternary polynomial
Figure 112009081895453-pat00686
And generated according to the coefficients of the ternary term polynomial
Figure 112009081895453-pat00687
As the input
Figure 112009081895453-pat00688
and
Figure 112009081895453-pat00689
Create and remind
Figure 112009081895453-pat00690
Using
Figure 112009081895453-pat00691
Initial value generating unit for generating a; Loop index
Figure 112009081895453-pat00692
end
Figure 112009081895453-pat00693
When is calculated
Figure 112009081895453-pat00694
Generates a first substitution operator λ j using
Figure 112009081895453-pat00695
A preprocessing operation unit to generate a second substitution operator δ j using; The second substitution operator δ j generated by the preprocessing operation unit, the
Figure 112009081895453-pat00696
Coefficient of
Figure 112009081895453-pat00697
,
Figure 112009081895453-pat00698
,
Figure 112009081895453-pat00699
And
Figure 112009081895453-pat00700
As the input
Figure 112009081895453-pat00701
Result of
Figure 112009081895453-pat00702
A multiplication unit for generating; Result of MSD first digit serial multiplication in the previous loop
Figure 112009081895453-pat00703
An adder configured to generate an addition result value by inputting the first substitution operator λ j and the result value of the multiplication part; And a shift register which write-shifts the addition result value and feeds it back to the adder.

본 발명에 의하면, 삼항 기약 다항식이 적용되는 페이링 기반의 암호 시스템에 있어서, 기존의 MSD-first 곱셈기에 비하여 적은 시간 지연을 가지고, 표수에 의존하지 않고, 기존의 유한체 곱셈기에 비하여 고속 동작하면서 이때 증가하는 공간 복잡도를 최소화할 수 있고, 이에 따라 페어링 기반의 암호 시스템을 더욱 효율적으로 설계할 수 있으며, 특히 삼항 기약 다항식을 사용하는 모든 유한체에 적용할 수 있기 때문에 이를 기반으로 하는 하드웨어 설계에 응용할 수 있는 효과가 있다.According to the present invention, in a paying-based cryptographic system to which the ternary term polynomial is applied, it has less time delay than the conventional MSD-first multiplier, does not depend on the number of tables, and operates at high speed compared to the conventional finite field multiplier. In this case, the increased space complexity can be minimized, and therefore, a pairing-based cryptographic system can be designed more efficiently, and in particular, it can be applied to all finite bodies using the ternary agreement polynomial. There is an effect that can be applied.

Description

MSD first GF(3^m) 직렬 곱셈 장치, 그 방법 및 이를 기록한 기록매체{Apparatus and Method for MSD first GF(3^m) serial multiplication and Recording medium using this}Apparatus and Method for MSD first GF (3 ^ m) serial multiplication and Recording medium using this}

본 발명은 유한체 상의 연산기에 관한 것으로서, 특히

Figure 112008030085402-pat00041
유한체 상에서 삼항 기약다항식을 사용하여 페어링 기반의 암호시스템을 더욱 효율적으로 설계함으로써 공간을 줄인 고속 연산 시스템을 구축하고, 암호 시스템의 암호화, 복호화 및 전자서명을 빠른 속도로 수행할 수 있는 MSD first
Figure 112008030085402-pat00042
직렬 곱셈 장치, 그 방법 및 이를 기록한 기록매체를 제공하는 것이다.The present invention relates to a calculator on a finite field, in particular
Figure 112008030085402-pat00041
MSD first, which can design a pairing-based cryptographic system more efficiently using ternary contract polynomials on a finite body to construct a high-speed computational system with reduced space, and perform encryption, decryption and digital signature of cryptographic system at high speed.
Figure 112008030085402-pat00042
A serial multiplication apparatus, a method thereof, and a recording medium recording the same are provided.

최근 유비쿼터스 환경에서 센서 네트워크 기술이 IT839 정책의 일환으로 활성화되고 있으며, 이러한 센서 네트워크는 관리자의 부재와 무선 통신, 자원의 제약 등으로 인하여 공격자가 쉽게 접근하여 공격을 시도할 수 있다.Recently, sensor network technology has been activated as part of IT839 policy in ubiquitous environment, and this sensor network can be attacked easily by attacker due to absence of administrator, wireless communication, and resource limitation.

한편, 암호서비스에 대한 요구가 많아지면서 대칭키 알고리즘에서 발생된 키 관리 문제와 인증 문제를 해결하기 위한 알고리즘이 많이 연구되었다.On the other hand, as the demand for cryptographic services increases, many algorithms have been studied to solve key management and authentication problems that occur in symmetric key algorithms.

1976년 Diffie와 Hellman이 처음으로 공개키 암호 알고리즘의 개념을 소개하 였다. 그 후 많은 알고리즘이 제안되었지만, 1978년 RSA가 소개되어 널리 사용되고 있다.In 1976, Diffie and Hellman first introduced the concept of a public key cryptographic algorithm. Since many algorithms have been proposed since 1978, RSA was introduced and widely used.

타원 곡선은 1985년 Kobiltz와 Miller에 의해 발표된 이후 꾸준히 연구되어 왔다.Elliptic curves have been steadily studied since they were published by Kobiltz and Miller in 1985.

타원 곡선 암호가 발표되었을 당시에는 새로운 암호에 대한 안전성 분석이 충분히 이루어지지 않았으므로 널리 사용되지 못했다.When the elliptic curve cipher was released, it was not widely used because the security analysis of the new cipher was insufficient.

이 후, 많은 연구자들에 의한 연구 결과에 따르면 같은 안전도에서 비교할 때, RSA에 비해 훨씬 빠르고 효율적이며 짧은 키 길이를 가지는 장점이 있다.Since then, research by many researchers has shown that compared to the same safety, it is much faster, more efficient and has a shorter key length than RSA.

예를 들면, 타원 곡선 암호의 160비트는 RSA의 1024비트와 같은 안전도를 가진다. 이에 따라서 타원 곡선 암호는 무선 인터넷이나 스마트카드 등 제한된 연산능력을 가지는 하드웨어에 적합한 암호 시스템으로 주목받게 되었다.For example, 160 bits of an elliptic curve cipher have the same security as 1024 bits of the RSA. Accordingly, elliptic curve cryptography has attracted attention as a cryptographic system suitable for hardware with limited computing power, such as wireless Internet or smart card.

한편, 다양한 차수

Figure 112008030085402-pat00043
을 사용하는 상호 간의 거래에 있어서 Versatile 프로세서를 사용함으로써 호환성을 높일 수 있다.Meanwhile, various orders
Figure 112008030085402-pat00043
Versatile processors can be used to increase compatibility in transactions between two parties.

많은 암호시스템에서는 유한체

Figure 112008030085402-pat00044
에서의 연산을 사용한다. 이는 일반적인 컴퓨터 상에서는
Figure 112008030085402-pat00045
의 성능이
Figure 112008030085402-pat00046
의 성능을 능가하기 때문이다.In many cryptosystems, finite
Figure 112008030085402-pat00044
Use the operation in. On a typical computer
Figure 112008030085402-pat00045
Performance
Figure 112008030085402-pat00046
Because it surpasses the performance.

실제로, 유한체에서의 연산을 더욱 빠르게 하기 위하여, 많은 프로세서가 제안되고 있다. 그러나, 대부분 고정된 유한체에서의 연산을 다루고 있고, 이 경우에는 체의 변화나 파라미터 변화가 있을 경우 새로운 프로세서가 필요하게 된다.Indeed, many processors have been proposed to speed up operations on finite bodies. However, most of them deal with operations on fixed finite bodies, in which case new processors are required in the case of sieve changes or parameter changes.

그러나, 최근 페어링(pairing)의 겹선 형성(bilinearity)과 같은 특성들이 새로운 암호시스템에 사용되면서 Weil 페어링과 Tate 페어링 등의 페어링의 효율성에 대한 관심과 연구가 증가하고 있다.However, recently, as characteristics such as bilinearity of pairing are used in a new encryption system, interest and research on the efficiency of pairing such as Weil pairing and Tate pairing are increasing.

페어링을 효율적으로 연산하기 위한 알고리즘은 Miller에 의해 처음 제안되었다.An algorithm for computing pairing efficiently was first proposed by Miller.

그 이후, Barreto외 3인의 "Efficient algorithms for pairing-based cryptosystems, CRYPTO 2002, LNCS 2442, pp.354-368, Springer-Verlag, 2002"와 Galbraith 외 2인의 "Implementing the Tate pairing, ANTS V, LNCS 2369, pp.324-337, Springer-Verlag, 2002"에서 표수가 2인 유한체 위에서 정의된 초특이 타원 곡선(supersingula elliptic curve)에서 Tate 페어링의 연산 속도를 향상시킬 수 있는 방법을 제안하였다.Since then, Barreto et al., "Efficient algorithms for pairing-based cryptosystems, CRYPTO 2002, LNCS 2442, pp.354-368, Springer-Verlag, 2002" and Galbraith et al. "Implementing the Tate pairing, ANTS V, LNCS 2369" , pp.324-337, Springer-Verlag, 2002 ", proposed a method to improve the computation speed of tate pairing in a supersingula elliptic curve defined on a finite field with a surface of 2.

그리고, Duursma와 Lee는 표수가 3인 경우에 닫힌 공식(closed formula)을 제안하였고, S. Kwon은 "Efficient Tate pairing computation for elliptic curves over binary fields, ACISP 2005, LNCS 3574, pp.134-145, Springer-Verlag, 2005"에서 표수가 2인 초특이 타원 곡선으로 Duursma와 Lee의 방법을 확장하였다.Duursma and Lee proposed closed formulas when the number is 3, and S. Kwon said, "Efficient Tate pairing computation for elliptic curves over binary fields, ACISP 2005, LNCS 3574, pp.134-145, Springer-Verlag, 2005 "extends Duursma's and Lee's methods to super-elliptic elliptic curves with a surface of 2.

한편, Barreto외 3인은 "Efficient Pairing Computation on Supersingular Abelian Varieties,” Designs, Codes and Cryptography, Vol.42, No.3, pp.239-271, 2007"에서 초특히 ablian variety에서 페어링을 효율적으로 연산하기 위한 일반적인 접근 방법인

Figure 112008030085402-pat00047
페어링을 제안하였다.On the other hand, Barreto and three others efficiently calculated pairing in the ablian variety, especially in "Efficient Pairing Computation on Supersingular Abelian Varieties," Designs, Codes and Cryptography, Vol. 42, No. 3, pp.239-271, 2007. Is a common approach
Figure 112008030085402-pat00047
Proposed pairing.

한편, 최근 페어링을 구현하기 위한 많은 방법들이 제안되었다. 페어링 구현 은 소프트웨어뿐만 아니라 하드웨어에서 다양한 방법으로 진행되고 있지만, 병렬기법과 파이프라이닝(pipelining) 기법 등의 속도를 향상시킬 수 있는 다양한 방법이 있기 때문에 하드웨어 구현에 대한 연구가 좀 더 활발하게 진행되고 있다.On the other hand, many methods have recently been proposed for implementing pairing. Pairing is implemented not only in software but also in hardware, but there are various ways to improve the speed of parallel and pipelining techniques. Therefore, research on hardware implementation is more active. .

실제로,

Figure 112008030085402-pat00048
Figure 112008030085402-pat00049
에 대한 하드웨어 연구는 많이 진행되었다. 그러나, 페어링 기반의 암호 시스템의 효율성을 높이기 위한 Duursma-Lee의 알고리즘과
Figure 112008030085402-pat00050
페어링 등의 사용으로 인하여 유한체
Figure 112008030085402-pat00051
에 대한 하드웨어 구현 방법이 필요하게 되었다.in reality,
Figure 112008030085402-pat00048
Wow
Figure 112008030085402-pat00049
A lot of hardware research has been done. However, Duursma-Lee's algorithm to improve the efficiency of pairing-based cryptosystem
Figure 112008030085402-pat00050
Finite body due to use of pairing
Figure 112008030085402-pat00051
There is a need for a hardware implementation of.

Figure 112008030085402-pat00052
Figure 112008030085402-pat00053
위에서 차수가
Figure 112008030085402-pat00054
인 삼항 기약 다항식이라고 하고,
Figure 112008030085402-pat00055
Figure 112008030085402-pat00056
의 해라 하자.
Figure 112008030085402-pat00052
To
Figure 112008030085402-pat00053
Degree from above
Figure 112008030085402-pat00054
It is called ternary term polynomial which is
Figure 112008030085402-pat00055
To
Figure 112008030085402-pat00056
Let's do it.

그러면, 유한체

Figure 112008030085402-pat00057
은 그러면, 유한체
Figure 112008030085402-pat00058
Figure 112008030085402-pat00059
와 동형이기 때문에
Figure 112008030085402-pat00060
의 원소
Figure 112008030085402-pat00061
는 다항식 기저를 이용하여 하기의 수학식 1과 같이 표현할 수 있다.Then, finite body
Figure 112008030085402-pat00057
Is then a finite body
Figure 112008030085402-pat00058
silver
Figure 112008030085402-pat00059
Is isomorphic with
Figure 112008030085402-pat00060
Element of
Figure 112008030085402-pat00061
Can be expressed as Equation 1 below using a polynomial basis.

Figure 112008030085402-pat00062
Figure 112008030085402-pat00062

그리고,

Figure 112008030085402-pat00063
Figure 112008030085402-pat00064
의 해이므로
Figure 112008030085402-pat00065
에 의하여 하기의 수학식 2를 구성할 수 있다.And,
Figure 112008030085402-pat00063
Is
Figure 112008030085402-pat00064
As it is the year of
Figure 112008030085402-pat00065
By the following equation (2) can be configured.

Figure 112008030085402-pat00066
Figure 112008030085402-pat00066

그리고,

Figure 112008030085402-pat00067
라 하면,
Figure 112008030085402-pat00068
는 하기의 수학식 3과 같이 구성할 수 있고,
Figure 112008030085402-pat00069
Figure 112008030085402-pat00070
의 덧셈 연산이다.And,
Figure 112008030085402-pat00067
Say,
Figure 112008030085402-pat00068
May be configured as in Equation 3 below,
Figure 112008030085402-pat00069
Is
Figure 112008030085402-pat00070
Is an addition operation.

Figure 112008030085402-pat00071
Figure 112008030085402-pat00071

이하, 기존의 디지트 직렬 곱셈기(Digit Serial multiplier)에 대하여 기술한다.

Figure 112008030085402-pat00072
의 곱셈은 두 원소의 캐리 전파가 없는 다항식 곱셈과 주어진 삼항 기약 다항식
Figure 112008030085402-pat00073
를 이용한 모듈러 연산으로 구성된다.Hereinafter, a conventional digit serial multiplier will be described.
Figure 112008030085402-pat00072
Multiplication of is a polynomial multiplication with no carry propagation of two elements and a given ternary polynomial polynomial
Figure 112008030085402-pat00073
It consists of modular operations using.

여기서는, 일반적인 페어링 기반의 암호 시스템에서 사용하는 삼항 기약 다항식

Figure 112008030085402-pat00074
만을 고려한다.Here, the ternary agreement polynomial used in a common pairing-based cryptosystem
Figure 112008030085402-pat00074
Consider only.

디지트(Digit) 단위의 연산은 한번의 프로세스에

Figure 112008030085402-pat00075
개의 계수를 처리하므로, 비트 단위 연산보다 고속 연산 수행이 가능하다.Digit operations in one process
Figure 112008030085402-pat00075
By processing two coefficients, it is possible to perform a faster operation than a bitwise operation.

상기 디지트의 크기를

Figure 112008030085402-pat00076
라고 하면,
Figure 112008030085402-pat00077
의 원소
Figure 112008030085402-pat00078
는 하기의 수학식 4와 같이 표현된다.The size of the digit
Figure 112008030085402-pat00076
Speaking of
Figure 112008030085402-pat00077
Element of
Figure 112008030085402-pat00078
Is expressed by Equation 4 below.

Figure 112008030085402-pat00079
Figure 112008030085402-pat00079

이를 기반으로 우선, 기존에 제안된 [Low energy digit-serial/parallel finite field multiplier]에서의 MSD- first 디지트 직렬 곱셈기에 대하여 살펴보기로 한다.Based on this, first, the MSD-first digit serial multiplier in the proposed [low energy digit-serial / parallel finite field multiplier] will be described.

이를 타입 1(Type 1)의 MSD- first 디지트 직렬 곱셈기라 하면, 이 곱셈기는 전체적으로

Figure 112008030085402-pat00080
클럭 사이클을 수행하며
Figure 112008030085402-pat00081
번째 반복문에서 부분곱
Figure 112008030085402-pat00082
개의 합은 하기의 수학식 5과 같이 표현된다.If we call this a Type 1 MSD-first digit serial multiplier, the multiplier
Figure 112008030085402-pat00080
Perform clock cycles
Figure 112008030085402-pat00081
Partial product in the first loop
Figure 112008030085402-pat00082
The sum of the dogs is expressed as in Equation 5 below.

Figure 112008030085402-pat00083
Figure 112008030085402-pat00083

상기 수학식 5에서 연산된

Figure 112008030085402-pat00084
는 m-1차 다항식이다. Calculated in Equation 5
Figure 112008030085402-pat00084
Is the m-first order polynomial.

한편, 상기 수학식 5에 따라 연산된

Figure 112008030085402-pat00085
와 누적값
Figure 112008030085402-pat00086
를 더하여 MSD- first 디지트 직렬 곱셈의 결과값을 생성한다.Meanwhile, it is calculated according to Equation 5
Figure 112008030085402-pat00085
And cumulative values
Figure 112008030085402-pat00086
Add to generate the result of MSD-first digit serial multiplication.

이와 같은 MSD- first 디지트 직렬 곱셈을 정리하면, 하기의 표 1에 따른 알고리즘 1과 같다.This MSD-first digit serial multiplication is summarized as Algorithm 1 according to Table 1 below.

Figure 112008030085402-pat00087
Figure 112008030085402-pat00087

상기 알고리즘 1에 의하면

Figure 112008030085402-pat00088
를 만족하는
Figure 112008030085402-pat00089
Figure 112008030085402-pat00090
를 곱하여
Figure 112008030085402-pat00091
를 생성하는 MSD- first 디지트 직렬 곱셈에 있어서, 단계 2.1에서 부분곱마다 감산 연산을 수행하므로 이를 병렬화하는 경우, D(D-1)개의
Figure 112008030085402-pat00092
기반의 곱셈기와 D(D-1)/2의 덧셈기가 필요하다.According to algorithm 1
Figure 112008030085402-pat00088
To satisfy
Figure 112008030085402-pat00089
And
Figure 112008030085402-pat00090
Multiply by
Figure 112008030085402-pat00091
In the MSD-first digit serial multiplication that generates, in step 2.1, since the subtraction operation is performed for each partial product, D (D-1)
Figure 112008030085402-pat00092
We need a base multiplier and a D (D-1) / 2 adder.

여기서, 단계 2.1에서 부분곱의 모듈러 감산을 수행하는 수식인

Figure 112008030085402-pat00093
는 도 1의 모듈러 감산 연산부에 의해 연산될 수 있다.Here, the formula for performing the modular subtraction of the partial product in step 2.1,
Figure 112008030085402-pat00093
May be calculated by the modular subtraction operator of FIG. 1.

한편,

Figure 112008030085402-pat00094
Figure 112008030085402-pat00095
개의 m-1차 다항식의 합이므로
Figure 112008030085402-pat00096
덧셈기가
Figure 112008030085402-pat00097
개로 구성되며, 상기 덧셈기에 따라서
Figure 112008030085402-pat00098
의 시간 지연이 소요된다.Meanwhile,
Figure 112008030085402-pat00094
Is
Figure 112008030085402-pat00095
Is the sum of m-1 polynomials
Figure 112008030085402-pat00096
Adder
Figure 112008030085402-pat00097
Consisting of dogs, depending on the adder
Figure 112008030085402-pat00098
Takes time delay.

또한,

Figure 112008030085402-pat00099
연산은
Figure 112008030085402-pat00100
와 병렬로 수행되므로
Figure 112008030085402-pat00101
의 연산에서
Figure 112008030085402-pat00102
의 시간 지연이 소요되므로, 크리티컬 패스 딜레이(Critical Path Delay)는
Figure 112008030085402-pat00103
이다.Also,
Figure 112008030085402-pat00099
Operation is
Figure 112008030085402-pat00100
In parallel with
Figure 112008030085402-pat00101
In the operation of
Figure 112008030085402-pat00102
Critical path delay, so the critical path delay
Figure 112008030085402-pat00103
to be.

이에 대하여 상기 표 1의 알고리즘 1을 하드웨어로 구성하면 도 2와 같다.On the other hand, if the algorithm 1 of Table 1 is configured by hardware, it is as shown in FIG.

도 2를 참조하면, 상기 알고리즘 1에 따른 종래의 MSD- first 디지트 직렬 곱셈기는

Figure 112008030085402-pat00104
의 계수인
Figure 112008030085402-pat00105
개의
Figure 112008030085402-pat00106
성분과
Figure 112008030085402-pat00107
의 곱셈을 수행하는데 있어서 부분곱의 연산마다 감산 연산을 수행하기 위한 모듈라 감산 연산부가 필요함을 알 수 있고, 모듈라 감산 연산을 수행한 각각의 부분곱 성분끼리 덧셈 연산하는 덧셈기가 구성되어 있음을 확인할 수 있다.2, a conventional MSD-first digit serial multiplier according to Algorithm 1
Figure 112008030085402-pat00104
Factor of
Figure 112008030085402-pat00105
doggy
Figure 112008030085402-pat00106
Ingredients
Figure 112008030085402-pat00107
It can be seen that a modular subtraction operation unit is needed to perform a subtraction operation for each multiplication operation in the multiplication of, and it is confirmed that an adder is configured to add operations for each subproduct component that has performed the modular subtraction operation. have.

그 다음, 종래의 [FPGA accelerated Tate pairing based cryptosystemover binary fields]에서 제안된 MSD-first 디지트 직렬 곱셈기를 살펴보기로 하며, 이를 타입 2(type 2)의 MSD-first 디지트 직렬 곱셈기라고 하기로 한다.Next, the MSD-first digit serial multiplier proposed in the conventional [FPGA accelerated Tate pairing based cryptosystemover binary fields] will be described, which will be referred to as a type 2 MSD-first digit serial multiplier.

[FPGA accelerated Tate pairing based cryptosystemover binary fields]에서는 상기 타입 1의 MSD-first 디지트 직렬 곱셈기와는 달리 디지트(digit) 단위의 프로세스

Figure 112008030085402-pat00108
연산에서 모듈러 감산을 수행하지 않고, 누적값 의 연산에서 한번에 처리한다.In [FPGA accelerated Tate pairing based cryptosystemover binary fields], unlike the type 1 MSD-first digit serial multiplier,
Figure 112008030085402-pat00108
Cumulative value, without performing modular subtraction Process at once.

따라서, 디지트의 크기를

Figure 112008030085402-pat00110
라고 할 때, 매 단계의 루프
Figure 112008030085402-pat00111
마다 부분곱의 합
Figure 112008030085402-pat00112
차 다항식의 연산은 하기의 수학식 6과 같다.Therefore, the size of the digit
Figure 112008030085402-pat00110
Say, every step of the loop
Figure 112008030085402-pat00111
Sum of partial products per
Figure 112008030085402-pat00112
The operation of the difference polynomial is shown in Equation 6 below.

Figure 112008030085402-pat00113
Figure 112008030085402-pat00113

그 다음은, 연산된

Figure 112008030085402-pat00114
와 누적값인
Figure 112008030085402-pat00115
를 더하는 단계이며, 이때,
Figure 112008030085402-pat00116
Figure 112008030085402-pat00117
차 다항식이다.Next, the computed
Figure 112008030085402-pat00114
And cumulative values
Figure 112008030085402-pat00115
Is the step of adding,
Figure 112008030085402-pat00116
Is
Figure 112008030085402-pat00117
It is a car polynomial.

타입 2의 곱셈기는

Figure 112008030085402-pat00118
의 연산에서 모듈라 감산부가 없으므로 시간지연이 상기 타입 1보다 효율적이며, 각각의
Figure 112008030085402-pat00119
는 상호
Figure 112008030085402-pat00120
개 항만 더해지므로, 공간복잡도의 면에서 또한 효율적이다.Type 2 multipliers
Figure 112008030085402-pat00118
Since there is no modular subtraction in the operation of, time delay is more efficient than Type 1,
Figure 112008030085402-pat00119
Mutual
Figure 112008030085402-pat00120
Since only the ports are added, it is also efficient in terms of space complexity.

물론

Figure 112008030085402-pat00121
Figure 112008030085402-pat00122
차 이므로 이의 모듈러 감산 연산부가 증가하나,
Figure 112008030085402-pat00123
의 모듈러 감산 연산부 감소에 비하여 미비하다. 따라서,
Figure 112008030085402-pat00124
의 저장 공간인
Figure 112008030085402-pat00125
비트를 제외한 모든 부분에서 상기 표 1의 타입 1보다 더욱 효율적이라고 할 수 있다.sure
Figure 112008030085402-pat00121
end
Figure 112008030085402-pat00122
Difference, so its modular subtraction operation increases.
Figure 112008030085402-pat00123
It is inferior to the reduction of modular subtraction operation of. therefore,
Figure 112008030085402-pat00124
Storage space for
Figure 112008030085402-pat00125
It can be said that it is more efficient than Type 1 of Table 1 in all parts except bits.

한편, 상기 타입 2의 MSD-first 디지트 직렬 곱셈기는 하기의 표 2의 알고리즘 2와 같다.Meanwhile, the MSD-first digit serial multiplier of the type 2 is the same as Algorithm 2 of Table 2 below.

Figure 112008030085402-pat00126
Figure 112008030085402-pat00126

상기 알고리즘 2의 경우 단계 2.1에서 부분곱의 합을 수행하므로 이를 병렬화하는 경우

Figure 112008030085402-pat00127
개의
Figure 112008030085402-pat00128
기반의 곱셈기와
Figure 112008030085402-pat00129
개의
Figure 112008030085402-pat00130
기반의 덧셈기가 필요하다.In case of Algorithm 2, since the sum of the partial products is performed in Step 2.1, the parallelization is performed.
Figure 112008030085402-pat00127
doggy
Figure 112008030085402-pat00128
Based multipliers and
Figure 112008030085402-pat00129
doggy
Figure 112008030085402-pat00130
You need a base adder.

여기서,

Figure 112008030085402-pat00131
Figure 112008030085402-pat00132
차 다항식이고,
Figure 112008030085402-pat00133
가 하위
Figure 112008030085402-pat00134
개의 계수가 0인
Figure 112008030085402-pat00135
차 다항식이므로,
Figure 112008030085402-pat00136
의 연산에서
Figure 112008030085402-pat00137
개의
Figure 112008030085402-pat00138
기반의 덧셈기가 필요하다.here,
Figure 112008030085402-pat00131
Is
Figure 112008030085402-pat00132
Is a car polynomial,
Figure 112008030085402-pat00133
Subordinate
Figure 112008030085402-pat00134
Coefficients with zero
Figure 112008030085402-pat00135
Is a polynomial, so
Figure 112008030085402-pat00136
In the operation of
Figure 112008030085402-pat00137
doggy
Figure 112008030085402-pat00138
You need a base adder.

시간 복잡도의 경우,

Figure 112008030085402-pat00139
의 연산에서
Figure 112008030085402-pat00140
개의
Figure 112008030085402-pat00141
차 다항식의 부분곱의 합이므로
Figure 112008030085402-pat00142
의 시간 지연이 소요된다.For time complexity,
Figure 112008030085402-pat00139
In the operation of
Figure 112008030085402-pat00140
doggy
Figure 112008030085402-pat00141
Is the sum of the partial products of the difference polynomial
Figure 112008030085402-pat00142
Takes time delay.

또한,

Figure 112008030085402-pat00143
Figure 112008030085402-pat00144
Figure 112008030085402-pat00145
와 병렬로 연산이 수행되므로
Figure 112008030085402-pat00146
의 연산에서
Figure 112008030085402-pat00147
의 시간지연이 소요된다. Also,
Figure 112008030085402-pat00143
Figure 112008030085402-pat00144
Is
Figure 112008030085402-pat00145
Because the operation is performed in parallel with
Figure 112008030085402-pat00146
In the operation of
Figure 112008030085402-pat00147
It takes time delay.

따라서, 크리티컬 패스 딜레이(Critical Path Delay)는

Figure 112008030085402-pat00148
이며, 마지막
Figure 112008030085402-pat00149
의 모듈러 연산을 위하여 1번 추가 반복된 연산이 수행된다.Therefore, the critical path delay
Figure 112008030085402-pat00148
Is the last
Figure 112008030085402-pat00149
One more repeated operation is performed for the modular operation of.

상기 표 2의 알고리즘 2를 하드웨어로 구성하면 도 3과 같다.Algorithm 2 of Table 2 is configured as hardware as shown in FIG. 3.

도 3을 참조하면, 상기 알고리즘 2에 따른 종래의 MSD- first 디지트 직렬 곱셈기는

Figure 112008030085402-pat00150
의 계수인
Figure 112008030085402-pat00151
개의
Figure 112008030085402-pat00152
성분과
Figure 112008030085402-pat00153
의 곱셈을 수행하는데 있어서 이전의 루프에서 모듈라 연산의 결과값을 감산 연산하는 모듈라 감산 연산부가 필요함을 알 수 있고, 각각의 부분곱을 수행하는 곱셈기와 곱셈 연산이 수행된 부분곱을 합하는 덧셈기가 구성되어 있음을 확인할 수 있다.3, a conventional MSD-first digit serial multiplier according to Algorithm 2 is
Figure 112008030085402-pat00150
Factor of
Figure 112008030085402-pat00151
doggy
Figure 112008030085402-pat00152
Ingredients
Figure 112008030085402-pat00153
It can be seen that the modular subtraction operation unit which subtracts the result of the modular operation in the previous loop is required to perform the multiplication of the multiplication, and the multiplier for performing each subproduct and the adder for adding the partial product in which the multiplication operation is performed are configured. can confirm.

그러나,

Figure 112008030085402-pat00154
과 같이 표수가 3 이상인 타원곡선 암호 시스템은 다항식의 계수들의 모듈러 연산이 따로 수행되어야 하고, 연산 과정이 더욱 복잡하기 때문에, 실제로 표수가 3 이상인 타원 곡선 암호 시스템이 표수가 2인 타원 곡선 암호 시스템보다 더욱 높은 안전성을 제공함에도 불구하고 거의 사용되고 있지 않은 문제점이 있다.But,
Figure 112008030085402-pat00154
As the elliptic curve cryptosystem with 3 or more indexes requires the modular operation of coefficients of polynomials to be performed separately, and the computation process is more complicated, the elliptic curve cryptosystem with 3 or more indexes is actually more efficient than the elliptic curve cryptosystem with 2 or 2 indexes. Despite providing higher safety there is a problem that is rarely used.

본 발명이 해결하고자 하는 첫 번째 과제는 종래의 MSD-first 곱셈기에 비하여 표수에 의존하지 않고 기존의 유한체 곱셈기에 비하여 고속 동작하면서 이때 증가하는 공간 복잡도를 최소화할 수 있고, 적은 시간 지연을 가질 수 있는 MSD-first 디지트 직렬 곱셈 장치를 제공하는 것이다.The first problem to be solved by the present invention is to operate at a high speed compared to the conventional finite field multiplier without relying on the number of tables compared to the conventional MSD-first multiplier, thereby minimizing the increased space complexity, and can have a small time delay The MSD-first digit serial multiplication device is to provide.

본 발명이 해결하고자 하는 두 번째 과제는 상기 MSD-first 디지트 직렬 곱셈 장치를 적용한 MSD-first 디지트 직렬 곱셈 방법을 제공하는 것이다.A second object of the present invention is to provide an MSD-first digit serial multiplication method using the MSD-first digit serial multiplication apparatus.

한편, 본 발명이 해결하고자 하는 세 번째 과제는 상기 MSD-first 디지트 직렬 곱셈 방법을 컴퓨터에서 수행할 수 있도록 프로그램으로 기록된 기록매체를 제공하는 것이다.On the other hand, a third object of the present invention is to provide a recording medium recorded by a program so that the computer can perform the MSD-first digit serial multiplication method.

상기 첫 번째 과제를 해결하기 위하여 본 발명은,

Figure 112009081895453-pat00704
상에서 차수가
Figure 112009081895453-pat00705
인 삼항 기약 다항식
Figure 112009081895453-pat00706
을 사용하며, 상기
Figure 112009081895453-pat00707
의 해가
Figure 112009081895453-pat00708
일 때, 유한체 상의 두 원소
Figure 112009081895453-pat00709
,
Figure 112009081895453-pat00710
의 곱셈을 수행하여 직렬 곱셈 결과값
Figure 112009081895453-pat00711
를 생성하는
Figure 112009081895453-pat00712
기반의 MSD first 디지트 직렬 곱셈 장치에 있어서, 루프 인덱스
Figure 112009081895453-pat00713
Figure 112009081895453-pat00714
일 때,
Figure 112009081895453-pat00715
개의 디지트의 인덱스를
Figure 112009081895453-pat00716
라 하면, 상기
Figure 112009081895453-pat00717
의 계수
Figure 112009081895453-pat00718
,
Figure 112009081895453-pat00719
, 상기 삼항 기약 다항식의 계수로부터 생성되는
Figure 112009081895453-pat00720
, 및 상기 삼항 기약 다항식의 계수에 따라 생성되는
Figure 112009081895453-pat00721
를 입력으로 하여
Figure 112009081895453-pat00722
Figure 112009081895453-pat00723
을 생성하고, 상기
Figure 112009081895453-pat00724
를 이용하여
Figure 112009081895453-pat00725
를 생성하는 초기값 생성부; 루프 인덱스
Figure 112009081895453-pat00726
Figure 112009081895453-pat00727
일 때, 상기 연산된
Figure 112009081895453-pat00728
를 이용하여 제 1 치환 연산자 λj를 생성하고, 상기 연산된
Figure 112009081895453-pat00729
를 이용하여 제 2 치환 연산자 δj를 생성하는 전처리 연산부; 상기 전처리 연산부에서 생성된 제 2 치환 연산자 δj, 상기
Figure 112009081895453-pat00730
의 계수
Figure 112009081895453-pat00731
,
Figure 112009081895453-pat00732
,
Figure 112009081895453-pat00733
Figure 112009081895453-pat00734
를 입력으로 하여
Figure 112009081895453-pat00735
의 결과값
Figure 112009081895453-pat00736
을 생성하는 곱셈부; 이전 루프의 MSD first 디지트 직렬 곱셈의 결과값
Figure 112009081895453-pat00737
, 상기 제 1 치환 연산자 λj, 및 상기 곱셈부의 결과값을 입력으로 하여 덧셈 결과값을 생성하는 가산부; 및 상기 덧셈 결과값을 라이트 쉬프트하여 상기 가산부에 피드백하는 쉬프트 레지스터를 포함하는
Figure 112009081895453-pat00193
기반의 MSD first 디지트 직렬 곱셈 장치를 제공한다.The present invention to solve the first problem,
Figure 112009081895453-pat00704
Order on
Figure 112009081895453-pat00705
Phosphorus Ternary Polynomial
Figure 112009081895453-pat00706
Using the above
Figure 112009081895453-pat00707
The sun
Figure 112009081895453-pat00708
When, two elements on the finite body
Figure 112009081895453-pat00709
,
Figure 112009081895453-pat00710
Series multiplication results by multiplying
Figure 112009081895453-pat00711
To generate
Figure 112009081895453-pat00712
Loop index for MSD first digit serial multiplier
Figure 112009081895453-pat00713
end
Figure 112009081895453-pat00714
when,
Figure 112009081895453-pat00715
Indexes of digits
Figure 112009081895453-pat00716
If I say
Figure 112009081895453-pat00717
Coefficient of
Figure 112009081895453-pat00718
,
Figure 112009081895453-pat00719
, Generated from the coefficients of the ternary polynomial
Figure 112009081895453-pat00720
And generated according to the coefficients of the ternary term polynomial
Figure 112009081895453-pat00721
As the input
Figure 112009081895453-pat00722
and
Figure 112009081895453-pat00723
Create and remind
Figure 112009081895453-pat00724
Using
Figure 112009081895453-pat00725
Initial value generating unit for generating a; Loop index
Figure 112009081895453-pat00726
end
Figure 112009081895453-pat00727
When is calculated
Figure 112009081895453-pat00728
Generates a first substitution operator λ j using
Figure 112009081895453-pat00729
A preprocessing operation unit to generate a second substitution operator δ j using; The second substitution operator δ j generated by the preprocessing operation unit, the
Figure 112009081895453-pat00730
Coefficient of
Figure 112009081895453-pat00731
,
Figure 112009081895453-pat00732
,
Figure 112009081895453-pat00733
And
Figure 112009081895453-pat00734
As the input
Figure 112009081895453-pat00735
Result of
Figure 112009081895453-pat00736
A multiplication unit for generating; Result of MSD first digit serial multiplication in the previous loop
Figure 112009081895453-pat00737
An adder configured to generate an addition result value by inputting the first substitution operator λ j and the result value of the multiplication part; And a shift register which write-shifts the addition result value and feeds it back to the adder.
Figure 112009081895453-pat00193
MSD first digit serial multiplier.

삭제delete

한편, 상기 초기값 생성부는
수학식

Figure 112009081895453-pat00738
에 따라 상기
Figure 112009081895453-pat00739
를 이용하여 상기
Figure 112009081895453-pat00740
를 생성하는 것을 특징으로 한다.On the other hand, the initial value generating unit
Equation
Figure 112009081895453-pat00738
According to the above
Figure 112009081895453-pat00739
Using above
Figure 112009081895453-pat00740
It characterized in that to generate.

그리고, 상기 초기값 생성부는 디지트

Figure 112009081895453-pat00741
의 인덱스를
Figure 112009081895453-pat00742
라 하면,
Figure 112009081895453-pat00743
의 계수
Figure 112009081895453-pat00744
,
Figure 112009081895453-pat00745
, 상기 삼항 기약 다항식의 계수로부터 생성되는
Figure 112009081895453-pat00746
, 및
Figure 112009081895453-pat00747
에 따라 연산되는 제 1 전처리 연산자
Figure 112009081895453-pat00748
에 따라 수학식
Figure 112009081895453-pat00749
에 의해
Figure 112009081895453-pat00750
Figure 112009081895453-pat00751
을 생성하는 것을 특징으로 한다.The initial value generating unit is a digit.
Figure 112009081895453-pat00741
Index of
Figure 112009081895453-pat00742
Say,
Figure 112009081895453-pat00743
Coefficient of
Figure 112009081895453-pat00744
,
Figure 112009081895453-pat00745
, Generated from the coefficients of the ternary polynomial
Figure 112009081895453-pat00746
, And
Figure 112009081895453-pat00747
First preprocessing operator, computed according to
Figure 112009081895453-pat00748
According to the equation
Figure 112009081895453-pat00749
By
Figure 112009081895453-pat00750
and
Figure 112009081895453-pat00751
It characterized in that to generate.

아울러, 상기 전처리 연산부는 수학식

Figure 112008030085402-pat00208
에 의해 제 2 전처리 연산자
Figure 112008030085402-pat00209
및 제 3 전처리 연산자
Figure 112008030085402-pat00210
를 생성하는 것을 특징으로 한다.In addition, the preprocessing operation unit
Figure 112008030085402-pat00208
By the second preprocessing operator
Figure 112008030085402-pat00209
And third preprocessing operator
Figure 112008030085402-pat00210
It characterized in that to generate.

한편, 상기 전처리 연산부는 수학식

Figure 112009081895453-pat00211
에 의해 상기 제 1 치환 연산자 λj 제 2 치환 연산자 δj를 생성하는 것을 특징으로 한다.On the other hand, the preprocessing operation unit
Figure 112009081895453-pat00211
By the first substitution operator λ j and And a second substitution operator δ j .

그리고, 상기 가산부는 이전 루프의 MSD first 디지트 직렬 곱셈의 결과값

Figure 112008030085402-pat00214
및 상기
Figure 112008030085402-pat00215
의 계수
Figure 112008030085402-pat00216
와 상기
Figure 112008030085402-pat00217
의 곱에 의해 생성되는 중간 연산값
Figure 112008030085402-pat00218
를 이용하여 수학식
Figure 112008030085402-pat00219
에 따라 덧셈 연산의 결과값을 생성하는 것을 특징으로 한다.And the adder is a result of MSD first digit serial multiplication of the previous loop.
Figure 112008030085402-pat00214
And said
Figure 112008030085402-pat00215
Coefficient of
Figure 112008030085402-pat00216
And above
Figure 112008030085402-pat00217
The intermediate operation produced by the product of
Figure 112008030085402-pat00218
Equation using
Figure 112008030085402-pat00219
The result of the addition operation is characterized in that for generating.

상기 두 번째 과제를 해결하기 위하여 본 발명은,

Figure 112009081895453-pat00752
상에서 차수가
Figure 112009081895453-pat00753
인 삼항 기약 다항식
Figure 112009081895453-pat00754
을 사용하며, 상기
Figure 112009081895453-pat00755
의 해가
Figure 112009081895453-pat00756
일 때, 유한체 상의 두 원소
Figure 112009081895453-pat00757
,
Figure 112009081895453-pat00758
의 곱셈을 수행하여 직렬 곱셈 결과값
Figure 112009081895453-pat00759
를 생성하는
Figure 112009081895453-pat00760
기반의 MSD first 디지트 직렬 곱셈 방법에 있어서, 루프 인덱스
Figure 112009081895453-pat00761
Figure 112009081895453-pat00762
일 때,
Figure 112009081895453-pat00763
개의 디지트의 인덱스를
Figure 112009081895453-pat00764
라 하면, 상기
Figure 112009081895453-pat00765
의 계수
Figure 112009081895453-pat00766
,
Figure 112009081895453-pat00767
, 상기 삼항 기약 다항식의 계수로부터 생성되는
Figure 112009081895453-pat00768
, 및 상기 삼항 기약 다항식의 계수에 따라 생성되는
Figure 112009081895453-pat00769
를 입력으로 하여
Figure 112009081895453-pat00770
Figure 112009081895453-pat00771
을 생성하고, 상기
Figure 112009081895453-pat00772
를 이용하여
Figure 112009081895453-pat00773
를 생성하는 초기값 생성 단계; 루프 인덱스
Figure 112009081895453-pat00774
Figure 112009081895453-pat00775
일 때, 상기 연산된
Figure 112009081895453-pat00776
를 이용하여 제 1 치환 연산자 λj를 생성하고, 상기 연산된
Figure 112009081895453-pat00777
를 이용하여 제 2 치환 연산자 δj를 생성하는 전처리 연산 단계; 상기 전처리 연산 단계에서 생성된 제 2 치환 연산자 δj, 상기
Figure 112009081895453-pat00778
의 계수
Figure 112009081895453-pat00779
,
Figure 112009081895453-pat00780
,
Figure 112009081895453-pat00781
Figure 112009081895453-pat00782
를 입력으로 하여
Figure 112009081895453-pat00783
의 결과값
Figure 112009081895453-pat00784
을 생성하는 곱셈 결과값 생성 단계; 이전 루프의 MSD first 디지트 직렬 곱셈의 결과값
Figure 112009081895453-pat00785
, 상기 제 1 치환 연산자 λj, 및 상기 곱셈 결과값 생성 단계의 결과값을 입력으로 하여 덧셈 결과값을 덧셈 결과값 생성 단계; 및 상기 덧셈 결과값을 라이트 쉬프트하여 상기 덧셈 결과값 생성 단계에 피드백하는 단계를 포함하는
Figure 112009081895453-pat00258
기반의 MSD first 디지트 직렬 곱셈 방법을 제공한다.The present invention to solve the second problem,
Figure 112009081895453-pat00752
Order on
Figure 112009081895453-pat00753
Phosphorus Ternary Polynomial
Figure 112009081895453-pat00754
Using the above
Figure 112009081895453-pat00755
The sun
Figure 112009081895453-pat00756
When, two elements on the finite body
Figure 112009081895453-pat00757
,
Figure 112009081895453-pat00758
Series multiplication results by multiplying
Figure 112009081895453-pat00759
To generate
Figure 112009081895453-pat00760
In the MSD first digit serial multiplication method based on a loop index,
Figure 112009081895453-pat00761
end
Figure 112009081895453-pat00762
when,
Figure 112009081895453-pat00763
Indexes of digits
Figure 112009081895453-pat00764
If I say
Figure 112009081895453-pat00765
Coefficient of
Figure 112009081895453-pat00766
,
Figure 112009081895453-pat00767
, Generated from the coefficients of the ternary polynomial
Figure 112009081895453-pat00768
And generated according to the coefficients of the ternary term polynomial
Figure 112009081895453-pat00769
As the input
Figure 112009081895453-pat00770
and
Figure 112009081895453-pat00771
Create and remind
Figure 112009081895453-pat00772
Using
Figure 112009081895453-pat00773
Generating an initial value; Loop index
Figure 112009081895453-pat00774
end
Figure 112009081895453-pat00775
When is calculated
Figure 112009081895453-pat00776
Generates a first substitution operator λ j using
Figure 112009081895453-pat00777
A preprocessing operation step of generating a second substitution operator δ j using; The second substitution operator δ j generated in the preprocessing operation,
Figure 112009081895453-pat00778
Coefficient of
Figure 112009081895453-pat00779
,
Figure 112009081895453-pat00780
,
Figure 112009081895453-pat00781
And
Figure 112009081895453-pat00782
As the input
Figure 112009081895453-pat00783
Result of
Figure 112009081895453-pat00784
Generating a multiplication result; Result of MSD first digit serial multiplication in the previous loop
Figure 112009081895453-pat00785
Generating an addition result value by inputting the first substitution operator λ j and the result value of the multiplication result generation step; And right shifting the addition result value and feeding back the generation result generation step.
Figure 112009081895453-pat00258
MSD first digit serial multiplication method.

삭제delete

그리고, 상기 초기값 생성 단계는 수학식

Figure 112009081895453-pat00259
에 따라 상기
Figure 112009081895453-pat00786
를 이용하여 상기
Figure 112009081895453-pat00787
를 생성하는 것을 특징으로 한다.In addition, the initial value generating step is the equation
Figure 112009081895453-pat00259
According to the above
Figure 112009081895453-pat00786
Using above
Figure 112009081895453-pat00787
It characterized in that to generate.

아울러, 상기 초기값 생성 단계는 디지트

Figure 112009081895453-pat00788
의 인덱스를
Figure 112009081895453-pat00789
라 하면,
Figure 112009081895453-pat00790
의 계수
Figure 112009081895453-pat00791
,
Figure 112009081895453-pat00792
, 상기 삼항 기약 다항식의 계수로부터 생성되는
Figure 112009081895453-pat00793
, 및
Figure 112009081895453-pat00794
에 따라 연산되는 제 1 전처리 연산자
Figure 112009081895453-pat00795
에 따라 수학식
Figure 112009081895453-pat00796
에 의해
Figure 112009081895453-pat00797
Figure 112009081895453-pat00798
을 생성하는 것을 특징으로 한다.In addition, the initial value generating step is a digit
Figure 112009081895453-pat00788
Index of
Figure 112009081895453-pat00789
Say,
Figure 112009081895453-pat00790
Coefficient of
Figure 112009081895453-pat00791
,
Figure 112009081895453-pat00792
, Generated from the coefficients of the ternary polynomial
Figure 112009081895453-pat00793
, And
Figure 112009081895453-pat00794
First preprocessing operator, computed according to
Figure 112009081895453-pat00795
According to the equation
Figure 112009081895453-pat00796
By
Figure 112009081895453-pat00797
and
Figure 112009081895453-pat00798
It characterized in that to generate.

한편, 상기 전처리 연산 단계는 수학식

Figure 112008030085402-pat00273
에 의해 제 2 전처리 연산자
Figure 112008030085402-pat00274
및 제 3 전처리 연산자
Figure 112008030085402-pat00275
를 생성하는 것을 특징으로 한다.On the other hand, the preprocessing step is a mathematical formula
Figure 112008030085402-pat00273
By the second preprocessing operator
Figure 112008030085402-pat00274
And third preprocessing operator
Figure 112008030085402-pat00275
It characterized in that to generate.

아울러, 상기 전처리 연산 단계는 수학식

Figure 112009081895453-pat00276
에 의해 상기 제 1 치환 연산자 λj 제 2 치환 연산자 δj를 생성하는 것을 특징으로 한다.In addition, the preprocessing operation is represented by
Figure 112009081895453-pat00276
By the first substitution operator λ j and And a second substitution operator δ j .

상기 세 번째 과제를 해결하기 위하여 본 발명은,The present invention to solve the third problem,

상기

Figure 112008030085402-pat00279
기반의 MSD first 디지트 직렬 곱셈 방법을 컴퓨터에서 수행할 수 있도록 프로그램으로 기록된 기록 매체를 제공한다.remind
Figure 112008030085402-pat00279
A program-recorded recording medium is provided for a computer-based MSD first digit serial multiplication method.

본 발명에 의하면, 삼항 기약 다항식이 적용되는 페이링 기반의 암호 시스템에 있어서, 기존의 MSD-first 곱셈기에 비하여 적은 시간 지연을 가지고, 표수에 의존하지 않고, 기존의 유한체 곱셈기에 비하여 고속 동작하면서 이때 증가하는 공간 복잡도를 최소화할 수 있고, 이에 따라 페어링 기반의 암호 시스템을 더욱 효율적으로 설계할 수 있으며, 특히 삼항 기약 다항식을 사용하는 모든 유한체에 적용할 수 있기 때문에 이를 기반으로 하는 하드웨어 설계에 응용할 수 있는 효과가 있다.According to the present invention, in a paying-based cryptographic system to which the ternary term polynomial is applied, it has less time delay than the conventional MSD-first multiplier, does not depend on the number of tables, and operates at high speed compared to the conventional finite field multiplier. In this case, the increased space complexity can be minimized, and therefore, a pairing-based cryptographic system can be designed more efficiently, and in particular, it can be applied to all finite bodies using the ternary agreement polynomial. There is an effect that can be applied.

본 발명은

Figure 112008030085402-pat00280
에 기반한 MSD-first 디지트 직렬 곱셈기를 제안한다. 본 발명에서 제안하는 곱셈기는 상기 표 2의 타입 2의 모듈러 감산 연산부의 병렬화에 기반한다.The present invention
Figure 112008030085402-pat00280
We propose an MSD-first digit serial multiplier based on. The multiplier proposed in the present invention is based on the parallelization of the modular subtraction operator of type 2 of Table 2.

상기 알고리즘 2에서

Figure 112008030085402-pat00281
는 하기의 수학식 7에 의해 표현될 수 있다.In algorithm 2 above
Figure 112008030085402-pat00281
Can be expressed by Equation 7 below.

Figure 112008030085402-pat00282
Figure 112008030085402-pat00282

한편, 상기 알고리즘 2에서 반복문에서

Figure 112008030085402-pat00283
Figure 112008030085402-pat00284
에서 -1까지 감소하는 것을 고려하여
Figure 112008030085402-pat00285
번째의
Figure 112008030085402-pat00286
를 하기의 수학식 8과 같이 표기한다.On the other hand, in the loop in the algorithm 2
Figure 112008030085402-pat00283
end
Figure 112008030085402-pat00284
Considering decreasing from to -1
Figure 112008030085402-pat00285
Th
Figure 112008030085402-pat00286
Is expressed as in Equation 8 below.

Figure 112008030085402-pat00287
Figure 112008030085402-pat00287

상기 수학식 8에서

Figure 112008030085402-pat00288
의 식이 성립한다.In Equation 8
Figure 112008030085402-pat00288
Equation of

한편, 본 발명을 위하여 하기의 정의 및 정리에 따라 본 발명을 더욱 상세히 상술하기로 한다.On the other hand, the present invention will be described in more detail according to the following definitions and theorems for the present invention.

우선 아래와 같이 첫 번째 정의를 기술하기로 한다.First, the first definition is described as follows.

정의 1(Definition 1 ( DefinitionDefinition 1) One)

Figure 112008030085402-pat00289
Figure 112008030085402-pat00290
의 원소라 하고, 삼차 기약 다항식
Figure 112008030085402-pat00291
에 대하여
Figure 112008030085402-pat00292
Figure 112008030085402-pat00293
라 하면, 하기의 수학식 9에 의해
Figure 112008030085402-pat00294
를 정의할 수 있다.
Figure 112008030085402-pat00289
end
Figure 112008030085402-pat00290
Ternary polynomial
Figure 112008030085402-pat00291
about
Figure 112008030085402-pat00292
Figure 112008030085402-pat00293
In the following equation (9)
Figure 112008030085402-pat00294
Can be defined.

Figure 112008030085402-pat00295
Figure 112008030085402-pat00295

정리 1(Theorem 1 ( TheoremTheorem 1) One)

Figure 112008030085402-pat00296
이면, 상기 정의 1에서 두 원소
Figure 112008030085402-pat00297
의 곱은 하기의 수학식 10에 의해 정의될 수 있다.
Figure 112008030085402-pat00296
If two elements in definition 1
Figure 112008030085402-pat00297
The product of may be defined by Equation 10 below.

Figure 112009081895453-pat00799
Figure 112009081895453-pat00799

상기 수학식 10에서

Figure 112008030085402-pat00299
의 값이 성립된다. 그리고,
Figure 112008030085402-pat00300
가 삼항 기약 다항식이면,
Figure 112008030085402-pat00301
가 성립되고,
Figure 112008030085402-pat00302
항부터
Figure 112008030085402-pat00303
까지의 계수는 0이다. 단
Figure 112008030085402-pat00304
이다.In Equation 10
Figure 112008030085402-pat00299
Is established. And,
Figure 112008030085402-pat00300
Is a ternary term polynomial,
Figure 112008030085402-pat00301
Is established,
Figure 112008030085402-pat00302
From the port
Figure 112008030085402-pat00303
The coefficient up to is 0. only
Figure 112008030085402-pat00304
to be.

한편,

Figure 112008030085402-pat00305
의 0이 아닌 임의의 원소
Figure 112008030085402-pat00306
는 자신의 역원이므로
Figure 112008030085402-pat00307
의 등식이 성립한다. 따라서
Figure 112008030085402-pat00308
Figure 112008030085402-pat00309
항부터
Figure 112008030085402-pat00310
항 까지의 계수는 하기의 수학식 11에 의한다.Meanwhile,
Figure 112008030085402-pat00305
Any nonzero element of
Figure 112008030085402-pat00306
Is his station
Figure 112008030085402-pat00307
Equation of therefore
Figure 112008030085402-pat00308
of
Figure 112008030085402-pat00309
From the port
Figure 112008030085402-pat00310
The coefficient up to the term is based on Equation 11 below.

Figure 112008030085402-pat00311
Figure 112008030085402-pat00311

이와 같이 상기 수학식 11에 의거하여

Figure 112008030085402-pat00312
Figure 112008030085402-pat00313
항부터
Figure 112008030085402-pat00314
항 까지의 계수값은 0이 된다.(
Figure 112008030085402-pat00315
)Thus, based on Equation 11
Figure 112008030085402-pat00312
of
Figure 112008030085402-pat00313
From the port
Figure 112008030085402-pat00314
The count up to the term is zero.
Figure 112008030085402-pat00315
)

따라서,

Figure 112008030085402-pat00316
는 상기 정리 1에 의하여
Figure 112008030085402-pat00317
이며, 반복 연산을 고려하여 표현하면, 하기의 수학식 12와 같으며
Figure 112008030085402-pat00318
Figure 112008030085402-pat00319
차 이므로
Figure 112008030085402-pat00320
Figure 112008030085402-pat00321
차 이다.therefore,
Figure 112008030085402-pat00316
By the theorem 1
Figure 112008030085402-pat00317
When expressed in consideration of the iterative operation,
Figure 112008030085402-pat00318
end
Figure 112008030085402-pat00319
Because the car
Figure 112008030085402-pat00320
Is
Figure 112008030085402-pat00321
It's tea.

Figure 112008030085402-pat00322
Figure 112008030085402-pat00322

상기 수학식 12에 의하여

Figure 112008030085402-pat00323
반복문에서의
Figure 112008030085402-pat00324
를 정의할 수 있고, 여기 서,
Figure 112008030085402-pat00325
에서
Figure 112008030085402-pat00326
가 0보다 작으면
Figure 112008030085402-pat00327
이다.According to Equation 12
Figure 112008030085402-pat00323
In a loop
Figure 112008030085402-pat00324
Can be defined here,
Figure 112008030085402-pat00325
in
Figure 112008030085402-pat00326
Is less than 0
Figure 112008030085402-pat00327
to be.

한편, 상기 수학식 12에서

Figure 112008030085402-pat00328
Figure 112008030085402-pat00329
라고 하면,
Figure 112008030085402-pat00330
Figure 112008030085402-pat00331
와 같이 표현되고, 이를 상기 수학식 12에 대입하여 정리하면,
Figure 112008030085402-pat00332
의 계수는 하기의 수학식 13과 같다. 이 때,
Figure 112008030085402-pat00333
Figure 112008030085402-pat00334
Figure 112008030085402-pat00335
항의 계수이다.Meanwhile, in Equation 12
Figure 112008030085402-pat00328
To
Figure 112008030085402-pat00329
Speaking of
Figure 112008030085402-pat00330
Is
Figure 112008030085402-pat00331
Expressed as, and substituted by Equation 12,
Figure 112008030085402-pat00332
The coefficient of is given by Equation 13 below. At this time,
Figure 112008030085402-pat00333
Is
Figure 112008030085402-pat00334
of
Figure 112008030085402-pat00335
The coefficient of the term.

Figure 112009081895453-pat00336

Figure 112009081895453-pat00800
이다.
Figure 112009081895453-pat00336

only
Figure 112009081895453-pat00800
to be.

정리 2(Theorem 2 ( TheoremTheorem 2)  2)

Figure 112008030085402-pat00337
Figure 112008030085402-pat00338
라 하고,
Figure 112008030085402-pat00339
일 때,
Figure 112008030085402-pat00340
Figure 112008030085402-pat00341
라고 하면,
Figure 112008030085402-pat00342
의 계수
Figure 112008030085402-pat00343
는 하기의 수학식 14에 의해 정리된다.
Figure 112008030085402-pat00337
To
Figure 112008030085402-pat00338
,
Figure 112008030085402-pat00339
when,
Figure 112008030085402-pat00340
To
Figure 112008030085402-pat00341
Speaking of
Figure 112008030085402-pat00342
Coefficient of
Figure 112008030085402-pat00343
Is summarized by Equation 14 below.

Figure 112009081895453-pat00344
Figure 112009081895453-pat00801
단 이다.
Figure 112009081895453-pat00344
Figure 112009081895453-pat00801
It's sweet.

상기 수학식 14를 참조하여,

Figure 112008030085402-pat00345
번째의 반복문에서
Figure 112008030085402-pat00346
Figure 112008030085402-pat00347
를 연산할 수 있으면,
Figure 112008030085402-pat00348
번째의 반복문에서
Figure 112008030085402-pat00349
의 모든 계수는 한 번의
Figure 112008030085402-pat00350
곱셈과
Figure 112008030085402-pat00351
번의 덧셈 연산으로 계산된다.With reference to Equation 14,
Figure 112008030085402-pat00345
In the first loop
Figure 112008030085402-pat00346
Wow
Figure 112008030085402-pat00347
If you can compute
Figure 112008030085402-pat00348
In the first loop
Figure 112008030085402-pat00349
All coefficients in one
Figure 112008030085402-pat00350
Multiplication
Figure 112008030085402-pat00351
Computed by one addition operation.

여기서,

Figure 112008030085402-pat00352
Figure 112008030085402-pat00353
항부터
Figure 112008030085402-pat00354
까지의 계수는 0이므로,
Figure 112008030085402-pat00355
에 대하여,
Figure 112008030085402-pat00356
이고,
Figure 112008030085402-pat00357
Figure 112008030085402-pat00358
이므로,
Figure 112008030085402-pat00359
Figure 112008030085402-pat00360
라고 하면,
Figure 112008030085402-pat00361
가 성립된다.here,
Figure 112008030085402-pat00352
of
Figure 112008030085402-pat00353
From the port
Figure 112008030085402-pat00354
The coefficient to is 0, so
Figure 112008030085402-pat00355
about,
Figure 112008030085402-pat00356
ego,
Figure 112008030085402-pat00357
Is
Figure 112008030085402-pat00358
Because of,
Figure 112008030085402-pat00359
To
Figure 112008030085402-pat00360
Speaking of
Figure 112008030085402-pat00361
Is established.

따라서,

Figure 112008030085402-pat00362
Figure 112008030085402-pat00363
번째 반복문에서 연산 가능하다.therefore,
Figure 112008030085402-pat00362
Is
Figure 112008030085402-pat00363
Can be calculated in the first loop.

또한,

Figure 112008030085402-pat00364
이고, 상기 정의 1에 의하여
Figure 112008030085402-pat00365
은 0이므로
Figure 112008030085402-pat00366
Figure 112008030085402-pat00367
번째의 반복문에서 연산 가능하다.Also,
Figure 112008030085402-pat00364
And by definition 1 above
Figure 112008030085402-pat00365
Is 0, so
Figure 112008030085402-pat00366
Is
Figure 112008030085402-pat00367
Can be computed in the first loop.

따라서,

Figure 112008030085402-pat00368
의 모든 계수는 한번의
Figure 112008030085402-pat00369
곱셈과
Figure 112008030085402-pat00370
번 의 덧셈 연산으로 연산된다.therefore,
Figure 112008030085402-pat00368
All coefficients of once
Figure 112008030085402-pat00369
Multiplication
Figure 112008030085402-pat00370
It is computed by one addition operation.

본 발명에 따른 MSD-first 비트 직렬 곱셈기를 정리하면 도 4의 알고리즘 3과 같다.The MSD-first bit serial multiplier according to the present invention is summarized as Algorithm 3 of FIG.

도 4에 도시된 알고리즘 3에 대하여 기술하면 하기와 같다.The algorithm 3 shown in FIG. 4 will be described below.

본 발명에 따른 알고리즘 3은 한번의 곱셈과

Figure 112009081895453-pat00802
번의 덧셈을
Figure 112009081895453-pat00372
번 반복하며 각각의 곱셈(Multiplication)과 덧셈(Addition) 연산에서 (a), (b), (c)는 각각 병렬로 동작한다.Algorithm 3 according to the present invention is one multiplication
Figure 112009081895453-pat00802
Addition of times
Figure 112009081895453-pat00372
Repeated times, each of the multiplication and addition operations (a), (b), and (c) operate in parallel.

여기서, (a)는

Figure 112008030085402-pat00373
를 초기화하는 과정으로 실제값은
Figure 112008030085402-pat00374
의 연산값이므로,
Figure 112008030085402-pat00375
의 범위를 가질 때,
Figure 112008030085402-pat00376
Figure 112008030085402-pat00377
의 계수에 의하여 갱신되며,
Figure 112008030085402-pat00378
는 0이고, 나머지
Figure 112008030085402-pat00379
Figure 112008030085402-pat00380
와 같다.Where (a) is
Figure 112008030085402-pat00373
In the process of initializing
Figure 112008030085402-pat00374
Is an operation value of,
Figure 112008030085402-pat00375
When you have a range of
Figure 112008030085402-pat00376
Is
Figure 112008030085402-pat00377
Is updated by the coefficient of,
Figure 112008030085402-pat00378
Is 0, and the rest
Figure 112008030085402-pat00379
Is
Figure 112008030085402-pat00380
Same as

이는 도 4의 알고리즘 3에서 볼 수 있는 바와 같이, (a)initiation은 1(a), 2(a)로 구성되며,

Figure 112008030085402-pat00381
인 반복문에서의 레지스터에
Figure 112008030085402-pat00382
Figure 112008030085402-pat00383
을 저장한다.As can be seen in Algorithm 3 of FIG. 4, (a) initiation consists of 1 (a) and 2 (a),
Figure 112008030085402-pat00381
Registers in loops
Figure 112008030085402-pat00382
and
Figure 112008030085402-pat00383
Save it.

따라서, 본 발명에 따른 MSD-first 비트 직렬 곱셈기의 알고리즘 3은

Figure 112008030085402-pat00384
만 연산하면 된다.Therefore, algorithm 3 of the MSD-first bit serial multiplier according to the present invention is
Figure 112008030085402-pat00384
You only need to compute.

(b)는 상기 표 2의 알고리즘 2의

Figure 112008030085402-pat00385
를 연산하는 부분이고, (c)는 상기 표 2의 알고리즘 2에서의
Figure 112008030085402-pat00386
를 연산하는 부분이므로,
Figure 112008030085402-pat00387
번째의
Figure 112008030085402-pat00388
Figure 112008030085402-pat00389
번째에서 연산되어야 한다.(b) the algorithm 2 of Table 2
Figure 112008030085402-pat00385
(C) is the algorithm 2 of Table 2
Figure 112008030085402-pat00386
Is the part that computes
Figure 112008030085402-pat00387
Th
Figure 112008030085402-pat00388
Is
Figure 112008030085402-pat00389
Must be computed from the first.

따라서, 본 발명에 따른 알고리즘 3은

Figure 112008030085402-pat00390
Figure 112008030085402-pat00391
일 때, 를 초기화하고,
Figure 112008030085402-pat00393
Figure 112008030085402-pat00394
일 때, 다음 사용할
Figure 112008030085402-pat00395
를 연산하여야 하므로,
Figure 112008030085402-pat00396
를 0으로 할당하여 (a)와 (c)를 준비한다.Therefore, algorithm 3 according to the present invention
Figure 112008030085402-pat00390
end
Figure 112008030085402-pat00391
when, To initialize
Figure 112008030085402-pat00393
end
Figure 112008030085402-pat00394
When, then available
Figure 112008030085402-pat00395
Since we need to compute
Figure 112008030085402-pat00396
Prepare (a) and (c) by assigning to 0.

여기서, (c)Precomputation은 상기 (a)에 저장된 값을 이용하여 1(c), 2(c)와 같이 병렬 연산을 위한 제 1 치환 연산자 δj와 제 2 치환 연산자 λj를 연산한다.Here, (c) Precomputation calculates the first substitution operator δ j and the second substitution operator λ j for parallel operation, such as 1 (c) and 2 (c), using the values stored in (a).

이는

Figure 112008030085402-pat00399
에서 부터 정상 작동하며,
Figure 112008030085402-pat00400
번째의 결과값은
Figure 112008030085402-pat00401
번 째에 사용되어 진다. this is
Figure 112008030085402-pat00399
Works fine on,
Figure 112008030085402-pat00400
The first result is
Figure 112008030085402-pat00401
It is used first.

한편, 본 발명에 따른 MSD-first

Figure 112008030085402-pat00402
비트 직렬 곱셈기의 블록도는 도 5와 같다.On the other hand, MSD-first according to the present invention
Figure 112008030085402-pat00402
The block diagram of a bit serial multiplier is shown in FIG.

도 5를 참조하면, 본 발명에 따른 MSD-first

Figure 112008030085402-pat00403
비트 직렬 곱셈기는 초기값 생성부(510), 전처리 연산부(520), 곱셈부(530), 가산부(540) 및 쉬프트 레지스터(550)으로 구성될 수 있다.5, MSD-first according to the present invention
Figure 112008030085402-pat00403
The bit serial multiplier may include an initial value generator 510, a preprocessing operator 520, a multiplier 530, an adder 540, and a shift register 550.

한편, 본 발명에 따른 초기값 생성부(510), 전처리 연산부(520), 곱셈부(530), 가산부(540) 및 쉬프트 레지스터(550)의 구체적인 동작은 상기 도 4의 알고리즘과 동일하므로 구체적인 상술은 발명의 구성의 명확화를 위하여 과감히 생략하기로 한다.Meanwhile, detailed operations of the initial value generator 510, the preprocessor 520, the multiplier 530, the adder 540, and the shift register 550 according to the present invention are the same as those of the algorithm of FIG. 4. The foregoing description will be omitted for clarity of construction of the invention.

Figure 112009081895453-pat00404
상에서 차수가
Figure 112009081895453-pat00405
인 삼항 기약 다항식
Figure 112009081895453-pat00406
을 사용하며, 상기
Figure 112009081895453-pat00407
의 해가
Figure 112009081895453-pat00408
일 때, 유한체 상의 두 원소
Figure 112009081895453-pat00409
,
Figure 112009081895453-pat00410
의 곱셈을 수행하여 직렬 곱셈 결과값
Figure 112009081895453-pat00411
를 생성함에 있어서, 상기 초기값 생성부(510)는 루프 인덱스
Figure 112009081895453-pat00412
Figure 112009081895453-pat00413
일 때,
Figure 112009081895453-pat00414
개의 디지트의 인덱스를
Figure 112009081895453-pat00415
라 하면,
Figure 112009081895453-pat00803
의 계수
Figure 112009081895453-pat00417
,
Figure 112009081895453-pat00418
, 상기 삼항 기약 다항식의 계수로부터 생성되는
Figure 112009081895453-pat00419
, 및 상기 삼항 기약 다항식의 계수에 따라 생성되는
Figure 112009081895453-pat00420
를 입력으로 하여
Figure 112009081895453-pat00804
Figure 112009081895453-pat00805
을 생성하고, 상기
Figure 112009081895453-pat00806
를 이용하여
Figure 112009081895453-pat00807
를 생성한다.
Figure 112009081895453-pat00404
Order on
Figure 112009081895453-pat00405
Phosphorus Ternary Polynomial
Figure 112009081895453-pat00406
Using the above
Figure 112009081895453-pat00407
The sun
Figure 112009081895453-pat00408
When, two elements on the finite body
Figure 112009081895453-pat00409
,
Figure 112009081895453-pat00410
Series multiplication results by multiplying
Figure 112009081895453-pat00411
In generating, the initial value generator 510 is a loop index
Figure 112009081895453-pat00412
end
Figure 112009081895453-pat00413
when,
Figure 112009081895453-pat00414
Indexes of digits
Figure 112009081895453-pat00415
Say,
Figure 112009081895453-pat00803
Coefficient of
Figure 112009081895453-pat00417
,
Figure 112009081895453-pat00418
, Generated from the coefficients of the ternary polynomial
Figure 112009081895453-pat00419
And generated according to the coefficients of the ternary term polynomial
Figure 112009081895453-pat00420
As the input
Figure 112009081895453-pat00804
and
Figure 112009081895453-pat00805
Create and remind
Figure 112009081895453-pat00806
Using
Figure 112009081895453-pat00807
Create

여기서, 초기값 생성부(510)는 전술한 바와 같이, 하기의 수학식 15에 따라 상기

Figure 112009081895453-pat00808
를 이용하여
Figure 112009081895453-pat00809
를 생성할 수 있다.Here, the initial value generating unit 510, as described above, according to the following equation (15)
Figure 112009081895453-pat00808
Using
Figure 112009081895453-pat00809
Can be generated.

Figure 112008030085402-pat00427
Figure 112008030085402-pat00427

한편, 디지트

Figure 112009081895453-pat00428
의 인덱스를
Figure 112009081895453-pat00429
라 하면,
Figure 112009081895453-pat00810
의 계수
Figure 112009081895453-pat00431
,
Figure 112009081895453-pat00432
, 상기 삼항 기약 다항식의 계수로부터 생성되는
Figure 112009081895453-pat00433
, 및
Figure 112009081895453-pat00434
에 따라 연산되는 제 1 전처리 연산자
Figure 112009081895453-pat00435
에 따라 하기의 수학식 16에 의해
Figure 112009081895453-pat00811
Figure 112009081895453-pat00812
을 생성할 수 있다.Meanwhile, digit
Figure 112009081895453-pat00428
Index of
Figure 112009081895453-pat00429
Say,
Figure 112009081895453-pat00810
Coefficient of
Figure 112009081895453-pat00431
,
Figure 112009081895453-pat00432
, Generated from the coefficients of the ternary polynomial
Figure 112009081895453-pat00433
, And
Figure 112009081895453-pat00434
First preprocessing operator, computed according to
Figure 112009081895453-pat00435
In accordance with Equation 16
Figure 112009081895453-pat00811
and
Figure 112009081895453-pat00812
Can be generated.

Figure 112009081895453-pat00813
Figure 112009081895453-pat00813

그리고, 전처리 연산부(520)는 루프 인덱스

Figure 112009081895453-pat00439
Figure 112009081895453-pat00440
일 때, 상기 연산된
Figure 112009081895453-pat00814
를 이용하여 제 1 치환 연산자 λj를 생성하고, 상기 연산된
Figure 112009081895453-pat00815
를 이용하여 제 2 치환 연산자 δj를 생성한다.Then, the preprocessing operation unit 520 loop index
Figure 112009081895453-pat00439
end
Figure 112009081895453-pat00440
When is calculated
Figure 112009081895453-pat00814
Generates a first substitution operator λ j using
Figure 112009081895453-pat00815
Generates a second substitution operator δ j using.

여기서, 상기 전처리 연산부(520)는 하기의 수학식 17에 의해 제 2 전처리 연산자

Figure 112008030085402-pat00445
및 제 3 전처리 연산자
Figure 112008030085402-pat00446
를 생성한다.Here, the preprocessing operation unit 520 is a second preprocessing operator by the following equation (17)
Figure 112008030085402-pat00445
And third preprocessing operator
Figure 112008030085402-pat00446
Create

Figure 112008030085402-pat00447
Figure 112008030085402-pat00447

그리고, 상기 전처리 연산부(520)는 하기의 수학식 18에 의해 상기 제 1 치환 연산자 λj 및 제 2 치환 연산자 δj를 생성한다.The preprocessing operation unit 520 generates the first substitution operator λ j and the second substitution operator δ j by Equation 18 below.

Figure 112008030085402-pat00450
Figure 112008030085402-pat00450

그 다음, 곱셈부(530)는 상기 전처리 연산부(510)에서 생성된 제 1 치환 연산자

Figure 112009081895453-pat00451
, 상기
Figure 112009081895453-pat00452
의 계수
Figure 112009081895453-pat00453
,
Figure 112009081895453-pat00454
,
Figure 112009081895453-pat00455
Figure 112009081895453-pat00456
를 입력으로 하여
Figure 112009081895453-pat00816
의 결과값
Figure 112009081895453-pat00458
을 생성한다.Next, the multiplication unit 530 is a first substitution operator generated by the preprocessing operation unit 510.
Figure 112009081895453-pat00451
, remind
Figure 112009081895453-pat00452
Coefficient of
Figure 112009081895453-pat00453
,
Figure 112009081895453-pat00454
,
Figure 112009081895453-pat00455
And
Figure 112009081895453-pat00456
As the input
Figure 112009081895453-pat00816
Result of
Figure 112009081895453-pat00458
Create

가산부(540)는 이전 루프의 MSD first 디지트 직렬 곱셈의 결과값

Figure 112009081895453-pat00459
, 상기 제 1 치환 연산자 λj, 및 상기 곱셈부의 결과값을 입력으로 하여 덧셈 결과값을 생성한다.The adder 540 is a result of MSD first digit serial multiplication of the previous loop.
Figure 112009081895453-pat00459
The addition result is generated by inputting the first substitution operator λ j and the result value of the multiplication unit.

여기서, 가산부(540)는 이전 루프의 MSD first 디지트 직렬 곱셈의 결과값

Figure 112008030085402-pat00461
및 상기
Figure 112008030085402-pat00462
의 계수
Figure 112008030085402-pat00463
와 상기
Figure 112008030085402-pat00464
의 곱에 의해 생성되는 중간 연산값
Figure 112008030085402-pat00465
를 이용하여 하기의 수학식 19에 따라 덧셈 연산의 결과값을 생성할 수 있다.Here, the adder 540 is a result value of the MSD first digit serial multiplication of the previous loop.
Figure 112008030085402-pat00461
And said
Figure 112008030085402-pat00462
Coefficient of
Figure 112008030085402-pat00463
And above
Figure 112008030085402-pat00464
The intermediate operation produced by the product of
Figure 112008030085402-pat00465
By using Equation 19 can be generated the result of the addition operation.

Figure 112008030085402-pat00466
Figure 112008030085402-pat00466

그러면, 마지막으로 쉬프트 레지스터(550)에서 상기 덧셈 결과값을 라이트 쉬프트하여 상기 가산부에 피드백함으로써 본 발명에 따른 MSD-first

Figure 112008030085402-pat00467
비트 직렬 곱셈의 연산을 반복적으로 수행하게 된다.Then, the shift register 550 write-shifts the addition result value and feeds it back to the adder, thereby providing MSD-first according to the present invention.
Figure 112008030085402-pat00467
The operation of bit serial multiplication is performed repeatedly.

여기서, 쉬프트 레지스터(550)는

Figure 112009081895453-pat00468
비트의 정보를 저장하며,
Figure 112009081895453-pat00817
는 각각
Figure 112009081895453-pat00470
비트를 저장한다.Here, the shift register 550 is
Figure 112009081895453-pat00468
Stores bits of information,
Figure 112009081895453-pat00817
Respectively
Figure 112009081895453-pat00470
Save the bit.

상기 도 4와 도 5를 참조하면, 덧셈과 곱셈의 각각의 (a)와 (c)의 구성에서

Figure 112008030085402-pat00471
곱셈기
Figure 112008030085402-pat00472
개와
Figure 112008030085402-pat00473
덧셈기
Figure 112008030085402-pat00474
개가 소요되며, 주 연산부와 병렬로 동작한다.4 and 5, in the configuration of (a) and (c), respectively, of addition and multiplication,
Figure 112008030085402-pat00471
Multiplier
Figure 112008030085402-pat00472
Dog
Figure 112008030085402-pat00473
Adder
Figure 112008030085402-pat00474
It takes dogs and operates in parallel with the main computing unit.

또한,

Figure 112008030085402-pat00475
를 고려하여 동작하므로
Figure 112008030085402-pat00476
비트의 중간값
Figure 112008030085402-pat00477
는 마지막 사이클에서
Figure 112008030085402-pat00478
비트의 결과값이 된다.Also,
Figure 112008030085402-pat00475
Works in consideration of
Figure 112008030085402-pat00476
The median of the bits
Figure 112008030085402-pat00477
In the last cycle
Figure 112008030085402-pat00478
This is the result of the bit.

도 6은 본 발명에 따른 MSD-first

Figure 112008030085402-pat00479
비트 직렬 곱셈 방법의 흐름도를 도시한 것이다. 6 is MSD-first according to the present invention
Figure 112008030085402-pat00479
A flowchart of the bit serial multiplication method is shown.

전술한 기존의 [low energy digit-serial/parallel finite field multiplier]의 발명은 모듈러 감산 연산의 결과인

Figure 112008030085402-pat00480
개의 중간 결과값과 누적값
Figure 112008030085402-pat00481
의 합이 연산되어야 하므로, 트리 구조의 덧셈 연산에서
Figure 112008030085402-pat00482
의 연산이 소요되므로,
Figure 112008030085402-pat00483
의 덧셈 연산에 대한 시간 지연이 필요하게 된다.The invention of the above-mentioned low energy digit-serial / parallel finite field multiplier is a result of the modular subtraction operation.
Figure 112008030085402-pat00480
Intermediate results and cumulative values
Figure 112008030085402-pat00481
Since the sum of must be computed, the addition operation of the tree structure
Figure 112008030085402-pat00482
Operation takes
Figure 112008030085402-pat00483
A time delay is required for the addition operation of.

또한 기존의 [FPGA accelerated Tate pairing based cryptosystemover binary fields]의 경우

Figure 112008030085402-pat00484
개의 중간 결과값과 누적값
Figure 112008030085402-pat00485
의 모듈러 감산 연산의 합이 병렬로 연산되어야 하므로,
Figure 112008030085402-pat00486
의 덧셈 연산에 대한 시간 지연이 필요하다.In addition, the existing [FPGA accelerated Tate pairing based cryptosystemover binary fields]
Figure 112008030085402-pat00484
Intermediate results and cumulative values
Figure 112008030085402-pat00485
Since the sum of the modular subtraction operations of must be computed in parallel,
Figure 112008030085402-pat00486
We need a time delay for the addition operation of.

그러나, 본 발명의 경우, 제 1 치환 연산자 λj 와 제 2 치환 연산자 δj의 사전 연산을 이용하여 누적값

Figure 112009081895453-pat00489
의 모듈러 감산 연산과
Figure 112009081895453-pat00490
의 덧셈 연산을 1번의 덧셈 연산으로 수행하여
Figure 112009081895453-pat00491
의 덧셈 연산에 대한 시간 지연만으로도 연산이 가능하다.However, in the case of the present invention, the cumulative value using the dictionary operation of the first substitution operator λ j and the second substitution operator δ j
Figure 112009081895453-pat00489
Modular subtraction operation
Figure 112009081895453-pat00490
Add operation in one add operation
Figure 112009081895453-pat00491
The operation can be performed with only a time delay for the addition operation of.

도 6에서 본 발명에 따른 MSD-first

Figure 112008030085402-pat00492
비트 직렬 곱셈 방법은 상기 도 4 및 도 5의 구성과 동일하므로 구체적인 상술은 발명의 구성의 명확화를 위하여 생략하기로 한다.MSD-first according to the present invention in Figure 6
Figure 112008030085402-pat00492
Since the bit serial multiplication method is the same as the configuration of FIGS. 4 and 5, a detailed description thereof will be omitted for clarity.

Figure 112009081895453-pat00493
상에서 차수가
Figure 112009081895453-pat00494
인 삼항 기약 다항식
Figure 112009081895453-pat00495
을 사용하며, 상기
Figure 112009081895453-pat00496
의 해가
Figure 112009081895453-pat00497
일 때, 유한체 상의 두 원소
Figure 112009081895453-pat00498
,
Figure 112009081895453-pat00499
의 곱셈을 수행하여 직렬 곱셈 결과값
Figure 112009081895453-pat00500
를 생성하는
Figure 112009081895453-pat00501
기반의 MSD first 디지트 직렬 곱셈을 수행하기 위하여, 우선 루프 인덱스
Figure 112009081895453-pat00502
Figure 112009081895453-pat00503
일 때,
Figure 112009081895453-pat00504
개의 디지트의 인덱스를
Figure 112009081895453-pat00505
라 하면,
Figure 112009081895453-pat00818
의 계수
Figure 112009081895453-pat00507
,
Figure 112009081895453-pat00508
, 상기 삼항 기약 다항식의 계수로부터 생성되는
Figure 112009081895453-pat00509
, 및 상기 삼항 기약 다항식의 계수에 따라 생성되는
Figure 112009081895453-pat00510
를 입력으로 하여
Figure 112009081895453-pat00819
Figure 112009081895453-pat00820
을 생성하고, 상기
Figure 112009081895453-pat00821
를 이용하여
Figure 112009081895453-pat00822
를 생성한다(S610).
Figure 112009081895453-pat00493
Order on
Figure 112009081895453-pat00494
Phosphorus Ternary Polynomial
Figure 112009081895453-pat00495
Using the above
Figure 112009081895453-pat00496
The sun
Figure 112009081895453-pat00497
When, two elements on the finite body
Figure 112009081895453-pat00498
,
Figure 112009081895453-pat00499
Series multiplication results by multiplying
Figure 112009081895453-pat00500
To generate
Figure 112009081895453-pat00501
To perform based MSD first digit serial multiplication, first loop index
Figure 112009081895453-pat00502
end
Figure 112009081895453-pat00503
when,
Figure 112009081895453-pat00504
Indexes of digits
Figure 112009081895453-pat00505
Say,
Figure 112009081895453-pat00818
Coefficient of
Figure 112009081895453-pat00507
,
Figure 112009081895453-pat00508
, Generated from the coefficients of the ternary polynomial
Figure 112009081895453-pat00509
And generated according to the coefficients of the ternary term polynomial
Figure 112009081895453-pat00510
As the input
Figure 112009081895453-pat00819
and
Figure 112009081895453-pat00820
Create and remind
Figure 112009081895453-pat00821
Using
Figure 112009081895453-pat00822
To generate (S610).

그 다음, 루프 인덱스

Figure 112009081895453-pat00515
Figure 112009081895453-pat00516
일 때, 상기 연산된
Figure 112009081895453-pat00823
를 이용하여 제 1 치환 연산자 λj를 생성하고, 상기 연산된
Figure 112009081895453-pat00824
를 이용하여 제 2 치환 연산자 δj를 생성한다(S620).Then loop index
Figure 112009081895453-pat00515
end
Figure 112009081895453-pat00516
When is calculated
Figure 112009081895453-pat00823
Generates a first substitution operator λ j using
Figure 112009081895453-pat00824
By using the second substitution operator δ j is generated (S620).

그 다음, 상기 전처리 연산부에서 생성된 제 2 치환 연산자 δj, 상기

Figure 112009081895453-pat00522
의 계수
Figure 112009081895453-pat00523
,
Figure 112009081895453-pat00524
,
Figure 112009081895453-pat00525
Figure 112009081895453-pat00526
를 입력으로 하여
Figure 112009081895453-pat00825
의 곱셈 결과값
Figure 112009081895453-pat00528
을 생성한다(S630).Next, the second substitution operator δ j generated by the preprocessing operation unit, the
Figure 112009081895453-pat00522
Coefficient of
Figure 112009081895453-pat00523
,
Figure 112009081895453-pat00524
,
Figure 112009081895453-pat00525
And
Figure 112009081895453-pat00526
As the input
Figure 112009081895453-pat00825
Multiplication of
Figure 112009081895453-pat00528
To generate (S630).

그 다음, 이전 루프의 MSD first 디지트 직렬 곱셈의 결과값

Figure 112009081895453-pat00529
, 상기 제 1 치환 연산자 λj, 및 상기 곱셈부의 결과값을 입력으로 하여 덧셈 결과값을 생성하는 덧셈 결과값을 생성한다(S640).Next, the result of the MSD first digit serial multiplication of the previous loop
Figure 112009081895453-pat00529
In operation S640, an addition result value for generating an addition result value is generated by inputting the first substitution operator λ j and the result value of the multiplication unit.

그러면, 마지막으로 상기 덧셈 결과값을 라이트 쉬프트하여 상기 가산부에 피드백한다(S650).Then, the addition result is light-shifted and fed back to the adding unit at step S650.

본 발명에 따른

Figure 112008030085402-pat00531
기반의 MSD first 디지트 직렬 곱셈 방법은 소프트웨어를 통해 실행될 수 있다. 소프트웨어로 실행될 때, 본 발명의 구성 수단들은 필요한 작업을 실행하는 코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독 가능 매체에 저장되거나 전송 매체 또는 통신망에서 반송파와 결합된 컴퓨터 데이터 신호에 의하여 전송될 수 있다.According to the invention
Figure 112008030085402-pat00531
The based MSD first digit serial multiplication method can be implemented through software. When implemented in software, the constituent means of the present invention are code segments that perform the necessary work. The program or code segments may be stored on a processor readable medium or transmitted by a computer data signal coupled with a carrier on a transmission medium or network.

컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 테이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기 록 장치의 예로는 ROM, RAM, CD-ROM, DVD±ROM, DVD-RAM, 자기 테이프, 플로피 디스크, 하드 디스크(hard disk), 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 장치에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The computer-readable recording medium includes all kinds of recording devices in which data is stored which can be read by a computer system. Examples of computer-readable recording devices include ROM, RAM, CD-ROM, DVD ± ROM, DVD-RAM, magnetic tape, floppy disks, hard disks, and optical data storage devices. The computer readable recording medium can also be distributed over network coupled computer devices so that the computer readable code is stored and executed in a distributed fashion.

한편, 이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니라고 할 것이다.On the other hand, the present invention described above can be variously substituted, modified and changed within the scope without departing from the technical spirit of the present invention for those skilled in the art to which the present invention pertains to the embodiments and It will not be limited by the accompanying drawings.

도 1은 종래의 모듈러 감산 연산부의 개략도를 도시한 것이다.1 shows a schematic diagram of a conventional modular subtraction operation unit.

도 2는 종래의 MSD- first 디지트 직렬 곱셈기의 일 례를 도시한 것이다.2 shows an example of a conventional MSD-first digit series multiplier.

도 3은 종래의 MSD- first 디지트 직렬 곱셈기의 다른 예를 도시한 것이다.3 shows another example of a conventional MSD-first digit series multiplier.

도 4는 본 발명에 따른 MSD-first 비트 직렬 곱셈의 알고리즘을 도시한 것이다.Figure 4 illustrates an algorithm of MSD-first bit serial multiplication in accordance with the present invention.

도 5는 본 발명에 따른 MSD-first

Figure 112008030085402-pat00665
비트 직렬 곱셈기의 블록도를 도시한 것이다.5 is MSD-first according to the present invention
Figure 112008030085402-pat00665
A block diagram of a bit serial multiplier is shown.

도 6은 본 발명에 따른 MSD-first

Figure 112008030085402-pat00666
비트 직렬 곱셈 방법의 흐름도를 도시한 것이다.6 is MSD-first according to the present invention
Figure 112008030085402-pat00666
A flowchart of the bit serial multiplication method is shown.

Claims (12)

Figure 112009081895453-pat00532
상에서 차수가
Figure 112009081895453-pat00533
인 삼항 기약 다항식
Figure 112009081895453-pat00534
을 사용하며, 상기
Figure 112009081895453-pat00535
의 해가
Figure 112009081895453-pat00536
일 때, 유한체 상의 두 원소
Figure 112009081895453-pat00537
,
Figure 112009081895453-pat00538
의 곱셈을 수행하여 직렬 곱셈 결과값
Figure 112009081895453-pat00539
를 생성하는
Figure 112009081895453-pat00540
기반의 MSD first 디지트 직렬 곱셈 장치에 있어서,
Figure 112009081895453-pat00532
Order on
Figure 112009081895453-pat00533
Phosphorus Ternary Polynomial
Figure 112009081895453-pat00534
Using the above
Figure 112009081895453-pat00535
The sun
Figure 112009081895453-pat00536
When, two elements on the finite body
Figure 112009081895453-pat00537
,
Figure 112009081895453-pat00538
Series multiplication results by multiplying
Figure 112009081895453-pat00539
To generate
Figure 112009081895453-pat00540
In the based MSD first digit serial multiplier,
루프 인덱스
Figure 112009081895453-pat00541
Figure 112009081895453-pat00542
일 때,
Figure 112009081895453-pat00543
개의 디지트의 인덱스를
Figure 112009081895453-pat00544
라 하면, 상기
Figure 112009081895453-pat00826
의 계수
Figure 112009081895453-pat00546
,
Figure 112009081895453-pat00547
, 상기 삼항 기약 다항식의 계수로부터 생성되는
Figure 112009081895453-pat00548
, 및 상기 삼항 기약 다항식의 계수에 따라 생성되는
Figure 112009081895453-pat00549
를 입력으로 하여
Figure 112009081895453-pat00550
Figure 112009081895453-pat00827
을 생성하고, 상기
Figure 112009081895453-pat00828
를 이용하여
Figure 112009081895453-pat00829
를 생성하는 초기값 생성부;
Loop index
Figure 112009081895453-pat00541
end
Figure 112009081895453-pat00542
when,
Figure 112009081895453-pat00543
Indexes of digits
Figure 112009081895453-pat00544
If I say
Figure 112009081895453-pat00826
Coefficient of
Figure 112009081895453-pat00546
,
Figure 112009081895453-pat00547
, Generated from the coefficients of the ternary polynomial
Figure 112009081895453-pat00548
And generated according to the coefficients of the ternary term polynomial
Figure 112009081895453-pat00549
As the input
Figure 112009081895453-pat00550
and
Figure 112009081895453-pat00827
Create and remind
Figure 112009081895453-pat00828
Using
Figure 112009081895453-pat00829
Initial value generating unit for generating a;
루프 인덱스
Figure 112009081895453-pat00554
Figure 112009081895453-pat00555
일 때, 상기 연산된
Figure 112009081895453-pat00830
를 이용하여 제 1 치환 연산자 λj를 생성하고, 상기 연산된
Figure 112009081895453-pat00558
를 이용하여 제 2 치환 연산자 δj를 생성하는 전처리 연산부;
Loop index
Figure 112009081895453-pat00554
end
Figure 112009081895453-pat00555
When is calculated
Figure 112009081895453-pat00830
Generates a first substitution operator λ j using
Figure 112009081895453-pat00558
A preprocessing operation unit to generate a second substitution operator δ j using;
상기 전처리 연산부에서 생성된 제 2 치환 연산자 δj, 상기
Figure 112009081895453-pat00561
의 계수
Figure 112009081895453-pat00562
,
Figure 112009081895453-pat00563
,
Figure 112009081895453-pat00564
Figure 112009081895453-pat00565
를 입력으로 하여
Figure 112009081895453-pat00831
의 결과값
Figure 112009081895453-pat00567
을 생성하는 곱셈부;
The second substitution operator δ j generated by the preprocessing operation unit, the
Figure 112009081895453-pat00561
Coefficient of
Figure 112009081895453-pat00562
,
Figure 112009081895453-pat00563
,
Figure 112009081895453-pat00564
And
Figure 112009081895453-pat00565
As the input
Figure 112009081895453-pat00831
Result of
Figure 112009081895453-pat00567
A multiplication unit for generating;
이전 루프의 MSD first 디지트 직렬 곱셈의 결과값
Figure 112009081895453-pat00568
, 상기 제 1 치환 연산자 λj, 및 상기 곱셈부의 결과값을 입력으로 하여 덧셈 결과값을 생성하는 가산부; 및
Result of MSD first digit serial multiplication in the previous loop
Figure 112009081895453-pat00568
An adder configured to generate an addition result value by inputting the first substitution operator λ j and the result value of the multiplication part; And
상기 덧셈 결과값을 라이트 쉬프트하여 상기 가산부에 피드백하는 쉬프트 레지스터를 포함하는
Figure 112009081895453-pat00570
기반의 MSD first 디지트 직렬 곱셈 장치.
A shift register which write-shifts the addition result value and feeds it back to the adder;
Figure 112009081895453-pat00570
MSD first digit serial multiplier.
제 1 항에 있어서,The method of claim 1, 상기 초기값 생성부는 The initial value generator 하기의 식 1에 따라 상기
Figure 112009081895453-pat00832
를 이용하여 상기
Figure 112009081895453-pat00833
를 생성하는 것을 특징으로 하는
Figure 112009081895453-pat00573
기반의 MSD first 디지트 직렬 곱셈 장치.
According to Equation 1 below
Figure 112009081895453-pat00832
Using above
Figure 112009081895453-pat00833
To generate a
Figure 112009081895453-pat00573
MSD first digit serial multiplier.
Figure 112009081895453-pat00574
(1)
Figure 112009081895453-pat00574
(One)
제 1 항에 있어서,The method of claim 1, 상기 초기값 생성부는The initial value generator 디지트
Figure 112009081895453-pat00575
의 인덱스를
Figure 112009081895453-pat00576
라 하면,
Figure 112009081895453-pat00577
의 계수
Figure 112009081895453-pat00578
,
Figure 112009081895453-pat00579
, 상기 삼항 기약 다항식의 계수로부터 생성되는
Figure 112009081895453-pat00580
, 및
Figure 112009081895453-pat00581
에 따라 연산되는 제 1 전처리 연산자
Figure 112009081895453-pat00582
에 따라 하기의 식 2에 의해
Figure 112009081895453-pat00834
Figure 112009081895453-pat00835
을 생성하는 것을 특징으로 하는
Figure 112009081895453-pat00585
기반의 MSD first 디지트 직렬 곱셈 장치.
Digit
Figure 112009081895453-pat00575
Index of
Figure 112009081895453-pat00576
Say,
Figure 112009081895453-pat00577
Coefficient of
Figure 112009081895453-pat00578
,
Figure 112009081895453-pat00579
, Generated from the coefficients of the ternary polynomial
Figure 112009081895453-pat00580
, And
Figure 112009081895453-pat00581
First preprocessing operator, computed according to
Figure 112009081895453-pat00582
According to the following equation 2
Figure 112009081895453-pat00834
and
Figure 112009081895453-pat00835
To generate a
Figure 112009081895453-pat00585
MSD first digit serial multiplier.
Figure 112009081895453-pat00836
(2)
Figure 112009081895453-pat00836
(2)
제 3 항에 있어서,The method of claim 3, wherein 상기 전처리 연산부는The preprocessing operation unit 하기의 식 3에 의해 제 2 전처리 연산자
Figure 112008030085402-pat00587
및 제 3 전처리 연산자
Figure 112008030085402-pat00588
를 생성하는 것을 특징으로 하는
Figure 112008030085402-pat00589
기반의 MSD first 디지트 직렬 곱셈 장치.
The second preprocessing operator by the following expression 3
Figure 112008030085402-pat00587
And third preprocessing operator
Figure 112008030085402-pat00588
To generate a
Figure 112008030085402-pat00589
MSD first digit serial multiplier.
Figure 112008030085402-pat00590
(3)
Figure 112008030085402-pat00590
(3)
제 4 항에 있어서,The method of claim 4, wherein 상기 전처리 연산부는 The preprocessing operation unit 하기의 식 4에 의해 상기 제 1 치환 연산자 λj 및 제 2 치환 연산자 δj를 생성하는 것을 특징으로 하는
Figure 112009081895453-pat00593
기반의 MSD first 디지트 직렬 곱셈 장치.
The first substitution operator λ j and the second substitution operator δ j is generated by the following Equation 4.
Figure 112009081895453-pat00593
MSD first digit serial multiplier.
Figure 112009081895453-pat00594
(4)
Figure 112009081895453-pat00594
(4)
제 1 항에 있어서,The method of claim 1, 상기 가산부는The addition unit 이전 루프의 MSD first 디지트 직렬 곱셈의 결과값
Figure 112008030085402-pat00595
및 상기
Figure 112008030085402-pat00596
의 계수
Figure 112008030085402-pat00597
와 상기
Figure 112008030085402-pat00598
의 곱에 의해 생성되는 중간 연산값
Figure 112008030085402-pat00599
를 이용하여 하기의 식 5에 따라 덧셈 연산의 결과값을 생성하는 것을 특징으로 하는
Figure 112008030085402-pat00600
기반의 MSD first 디지트 직렬 곱셈 장치.
Result of MSD first digit serial multiplication in the previous loop
Figure 112008030085402-pat00595
And said
Figure 112008030085402-pat00596
Coefficient of
Figure 112008030085402-pat00597
And above
Figure 112008030085402-pat00598
The intermediate operation produced by the product of
Figure 112008030085402-pat00599
By using to generate a result of the addition operation according to Equation 5 below
Figure 112008030085402-pat00600
MSD first digit serial multiplier.
Figure 112008030085402-pat00601
(5)
Figure 112008030085402-pat00601
(5)
Figure 112009081895453-pat00837
상에서 차수가
Figure 112009081895453-pat00838
인 삼항 기약 다항식
Figure 112009081895453-pat00839
을 사용하며, 상기
Figure 112009081895453-pat00840
의 해가
Figure 112009081895453-pat00841
일 때, 유한체 상의 두 원소
Figure 112009081895453-pat00842
,
Figure 112009081895453-pat00843
의 곱셈을 수행하여 직렬 곱셈 결과값
Figure 112009081895453-pat00844
를 생성하는
Figure 112009081895453-pat00845
기반의 MSD first 디지트 직렬 곱셈 방법에 있어서,
Figure 112009081895453-pat00837
Order on
Figure 112009081895453-pat00838
Phosphorus Ternary Polynomial
Figure 112009081895453-pat00839
Using the above
Figure 112009081895453-pat00840
The sun
Figure 112009081895453-pat00841
When, two elements on the finite body
Figure 112009081895453-pat00842
,
Figure 112009081895453-pat00843
Series multiplication results by multiplying
Figure 112009081895453-pat00844
To generate
Figure 112009081895453-pat00845
In the based MSD first digit serial multiplication method,
루프 인덱스
Figure 112009081895453-pat00846
Figure 112009081895453-pat00847
일 때,
Figure 112009081895453-pat00848
개의 디지트의 인덱스를
Figure 112009081895453-pat00849
라 하면, 상기
Figure 112009081895453-pat00850
의 계수
Figure 112009081895453-pat00851
,
Figure 112009081895453-pat00852
, 상기 삼항 기약 다항식의 계수로부터 생성되는
Figure 112009081895453-pat00853
, 및 상기 삼항 기약 다항식의 계수에 따라 생성되는
Figure 112009081895453-pat00854
를 입력으로 하여
Figure 112009081895453-pat00855
Figure 112009081895453-pat00856
을 생성하고, 상기
Figure 112009081895453-pat00857
를 이용하여
Figure 112009081895453-pat00858
를 생성하는 초기값 생성 단계;
Loop index
Figure 112009081895453-pat00846
end
Figure 112009081895453-pat00847
when,
Figure 112009081895453-pat00848
Indexes of digits
Figure 112009081895453-pat00849
If I say
Figure 112009081895453-pat00850
Coefficient of
Figure 112009081895453-pat00851
,
Figure 112009081895453-pat00852
, Generated from the coefficients of the ternary polynomial
Figure 112009081895453-pat00853
And generated according to the coefficients of the ternary term polynomial
Figure 112009081895453-pat00854
As the input
Figure 112009081895453-pat00855
and
Figure 112009081895453-pat00856
Create and remind
Figure 112009081895453-pat00857
Using
Figure 112009081895453-pat00858
Generating an initial value;
루프 인덱스
Figure 112009081895453-pat00859
Figure 112009081895453-pat00860
일 때, 상기 연산된
Figure 112009081895453-pat00861
를 이용하여 제 1 치환 연산자 λj를 생성하고, 상기 연산된
Figure 112009081895453-pat00862
를 이용하여 제 2 치환 연산자 δj를 생성하는 전처리 연산 단계;
Loop index
Figure 112009081895453-pat00859
end
Figure 112009081895453-pat00860
When is calculated
Figure 112009081895453-pat00861
Generates a first substitution operator λ j using
Figure 112009081895453-pat00862
A preprocessing operation step of generating a second substitution operator δ j using;
상기 전처리 연산 단계에서 생성된 제 2 치환 연산자 δj, 상기
Figure 112009081895453-pat00863
의 계수
Figure 112009081895453-pat00864
,
Figure 112009081895453-pat00865
,
Figure 112009081895453-pat00866
Figure 112009081895453-pat00867
를 입력으로 하여
Figure 112009081895453-pat00868
의 결과값
Figure 112009081895453-pat00869
을 생성하는 곱셈 결과값 생성 단계;
The second substitution operator δ j generated in the preprocessing operation,
Figure 112009081895453-pat00863
Coefficient of
Figure 112009081895453-pat00864
,
Figure 112009081895453-pat00865
,
Figure 112009081895453-pat00866
And
Figure 112009081895453-pat00867
As the input
Figure 112009081895453-pat00868
Result of
Figure 112009081895453-pat00869
Generating a multiplication result;
이전 루프의 MSD first 디지트 직렬 곱셈의 결과값
Figure 112009081895453-pat00870
, 상기 제 1 치환 연산자 λj, 및 상기 곱셈 결과값 생성 단계의 결과값을 입력으로 하여 덧셈 결과값을 덧셈 결과값 생성 단계; 및
Result of MSD first digit serial multiplication in the previous loop
Figure 112009081895453-pat00870
Generating an addition result value by inputting the first substitution operator λ j and the result value of the multiplication result generation step; And
상기 덧셈 결과값을 라이트 쉬프트하여 상기 덧셈 결과값 생성 단계에 피드백하는 단계를 포함하는
Figure 112009081895453-pat00871
기반의 MSD first 디지트 직렬 곱셈 방법.
And right-shifting the addition result value to feed back to the addition result generation step.
Figure 112009081895453-pat00871
Based MSD first digit serial multiplication method.
제 7 항에 있어서,The method of claim 7, wherein 상기 초기값 생성 단계는 The initial value generating step 하기의 식 6에 따라 상기
Figure 112009081895453-pat00872
를 이용하여 상기
Figure 112009081895453-pat00873
를 생성하는 것을 특징으로 하는
Figure 112009081895453-pat00874
기반의 MSD first 디지트 직렬 곱셈 방법.
According to Equation 6 below
Figure 112009081895453-pat00872
Using above
Figure 112009081895453-pat00873
To generate a
Figure 112009081895453-pat00874
Based MSD first digit serial multiplication method.
Figure 112009081895453-pat00644
(6)
Figure 112009081895453-pat00644
(6)
제 7 항에 있어서,The method of claim 7, wherein 상기 초기값 생성 단계는The initial value generating step 디지트
Figure 112009081895453-pat00875
의 인덱스를
Figure 112009081895453-pat00876
라 하면,
Figure 112009081895453-pat00877
의 계수
Figure 112009081895453-pat00878
,
Figure 112009081895453-pat00879
, 상기 삼항 기약 다항식의 계수로부터 생성되는
Figure 112009081895453-pat00880
, 및
Figure 112009081895453-pat00881
에 따라 연산되는 제 1 전처리 연산자
Figure 112009081895453-pat00882
에 따라 하기의 식 7에 의해
Figure 112009081895453-pat00883
Figure 112009081895453-pat00884
을 생성하는 것을 특징으로 하는
Figure 112009081895453-pat00885
기반의 MSD first 디지트 직렬 곱셈 방법.
Digit
Figure 112009081895453-pat00875
Index of
Figure 112009081895453-pat00876
Say,
Figure 112009081895453-pat00877
Coefficient of
Figure 112009081895453-pat00878
,
Figure 112009081895453-pat00879
, Generated from the coefficients of the ternary polynomial
Figure 112009081895453-pat00880
, And
Figure 112009081895453-pat00881
First preprocessing operator, computed according to
Figure 112009081895453-pat00882
According to the following formula 7
Figure 112009081895453-pat00883
and
Figure 112009081895453-pat00884
To generate a
Figure 112009081895453-pat00885
Based MSD first digit serial multiplication method.
Figure 112009081895453-pat00886
(7)
Figure 112009081895453-pat00886
(7)
제 9 항에 있어서,The method of claim 9, 상기 전처리 연산 단계는The preprocessing operation step 하기의 식 8에 의해 제 2 전처리 연산자
Figure 112008030085402-pat00657
및 제 3 전처리 연산자
Figure 112008030085402-pat00658
를 생성하는 것을 특징으로 하는
Figure 112008030085402-pat00659
기반의 MSD first 디지트 직렬 곱셈 방법.
The second preprocessing operator by the following expression 8
Figure 112008030085402-pat00657
And third preprocessing operator
Figure 112008030085402-pat00658
To generate a
Figure 112008030085402-pat00659
Based MSD first digit serial multiplication method.
Figure 112008030085402-pat00660
(8)
Figure 112008030085402-pat00660
(8)
제 10 항에 있어서,The method of claim 10, 상기 전처리 연산 단계는 The preprocessing operation step 하기의 식 9에 의해 상기 제 1 치환 연산자 λj 및 제 2 치환 연산자 δj를 생성하는 것을 특징으로 하는
Figure 112009081895453-pat00663
기반의 MSD first 디지트 직렬 곱셈 방법.
Wherein the first substitution operator λ j and the second substitution operator δ j are generated according to Equation 9 below.
Figure 112009081895453-pat00663
Based MSD first digit serial multiplication method.
Figure 112009081895453-pat00664
(9)
Figure 112009081895453-pat00664
(9)
제 7 항 내지 제 11 항 중 어느 한 항의 방법을 컴퓨터에서 수행할 수 있드록 프로그램으로 기록된 기록 매체.12. A recording medium recorded with a program for performing the method of any one of claims 7 to 11 on a computer.
KR1020080039068A 2008-04-26 2008-04-26 Apparatus and Method for MSD first GF3^m serial multiplication and Recording medium using this KR100954584B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080039068A KR100954584B1 (en) 2008-04-26 2008-04-26 Apparatus and Method for MSD first GF3^m serial multiplication and Recording medium using this

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080039068A KR100954584B1 (en) 2008-04-26 2008-04-26 Apparatus and Method for MSD first GF3^m serial multiplication and Recording medium using this

Publications (2)

Publication Number Publication Date
KR20090113138A KR20090113138A (en) 2009-10-29
KR100954584B1 true KR100954584B1 (en) 2010-04-26

Family

ID=41554249

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080039068A KR100954584B1 (en) 2008-04-26 2008-04-26 Apparatus and Method for MSD first GF3^m serial multiplication and Recording medium using this

Country Status (1)

Country Link
KR (1) KR100954584B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101214789B1 (en) 2011-02-28 2012-12-26 고려대학교 산학협력단 Method of mapping messages to points on elliptic curve over GF(3^m) and pairing-based cryptosystem using it
KR101533929B1 (en) * 2014-06-27 2015-07-09 공주대학교 산학협력단 Subquadratic Space Complexity Parallel Multiplier for using shifted polynomial basis, method thereof, and recording medium using this
KR20160003373A (en) 2014-07-01 2016-01-11 경북대학교 산학협력단 Photovoltaic power generation measurement system by latitude and longitude
KR20170000592A (en) 2015-06-24 2017-01-03 아주대학교산학협력단 Two-photon fluorescent probes, method of preparing the same and method of imaging of zinc ion in Golgi using the same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030028298A (en) * 2001-09-29 2003-04-08 대한민국(경북대학교 총장) Digit-serial systolic multiplier for finite fields
KR100550015B1 (en) 2003-12-18 2006-02-08 한국전자통신연구원 Infinite field multiplying apparatus adapted for multiplying operation of GF3^m infinite field, mod 3 bit-stream adder therefor, and mod3 bit-stream adder therefor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030028298A (en) * 2001-09-29 2003-04-08 대한민국(경북대학교 총장) Digit-serial systolic multiplier for finite fields
KR100550015B1 (en) 2003-12-18 2006-02-08 한국전자통신연구원 Infinite field multiplying apparatus adapted for multiplying operation of GF3^m infinite field, mod 3 bit-stream adder therefor, and mod3 bit-stream adder therefor

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101214789B1 (en) 2011-02-28 2012-12-26 고려대학교 산학협력단 Method of mapping messages to points on elliptic curve over GF(3^m) and pairing-based cryptosystem using it
KR101533929B1 (en) * 2014-06-27 2015-07-09 공주대학교 산학협력단 Subquadratic Space Complexity Parallel Multiplier for using shifted polynomial basis, method thereof, and recording medium using this
WO2015199325A1 (en) * 2014-06-27 2015-12-30 공주대학교 산학협력단 Parallel multiplier having space complexity less than quadratic complexity using shifted polynomial basis on finite field gf (3n), method thereof, and recording medium recording same
KR20160003373A (en) 2014-07-01 2016-01-11 경북대학교 산학협력단 Photovoltaic power generation measurement system by latitude and longitude
KR20170000592A (en) 2015-06-24 2017-01-03 아주대학교산학협력단 Two-photon fluorescent probes, method of preparing the same and method of imaging of zinc ion in Golgi using the same

Also Published As

Publication number Publication date
KR20090113138A (en) 2009-10-29

Similar Documents

Publication Publication Date Title
Knezevic et al. Faster interleaved modular multiplication based on Barrett and Montgomery reduction methods
Azarderakhsh et al. Low-complexity multiplier architectures for single and hybrid-double multiplications in Gaussian normal bases
Daly et al. An FPGA implementation of a GF (p) ALU for encryption processors
Jafri et al. Towards an optimized architecture for unified binary huff curves
Javeed et al. FPGA based high speed SPA resistant elliptic curve scalar multiplier architecture
Tian et al. High-speed FPGA implementation of SIKE based on an ultra-low-latency modular multiplier
Shah et al. A high‐speed RSD‐based flexible ECC processor for arbitrary curves over general prime field
Tawalbeh et al. An integrated radix-4 modular divider/multiplier hardware architecture for cryptographic applications.
Zhang et al. An efficient CSA architecture for Montgomery modular multiplication
Großschädl A bit-serial unified multiplier architecture for finite fields GF (p) and GF (2 m)
Harb et al. FPGA implementation of the ECC over GF (2m) for small embedded applications
KR100954584B1 (en) Apparatus and Method for MSD first GF3^m serial multiplication and Recording medium using this
Hossain et al. FPGA-based efficient modular multiplication for Elliptic Curve Cryptography
Gonda et al. Improvements of addition algorithm on genus 3 hyperelliptic curves and their implementation
Alkar et al. A hardware version of the RSA using the Montgomery's algorithm with systolic arrays
McIvor et al. A high-speed, low latency RSA decryption silicon core
KR100974624B1 (en) Method and Apparatus of elliptic curve cryptography processing in sensor mote and Recording medium using it
Kalaiarasi et al. A parallel elliptic curve crypto-processor architecture with reduced clock cycle for FPGA platforms
Byrne et al. Versatile processor for GF (pm) arithmetic for use in cryptographic applications
Poomagal et al. Modular multiplication algorithm in cryptographic processor: A review and future directions
KR100954582B1 (en) Adder for GF3, Multiplier for GF3, Apparatus for computing unified addition subtraction for GF3 and Apparatus for MSB first GF3^m serial multiplication
Lee et al. Systolic multiplier for Montgomery’s algorithm
Bala et al. Optimized elliptic curve cryptography for wireless sensor networks
Verma et al. FPGA Implementation of Modified Montgomery for RSA Cryptosystem
Wolkerstorfer et al. A PCI-card for accelerating elliptic curve cryptography

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140304

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee