KR101154845B1 - 스칼라 배산기 및 스칼라 배산프로그램 - Google Patents

스칼라 배산기 및 스칼라 배산프로그램 Download PDF

Info

Publication number
KR101154845B1
KR101154845B1 KR1020117013518A KR20117013518A KR101154845B1 KR 101154845 B1 KR101154845 B1 KR 101154845B1 KR 1020117013518 A KR1020117013518 A KR 1020117013518A KR 20117013518 A KR20117013518 A KR 20117013518A KR 101154845 B1 KR101154845 B1 KR 101154845B1
Authority
KR
South Korea
Prior art keywords
scalar
mod
storing
order
register
Prior art date
Application number
KR1020117013518A
Other languages
English (en)
Other versions
KR20110095328A (ko
Inventor
야스유키 노가미
유미 사케미
요시타카 모리카와
Original Assignee
고꾸리츠 다이가꾸 호우징 오까야마 다이가꾸
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고꾸리츠 다이가꾸 호우징 오까야마 다이가꾸 filed Critical 고꾸리츠 다이가꾸 호우징 오까야마 다이가꾸
Publication of KR20110095328A publication Critical patent/KR20110095328A/ko
Application granted granted Critical
Publication of KR101154845B1 publication Critical patent/KR101154845B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • G06F7/725Finite field arithmetic over elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3255Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Devices For Executing Special Programs (AREA)
  • Chemical Vapour Deposition (AREA)
  • Numerical Control (AREA)

Abstract

스칼라 배산을 고속으로 실행할 수 있는 스칼라 배산기 및 스칼라 배산프로그램을 제공한다. 정수변수χ를 사용하여 보충차수 k=12에 있어서의 표수 p, 위수 r, 프로베니우스 자기 준동형 매핑의 트레이스 t가 、 p(χ)=36χ⁴-36χ³+24χ²-6χ+1, r(χ)=36χ⁴-36χ³+18χ²-6χ+1=p(χ)+1-t(χ), t(χ)=6χ²+1, 로서 주어지는 타원곡선의 유리점이 이루는 덧셈군E(Fp)의 유리점P의 스칼라 배산[s]P를 연산할 때에, 트위스트 차수 d를 6으로 하고 k=d×e로 되는 정정수 e를 2로 하여, [p²]P=φ'₂(P)로 되는 프로베니우스 매핑φ'₂을 사용하여 [s]P=([A]φ'₂+[B])P 로 하여 연산한다.

Description

스칼라 배산기 및 스칼라 배산프로그램{SCALAR MULTIPLIER AND SCALAR MULTIPLICATION PROGRAM}
본 발명은 유리점(有理点; rational point) P의 스칼라 배산(scalar multiplication)[s]P을 하는 스칼라 배산기 및 스칼라 배산프로그램에 관한 것이다.
종래에 인터넷 등의 전기통신회선을 이용하여 인터넷 뱅킹이나 행정 기관에 대한 전자신청 등과 같은 각종 서비스가 제공되어 왔다.
이러한 서비스를 이용하는 경우에는, 서비스의 이용자가 타인 명의를 도용하거나 허구의 인물 등이 아니라 적정한 이용자임을 확인하기 위한 인증처리가 필요하다. 그래서 신뢰성이 높은 인증방법으로서, 공개키(public key)와 비밀키(secret key)를 사용하는 공개키 암호(public key cryptography)를 베이스로 하는 전자인증 기술이 자주 이용되어 왔다.
최근에는 보다 많은 이용자를 효율적으로 쉽게 관리하기 위하여, ID 베이스 암호(ID-based encryption)나 그룹 서명(group signature)을 사용한 인증 시스템이 제안되어 있다.
ID 베이스 암호나 그룹 서명에서는, 페어링 연산(pairing computation)과 함께 필요로 하는 승산(乘算; exponentiation)이나 스칼라 배산(scalar multiplication)이 이루어지고 있는데, 인증처리에 요하는 시간을 가능한 한 단축시키기 위해서는 이들 연산을 고속으로 실행할 것이 요구되고 있었다.
그 때문에 이들 승산이나 스칼라 배산을 바이너리 방식(binary method)이나 윈도우 방식(Window method) 등을 사용하여 고속화 하는 것이 제안되어 왔다.
또한 스칼라 배산에 있어서는, 매핑(mapping; 寫像)을 이용함으로써 연산 횟수를 삭감하여 고속화 하는 방법이 제안되어 왔다(예컨대 특허문헌1 및 특허문헌2 참조).
일본국 공개특허 특개2004-271792호 공보 일본국 공개특허 특개2007-41461호 공보
그러나 단순히 매핑을 이용하여 연산 횟수를 삭감하는 것만으로는 고속화가 충분하지 않고, 특히 1만명을 초과하는 많은 이용자를 대상으로 한 인증처리를 몇 초 이내로 완료시키는 것은 어렵기 때문에, 실질적으로 감당하기 어렵다는 우려가 있었다.
본 발명자들은 이러한 현재의 상태를 고려하여, 스칼라 배산을 고속화 함으로써 실용성을 향상시키기 위한 연구 개발을 하여 본 발명을 완성하기에 이르렀다.
본 발명의 스칼라 배산기(scalar 倍算器; scalar multiplier)에서는, 정수변수(整數變數; integer variable) χ를 사용하여 보충차수(embedding degree) k=12에 있어서의 표수(標數; characteristic) p, 위수(位數; order) r, 프로베니우스 자기 준동형 매핑(Frobenius endomorphism mapping)의 트레이스(trace) t가,
p(χ)=36χ⁴-36χ³+24χ²-6χ+1,
r(χ)=36χ⁴-36χ³+18χ²-6χ+1=p(χ)+1-t(χ),
t(χ)=6χ²+1,
로서 주어지는 타원곡선의 유리점(有理点; rational point)이 이루는 덧셈군(加法群; additive group) E(Fp)의 유리점 P의 스칼라 배산[s]P을 연산하는 스칼라 배산기에 있어서, 트위스트 차수(twist degree) d를 6으로 하고, k=d×e 가 되는 정정수(正整數) e를 2로 하여,
[p²]P=φ'₂(P),
로 되는 프로베니우스 매핑 φ'₂을 사용하여,
[6χ²-4χ+1]P=[(-2χ+1)p²]P=[-2χ+1]φ'₂(P)
인 것으로부터, 6χ²-4χ+1=ν 로 하여 상기 스칼라s를 ν진수전개(ν進數展開; ν-adic expansion)함으로써,
s=s₁ν+s₂, s₂<ν,
으로 하고,
s≡(-2χ+1)s₁p²+s₂ mod r,
인 것으로부터, (-2χ+1)s₁ 부분을 ν진수전개하여
s≡(s₃ν+s₄)p²+s₂≡s5 p⁴+s₄p²+s₂ mod r,
으로 하고, p⁴≡p²-1 mod r 인 것으로부터
s≡(s₄+s5 )p²+(s₂-s5 ) mod r
인 것을 이용하여 스칼라 배산[s]P을,
[s]P=([s₄+s5 ]φ'₂+[s₂-s5 ])P
로 하여 연산하기 위해, 상기 스칼라s의 값을 기억하는 기억수단과, 상기 계수 s₁, s₂, s₃, s₄, s5 를 각각 기억하는 제1 내지 제5보조기억수단을 설치하되, 상기 스칼라s를 ν진수전개하여 얻은 값을 상기 제1보조기억수단과 상기 제2보조기억수단에 기억시키고, (-2χ+1)s₁을 ν진수전개하여 얻은 값을 상기 제3보조기억수단과 상기 제4보조기억수단에 기억시키고, (-2χ+1)s₃의 값을 상기 제5보조기억수단에 기억시키는 것으로 구성한다.
또한 본 발명의 스칼라 배산프로그램에서는, 정수변수χ를 사용하여 보충차수 k=12에 있어서의 표수 p, 위수 r, 프로베니우스 자기 준동형 매핑의 트레이스 t가,
p(χ)=36χ⁴-36χ³+24χ²-6χ+1,
r(χ)=36χ⁴-36χ³+18χ²-6χ+1=p(χ)+1-t(χ),
t(χ)=6χ²+1,
로서 주어지는 타원곡선의 유리점이 이루는 덧셈군E(Fp)의 유리점P의 스칼라 배산[s]P을, CPU(중앙처리장치)를 구비한 전자계산기에 연산시키는 스칼라 배산프로그램에 있어서, 트위스트 차수 d를 6으로 하고 k=d×e로 되는 정정수 e를 2로 하여,
[p²]P=φ'₂(P),
로 되는 프로베니우스 매핑φ'₂을 사용하여,
[6χ²-4χ+1]P=[(-2χ+1)p²]P=[-2χ+1]φ'₂(P)
인 것으로부터, 6χ²-4χ+1=ν 로 하여 상기 스칼라s를 ν진수전개함으로써
s=s₁ν+s₂, s₂<ν,
로 하고,
s≡(-2χ+1)s₁p²+s₂ mod r,
인 것으로부터, (-2χ+1)s₁부분을 ν진수전개하여
s≡(s₃ν+s₄)p²+s₂≡s5 p⁴+s₄p²+s₂ mod r,
로 하고, p⁴≡p²-1 mod r 인 것으로부터
s≡(s₄+s5 )p²+(s₂-s5 ) mod r,
인 것을 이용하여 스칼라 배산[s]P을,
[s]P=([s₄+s5 ]φ'₂+[s₂-s5 ])P,
로 하여 상기 전자계산기로 연산하기 위해, 상기 스칼라s를 ν진수전개하여 얻어지는 상기 s₁을 제1레지스터에 저장함과 아울러 상기 s₂를 제2레지스터에 저장하는 스텝과, (-2χ+1)s₁을 ν진수전개하여 얻어지는 상기 s₃을 제3레지스터에 저장함과 아울러 상기 s₄를 제4레지스터에 저장하는 스텝과, (-2χ+1)s₃의 값을 상기 s5 의 값으로서 제5레지스터에 저장하는 스텝을 구비하는 것으로 구성한다.
또한 본 발명의 스칼라 배산기에서는, 정수변수χ를 사용하여 보충차수 k=8에 있어서의 표수 p, 위수 r, 프로베니우스 자기 준동형 매핑의 트레이스 t가,
p(χ)=(81χ6 +54χ5 +45χ⁴+12χ³+13χ²+6χ+1)/4,
r(χ)=9χ⁴+12χ³+8χ²+4χ+1,
t(χ)=-9χ³-3χ²-2χ,
로서 주어지는 타원곡선의 유리점이 이루는 덧셈군E(Fp)의 유리점P의 스칼라 배산[s]P을 연산하는 스칼라 배산기에 있어서,
트위스트 차수 d를 4로 하고, k=d×e로 되는 정정수 e를 2로 하여,
[p²]P=φ'₂(P),
로 되는 프로베니우스 매핑φ'₂을 사용하여,
[3χ²+2χ]P=[(-2χ-1)p²]P=[-2χ-1]φ'₂(P)
인 것으로부터 3χ²+2χ=ν 로 하여 상기 스칼라s를 ν진수전개함으로써
s=s₁ν+s₂, s₂<ν,
로 하고
s≡(-2χ-1)s₁p²+s₂ mod r,
인 것으로부터 (-2χ-1)s₁부분을 ν진수전개하여
s≡(s₃ν+s₄)p²+s₂≡s5 p⁴+s₄p²+s₂ mod r,
로 하고, p⁴≡-1 mod r 인 것으로부터
s≡s₄p²+(s₂-s5 ) mod r
인 것을 이용하여 스칼라 배산[s]P을,
[s]P=([s₄]φ'₂+[s₂-s5 ])P
로 하여 연산하기 위해, 상기 스칼라s의 값을 기억하는 기억수단과, 상기 계수 s₁, s₂, s₃, s₄, s5 를 각각 기억하는 제1 내지 제5보조기억수단을 설치하고, 상기 스칼라s를 ν진수전개하여 얻은 값을 상기 제1보조기억수단과 상기 제2보조기억수단에 기억시키고, (-2χ-1)s₁을 ν진수전개하여 얻은 값을 상기 제3보조기억수단과 상기 제4보조기억수단에 기억시키고, (-2χ-1)s₃의 값을 상기 제5보조기억수단에 기억시키는 것으로 구성한다.
또한 본 발명의 스칼라 배산프로그램에서는, 정수변수χ를 사용하여 보충차수 k=8에 있어서의 표수 p, 위수 r, 프로베니우스 자기 준동형 매핑의 트레이스 t가,
p(χ)=(81χ6 +54χ5 +45χ⁴+12χ³+13χ²+6χ+1)/4,
r(χ)=9χ⁴+12χ³+8χ²+4χ+1,
t(χ)=-9χ³-3χ²-2χ,
로서 주어지는 타원곡선의 유리점이 이루는 덧셈군E(Fp)의 유리점P의 스칼라 배산[s]P을, CPU를 구비한 전자계산기에 연산시키는 스칼라 배산프로그램에 있어서, 트위스트 차수 d를 4로 하고 k=d×e로 되는 정정수 e를 2로 하여,
[p²]P=φ'₂(P),
로 되는 프로베니우스 매핑φ'₂을 사용하여,
[3χ²+2χ]P=[(-2χ-1)p²]P=[-2χ-1]φ'₂(P)
인 것으로부터, 3χ²+2χ=ν 로 하여 상기 스칼라s를 ν진수전개함으로써
s=s₁ν+s₂, s₂<ν,
로 하고,
s≡(-2χ-1)s₁p²+s₂ mod r,
인 것으로부터 (-2χ-1)s₁부분을 ν진수전개하여
s≡(s₃ν+s₄)p²+s₂≡s5 p⁴+s₄p²+s₂ mod r,
로 하고, p⁴≡-1 mod r 인 것으로부터
s≡s₄p²+(s₂-s5 ) mod r
인 것을 이용하여 스칼라 배산[s]P을,
[s]P=([s₄]φ'₂+[s₂-s5 ])P,
로 하여 상기 전자계산기로 연산하기 위해, 상기 스칼라s를 ν진수전개하여 얻어지는 상기 s₁을 제1레지스터에 저장함과 아울러 상기 s₂를 제2레지스터에 저장하는 스텝과, (-2χ-1)s₁을 ν진수전개하여 얻어지는 상기 s₃을 제3레지스터에 저장함과 아울러 상기 s₄를 제4레지스터에 저장하는 스텝과, (-2χ-1)s₃의 값을 상기 s5 의 값으로서 제5레지스터에 저장하는 스텝을 구비하는 것으로 구성한다.
본 발명에 의하면, 스칼라 배산[s]P을 연산하는데 있어서, 스칼라s를 ν진수로 전개하여 스칼라s의 크기를 작게함과 아울러
[p²]P=φ'₂(P)
를 만족시키는 프로베니우스 매핑φ'₂(P)을 사용함으로써, 스칼라 배산[s]P의 연산량을 대략 절반으로 줄일 수 있어 스칼라 배산을 고속화 할 수 있다.
도1은, 본 발명의 실시형태에 관한 스칼라 배산기를 구비한 전자계산기의 개략적인 모식도이다.
도2는, 본 발명의 실시형태에 관한 스칼라 배산프로그램의 플로우 차트이다.
본 발명의 실시형태를 설명함에 있어서, 최초에 보충차수 k=12인 경우에 대하여 설명하고, 그 후에 보충차수 k=8인 경우에 대하여 설명한다.
본 실시형태의 스칼라 배산기(scalar 倍算器; scalar multiplier) 및 스칼라 배산프로그램에서 실행되는 스칼라 배산은, 보충차수(embedding degree) k=12인 경우에 표수(標數; characteristic) p, 위수(位數; order) r, 프로베니우스 자기 준동형 매핑(Frobenius endomorphism mapping)의 트레이스(trace) t가,
p(χ)=36χ⁴-36χ³+24χ²-6χ+1, ???(식1)
r(χ)=36χ⁴-36χ³+18χ²-6χ+1=p(χ)+1-t(χ), ???(식2)
t(χ)=6χ²+1, ???(식3)
로 주어진 타원곡선의 유리점(有理点; rational point)이 이루는 덧셈군E(Fp)의 유리점P의 스칼라 배산[s]P이다. 이 타원곡선은, 페어링 프렌들리 곡선(paring-friendly curves)의 일종으로서 바레토-나에리크 곡선(Barreto-Naehrig curve; 이하, 「BN곡선」이라 한다)이 알려져 있다.
이 BN곡선으로 나타내어지는 타원곡선에 대해서는, 부분체 트위스트 곡선(subfield twist curve)이 존재하는 것이 알려져 있다. 특히 보충차수 k=12인 경우에는, 6 다음의 트위스트 곡선이 알려져 있는데,
[p²]P=φ'₂(P),
로 되는 프로베니우스 매핑φ'₂이 알려져 있다.
이 프로베니우스 매핑φ'₂을 사용함으로써 스칼라 연산을 고속화 할 수 있는 것과 함께, 본 발명에서는 이하에 설명하는 관계식을 이용하여 스칼라 연산을 고속화 하고 있다.
우선 식2에 의하여 아래 식이 얻어진다.
36χ⁴-36χ³+18χ²-6χ+1≡0 mod r. ???(식4)
또한 p≡t-1 mod r 이므로, 아래 식이 얻어진다.
p²-6χp+3p-6χ+1≡0 mod r. ???(식5)
여기에서 식5를 변형함으로써 아래 식이 얻어진다.
(-6χ+3)p≡-p²+6χ-1 mod r. ???(식6)
여기에서 식6의 양변을 제곱함으로써 아래 식이 얻어진다.
(-6χ+3)²p²≡(p²-6χ+1)² mod r,
36χ²p²-36χp²+9p²≡p⁴-12χp²+2p²+36χ²-12χ+1 mod r. ???(식7)
또한 p⁴+1≡p² mod r 인 것을 이용하여 식7을 변형함으로써 아래 식이 얻어진다.
36χ²p²-36χp²+9p²≡-12χp²+3p²+36χ²-12χ mod r,
36χ²(p²-1)≡(24χ-6)p²-12χ mod r,
6χ²(p²-1)≡(4χ-1)p²-2χ mod r. ???(식8)
그리고 식8의 양변에 (p²-1)-1을 곱하면,
p⁴-p²+1≡0 mod r, ???(식9)
인 것으로부터,
-p²(p²-1)≡1 mod r, ???(식10)
이므로,
(p²-1)-1≡-p² mod r, ???(식11)
인 것을 이용하여 식8을 아래 식과 같이 변형할 수 있다.
6χ²≡-(4χ-1)p⁴+2χp²
≡-(4χ-1)(p²-1)+2χp² mod r. ???(식12)
따라서 식12를 변형함으로써 아래 식이 얻어진다.
6χ²-4χ+1≡(-2χ-1)p² mod r, ???(식13)
이에 따라, 아래 프로베니우스 매핑φ'₂의 관계식이 얻어진다.
[6χ²-4χ+1]P=[(-2χ+1)p²]P=[-2χ+1]φ'₂(P), ???(식14)
계속하여 프로베니우스 매핑φ'₂을 사용한 스칼라 배산[s]P을 고려한다. 여기에서 편의상,
ν=6χ²-4χ+1, ???(식15)
로 한다.
이 경우에 스칼라s의 ν진수 전개는 아래 식처럼 나타낼 수 있다.
s=s₁ν+s₂, s₂<ν . ???(식16)
여기에서 식16은, 식15 및 식14에 의하여 아래 식과 같이 나타낼 수 있다.
s≡(-2χ+1)s₁p²+s₂ mod r. ???(식17)
또 (-2χ+1)s₁은 ν보다 커지게 되는 경우가 있다. 따라서 (-2χ+1)s₁을 거듭하여 ν진수전개하여 아래 식과 같이 나타낸다.
s≡(s₃ν+s₄)p²+s₂ mod r. ???(식18)
여기에서 식14에 의하여 s₃νp²≡(-2χ+1)s₃p⁴이므로, (-2χ+1)s₃=s5 로 함으로써 식18은 아래 식과 같이 나타낼 수 있다.
s≡s5 p⁴+s₄p²+s₂ mod r. ???(식19)
이 경우에 s₄와 s₂는 ν보다도 작은 한편, s5 는 ν보다 작지 않을 수도 있지만, 그렇다 해도 그다지 커지게 되는 일은 없으므로 문제가 되지는 않는다.
식9에 의하여 p⁴≡p²-1 mod r 인 것으로부터, 식19는 아래 식과 같이 변형할 수 있다.
s≡s5 (p²-1)+s₄p²+s₂≡(s₄+s5 )p²+(s₂-s5 ) mod r. ???(식20)
여기에서
A=s₄+s5, ???(식21)
B=s₂-s5, ???(식22)
라고 하면, 스칼라 배산[s]P은
[s]P=([A]φ'₂+[B])P, ???(식23)
로 하여 연산할 수 있다.
따라서 예를 들면 256비트 사이즈의 스칼라s에 대한 스칼라 배산을 연산할 때에는, A 및 B는 128비트 사이즈가 되므로 연산량을 대략 절반으로 줄여서 스칼라 배산을 고속화 할 수 있다.
상기한 스칼라 배산을 하는 스칼라 배산기는 도1에 나타난 바와 같이 전자계산기(10)로 구성되는 것이며, 연산처리를 실행하는 CPU(11)와, 스칼라 배산프로그램 및 스칼라 배산프로그램에서 사용하는 유리점의 데이터 등을 기억한 하드디스크 등의 기억장치(12)와, 스칼라 배산프로그램을 전개하여 실행 가능하게 함과 아울러 스칼라 배산프로그램의 실행에 따라 생성된 데이터를 일시적으로 기억하는 RAM 등으로 구성된 메모리 장치(13)를 구비하고 있다. 도1에서 도면부호 14는 버스(bus)이다.
본 실시형태에서는 CPU(11) 내에 스칼라s의 값을 기억하는 스칼라값 레지스터(110)를 기억수단으로서 설치하고 있다. 또한 CPU(11) 내에는, 상기와 같이 스칼라s의 ν진수전개에 따라 발생하는 계수 s₁, s₂, s₃, s₄, s5 의 값을 각각 기억하는 제1 내지 제5레지스터(111, 112, 113, 114, 115)를 제1 내지 제5보조기억수단으로서 설치하고 있다. 또 스칼라값 레지스터(110)로 구성한 기억수단 및 제1 내지 제5레지스터(111, 112, 113, 114, 115)로 구성한 제1 내지 제5보조기억수단은 CPU(11) 내에 설치하지 않고, 메모리 장치(13) 등의 CPU(11) 이외의 기억수단에 설치하여도 좋다.
스칼라 배산기로서 기능하는 전자계산기(10)에서는, 스칼라 배산의 실행이 필요하게 된 경우에 스칼라 배산프로그램을 기동(起動)하여 스칼라 배산을 실행하고 있다.
즉 전자계산기(10)에서는, 기동시킨 스칼라 배산프로그램에 의하여 도2에 나타낸 플로우 차트에 의거하여 스칼라 배산을 하고 연산결과를 출력한다.
기동시킨 스칼라 배산프로그램에 의하여 전자계산기(10)에서는, CPU(11)를 입력수단으로서 기능시켜서 기억장치(12) 또는 메모리 장치(13)에 기억되어 있는 정수변수(整數變數; integer variable)χ의 데이터와 유리점P의 데이터를 읽어 내고, CPU(11)의 내부에 설치된 소정의 레지스터에 각각 입력한다(스텝S1).
또한 전자계산기(10)에서는, 스칼라 배산프로그램에 의하여 CPU(11)를 입력수단으로서 기능시켜서 스칼라 배산에 있어서 스칼라s의 값을 입력시킨다. 그 다음 CPU(11)를 기억수단으로서 기능시켜서, 입력된 스칼라s의 값을 스칼라값 레지스터(110)에 기억한다(스텝S2).
계속하여 전자계산기(10)에서는, 스칼라 배산프로그램에 의하여 CPU(11)를 연산수단으로서 기능시켜서, 상기한 바와 같이 스칼라s를 ν진수전개하여 ν진수전개의 계수인 s₁과 s₂를 산출한다(스텝S3). 즉 계수 s₁은, 스칼라s를 ν로 나누었을 때의 몫(quotient)이며, 계수s₂는, 스칼라s를 ν로 나누었을 때의 나머지(remainder)이다.
산출된 ν진수전개의 계수인 s₁과 s₂의 값은, CPU(11)를 기억수단으로서 기능시켜서, 제1레지스터(111) 및 제2레지스터(112)에 각각 저장하여 기억시킨다(스텝S4).
계속하여 전자계산기(10)에서는, CPU(11)를 연산수단으로서 기능시켜서 (-2χ+1)s₁의 값을 연산하고(스텝S5), 상기한 바와 같이 (-2χ+1)s₁을 ν진수전개하여 ν진수전개의 계수인 s₃과 s₄를 산출한다(스텝S6). 즉 계수s₃은 (-2χ+1)s₁을 ν로 나누었을 때의 몫이며, 계수s₄는 (-2χ+1)s₁을 ν로 나누었을 때의 나머지이다.
산출된 (-2χ+1)s₁의 ν진수전개의 계수인 s₃과 s₄의 값은, CPU(11)를 기억수단으로서 기능시켜서, 제3레지스터(113) 및 제4레지스터(114)에 각각 저장하여 기억시킨다(스텝S7).
계속하여 전자계산기(10)에서는, CPU(11)를 연산수단으로서 기능시켜서 (-2χ+1)s₃의 값을 연산하고(스텝S8), 이 값을 제5레지스터(115)에 각각 저장하여 기억시킨다(스텝S9).
계속하여 전자계산기(10)에서는, CPU(11)를 연산수단으로서 기능시켜서, 제1 내지 제5레지스터(111, 112, 113, 114, 115)에 기억된 값을 사용하여 s₄+s5 의 값 및 s₂-s5 의 값을 연산한다(스텝S10).
연산된 s₄+s5 의 값 및 s₂-s5 의 값은, 각각 소정의 레지스터에 저장하여 기억된다. 설명의 편의상, s₄+s5 =A, s₂-s5 =B로 한다.
계속하여 전자계산기(10)에서는 CPU(11)를 연산수단으로서 기능시켜서, 스칼라 배산[s]P을 [s]P=([A]φ'₂+[B])P 로 하여 연산한다(스텝S11). 여기에서 A 및 B의 값의 크기가, 스칼라s의 크기의 절반 정도로 됨으로써 연산시간을 크게 삭감할 수 있다. 컴퓨터 시뮬레이션(computer simulation)에서는, 일반적인 바이너리(binary) 법에서의 스칼라 배산과 비교하여 40% 정도의 고속화가 가능하였다.
또 스텝S11에서 수행되는 [s]P=([A]φ'₂+[B])P 의 연산은, 구체적으로는 아래와 같이 수행된다.
여기에서 전자계산기(10)에는, 스칼라 연산 [s]P 의 연산결과를 기억하는 연산결과용 레지스터(R)와, 연산에 필요하게 되는 값을 일시적으로 기억하여 두는 제1보조레지스터(C)와 제2보조레지스터(D)를 설치하고 있다.
우선 전자계산기(10)는 초기화 처리로서, 연산결과용 레지스터(R)를 0(zero element)으로 하고, 제1보조레지스터(C)에 φ'₂(P)을 대입하고, 제2보조레지스터(D)에 유리점P을 대입한다.
또한 상기한 A와 B를 각각 2진수 표시하였을 때의 i번째의 디지트(digit)의 값을 Ai와 Bi로 표시하는 것으로 하여, 전자계산기(10)에서는 A와 B의 모든 디지트(digit)에 걸쳐 이하의 연산 루프를 실행하는 것으로 하고 있다.
i번째의 디지트에 있어서 Ai=1 이고 Bi=1 인 경우에는 연산결과용 레지스터(R)에, 연산결과용 레지스터(R)와 제2보조레지스터(D)의 합을 대입한다. 즉 R←R+D 이다.
i번째의 디지트에 있어서 Ai=1 이고 Bi=0 의 경우에는 연산결과용 레지스터(R)에, 연산결과용 레지스터(R)와 제1보조레지스터(C)의 합을 대입한다. 즉 R←R+C 이다.
i번째의 디지트에 있어서 Ai=0 이고 Bi=1 의 경우에는 연산결과용 레지스터(R)에, 연산결과용 레지스터(R)와 유리점P의 합을 대입한다. 즉 R←R+P 이다.
그리고 연산결과용 레지스터(R)에, 연산결과용 레지스터(R)와 연산결과용 레지스터(R)의 합을 대입한다. 즉 R←R+R 이다.
그 후에 전자계산기(10)는 디크리멘트(decrement) 또는 인크리멘트(increment)를 수행하여 Ai와 Bi의 디지트를 이동(shift)하면서 A와 B의 모든 디지트에 걸쳐 연산을 함으로써 스칼라 연산 [s]P의 연산을 수행하고, 연산결과를 출력할 수 있게 되어 있다.
본 실시형태의 연산에서는, A와 B를 동시 진행으로 연산함으로써 A와 B 값의 크기가, 스칼라s의 크기의 절반 정도 되는 것의 메리트를 최대한 이용할 수 있다.
다음에 보충차수 k=8인 경우에 대하여 설명한다.
보충차수 k=8인 경우에 표수 p, 위수 r, 프로베니우스 자기 준동형 매핑의 트레이스 t가,
p(χ)=(81χ6+54χ5+45χ⁴+12χ³+13χ²+6χ+1)/4,
r(χ)=9χ⁴+12χ³+8χ²+4χ+1,
t(χ)=-9χ³-3χ²-2χ,
로서 주어지는 BN곡선의 유리점이 이루는 덧셈군E(Fp)의 유리점P에서의 스칼라 배산[s]P으로 한다.
이 경우에도 부분체 트위스트 곡선(subfield twist curve)이 존재하는 것이 알려져 있다. 특히 보충차수 k=8인 경우에는, 4 다음의 트위스트 곡선이 알려져 있는데,
[p²]P=φ'₂(P),
로 되는 프로베니우스 매핑φ'₂이 알려져 있다.
또한 보충차수 k=8인 경우에는, 상기한 (식14) 대신에,
[3χ²+2χ]P=[(-2χ-1)p²]P=[-2χ-1]φ'₂(P), ???(식24)
의 관계식이 있는 것을 이용하고 있다.
그리고 보충차수 k=12인 경우와 마찬가지로, 3χ²+2χ=ν 로 하여 상기 스칼라s를 ν진수전개하면 아래 식과 같이 나타낼 수 있다.
s=s₁ν+s₂, s₂<ν. ???(식25)
여기에서 식24에 의하여 식25는 아래와 같이 나타낼 수 있다.
s≡(-2χ-1)s₁p²+s₂ mod r. ???(식26)
또 (-2χ-1)s₁은 ν보다 커지게 되는 경우가 있다. 그래서 (-2χ-1)s₁을 거듭하여 ν진수전개하여 아래 식과 같이 나타낸다.
s≡(s₃ν+s₄)p²+s₂ mod r. ???(식27)
여기에서 식24에 의하여 s₃νp²≡(-2χ-1)s₃p⁴ 이므로, (-2χ-1)s₃=s5 로 함으로써 식27은 아래 식과 같이 나타낼 수 있다.
s≡s5 p⁴+s₄p²+s₂ mod r. ???(식28)
이 경우에 s₄와 s₂는 ν보다 작은 한편, s5 는 ν보다 작지 않을 수도 있지만, 그러한 경우에도 그다지 커지게 되는 일은 없으므로 문제가 되지는 않는다.
보충차수 k=8인 경우에 p⁴≡-1 mod r 인 것으로부터 식28은 아래 식과 같이 변형할 수 있다.
s≡-s5 +s₄p²+s₂≡s₄p²+(s₂-s5 ) mod r. ???(식29)
여기에서
A=s₄, ???(식30)
B=s₂-s5, ???(식31)
라고 하면, 스칼라 배산[s]P은 보충차수 k=12인 경우와 마찬가지로
[s]P=([A]φ'₂+[B])P
로 하여 연산할 수 있다.
따라서 보충차수 k=8인 경우에는, 보충차수 k=12인 경우와 비교할 때 제5레지스터(115)에 저장되는 값의 계산식 및 식30의 A의 값이 다르게 되는 것 뿐이어서, 보충차수 k=12인 경우와 마찬가지 방식으로 연산할 수 있다.
그래서 보충차수 k=8인 경우에 있어서의 스칼라 연산기는 보충차수 k=12인 경우에 있어서의 스칼라 연산기와 같은 것으로 하고, 도2에 나타낸 플로우 차트의 스텝S8 에서의 계산식을 (-2χ-1)s₃으로 하고, 스텝S9 에서 s5 의 값을 (-2χ-1)s₃으로 하고, 스텝S10 에서 A=s₄로 한다.
이에 따라 보충차수 k=8인 경우에도 A 및 B의 값의 크기가, 스칼라s의 크기의 절반 정도로 됨으로써 스칼라 배산[s]P의 연산시간을 크게 삭감할 수 있다.
본 발명에 의하면 그룹 서명의 연산 중에 필요하게 되는 스칼라 연산의 속도를 향상시켜서, 그룹 서명의 처리의 고속화를 도모할 수 있다.
10 전자계산기
11 CPU
12 기억장치
13 메모리 장치
14 버스
110 스칼라값 레지스터
111 제1레지스터
112 제2레지스터
113 제3레지스터
114 제4레지스터
115 제5레지스터

Claims (4)

  1. 정수변수(整數變數; integer variable)χ를 사용하여 보충차수(embedding degree) k=12에 있어서의 표수(票數)p, 위수(位數; order)r, 프로베니우스 자기 준동형 매핑(Frobenius endomorphism mapping)의 트레이스(trace) t가,
    p(χ)=36χ⁴-36χ³+24χ²-6χ+1,
    r(χ)=36χ⁴-36χ³+18χ²-6χ+1=p(χ)+1-t(χ),
    t(χ)=6χ²+1,
    로서 주어지는 타원곡선의 유리점(有理点; rational point)이 이루는 덧셈군(加法群; additive group) E(Fp)의 유리점P를 스칼라s 배(s는 정수) 하는 스칼라 배산[s]P을 연산하는 스칼라 배산기(scalar multiplier)에 있어서,
    트위스트 차수(twist degree) d를 6으로 하고, k=d×e 가 되는 정정수(正整數; positive interger) e를 2로 하여,
    [p²]P=φ'₂(P),
    로 되는 프로베니우스 매핑φ'₂을 사용하여,
    [6χ²-4χ+1]P=[(-2χ+1)p²]P=[-2χ+1]φ'₂(P)
    인 것으로부터, 6χ²-4χ+1=ν 로 하고, 정수로 이루어진 스칼라 계수 s₁, s₂를 이용하여 상기 스칼라s를 ν진수전개(ν進數展開; ν-adic expansion)함으로써
    s=s₁ν+s₂, s₂<ν,
    로 하고,
    s≡(-2χ+1)s₁p²+s₂ mod r,
    인 것으로부터, 정수로 이루어진 스칼라 계수 s₃, s₄, s5 를 이용하여 (-2χ+1)s₁부분을 ν진수전개하여
    s≡(s₃ν+s₄)p²+s₂≡s5 p⁴+s₄p²+s₂ mod r,
    로 하고, p⁴≡p²-1 mod r 인 것으로부터
    s≡(s₄+s5 )p²+(s₂-s5 ) mod r
    인 것을 이용하여 스칼라 배산[s]P을,
    [s]P=([s₄+s5 ]φ'₂+[s₂-s5 ])P
    로 하여 연산하기 위해,
    상기 스칼라s의 값을 기억하는 기억수단과,
    상기 스칼라 계수 s₁, s₂, s₃, s₄, s5 를 각각 기억하는 제1 내지 제5보조기억수단을 설치하되,
    상기 스칼라s를 ν진수전개하여 얻은 값을 상기 제1보조기억수단과 상기 제2보조기억수단에 기억시키고, (-2χ+1)s₁을 ν진수전개하여 얻은 값을 상기 제3보조기억수단과 상기 제4보조기억수단에 기억시키고, (-2χ+1)s₃의 값을 상기 제5보조기억수단에 기억시키는 스칼라 배산기.
  2. 정수변수χ를 사용하여 보충차수 k=12에 있어서의 표수 p, 위수 r, 프로베니우스 자기 준동형 매핑의 트레이스 t가,
    p(χ)=36χ⁴-36χ³+24χ²-6χ+1,
    r(χ)=36χ⁴-36χ³+18χ²-6χ+1=p(χ)+1-t(χ),
    t(χ)=6χ²+1,
    로서 주어지는 타원곡선의 유리점이 이루는 덧셈군E(Fp)의 유리점P를 스칼라s 배(s는 정수) 하는 스칼라 배산[s]P을, CPU(중앙처리장치)를 구비한 전자계산기에 연산시키는 스칼라 배산프로그램을 기록한 컴퓨터로 판독가능한 매체에 있어서,
    트위스트 차수 d를 6으로 하고 k=d×e로 되는 정정수 e를 2로 하여,
    [p²]P=φ'₂(P),
    로 되는 프로베니우스 매핑φ'₂을 사용하여,
    [6χ²-4χ+1]P=[(-2χ+1)p²]P=[-2χ+1]φ'₂(P)
    인 것으로부터, 6χ²-4χ+1=ν 로 하고, 정수로 이루어진 스칼라 계수 s₁, s₂를 이용하여 상기 스칼라s를 ν진수전개함으로써
    s=s₁ν+s₂, s₂<ν,
    로 하고,
    s≡(-2χ+1)s₁p²+s₂ mod r,
    인 것으로부터, 정수로 이루어진 스칼라 계수 s₃, s₄, s5 를 이용하여 (-2χ+1)s₁부분을 ν진수전개하여
    s≡(s₃ν+s₄)p²+s₂≡s5 p⁴+s₄p²+s₂ mod r,
    로 하고, p⁴≡p²-1 mod r 인 것으로부터
    s≡(s₄+s5 )p²+(s₂-s5 ) mod r
    인 것을 이용하여 스칼라 배산[s]P을,
    [s]P=([s₄+s5 ]φ'₂+[s₂-s5 ])P,
    로 하여 상기 전자계산기로 연산하기 위해,
    상기 스칼라s를 ν진수전개하여 얻어지는 상기 스칼라 계수s₁을 제1레지스터에 저장함과 아울러 상기 스칼라 계수s₂를 제2레지스터에 저장하는 스텝과,
    (-2χ+1)s₁을 ν진수전개하여 얻어지는 상기 스칼라 계수s₃을 제3레지스터에 저장함과 아울러 상기 스칼라 계수s₄를 제4레지스터에 저장하는 스텝과,
    (-2χ+1)s₃의 값을 상기 스칼라 계수s5 의 값으로서 제5레지스터에 저장하는 스텝을
    실행하는 스칼라 배산프로그램을 기록한 컴퓨터로 판독가능한 매체.
  3. 정수변수χ를 사용하여 보충차수 k=8에 있어서의 표수 p, 위수 r, 프로베니우스 자기 준동형 매핑의 트레이스 t가,
    p(χ)=(81χ6 +54χ5 +45χ⁴+12χ³+13χ²+6χ+1)/4,
    r(χ)=9χ⁴+12χ³+8χ²+4χ+1,
    t(χ)=-9χ³-3χ²-2χ,
    로서 주어지는 타원곡선의 유리점이 이루는 덧셈군E(Fp)의 유리점P를 스칼라s 배(s는 정수) 하는 스칼라 배산[s]P을 연산하는 스칼라 배산기에 있어서,
    트위스트 차수 d를 4로 하고, k=d×e로 되는 정정수 e를 2로 하여,
    [p²]P=φ'₂(P),
    로 되는 프로베니우스 매핑φ'₂을 사용하여,
    [3χ²+2χ]P=[(-2χ-1)p²]P=[-2χ-1]φ'₂(P)
    인 것으로부터 3χ²+2χ=ν 로 하고, 정수로 이루어진 스칼라 계수 s₁, s₂를 이용하여 상기 스칼라s를 ν진수전개함으로써
    s=s₁ν+s₂, s₂<ν,
    로 하고
    s≡(-2χ-1)s₁p²+s₂ mod r,
    인 것으로부터 정수로 이루어진 스칼라 계수 s₃, s₄, s5 를 이용하여 (-2χ-1)s₁부분을 ν진수전개하여
    s≡(s₃ν+s₄)p²+s₂≡s5 p⁴+s₄p²+s₂ mod r,
    로 하고, p⁴≡-1 mod r 인 것으로부터
    s≡s₄p²+(s₂-s5 ) mod r
    인 것을 이용하여 스칼라 배산[s]P을,
    [s]P=([s₄]φ'₂+[s₂-s5 ])P
    로 하여 연산하기 위해,
    상기 스칼라s의 값을 기억하는 기억수단과,
    상기 스칼라 계수 s₁, s₂, s₃, s₄, s5 를 각각 기억하는 제1 내지 제5보조기억수단을 설치하고,
    상기 스칼라s를 ν진수전개하여 얻은 값을 상기 제1보조기억수단과 상기 제2보조기억수단에 기억시키고, (-2χ-1)s₁을 ν진수전개하여 얻은 값을 상기 제3보조기억수단과 상기 제4보조기억수단에 기억시키고, (-2χ-1)s₃의 값을 상기 제5보조기억수단에 기억시키는 스칼라 배산기.
  4. 정수변수χ를 사용하여 보충차수 k=8에 있어서의 표수 p, 위수 r, 프로베니우스 자기 준동형 매핑의 트레이스 t가,
    p(χ)=(81χ6 +54χ5 +45χ⁴+12χ³+13χ²+6χ+1)/4,
    r(χ)=9χ⁴+12χ³+8χ²+4χ+1,
    t(χ)=-9χ³-3χ²-2χ,
    로서 주어지는 타원곡선의 유리점이 이루는 덧셈군E(Fp)의 유리점P를 스칼라s 배(s는 정수) 하는 스칼라 배산[s]P을, CPU를 구비한 전자계산기에 연산시키는 스칼라 배산프로그램을 기록한 컴퓨터로 판독가능한 매체에 있어서,
    트위스트 차수 d를 4로 하고 k=d×e로 되는 정정수 e를 2로 하여,
    [p²]P=φ'₂(P),
    로 되는 프로베니우스 매핑φ'₂을 사용하여,
    [3χ²+2χ]P=[(-2χ-1)p²]P=[-2χ-1]φ'₂(P)
    인 것으로부터, 3χ²+2χ=ν 로 하고, 정수로 이루어진 스칼라 계수 s₁, s₂를 이용하여 상기 스칼라s를 ν진수전개함으로써
    s=s₁ν+s₂, s₂<ν,
    로 하고,
    s≡(-2χ-1)s₁p²+s₂ mod r,
    인 것으로부터 정수로 이루어진 스칼라 계수 s₃, s₄, s5 를 이용하여 (-2χ-1)s₁부분을 ν진수전개하여
    s≡(s₃ν+s₄)p²+s₂≡s5 p⁴+s₄p²+s₂ mod r,
    로 하고, p⁴≡-1 mod r 인 것으로부터
    s≡s₄p²+(s₂-s5 ) mod r
    인 것을 이용하여 스칼라 배산[s]P을,
    [s]P=([s₄]φ'₂+[s₂-s5 ])P,
    로 하여 상기 전자계산기로 연산하기 위해,
    상기 스칼라s를 ν진수전개하여 얻어지는 상기 스칼라 계수s₁을 제1레지스터에 저장함과 아울러 상기 스칼라 계수s₂를 제2레지스터에 저장하는 스텝과,
    (-2χ-1)s₁을 ν진수전개하여 얻어지는 상기 스칼라 계수s₃을 제3레지스터에 저장함과 아울러 상기 스칼라 계수s₄를 제4레지스터에 저장하는 스텝과,
    (-2χ-1)s₃의 값을 상기 스칼라 계수s5 의 값으로서 제5레지스터에 저장하는 스텝을
    실행하는 스칼라 배산프로그램을 기록한 컴퓨터로 판독가능한 매체.
KR1020117013518A 2008-11-28 2009-11-30 스칼라 배산기 및 스칼라 배산프로그램 KR101154845B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2008-305121 2008-11-28
JP2008305121 2008-11-28
PCT/JP2009/070127 WO2010061951A1 (ja) 2008-11-28 2009-11-30 スカラ倍算器及びスカラ倍算プログラム

Publications (2)

Publication Number Publication Date
KR20110095328A KR20110095328A (ko) 2011-08-24
KR101154845B1 true KR101154845B1 (ko) 2012-06-18

Family

ID=42225813

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117013518A KR101154845B1 (ko) 2008-11-28 2009-11-30 스칼라 배산기 및 스칼라 배산프로그램

Country Status (6)

Country Link
US (1) US8374342B2 (ko)
EP (1) EP2369568B1 (ko)
JP (1) JP5403630B2 (ko)
KR (1) KR101154845B1 (ko)
CN (1) CN102227759B (ko)
WO (1) WO2010061951A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012046805A1 (ja) * 2010-10-08 2012-04-12 国立大学法人岡山大学 有理点情報圧縮装置、有理点情報圧縮方法及び有理点情報圧縮プログラム
CN104579661B (zh) * 2013-10-21 2018-05-01 航天信息股份有限公司 基于身份的电子签章的实现方法和装置
JP6228940B2 (ja) * 2015-01-07 2017-11-08 日本電信電話株式会社 標本装置、標本方法、およびプログラム
EP4167213B1 (en) * 2017-01-18 2024-03-13 Nippon Telegraph And Telephone Corporation Secret computation method, secret computation system, secret computation apparatus, and program
CN108337091A (zh) * 2018-03-22 2018-07-27 北京中电华大电子设计有限责任公司 一种SM9椭圆曲线扭曲线上特定点的p倍点计算方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006184831A (ja) 2004-12-28 2006-07-13 Nippon Telegr & Teleph Corp <Ntt> 鍵生成装置、暗号化装置、検査装置、復号化装置並びに鍵生成プログラム、暗号化プログラム、検査プログラム、復号化プログラム
JP2007041461A (ja) 2005-08-05 2007-02-15 Hitachi Ltd 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4184120B2 (ja) 2003-03-07 2008-11-19 日本電信電話株式会社 楕円曲線上スカラー倍演算装置、及び楕円曲線上スカラー倍演算プログラム
CN101031944A (zh) * 2004-09-30 2007-09-05 索尼株式会社 加密计算方法、加密系统和计算机程序

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006184831A (ja) 2004-12-28 2006-07-13 Nippon Telegr & Teleph Corp <Ntt> 鍵生成装置、暗号化装置、検査装置、復号化装置並びに鍵生成プログラム、暗号化プログラム、検査プログラム、復号化プログラム
JP2007041461A (ja) 2005-08-05 2007-02-15 Hitachi Ltd 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置

Also Published As

Publication number Publication date
KR20110095328A (ko) 2011-08-24
JPWO2010061951A1 (ja) 2012-04-26
EP2369568A1 (en) 2011-09-28
JP5403630B2 (ja) 2014-01-29
WO2010061951A1 (ja) 2010-06-03
US20110261955A1 (en) 2011-10-27
CN102227759A (zh) 2011-10-26
EP2369568A4 (en) 2014-03-19
US8374342B2 (en) 2013-02-12
EP2369568B1 (en) 2016-08-31
CN102227759B (zh) 2015-06-24

Similar Documents

Publication Publication Date Title
US6466668B1 (en) IC card equipped with elliptical curve encryption processing facility
US7904498B2 (en) Modular multiplication processing apparatus
CN101194457B (zh) 随机模数化多项式约简方法及其硬件
US20060093137A1 (en) Elliptic curve cryptosystem apparatus, elliptic curve cryptosystem method, elliptic curve cryptosystem program and computer readable recording medium storing the elliptic curve cryptosystem program
US8977668B2 (en) Calculating unit for reducing an input number with respect to a modulus
US7603558B2 (en) Montgomery transform device, arithmetic device, IC card, encryption device, decryption device and program
KR101154845B1 (ko) 스칼라 배산기 및 스칼라 배산프로그램
JP3785044B2 (ja) べき乗剰余計算装置、べき乗剰余計算方法及び記録媒体
JP5097138B2 (ja) モンゴメリ乗算のための演算回路及び暗号回路
EP0984357B1 (en) Apparatus and method for elliptic-curve multiplication and recording medium having recorded thereon a program for implementing the method
US8417760B2 (en) Device and method for calculating a multiplication addition operation and for calculating a result of a modular multiplication
US8364740B2 (en) Device and method for calculating a result of a modular multiplication with a calculating unit smaller than the operands
US8364737B2 (en) Device and method for calculating a result of a sum with a calculating unit with limited word length
JP2004004341A (ja) べき乗剰余計算装置、べき乗剰余計算方法及びプログラム
CN113467752B (zh) 用于隐私计算的除法运算装置、数据处理系统及方法
JP3779479B2 (ja) Icカード
JP5179933B2 (ja) データ処理装置
JP3966714B2 (ja) 暗号処理方法、そのプログラム及びその記録媒体
JPH076025A (ja) 冪剰余演算方法および装置
JP3390966B2 (ja) 平方数を法とした剰余演算装置及びそのプログラム記録媒体
JP2001265218A (ja) 楕円曲線上の演算方法及び装置と、演算プログラムを記録した記録媒体
JP2003271055A (ja) ウインドウ処理装置、ウインドウ処理プログラムおよびその記録媒体
JP2003233309A (ja) 最大公約数演算装置及び逆元演算装置及び演算プログラム記録媒体
JP2011150096A (ja) ペアリング演算装置及び方法

Legal Events

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

Payment date: 20150309

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160601

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170404

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180312

Year of fee payment: 7