KR100594265B1 - 매스킹 방법이 적용된 데이터 암호처리장치, aes암호시스템 및 aes 암호방법. - Google Patents

매스킹 방법이 적용된 데이터 암호처리장치, aes암호시스템 및 aes 암호방법. Download PDF

Info

Publication number
KR100594265B1
KR100594265B1 KR1020040017671A KR20040017671A KR100594265B1 KR 100594265 B1 KR100594265 B1 KR 100594265B1 KR 1020040017671 A KR1020040017671 A KR 1020040017671A KR 20040017671 A KR20040017671 A KR 20040017671A KR 100594265 B1 KR100594265 B1 KR 100594265B1
Authority
KR
South Korea
Prior art keywords
block
data
bit
output data
multiplication
Prior art date
Application number
KR1020040017671A
Other languages
English (en)
Other versions
KR20050092576A (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 삼성전자주식회사
Priority to KR1020040017671A priority Critical patent/KR100594265B1/ko
Priority to US11/063,912 priority patent/US7965836B2/en
Priority to DE102005012098A priority patent/DE102005012098B4/de
Priority to JP2005075869A priority patent/JP4787519B2/ja
Publication of KR20050092576A publication Critical patent/KR20050092576A/ko
Application granted granted Critical
Publication of KR100594265B1 publication Critical patent/KR100594265B1/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
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

매스킹 방법이 적용된 데이터 암호처리장치, AES(Advanced Encryption Standard) 암호시스템 및 암호방법이 개시된다. 상기 매스킹 방법이 적용된 데이터 암호처리장치는, 라운드 키(round key), 플레인 텍스트(plain text)/사이퍼 텍스트(cihper text) 및 매스킹 데이터(masking data)를 이용한 복수 개의 라운드 연산을 수행하며, 상기 라운드 연산 중의 일부는 합성 필드(composite field)인 갈로아 필드(Galois Field)
Figure 112004010811582-pat00001
에서 구현된다. 상기 매스킹 방법이 적용된 암호시스템 및 암호방법은, 원본데이터 뿐만 아니라 소정의 매스킹 데이터도 일정한 원칙에 따라 연산을 수행한다. 상기 암호방법 및 암호시스템에서 사용하는 서브바이트 변형단계는, 선형함수의 특성을 가지는 어핀 변형단계, 인버스 어핀 변형단계, 아이소모르피즘단계 및 인버스 아이소모르피즘단계와 비 선형함수의 특징을 가지는 인버젼 단계를 구비한다. 특히, 상기 비 선형 특성을 가지는 인버젼 단계는, 합성 필드(composite field)인 갈로아 필드(Galois Field)
Figure 112004010811582-pat00002
에서 구현되기 때문에 종래의 룩업 테이블을 사용하여 구현하는 경우에 비하여 하드웨어의 면적이 상당히 줄어든다.

Description

매스킹 방법이 적용된 데이터 암호처리장치, AES 암호시스템 및 AES 암호방법.{A cipher processing unit, an advanced encryption standard cipher system and an advanced encryption standard cipher method with masking method}
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1a는 매스킹 방법을 사용하지 않는 경우의 블록 다이어그램이다.
도 1b는 매스킹 방법을 사용하는 경우의 블록 다이어그램이다.
도 2는 본 발명에 따른 매스킹 방법이 적용된 AES 암호시스템을 나타내는 블록 다이어그램이다.
도 3은 도 2에 도시된 데이터 암호처리장치에 대한 블록 다이어그램이다.
도 4는 도 3에 도시된 서브바이트 변형블록을 구성하는 S-BOX의 블록 다이어그램이다.
도 5는 도4에 도시된
Figure 112004010811582-pat00003
도메인에서의 인버젼 연산블록의 내부 블록 다이어그램이다.
도 6은 도 5에 도시된 4비트 곱셈연산블록의 내부 블록 다이어그램이다.
도 7은 도 6에 도시된 4 비트 곱셈연산블록에서 사용되는 2비트 곱셈연산블 록의 내부 블록 다이어그램이다.
도 8은 수학식 17의 연산을 논리 게이트로 구현한 다이어그램이다.
도 9는 도 5에 도시된 4 비트 인버젼 연산블록을 나타내는 블록 다이어그램이다.
본 발명은 암호 시스템에 관한 것으로서, 특히, DES(Data Encryption Standard)를 대체하는 차세대 암호 알고리즘인 AES(Advanced Encryption Standard)에 매스킹 방법을 적용하여 전력분석공격(power analysis attack)에 대비하는 AES 하드웨어 구조에 관한 것이다.
과학 기술의 발달과 더불어 개인정보 보호에 대한 관심이 커지면서 암호(cipher)의 중요성은 나날이 증가되고 있다. 또한 시스템에 대한 더 높은 수준의 안전성을 확보하기 위하여 암호 키(key)의 길이는 더 길어지고 있다. 그러나 시스템이 소형화 및 경량화 되어 감에 따라, 시스템에 부여된 한정된 메모리 및 연산능력 등의 제약으로 인하여 암호 키의 길이를 무한정 늘일 수는 없다.
종래에는 이러한 암호에 대한 표준으로 DES(Data Encryption Standard)가 사용되었으나, 안정성에 의문이 생기자 AES(Advanced Encryption Standard)를 새로운 블록 암호 알고리즘의 표준으로 채택하였다. 따라서 종래의 많은 응용제품에 사용 되었던 암호화 표준인 DES(Data Encryption Standard) 알고리즘이 상기 AES 알고리즘으로 대치될 전망이다. 또한 AES 알고리즘을 구현하는 방법에 있어서도, 소프트웨어로 상기 AES 알고리즘을 구현하는 것뿐만 아니라 하드웨어 장치로 구현하는 것 또한 중요해졌다. 중요 응용제품들에 AES가 하드웨어로 구현되어 사용되고 있는 추세에 따라, 공격자들(attackers)의 공격에 대비한 하드웨어를 구현하는 것 또한 필수 불가결한 요소가 되고 있다.
공격자들이 암호시스템을 공격하기 위하여 사용하는 방법들 중의 하나로, 상기 암호시스템이 동작하면서 나타나는 암호시스템의 전력 특성을 분석하여 상기 암호시스템의 암호정보를 알아내는 전력분석공격(power analysis attack)이 있다. 이는 암호화하기 전의 데이터인 플레인 데이터(plain data)에 포함된 복수 개의 비트가 논리하이("1")인지 또는 논리로우("0")인지를 가정하고, 이들에 대한 전력 곡선을 분석하여 암호화하기 전의 데이터를 알아내는 방법이다.
상기 전력분석공격에 대비하는 방법은 다양하지만, 일반적으로 많이 사용하는 방법 중의 하나는 매스킹(masking) 방법이다. 상기 매스킹 방법은, 암호화하는 블록 내의 연산을 실제 처리하고자하는 원본 데이터만을 이용하여 수행하지 않고, 상기 원본 데이터에 소정의 숫자를 결합시켜 처리하는 방법을 말한다. 예를 들면, 매스킹 방법이 이용되는 암호시스템은, 원본 데이터가 입력될 때, 상기 원본 데이터에 임의의 데이터를 결합하여 암호화 또는 복호화 연산을 수행한다. 연산 후 상기 연산된 데이터로부터 상기 임의의 데이터를 분리하여 암호문 또는 평문을 얻는다.
상술한 매스킹 방법을 사용한다면, 암호화 또는 복호화가 진행되는 도중의 연산에서는 임의의 데이터가 포함된 데이터를 처리하기 때문에, 원본 데이터를 예측(guess)하기는 어렵게 된다.
상기 전력분석공격에 대하여 보다 높은 안전성을 가진 시스템을 만들기 위해, 상술한 임의의 데이터로서 소정의 랜덤(random) 데이터를 사용하여 암호화 또는 복호화를 수행한다. 이에 더 나아가, 상기 임의의 데이터에 대한 암호화 또는 복호화를 라운드(round) 방식으로 반복 수행하고, 수행되는 매 라운드마다 사용되는 랜덤 데이터 값은 갱신된다.
공격에 대한 종래의 대응책(countermeasure) 대하여는 M. Akkar, C. Giraud의 논문("An Implementarionof DES and AES, Secure against Some Attacks", CHES '01) 및 E. Trichina, D. De Seta, L. Germani의 논문("Simplified Adaptive Multiplicative Masking for AES", CHES '02)을 통하여 알 수 있다.
도 1a는 매스킹 방법을 사용하지 않는 경우의 블록 다이어그램이다.
도 1b는 매스킹 방법을 사용하는 경우의 블록 다이어그램이다.
도 1a를 참조하면, 매스킹 방법을 사용하지 않고 소정의 연산을 수행하는 모듈(110)의 경우, 입력되는 원본 데이터 a는 모듈(110)의 내부에 있는 연산블록(111)에서 처리되며, 모듈(110)의 출력이 a에 대한 함수 f(a)임을 알 수 있다. 상술한 바와 같이, 매스킹 방법을 사용하지 않는 암호시스템의 경우, 연산블록(111)의 전력 곡선(power curve)을 분석하여 원본 데이터 a를 추측하는 것이 가능하다.
여기서
Figure 112004010811582-pat00004
는 XOR 게이트를 의미한다.
도 1b를 참조하면, 매스킹 방법을 적용한 모듈에서의 연산과정을 수학식 1 내지 수학식 3으로 표시할 수 있다.
Figure 112004010811582-pat00005
Figure 112004010811582-pat00006
f(r)=s
여기서, a와 r은 각각 원본 데이터와 임의의 랜덤 데이터를 의미한다. r은 랜덤 발생기(미도시)로부터 발생된다.
선형 함수인 경우
Figure 112004010811582-pat00007
가 성립하므로 , 매스킹 방법을 적용하는 경우를 나타내는 도 1b를 참조하면, XOR(124)에서 XOR 연산을 수행한 최종 값은 수학식 4와 같이 나타낼 수 있다.
Figure 112004010811582-pat00008
Figure 112004010811582-pat00009
Figure 112004010811582-pat00010
=f(a)
선형 함수인 경우,
Figure 112004010811582-pat00011
가 성립하므로, 수학식 4에 나타낸 바와 같이
Figure 112004010811582-pat00012
이 성립된다.
도 1a 및 도 1b는 모두 동일한 결과 값(f(a))을 생성한다. 그러나, 공격자들이 침입하기 위하여 사용하는 전력분석공격에 대한 효과 면에서는 상당히 다르다. 도 1a에 도시된 바와 같이 매스킹 방법을 사용하지 않는 경우에는, 공격자들의 전력분석공격에 의하여 원본데이터 a가 쉽게 추출될 수 있다. 그러나, 도 1b에 도시된 바와 같이 매스킹 방법을 사용하는 경우에는, 전력분석공격에 의하여 분석된 전력곡선은 원본 데이터 a에 대한 것이 아니기 때문에, 원본 데이터 a를 추출하는 것이 거의 불가능하다.
그러나 비 선형 함수인 경우에는, 수학식
Figure 112004010811582-pat00013
가 성립하지 않기 때문에 상기 수학식 4를 만족하기 위해서는 새로운 방법이 고안되어야 한다.
본 발명이 이루고자하는 제1기술적 과제는, 공격자들의 전력분석공격에 대비할 수 있고, 하드웨어로 구현할 때 차지하는 면적을 최소화하는 매스킹 방법이 적용된 데이터 암호처리장치를 제공하는데 있다.
본 발명이 이루고자하는 제2기술적 과제는, 공격자들의 전력분석공격에 대비할 수 있고, 하드웨어로 구현할 때 차지하는 면적을 최소화하는 매스킹 방법이 적용된 AES(Advanced Encryption Standard) 암호시스템을 제공하는데 있다.
본 발명이 이루고자하는 제3기술적 과제는, 공격자들의 전력분석공격에 대비 할 수 있고, 하드웨어로 구현할 때 차지하는 면적을 최소화하는 매스킹 방법이 적용된 AES(Advanced Encryption Standard) 암호방법을 제공하는데 있다.
상기 제1기술적 과제를 달성하기 위한 본 발명에 따른 매스킹 방법이 적용된 데이터 암호처리장치는,
소정의 제어신호에 따라 동작하며, 암호화 시에는 라운드 키(round key), 플레인 텍스트(plain text) 및 매스킹 데이터(masking data)를 이용한 라운드 연산을 수행하여 사이퍼 텍스트(cipher text)를 출력하고, 복호화 시에는 라운드 키, 사이퍼 텍스트 및 매스킹 데이터를 이용한 라운드 연산을 수행하여 플레인 텍스트를 출력하며, 상기 라운드 연산 중의 일부는 합성 필드(composite field)인 갈로아 필드(Galois Field)
Figure 112004010811582-pat00014
에서 구현된다.
상기 제2기술적 과제를 달성하기 위한 본 발명에 따른 매스킹 방법이 적용된 AES 암호시스템은,
소정의 제1제어신호에 따라 동작하며, 키 데이터를 수신하여 라운드 키를 생성하고, 상기 제1제어신호에 따른 처리 결과신호를 출력하는 키 스케줄러;
소정의 제2제어신호에 따라 동작하며, 암호화 시에는 상기 라운드 키(round key), 플레인 텍스트(plain text) 및 매스킹 데이터(masking data)를 수신하여 라운드 연산을 수행하고, 복호화 시에는 상기 라운드 키, 사이퍼 텍스트(cipher text) 및 매스킹 데이터를 수신하여 라운드 연산을 수행하며, 상기 제2제어신호에 따른 연산수행 결과신호를 출력하는 데이터 암호처리장치; 및
상기 키 스케줄러로 송신하는 상기 제1제어신호 및 상기 키 스케줄러로부터 수신하는 상기 처리결과신호를 이용하여 상기 키 스케줄러의 동작을 제어하며, 상기 데이터 암호처리장치로 송신하는 상기 제2제어신호 및 상기 데이터 암호처리장치로부터 수신하는 상기 연산수행 결과신호를 이용하여 상기 데이터 암호처리장치를 제어하며, 수신한 상기 연산수행 결과신호에 따라, 암호화 시에는 사이퍼 텍스트를 출력하고 복호화 시에는 플레인 텍스트를 출력하는 제어장치를 구비한다.
상기 제3기술적 과제를 달성하기 위한 본 발명에 따른 매스킹 방법이 적용된 AES 암호방법은,
애드라운드 키 변형(add round key transformation) 단계;
서브바이트 변형(sub bytes transformation) 단계;
쉬프트로우 변형(shift rows transformation) 단계; 및
믹스컬럼 변형(mix columns transformation) 단계를 구비하며,
상기 서브바이트 변형단계는, 선형함수의 특성을 가지는 어핀 변형단계, 인버스 어핀 변형단계, 아이소모르피즘 단계 및 인버스 아이소모르피즘 단계와 비 선형함수의 특징을 가지는 인버젼 단계를 구비하며,
상기 아이소모르피즘 단계, 인버스 아이소모르피즘 단계 및 인버젼 단계는, 갈로아 필드(Galois Field)
Figure 112004010811582-pat00015
을 이용하여 실현되며,
Figure 112004010811582-pat00016
도메인의 원소를
Figure 112004010811582-pat00017
도메인의 원소로 변환하여 사용하며,
Figure 112004010811582-pat00018
도메인의 원소는
Figure 112004010811582-pat00019
도메인의 원소로,
Figure 112004010811582-pat00020
도메인의 원소는
Figure 112004010811582-pat00021
도메인의 원소로 각각 변환되어 구현된다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
또한 도면에 도시된 블록들은, 기능블록들이기는 하지만, 이들 기능을 수행하는 단계를 나타내기도 한다. 그러나, 설명을 간단하게 하기 위하여 이하의 설명에서는 이를 구별하지 않고 사용한다. 이는 상기 설명으로부터, 암호단계 및 암호시스템의 기능블록에 대한 사실들을 동시에 유추하는 것이 당 분야의 일반적인 기술자에게는 당연하기 때문이다.
도 2는 본 발명에 따른 매스킹 방법이 적용된 AES 암호시스템을 나타내는 블록 다이어그램이다.
도 2를 참조하면, 상기 AES 암호시스템은, 키 스케줄러(210), 데이터 암호처리장치(220) 및 제어장치(230)를 구비한다.
키 스케줄러(210)는, 제1제어신호(C1)에 따라 동작하며, 수신된 키 데이터를 이용하여 라운드 키(RK)를 생성하고, 제어장치(230)에 처리 결과를 통보(R1)한다.
데이터 암호처리장치(220)는, 제2제어신호(C2)에 따라 동작하며, 암호화 시에는 상기 라운드 키(RK), 플레인 텍스트(plain text) 및 매스킹 데이터(masking data)를 수신하여 라운드 연산을 수행하고, 복호화 시에는 상기 라운드 키(RK), 사이퍼 텍스트(cipher text) 및 매스킹 데이터를 수신하여 라운드 연산을 수행하며, 연산 수행 결과를 제어장치(230)에 전달(R2)한다.
제어장치(230)는 키 스케줄러(210)를 제어하는 제1제어신호(C1) 및 데이터 암호처리장치(220)를 제어하는 제2제어신호(C2)를 출력하고, 데이터 암호처리장치(220)로부터 수신한 결과 데이터(R2)를 이용하여 암호화 시에는 사이퍼 텍스트를 출력하고, 복호화 시에는 플레인 텍스트를 출력한다.
도 3은 도 2에 도시된 데이터 암호처리장치(220)에 대한 블록 다이어그램이다.
도 3을 참조하면, 데이터 암호처리장치(220)는, 제1애드 라운드 키 변형블록(310, add round key transformation block), 제1멀티플렉서(320), 서브바이트 변형블록(330, sub bytes transformation block), 쉬프트로우 변형블록(340, shift low transformation block), 인버스 쉬프트로우 변형블록(350, inverse shift low transformation block), 믹스컬럼 변형블록(360, mix column transformation block ), 제2멀티플렉서(370), 제2애드 라운드 키 변형블록(380) 및 인버스 믹스컬럼 변형블록(390, inverse mix column transformation block)을 구비한다.
제1애드 라운드 키 변형블록(310)은, 암호화 시에는 상기 플레인 텍스트, 상기 매스킹 데이터 및 상기 라운드 키를 수신하여 애드라운드 키 변형연산을 수행하고, 복호화 시에는 상기 사이퍼 텍스트, 상기 매스킹 데이터 및 상기 라운드 키를 수신하여 애드라운드 키 변형연산을 수행한다.
제1멀티플렉서(320)는, 제어신호(C2)에 따라, 제1애드라운드 키 변형블록(310)의 출력데이터, 연산수행 결과신호(R1) 및 피드백 신호(F1) 중에서 하나를 선택하여 출력한다.
서브바이트 변형블록(330)은, 제어신호(C2)에 따라, 제1멀티플렉서(320)의 출력데이터(INDATA)에 대하여 서브바이트 변형연산을 수행하는 복수 개의 S-BOX를 구비한다.
쉬프트로우 변형블록(340)은, 암호화 연산 수행 시, 서브바이트 변형블록(330)의 출력데이터에 대하여 쉬프트로우 변형연산을 수행한다.
인버스 쉬프트로우 변형블록(350)은, 복호화 연산 수행 시, 서브바이트 변형블록(330)의 출력데이터에 대하여 인버스 쉬프트로우 변형연산을 수행한다.
믹스컬럼 변형블록(360)은, 쉬프트로우 변형블록(340)의 출력데이터에 대하여 믹스컬럼 변형연산을 수행한다.
제2멀티플렉서(370)는, 제어신호(C2)에 따라, 믹스컬럼 변형블록(360)의 출력데이터, 쉬프트 로우 변형블록(340)의 출력데이터 및 인버스 쉬프트 로우 변형블록(350)의 출력데이터 중에서 하나를 선택하여 출력한다.
제2애드 라운드 키 변형블록(380)은, 라운드 키 및 제2멀티플렉서(370)의 출력데이터에 대하여 애드 라운드 키 변형연산을 수행하여 연산수행 결과신호(R2)를 출력한다.
인버스 믹스컬럼 변형블록(390)은, 연산수행 결과신호(R2)에 대하여 인버스 믹스컬럼 변형연산을 수행하여 생성시킨 피드백신호(F1)를 출력한다.
도 3을 참조하면, 도시된 기능블록들이 각각 소정의 연산을 수행하는데, 이들 연산을 수행하는 블록들은 동일한 연산을 수행하는 단계와 혼용하여 사용하여도 혼동이 발생하지 않을 것이다. 따라서 이하의 설명에서는 기능블록에 관하여 설명하고, 이것들을 연산을 수행하는 단계로 확대하여 적용한다.
도 4는 도 3에 도시된 서브바이트 변형블록(330)을 구성하는 S-BOX의 블록 다이어그램이다.
도 4를 참조하면, S-BOX는, 인버스 어핀(inverse affine) 변형블록(401), 제3멀티플렉서(402), 아이소모르피즘(isomorphism) 변형블록(403), 인버젼(inversion) 변형블록(404), 인버스 아이소모르피즘(nverse isomorphism) 변형블록(405), 어핀 변형블록(406) 및 제4멀티플렉서(407)를 구비한다.
인버스 어핀 변형블록(401)은, 복호화 연산 수행시, 제1멀티플렉서(320)의 출력데이터(INDATA)에 대하여 인버스 어핀 변형연산을 수행한다.
제3멀티플렉서(402)는, 제어신호(C2)에 따라, 인버스 어핀 변형블록(401)의 출력데이터 및 제1멀티플렉서(320)의 출력데이터(INDATA) 중에서 하나를 선택하여 출력한다.
아이소모르피즘 변형블록(403)은, 제3멀티플렉서(402)의 출력데이터에 대하여 아이소 모르피즘 변형연산을 수행한다.
인버젼 변형블록(404)은, 아이소 모르피즘 변형블록(403)의 출력데이터에 대하여 인버젼(inverse) 변형연산을 수행한다.
인버스 아이소모르피즘 변형블록(405)은, 인버젼 변형블록(404)의 출력데이터에 대하여 인버스 아이소 모르피즘 변형연산을 수행한다.
어핀 변형블록(406)은, 암호화 연산 수행시, 인버스 아이소모르피즘 변형블록(405)의 출력데이터에 대하여 어핀 변형연산을 수행한다.
제4멀티플렉서(407)는, 제어신호(C2)에 따라, 어핀 변형블록(406)의 출력데이터 및 인버스 아이소모르피즘 변형블록(405)의 출력데이터 중에서 하나를 선택하여 출력한다.
상술한 연산기능블록들 중에서, 인버스 어핀 변형블록(401), 어핀 변형블록(406), 아이소모르피즘 변형블록(403) 및 인버스 아이소모르피즘 변형블록(405)에서는, 모두 선형함수에 대한 연산을 수행한다. 선형함수의 연산을 실제 하드웨어로 구현하는 경우, 매스킹 방법을 적용하는 때에도, 매스킹 방법을 적용하지 않을 때 사용하는 하드웨어 모듈을 그대로 이용하여 이를 구현할 수 있다. 이 때 하드웨어는, 매스킹 방법이 적용되지 않는 경우에 비해 사용 면적은 증가하지만, 복잡도는 증가하지 않는다.
그러나 인버젼 변형블록(404)에서의 연산은 비 선형함수에 대한 것이기 때문에, 상기 인버젼 변형블록을 하드웨어로 구현하기 위해서 매스킹 방법을 적용하지 않을 때 사용하는 하드웨어 모듈을 그대로 이용할 수 없다.
왜냐하면, 비 선형함수의 경우, 매스킹 방법을 적용하여 연산된 데이터로부터 원본데이터를 쉽게 복원할 수 없기 때문이다. 따라서 상기 문제를 해결하기 위해서, 원본 데이터 및 랜덤 데이터를 함께 연산하되, 중간의 연산과정에서는 원본 데이터가 드러나지 않게 하고, 최종 단에서는 원본 데이터를 추출해낼 수 있는 아이디어가 있어야 한다.
매스킹 방법이 적용된 AES 암호시스템의 최종 라운드를 제외한 라운드 동작에서는, 서브바이트 변형블록(320), 쉬프트로우 변형블록(340), 믹스컬럼 변형블록(360) 및 애드라운드 키 변형블록(380) 연산이 수행된다. 본 발명에서는, 상기 4개의 변형장치 중에서, 애드라운드 키 변형블록(310 및 380)을 제외한 나머지 3개의 변형블록에 매스킹 방법을 적용하였다.
쉬프트로우 변형블록(340) 및 믹스컬럼 변형블록(360)에서의 연산은, 선형함수의 성질을 가진다. 따라서 매스킹이 적용된 하드웨어를 구현하기 위한 특별한 회로를 고안할 필요가 없다. 다만 비 선형함수의 특성을 가지는 서브바이트 변형블록(330)에서의 연산의 경우, 하드웨어를 구현하기 위해서는 새로운 아이디어가 적용되었다.
본 발명의 일 실시 예에 따른 매스킹 방법이 적용된 AES 암호시스템은, 서브바이트 변형블록(330)에 매스킹 방법을 적용한다. 서브바이트 변형블록(330)을 구성하는 S-BOX의 갈로아 필드
Figure 112004010811582-pat00022
에서의 연산을, 합성필드(composite field)
Figure 112004010811582-pat00023
에서의 연산으로 변형하였다. 상기
Figure 112004010811582-pat00024
에서의 연산은,
Figure 112004010811582-pat00025
Figure 112004010811582-pat00026
을 이용하여 구현하였다.
본 발명에서 사용되는 기약다항식(irreducible polynomial)은 수학식 5내지 수학식 8로 표시된다.
Figure 112004010811582-pat00027
Figure 112004010811582-pat00028
Figure 112004010811582-pat00029
Figure 112004010811582-pat00030
여기서,
Figure 112004010811582-pat00031
이고,
Figure 112004010811582-pat00032
이다.
도 5는 도4에 도시된
Figure 112004010811582-pat00033
도메인에서의 인버젼 블록(404)의 내부 블록 다이어그램이다.
도 5를 참조하면, 상기
Figure 112004010811582-pat00034
도메인에서의 인버젼 블록(404)은, 4비트의 제곱연산블록(510), 4비트의 상수 곱셈연산블록(520), 3개의 4비트의 곱셈연산블록(531 내지 533), 4비트의 인버젼 블록(540) 및 2개의 XOR 블록(551 및 552)을 구비한다.
4비트 제곱연산블록(510)은, 4비트의 제1데이터에 대해 제곱연산을 수행한다. 4비트 상수곱셈연산블록(520)은, 4비트 제곱연산블록(510)의 결과 데이터에 대해 상수곱셈연산을 수행한다.
제1 XOR 블록(551)은, 4비트의 제2데이터 및 4비트의 제1데이터에 대해 XOR 연산을 수행한다. 4비트 제1곱셈연산블록(531)은, 제1 XOR 블록(551)의 결과 데이터와 4비트의 제2데이터에 대해 곱셈연산을 수행한다.
제2 XOR 블록(552)은, 4비트 제1곱셈연산단계(531) 및 4비트 상수곱셈연산단계(520)의 결과 데이터에 대해 XOR 연산을 수행한다. 4비트 인버젼 블록(540)은, 제2 XOR 연산블록(552)의 결과 데이터에 대해 인버젼(inversion) 연산을 수행한다.
제2곱셈연산블록(532)은, 제1 XOR 블록(551) 및 4비트 인버젼 블록(540)의 결과 데이터에 대해 곱셈연산을 수행한다. 제3곱셈연산블록(533)은, 제1데이터 및 4비트 인버젼 블록(540)의 데이터에 대해 곱셈연산을 수행한다.
결론적으로 말하면, 4비트 제곱연산블록(510) 및 4비트 상수 곱셈블록(520)은, 각 블록에서 수행되는 연산이 선형적이므로, 매스킹 방법을 적용하지 않는 경우와 동일한 연산을 수행하도록 하여 구현할 수 있다. 다만, 3개의 4비트 곱셈연산블록(531 내지 533) 및 4비트 인버젼 블록(540)에서 수행되는 연산은 비 선형적이므로 매스킹 방법이 적용되는 경우와 동일한 연산을 단순하게 이용하여서는 구현할 수 없다.
따라서 매스킹 방법을 적용하기 위해서, 연산이 선형적이 되도록 수학적 또는 하드웨어적인 변형이 필요하다.
도 5에 도시된 3개의 4비트의 곱셈연산블록(531 내지 533)들에서의 연산은, 수학식 9 및 수학식 10으로 표시할 수 있다. 여기서, 3개의 4비트 곱셈블록(531 내지 533)들은 서로 동일하므로 하나의 4비트 곱셈블록에 대하여 설명한다.
Figure 112004010811582-pat00035
Figure 112004010811582-pat00036
Figure 112004010811582-pat00037
상기 수학식 10을 구현하기 위해서는, 2 비트 곱셈연산 4번, XOR 3번 및 x phi 곱셈연산을 1번 수행하면 된다. 상기 수학식 10은 수학식 11과 같이 더 간단하게 할 수 있다.
ac + ad + bc = (a +b)(c + d) + bd
도 6은 도 5에 도시된 4비트 곱셈연산블록(531 내지 533)의 내부 블록 다이어그램이다.
도 6을 참조하면, 4비트 곱셈연산블록(531 내지 533)은, 제4 XOR 연산블록(605), 제5 XOR 연산블록(606), 2비트 제1곱셈연산블록(601), 2비트 제2곱셈연산블록(602), 2비트 제3곱셈연산블록(603), 2비트 제4곱셈연산블록(604), 제6 XOR 연산블록(607), 제7 XOR 연산블록(608)을 구비한다.
4비트 곱셈연산블록(531 내지 533)에 입력되는 2개의 4비트 데이터를 제1경로데이터(P1) 및 제2경로데이터(P2)로 가정하고 설명한다.
제4 XOR 블록(605)은, 제1경로데이터(P1) 중 상위 2비트의 데이터 및 제1경로데이터 중 하위 2비트의 데이터에 대해 XOR 연산을 수행한다. 제5 XOR 연산블록(606)은, 제2경로데이터(P2) 중 상위 2비트의 데이터 및 제2경로데이터(P2) 중 하위 2비트의 데이터에 대해 XOR 연산을 수행한다.
2비트 제1곱셈연산블록(601)은, 제1경로데이터(P1) 중 상위 2비트의 데이터 및 제2경로데이터(P2) 중 상위 2비트의 데이터에 대해 곱셈연산을 수행한다. 2비트 제2곱셈연산블록(602)은, 제4 XOR 블록(605)의 결과 데이터 및 제5 XOR 연산블록(606)의 결과 데이터에 대해 곱셈연산을 수행한다. 2비트 제3곱셈연산블록(603)은, 제1경로데이터(P1)의 하위 2비트 및 제2경로데이터(P2)의 하위 2비트에 대해 곱셈연산을 수행한다. 2비트 제4곱셈연산블록(604)은, 상기 2비트 제3곱셈연산블록(603)의 결과 데이터에 대해 상수곱셈연산을 수행한다.
제6 XOR 블록(607)은, 2비트 제1곱셈연산블록(601)의 결과 데이터 및 2비트 제4곱셈연산블록(604)의 결과 데이터에 대해 XOR 연산을 수행한다. 제7 XOR 연산블록(608)은, 2비트 제1곱셈연산블록(601)의 결과 데이터 및 2비트 제2곱셈연산블록(602)의 결과 데이터에 대해 XOR 연산을 수행한다.
도 6을 참조하면, 수학식 10의 일부분이 수학식 11과 같이 최적화(optimize)된다면, 수학식 10을 구현하기 위해서, 2비트 곱셈연산 3번(601 내지 603), XOR 4번(605 내지 608) 및 2비트 상수곱셈연산을 1번(604) 수행하면 된다.
도 7은 도 6에 도시된 4 비트 곱셈연산블록(531 내지 533)에서 사용되는 2비트 곱셈연산블록의 내부 블록 다이어그램이다.
도 7을 참조하면, 2비트 곱셈연산블록은, 4개의 2비트 곱셈연산블록(711 내지 714) 및 2개의 XOR 연산블록(721 및 722)을 구비한다.
2비트 제1곱셈연산블록(711)은, 매스킹 된 두 개의 원본데이터(a' 및 b')를 곱한다. 2비트 제2곱셈연산블록(7123)은, 매스킹 된 원본데이터(a') 및 랜덤 데이터(s)를 곱한다. 2비트 제3곱셈연산블록(713)은, 랜덤 데이터(r) 및 매스킹 된 원본데이터(b')를 한다. 2비트 제4곱셈연산블록(714)은, 2개의 랜덤 데이터(r 및 s)를 곱한다.
제1XOR 블록(721)은, 2비트 제1곱셈연산블록(711)의 출력데이터, 2비트 제2곱셈연산블록(712)의 출력데이터 및 매스킹 된 원본 터(b')에 대하여 XOR 연산을 수행하여 출력한다. 제2XOR 블록(722)은, 2비트 제3곱셈연산블록(713)의 출력데이터, 2비트 제4곱셈연산블록(714)의 출력데이터 및 매스킹 된 원본데이터(b')에 대하여 XOR 연산을 수행하여 출력한다.
a', r, b' 및 s의 관계는 수학식 12 내지 수학식 14와 같이 주어진다.
Figure 112004010811582-pat00038
Figure 112004010811582-pat00039
Figure 112004010811582-pat00040
여기서, a 및 b는 원본데이터이고, r 및 s는 랜덤데이터 값이다.
도 7에 도시된 2비트 곱셈연산블록의 연산은 수학식 15와 같이 표현할 수 있다.
Figure 112004010811582-pat00041
입력되는 원본데이터가 a 및 b일 때, 매스킹 방법을 적용하지 않은 2비트 곱셈연산블록에서의 연산 결과는, 원본데이터의 곱 ab이다. 입력되는 원본데이터는 동일하고 랜덤 데이터(r 및 s)가 추가된다고 가정하면, 매스킹 방법을 적용한 2비트 곱셈연산블록에서의 연산 결과는
Figure 112004010811582-pat00042
Figure 112004010811582-pat00043
이다. 상기 연산 결과 값들(
Figure 112004010811582-pat00044
Figure 112004010811582-pat00045
)을 XOR 연산을 수행하여 얻은 결과가 ab라면, 매스킹 방법을 적용하는데 아무런 문제가 없게 된다.
Figure 112004010811582-pat00046
Figure 112004010811582-pat00047
을 XOR 연산을 수행하는 과정을 수학식 16에 나타내었다.
Figure 112004010811582-pat00048
Figure 112004010811582-pat00049
Figure 112004010811582-pat00050
Figure 112004010811582-pat00051
Figure 112004010811582-pat00052
=ab
수학식 16을 참조하면, 도 7에 도시된 출력 값에 대하여 XOR 연산을 수행함으로써, 원본 데이터 ab가 복원되는 것을 알 수 있다. 이것은, 본 발명에서 제안한 매스킹 방법을 적용할 수 있음을 의미한다.
도 7에서 사용된 2비트 곱셈연산블록(711 내지 714)은 수학식 17과 같이 표시할 수 있다.
Figure 112004010811582-pat00053
도 8은 수학식 17의 연산을 논리 게이트로 구현한 다이어그램이다.
도 8을 참조하면, 도 7에 도시된 2비트 곱셈연산블록(711 내지 714)은, 4개의 AND 게이트(801 내지 804) 및 3개의 XOR 게이트(811 내지 813)를 이용하여 구현할 수 있다.
제1 AND 게이트(801)는, 2개의 입력데이터(a 및 c)에 대하여 논리적으로 AND 하여 출력한다. 제2 AND 게이트(802)는, 2개의 입력데이터(b 및 c)에 대하여 논리적으로 AND 하여 출력한다. 제3 AND 게이트(803)는, 2개의 입력데이터(a 및 d)에 대하여 논리적으로 AND 하여 출력한다. 제4 AND 게이트(804)는, 2개의 입력데이터(b 및 d)에 대하여 논리적으로 AND 하여 출력한다.
제1 XOR 게이트(811)는, 제1 AND 게이트(801) 및 제2 AND 게이트(802)의 출력데이터에 대해 XOR 연산을 수행한다. 제2 XOR 게이트(812)는, 제1 AND 게이트(801) 및 제4 AND 게이트(804)의 출력데이터에 대해 XOR 연산을 수행하여 출력(ac+bd)한다. 제3 XOR 게이트(813)는, 제1 XOR 게이트(811)의 출력데이터 및 제3 AND 게이트(803)의 출력데이터에 대해 XOR 연산을 수행하여 출력(ac+ad+bc)한다.
도 9는 도 5에 도시된 4 비트 인버젼 블록(540)의 내부 블록 다이어그램이 다.
도 9를 참조하면, 4비트 인버젼 블록(540,
Figure 112004010811582-pat00054
)은, 2 비트의 제곱연산블록(910), 2비트의 상수 곱셈연산블록(920), 3개의 2비트의 곱셈연산블록(931 내지 933), 2비트의 인버젼 블록(940) 및 2개의 XOR 블록(951 및 952)을 구비한다.
2비트 제곱연산블록(910)은, 입력된 4비트의 데이터 중 상위 2비트의 데이터에 대하여 제곱연산을 수행한다. 2비트 상수곱셈블록(920)은, 2비트 제곱연산블록(910)의 결과 데이터에 대해 상수곱셈연산을 수행한다.
제3 XOR 연산블록(951)은, 상기 상위 2비트의 데이터 및 하위 2비트의 데이터에 대해 XOR 연산을 수행한다. 2비트 제5곱셈연산블록(931)은, 제3 XOR 연산블록(951)의 결과 데이터 및 상기 하위 2비트의 데이터에 대해 곱셈연산을 수행한다.
제4 XOR 연산블록(952)은, 2비트 상수곱셈블록(920)의 결과 데이터 및 제5곱셈연산블록(931)의 결과 데이터에 대해 XOR 연산을 수행한다. 2비트 인버젼 블록(940)은, 제4 XOR 연산블록(952)의 출력 데이터에 대해 인버젼 연산을 수행한다.
2비트 제6곱셈연산블록(932)은, 2비트 인버젼 블록(940)의 결과 데이터 및 제3 XOR 연산블록(951)의 결과 데이터에 대해 곱셈연산을 수행한다. 2비트 제7곱셈연산블록(933)은, 2비트 인버젼 블록(940)의 결과 데이터 및 상위 2비트의 데이터에 대해 곱셈연산을 수행한다.
도 9 및 도 5를 비교하면, 도 9에 도시한 4비트 인버젼 블록(940,
Figure 112004010811582-pat00055
) 및 도 5에 도시한 8비트 인버젼 블록(540,
Figure 112004010811582-pat00056
)은, 그 구성 기능블록들은 서로 동일하고, 상기 구성 기능블록들에서 연산되는 데이터가 4비트에서 2비트로 줄어들었다는 것을 알 수 있다. 여기서, 2비트 제곱블록(910), 2비트 상수 곱셈블록(920)은 이미 그 실현 가능성에 대하여 설명하였으므로 여기서는 생략한다. 또한, 2비트 인버젼 블록(940)에서의 연산은, 2비트 제곱연산과 같으므로 이를 하드웨어로 구현하는 것은 문제가 되지 않는다.
이상에서와 같이 도면과 명세서에서 최적 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 매스킹 방법이 적용된 AES 암호방법 및 암호시스템은, AES 알고리즘 내에 존재하는 선형함수는 물론 비 선형함수에 대해 모두 매스크 방법을 적용한 하드웨어이므로, 공격자들의 전력분석공격에 대한 대응책(countermeasure)을 수립할 수 있다. 또한 본 발명에서는, 합성 필드(composite field)
Figure 112004010811582-pat00057
상에서 구현된 S-Box에 매스킹 방법을 적용함으 로써, 시스템을 구현하기 위한 전체 면적이 종래의 방법을 사용하는 경우에 비해 줄어들고, 결국 전력소비도 줄어들게 된다.
따라서, 메모리의 용량, 연산능력 및 전력소비에 상당히 엄격한 제한이 따르는 스마트 카드에 적용하는데 최적의 조건을 가지고 있다.

Claims (17)

  1. 원본데이터 뿐만 아니라 소정의 랜덤 데이터(random data)도 일정한 원칙에 따라 연산 처리하여 암호화 또는 복호화 하는 매스킹 방법이 적용된 데이터 암호처리장치에 있어서,
    소정의 제어신호에 따라 동작하며,
    암호화 시에는 라운드 키(round key), 플레인 텍스트(plain text) 및 매스킹 데이터(masking data)를 이용한 라운드 연산을 수행하여 사이퍼 텍스트(cipher text)를 출력하고,
    복호화 시에는 라운드 키, 사이퍼 텍스트 및 매스킹 데이터를 이용한 라운드 연산을 수행하여 플레인 텍스트를 출력하며,
    상기 라운드 연산 중의 일부는 합성 필드(composite field)인 갈로아 필드(Galois Field)
    Figure 112006029735051-pat00058
    에서 구현되는 것을 특징으로 하는 매스킹 방법이 적용된 데이터 암호처리장치.
  2. 제1항에 있어서, 상기 데이터 암호처리장치는,
    암호화 시에는 상기 플레인 텍스트, 상기 매스킹 데이터 및 상기 라운드 키를 수신하여 애드라운드 키 변형연산을 수행하고, 복호화 시에는 상기 사이퍼 텍스트, 상기 매스킹 데이터 및 상기 라운드 키를 수신하여 애드라운드 키 변형연산을 수행하는 제1애드라운드 키 변형(add round key transformation) 블록;
    상기 제어신호에 따라, 상기 제1애드라운드 키 변형블록의 출력데이터, 소정의 연산수행 결과신호 및 소정의 피드백 신호 중에서 하나를 선택하여 출력하는 제1멀티플렉서;
    상기 제어신호에 따라, 상기 제1멀티플렉서의 출력데이터에 대하여 서브바이트 변형연산을 수행하는 복수 개의 S-BOX를 구비하는 서브바이트 변형(sub bytes transformation) 블록;
    상기 서브바이트 변형블록의 출력데이터에 대하여 쉬프트로우 변형연산을 수행하는 쉬프트로우 변형(shift rows transformation) 블록;
    상기 서브바이트 변형블록의 출력데이터에 대하여 인버스 쉬프트로우 변형연산을 수행하는 인버스 쉬프트로우 변형 블록;
    상기 쉬프트로우 변형블록의 출력데이터에 대하여 믹스컬럼 변형연산을 수행하는 믹스컬럼 변형(mix columns transformation) 블록;
    상기 제어신호에 따라, 상기 믹스컬럼 변형블록의 출력데이터, 상기 쉬프트 로우 변형블록의 출력데이터 및 상기 인버스 쉬프트 로우 변형블록의 출력데이터 중에서 하나를 선택하여 출력하는 제2멀티플렉서;
    수신된 상기 라운드 키 및 상기 제2멀티플렉서의 출력데이터에 대하여 애드 라운드 키 변형연산을 수행하여 상기 연산수행 결과신호를 출력하는 제2애드라운드 키 변형 블록; 및
    상기 연산수행 결과신호를 수신하여 인버스 믹스컬럼 변형연산을 수행하여 상기 피드백신호를 출력하는 인버스 믹스 컬럼 변형(inverse mix columns transformation) 블록을 구비하는 것을 특징으로 하는 매스킹 방법이 적용된 데이터 암호처리장치.
  3. 제2항에 있어서, 상기 데이터 암호처리장치는,
    암호화 시에는 상기 제1애드라운드 변형블록, 상기 제1멀티플렉서, 상기 서브바이트 변형블록, 상기 쉬프트 로우 변형블록, 상기 믹스컬럼 변형블록, 상기 제2멀티플렉서, 상기 제2애드 라운드 키 변형블록 및 상기 제1멀티플렉서를 거치는 연산루프를 통하여 결정된 상기 연산수행 결과신호를 출력하고,
    복호화 시에는 상기 제1애드라운드 변형블록, 상기 제1멀티플렉서, 상기 서브바이트 변형블록, 상기 인버스 쉬프트 로우 변형블록, 상기 제2멀티플렉서, 상기 제2애드 라운드 키 변형블록, 상기 인버스 믹스컬럼 변형블록 및 제1멀티플렉서를 거치는 연산루프를 통하여 상기 연산수행 결과신호를 출력하는 것을 특징으로 하는 매스킹 방법이 적용된 데이터 암호처리장치.
  4. 제2항에 있어서, 상기 S-Box는,
    상기 제1멀티플렉서의 출력데이터에 대하여 인버스 어핀 변형연산을 수행하 는 인버스 어핀 변형(inverse affine transformation)블록;
    상기 제어신호에 따라, 상기 인버스 어핀 변형블록의 출력데이터 및 상기 제1멀티플렉서의 출력데이터 중에서 하나를 선택하여 출력하는 제3멀티플렉서;
    상기 제3멀티플렉서의 출력데이터에 대하여 아이소 모르피즘 변형연산을 수행하는 아이소 모르피즘(isomorphism) 변형블록;
    상기 아이소 모르피즘 변형블록의 출력데이터에 대하여 인버젼(inverse) 변형연산을 수행하는 인버젼 변형블록;
    상기 인버젼 변형블록의 출력데이터에 대하여 인버스 아이소 모르피즘 변형연산을 수행하는 인버스 아이소 모르피즘 변형블록;
    상기 인버스 아이소 모르피즘 변형블록의 출력데이터에 대하여 어핀 변형연산을 수행하는 어핀 변형블록; 및
    상기 제어신호에 따라, 상기 어핀 변형블록의 출력데이터 및 상기 인버스 아이소 모르피즘 변형블록의 출력데이터 중에서 하나를 선택하여 출력하는 제4멀티플렉서를 구비하는 것을 특징으로 하는 매스킹 방법이 적용된 데이터 암호처리장치.
  5. 제4항에 있어서, 상기 인버젼 변형블록은,
    합성 필드(composite field)인 갈로아 필드(Galois Field)
    Figure 112004010811582-pat00059
    에서 구현되며,
    4비트의 제1데이터에 대해 제곱연산을 수행하는 4비트 제곱연산블록;
    상기 4비트 제곱연산블록의 결과 데이터에 대해 상수곱셈연산을 수행하는 4 비트 상수곱셈연산블록;
    4비트의 제2데이터 및 상기 4비트의 제1데이터에 대해 XOR 연산을 수행하는 제1 XOR 게이트;
    상기 제1 XOR 게이트의 출력데이터 및 상기 4비트의 제2데이터에 대해 곱셈연산을 수행하는 4비트 제1곱셈연산블록;
    상기 4비트 제1곱셈연산블록 및 상기 4비트 상수곱셈연산블록의 출력데이터에 대해 XOR 연산을 수행하는 제2 XOR 게이트;
    상기 제2 XOR 게이트의 출력데이터에 대해 인버젼(inversion) 연산을 수행하는 4비트 인버젼 연산블록;
    상기 제1 XOR 게이트의 출력데이터 및 상기 4비트 인버젼 블록의 출력데이터에 대해 곱셈연산을 수행하는 제2곱셈연산블록;
    상기 제1데이터 및 상기 4비트 인버젼 블록의 출력데이터에 대해 곱셈연산을 수행하는 제3곱셈연산블록을 구비하는 것을 특징으로 하는 매스킹 방법이 적용된 데이터 암호처리장치.
  6. 제5항에 있어서, 상기 4비트 제1곱셈연산블록 내지 상기 4비트 제3곱셈블록 각각은,
    입력되는 4비트의 제1경로데이터 중 상위 2비트의 데이터 및 하위 2비트의 데이터에 대해 XOR 연산을 수행하는 제3 XOR 게이트;
    입력되는 4비트의 제2경로데이터 중 상위 2비트의 데이터 및 하위 2비트의 데이터에 대해 XOR 연산을 수행하는 제4 XOR 게이트;
    상기 제1경로데이터 중 상위 2비트의 데이터 및 상기 제2경로데이터 중 상위 2비트의 데이터에 대해 곱셈연산을 수행하는 2비트 제1곱셈연산블록;
    상기 제3 XOR 게이트의 출력데이터 및 상기 제4 XOR 게이트의 출력데이터에 대해 곱셈연산을 수행하는 2비트 제2곱셈연산블록;
    상기 제1경로데이터의 하위 2비트 및 상기 제2경로데이터의 하위 2비트에 대해 곱셈연산을 수행하는 2비트 제3곱셈연산블록;
    상기 2비트 제3곱셈연산블록의 출력데이터에 대해 상수곱셈연산을 수행하는 2비트 제4곱셈연산블록;
    상기 2비트 제1곱셈연산블록의 출력데이터 및 상기 2비트 제4곱셈연산블록의 출력데이터에 대해 XOR 연산을 수행하는 제5 XOR 게이트; 및
    상기 2비트 제1곱셈연산블록의 출력데이터 및 상기 2비트 제2곱셈연산블록의 출력데이터에 대해 XOR 연산을 수행하는 제6 XOR 게이트를 구비하며,
    상기 제5 XOR 연산블록의 2비트 데이터 및 상기 제6 XOR 연산블록의 2비트 데이터가 동시에 출력되는 것을 특징으로 하는 매스킹 방법이 적용된 데이터 암호처리장치.
  7. 제5항에 있어서, 상기 4 비트 인버젼 연산블록은,
    입력된 4비트의 데이터 중 상위 2비트의 데이터에 대하여 제곱연산을 수행하는 2비트 제곱 연산블록;
    상기 2비트 제곱연산블록의 출력데이터에 대해 상수곱셈연산을 수행하는 상기 2비트 상수곱셈 연산블록;
    상기 상위 2비트의 데이터 및 하위 2비트의 데이터에 대해 XOR 연산을 수행하는 제3 XOR 게이트;
    상기 제3 XOR 게이트의 출력데이터 및 상기 하위 2비트의 데이터에 대해 곱셈연산을 수행하는 2비트 제1곱셈연산블록;
    상기 2비트 상수곱셈연산블록의 출력데이터 및 상기 제1곱셈연산블록의 출력데이터에 대해 XOR 연산을 수행하는 제4 XOR 게이트;
    상기 제4 XOR 게이트의 출력데이터에 대해 인버젼 연산을 수행하는 2비트 인버젼 연산블록;
    상기 2비트 인버젼 연산블록의 출력데이터 및 상기 제3 XOR 게이트의 출력데이터에 대해 곱셈연산을 수행하는 2비트 제2곱셈연산블록; 및
    상기 2비트 인버젼 연산블록의 출력데이터 및 상기 상위 2비트의 데이터에 대해 곱셈연산을 수행하는 2비트 제3곱셈연산블록을 구비하는 것을 특징으로 하는 매스킹 방법이 적용된 데이터 암호처리장치.
  8. 원본데이터 뿐만 아니라 소정의 랜덤 데이터(random data)도 일정한 원칙에 따라 연산 처리하여 암호화하는 매스킹 방법이 적용된 AES(Advanced Encryption Standard) 암호시스템에 있어서,
    소정의 제1제어신호에 따라 동작하며, 키 데이터를 수신하여 라운드 키를 생성하고, 상기 제1제어신호에 따른 처리 결과신호를 출력하는 키 스케줄러;
    소정의 제2제어신호에 따라 동작하며, 암호화 시에는 상기 라운드 키(round key), 플레인 텍스트(plain text) 및 매스킹 데이터(masking data)를 수신하여 라운드 연산을 수행하고, 복호화 시에는 상기 라운드 키, 사이퍼 텍스트(cipher text) 및 매스킹 데이터를 수신하여 라운드 연산을 수행하고, 상기 제2제어신호에 따른 연산수행 결과신호를 출력하며, 상기 라운드 연산 중의 일부는 합성 필드(composite field)인 갈로아 필드(Galois Field)
    Figure 112006029735051-pat00078
    에서 구현되는 데이터 암호처리장치; 및
    상기 키 스케줄러로 송신하는 상기 제1제어신호 및 상기 키 스케줄러로부터 수신하는 상기 처리결과신호를 이용하여 상기 키 스케줄러의 동작을 제어하며, 상기 데이터 암호처리장치로 송신하는 상기 제2제어신호 및 상기 데이터 암호처리장치로부터 수신하는 상기 연산수행 결과신호를 이용하여 상기 데이터 암호처리장치를 제어하며, 수신한 상기 연산수행 결과신호에 따라, 암호화 시에는 사이퍼 텍스트를 출력하고 복호화 시에는 플레인 텍스트를 출력하는 제어장치를 구비하는 것을 특징으로 하는 매스킹 방법이 적용된 AES(Advanced Encryption Standard) 암호시스템.
  9. 제8항에 있어서, 상기 데이터 암호처리장치는,
    암호화 시에는 상기 플레인 텍스트, 상기 매스킹 데이터 및 상기 라운드 키 데이터를 수신하여 키 변형을 수행하고, 복호화 시에는 상기 사이퍼 텍스트, 매스킹 데이터 및 라운드 키 데이터를 수신하여 애드라운드 키 변형연산을 수행하는 제1애드라운드 키 변형(add round key transformation) 블록;
    상기 제2제어신호에 따라, 상기 제1애드라운드 키 변형블록의 출력데이터, 상기 연산수행 결과신호 및 소정의 피드백 신호 중에서 하나를 선택하여 출력하는 제1멀티플렉서;
    상기 제2제어신호에 따라, 상기 제1멀티플렉서의 출력데이터에 대하여 서브바이트 변형연산을 수행하는 복수 개의 S-BOX를 구비하는 서브바이트 변형(sub bytes transformation) 블록;
    상기 서브바이트 변형블록의 출력데이터에 쉬프트로우 변형연산을 수행하는 쉬프트로우 변형(shift rows transformation) 블록;
    상기 서브바이트 변형블록의 출력데이터에 인버스 쉬프트로우 변형연산을 수행하는 인버스 쉬프트로우 변형 블록;
    상기 쉬프트로우 변형블록의 출력데이터에 대하여 믹스컬럼 변형연산을 수행하는 믹스컬럼 변형(mix columns transformation) 블록;
    상기 제2제어신호에 따라, 상기 믹스컬럼 변형블록의 출력데이터, 상기 쉬프트 로우 변형블록의 출력데이터 및 상기 인버스 쉬프트 로우 변형블록의 출력데이터 중에서 하나를 선택하여 출력하는 제2멀티플렉서;
    수신된 상기 라운드 키 및 상기 제2멀티플렉서의 출력데이터에 대하여 애드 라운드 키 변형연산을 수행하여 상기 연산수행 결과신호를 출력하는 제2애드라운드 키 변형 블록; 및
    상기 연산수행 결과신호를 수신하여 인버스 믹스컬럼 변형연산을 수행하여 상기 피드백신호를 출력하는 인버스 믹스 컬럼 변형 블록을 구비하는 것을 특징으로 하는 매스킹 방법이 적용된 AES 암호시스템.
  10. 제9항에 있어서, 상기 데이터 암호처리장치는,
    암호화 시에는 상기 제1애드라운드 변형블록, 상기 제1멀티플렉서, 상기 서브바이트 변형블록, 상기 쉬프트 로우 변형블록, 상기 믹스컬럼 변형블록, 상기 제2멀티플렉서, 상기 제2애드 라운드 키 변형블록 및 상기 제1멀티플렉서를 거치는 연산루프를 통하여 결정된 상기 연산수행 결과신호를 출력하고,
    복호화 시에는 상기 제1애드라운드 변형블록, 상기 제1멀티플렉서, 상기 서브바이트 변형블록, 상기 인버스 쉬프트 로우 변형블록, 상기 제2멀티플렉서, 상기 제2애드 라운드 키 변형블록, 상기 인버스 믹스컬럼 변형블록 및 제1멀티플렉서를 거치는 연산루프를 통하여 상기 연산수행 결과신호를 출력하는 것을 특징으로 하는 매스킹 방법이 적용된 AES 암호시스템.
  11. 제9항에 있어서, 상기 S-Box는,
    상기 제1멀티플렉서의 출력데이터에 대하여 인버스 어핀 변형연산을 수행하는 인버스 어핀 변형블록;
    상기 제2제어신호에 따라, 상기 인버스 어핀 변형블록의 출력데이터 및 상기 제1멀티플렉서의 출력데이터 중에서 하나를 선택하여 출력하는 제3멀티플렉서;
    상기 제3멀티플렉서의 출력데이터에 대하여 아이소 모르피즘 변형연산을 수행하는 아이소 모르피즘 변형블록;
    상기 아이소 모르피즘 변형블록의 출력데이터에 대하여 인버젼 변형연산을 수행하는 인버젼 변형블록;
    상기 인버젼 변형블록의 출력데이터에 대하여 인버스 아이소 모르피즘 변형연산을 수행하는 인버스 아이소 모르피즘 변형블록;
    상기 인버스 아이소 모르피즘 변형블록의 출력데이터에 대하여 어핀 변형연산을 수행하는 어핀 변형블록; 및
    상기 제2제어신호에 따라, 상기 어핀 변형블록의 출력데이터 및 상기 인버스 아이소 모르피즘 변형블록의 출력데이터 중에서 하나를 선택하여 출력하는 제4멀티플렉서를 구비하는 것을 특징으로 하는 매스킹 방법이 적용된 AES 암호시스템.
  12. 제11항에 있어서, 상기 인버젼 변형블록은,
    합성 필드(composite field)인 갈로아 필드(Galois Field)
    Figure 112004010811582-pat00060
    에서 구현되며,
    4비트의 제1데이터에 대해 제곱연산을 수행하는 4비트 제곱연산블록;
    상기 4비트 제곱연산블록의 결과 데이터에 대해 상수곱셈연산을 수행하는 4비트 상수곱셈연산블록;
    4비트의 제2데이터 및 상기 4비트의 제1데이터에 대해 XOR 연산을 수행하는 제1 XOR 게이트;
    상기 제1 XOR 게이트의 출력데이터 및 상기 4비트의 제2데이터에 대해 곱셈연산을 수행하는 4비트 제1곱셈연산블록;
    상기 4비트 제1곱셈연산블록 및 상기 4비트 상수곱셈연산블록의 출력데이터 에 대해 XOR 연산을 수행하는 제2 XOR 게이트;
    상기 제2 XOR 게이트의 출력데이터에 대해 인버젼(inversion) 연산을 수행하는 4비트 인버젼 연산블록;
    상기 제1 XOR 게이트의 출력데이터 및 상기 4비트 인버젼 블록의 출력데이터에 대해 곱셈연산을 수행하는 제2곱셈연산블록;
    상기 제1데이터 및 상기 4비트 인버젼 블록의 출력데이터에 대해 곱셈연산을 수행하는 제3곱셈연산블록을 구비하는 것을 특징으로 하는 매스킹 방법이 적용된 AES 암호시스템.
  13. 제12항에 있어서, 상기 4비트 제1곱셈연산블록 내지 상기 4비트 제3곱셈블록 각각은,
    입력되는 4비트의 제1경로데이터 중 상위 2비트의 데이터 및 하위 2비트의 데이터에 대해 XOR 연산을 수행하는 제3 XOR 게이트;
    입력되는 4비트의 제2경로데이터 중 상위 2비트의 데이터 및 하위 2비트의 데이터에 대해 XOR 연산을 수행하는 제4 XOR 게이트;
    상기 제1경로데이터 중 상위 2비트의 데이터 및 상기 제2경로데이터 중 상위 2비트의 데이터에 대해 곱셈연산을 수행하는 2비트 제1곱셈연산블록;
    상기 제3 XOR 게이트의 출력데이터 및 상기 제4 XOR 게이트의 출력데이터에 대해 곱셈연산을 수행하는 2비트 제2곱셈연산블록;
    상기 제1경로데이터의 하위 2비트 및 상기 제2경로데이터의 하위 2비트에 대 해 곱셈연산을 수행하는 2비트 제3곱셈연산블록;
    상기 2비트 제3곱셈연산블록의 출력데이터에 대해 상수곱셈연산을 수행하는 2비트 제4곱셈연산블록;
    상기 2비트 제1곱셈연산블록의 출력데이터 및 상기 2비트 제4곱셈연산블록의 출력데이터에 대해 XOR 연산을 수행하는 제5 XOR 게이트; 및
    상기 2비트 제1곱셈연산블록의 출력데이터 및 상기 2비트 제2곱셈연산블록의 출력데이터에 대해 XOR 연산을 수행하는 제6 XOR 게이트를 구비하며,
    상기 제5 XOR 연산블록의 2비트 데이터 및 상기 제6 XOR 연산블록의 2비트 데이터가 동시에 출력되는 것을 특징으로 하는 매스킹 방법이 적용된 AES 암호시스템.
  14. 제12항에 있어서, 상기 4 비트 인버젼 연산블록은,
    입력된 4비트의 데이터 중 상위 2비트의 데이터에 대하여 제곱연산을 수행하는 2비트 제곱 연산블록;
    상기 2비트 제곱연산블록의 출력데이터에 대해 상수곱셈연산을 수행하는 상기 2비트 상수곱셈 연산블록;
    상기 상위 2비트의 데이터 및 하위 2비트의 데이터에 대해 XOR 연산을 수행하는 제3 XOR 게이트;
    상기 제3 XOR 게이트의 출력데이터 및 상기 하위 2비트의 데이터에 대해 곱셈연산을 수행하는 2비트 제1곱셈연산블록;
    상기 2비트 상수곱셈연산블록의 출력데이터 및 상기 제1곱셈연산블록의 출력데이터에 대해 XOR 연산을 수행하는 제4 XOR 게이트;
    상기 제4 XOR 게이트의 출력데이터에 대해 인버젼 연산을 수행하는 2비트 인버젼 연산블록;
    상기 2비트 인버젼 연산블록의 출력데이터 및 상기 제3 XOR 게이트의 출력데이터에 대해 곱셈연산을 수행하는 2비트 제2곱셈연산블록; 및
    상기 2비트 인버젼 연산블록의 출력데이터 및 상기 상위 2비트의 데이터에 대해 곱셈연산을 수행하는 2비트 제3곱셈연산블록을 구비하는 것을 특징으로 하는 매스킹 방법이 적용된 AES 암호시스템.
  15. 원본데이터 뿐만 아니라 소정의 랜덤 데이터도 일정한 원칙에 따라 연산 처리하여 암호화하는 매스킹 방법이 적용된 AES(Advanced Encryption Standard) 암호방법에 있어서,
    라운드 키(round key), 플레인 텍스트(plain text) 및 매스킹 데이터(masking data)를 이용한 라운드 연산을 수행하여 사이퍼 텍스트(cipher text)를 출력하는 암호화 단계 및
    라운드 키, 사이퍼 텍스트 및 매스킹 데이터를 이용한 라운드 연산을 수행하여 플레인 텍스트를 출력하는 복호화 단계로 구성되며,
    각 라운드 연산을 수행하는 단계는,
    애드라운드 키 변형(add round key transformation) 단계;
    서브바이트 변형(sub bytes transformation) 단계;
    쉬프트로우 변형(shift rows transformation) 단계; 및
    믹스컬럼 변형(mix columns transformation) 단계를 구비하며,
    상기 서브바이트 변형단계는,
    선형함수의 특성을 가지는 어핀 변형단계, 인버스 어핀 변형단계, 아이소모르피즘 단계 및 인버스 아이소모르피즘 단계와 비 선형함수의 특징을 가지는 인버젼 단계를 구비하며,
    상기 아이소모르피즘 단계, 인버스 아이소모르피즘 단계 및 인버젼 단계는,
    합성 필드(Composite field)인 필드인갈로아 필드(Galois Field)
    Figure 112006029735051-pat00061
    을 이용하여 실현되며,
    Figure 112006029735051-pat00062
    도메인의 원소를
    Figure 112006029735051-pat00063
    도메인의 원소로 변환한 뒤,
    Figure 112006029735051-pat00064
    도메인의 원소는
    Figure 112006029735051-pat00065
    도메인의 원소로,
    Figure 112006029735051-pat00066
    도메인의 원소는
    Figure 112006029735051-pat00067
    도메인의 원소로 각각 변환되어 구현되는 것을 특징으로 하는 매스킹 방법이 적용된 AES 암호방법.
  16. 제15항에 있어서, 상기 소정의 매스킹 데이터는,
    임의의 랜덤 데이터인 것을 특징으로 하는 매스킹 방법이 적용된 AES 암호방법.
  17. 제16항에 있어서, 상기 소정의 매스킹 데이터는,
    암호화 작업이 수행되는 매 라운드(round)마다 그 값이 변하는 것을 특징으로 하는 매스킹 방법이 적용된 AES 암호방법.
KR1020040017671A 2004-03-16 2004-03-16 매스킹 방법이 적용된 데이터 암호처리장치, aes암호시스템 및 aes 암호방법. KR100594265B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020040017671A KR100594265B1 (ko) 2004-03-16 2004-03-16 매스킹 방법이 적용된 데이터 암호처리장치, aes암호시스템 및 aes 암호방법.
US11/063,912 US7965836B2 (en) 2004-03-16 2005-02-23 Data cipher processors
DE102005012098A DE102005012098B4 (de) 2004-03-16 2005-03-11 Datenchiffrierprozessor sowie AES-Chiffriersystem und AES-Chiffrierverfahren
JP2005075869A JP4787519B2 (ja) 2004-03-16 2005-03-16 マスキング方法が適用されたデータ暗号処理装置、aes暗号システム及びaes暗号方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040017671A KR100594265B1 (ko) 2004-03-16 2004-03-16 매스킹 방법이 적용된 데이터 암호처리장치, aes암호시스템 및 aes 암호방법.

Publications (2)

Publication Number Publication Date
KR20050092576A KR20050092576A (ko) 2005-09-22
KR100594265B1 true KR100594265B1 (ko) 2006-06-30

Family

ID=34983129

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040017671A KR100594265B1 (ko) 2004-03-16 2004-03-16 매스킹 방법이 적용된 데이터 암호처리장치, aes암호시스템 및 aes 암호방법.

Country Status (4)

Country Link
US (1) US7965836B2 (ko)
JP (1) JP4787519B2 (ko)
KR (1) KR100594265B1 (ko)
DE (1) DE102005012098B4 (ko)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8577026B2 (en) 2010-12-29 2013-11-05 Ternarylogic Llc Methods and apparatus in alternate finite field based coders and decoders
US7772999B2 (en) 2007-12-10 2010-08-10 Peter Lablans N-state ripple adder scheme coding with corresponding n-state ripple adder scheme decoding
FR2871969B1 (fr) * 2004-06-18 2006-12-01 Sagem Procede et dispositif d'execution d'un calcul cryptographique
US8577942B2 (en) * 2004-07-07 2013-11-05 Mitsubishi Electric Corporation Electronic device and data processing device for implementing cryptographic algorithms
GB2443357B (en) * 2005-01-27 2008-10-08 Samsung Electronics Co Ltd Cryptographic logic circuits and method of performing logic operations
GB2443358A (en) * 2005-01-27 2008-04-30 Samsung Electronics Co Ltd Cryptographic logic circuits and method of performing logic operations
GB2443356B (en) * 2005-01-27 2008-08-06 Samsung Electronics Co Ltd Cryptographic logic circuits and method of performing logic operations
GB2443355B (en) * 2005-01-27 2008-08-06 Samsung Electronics Co Ltd Cryptographic logic circuits and method of performing logic operations
KR100725169B1 (ko) * 2005-01-27 2007-06-04 삼성전자주식회사 전력 분석 공격에 안전한 논리 연산 장치 및 방법
KR100667189B1 (ko) * 2005-12-10 2007-01-12 한국전자통신연구원 휴대 기기를 위한 aes 암호화 장치 및 방법
WO2007121035A2 (en) 2006-03-23 2007-10-25 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
US7801299B2 (en) 2006-09-22 2010-09-21 Intel Corporation Techniques for merging tables
US7949130B2 (en) 2006-12-28 2011-05-24 Intel Corporation Architecture and instruction set for implementing advanced encryption standard (AES)
US8346839B2 (en) * 2007-03-30 2013-01-01 Intel Corporation Efficient advanced encryption standard (AES) datapath using hybrid rijndael S-box
WO2009029842A1 (en) * 2007-08-31 2009-03-05 Exegy Incorporated Method and apparatus for hardware-accelerated encryption/decryption
GB2453367A (en) * 2007-10-04 2009-04-08 Univ Newcastle Cryptographic processing using isomorphic mappings of Galois fields
US9191197B2 (en) * 2007-10-10 2015-11-17 Canon Kabushiki Kaisha AES encryption/decryption circuit
US8473751B2 (en) * 2007-12-13 2013-06-25 Oberthur Technologies Method for cryptographic data processing, particularly using an S box, and related device and software
US8233615B2 (en) * 2008-01-15 2012-07-31 Inside Secure Modular reduction using a special form of the modulus
US8879725B2 (en) 2008-02-29 2014-11-04 Intel Corporation Combining instructions including an instruction that performs a sequence of transformations to isolate one transformation
EP2273472B1 (en) * 2008-03-31 2016-02-17 Fujitsu Limited Coder equipped with common key code function and built-in equipment
JP5268609B2 (ja) * 2008-12-09 2013-08-21 株式会社東芝 暗号処理装置及び演算方法
KR101674947B1 (ko) * 2009-04-21 2016-11-10 엘지전자 주식회사 효율적인 보안 관련 처리
KR101026439B1 (ko) 2009-07-20 2011-04-07 한국전자통신연구원 Seed 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법
US8504845B2 (en) 2011-03-30 2013-08-06 Apple Inc. Protecting states of a cryptographic process using group automorphisms
US8525545B1 (en) 2011-08-26 2013-09-03 Lockheed Martin Corporation Power isolation during sensitive operations
US8624624B1 (en) 2011-08-26 2014-01-07 Lockheed Martin Corporation Power isolation during sensitive operations
US20130067212A1 (en) * 2011-09-14 2013-03-14 Augustin J. Farrugia Securing implementation of cryptographic algorithms using additional rounds
CN103384197B (zh) * 2012-05-03 2016-08-31 国家电网公司 一种防御对分组算法能量攻击的电路、芯片和方法
DE102012018924A1 (de) 2012-09-25 2014-03-27 Giesecke & Devrient Gmbh Seitenkanalgeschützte Maskierung
JP5500277B2 (ja) * 2013-01-28 2014-05-21 富士通株式会社 共通鍵暗号機能を搭載した暗号化装置及び組込装置
KR102133200B1 (ko) * 2013-08-08 2020-07-13 서울대학교산학협력단 데이터의 보호 방법 및 장치
DE102014004378A1 (de) * 2014-03-26 2015-10-01 Giesecke & Devrient Gmbh Speichereffiziente seitenkanalgeschützte Maskierung
US9800406B2 (en) * 2014-05-21 2017-10-24 Intel Corporation Technologies for modifying a first cryptographic cipher with operations of a second cryptographic cipher
CN105809063B (zh) * 2014-12-29 2019-01-15 联想(北京)有限公司 一种数据处理方法及安全芯片装置
US10103873B2 (en) * 2016-04-01 2018-10-16 Intel Corporation Power side-channel attack resistant advanced encryption standard accelerator processor
CN109670320B (zh) * 2017-10-13 2023-04-25 三星电子株式会社 加密设备和解密设备、以及其操作方法
CN108964872B (zh) * 2018-07-23 2020-05-26 武汉大学 一种基于aes的加密方法及装置
US11507699B2 (en) * 2019-09-27 2022-11-22 Intel Corporation Processor with private pipeline
US11909857B2 (en) * 2019-12-23 2024-02-20 Intel Corporation Functionally safe encryption for vehicle to anything communication
US11632231B2 (en) * 2020-03-05 2023-04-18 Novatek Microelectronics Corp. Substitute box, substitute method and apparatus thereof
JP7314108B2 (ja) * 2020-08-27 2023-07-25 株式会社東芝 暗号処理装置、暗号処理方法およびプログラム
WO2024086243A1 (en) * 2022-10-19 2024-04-25 Cryptography Research, Inc. Protection of polynomial cryptographic operations against side-channel attacks with change-of-variable transformations

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5740249A (en) * 1996-04-09 1998-04-14 Kabushiki Kaisha Toshiba Encryption apparatus and method capable of controlling encryption process in accordance with an internal state
JPH10232606A (ja) * 1996-12-20 1998-09-02 Toshiba Corp 暗号化方法及び復号化方法並びに暗号化装置及び復号化装置
KR20030051111A (ko) * 2001-12-18 2003-06-25 신경욱 AES Rijndael(라인달) 암호 알고리듬의 하드웨어 구현을위한 라운드 처리부 회로 및 온라인 라운드 키 생성 회로
WO2003101020A1 (en) * 2002-05-23 2003-12-04 Atmel Corporation Advanced encryption standard (aes) hardware cryptographic engine
JP2004002057A (ja) * 2002-05-29 2004-01-08 Central Glass Co Ltd ガラスの着色方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69729433T2 (de) * 1996-12-23 2005-06-09 Canon K.K. Kodierte Modulation für Konstellationen, welche weniger Bits pro Symbol haben, als vom Kodierungsschema verlangt wird
JP3600454B2 (ja) * 1998-08-20 2004-12-15 株式会社東芝 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
US6611512B1 (en) * 1998-10-14 2003-08-26 Agere Systems Inc. Apparatus and method for scheduling correlation operations of a DS-CDMA shared correlator
US6574772B1 (en) * 2000-02-04 2003-06-03 Northrop Grumman Corporation Efficient galois field multiplier structures for error-correction encoding and decoding
KR100377176B1 (ko) * 2000-06-12 2003-03-26 주식회사 하이닉스반도체 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
US6766344B2 (en) 2001-05-08 2004-07-20 International Business Machines Corporation Processing Galois Field arithmetic
US6937727B2 (en) * 2001-06-08 2005-08-30 Corrent Corporation Circuit and method for implementing the advanced encryption standard block cipher algorithm in a system having a plurality of channels
JP4596686B2 (ja) 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
JP3851115B2 (ja) 2001-06-28 2006-11-29 富士通株式会社 暗号回路
EP1419436B1 (en) 2001-08-20 2010-10-13 Infineon Technologies AG Apparatus and method for performing a cryptographic algorithm
TW527783B (en) 2001-10-04 2003-04-11 Ind Tech Res Inst Encryption/deciphering device capable of supporting advanced encryption standard
US6957243B2 (en) 2001-10-09 2005-10-18 International Business Machines Corporation Block-serial finite field multipliers
US7177891B2 (en) * 2002-10-09 2007-02-13 Analog Devices, Inc. Compact Galois field multiplier engine
US7508937B2 (en) * 2001-12-18 2009-03-24 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
US7257229B1 (en) * 2002-06-07 2007-08-14 Winbond Electronics Corporation Apparatus and method for key scheduling
AU2003249548A1 (en) 2002-08-06 2004-02-23 Discretix Technologies Ltd. Method and device of manipulating data in finite fields
EP1625693A2 (en) * 2003-05-14 2006-02-15 Koninklijke Philips Electronics N.V. A hardware implementation of the mixcolumn / invmixcolumn functions
KR100574965B1 (ko) * 2004-01-19 2006-05-02 삼성전자주식회사 유한체 곱셈기
KR100610367B1 (ko) * 2004-06-19 2006-08-10 삼성전자주식회사 정보 누출 공격을 방지하기 위한 갈로아 필드 상의 곱셈방법 및 장치, 역변환 장치 그리고 aes 바이트 치환연산장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5740249A (en) * 1996-04-09 1998-04-14 Kabushiki Kaisha Toshiba Encryption apparatus and method capable of controlling encryption process in accordance with an internal state
JPH10232606A (ja) * 1996-12-20 1998-09-02 Toshiba Corp 暗号化方法及び復号化方法並びに暗号化装置及び復号化装置
KR20030051111A (ko) * 2001-12-18 2003-06-25 신경욱 AES Rijndael(라인달) 암호 알고리듬의 하드웨어 구현을위한 라운드 처리부 회로 및 온라인 라운드 키 생성 회로
WO2003101020A1 (en) * 2002-05-23 2003-12-04 Atmel Corporation Advanced encryption standard (aes) hardware cryptographic engine
JP2004002057A (ja) * 2002-05-29 2004-01-08 Central Glass Co Ltd ガラスの着色方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
1020040017671 - 620701
1020040017671 - 620727
2004002057

Also Published As

Publication number Publication date
US7965836B2 (en) 2011-06-21
JP4787519B2 (ja) 2011-10-05
US20050207571A1 (en) 2005-09-22
JP2005266810A (ja) 2005-09-29
DE102005012098A1 (de) 2005-10-13
KR20050092576A (ko) 2005-09-22
DE102005012098B4 (de) 2010-04-08

Similar Documents

Publication Publication Date Title
KR100594265B1 (ko) 매스킹 방법이 적용된 데이터 암호처리장치, aes암호시스템 및 aes 암호방법.
EP1873671B1 (en) A method for protecting IC Cards against power analysis attacks
Zhang et al. Self-adaptive permutation and combined global diffusion for chaotic color image encryption
RU2279123C2 (ru) Вычислительный модуль и способ выполнения арифметической операции с зашифрованными операндами
US8971526B2 (en) Method of counter-measuring against side-channel attacks
CN101006677B (zh) 用于实施加密运算的方法和装置
US20210165633A1 (en) Protection system and method
EP2293487A1 (en) A method of diversification of a round function of an encryption algorithm
Norouzi et al. Breaking a novel image encryption scheme based on an improper fractional order chaotic system
KR102397579B1 (ko) 부채널 분석 방지를 위한 화이트박스 암호 방법 및 장치
Gamido et al. Modified AES for text and image encryption
Mewada et al. Exploration of efficient symmetric AES algorithm
Kendhe et al. A survey report on various cryptanalysis techniques
EP1646174A1 (en) Method and apparatus for generating cryptographic sets of instructions automatically and code generation
Sadkhan et al. A proposed ANFIS evaluator for RSA cryptosystem used in cloud networking
Arshad et al. New extension of data encryption standard over 128-bit key for digital images
KR101601684B1 (ko) 부채널 공격에 대응하는 대칭키 암호 알고리즘 구현 방법
Wu et al. Resynchronization Attacks on WG and LEX
KR101506499B1 (ko) 마스킹이 적용된 seed를 이용한 암호화 방법
Priya et al. FPGA implementation of efficient AES encryption
Buell Modern symmetric ciphers—Des and Aes
Goudarzi et al. Generalized polynomial decomposition for s-boxes with application to side-channel countermeasures
Sachdeva et al. Implementation of AES-128 using multiple cipher keys
Hafsa et al. Hybrid encryption model based on advanced encryption standard and elliptic curve pseudo random
JP2002510058A (ja) 2進データ・ブロックの暗号変換のための方法

Legal Events

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

Payment date: 20130531

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140530

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150601

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160531

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190530

Year of fee payment: 14