KR102045843B1 - 블록 암호화 처리 방법 및 장치 - Google Patents
블록 암호화 처리 방법 및 장치 Download PDFInfo
- Publication number
- KR102045843B1 KR102045843B1 KR1020130031652A KR20130031652A KR102045843B1 KR 102045843 B1 KR102045843 B1 KR 102045843B1 KR 1020130031652 A KR1020130031652 A KR 1020130031652A KR 20130031652 A KR20130031652 A KR 20130031652A KR 102045843 B1 KR102045843 B1 KR 102045843B1
- Authority
- KR
- South Korea
- Prior art keywords
- value
- opc
- logical operation
- order
- rand
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 블록 암호화 처리 방법 및 장치에 관한 것이다. 개시된 블록 암호화 처리 방법은 OP를 블록 알고리즘으로 암호화하여 생성된 OPc, 난수 RAND 및 난수 S를 기 설정된 바이트 단위로 분할하여 OPc 분할값, RAND 분할값 및 S 분할값을 생성하는 단계와, RAND 분할값과 OPc 분할값을 이용한 처리와 S 분할값과 OPc 분할값을 이용한 처리의 순서를 결정하는 단계와, 결정된 순서에 따라 RAND 분할값과 OPc 분할값과의 논리 연산 및 S 분할값과 OPc 분할값과의 논리 연산을 순차로 수행하는 단계와, 결정된 순서에 따라 RAND 분할값과 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화와 S 분할값과 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화를 순차로 수행하는 단계와, S 분할값과 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화 결과를 제거하고, RAND 분할값과 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화 결과를 출력하는 단계를 포함한다. 이러한 본 발명은 OPc 값과 난수 RAND와의 배타적 논리 연산이 여러 번에 걸쳐서 수행되고, 난수 RAND를 이용한 논리 연산 및 암호화 처리와 난수 S를 이용한 논리 연산 및 암호화 처리가 임의의 순서로 이루어지기 때문에, 상관 전력분석 시에 어떤 지점의 전력 소비 파형에서 상관 계수를 계산하여야 할지에 대한 공격 복잡도가 증가되어 상관 전력분석 공격을 효과적으로 방어할 수 있는 이점이 있다.
Description
본 발명은 블록 암호화 처리 방법 및 장치에 관한 것으로, 더욱 상세하게는 OP(operator variant algorithm configuration field)를 블록 알고리즘으로 암호화하여 생성된 OPc와 난수 RAND에 대한 논리 연산 및 블록 암호화를 처리하는 블록 암호화 처리 방법 및 장치에 관한 것이다.
주지하는 바와 같이, 3세대 이동통신에서 가입자 인증은 USIM(Universal Subscriber Identity Module)을 통해 이루어진다. USIM은 가입자 정보를 탑재한 응용프로그램 형태의 SIM(Subscriber Identity Module)과 다중 응용프로그램을 수용하기 위한 스마트카드 하드웨어 플랫폼을 의미하는 UICC(universal IC card)가 결합된 형태를 가지며, 3G 이동통신 단말기에 부착되어 이동통신망의 서비스에 접근하거나, 가입자 인증과 글로벌 로밍 등의 통신 서비스가 가능하도록 하며, 이외에도 전자상거래 등 다양한 부가서비스를 지원하는 스마트카드이다.
이러한 3세대 이동통신에서는 2세대 인증 메커니즘의 취약성 보완 및 양방향 인증을 위해 새로운 인증 프로토콜을 설계하였다. 이에 3GPP는 인증 메커니즘의 핵심 알고리즘으로 밀레나제(Milenage) 키 생성 알고리즘의 사용을 권고하고 있다.
밀레나제 키 생성 알고리즘은 인증, 무결성, 익명성 등에 사용되는 키 생성 알고리즘의 한 종류로 블록 암호 알고리즘을 사용하며, 내부적으로는 AES(Advanced Encryption Standard)를 이용한 인증 및 키 생성이 이루어진다. 알고리즘에 대한 입력은 랜덤으로 생성한 128비트 난수 RAND와 오퍼레이터(operator)가 지정한 128비트 OP를 블록 알고리즘으로 암호화하여 생성된 OPc 값이다. RAND와 OPc 값을 배타적 논리합 연산을 한 값을 블록 알고리즘의 입력 값으로 하여 f1, f1*, f2, f3, f4, f5, f5*의 세션키를 생성한다.
하지만 이러한 밀레나제 키 생성 알고리즘은 태생적으로 상관 전력분석을 통해 인증키를 생성하는데 사용되는 마스터 키가 누출될 수 있다는 문제점이 있다.
상관 전력분석을 통한 공격 과정을 살펴보면 다음과 같다.
USIM 내부에서 배타적 논리합 연산이 되는 난수 RAND는 밀레나제의 입력으로 들어온 평문이고, OPc 값은 USIM 내부에서 계산되거나 미리 계산되어 저장되어 있는 고정값으로 공격자가 알지 못한다.
공격자는 AES를 공격하기 위해서는 AES로 들어가는 입력값을 알아야 하며, 이를 달성하기 위해서는 먼저 OPc 값을 알아내야 한다. 이를 위해 공격자는 밀레나제 입력으로 들어갈 난수 RAND와 OPc 값을 생성한다.
그리고, 생성된 난수 RAND와 OPc 값으로 배타적 논리합 연산을 하며, 이때 배타적 논리합 연산에 대하여 파워 모델(power model)이 적용된 부채널 공격을 실시하기 위하여 배타적 논리합 연산에 소비된 전력을 추정하는 값, 즉 해밍 웨이트(hamming weight) 값을 구한다.
아울러, 난수 RAND를 실제로 밀레나제의 입력값으로 넣고 OPc 값과의 배타적 논리합 연산이 실시되는 지점에서 전력 소비 파형을 수집한다.
다음으로, 공격지점으로부터 수집한 전력 소비 파형과 앞서 구한 해밍 웨이트 사이의 피어슨 상관 관계식을 이용해 상관 계수를 계산한다. 여기서, 상관 전력분석은 해밍 웨이트와 소비전력 사이의 상관 계수값을 계산하여 이루어진다.
이 값 중에서 가장 높은 상관 계수값이 발생하는 지점과 해당하는 값을 구하여 OPc 값을 구한다. OPc 값을 구하게 되면 공격자는 이미 난수 RAND를 선택할 수 있으므로 AES에 대한 입력값을 알 수 있게 되며, 방지 기법이 적용되지 않은 AES에 대하여 CPA 공격을 수행할 수 있게 된다.
본 발명은 전술한 바와 같은 종래 기술의 문제점을 해결하기 위해 제안한 것으로서, AES-밀레나제(Advanced Encryption Standard - Milenage)에 관한 상관 전력분석(CPA, Correlation Power Analysis) 공격을 방어할 수 있는 블록 암호화 처리 방법 및 장치를 제공한다.
본 발명의 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 제 1 관점으로서 블록 암호화 처리 방법은, OP(operator variant algorithm configuration field)를 블록 알고리즘으로 암호화하여 생성된 OPc, 난수 RAND 및 난수 S를 기 설정된 바이트 단위로 분할하여 OPc 분할값, RAND 분할값 및 S 분할값을 생성하는 단계와, 상기 RAND 분할값과 상기 OPc 분할값을 이용한 처리와 상기 S 분할값과 상기 OPc 분할값을 이용한 처리의 순서를 결정하는 단계와, 결정된 상기 순서에 따라 상기 RAND 분할값과 상기 OPc 분할값과의 논리 연산 및 상기 S 분할값과 상기 OPc 분할값과의 논리 연산을 순차로 수행하는 단계와, 결정된 상기 순서에 따라 상기 RAND 분할값과 상기 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화와 상기 S 분할값과 상기 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화를 순차로 수행하는 단계와, 상기 S 분할값과 상기 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화 결과를 제거하고, 상기 RAND 분할값과 상기 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화 결과를 출력하는 단계를 포함할 수 있다.
여기서, 상기 순서를 결정하는 단계는, 상기 논리 연산의 순서와 상기 블록 암호화의 순서를 별개로 결정할 수 있다.
상기 순서를 결정하는 단계는, 상기 논리 연산의 순서와 상기 블록 암호화의 순서를 임의로 결정할 수 있다.
본 발명의 제 2 관점으로서 블록 암호화 처리 장치는, OP를 블록 알고리즘으로 암호화하여 생성된 OPc, 난수 RAND 및 난수 S를 기 설정된 바이트 단위로 분할하여 OPc 분할값, RAND 분할값 및 S 분할값을 생성하는 난독화부와, 상기 RAND 분할값과 상기 OPc 분할값을 이용한 처리와 상기 S 분할값과 상기 OPc 분할값을 이용한 처리의 순서를 결정하는 순서 결정부와, 결정된 상기 순서에 따라 상기 RAND 분할값과 상기 OPc 분할값과의 논리 연산 및 상기 S 분할값과 상기 OPc 분할값과의 논리 연산을 순차로 수행하는 논리 연산부와, 결정된 상기 순서에 따라 상기 RAND 분할값과 상기 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화와 상기 S 분할값과 상기 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화를 순차로 수행하는 암호화부와, 상기 S 분할값과 상기 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화 결과를 제거하고, 상기 RAND 분할값과 상기 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화 결과를 출력하는 데이터 출력부를 포함할 수 있다.
여기서, 상기 순서 결정부는, 상기 논리 연산의 순서와 상기 블록 암호화의 순서를 별개로 결정할 수 있다.
상기 순서 결정부는, 상기 논리 연산의 순서와 상기 블록 암호화의 순서를 임의로 결정할 수 있다.
본 발명의 실시예에 의하면, OPc 값과 난수 RAND와의 배타적 논리 연산이 여러 번에 걸쳐서 수행되고, 난수 RAND를 이용한 논리 연산 및 암호화 처리와 난수 S를 이용한 논리 연산 및 암호화 처리가 임의의 순서로 이루어지기 때문에, 상관 전력분석 시에 어떤 지점의 전력 소비 파형에서 상관 계수를 계산하여야 할지에 대한 공격 복잡도가 증가되어 상관 전력분석 공격을 효과적으로 방어할 수 있다.
도 1은 본 발명의 실시예에 따른 블록 암호화 처리 방법을 적용할 수 있는 밀레나제 키 생성 알고리즘의 개념도이다.
도 2는 본 발명의 실시예에 따른 블록 암호화 처리 장치의 블록 구성도이다.
도 3은 본 발명의 실시예에 따른 블록 암호화 처리 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 실시예에 따른 블록 암호화 처리 장치의 블록 구성도이다.
도 3은 본 발명의 실시예에 따른 블록 암호화 처리 방법을 설명하기 위한 흐름도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 실시예에 따른 블록 암호화 처리 방법을 적용할 수 있는 밀레나제 키 생성 알고리즘의 개념도이다.
이에 나타낸 바와 같이 본 발명의 실시예에 따른 블록 암호화 처리 방법을 수행할 수 있는 블록 암호화 처리 장치(100)는 밀레나제 키 생성 알고리즘에 적용되어 OP(operator variant algorithm configuration field)를 블록 알고리즘으로 암호화하여 생성된 OPc 및 난수 RAND를 입력으로 하여 상관 전력분석(CPA, Correlation Power Analysis) 공격을 방어할 수 있는 블록 암호화 처리를 수행한다.
이러한 도 1에서, EK는 블록 암호 알고리즘이며, AES-밀레나제는 블록 암호 알고리즘(Ek)을 AES로 하는 AES 기반 밀레나제 알고리즘이고, RAND는 128비트 난수이며, OP는 운영자(operator)가 임의로 생성한 값이고, 는 배타적 논리합 연산(XOR)이며, c1, c2, c3, c4 및 c5는 상수값이다.
블록 암호화 처리 장치(100)에 대한 입력은 랜덤으로 생성한 128비트 난수 RAND와 오퍼레이터(operator)가 지정한 128비트 OP를 블록 알고리즘으로 암호화하여 생성된 OPc 값이며, 블록 암호화 처리 장치(100)에 의한 블록 암호화 결과값과 SQN(sequence number) 및 AMF(Authentication Management Field)를 AES의 입력으로 하여 f1, f1*, f2, f3, f4, f5, f5*의 세션키를 생성한다.
도 2는 본 발명의 실시예에 따른 블록 암호화 처리 장치의 블록 구성도이다.
이에 나타낸 바와 같이 블록 암호화 처리 장치(100)는, 난수 생성부(110), 난독화부(120), 순서 결정부(130), 논리 연산부(140), 암호화부(150), 데이터 출력부(160)를 포함한다. 난독화부(120)는 제 1 난독화부(121) 및 제 2 난독화부(125)를 포함하며, 논리 연산부(140)는 제 1 논리 연산부(141) 및 제 2 논리 연산부(145)를 포함하고, 암호화부(150)는 제 1 암호화부(151) 및 제 2 암호화부(155)를 포함한다.
난수 생성부(110)는 128비트 난수 S를 생성하여 제 2 난독화부(125)에게 제공한다. 예컨대, 외부에서 생성된 난수 S가 제 2 난독화부(125)로 입력되는 경우에 난수 생성부(110)는 제거될 수 있다.
제 1 난독화부(121)는 OP를 블록 알고리즘으로 암호화하여 생성된 OPc와 난수 RAND을 기 설정된 바이트 단위로 분할하여 OPc 분할값 및 RAND 분할값을 생성하며, 순서 결정부(130)의 순서 제어에 따라 적정 시간에 OPc 분할값 및 RAND 분할값을 제 1 논리 연산부(141)에게 제공한다.
제 2 난독화부(125)는 OP를 블록 알고리즘으로 암호화하여 생성된 OPc와 난수 S를 기 설정된 바이트 단위로 분할하여 OPc 분할값 및 S 분할값을 생성하며, 순서 결정부(130)의 순서 제어에 따라 적정 시간에 OPc 분할값 및 S 분할값을 제 2 논리 연산부(145)에게 제공한다.
순서 결정부(130)는 RAND 분할값과 OPc 분할값을 이용한 처리와 S 분할값과 OPc 분할값을 이용한 처리의 순서를 결정하며, 결정된 순서에 따라 제 1 난독화부(121) 및 제 2 난독화부(125)를 제어하여 RAND 분할값 및 OPc 분할값의 제공 시간과 S 분할값 및 OPc 분할값의 제공 시간을 제어하고, 제 1 암호화부(151) 및 제 2 암호화부(155)에 의한 블록 암호화의 순서를 제어한다.
제 1 논리 연산부(141)는 순서 결정부(130)에 의해 결정된 논리 연산 순서에 따라 RAND 분할값과 OPc 분할값과의 논리 연산을 수행한다.
제 2 논리 연산부(145)는 순서 결정부(130)에 의해 결정된 논리 연산 순서에 따라 S 분할값과 OPc 분할값과의 논리 연산을 수행한다.
제 1 암호화부(151)는 순서 결정부(130)에 의해 결정된 암호화 순서에 따라 RAND 분할값과 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화를 수행한다.
제 2 암호화부(155)는 순서 결정부(130)에 의해 결정된 암호화 순서에 따라 S 분할값과 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화를 수행한다.
데이터 출력부(160)는 제 2 암호화부(155)에 의한 S 분할값과 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화 결과를 제거하고, 제 1 암호화부(155)에 의한 RAND 분할값과 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화 결과를 출력한다.
도 3은 본 발명의 실시예에 따른 블록 암호화 처리 방법을 설명하기 위한 흐름도이다.
이에 나타낸 바와 같이 본 발명의 실시예에 따른 블록 암호화 처리 방법은, OP를 블록 알고리즘으로 암호화하여 생성된 OPc, 난수 RAND 및 난수 S를 기 설정된 바이트 단위로 분할하여 OPc 분할값, RAND 분할값 및 S 분할값을 생성하는 단계(S201, S203)와, RAND 분할값과 OPc 분할값을 이용한 처리와 S 분할값과 OPc 분할값을 이용한 처리의 순서를 결정하는 단계(S205)와, 결정된 순서에 따라 RAND 분할값과 OPc 분할값과의 논리 연산 및 S 분할값과 OPc 분할값과의 논리 연산을 순차로 수행하는 단계(S207)와, 결정된 순서에 따라 RAND 분할값과 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화와 S 분할값과 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화를 순차로 수행하는 단계(S209)와, S 분할값과 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화 결과를 제거하고, RAND 분할값과 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화 결과를 출력하는 단계(S211)를 포함한다.
이하, 도 1 내지 도 3을 참조하여 본 발명의 실시예에 따른 블록 암호화 처리 장치에 의한 블록 암호화 처리 과정을 자세히 살펴보기로 한다.
먼저, OP를 블록 알고리즘으로 암호화하여 생성된 OPc가 난독화부(120)의 제 1 난독화부(121) 및 제 2 난독화부(125)에 입력되고, 128비트 난수 RAND가 제 1 난독화부(121)에 입력되며, 난수 생성부(110)는 128비트 난수 S를 생성하여 제 2 난독화부(125)에게 제공한다(S201).
그러면, 제 1 난독화부(121)는 OPc와 난수 RAND을 기 설정된 바이트 단위로 분할하여 OPc 분할값 및 RAND 분할값을 생성하며, 제 2 난독화부(125)는 OP를 블록 알고리즘으로 암호화하여 생성된 OPc와 난수 S를 기 설정된 바이트 단위로 분할하여 OPc 분할값 및 S 분할값을 생성한다. 예컨대, 제 1 난독화부(121)와 제 2 난독화부(125)는 OPc, RAND 또는 S를 4바이트 단위로 분할할 수 있다. 여기서, OPc 분할값은 K3||K2||K1||K0으로 나타내고, RAND 분할값은 R3||R2||R1||R0으로 나타내며, S 분할값은 S3||S2||S1||S0으로 나타내기로 한다. 여기서, ||는 연결연산자인 컨캐터네이션(concatenation) 함수를 의미한다(S203).
이때, 순서 결정부(130)는 RAND 분할값과 OPc 분할값을 이용한 처리와 S 분할값과 OPc 분할값을 이용한 처리의 순서를 결정하며, 결정된 순서에 따라 제 1 난독화부(121) 및 제 2 난독화부(125)를 제어하여 RAND 분할값 및 OPc 분할값의 제공 시간과 S 분할값 및 OPc 분할값의 제공 시간을 제어하고, 제 1 암호화부(151) 및 제 2 암호화부(155)에 의한 블록 암호화의 순서를 제어한다(S205).
그러면, 제 1 난독화부(121)는 순서 결정부(130)의 순서 제어에 따라 적정 시간에 OPc 분할값 및 RAND 분할값을 제 1 논리 연산부(141)에게 제공하며, 제 2 난독화부(125)는 순서 결정부(130)의 순서 제어에 따라 적정 시간에 OPc 분할값 및 S 분할값을 제 2 논리 연산부(145)에게 제공한다.
이후, 제 1 논리 연산부(141)는 순서 결정부(130)에 의해 결정된 논리 연산 순서에 따라 RAND 분할값과 OPc 분할값과의 논리 연산을 수행하며, 제 2 논리 연산부(145)는 순서 결정부(130)에 의해 결정된 논리 연산 순서에 따라 S 분할값과 OPc 분할값과의 논리 연산을 수행한다(S207).
그리고, 제 1 암호화부(151)는 순서 결정부(130)에 의해 결정된 암호화 순서에 따라 RAND 분할값과 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화를 수행하며, 제 2 암호화부(155)는 순서 결정부(130)에 의해 결정된 암호화 순서에 따라 S 분할값과 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화를 수행한다(S209).
예컨대, 논리 연산부(141)에 의한 논리 연산과 암호화부(150)에 의한 암호화 과정은 난독화부(120)가 OPc, RAND 및 S를 분할한 수만큼 여러 회에 걸쳐서 수행될 수 있다. 또, 순서 결정부(130)는 논리 연산의 순서와 암호화 처리의 순서를 별개로 결정할 수 있으며, 그 순서를 임의로 결정하여 어느 누구라도 예측할 수 없도록 할 수 있다.
다음으로, 데이터 출력부(160)는 제 2 암호화부(155)에 의한 S 분할값과 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화 결과를 제거하여 버린다. 그리고, 제 1 암호화부(155)에 의한 RAND 분할값과 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화 결과를 출력한다(S211).
한편, 단계 S201 내지 S211을 통해 설명한 블록 암호화 과정을 프로그래밍 언어로 표현하면 다음과 같다.
// AES(Temp1)의 결과값은 이후 밀레나제의 연산에 사용되고 AES(Temp2)는 버려진다.
End
앞서 설명한 바와 같이, 본 발명의 실시예에 따른 블록 암호화 처리 방법 및 장치에 의하면, 배타적 논리 연산이 여러 번에 걸쳐서 수행되고, 난수 RAND를 이용한 논리 연산 및 암호화 처리와 난수 S를 이용한 논리 연산 및 암호화 처리가 임의의 순서로 이루어지기 때문에, 상관 전력분석 시에 어떤 지점의 전력 소비 파형에서 상관 계수를 계산하여야 할지에 대한 공격 복잡도가 증가된다.
본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100 : 블록 암호화 처리 장치 110 : 난수 생성부
120 : 난독화부 130 : 순서 결정부
140 : 논리 연산부 150 : 암호화부
160 : 데이터 출력부
120 : 난독화부 130 : 순서 결정부
140 : 논리 연산부 150 : 암호화부
160 : 데이터 출력부
Claims (6)
- OP(operator variant algorithm configuration field)를 블록 알고리즘으로 암호화하여 생성된 OPc, 난수 RAND, 및 난수 S를 기 설정된 바이트 단위로 분할하여 OPc 분할값, RAND 분할값, 및 S 분할값을 생성하는 단계와,
상기 RAND 분할값과 상기 OPc 분할값을 이용한 처리와 상기 S 분할값과 상기 OPc 분할값을 이용한 처리의 순서를 결정하는 단계와,
결정된 상기 순서에 따라 상기 RAND 분할값과 상기 OPc 분할값과의 논리 연산 및 상기 S 분할값과 상기 OPc 분할값과의 논리 연산을 순차로 수행하는 단계와,
결정된 상기 순서에 따라 상기 RAND 분할값과 상기 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화와 상기 S 분할값과 상기 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화를 순차로 수행하는 단계와,
상기 S 분할값과 상기 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화 결과를 제거하고, 상기 RAND 분할값과 상기 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화 결과를 출력하는 단계를 포함하고,
상기 순서를 결정하는 단계는, 상기 논리 연산의 순서와 상기 블록 암호화의 순서를 별개로 결정하는 단계를 포함하는, 블록 암호화 처리 방법. - 삭제
- 제1항에서,
상기 순서를 결정하는 단계에서, 상기 논리 연산의 순서와 상기 블록 암호화의 순서는 임의로 결정되는, 블록 암호화 처리 방법. - OP(operator variant algorithm configuration field)를 블록 알고리즘으로 암호화하여 생성된 OPc, 난수 RAND, 및 난수 S를 기 설정된 바이트 단위로 분할하여 OPc 분할값, RAND 분할값, 및 S 분할값을 생성하는 난독화부와,
상기 RAND 분할값과 상기 OPc 분할값을 이용한 처리와 상기 S 분할값과 상기 OPc 분할값을 이용한 처리의 순서를 결정하는 순서 결정부와,
결정된 상기 순서에 따라 상기 RAND 분할값과 상기 OPc 분할값과의 논리 연산 및 상기 S 분할값과 상기 OPc 분할값과의 논리 연산을 순차로 수행하는 논리 연산부와,
결정된 상기 순서에 따라 상기 RAND 분할값과 상기 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화와 상기 S 분할값과 상기 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화를 순차로 수행하는 암호화부와,
상기 S 분할값과 상기 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화 결과를 제거하고, 상기 RAND 분할값과 상기 OPc 분할값과의 논리 연산 결과값에 대한 블록 암호화 결과를 출력하는 데이터 출력부를 포함하고,
상기 순서 결정부는, 상기 논리 연산의 순서와 상기 블록 암호화의 순서를 임의로 결정하는, 블록 암호화 처리 장치. - 제4항에서,
상기 순서 결정부는, 상기 논리 연산의 순서와 상기 블록 암호화의 순서를 임의로 결정할 때, 상기 논리 연산의 순서 및 상기 블록 암호화의 순서를 별개로 결정하는, 블록 암호화 처리 장치. - 삭제
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130031652A KR102045843B1 (ko) | 2013-03-25 | 2013-03-25 | 블록 암호화 처리 방법 및 장치 |
US13/943,188 US9083489B2 (en) | 2013-03-25 | 2013-07-16 | Block encryption method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130031652A KR102045843B1 (ko) | 2013-03-25 | 2013-03-25 | 블록 암호화 처리 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140116725A KR20140116725A (ko) | 2014-10-06 |
KR102045843B1 true KR102045843B1 (ko) | 2019-11-18 |
Family
ID=51569159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130031652A KR102045843B1 (ko) | 2013-03-25 | 2013-03-25 | 블록 암호화 처리 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9083489B2 (ko) |
KR (1) | KR102045843B1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9813235B2 (en) * | 2013-03-11 | 2017-11-07 | Indian Institute of Technology Kharagpur | Resistance to cache timing attacks on block cipher encryption |
CN106506142B (zh) * | 2016-11-22 | 2020-11-03 | 北京航空航天大学 | 一种低复杂度的aes一体化加解密器实现方法 |
EP3454502B1 (en) * | 2017-09-07 | 2020-08-05 | Nxp B.V. | Transceiver system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090010424A1 (en) * | 2007-07-05 | 2009-01-08 | Broadcom Corporation | System and Methods for Side-Channel Attack Prevention |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6408075B1 (en) * | 1998-11-30 | 2002-06-18 | Hitachi, Ltd. | Information processing equipment and IC card |
KR101102059B1 (ko) | 2010-01-04 | 2012-01-04 | 전자부품연구원 | 유도키의 난수성 평가 방법 |
-
2013
- 2013-03-25 KR KR1020130031652A patent/KR102045843B1/ko active IP Right Grant
- 2013-07-16 US US13/943,188 patent/US9083489B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090010424A1 (en) * | 2007-07-05 | 2009-01-08 | Broadcom Corporation | System and Methods for Side-Channel Attack Prevention |
Non-Patent Citations (1)
Title |
---|
ETSI TR 133 909 V4.0.1.(2001년6월)* |
Also Published As
Publication number | Publication date |
---|---|
US20140286486A1 (en) | 2014-09-25 |
US9083489B2 (en) | 2015-07-14 |
KR20140116725A (ko) | 2014-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109040090B (zh) | 一种数据加密方法及装置 | |
TWI733106B (zh) | 基於模型的預測方法和裝置 | |
JP5911654B2 (ja) | 乱数生成器及びストリーム暗号 | |
US10164771B2 (en) | Encryption method and encryption device | |
CN107038383B (zh) | 一种数据处理的方法和设备 | |
CN102546181B (zh) | 基于密钥池的云存储加解密方法 | |
US9553722B2 (en) | Generating a key based on a combination of keys | |
US9166789B2 (en) | Cryptographic processing apparatus | |
US9515821B2 (en) | Apparatus and method for data encryption | |
US20130195266A1 (en) | Apparatus and Method for Producing a Message Authentication Code | |
US8724804B2 (en) | Encryption processing apparatus | |
JP6575532B2 (ja) | 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム | |
JP2017519457A (ja) | 共有鍵を決定するためのデバイス | |
RU2016104606A (ru) | Устройство и способ согласования ключа | |
CN110505054B (zh) | 一种基于动态白盒的数据处理方法、装置及设备 | |
JP2013213930A (ja) | 暗号化装置、復号化装置、及びプログラム | |
CN110312054B (zh) | 图像的加解密方法、及相关装置、存储介质 | |
US10044499B2 (en) | Information processing apparatus, program, and storage medium | |
CN109687966A (zh) | 加密方法及其*** | |
KR102045843B1 (ko) | 블록 암호화 처리 방법 및 장치 | |
US9049004B2 (en) | Low-power encryption apparatus and method | |
CN106656500A (zh) | 加密装置及方法 | |
EP3298720B1 (en) | Computing with encrypted values | |
US10075290B2 (en) | Operator lifting in cryptographic algorithm | |
KR101440680B1 (ko) | 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치 |
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 |