KR20060081847A - 비밀키를 보호하는 스마트 카드 및 그것의 방법 - Google Patents

비밀키를 보호하는 스마트 카드 및 그것의 방법 Download PDF

Info

Publication number
KR20060081847A
KR20060081847A KR1020050002281A KR20050002281A KR20060081847A KR 20060081847 A KR20060081847 A KR 20060081847A KR 1020050002281 A KR1020050002281 A KR 1020050002281A KR 20050002281 A KR20050002281 A KR 20050002281A KR 20060081847 A KR20060081847 A KR 20060081847A
Authority
KR
South Korea
Prior art keywords
secret key
random number
number sequence
cipher text
smart card
Prior art date
Application number
KR1020050002281A
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 삼성전자주식회사
Priority to KR1020050002281A priority Critical patent/KR20060081847A/ko
Priority to FR0600156A priority patent/FR2880750A1/fr
Priority to US11/328,120 priority patent/US20060153372A1/en
Publication of KR20060081847A publication Critical patent/KR20060081847A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/073Special arrangements for circuits, e.g. for protecting identification code in memory
    • G06K19/07309Means for preventing undesired reading or writing from or onto record carriers
    • G06K19/07363Means for preventing undesired reading or writing from or onto record carriers by preventing analysis of the circuit, e.g. dynamic or static power analysis or current analysis
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H33/00Other toys
    • A63H33/22Optical, colour, or shadow toys
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H33/00Other toys
    • A63H33/40Windmills; Other toys actuated by air currents
    • 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]
    • 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
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • 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
    • H04L2209/127Trusted platform modules [TPM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 스마트 카드의 연산방법에 있어서, 1)암호문과 비밀키를 입력받는 단계와 2)비밀키의 비트 단위 연산 대신 사용할 테이블의 생성 단계와 3)하나 또는 그 이상의 임의의 난수열을 입력받는 단계, 4)상기 비밀키와 상기 난수열에 대해 배타적 이진 가산 연산을 수행하는 단계와 그리고 5)상기 연산된 결과값, 난수열, 단계 2)에서 생성한 테이블을 사용하여 상기 암호문을 해독하는 단계를 포함하는 것을 특징으로 한다.
스마트 카드, 비밀키, 암호문, 해독, 난수열

Description

비밀키를 보호하는 스마트 카드 및 그것의 방법{Smart card for protecting secret key and method thereof}
도 1은 본 발명의 바람직한 실시예에 따른 스마트 카드를 보여주는 블록도.
도 2는 본 발명의 바람직한 실시예에 따른 중앙처리장치에서 암호문과 비밀키를 이용한 연산 과정을 보여주는 흐름도.
도 3은 암호문과 비밀키를 이용한 연산 과정을 구체화한 흐름도.
* 도면의 주요 부분에 대한 부호의 설명 *
100 : 스마트 카드 10 : 중앙처리장치
20 : 유사난수 발생기 30 : 입출력 인터페이스부
40 : 롬 50 : 램
60 : 데이터 버스
본 발명은 스마트 카드에 관한 것으로, 좀 더 구체적으로는 비밀키가 차분전력분석과 같은 외부 공격에 노출되는 것을 방지할 수 있는 스마트 카드에 관한 것이다.
일반적으로 디지털 시스템에 있어서 보안은 암호 알고리즘을 주로 사용하는 비밀키의 안전성에 기반을 두어 유지해 왔다. 그러나 비밀키는 암호 알고리즘의 설계에서 고려되지 못한 부가적으로 생기는 정보의 누출로 인한 공격에 취약함을 가질 수 있다. 특히 스마트 카드의 동작 시 비밀키에 대한 연산이 빈번히 일어나므로 이 비밀정보의 누출이 시스템의 안전에 큰 영향을 줄 수 있다. 이러한 누출된 정보를 부채널 정보(Side Channel Information)라고 하고, 이를 이용한 공격을 부채널 공격(Side Channel Attack)이라고 한다. 부채널에 의한 공격은 크게 시간공격(Timing Attack), 오류주입공격(Fault Insertion Attack), 전력분석공격(Power Analysis Attack) 등으로 나뉜다. 시간공격(Timing Attack)은 스마트 카드의 암호 알고리즘이 비밀키와 관련된 정보를 처리하는데 걸리는 시간과 그렇지 않은 데이터를 처리하는데 걸리는 시간 사이의 차를 분석해 비밀키를 알아내는 방법이다. 오류주입공격(Fault Insertion Attack)은 스마트 카드에 고의로 잘못된 정보를 입력하고 스마트 카드의 반응 데이터를 분석하는 것으로, 이 공격은 잘못된 정보가 들어오면 스마트 카드 작동을 자동 중지하도록 설계하면 막을 수 있다. 전력분석공격(Power Analysis Attack)은 비밀키와 관련된 데이터를 처리할 때, 스마트 카드가 사용하는 전력량과 그렇지 않을 경우의 전력량을 비교 분석하는 것으로, SPA(Simple Power Analysis), DPA(Differential Power Analysis) 등으로 나뉜다.
특히 암호 전용 연산기가 장착된 스마트 카드의 부채널 공격에 대한 연구가 활발하게 진행되고 있다. 이것은 스마트 카드가 상대적으로 적은 메모리와 계산능력이 낮은 프로세서를 채택하고 있으며, 동작 시 인증 절차 등의 과정에서 비밀 데 이터에 대한 연산이 반복하여 이루어지므로 정보의 유출 가능성이 높기 때문이다. 최근에 주목받고 있는 시스템 공격법이 바로 전력 소모량을 측정하여 비밀키를 찾아내는 전력분석공격이다. 전력분석공격은 카드 내부에 내장된 암호 알고리즘과 암호용 비밀키가 작동되는 순간에 스마트 카드의 순간적인 전력변화를 관측하여 추측과 오류정정 기술을 이용한 통계적인 방법으로 비밀키를 해독하는 방법이다. 차분전력분석(DPA:Differential Power Analysis) 기술은 전압변화를 관측할 수 있는 몇 가지 장비만 구비하면 비밀키의 추정이 가능하기 때문에 전용의 해독기계 또는 슈퍼컴퓨터를 동원한 공격보다 훨씬 효과적인 것으로 분석되고 있다.
일반적으로 비밀키를 사용하는 스마트 카드 내의 중앙처리장치에서의 연산은 비밀키의 어떠한 조작도 없이 순수한 비밀키 값을 사용함으로 차분전력분석과 같은 공격에 쉽게 노출된다. 예를 들어 스마트 카드 내의 중앙처리장치로 암호문과 비밀키가 입력되면, 중앙처리장치는 길이가 긴 비밀키를 중앙처리장치의 연산 워드 사이즈 단위로 블록화 한다. 그리고 블록화한 비밀키를 쉬프트 비트 연산자 등을 이용하여 비밀키의 각 비트를 판별하여 입력된 암호문을 해독하는데 사용하게 된다. 즉, 비밀키의 각 비트를 사용한 단위 연산이 중앙처리장치 내에서 이루어지게 된다. 그러한 까닭에 종래의 중앙처리장치에서의 비밀키 연산이 차분전력분석과 같은 공격에 쉽게 노출되는 문제가 발생하게 된다.
따라서 본 발명이 이루고자 하는 기술적 과제는 상술한 제반 문제점을 해결하기 위해 제안된 것으로, 비밀키가 차분전력분석과 같은 외부 공격에 의해 노출되 는 것을 방지할 수 있는 스마트 카드 및 그 방법을 제공하는데 있다.
상기의 과제를 이루기 위하여 본 발명에 의한 스마트 카드의 연산방법에 있어서, 1)암호문과 비밀키를 입력받는 단계와 2)비밀키의 비트 단위 연산 대신 사용할 테이블의 생성 단계와 3)하나 또는 그 이상의 임의의 난수열을 입력받는 단계, 4)상기 비밀키와 상기 난수열에 대해 배타적 이진 가산 연산을 수행하는 단계와 그리고 5)상기 연산된 결과값, 난수열과 단계 2)에서 생성한 테이블을 사용하여 상기 암호문을 해독하는 단계를 포함하는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 스마트 카드의 연산방법에 있어서, 상기 비밀키는 연산 시 처리할 수 있는 연산 워드 길이로 블록화되는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 스마트 카드의 연산방법에 있어서, 상기 난수열의 길이는 상기 블록화된 비밀키의 길이와 동일한 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 스마트 카드의 연산방법에 있어서, 상기 비밀키와 상기 난수열을 배타적 이진 가산 연산을 한 결과값은 상기 비밀키와의 연관성이 저하되는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 스마트 카드의 연산방법에 있어서, 배타적 이진 가산 연산은 적어도 두 개 이상의 난수열들을 이용할 때, 상기 연산된 결과값과 상기 비밀키와의 연관성이 저하되도록 하는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 스마트 카드의 연산방법에 있어서, 상기 비밀키의 각 비트가 상기 암호문을 해독하는 단계에서 실제로 사용되지 않도록 상기 테이블이 구성되는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 스마트 카드의 연산방법에 있어서, 상기 암호문을 해독할 때, 중간 연산값과 상기 난수열, 상기 테이블을 사용하여 상기 암호문이 해독되는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 스마트 카드의 연산방법에 있어서, 상기 암호문을 해독하는 단계는 1)상기 연산된 결과값의 각 비트를 순차적으로 검출하는 단계와 그리고 2)상기 검출된 각 비트 및 상기 생성된 테이블과 상기 난수열을 사용하여 암호문 해독 연산을 수행하는 단계를 더 포함하는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 스마트 카드는 유한한 길이의 랜덤한 난수열을 발생시키는 유사난수 발생기와 암호문과 비밀키, 그리고 상기 유사난수 발생기에서 발생한 난수열을 입력으로 받아, 상기 비밀키와 상기 난수열로 배타적 이진 가산 연산을 한 결과값과 테이블 및 상기 난수열을 이용하여 상기 암호문을 해독하는 연산을 수행하는 중앙처리장치를 포함하는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 스마트 카드의 상기 중앙처리장치는 상기 비밀키를 자신이 처리할 수 있는 연산 워드 길이 단위로 블록화하는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 스마트 카드의 상기 유사난수 발생기에서 발생한 난수열의 길이는 상기 블록화된 비밀키의 길이와 동일한 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 스마트 카드의 상기 비밀키와 상기 난수열을 배타적 이진 가산 연산을 한 결과값은 상기 비밀키와의 연관성이 저하되는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 스마트 카드의 배타적 이진 가산 연산은 적어도 두 개 이상의 난수열들을 이용할 때, 상기 연산된 결과값과 상기 비밀키와의 연관성이 저하되도록 하는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 스마트 카드의 상기 중앙처리장치는 상기 비밀키의 각 비트가 상기 암호문을 해독하는 단계에서 실제로 사용되지 않도록 상기 테이블을 구성하는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 스마트 카드의 상기 중앙처리장치에서 상기 암호문을 해독할 때, 중간 연산값과 상기 난수열, 상기 테이블을 사용하여 상기 암호문이 해독되는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 스마트 카드의 상기 중앙처리장치는 상기 비밀키와 상기 난수열로 배타적 이진 가산 연산을 한 결과값의 각 비트를 순차적으로 검출하여 암호문 해독 연산을 수행하는 것을 특징으로 한다.
(실시예)
도 1은 본 발명의 바람직한 실시예에 따른 스마트 카드의 내부를 보여주는 블록도이다.
본 발명에 따른 스마트 카드(100)는 중앙처리장치(10), 유사난수 발생기(20), 입출력 인터페이스부(30), 롬(ROM/Read Only Memory, 40), 램(RAM/Random Access Memory, 50), 데이터 버스(60)로 구성되어 있다.
중앙처리장치(10)는 데이터 메모리, 프로그램 메모리, 램 등 모든 구성 요소들에 접근하기 위해 거치게 되는 내부 통로들을 제어하는 기능을 하며, 암호문과 비밀키를 이용한 각종 연산을 수행한다.
유사난수 발생기(20)는 선형 피드백 쉬프트 레지스터와 비대칭 암호기 블록으로 구성된 장치로서, 비대칭 암호 알고리즘을 통해 생성된 난수열을 선형 피드백 쉬프트 레지스터에 저장하고 유한 길이로 반복되는 난수열을 발생한다. 이 난수열은 중앙처리장치(10)로 공급되어 비밀키 연산 시 비밀키가 노출되지 않도록 하는 역할을 한다.
입출력 인터페이스(30)는 스마트 카드(100)와 외부 장치 사이의 데이터, 어드레스 및 커맨드 전송을 위한 영역이다.
롬(40)은 프로그램 메모리로 사용되며 카드 운영 체계와 기본 명령을 세팅해 놓은 영역이다. 램(50)은 임시 데이터와 중간 계산 결과를 저장하기 위해 사용되는 영역으로 작업 레지스터(Working Register)로 사용된다. 데이터 버스(60)는 스마트 카드(100)내의 각종 데이터들의 이동통로로 사용되어진다.
스마트 카드(100)내의 중앙처리장치(10)는 암호화와 복호화 과정의 연산을 처리하는 역할을 한다.
일반적으로 암호화는 평문(Plaintext)을 사용자의 암호화키(Encryption Key: 잠금 열쇠)를 사용하여 암호문(Ciphertext)으로 변환하는 과정이다. 암호문으로부터 복호화키(Decryption Key : 풀림 열쇠)를 사용하여 원래의 평문으로 변환하는 과정을 복호화(Decryption)라고 한다. 암호는 암호화키와 복호화키가 서로 같은 대칭키 암호(Symmetric Cryptosystem)와 암호화키와 복호화키가 서로 다른 비대칭키 암호(Asymmetric Cryptosystem)가 있다. 대칭키 암호를 사용하여 데이터를 전송하고자 할 경우, 데이터 전송부와 수신부는 서로 공유하고 있는 키가 필요하다. 이 키는 암복호화에 모두 사용되므로 외부에 노출되어서는 안되는 비밀키이다. 이런 의미에서 대칭키 암호를 비밀키 암호라고도 한다. 대표적인 대칭키 암복호화 알고리즘으로는 블록암호인 DES(Data Encryption Standard)가 있으며, 전세계적으로 널리 사용되었으나 짧은 키 길이 등으로 인한 안전성의 문제로 최근 AES(Advanced Encryption Standard) 블록암호 알고리즘이 선정되어 표준화 절차가 진행 중이다. 비대칭키 암호의 가장 큰 특징은 암복호화에 사용되는 키가 다를 뿐만 아니라 이중 암호화키는 누구에게나 공개하고, 복호화키는 자신만이 간직하는 비밀키로 사용하는 것이다. 이때 공개된 암호화키로부터 복호화키를 알아낼 수 없어야 한다. 이런 의미에서 비대칭키 암호를 공개키 암호라고도 한다. 공개키 암호로는 합성수의 소인수분해를 바탕으로 하는 RSA(Rivest-Shamir-Adleman)와 유한체의 이산 대수 문제를 바탕으로 한 ElGamal 암호, 배낭 문제(Knapsack Problem)를 바탕으로 한 배낭 암호, 타원 곡선의 이산 대수 문제를 이용한 타원 곡선 암호 등이 있다. 공개키 암호 알고리즘은 복호화 과정에서 사용되는 비밀키의 안전한 저장뿐만 아니라 비밀키를 사용한 연산에서도 비밀키가 노출되지 않도록 해야 한다. 본 발명은 상기 비밀 키를 사용한 연산 시 비밀키를 안전하게 보호하는 방법에 관해 서술한다.
도 2는 본 발명의 바람직한 실시예에 따른 중앙처리장치(10)에서 암호문과 비밀키를 이용한 연산 과정을 보여주는 흐름도이다.
우선 중앙처리장치(10)는 암호문과 비밀키를 입력받게 된다(S200). 그리고 암호문 해독 연산에 사용될 테이블을 생성한다(S210). 테이블은 비밀키를 암호문 연산 과정에 직접 사용하지 않기 위하여 구성한 것으로, 비밀키를 사용한 암호문 연산 결과값과 같은 값이 나오도록 테이블을 구성하게 된다. 일반적으로 비밀키의 길이는 중앙처리장치(10)가 처리할 수 있는 연산 워드 사이즈보다 크기 때문에 중앙처리장치(10)는 비밀키를 자신이 처리할 수 있는 연산 워드 사이즈 길이로 블록화하는 과정을 거치게 된다(S220). 그리고 중앙처리장치(10)는 비밀키를 사용한 연산 시 비밀키의 안전한 보호를 위해 난수열을 사용하게 되므로, 유사난수 발생기(20)로부터 생성된 난수열을 입력받는다(S230). 이때 난수열의 길이는 블록화 단위로 나눈 비밀키의 길이와 동일하게, 중앙처리장치의 연산 워드 사이즈가 된다. 중앙처리장치(10)는 상기에서 입력된 난수열과 한 블록의 비밀키를 배타적 이진 가산(XOR) 연산을 수행하여 랜덤한 값을 만든다(S240). 상기 결과값은 비밀키와의 연관성이 상당히 줄어들게 된다. 상기 결과값과 비밀키와의 연관성을 현저히 떨어뜨리기 위해서는 비밀키와 배타적 이진 가산(XOR) 연산을 하는 난수열의 개수를 증가시키면 된다. 그 결과 2차전력분석공격(2nd Order Differential Power Analysis)에 강하게 된다. 상기 결과값은 비밀키의 동일한 값에 대해서 유사난수 발생기(20)에서 생성된 난수열의 값이 달라지게 되므로, 매번 달라지게 된다. 따라서 비밀키의 동일한 값에 대해서도 중앙처리장치(10)의 연산에서 사용되는 값은 매번 달라지므로, 차분전력분석과 같은 외부 공격으로부터 비밀키가 노출될 위험성을 제거하게 된다. 중앙처리장치(10)는 비밀키를 사용한 연산 시 순수한 비밀키를 사용하지 않고, 상기에서 비밀키와 난수열을 연산한 결과값을 사용하여 미리 작성된 테이블 값을 참조하여 암호문을 해독하는 연산을 수행하게 된다(S250). 이 과정에서 실제 비밀키의 비트값이 사용되지 않기 때문에 외부 공격에 의한 비밀키의 노출 위험성이 사라지게 된다. 암호문을 해독하는 연산은 비밀키와 난수열을 연산한 결과값과 난수열의 각 비트 값을 이용하게 되는데, 각 비트 값은 쉬프트 비트 연산자를 이용하여 각 비트를 판별하게 된다. 상기의 연산 과정은 비밀키의 모든 값이 암호문을 해독하는 연산에서 사용될 때까지 반복하게 된다(S260).
도 3은 암호문과 비밀키를 이용한 연산 과정을 구체화한 흐름도이다. 일반적인 공개키 암호 알고리즘에서는 곱셈 과정의 연속인 모듈러 멱승(Modular Exponentiation) 연산 방식이 사용된다. 도 3은 암호문 g와 비밀키 k를 입력으로 받아 모듈러 멱승 연산을 거쳐
Figure 112005001323446-PAT00001
인 암호문이 해독된 y 값을 얻게 되는 과정을 보여주는 것이다.
우선 중앙처리장치(10)는 암호문 g와 비밀키 k를 입력받게 된다(S300). 비밀키 k는 연산 워드 사이즈 길이로 블록화했을 경우, t개의 블록으로 나누어지는 값이 된다. 그리고 모듈러 멱승 연산에 사용하게 될 R0, R1 값에 R0는 1의 값으로, R1은 암호문 g의 값으로 초기화를 한다(S310). 암호문 해독 연산에 사용될 테이블 Q를 생성한다(S320). 테이블은 비밀키를 암호문 연산 과정에 직접 사용하지 않기 위하여 구성한 것으로, 비밀키를 사용한 암호문 연산 결과값과 같은 값이 나오도록 테이블을 구성하게 된다. 그리고 중앙처리장치(10)는 비밀키를 사용한 연산 시 비밀키의 안전한 보호를 위해 난수열을 사용하게 되므로, 유사난수 발생기(20)로부터 생성된 난수열 T1, T2를 입력받는다(S330). 이때 난수열의 길이는 블록화 단위로 나눈 비밀키의 길이와 동일하게, 중앙처리장치(10)의 연산 워드 사이즈가 된다. 중앙처리장치(10)는 한 블록의 비밀키 Ki와 상기에서 입력된 난수열 T1, T2를 배타적 이진 가산(XOR) 연산을 수행하여 랜덤한 값 D를 만든다(S340). 배타적 이진 가산 연산이 수행된 랜덤한 값 D의 길이는 비밀키 Ki와 상기에서 입력된 난수열 T1, T2 길이와 동일한 연산 워드 사이즈가 된다. 중앙처리장치(10)는 암호문을 해독하는 모듈러 멱승 연산에서 비밀키 k를 사용하지 않고, 비밀키와 난수열을 연산한 결과값 D를 사용하여 미리 작성된 테이블 Q를 참조한 R0, R1 값을 사용하는 암호문 해독 연산을 수행하게 된다(S350). 테이블 Q의 값은 0 혹은 1의 값을 가지므로, Q[d_j][t_1][t_2]의 값이나, Q[d_j][t_1][t_2]의 인버터된 반대 값인
Figure 112005001323446-PAT00002
Q[d_j][t_1][t_2]의 값 모두 0 혹은 1의 값을 가진다. 따라서 RQ[d_j][t_1][t_2], R(
Figure 112005001323446-PAT00003
Q[d_j][t_1][t_2]) 은 R0, 혹은 R1 값이 된다. R0와 R1 을 이용한 암호문을 해독하는 모듈러 멱승 연산의 수행 결과인 R0 값을 출력하게 되면, 암호문이 해독된 결과값을 얻을 수 있게 된다(S360). 상기의 연산 과정은 비밀키의 모든 값이 암호문을 해독하는 연산에서 사용될 때까지 반복하게 된다(S370). 상기의 연산에서 비밀키의 실제 비트 값이 암호문을 해독하는 연산 과정에 사용되지 않으므로, 비밀키가 차분전력분석과 같은 외부 공격에 의해 노출되는 것을 방지할 수 있게 된다.
이상과 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
이상과 같은 본 발명에 의하면, 스마트 카드 내의 중앙처리장치에서 비밀키를 사용한 연산 시 유사난수 발생기에서 생성된 난수열과 비밀키를 조합한 값과 테이블 연산을 사용함으로 비밀키가 차분전력분석과 같은 외부 공격에 의해 노출되는 것을 방지할 수 있게 된다. 따라서 비밀키를 가지는 스마트 카드 시스템의 보안성을 향상시킬 수 있게 된다.

Claims (16)

  1. 스마트 카드의 연산방법 있어서,
    암호문과 비밀키를 입력받는 단계와;
    하나 또는 그 이상의 임의의 난수열을 입력받는 단계와;
    비밀키의 비트 단위 연산 대신 사용할 테이블의 생성 단계와;
    상기 비밀키와 상기 난수열에 대해 배타적 이진 가산 연산을 수행하는 단계와; 그리고
    상기 연산된 결과값과 상기 난수열 및 상기 테이블을 사용하여 상기 암호문을 해독하는 단계를 포함하는 것을 특징으로 하는 연산방법.
  2. 제 1 항에 있어서,
    상기 비밀키는 연산 시 처리할 수 있는 연산 워드 길이로 블록화되는 것을 특징으로 하는 연산방법.
  3. 제 2 항에 있어서,
    상기 난수열의 길이는 상기 블록화된 비밀키의 길이와 동일한 것을 특징으로 하는 연산방법.
  4. 제 1 항에 있어서,
    상기 비밀키와 상기 난수열을 배타적 이진 가산 연산을 한 결과값은 상기 비밀키와의 연관성이 저하되는 것을 특징으로 하는 연산방법.
  5. 제 1 항에 있어서,
    배타적 이진 가산 연산은 적어도 두 개 이상의 난수열들을 이용할 때, 상기 연산된 결과값과 상기 비밀키와의 연관성이 저하되도록 하는 것을 특징으로 하는 연산방법.
  6. 제 1 항에 있어서,
    상기 비밀키의 각 비트가 상기 암호문을 해독하는 단계에서 실제로 사용되지 않도록 상기 테이블이 구성되는 것을 특징으로 하는 연산방법.
  7. 제 6 항에 있어서,
    상기 암호문을 해독할 때, 중간 연산값과 상기 난수열, 상기 테이블을 사용하여 상기 암호문이 해독되는 것을 특징으로 하는 연산방법.
  8. 제 1 항에 있어서,
    상기 암호문을 해독하는 단계는,
    상기 연산된 결과값의 각 비트를 순차적으로 검출하는 단계와; 그리고
    상기 검출된 각 비트 및 상기 생성된 테이블과 상기 난수열을 사용하여 암호 문 해독 연산을 수행하는 단계를 더 포함하는 것을 특징으로 하는 연산방법.
  9. 유한한 길이의 랜덤한 난수열을 발생시키는 유사난수 발생기와;
    암호문과 비밀키, 그리고 상기 유사난수 발생기에서 발생한 난수열을 입력으로 받아, 상기 비밀키와 상기 난수열로 배타적 이진 가산 연산을 한 결과값과 테이블 및 상기 난수열을 이용하여 상기 암호문을 해독하는 연산을 수행하는 중앙처리장치를 포함하는 스마트 카드.
  10. 제 9 항에 있어서,
    상기 중앙처리장치는 상기 비밀키를 자신이 처리할 수 있는 연산 워드 길이 단위로 블록화하는 것을 특징으로 하는 스마트 카드.
  11. 제 10 항에 있어서,
    상기 유사난수 발생기에서 발생한 난수열의 길이는 상기 블록화된 비밀키의 길이와 동일한 것을 특징으로 하는 스마트 카드.
  12. 제 9 항에 있어서,
    상기 비밀키와 상기 난수열을 배타적 이진 가산 연산을 한 결과값은 상기 비밀키와의 연관성이 저하되는 것을 특징으로 하는 스마트 카드.
  13. 제 9 항에 있어서,
    배타적 이진 가산 연산은 적어도 두 개 이상의 난수열들을 이용할 때, 상기 연산된 결과값과 상기 비밀키와의 연관성이 저하되도록 하는 것을 특징으로 하는 스마트 카드.
  14. 제 9 항에 있어서,
    상기 중앙처리장치는 상기 비밀키의 각 비트가 상기 암호문을 해독하는 단계에서 실제로 사용되지 않도록 상기 테이블을 구성하는 것을 특징으로 하는 스마트 카드.
  15. 제 14 항에 있어서,
    상기 중앙처리장치에서 상기 암호문을 해독할 때, 중간 연산값과 상기 난수열, 상기 테이블을 사용하여 상기 암호문이 해독되는 것을 특징으로 하는 스마트 카드.
  16. 제 9 항에 있어서,
    상기 중앙처리장치는 상기 비밀키와 상기 난수열로 배타적 이진 가산 연산을 한 결과값의 각 비트를 순차적으로 검출하여 암호문 해독 연산을 수행하는 것을 특징으로 하는 스마트 카드.
KR1020050002281A 2005-01-10 2005-01-10 비밀키를 보호하는 스마트 카드 및 그것의 방법 KR20060081847A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020050002281A KR20060081847A (ko) 2005-01-10 2005-01-10 비밀키를 보호하는 스마트 카드 및 그것의 방법
FR0600156A FR2880750A1 (fr) 2005-01-10 2006-01-09 Carte a microprocesseur et procede cryptographique pour proteger une cle secrete
US11/328,120 US20060153372A1 (en) 2005-01-10 2006-01-10 Smart card and method protecting secret key

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050002281A KR20060081847A (ko) 2005-01-10 2005-01-10 비밀키를 보호하는 스마트 카드 및 그것의 방법

Publications (1)

Publication Number Publication Date
KR20060081847A true KR20060081847A (ko) 2006-07-13

Family

ID=36609087

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050002281A KR20060081847A (ko) 2005-01-10 2005-01-10 비밀키를 보호하는 스마트 카드 및 그것의 방법

Country Status (3)

Country Link
US (1) US20060153372A1 (ko)
KR (1) KR20060081847A (ko)
FR (1) FR2880750A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1865481A1 (en) * 2005-03-31 2007-12-12 Matsushita Electric Industrial Co., Ltd. Data encryption device and data encryption method
DE102005024609A1 (de) * 2005-05-25 2006-11-30 Siemens Ag Bestimmung einer modularen Inversen
DE102006014353B4 (de) * 2006-03-28 2007-11-22 Siemens Ag Verfahren zum sicheren Ermitteln von Daten
US8781111B2 (en) * 2007-07-05 2014-07-15 Broadcom Corporation System and methods for side-channel attack prevention
US8413906B2 (en) 2011-05-22 2013-04-09 King Saud University Countermeasures to secure smart cards
US20130198513A1 (en) * 2012-01-27 2013-08-01 DoctorCom, Inc. Encryption method and system for network communication
CN103916235A (zh) * 2012-12-28 2014-07-09 北京中电华大电子设计有限责任公司 随机插入伪轮运算对的抗功耗攻击方法
EP3203460B1 (en) * 2016-02-05 2021-04-07 Nxp B.V. Secure data storage
US10887090B2 (en) 2017-09-22 2021-01-05 Nec Corporation Scalable byzantine fault-tolerant protocol with partial tee support

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4776011A (en) * 1983-10-24 1988-10-04 Sony Corporation Recursive key schedule cryptographic system
US4797921A (en) * 1984-11-13 1989-01-10 Hitachi, Ltd. System for enciphering or deciphering data
FR2699300B1 (fr) * 1992-12-15 1995-03-10 Mireille Campana Procédé d'authentification d'un ensemble informatique par un autre ensemble informatique.
US5724428A (en) * 1995-11-01 1998-03-03 Rsa Data Security, Inc. Block encryption algorithm with data-dependent rotations
IL139935A (en) * 1998-06-03 2005-06-19 Cryptography Res Inc Des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
US6345101B1 (en) * 1998-10-07 2002-02-05 Jayant Shukla Cryptographic method and apparatus for data communication and storage
JP4317607B2 (ja) * 1998-12-14 2009-08-19 株式会社日立製作所 情報処理装置、耐タンパ処理装置
JP4671571B2 (ja) * 1999-09-29 2011-04-20 株式会社日立製作所 秘密情報の処理装置および秘密情報の処理プログラムを格納するメモリ
AU2001260970A1 (en) * 2000-01-31 2001-08-07 Vdg Inc. Block encryption method and schemes for data confidentiality and integrity protection
JP3864675B2 (ja) * 2000-03-09 2007-01-10 株式会社日立製作所 共通鍵暗号装置
JP4199937B2 (ja) * 2001-03-06 2008-12-24 株式会社日立製作所 耐タンパー暗号処理方法
JP4596686B2 (ja) * 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
US7325133B2 (en) * 2003-10-07 2008-01-29 Koolspan, Inc. Mass subscriber management
KR100720726B1 (ko) * 2003-10-09 2007-05-22 삼성전자주식회사 Rsa 알고리즘을 이용한 보안유지시스템 및 그 방법

Also Published As

Publication number Publication date
US20060153372A1 (en) 2006-07-13
FR2880750A1 (fr) 2006-07-14

Similar Documents

Publication Publication Date Title
Young et al. Kleptography: Using cryptography against cryptography
US7284133B2 (en) Information processing unit
JP4596686B2 (ja) Dpaに対して安全な暗号化
KR100855958B1 (ko) 해밍거리를 이용한 부가 채널 공격에 안전한 암호화시스템 및 방법
US7864951B2 (en) Scalar multiplication method with inherent countermeasures
KR20060081847A (ko) 비밀키를 보호하는 스마트 카드 및 그것의 방법
US8050402B2 (en) Method and related device for hardware-oriented conversion between arithmetic and boolean random masking
KR102383829B1 (ko) 안전하게 메시지를 교환하기 위한 방법, 이 방법을 구현하기위한 장치 및 시스템
CA3049531A1 (en) Homomorphic white box system and method for using same
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
US20130279692A1 (en) Protecting modular exponentiation in cryptographic operations
US20080201398A1 (en) Determination of a Modular Inverse
US7286666B1 (en) Countermeasure method in an electric component implementing an elliptical curve type public key cryptography algorithm
KR100546375B1 (ko) 자체 오류 감지 기능을 강화한 상호 의존적 병렬 연산방식의 하드웨어 암호화 장치 및 그 하드웨어 암호화 방법
KR100652377B1 (ko) 모듈라 지수승 알고리즘, 기록매체 및 시스템
GB2399904A (en) Side channel attack prevention in data processing by adding a random multiple of the modulus to the plaintext before encryption.
EP3891925B1 (en) A computation device using shared shares
JP5261088B2 (ja) 不正操作検知回路、不正操作検知回路を備えた装置、及び不正操作検知方法
CN1985458B (zh) 增强的自然蒙哥马利指数掩蔽和恢复的方法和装置
US20050147241A1 (en) Computation method for modular exponentiation operation in decryption or signature generation
Hazzazi et al. Asymmetric Key Cryptosystem for Image Encryption by Elliptic Curve over Galois Field GF (2 n).
Karri et al. Parity-based concurrent error detection in symmetric block ciphers
Arjunan et al. Securing RSA algorithm against timing attack.
Silva-Garcia et al. The triple-DES-96 cryptographic system
Zhang et al. Design principles for trusted platform modules protected with power analysis

Legal Events

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