KR20090004625A - 공개 키 암호화 연산의 순서 변경 방법 - Google Patents

공개 키 암호화 연산의 순서 변경 방법 Download PDF

Info

Publication number
KR20090004625A
KR20090004625A KR1020080062871A KR20080062871A KR20090004625A KR 20090004625 A KR20090004625 A KR 20090004625A KR 1020080062871 A KR1020080062871 A KR 1020080062871A KR 20080062871 A KR20080062871 A KR 20080062871A KR 20090004625 A KR20090004625 A KR 20090004625A
Authority
KR
South Korea
Prior art keywords
power
order
permutation
message
key
Prior art date
Application number
KR1020080062871A
Other languages
English (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 삼성전자주식회사
Publication of KR20090004625A publication Critical patent/KR20090004625A/ko

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/723Modular exponentiation
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • 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/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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
    • 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/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7252Randomisation as countermeasure against side channel attacks of operation order, e.g. starting to treat the exponent at a random place, or in a randomly chosen direction

Landscapes

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

Abstract

본 발명에 있어서, 메시지의 암호화 변형은 추선 테이블 초기화 과정을 수행함으로써 실행된다. 이는 파워의 순서의 순열을 생성하고, 이후 데이터 구조를 채우기 위하여 키의 일부분 및 순열화된 파워의 순서를 이용하여 테이블 초기화를 수행함으로써 구현된다.
RSA, 공개키, 개인키

Description

공개 키 암호화 연산의 순서 변경 방법{Changing the order of public key cryptographic computations}
본 발명은 공개키 암호화와 관련된다. 특히, 본 발명은 공개키 암호화 연산의 순서를 변경하는 방법과 관련된다.
공개키 암호 체계(cryptosystem)에서는, 사용자에게 공개키(public key) 및 개인키(private key)와 같은 암호화 키 쌍이 제공된다. 이러한 키들 각각은 하나 또는 그 이상의 값이나 파라미터들을 갖는다. 공개 키가 널리 배포될 수 있는 반면, 개인 키는 보안이 유지된다. 실질적으로 공개 키로부터 개인 키를 도출할 수는 없지만, 키들은 수학적으로 연관된다. 공개키로 암호화된 메시지는 오직 대응하는 개인키로만 복호화 될 수 있다. 유사하게, 개인키에 의하여 시그널링 된 메시지는 이 개인키에 상응하는 공개키를 사용하여 도출될 수 있다.
가장 널리 사용되는 공개 키 암호화의 형식 중 하나는 RSA이다. RSA에서의 주된 연산은 모듈로 멱승(modular exponentiation)이다. 멱승은 예를 들어 P=Md(mod N)일 수 있다. 여기에서 M은 암호화 및/또는 시그널링 될 메시지이며, d는 개인 키 의 구성 요소인 개인 지수(private exponent)이며, N은 공개 키의 구성 요소인 공개 모듈러스(public modulus)이다. N은 일반적으로 개인 키의 구성 요소인 두개의 큰 소수(prime) p 및 q의 곱이다. 악의적인 누군가가 d의 값을 획득하면, 그는 키의 소유자인 체 할 수 있으며, 암호화 된 메시지를 복호화 할 수 있다. 또한, Md(mod p)와 같은 다른 모듈로 멱승이 사용될 수 있다. 이 때, p는 또한 공개 모듈러스 N의 요소이다.
효과적인 RSA의 구현예에서는 일반적으로 모듈러스 내의 입력 메시지의 파워를 계산할 것을 요구하는 특정한 멱승 알고리즘(exponentiation algorithm)을 사용한다. 이 후, 멱승 과정이 진행되는 동안 이러한 파워들이 모듈러 연산의 피연산자(operand)로써 사용된다.
RSA에서 사용되는 일반적인 하나의 기술은 몽고메리 곱셈(montgomery multiplication)이다. 몽고메리 곱셈은 피연산자의 값에 의존하는 조건부 뺄셈 단계(conditional substraction step)와 함께 다양한 모듈로 함수를 포함한다. 이는 "별도의 공제"(extra reduction) 단계로써 알려진다. 그러나, 이와 같은 별도의 공제 단계가 존재하기 때문에 지수의 값을 연역하는데 사용될 통계학적 분석이 가능할 수도 있다. 이것은 RSA 구현을 사용하는 소프트웨어가 공격에 취약한 상태가 되게 한다.
필요한 것은 이러한 안전 상의 위험을 제거하기 위한 해결책이다.
상기의 문제점을 해결하기 위한 본 발명의 목적은 효과적으로 보안이 유지되도록하는 메시지 암호화 수행 방법 및 장치를 제공하는 것이다.
상기의 목적을 달성하기 위한 본 발명의 하나의 특징은, 파워의 순서(order)의 순열(permutation)을 생성하는 단계; 및 데이터 구조를 채우기(populate) 위하여 키의 일부분 및 상기 순열화된 파워의 순서를 이용하여 테이블 초기화를 수행하는 단계를 포함하는 것이다.
메시지의 순서를 순열화하고 키의 일부분 및 순열화된 파워의 순서를 이용하여 테이블의 초기화 과정을 수행함으로써 안전상의 위험을 제거하는 효과가 있다.
참조는 발명을 전달하기 위하여 발명자에 의하여 구현된 최상의 실시예를 포함하는 발명의 실시예들의 자세한 설명을 제공할 것이다. 이러한 특정한 실시예들의 일 예는 첨부되는 도면에서 서술된다. 본 발명이 이와 같은 특정 실시예들을 결합하여 서술되지만, 본 발명을 서술하는 실시예들로 한정하는 것은 아니다. 오히려, 그것은 첨부되는 청구항에 의하여 정의되는 것과 같은 본 발명의 범위 및 기술적 사상에 포함될 수 있는 대체, 수정 및 등가물 까지를 포함하는 것이다. 다음에 존재하는 상세한 설명에서, 특정한 세부 사항은 본 발명을 완벽하게 이해하도록 하 기 위한 것이다. 본 발명은 상세한 설명의 일부 또는 전부를 제외하고 실시할 수도 있다. 또한 널리 알려진 특징이 발명을 모호하게 하는 불필요함을 피하기 위하여 상세한 설명에서 서술되지 않을 수도 있다.
본 발명에 따른, 구성 요소, 프로세스 단계, 및/또는 데이터 구조는 운영 체재(Operating System), 프로그램 언어, 연산 플랫폼, 컴퓨터 프로그램들 및/또는 일반적인 목적의 기계의 다양한 형식을 이용하여 구현될 수 있다. 또한, 본 발명이 속하는 기술분야에서 통상의 지식을 가진자는 하드웨어에 내장된 장치(hardwired device), FPGA(랴딩 programmable gate arrays), ASIC(application specific integrated circuit) 또는 이와 같은 비교적 일반적이지 않은 용도의 장치에서도 여기에서 개시되는 발명의 개념의 범위 및 사상으로부터 벗어나지 않은채 사용될 수 있음을 알 것이다.
본 발명의 일 실시예에서, 테이블 초기화 과정에서의 연산이 동적으로(dynamically) 변경된다. 테이블 초기화 과정의 시작 스테이지 동안 시스템은 랜덤, 의사 랜덤(pseudo-random), 또는 스크램블된(scrambled) 파워의 순열(permutation)을 생성할 것이다. 이 후, 시스템은 순열내의 순서(order)에 따라 입력 메시지 M의 파워를 계산할 수 있다.
메시지, 지수 및 모듈러스를 각각 나타내는 M,d 및 N이 입력으로 주어지며, 대표적인 RSA 구현예에서는 일반적으로 다음의 방법에 따라 모듈로 멱승(Md mod N)을 수행한다.
1. 테이블 초기화 과정(Table initial phase)
이 과정에서 M의 파워는 mod N에 의해 계산되고, 결과가 테이블에 저장된다. 더 정확하게는 다음의 연산이 수행된다.
e=(M mod N), e2=(M2 mod N), e3=(M3 mod N), ... , et=(Mt mod N)
여기에서, t의 값은 구현예에서 사용되는 정밀한 지수(exponentiation) 프로세스에 의존한다.
2. 멱승 과정(exponentiation phase)
이 과정에서, 지수 d는 작은 윈도우(window) 및 모듈로 곱셈의 시퀀스로 파싱되며, 이러한 윈도우의 값에 기초하여 제곱 연산(square operation)이 수행된다.
가장 널리 사용되는 오픈 소스 암호화 라이브러리(open source cryptographic library)인 OpenSSL의 RSA 구현 예에서는 사용자의 선택에 의존하는 두개의 상이한 멱승 알고리즘(슬라이딩 윈도우 및 고정 윈도우)(sliding window and fixed window)을 채용한다. 고정 윈도우 멱승 방법에서, n 비트 지수 d가 radix-2b의 형식이 될 것으로 생각된다. 즉, d=(d0,d1,....,dk-1)2b이며, 여기서 n=k*b이다. 설명의 편의를 위하여, 고정 윈도우 구현을 사용하여 본 발명의 예를 설명할 것이다. 그러나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진자는 본 발명이 어떠한 타입의 지수 프로세스 및/또는 공개 키 암호화 구현예를 이용하여서도 구현될 수 있음을 알 것이다.
다음은 고정 윈도우 멱승 방법을 위한 의사코드(pseudocode)의 일 예이다.
e1=M
for i from 2 to 2b -1
ei=ei-1 * M(mod N)
S=ed0
for i from 1 to k-1
S=S^(2b)(mod N)
if di≠0 then
S=S*edi(mod N)
return S
여기에서 보는 바와 같이, 동일한 ei값이 테이블 초기화 과정(제 1 for 루프)동안의 피연산자로써 사용되고, 지수 과정(제 2 for 루프)동안의 피연산자로써 사용된다. 본 발명의 구현예에 따라서는, 전체 프로세스가 여전히 동일한 정확한 최종 결과를 연산하지만, 각각의 단계에서는 상이한 곱셈 피연산자가 사용될 수도 있다.
본 발명의 일 실시예에서는, 테이블 초기화 과정의 연산은 순열 P에 따라 동적으로 변한다. 테이블 초기화 과정의 시작 스테이지 동안, 시스템이 테이블 T를 순열화(permute)하고, T'=P(T)를 계산할 수 있다. 이 후, M의 파워가 T'에서 지시되는 순서에 따라 계산된다.
예를 들면, 윈도우 크기가 3이며 테이블내에 8개의 엔트리들이 존재한다. T를 t개의 엘리먼트를 갖는 테이블이라고 가정하자. Tt={v0,v1,......,vt}이며, vi=Mi mod N이다. 처음의 두 개의 엔트리들(v0,v1)은 일반적으로 연산을 필요치 않기 때문에 전형적인 연산은 이러한 순서내에서 Ti={v2,v3,v4,v5,v6,v7}를 연산하는 것만을 포함할 수 있다. 본 발명의 일 실시예에서 시스템은 먼저 T를 예를 들면 Tt={v5,v3,v2,v6,v4,v7}와 같은 순열로 순열화(permute)한다. 이 후 테이블은 이 순서에 따라 연산될 수 있다.
바람직하게는, 순열이 공격자가 예측하기 어려워야 한다. 이것은 예를 들면 랜덤 순열 또는 유사 랜덤 순열을 생성함으로써 수행될 수 있다. 순열은 각각의 테이블 초기화 과정의 실행 또는 각각의 암호화 프로세스 이후에 변경될 수 있다. 대안적으로, 변경되기 전에 시간의 주기 또는 연산, 단계, 프로세스들의 개수 동안 순열이 고정될 수 있다.
예측하는 것이 어렵다는 것은 랜덤, 유사 랜덤 또는 본 발명의 기술 분야에서 통상의 지식을 가진자가 예측하는 것이 어려운 다른 숫자를 의미하는 것으로 해석될 수 있다. 이러한 숫자의 목적은 메시지를 가로채는 자(이하 인터셉터)가 암호화 변환을 수행하는 것이 어렵도록 하는 것이다. 따라서, 숫자의 목적은 메시지의 인터셉터(interceptor)가 암호화 변환을 수행하는 것을 어렵도록 하기 위한 것일 수 있다. 이와 같이 목표는 인터셉터가 예측하기 어려운 순열을 만들고, 일반적인 기술을 갖는 인터셉터의 수준에서 계산될 그러한 순열을 예측하는 것이 힘들도록 하는 것이다.
도 1은 본 발명의 일 실시예에 따른 메시지의 암호화 변환을 수행하는 방법을 나타내는 흐름도이다. 이 방법의 어떤 실시예에서는, 상술한 세부적인 구현예가 사용될 수 있을 것이다. 100에서, 파워의 순서의 순열화(permutation)가 실행된다. 102에서, 데이터 구조를 채우기(populate)위해 키의 일부 및 순열화된 순서를 이용하여 테이블 초기화 과정을 수행한다. 이것은 파워의 순열화된 순서대로 키의 일부분의 모듈로에 의해 메시지의 파워를 계산하고, 계산된 파워들을 데이터 구조에 저장하는 것을 포함할 수 있다.
104에서, 결과를 생성하는 멱승 과정이 수행될 수 있다. 106에서, 멱승 과정의 결과가 키의 일부분의 모듈로에 의해 리듀스드(reduced)될 수 있다.
도 2는 본 발명의 일 실시예에 따른 메시지의 암호화 변환을 수행하는 장치를 나타내는 블록도이다. 이 방법의 어떤 실시예에서는, 상술한 세부적인 구현예가 사용될 수 있을 것이다. 메모리(202)와 연결된 파워 순서 순열화 생성부(order of power permutation creation)(200)는 파워의 순서의 순열화를 수행할 수 있다. 파워 순서 순열화 생성부(200) 및 메모리(202)와 연결된 테이블 초기화부(204)는 데이터 구조를 채우기 위해 키의 일부분 및 순열화된 파워의 순서를 이용하여 테이블 초기화 과정을 수행할 수 있다. 이것은 파워의 순열화된 순서대로 키의 일부분의 모듈로에 의해 메시지의 파워를 계산하고, 계산된 파워들을 데이터 구조에 저장하는 것을 포함할 수 있다.
메모리(202)와 연결된 멱승부(206)는 결과를 생성하는 멱승 과정을 수행할 수 있다. 메모리(202)와 연결된 멱승 결과 리듀서(208)는 멱승 단계의 결과를 키의 일부분의 모듈로에 의해 리듀싱(reduce)할 수 있다.
여기까지 특정 실시예를 참고하여 본 발명의 특징이 보여지고 설명되었으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진자는 본 발명의 범위 및 기술적 사상을 벗어나지 않고 개시된 실시예의 형식 및 설명이 변경될 수 있음을 이해할 것이다. 또한, 본 발명의 다양한 이점, 특징 및 대상이 다양한 실시예를 참고하여 여기에서 설명되었지만, 본 발명의 범위가 참고된 그러한 이점, 특징 및 대상에 한정될 수 없음을 이해할 것이다. 오히려, 본 발명의 범위는 첨부되는 청구항을 참고하여 결정되어야 할 것이다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 메시지의 암호화 변환을 수행하는 방법에 관한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 메시지의 암호화 변환을 수행하는 장치에 관한 블록도이다.

Claims (20)

  1. 메시지의 암호화 변환을 수행하는 방법에 있어서,
    파워의 순서(order)의 순열(permutation)을 생성하는 단계; 및
    데이터 구조를 채우기(populate) 위하여 키의 일부분 및 상기 순열화된 파워의 순서를 이용하여 테이블 초기화를 수행하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1항에 있어서, 상기 테이블 초기화를 수행하는 단계는,
    상기 순열화된 파워의 순서대로 키의 일부분의 모듈로에 의해 메시지의 파워를 계산하는 단계; 및
    상기 계산된 파워를 데이터 구조에 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제 1항에 있어서, 상기 데이터 구조는,
    테이블인 것을 특징으로 하는 방법.
  4. 제 1항에 있어서,
    상기 메시지를 디스플레이부에 디스플레이 하는 단계;
    상기 방법이 진행되는 동안에 계산된 중간 결과 및 최종 결과 중 적어도 하 나를 상기 디스플레이부에 디스플레이 하는 단계; 및
    상기 방법이 진행되는 동안에 계산된 중간 결과 및 최종 결과 중 적어도 하나를 어플리케이션에 전달하는 단계 중 적어도 하나의 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제 1항에 있어서, 상기 메시지는,
    텍스트(textual) 메시지, 숫자(numerical) 값, 이진 파일(binary file)의 일부(portion), 비트들의 정렬된 시퀀스, 비디오의 일부, 오디오 파일의 일부 및 디지털 인증서(certificate) 중 적어도 하나의 결합인 것을 특징으로 하는 방법.
  6. 제 1항에 있어서,
    결과를 생성하는 멱승(exponentiation) 과정을 실행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 제 6항에 있어서,
    키의 일부분의 모듈로에 의해 상기 멱승 과정의 결과를 리듀싱(reducing)하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 제 1항에 있어서, 상기 변경은,
    실질적인(substantially) 랜덤 순열(random permutation)인 것을 특징으로 하는 방법.
  9. 메시지의 암호화 변환을 수행하는 장치에 있어서,
    메모리;
    상기 메모리와 연결된 파워 순서 순열화 생성부(order of power permutation creator); 및
    상기 메모리 및 상기 파워 순서 순열화 생성부와 연결된 테이블 초기화부를 포함하는 것을 특징으로 하는 장치
  10. 제 9항에 있어서,
    상기 메모리와 연결된 멱승부(exponentiator)를 더 포함하는 것을 특징으로 하는 장치.
  11. 제 10항에 있어서,
    상기 메모리와 연결된 멱승 결과 리듀서(exponentiation result reducer)를 더 포함하는 것을 특징으로 하는 장치.
  12. 메시지의 암호화 변환을 수행하는 장치에 있어서,
    파워의 순서의 순열을 생성하는 수단; 및
    데이터 구조를 채우기 위하여 키의 일부분 및 상기 순열화된 파워의 순서를 이용하여 테이블 초기화 과정를 수행하는 수단을 포함하는 것을 특징으로 하는 장치.
  13. 제 12항에 있어서, 상기 테이블 초기화 과정을 수행하는 수단은,
    파워의 순열화된 순서대로 키의 일부분의 모듈로에 의해 상기 메시지의 파워를 계산하는 수단; 및
    데이터 구조내에 상기 계산된 파워를 저장하는 수단을 포함하는 것을 특징으로 하는 장치.
  14. 제 12항에 있어서, 상기 데이터 구조는,
    테이블인 것을 특징으로 하는 장치.
  15. 제 12항에 있어서,
    상기 메시지를 디스플레이부에 디스플레이 하는 단계;
    상기 방법이 진행되는 동안에 계산된 중간 결과 및 최종 결과 중 적어도 하나를 상기 디스플레이부에 디스플레이 하는 단계; 및
    상기 방법이 진행되는 동안에 계산된 중간 결과 및 최종 결과 중 적어도 하나를 어플리케이션에 전달하는 단계 중 적어도 하나의 단계를 수행하는 수단을 더 포함하는 것을 특징으로 하는 장치.
  16. 제 12항에 있어서, 상기 메시지는,
    텍스트(textual) 메시지, 숫자(numerical) 값, 이진 파일(binary file)의 일부(portion), 비트들의 정렬된 시퀀스, 비디오의 일부, 오디오 파일의 일부 및 디지털 인증서(certificate) 중 적어도 하나의 결합인 것을 특징으로 장치.
  17. 제 12항에 있어서,
    결과를 생성하는 멱승(exponentiation) 과정을 실행하는 수단을 더 포함하는 것을 특징으로 하는 장치.
  18. 제 17항에 있어서,
    키의 일부분의 모듈로에 의해 상기 멱승 과정의 결과를 리듀싱(reducing)하는 수단을 더 포함하는 것을 특징으로 하는 장치.
  19. 제 12항에 있어서, 상기 순열은,
    실질적인(substantially) 랜덤 순열(random permutation)인 것을 특징으로 하는 장치.
  20. 파워의 순서의 순열을 생성하는 단계; 및
    데이터 구조를 채우기 위하여 키의 일부분 및 상기 순열화된 파워의 순서를 이용하여 테이블 초기화 과정을 수행하는 단계를 포함하는 메시지의 암호화 변형 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체.
KR1020080062871A 2007-06-28 2008-06-30 공개 키 암호화 연산의 순서 변경 방법 KR20090004625A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US94690307P 2007-06-28 2007-06-28
US60/946,903 2007-06-28
US11/849,757 2007-09-04
US11/849,757 US7974409B2 (en) 2007-06-28 2007-09-04 Changing the order of public key cryptographic computations

Publications (1)

Publication Number Publication Date
KR20090004625A true KR20090004625A (ko) 2009-01-12

Family

ID=40160544

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080062871A KR20090004625A (ko) 2007-06-28 2008-06-30 공개 키 암호화 연산의 순서 변경 방법

Country Status (2)

Country Link
US (1) US7974409B2 (ko)
KR (1) KR20090004625A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015096167A1 (en) 2013-12-28 2015-07-02 Intel Corporation Rsa algorithm acceleration processors, methods, systems, and instructions
CN108242994B (zh) * 2016-12-26 2021-08-13 阿里巴巴集团控股有限公司 密钥的处理方法和装置
JP6617375B2 (ja) * 2018-05-28 2019-12-11 大日本印刷株式会社 データ変換装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724425A (en) * 1994-06-10 1998-03-03 Sun Microsystems, Inc. Method and apparatus for enhancing software security and distributing software
US5991415A (en) 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks
ATE325478T1 (de) * 1998-01-02 2006-06-15 Cryptography Res Inc Leckresistentes kryptographisches verfahren und vorrichtung
WO1999063696A1 (en) 1998-06-03 1999-12-09 Cryptography Research, Inc. Using unpredictable information to minimize leakage from smartcards and other cryptosystems
WO1999067919A2 (en) * 1998-06-03 1999-12-29 Cryptography Research, Inc. Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
US6804782B1 (en) 1999-06-11 2004-10-12 General Instrument Corporation Countermeasure to power attack and timing attack on cryptographic operations
US7162032B2 (en) * 1999-12-20 2007-01-09 Telenor Asa Encryption of programs represented as polynomial mappings and their computations
US7000111B1 (en) 2000-11-07 2006-02-14 Ericsson Inc. Method for masking secret multiplicands
EP1449045A2 (en) * 2001-11-14 2004-08-25 International Business Machines Corporation Device and method with reduced information leakage
US7194633B2 (en) * 2001-11-14 2007-03-20 International Business Machines Corporation Device and method with reduced information leakage
US7221757B2 (en) * 2002-08-15 2007-05-22 Opentv, Inc. Method and system for accelerated data encryption

Also Published As

Publication number Publication date
US20090003606A1 (en) 2009-01-01
US7974409B2 (en) 2011-07-05

Similar Documents

Publication Publication Date Title
TWI448963B (zh) 用於密碼系統之以中國餘數定理為基礎之計算方法
JP4086503B2 (ja) 暗号演算装置及び方法並びにプログラム
CN109791517B (zh) 保护并行乘法运算免受外部监测攻击
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
CN107040362A (zh) 模乘设备和方法
JP2001337599A (ja) 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体
US8548161B2 (en) Crytographically transforming data text
JP2011510578A (ja) 非対称暗号のための防護方法およびデバイス
JP2019515353A (ja) 暗号化べき乗アルゴリズムへのセーフ−エラーフォールトインジェクション攻撃に対する対策
KR100442218B1 (ko) 몽고메리의 알고리즘을 이용한 멱승 잉여 연산기
CN110048840B (zh) 一种基于rsa算法的信息处理方法、系统及相关组件
US7903814B2 (en) Enhancing the security of public key cryptosystem implementations
Dubeuf et al. ECDSA passive attacks, leakage sources, and common design mistakes
KR20090004625A (ko) 공개 키 암호화 연산의 순서 변경 방법
US6609141B1 (en) Method of performing modular inversion
KR101472800B1 (ko) 공개키 암호화 연산에서의 윈도우의 크기를 변경하는 방법
KR101344402B1 (ko) Rsa 서명 방법 및 장치
JP2010139544A (ja) 剰余演算装置、及び剰余演算方法
JP2007187908A (ja) サイドチャネル攻撃に耐性を有するモジュラーべき乗算計算装置及びモジュラーべき乗算計算方法
KR101440680B1 (ko) 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치
JP2008525835A (ja) 暗号計算を実行するための方法及び装置
JP2005195829A5 (ko)
KR101112570B1 (ko) 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체
JP2012242539A (ja) セキュリティシステム及びマイクロコンピュータ
JP5818768B2 (ja) マスク生成装置、情報処理装置、及びその方法、プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application