KR20080112333A - 데이터의 보안성 있는 결정을 위한 방법 - Google Patents

데이터의 보안성 있는 결정을 위한 방법 Download PDF

Info

Publication number
KR20080112333A
KR20080112333A KR1020087026125A KR20087026125A KR20080112333A KR 20080112333 A KR20080112333 A KR 20080112333A KR 1020087026125 A KR1020087026125 A KR 1020087026125A KR 20087026125 A KR20087026125 A KR 20087026125A KR 20080112333 A KR20080112333 A KR 20080112333A
Authority
KR
South Korea
Prior art keywords
register
auxiliary variable
data
bit
instruction
Prior art date
Application number
KR1020087026125A
Other languages
English (en)
Other versions
KR101338016B1 (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 KR20080112333A publication Critical patent/KR20080112333A/ko
Application granted granted Critical
Publication of KR101338016B1 publication Critical patent/KR101338016B1/ko

Links

Images

Classifications

    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7266Hardware adaptation, e.g. dual rail logic; calculate add and double simultaneously
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Signal Processing (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Executing Machine-Instructions (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명의 목적은 데이터의 보안성 있는 프로세싱을 위한 방법을 제공하는 것이고, 여기서 보안성은 측면 채널 공격들에 관련하여 증가된다. 이것을 달성하기 위하여, 보조 프로세서들을 명령하기 위한 연산 코드들은 예를 들어, 레지스터 콘텐츠의 비트-종속 치환에 대하여 결정된다. 본 해결책은 보조 프로세서의 기술적 구성의 결과로서, 레지스터 콘텐츠의 이동, 예를 들어, 레지스터 A로부터 레지스터 B로의 이동이 레지스터 A로부터 레지스터 C로의 이동과 외부로부터 구별될 수 없다는 사실을 이용한다.

Description

데이터의 보안성 있는 결정을 위한 방법{METHOD FOR THE SECURE DETERMINATION OF DATA}
본 발명은 데이터의 보안성 있는 결정 방법에 관한 것으로서, 제 1 프로세서에서 키를 사용한 수학적 연산이 타원형 곡선의 지점에 적용되고, 키는 비트들의 시퀀스(bi)를 가진 이진수로서 표시될 수 있다.
개인키 및 공개키로 구성된 키 쌍들의 설정을 사용하여, 비대칭 암호화 시스템들은 충분히 높은 정도의 보안성을 보장하여, 공격자가 유한 시간 내에 개인키를 디코딩하거나 공개키로 인코딩된 메시지를 디코딩하는 것을 사실상 불가능하게 한다. 종래의 암호화 시스템들, 예를 들어, 타원형 곡선들에 기초한 암호화 시스템들은 다항 시간(polynomial time)에 수행될 수 있으나, 비트들로 키의 길이에 대해 지수 시간(exponential time)에 반전될 수 있는 인코딩에 기초한다. 현재는, 타원형 곡선들에 기초한 시스템들에서, n = 160 내지 192 비트들의 키 길이들이 사용되고, RSA 알고리즘들에 기초한 시스템들에서 n = 1024 내지 1536 비트들의 길이들이 거의 동일한 보안성 레벨에 대하여 사용되어야 한다.
따라서, 타원형 곡선들에 기초한 암호화 방법들은 더 효과적이고, 대등한 정 도의 달성가능한 보안성을 가진 다른 암호화 방법들보다 시스템 파라미터들을 전송하는데 더 적은 대역폭을 요구한다.
예로서, 이제 타원형 곡선들에 기초한 두 통신 가입자들 간의 키를 동의하기 위한 공지된 디피-헬만(Diffie-Hellman) 방법의 개요가 설명된다. 이것에 의하여, 제 1 통신 가입자 A는 보안 파라미터 ra를 알고, 제 2 통신 가입자 B는 보안 파라미터 rb를 안다. 두 통신 가입자들이 타원형 곡선에 동의하고 이러한 타원형 곡선의 공통 지점 P에 동의한 때,
통신 가입자 A는 값
Qa = ra * P
를 결정하고,
통신 가입자 B는 값
Qb = rb * P
를 결정한다.
이어서, 값 Qa는 통신 가입자 A에 의해 통신 가입자 B에게 전송되고, 값 Qb는 통신 가입자 B에 의해 통신 가입자 A에게 전송된다. 부가의 스칼라 곱에서, 통신 가입자 A는 이제 공통 키
K = ra * Qb = ra * rb * P
를 결정하고,
통신 가입자 B는 동일한 공통 키
K = rb * Qa = rb * ra * P
를 결정한다.
따라서, 이러한 스칼라 곱들은 타원형 곡선들에 기초한 암호화 방법들에 필수적인 빌딩 블록을 형성한다. 타원형 곡선들을 사용하는 것이 특히 유리한데, 그 이유는 반전 연산, 즉, Qa,b = ra,b * P이 되도록 지점들 Qa,b 및 P를 아는 것으로부터 스칼라 ra,b의 결정하는 것이 단지 현저한 계산 노력으로만 계산될 수 있기 때문이다. 현재 지식 수준으로는, 스칼라 곱은 다항 시간에 계산될 수 있으나, 단지 지수 시간에 반전될 수 있다.
그러나, 타원형 곡선들에 기초한 공지된 암호화 방법들은 소위 측면 채널 공격들에 대하여 취약하다. 이러한 것들은 인코딩이 기초한 알고리즘을 가능한 가장 효율적인 방식으로 파괴하기 위하여 인코딩의 반전에 기초한 공격의 방법들에 대한 대안을 나타낸다. 이러한 것들은 특히, 메시지들의 인코딩된 교환을 생성하거나 다시 한 번 메시지들을 디코딩하기 위하여 비밀키 자료가 저장된 스마트카드 또는 동글(dongle)와 같은 이동형 보조 기구와 함께 사용된다.
공격자는 대응 회로들의 데이터 라인들의 비교적 손쉬운 접근성을 사용하여, 전력, 전자기 방출, 유도된 에러들을 가진 결과 또는 특정 계산들의 런 타임과 같은 물리적 변수들을 측정한다. 단순 전력 분석(simple power analysis; SPA)에 기초하여 측정된 값들을 직접 평가하는 것, 또는 저장 오실로스코프 및 후속적 통계 평가를 사용하여 전력와 같은 측정된 값들을 레코딩함으로써 측정된 값들을 직접 평가하는 것은 내재한 알고리즘 상에서 정보를 얻는 효율적인 방법이거나, 최악의 경우에 현재 존재하는 키에 대한 정보를 얻는 방법이다.
후자는 예를 참조하여 더 상세히 설명될 것이다: 인코딩 방법은 타원형 곡선들에 기초한 알고리즘들 및 RSA 방법에 기초한 알고리즘들 모두에 대한 수학적 연산을 제공한다.
타원형 곡선들의 경우에, 스칼라 곱
Q = k * P
는 수학적 연산으로서 수행되어야 하고, P는 유한체(finite field) K에 대한 타원형 곡선 상의 한 지점이고, k는 다시 키 또는 키로부터 도출된 변수이다.
스칼라 곱의 가능한 구현이 산술 및 논리 유닛 상에서 이하의 알고리즘을 구현함으로써 달성될 수 있고, 여기서, 키 k는 이진 표현(bi, i = n-1....0)에 의해 설정된다.
알고리즘 1: EC - 타원형 곡선: Q = k * P
(1.1) Q ← 0
(1.2) i ← n-1
(1.3) i > -1 인 동안,
(1.3.1) Q ← 2 * Q
(1.3.2) 만약 bi = 1이면, Q ← Q + P
(1.3.3) i ← i - 1
(1.4) Q를 전달
단순 전력 분석(SPA)의 경우에, 스칼라 곱의 전력 소모의 프로파일이 분석된다. 스칼라 곱은 주로 합산 및 중복(duplication)들로 구성된다. 그러나 연산들은 K에서의 기본 연산들의 개수에서 현저히 차이가 나고, 그 결과 전력 소모 또한 달라진다. 따라서, 개별적인 비트들에 관련하여 결론을 내리고, 그리하여 k의 이진 표현 그 자체에 대한 결론을 내리기 위하여 대응하는 측면 채널 공격을 사용하는 것이 가능하다.
이러한 종류의 공격들에 대한 방어를 위한 한 가지 가능한 단계는 이하에서 기술되는 바와 같이, 전력 흐름을 정렬하는 것 및 가능한 비트 상태들 0 및 1 모두에 대하여 각각의 비트의 값에 의존하는 런 타임들을 계산하는 것으로 구성된다.
타원형 곡선 E의 한 지점 P는 그것의 x-축 및 y-축에 의해 정의된다. 타원형 곡선 E의 곡선 방정식에 기초하여, 지점들 (x, y1) 및 (x, y2)이 타원형 곡선 E 상의 지점들이 되도록 하나의 x-값에 대하여 최대 2개의 상이한 y-값들 y1 및 y2가 존재한다. 따라서, 명백히 x-축과 별개로, 타원형 곡선 E 상의 한 지점을 정의하기 위하여, 부가적인 정보의 단지 하나의 비트만이 요구된다.
유한 소체(prime field)들에 대한 타원형 곡선 E의 경우에, 예를 들어, 소위 y-축의 최하위 비트 또는 각각의 지점의 y-축의 (+/-) 부호가 부가적인 정보로서 충분하다.
타원형 곡선들의 이러한 속성들이 소위 몽고메리 사다리 알고리즘(Montgomery ladder algorithm)에 사용되는데, 상기 몽고메리 사다리 알고리즘은 타원형 곡선들 상의 스칼라 곱의 구현에 대해 통상적인 방법이다. 몽고메리 사다리 알고리즘은 단지 P의 x-축만이 지점 P의 스칼라 곱의 x-좌표를 계산하기 위해 사용되는 방식으로 구현될 수 있다. 이하에서 설명하는 바와 같이, 몽고메리 사다리는 동시에 단순 전력 분석을 대항하기 위한 매우 좋은 방법이기 때문에, 임베디드 시스템들 상에서 실행되는 암호화 시스템들에서 종종 구현된다.
이하에서 기술되는 몽고메리 사다리 알고리즘의 방법에 따라, 타원형 곡선 상에 배치되는 지점 P의 배수 k * P가 계산된다.
이진 표현으로 특정된 스칼라 k = (bn_1,....,bi,....,b0)가 소위 최상위 비트(MSB, N1)로 시작하여 비트 당(bit-by-bit) 프로세싱된다.
알고리즘 2: EC - 타원형 곡선: Q = k * P 몽고메리 사다리:
(2.1) R ← P, S ← 0
(2.2) i ← n-1
(2.3) i > -1인 동안,
(2.3.1) 만약 bi = 1이면, { S ← S + R, R ← 2 * R }
(2.3.2) 그렇지 않으면, { R ← R + S, S ← 2 * S }
(2.3.3) i ← i - 1
(2.4) R, S를 전달
(2.5) 지점들 R, S 및 P로부터 k * P를 재구성
제공된 실시예에서, 부가 및 중복은 비트-독립적으로 완전히 균일하게 실행된다. 따라서, 연산들의 시퀀스로부터 비트 시퀀스에 관한 결론을 내리는 것이 가능하지 않다. 그러나, 문제점들은 점프 명령("만약 ... 이면(if)" 또는 "그렇지 않으면(else)")에 의해 제공되는데, 그 이유는 이것이 상이한 전력 소모로부터 자명하게 된 상이한 어드레스들로의 점프로 이르게 되기 때문이다.
따라서, 본 발명이 기초로 하는 한 가지 목적은 측면 채널 공격들에 대한 보안성이 더 증가된 데이터의 보안 프로세싱 방법을 제공하는 것이다.
본 발명에 따르면, 이러한 목적은 청구범위 제1항의 특징들을 가진 방법에 의해 달성된다. 본 발명의 유리한 부가 개선예들은 종속항들에 개시된다.
데이터의 보안성 있는 결정 방법에 관한 본 발명에 따르면, 제 1 프로세서에서, 키를 사용한 수학적 연산이 타원형 곡선의 한 지점에 적용되고, 여기서 키는 비트들(bi)의 시퀀스를 가진 이진수로서 표현될 수 있다. 본 방법은 추가 프로세서에서 적어도 하나의 레지스터의 콘텐츠들에 대한 제 1 연산(X)을 유도하는 제 1 명령(x) 및 상기 추가 프로세서에서 제 2 연산(Y)을 유도하는 제 2 명령(y)를 포함한다. 적어도 하나의 값(d)는 2개의 명령들(x, y)에 의존하여 결정된다. 제 1 보조 변수(R) 및 제 2 보조 변수(S)에 시작 값들이 제공되어 초기화된다. 이하의 단계들은 키의 각각의 비트(bi)에 대한 시퀀스로 수행된다.
제 1 보조 변수(R)는 추가 프로세서의 제 1 레지스터로 전달되고, 제 2 보조 변수(S)는 추가 프로세서의 제 2 레지스터로 전달된다. 비트(bi)의 값 및 상기 적어도 하나의 값(d)에 따라, 제 1 명령(x)이 할당되거나 제 2 명령(y)이 할당되는 방식으로 명령이 출력 변수(A)에 할당된다. 출력 변수(A)는 추가 프로세서의 명령 레지스터로 전달된다.
마지막으로, 추가 프로세서에서 업데이트된 제 1 보조 변수(R) 및 제 2 보조 변수(S)가 결정된다. 비트들(bi)에 대한 단계들의 종료 이후에, 제 1 보조 변수(R) 및/또는 제 2 보조 변수(S)가 출력되고, 제 1 보조 변수(R) 및/또는 제 2 보조 변수(S)로부터 나온 수학적 연산의 결과가 결정된다.
용어의 일반적인 의미를 배제하지 않으면서, 본 발명의 목적을 위하여, 추가 프로세서는 보조 프로세서(coprocessor), 특히 암호화-보조 프로세서를 의미하는 것으로 이해되어야 한다. 이것은 제한된 명령 세트를 갖고, 측정치들로부터 균등한 또는 균등하지 않은 연산들이 보조 프로세서에서 수행되고 있는지 여부를 식별하는 것이 실제로 불가능한 방식으로 하드웨어 기술에 의해 보호되어야 한다.
따라서, 본 발명은 특히 본 방법의 명령들에서, 소위 연산 코드들이 보조 프로세서에 대해 결정된다는 사실에 특징이 있고, 상기 연산 코드들은 보조 프로세서 내에서 레지스터 콘텐츠들의 치환(transposition) 또는 비치환을 수행한다. 보조 프로세서의 기술적 구성으로 인하여, 예를 들어, 레지스터 A로부터 레지스터 B로의 레지스터 콘텐츠의 이동은 레지스터 A로부터 레지스터 C로의 이동과 외부에서 구별될 수 없다. 결과적으로, 상기 목적을 달성하기 위한 전술된 일반적인 접근법은 특히, 프로세싱될 보조 변수들을 포함하는 저장 영역들에 대한 어드레스들을 결정하는 것 대신에, 레지스터 콘텐츠의 비트-종속 치환을 위한 보조 프로세서들에 대한 명령들을 위한 연산 코드들이 결정된다는 것으로 구성된다. 이것에 의하여, 레지스터 콘텐츠들의 어드레스들은 보조 프로세서들에서 아무런 역할을 하지 않는다는 사실이 사용되는데, 그 이유는 보조 변수들이 보조 프로세서의 레지스터에 이미 로딩되고, 레지스터들은 각각의 연산 코드에 의해 내재적으로 어드레스가 주어지기 때문이다.
지금까지, 본 발명에 따른 방법은 측면 채널 공격들로부터 보호, 특히 전력 분석에 의한 측면 채널 공격들로부터 보호가 현저히 증가된다는 이점을 갖는데, 그 이유는 2개의 레지스터들의 치환이 보조 프로세서 내에서 독점적으로 일어나고, 치환 또는 비치환이 2개의 연산 코드들의 전송에 기초하며, 보조 프로세서 내에서의 이것의 구현은 구별될 수 없기 때문이다.
본 발명의 추가적인 중요한 이점은 측면 채널 공격들에 특히 취약한 if-else 분기가 if-else 분기의 내재적인 결정이 2개의 연산 코드들 간의 차이의 계산에 의해 수행된다는 점에서 회피된다는 사실이다.
본 발명의 사용은 보조 프로세서들에 제한되지 않는다. 예를 들어, 자기-수정 프로그램(self-modifying program)의 구현을 위하여 상이한 연산 코드들을 선택하고 이러한 방식으로 내재적인 if-else 분기를 구현하기 위하여 본 발명에 따른 방법을 사용하는 것이 가능하다. 부가하여, 본 발명에 따른 방법은 급속한 지수 루틴들 및 스칼라 곱들의 다른 구현들로 전이될 수 있다.
본 발명의 유리한 실시예에 따라, 제 1 명령(x) 및 제 2 명령(y)은 동일한 해밍(Hamming) 무게를 갖는다. 따라서, 유리한 방식으로 측면 채널 공격들에 의하여 외부로부터 2개의 명령들(x, y)를 구별하는 것 또한 불가능함을 보장한다.
본 발명은 도면의 실시예들을 참조하여 이하에서 설명될 것이다.
도 1은 보조 프로세서의 상이한 레지스터들에 대한 보조 변수들(R, S)의 할당의 개략적인 표현이다.
도 2는 보조 프로세서 내에서 연산 코드들에 의한 보조 프로세서의 레지스터들에 대한 보조 변수들(R, S)의 할당의 개략적인 표현이다.
알고리즘 2에서 보여진 선행기술로부터 공지된 몽고메리 사다리의 시퀀스로부터, 비트(bi)에 따라, 단계들 (2.3.1) 및 (2.3.2) (bi)에서, 단지 보조 변수들(R,S)만이 치환됨이 확인가능하다.
(3.1) 만약 bi = 1이면, { S ← S + R, R ← 2 * R }
(3.2) 그렇지 않으면, { R ← R + S, S ← 2 * S}
따라서, 알고리즘 2는 키 비트가 값 0을 채택하면 실행된 루프의 시작과 끝에 있는 보조 변수들이 치환된다는 점에서 더 단순화될 수 있다. F1 = { S ← S + R, R ← 2 * R }를 사용하여, 2개의 점프 어드레스들 중 하나로 참조되는 것만이 필수적이다.
(4.1) 만약 bi = 1이면, F1
(4.2) 그렇지 않으면, { 스와핑(R,S), F1, 스와핑(R,S) }
도 1은 이러한 종류의 방법이 기초로 하는 몽고메리 사다리 알고리즘의 하드웨어 구현을 보여준다. 키 비트(bi)의 값에 따라, 2가지 보조 변수들((R) 101 및 (S) 102)이 각각 보조 프로세서(103)의 제 1 레지스터(104) 및 제 2 레지스터(105)로 이동된다. 예를 들어, 키 비트가 값 1을 갖는다면, 보조 변수((R) 101)는 제 1 레지스터(104)로 이동되고(106), 보조 변수((S) 102)는 제 2 레지스터(105)로 이동된다(109). 반면, 키 비트가 값 0을 채택하면, 보조 변수((R) 101)는 제 2 레지스터(105)로 이동되고(107), 보조 변수((S) 102)는 제 1 레지스터(104)로 이동된다(108).
양쪽 경우에, 함수(F1)가 보조 프로세서(103)에서 수행되어, 함수(F1)의 결과들은 다시 한 번 치환되어야 한다.
그러나, 기술된 방법은 측면 채널 공격들에 의한 검출 가능성이 여전히 존재한다는 단점을 갖는데, 그 이유는 비트 값에 따라, 컴퓨터 워드 당 2번의 메모리 액세스가 복사 시 요구되기 때문이다. 더 긴 필드 엘리먼트들은 전력 소모에 현저히 반영되는 무수히 많은 액세스를 요구한다.
본 발명에 따라, 이러한 단점은 보조 변수들(R,S)의 치환이 보조 프로세서 내에서 수행된다는 점에서 교정된다.
이러한 프로세스는 도 2에 도시된다. 각각의 키 비트(bi)에 무관하게, 보조 변수((R) 201)는 보조 프로세서(203)의 제 1 레지스터(204)로 이동되고(206), 제 2 보조 변수((S) 202)는 보조 프로세서(203)의 제 2 레지스터(205)로 이동된다(207). 그러나, 각각의 키 비트(bi)에 따라, 보조 프로세서(203)에 대한 연산 키가 결정되고 보조 프로세서의 명령 레지스터 안으로 이동된다. 키 비트에 대한 1의 값을 사용하여, 제 1 연산 키가 명령 레지스터로 이동되고, 그 결과 제 1 레지스터(204)의 보조 변수(R)는 제 3 레지스터(212)로 이동되고(208), 제 2 레지스터(205)의 보조 변수(S)는 제 4 레지스터(213)로 이동된다(211). 반면, 키 비트에 대한 0의 값을 사용하여, 제 2 연산 키가 명령 레지스터로 이동되고, 그 결과 제 1 레지스터(204)의 보조 변수(R)가 제 4 레지스터(213)로 이동되고(209), 제 2 레지스터(205)의 보조 변수(S)가 제 3 레지스터(212) 안으로 이동된다(210).
일 실시예의 부가 예시에서, R, S, C는 보조 프로세서의 내부 데이터 레지스터들이다. 보조 프로세서에 대한 전술한 명령 시퀀스는 이하와 같이 표시될 수 있다.
(5.1) 만약 bi = 0이면, {치환(R,S)}
(5.2) 그렇지 않으면, {비치환(R,S)}
제 3 데이터 레지스터(C)의 도움으로, 명령 시퀀스는 또한 이하와 같이 기술될 수 있다.
(6.1) 만약 bi = 0이면, {C ← R, R ← S, S ← C}
(6.2) 그렇지 않으면, {C ← R, R ← S, R ← C}
또는
(7.1) C ← R, R ← S
(7.2) 만약 bi = 0이면, {S ← C}
(7.3) 그렇지 않으면, {R ← C}
단계 (7.1)에서 수행된 할당들 S ← C 및 R ← C은 전력 소모에 있어 어떠한 측정가능한 차이도 야기하지 않으나, 이전와 같이, 비트-종속 분기는 측면 채널 공 격들에 대해 보호되지 않는다. 이하는 연산 코드(x)에 의한 명령 S ← C 및 연산 코드(y)에 의한 명령 R ← C을 기술하고, 일반 원칙 x < y가 제한없이 적용됨이 또한 가정된다. 연산 코드를 가진 명령은 대응 연산 코드가 보조 프로세서의 명령 레지스터 내로 기록된다는 점에서 보조 프로세서에 의해 실행된다. 이러한 가정들을 사용하여, 명령 시퀀스가 이하와 같이 기술될 수 있다.
(8.1) 만약 bi = 0이면, {A ← x}
(8.2) 그렇지 않으면, {A ← y}
(8.3) C ← R, R ← S
(8.4) 명령 레지스터로 A로부터의 연산 코드 기록
전술한 알고리즘에서 오직 남아있는 측정가능한 비트 종속성은 연산 코드들의 할당에 의해 야기된다. 본 발명에 따라, (8.1) 및 (8.2)에서의 점프 명령의 회피는 차이 d = y - x가 명령들 (x)와 (y) 사이에서 형성된다는 점에서 달성되고, 그 결과, 점프 명령의 결과는 비트-종속 방식으로 이하와 같이 계산될 수 있다.
A = x + d·b1
이러한 방법은 2개의 컴퓨터 워드 h 및 h'의 부가에 의해 개선될 수 있고, 상기 2개의 컴퓨터 워드(h, h')는 단지 컴퓨터 워드 h의 최하위 비트에서 차이가 나고, 그것은 각각의 키 비트 bi이다. 따라서, 감산 h - h' = bi을 사용하여 이하가 획득되고, 구하려는 연산 코드가 이하와 같이 계산될 수 있다.
A = x + h·d - h'·d
이러한 다항식은 이하의 알고리즘에서 기술된다.
(9.1) bi를 워드 h의 LSB로 회전
(9.2) h를 h'으로 복사, 그리고 h'의 LSB를 삭제
(9.3) A ← x
(9.4) m ← h * d
(9.5) A ← A + m
(9.6) m ← h' * d
(9.7) A ← A - m
이러한 결과가 알고리즘 2에 기술된 몽고메리 사다리 알고리즘에 적용된다면, 이하의 알고리즘이 획득된다.
(10.1) x 명령{S ← C} // R, S로부터 레지스터 콘텐츠 치환
(10.2) y ← 명령{R - C} // R, S의 치환 없음
(10.3) R ← P, S ← 0
(10.4) d ← y - x, 여기서, x < y
(10.5) i ← n-1 내지 0에 대하여 수행
(10.6) bi를 워드 h의 LSB로 회전
(10.7) h를 h'로 복사, 그리고 h'의 LSB를 삭제
(10.8) A ← x
(10.9) m ← h * d
(10.10) A ← A + m
(10.11) m ← h' * d
(10.12) A ← A - m
(10.13) C ← R, R ← S
(10.14) 보조 프로세서의 명령 레지스터로 A를 로딩
(10.15) 보조 프로세서에서의 계산 S ← S + R, R ← 2 * R
(10.16) C ← R, R ← S
(10.17) 보조 프로세서의 명령 레지스터로 A를 로딩
(10.18) 종료
(10.19) R, S 및 P로부터 k * P 재구성
일 실시예의 부가 예시에서, 예를 들어, 보조 프로세서 ACE를 사용할 때, 본 발명에 따른 구현이 인피니언(Infineon)에서 만들어진 칩 SLE66CX320P 상에 기록된다.
암호화-보조 프로세서 ACE는 4개의 데이터 레지스터(CR0, CR1, CR2 및 CR3) 및 피연산자 레지스터(C)를 갖는다. 이러한 예에서, 2개의 보조 변수들이 데이터 레지스터들(CR1 및 CR2)로 로딩되고, 데이터 레지스터들(CR1 및 CR2)의 콘텐츠가 이제 치환되어야 한다. 비밀 비트(secret bit)는 작동하는 레지스터(A)의 최하위 비트(LSB)이고, 이러한 경우 작동하는 레지스터(A)는 길이 8 비트를 갖는다.
암호화-보조 프로세서 ACE는 무엇보다도 명령들 move_CR1_C 및 move_CR2_c를 소유하고, 상기 명령들은 레지스터(C)의 콘텐츠를 레지스터(CR1)로 또는 레지스터(CR2)로 이동시키기 위하여 사용될 수 있다. 제 1 명령에 대한 연산 코드(x)는 0x6b이고, 제 2 명령에 대한 연산 코드(y)는 0x73이다. 연산 코드들 간의 차이 d가 8이기 때문에, 전술한 알고리즘 (9.4)에서의 h·d으로의 곱은 이동 명령(shift instruction)에 의해 대체될 수 있고, 그리하여 알고리즘이 단순화된다. 이하의 알고리즘은 이제 제 1 명령 또는 제 2 명령에 대하여 목적하는 연산 코드들의 결정을 보여주고, 여기서, 연산 &는 논리 AND 연산을 나타낸다.
연산 코드들의 선택
(11.1) A를 3개의 비트만큼 순환적으로 좌측으로 회전
(11.2) 설정 B ← A + 0x6b
(11.3) 계산 A ← A & 0xf7 (제 3 하위 비트를 마스킹)
(11.4) 설정 A1 ← B ← A
단계 (11.1)에서, 키 및 구별을 위하여 사용될 비트가 차이 8과의 곱에 대응하는 이동 명령에 의해 좌측으로 순환적으로 3 비트 회전된다. 단계 (11.2)에서, 연산 코드(x)의 값이 부가된다. 단계 (11.3)에서, 구별을 위해 사용될 비트가 삭제되고, 그 다음 제 4 단계 (11.4)에서 남아있는 부분이 다시 감산된다.
이하의 구현은 대안적인 해결책이고, 여기서 연산 |은 논리 OR 연산을 나타낸다.
연산 코드들의 선택
(12.1) 계산 A & 0xfd (제 2 하위 비트 마스킹)
(12.2) 설정 A ← A + 1
(12.3) 계산 A & 0x03 (2개의 최하위 비트로부터 떨어진 모든 비트들을 마스킹)
(12.4) A를 좌측으로 3 비트 회전
(12.5) 계산 A | 0x63
단계들 (12.1) 내지 (12.3)에서의 명령들의 효과는 구별을 위해 사용될 키의 최하위 비트에 따라, 비트가 값 0을 갖는다면, 값 1이 레지스터(A)에 할당되고, 비트가 값 1을 갖는다면, 값 2가 레지스터(A)에 할당된다. 단계 (12.4)에서, 레지스터(A)의 콘텐츠는 8과의 곱에 대응하여 좌측으로 3 비트 회전된다. 단계 (12.5)에서, 연산 코드가 결정된다. 목적하는 연산 코드가 레지스터(A)에 위치한다.
알고리즘 12를 사용하여, 측면 채널 공격들에 대해 보호하기 위하여 2개의 레지스터들의 완전한 보안성 있는 치환은 이하와 같다.
(13.1) 계산 A & 0xfd (제 2 하위 비트를 마스킹)
(13.2) 설정 A = A + 1
(13.3) 계산 A & 0x03 (2개의 최하위 비트들을 제외한 모든 비트들을 마스킹)
(13.4) A를 좌측으로 3 비트 회전
(13.5) 계산 A | 0x63
(13.6) ACE 레지스터(CR1)를 C쪽으로 이동
(13.7) ACE 레지스터(CR2)를 CR1쪽으로 이동
(13.8) 보조 프로세서 ACE의 명령 레지스터 안으로 연산 코드 A를 기록
알고리즘 13에서, 알고리즘 12로부터 암호화-보조 프로세서에 대한 연산 코드를 결정하기 위한 계산 단계들은 정의된 키 비트에 의존하여 보조 프로세서의 레지스터(CR1 및 CR2)의 콘텐츠의 치환을 위하여 알고리즘 8로부터 나온 단계들과 결 합된다.
본 발명은 본 명세서에서 기술된 실시예들의 예에 제한되지 않는다.

Claims (12)

  1. 데이터의 보안성 있는 결정 방법으로서,
    제 1 프로세서에서, 키를 사용한 수학적 연산이 타원형 곡선의 한 지점에 적용되고, 상기 키는 비트들(bi)의 시퀀스를 가진 이진수로서 표현될 수 있고,
    - 제 1 명령(x)은 추가 프로세서에서 적어도 하나의 레지스터의 콘텐츠에 대한 제 1 연산(X)을 유도하고, 제 2 명령(y)은 상기 추가 프로세서에서 제 2 연산(Y)을 유도하며,
    상기 방법은:
    - 상기 두 명령들(x, y)에 따라 적어도 하나의 값(d)을 결정하는 단계;
    - 제 1 보조 변수(R) 및 제 2 보조 변수(S)를 초기화하는 단계;
    - 상기 키의 매 비트(bi)에 대하여 이하의 단계들을 순차적으로 수행하는 단계:
    (a) 제 1 레지스터에 상기 제 1 보조 변수(R)를 전달하고, 상기 제 2 보조 변수(S)를 상기 추가 프로세서의 제 2 레지스터로 전달하는 단계,
    (b) 상기 비트(bi)의 값 및 상기 적어도 하나의 값(d)에 따라,
    ○ 상기 제 1 명령(x)이 할당되거나,
    ○ 상기 제 2 명령(y)이 할당되는
    방식으로 출력 변수(A)에 명령을 할당하는 단계,
    (c) 상기 추가 프로세서의 명령 레지스터로 상기 출력 변수(A)를 전달하는 단계,
    (d) 상기 추가 프로세서에서 업데이트되는 상기 제 1 보조 변수(R) 및 제 2 보조 변수(S)를 결정하는 단계,
    - 상기 비트(bi)에 대한 단계들의 종료 이후에, 상기 제 1 보조 변수(R) 및/또는 상기 제 2 보조 변수(S)를 출력하고, 상기 제 1 보조 변수(R) 및/또는 상기 제 2 보조 변수(S)로부터 수학적 연산의 결과를 결정하는 단계;
    를 포함하는,
    데이터의 보안성 있는 결정 방법.
  2. 제1항에 있어서,
    상기 제 1 명령(x)에 할당된, 상기 추가 프로세서의 레지스터 콘텐츠 상의 상기 제 1 연산(X)은 상기 제 1 레지스터 및 상기 제 2 레지스터의 콘텐츠들의 치환을 야기하고, 상기 제 2 명령(y)에 할당된, 상기 추가 프로세서의 레지스터 콘텐츠 상의 상기 제 2 연산(Y)은 상기 제 1 레지스터 및 상기 제 2 레지스터의 콘텐츠의 치환을 야기하지 않는,
    데이터의 보안성 있는 결정 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 제 1 보조 변수(R)는 유한체에 대한 타원형 곡선 상의 일 지점을 나타 내고, 상기 초기화 단계에서 고정된 지점(P)에 할당되는,
    데이터의 보안성 있는 결정 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제 2 보조 변수(S)는 유한체에 대한 타원형 곡선 상의 일 지점을 나타내고, 상기 초기화 단계에서 값 0에 할당되는,
    데이터의 보안성 있는 결정 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 수학적 연산은 스칼라 곱 (k*P)을 포함하는,
    데이터의 보안성 있는 결정 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 추가 프로세서에서 수행되는 상기 제 1 보조 변수(R) 및 제 2 보조 변수(S)의 업데이트 단계는 이하의 단계들:
    - 제 1 산술 연산에서, 타원형 곡선 상의 2개의 지점들의 부가가 수행되는 단계,
    - 제 2 산술 연산에서, 계수 2를 사용하여 타원형 곡선 상의 일 지점의 스칼라 곱 또는 그 자체에 그것의 부가가 수행되는 단계,
    - 업데이트된 제 1 보조 변수 및 제 2 보조 변수의 결정이 상기 비트(bi)의 값에 따라, 각각의 경우에 상기 제 1 산술 연산 및 제 2 산술 연산의 결과가 상기 2개의 보조 변수들(R, S) 중 하나에 할당되는 방식으로 수행되는 단계
    를 포함하는,
    데이터의 보안성 있는 결정 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 값(d)는 상기 2개의 명령들(x, y)의 비트 표현 사이의 차이로부터 나온 차이 값인,
    데이터의 보안성 있는 결정 방법.
  8. 제7항에 있어서,
    단계 (b)에서, 상기 차이 값(d)이 현재 비트(bi)의 값에 따라 상기 제 1 명령(x)에 부가되고,
    - 순차적 프로세싱에서 상기 현재 비트(bi)를 포함하는 제 1 컴퓨터 워드(h1)가 형성되고,
    - 상기 제 1 컴퓨터 워드(h1)가 제 1 곱(m1)을 생성하기 위하여 상기 차이 값(d)과 곱해지고,
    - 제 1 중간 값이 상기 제 1 명령(x)에 대한 상기 제 1 곱(m1)의 부가로부터 결정되고,
    - 상기 제 1 컴퓨터 워드(h1)로부터, 제 2 컴퓨터 워드(h2)가 형성되고, 상기 제 2 컴퓨터 워드에서 상기 현재 비트(bi)의 위치에 있는 비트가 제로로 설정되며,
    - 상기 제 2 컴퓨터 워드(h2)가 제 2 곱(m2)을 형성하기 위하여 상기 차이 값(d)에 곱해지며,
    - 상기 출력 변수(A)가 상기 제 1 중간 결과로부터 상기 제 2 곱(m2)을 뺌으로써 결정되고,
    - 상기 제 1 명령(x) 또는 상기 제 2 명령(y)이 상기 출력 변수(A)에 할당되는,
    데이터의 보안성 있는 결정 방법.
  9. 제7항에 있어서,
    단계 (b)에서, 상기 비트(bi)의 값에 따라, 상기 차이 값(d)를 상기 제 2 명령(y)으로부터 빼고, 상기 제 1 명령(x) 또는 상기 제 2 명령(y)이 상기 출력 변수(A)에 할당되는,
    데이터의 보안성 있는 결정 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 순차적 프로세싱의 상기 현재 비트(bi)가 최하위 비트(LSB)인,
    데이터의 보안성 있는 결정 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 제 1 명령(x)은 상기 추가 프로세서의 제 3 레지스터의 콘텐츠들이 상기 추가 프로세서의 상기 제 1 레지스터로 전달되게 하고, 상기 제 2 명령(y)은 상기 제 3 레지스터의 콘텐츠들이 상기 추가 프로세서의 제 2 레지스터로 전달되게 하며,
    - 단계 (a) 이후에, 추가 단계에서, 상기 제 1 레지스터의 콘텐츠들을 상기 제 3 레지스터로 전달하라는 명령 및 상기 제 2 레지스터의 콘텐츠들을 상기 제 1 레지스터로 전달하라는 명령이 상기 추가 프로세서의 명령 레지스터로 전달되는,
    데이터의 보안성 있는 결정 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 제 1 명령(x) 및 상기 제 2 명령(y)은 동일한 해밍 무게를 갖는,
    데이터의 보안성 있는 결정 방법.
KR1020087026125A 2006-03-28 2006-12-19 데이터의 보안성 있는 결정을 위한 방법 KR101338016B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102006014353A DE102006014353B4 (de) 2006-03-28 2006-03-28 Verfahren zum sicheren Ermitteln von Daten
DE102006014353.1 2006-03-28
PCT/EP2006/069917 WO2007112791A1 (de) 2006-03-28 2006-12-19 Verfahren zum sicheren ermitteln von daten

Publications (2)

Publication Number Publication Date
KR20080112333A true KR20080112333A (ko) 2008-12-24
KR101338016B1 KR101338016B1 (ko) 2013-12-09

Family

ID=37913611

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087026125A KR101338016B1 (ko) 2006-03-28 2006-12-19 데이터의 보안성 있는 결정을 위한 방법

Country Status (8)

Country Link
US (1) US8369514B2 (ko)
EP (1) EP1999884B1 (ko)
JP (1) JP4909403B2 (ko)
KR (1) KR101338016B1 (ko)
CN (1) CN101405988B (ko)
DE (1) DE102006014353B4 (ko)
ES (1) ES2379100T3 (ko)
WO (1) WO2007112791A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621212B2 (en) 2009-12-22 2013-12-31 Infineon Technologies Ag Systems and methods for cryptographically enhanced automatic blacklist management and enforcement
US8611540B2 (en) * 2010-06-23 2013-12-17 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
US9400636B2 (en) 2011-02-11 2016-07-26 Infineon Technologies Ag Apparatus and method for calculating a result in a scalar multiplication
US8630411B2 (en) 2011-02-17 2014-01-14 Infineon Technologies Ag Systems and methods for device and data authentication
DE102011006000B4 (de) 2011-03-23 2015-01-15 Infineon Technologies Ag Signaturaktualisierung durch Codetransformation
US9087192B2 (en) * 2013-09-10 2015-07-21 Infineon Technologies Ag Electronic circuit and method for monitoring a data processing
FR3017476B1 (fr) * 2014-02-12 2017-06-09 Secure-Ic Sas Procede de contremesure pour un composant electronique mettant en œuvre un algorithme de cryptographie sur une courbe elliptique
WO2016053792A1 (en) 2014-10-03 2016-04-07 Cryptography Research, Inc. Exponent splitting for cryptographic operations
US9735953B2 (en) * 2015-03-06 2017-08-15 Qualcomm Incorporated Side channel analysis resistant architecture
FR3040511B1 (fr) * 2015-08-27 2017-09-08 Stmicroelectronics Rousset Verification de la sensibilite d'un circuit electronique executant un calcul d'exponentiation modulaire
FR3040512B1 (fr) 2015-08-27 2017-09-08 Stmicroelectronics Rousset Protection d'un calcul d'exponentiation modulaire
US20170192688A1 (en) 2015-12-30 2017-07-06 International Business Machines Corporation Lazy deletion of vaults in packed slice storage (pss) and zone slice storage (zss)

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0455756A (ja) * 1990-06-26 1992-02-24 Nippon Steel Corp 線材の超音波探傷装置
JPH0515526A (ja) * 1991-07-15 1993-01-26 Mitsubishi Electric Corp X線シミユレータ画像処理装置
DE69930334T2 (de) * 1998-01-28 2006-11-09 Hitachi, Ltd. IC-Karte ausgerüstet mit einer Verarbeitungsanlage für Elliptische-Kurven-Verschlüsselung
CA2258338C (en) * 1999-01-11 2009-02-24 Certicom Corp. Method and apparatus for minimizing differential power attacks on processors
US7092523B2 (en) * 1999-01-11 2006-08-15 Certicom Corp. Method and apparatus for minimizing differential power attacks on processors
DE10061998A1 (de) * 2000-12-13 2002-07-18 Infineon Technologies Ag Kryptographieprozessor
CN1380766A (zh) * 2001-04-16 2002-11-20 南相浩 密钥交换与密钥传递方案
DE10156708B4 (de) * 2001-11-19 2005-09-29 Infineon Technologies Ag Verfahren und Vorrichtung zum Multiplizieren und Verfahren und Vorrichtung zum Addieren auf einer elliptischen Kurve
JP4067818B2 (ja) * 2001-12-10 2008-03-26 富士通株式会社 楕円曲線暗号装置、楕円曲線暗号プログラム及び楕円曲線暗号の演算方法
DE10202700A1 (de) * 2002-01-24 2003-08-07 Infineon Technologies Ag Vorrichtung und Verfahren zum Erzeugen eines Befehlscodes
EP1548687B1 (en) * 2002-12-18 2013-01-09 Fujitsu Limited Tamper-resistant elliptical curve encryption using secret key
JP4284320B2 (ja) 2003-08-06 2009-06-24 富士通株式会社 楕円曲線暗号装置,楕円曲線暗号方法および楕円曲線暗号プログラム
JP2006078943A (ja) * 2004-09-13 2006-03-23 Mitsuko Miyaji べき演算装置
KR20060081847A (ko) * 2005-01-10 2006-07-13 삼성전자주식회사 비밀키를 보호하는 스마트 카드 및 그것의 방법
CN100536390C (zh) * 2005-05-18 2009-09-02 上海迪申电子科技有限责任公司 一种椭圆曲线密码协处理器
DE102006006057B4 (de) * 2006-02-09 2007-12-27 Infineon Technologies Ag Datenverschlüsselungsvorrichtung und Verfahren zum Verschlüsseln von Daten
US7864951B2 (en) * 2006-07-10 2011-01-04 King Fahd University Of Petroleum And Minerals Scalar multiplication method with inherent countermeasures
DE102007001070B3 (de) * 2006-09-29 2008-04-30 Siemens Ag Verfahren zum verschlüsselten Datenausgleich eines Systems mit mindestens einem Datenträger und einem Lesegerät
US7961872B2 (en) * 2006-12-04 2011-06-14 Lsi Corporation Flexible hardware architecture for ECC/HECC based cryptography
US20080222417A1 (en) * 2007-03-06 2008-09-11 James Downes Method, System, And Apparatus For Nested Security Access/Authentication With Media Initiation
US20120079080A1 (en) * 2009-02-11 2012-03-29 Shervin Pishevar Apparatuses, Methods and Systems For An Interactive Proximity Display Tether With Remote Co-Play
JP5446678B2 (ja) * 2009-09-29 2014-03-19 富士通株式会社 楕円曲線暗号演算装置及び方法
US8775794B2 (en) * 2010-11-15 2014-07-08 Jpmorgan Chase Bank, N.A. System and method for end to end encryption

Also Published As

Publication number Publication date
ES2379100T3 (es) 2012-04-20
EP1999884A1 (de) 2008-12-10
EP1999884B1 (de) 2012-02-22
KR101338016B1 (ko) 2013-12-09
WO2007112791A1 (de) 2007-10-11
US8369514B2 (en) 2013-02-05
JP2009531725A (ja) 2009-09-03
DE102006014353B4 (de) 2007-11-22
JP4909403B2 (ja) 2012-04-04
CN101405988A (zh) 2009-04-08
DE102006014353A1 (de) 2007-10-04
CN101405988B (zh) 2012-03-21
US20100172490A1 (en) 2010-07-08

Similar Documents

Publication Publication Date Title
KR101338016B1 (ko) 데이터의 보안성 있는 결정을 위한 방법
AU762650B2 (en) Device, program or system for processing secret information
CN102638341B (zh) 用于计算标量乘法的结果的设备和方法
US8402287B2 (en) Protection against side channel attacks
EP2211265B1 (en) Elliptic curve arithmetic processing unit and elliptic curve arithmetic processing program and method
US10354063B2 (en) Protection of a modular calculation
EP3930252A1 (en) Countermeasures for side-channel attacks on protected sign and key exchange operations
KR20090006176A (ko) 평문 판정 방법
WO2009122461A1 (ja) 電力解析攻撃への対策機能を備えた暗号化方法
CN113273131A (zh) 使用共享的份额的计算设备
US10977365B2 (en) Protection of an iterative calculation against horizontal attacks
Schmidt et al. Combined implementation attack resistant exponentiation
CN111480140B (zh) 计算设备和方法
KR20080012634A (ko) 고속 몽고메리 전력 래더 알고리즘에서 사용되는 폴트 검출동작을 구현하기 위한 이진 유한 영역에서의 포인트 덧셈방법 및 덧셈 연산 장치
Aljuffri et al. Multi-bit blinding: A countermeasure for RSA against side channel attacks
US7174016B2 (en) Modular exponentiation algorithm in an electronic component using a public key encryption algorithm
US11018865B2 (en) Countermeasures and optimizations in elliptic curve cryptographic schemes
US20060056619A1 (en) Method for universal calculation applied to points of an elliptic curve
EP4207672B1 (en) Dummy partial multiplication of zero-operands as a low-cost means for reducing the success of sca attacks against ecc
US20240111908A1 (en) Cryptographic hardware accelerator with dummy block addressing for protection against side channel attacks
EP4372548A1 (en) Protecting cryptographic operations againt horizontal side-channel analysis attacks
AU2003252789B2 (en) Processing apparatus, program, or system of secret information
JP2008224830A (ja) 耐タンパーベキ乗演算方法
JP2014145958A (ja) 半導体装置
Han et al. Enhanced exhaustive search attack on randomized BSD type countermeasure

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
LAPS Lapse due to unpaid annual fee