KR101011264B1 - 아리아 마스킹 방법 및 이를 이용한 아리아 암호 장치 및방법 - Google Patents

아리아 마스킹 방법 및 이를 이용한 아리아 암호 장치 및방법 Download PDF

Info

Publication number
KR101011264B1
KR101011264B1 KR1020080005799A KR20080005799A KR101011264B1 KR 101011264 B1 KR101011264 B1 KR 101011264B1 KR 1020080005799 A KR1020080005799 A KR 1020080005799A KR 20080005799 A KR20080005799 A KR 20080005799A KR 101011264 B1 KR101011264 B1 KR 101011264B1
Authority
KR
South Korea
Prior art keywords
masking
key
random number
aria
round
Prior art date
Application number
KR1020080005799A
Other languages
English (en)
Other versions
KR20090079664A (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 KR1020080005799A priority Critical patent/KR101011264B1/ko
Publication of KR20090079664A publication Critical patent/KR20090079664A/ko
Application granted granted Critical
Publication of KR101011264B1 publication Critical patent/KR101011264B1/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
    • 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)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은 차분전력분석(DPA) 공격 및 키 스케줄링 공격에 안전한 아리아 마스킹 방법과 이를 이용한 아리아 암호 장치 및 방법에 관한 것이다. 본 발명에 따른 마스킹을 이용한 아라아 암호 장치는, 상기 장치를 제어하는 제어부로서, 마스킹 난수를 생성하고 상기 마스킹 난수와 두 종류의 에스박스를 이용하여 네 종류의 마스킹 에스박스를 생성하는 상기 제어부; 상기 마스킹 난수에 의해 입력데이터를 마스킹하여 마스킹 입력데이터(masked input data)를 생성하는 입력데이터 마스킹부; 외부로부터 입력되는 암호키로부터 상기 마스킹 난수에 의해 마스킹된 마스킹 라운드키(masked round-key)를 생성하는 키 스케줄링부; 및 상기 마스킹 라운드키 및 상기 네 종류의 마스킹 에스박스를 이용하여 상기 마스킹 입력데이터에 대해 각각의 라운드 연산을 수행하는 마스킹 암호연산부를 포함하며, DPA 공격 및 키 스케줄링 공격에 대한 안정성을 제공하고 하드웨어 자원 및 암호 연산시간을 감소시킨다.

Description

아리아 마스킹 방법 및 이를 이용한 아리아 암호 장치 및 방법{Masking method of ARIA , and ARIA encryption apparatus and method using thereof}
본 발명은 아리아 마스킹 방법과 이를 이용한 아리아 암호 장치 및 방법에 관한 것이며, 더 상세하게는 차분전력분석 공격(DPA) 및 키 스케줄링 공격에 안전한 아리아 마스킹 방법과 이를 이용한 아리아 암호 장치 및 방법에 관한 것이다.
디지털 정보사회가 고도화되고 전자상거래가 활성화됨에 따라, 암호기술은 인터넷을 기반으로 한 사회·경제적 활동의 안정성과 신뢰성, 그리고 사용자 프라이버시 보호 등을 위한 핵심 기술로서 인식되고 있다. 국내에서는 1960년대부터 기관, 연구소, 학계 등에서 대칭키 암호 기술을 연구하여 TTA 표준 대칭키 알고리듬인 SEED를 개발하여 현재 인터넷 뱅킹, 위성방송 및 IMT-2000에서 기본적인 보안 매커니즘으로 활용하고 있다.
그러나, SEED 알고리듬은 효율성보다는 안전성에 중점을 두고 개발되어, 연산을 수행하는데 시간이 오래 걸리고, 하드웨어 모듈로 구현하여도 충분한 성능을 낼 수 없는 구조적 단점을 지니고 있다.
이러한 SEED 알고리듬의 단점을 극복하고 효율적인 키 스케줄을 사용하는 알 고리듬이 바로 아리아(ARIA) 암호 알고리듬이다. ARIA는 전자 정부 구현 등으로 국가기관 대 민간(G2C, Government to Citizen)의 정보 교환의 필요성이 커지게 됨으로써 정보 보호를 목적으로 국가안보기술연구소(정부기관)에서 발표한 민관겸용 블록암호 알고리듬이다. ARIA는 2004년에 산업자원부의 KS인증(KS 규격번호: KS X 1213)을 획득한 블록암호 알고리듬이며, 학계(Academy), 연구소(Research Institute), 정부기관(Agency)으로 구성된 개발팀에 의해 개발되었기 때문에 그 앞 글자를 이용하여 명명되었다. ARIA는 ISPN(Involution Substitution Permutation Network) 구조를 갖는 암호화 과정 및 복호화 과정이 동일한 대칭키 암호 알고리듬으로서, AES(Advanced Encryption Standard)의 규격을 따르고, 다양한 각종 환경의 구현에 적합하도록 설계되어 초경량 환경 및 하드웨어 구현에 최적화하여 적용할 수 있으며, 고정 길이의 입출력(128비트), 가변 길이의 키(key) 지원(128/192/256 비트 키), 간단한 연산의 사용, 바이트 단위의 연산 등의 특징을 지닌다. 한편, ARIA의 입출력 크기와 사용 가능한 키 크기는 미국 표준 블록암호인 AES(Advanced Encryption Standard)의 경우와 동일하다.
한편, 수학적으로 안전한 것으로 알려진 알고리듬조차도 구현 단계에서 예기치 못한 부가적인 정보의 누출이 있다는 것이 알려졌고, 누출된 정보로부터 비밀 키의 값을 알아낼 수 있는 부채널 공격(Side Channel Attack)이 소개되었다. 이러한 부채널 공격이 소개되면서 많은 암호시스템 설계자들은 효율적인 대응법들을 연구하기 시작하였고, 부채널 공격 중 하나인 차분 전력 분석(Differential Power Analysis; DPA)에 대한 대응법으로는, 특히 블록암호의 경우 전력 측정에 의해 암 ·복호화, 또는 키 스케줄링의 연산 도중 중간값이 드러나지 않도록 하는 마스킹 기법(masking method)이 알려져 있다. 마스킹 기법은 블록암호의 구성에 따라 적용 방법이 달라질 수 있으며, 각각의 블록암호에 적합한 마스킹 기법에 대한 연구가 진행되고 있다.
KS 인증을 획득한 ARIA의 기존 마스킹 방법들에는 네 종류의 S-box에서 4개의 마스킹 테이블을 생성하는 방법과, INV에 대한 테이블만을 저장하고 이에 대한 마스킹 테이블을 생성하여 S-box 연산을 수행하는 방법이 있다. 상기 방법들은 연산시간 측면과 공간적인 측면에서 각각 장점이 있다.
하지만, 기존의 마스킹 방법들은 ARIA에 사용되어지는 S-box의 특징 및 키 스케줄링과 암·복호화 연산이 병렬화되지 않는 ARIA 알고리듬 상의 특징을 고려하지 않았다. 즉, 기존의 마스킹 방법들은 마스킹 보정작업으로 인해 암호 연산시간이 상당히 길다는 문제점이 있으며, 또한 ARIA의 경우 다른 블록 암호들보다 키 스케줄링 공격에 취약함에도 기존의 마스킹 방법들은 키 스케줄링 과정에 마스킹 방법을 고려하지 않는 문제점이 있다.
따라서, 본 발명이 이루고자 하는 첫 번째 기술적 과제는, 아리아 암호 연산시간을 감소시키고 DPA 공격 물론 키 스케줄링 공격에 대해서도 안전한 암호 장치를 제공하는 것이다.
본 발명이 이루고자 하는 두 번째 기술적 과제는, 아리아 암호 연산시간을 감소시키고 DPA 공격은 물론 키 스케줄링 공격에 대해서도 안전한 암호 방법을 제공하는 것이다.
본 발명이 이루고자 하는 세 번째 기술적 과제는, 아리아 암호 연산시간을 감소시키고 DPA 공격은 물론 키 스케줄링 공격에 대해서도 안전한 아리아 마스킹 방법을 제공하는 것이다.
본 발명이 이루고자 하는 네 번째 기술적 과제는, 키 스케줄링 공격에 안전한 아리아 키 스케줄링 마스킹 방법을 제공하는 것이다.
상기와 같은 첫 번째 기술적 과제를 해결하기 위하여, 본 발명은 마스킹을 이용한 아리아(ARIA) 암호 장치에 있어서, 상기 장치를 제어하는 제어부로서, 마스킹 난수를 생성하고 상기 마스킹 난수와 두 종류의 에스박스(S-box; S1, S2)를 이용하여 네 종류의 마스킹 에스박스(masked S-box; MS 1, MS 2, MS 3, MS 4)를 생성하는 상기 제어부; 상기 마스킹 난수에 의해 입력데이터를 마스킹하여 마스킹 입력데이 터(masked input data)를 생성하는 입력데이터 마스킹부; 외부로부터 입력되는 암호키로부터 상기 마스킹 난수에 의해 마스킹된 마스킹 라운드키(masked round-key)를 생성하는 키 스케줄링부; 및 상기 마스킹 라운드키 및 상기 네 종류의 마스킹 에스박스를 이용하여 상기 마스킹 입력데이터에 대해 각각의 라운드 연산을 수행하는 마스킹 암호연산부를 포함하는 마스킹을 이용한 아리아 암호 장치를 제공한다.
본 발명의 일 실시예에 따르면, 상기 입력데이터 마스킹부는, 상기 마스킹 암호연산부가 수행하는 첫 번째 라운드 연산의 입력 값이 되는 상기 마스킹 입력데이터를 생성할 수 있다.
본 발명의 일 실시예에 따르면, 상기 마스킹 암호연산부는, 상기 네 종류의 마스킹 에스박스에 의해 아리아 라운드 함수의 치환 계층(substitution layer)을 구성하여 상기 아리아 라운드 함수 연산을 수행하고, 상기 아리아 라운드 함수 연산 결과가 다음 라운드 연산의 입력 값이 되도록 추가 마스킹을 수행할 수 있다.
본 발명의 일 실시예에 따르면, 상기 마스킹을 이용한 아리아 암호 장치는, 상기 마스킹 암호연산부가 수행한 최종라운드 연산 결과에 대해 디스마스킹(dismasking)을 수행하여 상기 입력데이터에 대응하는 암호 데이터를 출력하는 디스마스킹부를 더 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 제어부가 생성하는 상기 네 종류의 마스킹 에스박스(MS 1, MS 2, MS 3, MS 4)는, 하기 수학식;
Figure 112008004493754-pat00001
을 만족할 수 있다(상기 수학식에서, S 1S 2는 상기 두 종류의 에스박스, S 1 -1S 2 - 1S 1S 2에 대한 역치환 에스박스, m 및 m'는 상기 제어부가 생성한 제1 마스킹 난수 및 제2 마스킹 난수, 그리고
Figure 112008004493754-pat00002
는 배타적 논리합 연산을 나타낸다).
본 발명의 일 실시예에 따르면, 상기 마스킹을 이용한 아리아 암호 장치는, 외부로부터 입력되는 상기 암호키를 상기 마스킹 난수에 의해 마스킹하여 마스킹 암호키(masked encryption key)를 생성하는 암호키 마스킹부를 더 포함하고, 상기 키 스케줄링부는, 상기 마스킹 암호키를 이용하여 상기 마스킹 난수에 의해 마스킹된 확장키를 생성하는 키 확장부; 및 상기 확장키를 이용하여 상기 마스킹 난수에 의해 마스킹된 상기 마스킹 라운드키를 생성하는 마스킹 라운드키 생성부를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 암호키 마스킹부가 생성한 상기 마스킹 암호키는, 상기 암호키의 상위 128비트를 상기 마스킹 난수를 이용하여 마스킹한 값 및 상기 암호키의 상기 상위 128비트 이외의 나머지 비트와 0으로 패 딩(padding)한 비트를 이용하여 구성되는 128비트를 상기 마스킹 난수를 이용하여 마스킹한 값을 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 키 확장부는, 상기 마스킹 암호키를 입력으로 하여 3라운드 256비트 파이스텔(Feistel) 알고리듬을 이용하면서 추가 마스킹을 수행하여 상기 마스킹 난수에 의해 마스킹된 상기 확장키를 생성할 수 있다.
본 발명의 일 실시예에 따르면, 상기 마스킹을 이용한 아리아 암호 장치는 시스템 온 칩(system on chip) 형태로 마이크로프로세서상에 구현될 수 있다.
상기와 같은 두 번째 기술적 과제를 해결하기 위하여, 본 발명은 마스킹을 이용한 아리아 암호 방법에 있어서, 마스킹 난수를 생성하는 마스킹 난수 생성 단계; 상기 마스킹 난수와 두 종류의 에스박스(S-box; S1, S2)를 이용하여 네 종류의 마스킹 에스박스(masked S-box; MS 1, MS 2, MS 3, MS 4)를 생성하는 마스킹 에스박스 생성 단계; 상기 마스킹 난수에 의해 입력데이터를 마스킹하여 마스킹 입력데이터(masked input data)를 생성하는 입력데이터 마스킹 단계; 외부로부터 입력되는 암호키로부터 상기 마스킹 난수에 의해 마스킹된 마스킹 라운드키(masked round-key)를 생성하는 키 스케줄링 단계; 및 상기 마스킹 라운드키 및 상기 네 종류의 마스킹 에스박스를 이용하여 상기 마스킹 입력데이터에 대해 각각의 라운드 연산을 수행하는 마스킹 암호연산 단계를 포함하는 마스킹을 이용한 아리아 암호 방법을 제공한다.
본 발명의 일 실시예에 따르면, 상기 마스킹을 이용한 아리아 암호 방법은, 데이터 처리 및 연산을 수행하는 컴퓨터로 판독할 수 있는 기록매체에 상기 컴퓨터가 판독할 수 있는 프로그램 코드로 구현할 수 있다.
상기와 같은 세 번째 기술적 과제를 해결하기 위하여, 본 발명은 아리아 마스킹 방법에 있어서, 마스킹 난수를 생성하는 마스킹 난수 생성 단계; 상기 마스킹 난수와 두 종류의 에스박스(S-box; S1, S2)를 이용하여 네 종류의 마스킹 에스박스(masked S-box; MS 1, MS 2, MS 3, MS 4)를 생성하는 마스킹 에스박스 생성 단계; 상기 마스킹 난수에 의해 입력데이터를 마스킹하여 마스킹 입력데이터(masked input data)를 생성하는 입력데이터 마스킹 단계; 외부로부터 입력되는 암호키를 마스킹하여 마스킹 암호키(masked encryption key)를 생성하고, 상기 마스킹 암호키를 이용하여 상기 마스킹 난수에 의해 마스킹된 확장키를 생성하고, 그리고 상기 확장키를 이용하여 상기 마스킹 난수에 의해 마스킹된 마스킹 라운드키를 생성하는 키 스케줄링 마스킹 단계; 상기 마스킹 라운드키 및 상기 네 종류의 마스킹 에스박스를 이용하여 아리아 라운드 함수 연산을 수행하고, 상기 아리아 라운드 함수 연산 결과가 다음 라운드 연산의 입력 값이 되도록 상기 아리아 라운드 함수 연산 결과에 추가 마스킹을 수행하는 암호연산 마스킹 단계; 및 상기 암호연산 마스킹 단계에서 수행된 최종라운드 연산 결과에 대해 디스마스킹(dismasking)을 수행하여 상기 입력데이터에 대응하는 암호 데이터를 출력하는 디스마스킹 단계를 포함하는 아리아 마스킹 방법을 제공한다.
상기와 같은 네 번째 기술적 과제를 해결하기 위하여, 본 발명은 아리아 키 스케줄링 마스킹 방법에 있어서, 마스킹 난수를 생성하는 마스킹 난수 생성 단계; 외부로부터 입력되는 암호키를 상기 마스킹 난수에 의해 마스킹하여 마스킹 암호키(masked encryption key)를 생성하는 암호키 마스킹 단계; 상기 마스킹 암호키를 입력으로 하여 3라운드 256비트 파이스텔(Feistel) 알고리듬을 이용하면서 추가 마스킹을 수행하여 상기 마스킹 난수에 의해 마스킹된 확장키를 생성하는 키 확장 단계; 및 상기 확장키를 이용하여 상기 마스킹 난수에 의해 마스킹된 마스킹 라운드키(masked round key)를 생성하는 마스킹 라운드키 생성 단계를 포함하는 아리아 키 스케줄링 마스킹 방법을 제공한다.
본 발명에 따른 아리아 마스킹 방법과 이를 이용한 아리아 암호 장치 및 방법은 기존의 아리아 마스킹 방법에 비해 DPA 공격에 대한 안전성은 물론 키 스케줄링 공격에 대한 안전성도 제공하며, 하드웨어 자원 및 암호 연산시간을 감소시킨다는 이점을 제공한다.
본 발명에 관한 구체적인 내용의 설명에 앞서 이해의 편의를 위해 본 발명이 해결하고자하는 기술적 과제의 개요를 우선 제시한다.
도 1에는 아리아(ARIA)의 전체 구조가 도시되어 있다. 도 1에 도시된 바와 같이 아리아는 키 에디션(Key Addition; 110), 치환 계층(Substitution Layer; 120), 및 확산 계층(Diffusion Layer; 130)으로 라운드 함수를 구성하며, 세부 사양은 하기 표 1과 같다.
Figure 112008004493754-pat00003
치환 계층
각 라운드 함수의 치환 계층은 8 비트 입출력을 가지는 두 종류의 S-Box(S1, S2)와 그에 대한 두 개의 역 치환 S-Box(S1 -1, S2 -1)를 포함하여 총 네 종류의 S-box를 이용한다. S-box(S1, S2)는 x-1, x247(=x-8=Dx-1, D는 x8을 수행하는 행렬)의 아핀 변환(affine transform) 형태로 하기 수학식 1과 같이 연산을 수행한다.
Figure 112008004493754-pat00004
일 때,
Figure 112008004493754-pat00005
,
Figure 112008004493754-pat00006
상기 수학식 1에서 각각의 행렬 및 벡터 값은 하기 수학식 2와 같다.
Figure 112008004493754-pat00007
상기 두 개의 S-Box S1, S2와 그 역치환 S1 -1, S2 - 1를 이용하여 아리아의 라운드 함수 중 치환 계층을 구성한다. 이때, 홀수 라운드 함수(Fo)의 치환 계층(120)과 짝수 라운드 함수(Fe)의 치환 계층(140)은 도 1에서 도시된 바와 같이 S1, S2와 S1 -1, S2 -1의 순서를 반대로 구성한다.
확산 계층
아리아 라운드 함수의 확산 계층(130, 150)은 입력 16 바이트(x0,x1,…,x15)에 대한 출력 16바이트(y0,y1,…,y15)의 값을 하기 수학식 3과 같이 행렬 곱셈을 통하여 연산한다.
Figure 112008004493754-pat00008
즉, 각 행마다 치환 계층을 거친 16 바이트 중 7 바이트의 xor형태로 연산되어진다.
키 스케줄링
도 2에는 아리아의 키 스케줄링이 도시되어 있다. 도 2를 참조하면 KL(200)은 암호키의 상위 128비트 값이며, KR(202)은 키의 나머지 부분에 0으로 패딩(padding)한 128비트 값이다. 세 개의 키 초기화 상수 CK1, CK2, CK3는 각 라운드 함수(Fo, Fe, Fo)의 키 역할을 수행한다. 즉, 3 라운드 256 비트 Feistel 알고리듬을 이용하는 키 확장 모듈(210)로부터 키 확장을 위한 네 종류의 128비트 확장키(W0, W1, W3, W4)를 생성한다. 그리고 라운드키 생성 모듈(220)에서 하기 수학식 4와 같이 라운드 키(ek)를 얻는다.
Figure 112008004493754-pat00009
상기 수학식 4에서,
Figure 112008004493754-pat00010
는 배타적 논리합 연산을 나타내고,
Figure 112008004493754-pat00011
는 오른쪽으로 n비트 로테이션(rotation),
Figure 112008004493754-pat00012
는 왼쪽으로 n비트 로테이션을 나타낸다.
유의할 점은, 아리아의 키 스케줄링은 알고리듬의 특성상 암·복호화 연산과 병렬화되어 수행될 수 없다는 것이다.
차분 전력 분석(Differential Power Analysis; DPA) 공격이 소개되면서 여러 가지 대응법들이 소개되어왔다. 기존의 대응법들 중에서 암호 알고리듬 연산 수행 중 연산 중간값의 정보를 숨기는 일반적인 마스킹 기법이 알려져 있다.
아리아에 일반적인 마스킹 기법을 적용한 기존 제1 방법(유형소, 하재철, 김창균, 박일환, 문상재, “랜덤 마스킹 기법을 이용한 DPA 공격에 안전한 ARIA 구현”, 한국정보보호학회논문지 16(2), April 2006. 참조)은, 아리아의 네 종류의 S-box에 대하여 네 종류의 새로운 마스킹 S-box를 만든 후, 상기 네 종류의 새로운 마스킹 S-box를 이용하여 암호연산을 수행하는 것이다. 그러나, 상기 기존 제1 방 법은 각 라운드의 확산 계층에 대한 연산을 마칠 때마다 원하는 마스킹 값(마스킹 S-box 생성 시 이용한 마스킹 값)을 얻기 위해 반드시 마스킹 보정 작업을 수행해야 하므로 보정을 위한 연산이 많다는 문제점이 있다. 더욱이, 총 4개의 S-box를 저장해야 하고 암호연산시마다 새로운 4개의 마스킹 S-box를 생성해야 하므로 총 8개의 S-box(2048 바이트)를 저장하기 위해 비교적 많은 저장 공간을 필요로 한다는 문제점이 있다.
상기 기존 제1 방법이 많은 저장 공간을 필요로 한다는 문제점을 보완하기 위해 저 메모리 환경 마스킹 기법을 적용한 기존 제2 방법(유형소, 하재철, 김창균, 박일환, 문상재, “저메모리 환경에 적합한 마스킹 기반의 ARIA 구현”, 한국정보보호학회논문지 16(3), June 2006. 참조)은, x-1(x∈GF(28))에 대한 256 바이트의 테이블(INV)만을 저장한다. 그리고 암호연산시마다 역원에 대한 마스킹 테이블(MINV)을 구성한다. 즉, S-box의 연산
Figure 112008004493754-pat00013
에서 x-1의 연산은 테이블을 이용하며, 아핀 변환(affine transform)을 직접 계산하는 방법이다. 이러한 계산을 이용한 두 에스박스에 대한 출력 값의 마스킹 값은 어렵지 않게 알 수 있지만, 상기 기존 제2 방법은 마스킹 값이 일정하지 않기 때문에 확산 계층 연산을 수행하기 전 마스킹 보정 작업을 수행하도록 구성되어 있으며, S1 -1, S2 -1에 대한 계산에서도 MINV의 테이블 참조 전에 마스킹 보정작업을 수행하도록 구성되어 있다. 즉, 총 필요한 테이블의 개수는 두 개인 반면 치환 계층의 연산과 마스킹 보정 작 업으로 인한 연산 시간이 크다는 문제점이 있다.
또한, 상기 기존 제1 방법 및 기존 제2 방법은, 키 스케줄링에 대한 마스킹 방법을 고려하지 않기 때문에 키가 노출될 수 있는 문제점이 있다(S. Mangard, "A Simple Power-Analysis(SPA) Attack on Implementations of the AES Key Expansion", ICISC 2002, LNCS 2587, pp. 343-358, Springer, 2003. 참조). 키 스케줄링 공격에 대한 대응법을 고려하지 않은 경우 키 스케줄링 과정에서 키에 대한 해밍웨이트가 노출되어 후보 키의 범위가 좁아지며, 그 결과 전수조사를 통해 AES의 전체 키를 찾을 수 있게 된다. 특히, 아리아의 경우 알고리듬의 특성상 AES와는 달리 키 스케줄링과 암호연산이 병렬적으로 수행될 수 없다. 즉, 키 스케줄링 후에 암호연산을 수행해야 한다. 그 결과, 아리아는 키 스케줄링에 대한 부분의 전력이 암호연산과 상관없이 그대로 노출되므로 AES의 경우보다 키 스케줄링 공격에 훨씬 취약하다.
이러한 일차적인 문제 외에도 키가 마스킹되어 있지 않으면, 해밍 디스턴스 모델(hamming distance model)의 경우 키 에디션 부분의 연산에서 키의 해밍웨이트를 알아내는 것이 가능하다. 그 이유는 키 에디션 전후 해밍 디스턴스가 하기 수학식 5를 만족하기 때문이다.
Figure 112008004493754-pat00014
즉, 해밍 디스턴스 모델에서 키 에디션 부분의 전력이 마스킹 값과 상관없이 키에만 의존하기 때문에 키의 해밍웨이트가 노출될 수 있다. 따라서, 키 스케줄링 에서의 효율적인 마스킹 방법도 고려할 필요가 있다.
상기 기존 방법들과 비교하면, 본 발명은 두 종류의 에스박스만을 저장한 후 키 스케줄링 및 암호연산시마다 네 종류의 마스킹 에스박스(masked S-box)를 생성하여 사용하는 것이다. 즉, 본 발명은 본래의 아리아 알고리듬보다 두 개의 에스박스만을 더 필요로 한다. 또한, 본 발명은 아리아의 키 스케줄링에 대한 마스킹을 고려한 것이다.
이하, 본 발명의 기술적 과제의 해결 방안을 명확화하기 위해 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명한다. 다만, 본 발명을 설명함에 있어서 관련된 공지기술 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불명료하게 할 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자 등의 의도 또는 관례 등에 따라 달라질 수 있을 것이다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 3에는 본 발명에 따른 마스킹을 이용한 아리아 암호 장치의 일례가 블록도로 도시되어 있다.
도 3을 참조하면, 본 발명에 따른 마스킹을 이용한 아리아 암호 장치는 제어부(310), 암호키 마스킹부(320), 키 스케줄링부(330), 입력데이터 마스킹부(340), 마스킹 암호연산부(350), 및 디스마스킹부(360)를 포함한다. 또한, 본 발명에 따른 아리아 암호 장치는 입력 레지스터(300) 및 암호키 레지스터(302)를 더 포함할 수 있다. 상기 입력 레지스터(300)는 평문 입력데이터를 저장하고 상기 암호키 레지스 터(302)는 암호키 데이터를 저장한다.
상기 제어부(310)는 상기 아리아 암호 장치를 제어하며 마스킹 난수를 생성하고, 상기 마스킹 난수 및 두 종류의 비선형 함수인 제1 에스박스(S1) 및 제2 에스박스(S2)를 이용하여 네 종류의 마스킹 에스박스(masked S-box; MS 1, MS 2, MS 3, MS 4)를 생성한다. 더 상세히 설명하면, 상기 제어부(310)는 두 개의 마스킹 값(m, m')을 생성하여 하기 수학식 6을 만족하는 네 종류의 마스킹 에스박스를 생성한다.
Figure 112008004493754-pat00015
상기 제어부(310)는 다음의 '마스킹 에스박스 생성 알고리듬'에 의해 상기 네 종류의 마스킹 에스박스를 생성한다.
마스킹 에스박스 생성 알고리듬
입력 S 1 , S 2 , m , m '
출력 MS 1 , MS 2 , MS 3 , MS 4
1. For x from 0 to 255
a. u = x
Figure 112008004493754-pat00016
m , v = S 1 ( x )
Figure 112008004493754-pat00017
m, w = S 2 ( x )
Figure 112008004493754-pat00018
m'
b . MS 1 ( u )= v , MS 2 ( u )= w , MS 3 ( v )= u , MS 4 ( w )= u
2. Return MS 1 , MS 2 , MS 3 , MS 4
상기 알고리듬에 따라 마스킹 에스박스를 구성할 때, 상기 수학식 6에서 MS 1 MS 2에 관한 앞의 두 식이 성립됨을 쉽게 할 수 있다. MS 3MS 4에 관한 뒤의 두 식이 성립 여부는 다음과 같이 증명할 수 있다.
증명
1. S 1은 치환이므로 모든 x에 대해 x=S 1 - 1(t)를 만족하는 t가 존재한다.
2. 따라서, 수학식
Figure 112008004493754-pat00019
에서 xS 1 - 1(t)를 대입하면
Figure 112008004493754-pat00020
가 성립한다.
3. 결론적으로,
Figure 112008004493754-pat00021
이면,
Figure 112008004493754-pat00022
가 성립한다. MS 4에 대해서도 동일하게 증명할 수 있다.
상기 입력데이터 마스킹부(340)는, 평문 입력데이터를 상기 제어부가 생성한 두 개의 1바이트(byte) 마스킹 난수에 의해 마스킹하여 마스킹 입력데이터(masked input data)를 생성한다. 즉, 상기 입력데이터 마스킹부(340)는 상기 마스킹 암호연산부(350)가 수행하는 첫 번째 라운드 연산의 입력 값이 되는 상기 마스킹 입력데이터를 생성한다. 예컨대, 제1 마스킹 난수(m) 및 제2 마스킹 난수(m')를 이용하여 구성되는 16바이트 마스킹 값 m'm'mm/m'm'mm/m'm'mm/m'm'mm으로 16바이트(128비 트)의 입력 평문을 마스킹한다.
상기 키 스케줄링부(330)는, 외부로부터 입력되는 암호키(key)로부터 상기 제어부(310)가 생성한 마스킹 난수에 의해 마스킹된 마스킹 라운드키(masked round-key)를 생성한다. 예컨대, 아리아의 키 스케줄링 과정에서 상기 제1 마스킹 난수(m) 및 상기 제2 마스킹 난수(m')의 배타적 논리합 연산에 의해 계산되는 제3 마스킹 난수(m")를 이용하여 16바이트의 모든 라운드키가 마스킹되도록 조정한다. 즉, m"로 이루어진 16바이트의 마스킹값 (m")16으로 마스킹된 마스킹 라운드키를 생성한다. 상기 키 스케줄링부(330)의 구체적인 동작 및 아리아 키 스케줄링의 마스킹 방법은 나중에 다시 설명한다.
상기 마스킹 암호연산부(350)는, 상기 마스킹 라운드키 및 상기 네 종류의 마스킹 에스박스를 이용하여 상기 마스킹 입력데이터에 대해 각각의 라운드 연산을 수행한다. 예컨대, 상기 마스킹 암호연산부(350)는 상기 제어부(310)가 생성한 상기 네 종류의 마스킹 에스박스에 의해 아리아 라운드 함수의 치환 계층(substitution layer)을 구성하여 상기 아리아 라운드 함수 연산을 수행하고, 상기 아리아 라운드 함수 연산 결과가 다음 라운드 연산의 입력 값이 되도록 추가 마스킹을 수행한다.
본 발명의 일 실시예에 따르면, 상기 마스킹 암호연산부(350)는 상기 동작을 구현하기 위해 멀티플렉서(352), 홀수라운드 연산부(354), 짝수라운드 연산부(356), 및 최종라운드 연산부(358)을 포함할 수 있다.
상기 멀티플렉서(352)는 상기 홀수라운드 연산부(354)가 첫 번째 라운드 연산을 수행하는 경우에는 상기 입력데이터 마스킹부(340)가 생성한 상기 마스킹 입력데이터를 상기 홀수라운드 연산부(354)에 전달하고, 상기 홀수라운드 연산부(354)가 다음 홀수라운드 함수 연산을 수행하는 경우에는 상기 짝수라운드 연산부(356)의 연산 결과를 상기 홀수라운드 연산부(354)에 전달한다. 상기 멀티플렉서(352)를 제어하는 제어신호는 상기 제어부(310)에서 생성될 수 있다.
도4 내지 도 6에는 상기 마스킹 암호연산부(350)가 포함하는 각각의 라운드 연산부의 일례가 블록도로 도시되어 있다.
도 4를 참조하면, 상기 홀수라운드 연산부(354)는 키 에디션부(400), 치환부(410), 확산부(420), 및 추가 마스킹부(530)를 포함할 수 있다. 상기 홀수라운드 연산부(354)의 홀수라운드 함수 연산은 키 에디션(key addition)을 수행하는 키 에디션부(400), 상기 네 종류의 마스킹 에스박스(MS 1, MS 2, MS 3, MS 4)에 의해 아리아 라운드 함수의 치환 계층을 구성하는 치환부(410), 및 아리아 라운드 함수의 확산 계층 연산을 수행하는 확산부(420)에 의해 수행된다.
예컨대, 첫 번째 라운드인 경우, 16바이트의 마스킹 값 (m'm'mm)4로 마스킹된 상기 마스킹 입력데이터가 입력되면 상기 키 에디션부(400)는 마스킹 값 (m")16로 마스킹된 상기 마스킹 라운드키에 의해 키 에디션을 수행하여 중간 연산값이 상기 치환부(410)의 치환 계층에 적절한 입력 값이 되도록 중간 마스킹 값을 (mmm'm')4로 조정한다. 상기 치환부(410)의 치환 계층을 거친 후 중간 연산값은 중간 마스킹 값 (m'm'mm)4로 마스킹된다. 상기 확산부(420)의 확산 계층 연산에서 7바이트의 값이 XOR되면, 상기 확산 계층 연산 후 중간 연산값은 중간 마스킹값 (mmm'm'/mmm'm')2으로 마스킹된다. 이때, XOR되는 상기 7바이트의 값 중에서 4바이트의 값은 m'(또는 m)으로, 나머지 3바이트의 값은 m(또는 m')으로 마스킹된 값이다. 유의할 점은, 상기 7 바이트의 값을 XOR할 때 중간 연산값이 드러나지 않도록 하기 위해, 상기 7바이트의 값의 XOR 순서를 조정하여 마스킹 값이 번갈아 가면서 XOR되도록 구현하거나, 또는 상기 7바이트 값의 XOR연산 도중 중간 연산값이 데이터 버스를 지나지 않도록 구현하여야 한다는 것이다.
상기 홀수라운드 연산부(354)는 상기 홀수라운드 함수 연산 결과가 상기 짝수라운드 연산부(356)에 의한 다음 라운드 연산의 입력 값이 되도록 추가 마스킹을 수행한다. 상기 동작을 수행하기 위해 상기 홀수라운드 연산부(354)는 상기 추가 마스킹부(430)를 포함할 수 있다. 예컨대, 상기 추가 마스킹부(430)는, 상기 확산부(420)의 확산 계층 연산 후 중간 마스킹값 (mmm'm'/mmm'm')2으로 마스킹된 상기 중간 연산값이 다음 라운드에서 (m")16으로 마스킹된 마스킹 라운드키와 XOR된 후 짝수라운드 함수의 치환 계층에 입력될 수 있는 중간 연산값이 되도록 추가적인 마스킹을 수행한다. 즉, (mmm'm'/mmm'm')2으로 마스킹된 상기 중간 연산값에 (0000/m"m"m"m")2를 XOR한다. 주목할 점은, 일반 아리아 알고리듬과 비교할 때 이러한 추가적인 마스킹은 본 발명에서 유일하게 요구되는 추가적인 연산이지만 그 연산량은 상당히 적다는 것이다.
도 5를 참조하면, 상기 짝수라운드 연산부(356)는 짝수라운드 함수 연산을 수행하는 키 에디션부(500), 치환부(510), 및 확산부(520)와 추가적인 마스킹을 수행하는 추가 마스킹부(530)를 포함할 수 있다. 도 5에 도시된 바와 같이, 상기 짝수라운드 연산부(356)의 구체적인 동작 및 작용은 상기 홀수라운드 연산부(354)와 쌍대적으로 설명될 수 있다. 다만, 다음 라운드가 최종라운드인 경우에는 상기 추가 마스킹부(530)는 상기 짝수라운드 함수 연산 결과가 상기 최종라운드 연산부(358)에 입력될 수 있는 중간 연산값이 되도록 (m"m"m"m"/0000)2로 추가 마스킹을 수행한다. 그리고 그 결과값을 상기 최종라운드 연산부(358)에 전달한다.
도 6을 참조하면, 상기 최종라운드 연산부(358)는 키 에디션부(600, 620) 및 치환부(610)를 포함할 수 있다. 상기 최종라운드 연산부(358)의 최종라운드 함수 연산은 키 에디션을 수행하는 키 에디션부(600, 620) 및 상기 네 종류의 마스킹 에스박스(MS 1, MS 2, MS 3, MS 4)에 의해 아리아 라운드 함수의 치환 계층을 구성하는 치환부(410)에 의해 수행된다. 아리아의 최종라운드 함수는 확산 계층 연산을 포함하지 않기 때문에 상기 최종라운드 연산부(358)는 다른 라운드 연산부(354, 356)와는 달리 확산부를 포함하지 않는다.
본 발명의 일 실시예에 따르면, 상기 마스킹 암호연산부(350)는 상기 최종라 운드 연산부(358)를 별도로 구성하지 않고 상기 짝수라운드 연산부(356)의 키 에디션부(500) 및 치환부(510)를 이용하여 구현할 수 있다. 예컨대, 짝수라운드의 다음 라운드가 최종라운드인 경우 상기 짝수라운드 연산부(356)의 출력이 다시 상기 짝수라운드 연산부(356)에 입력되고, 상기 키 에디션부(500)에서 마스킹 라운드키의 에디션을 수행하고, 그리고 상기 치환부(510)의 치환 계층을 거친 후 최종적인 키 에디션부(620)만을 추가하여 마지막 마스킹 라운드키의 키 에디션을 수행하도록 구현할 수 있다. 아리아의 최종라운드 함수는 짝수라운드 함수와 동일한 치환 계층을 사용하기 때문이다.
도 3에서는 상기 마스킹 암호연산부(350)를 루프 회로로 구현하였지만, 당업자라면 다양한 변형 실시가 가능할 것이다.
상기 디스마스킹부(360)부는 상기 마스킹 암호연산부(350)가 수행한 최종라운드 연산 결과에 대해 마스킹 값을 벗겨내는 디스마스킹(dismasking)을 수행하여 상기 입력데이터에 대응하는 암호 데이터를 출력한다. 예컨대, 상기 최종라운드 연산부(358)가 연산 결과를 출력하면 상기 디스마스킹부(360)는 상기 연산 결과에 16바이트 마스킹 값 (m'm'mm)4를 XOR하여 디스마스킹을 수행한다.
이하, 상기 키 스케줄링부(330)의 구체적인 동작 및 아리아 키 스케줄링의 마스킹 방법을 상세히 설명한다.
아리아의 키 스케줄링에 대한 공격은 DPA(Differential Power Analysis)를 고려하지 않는다. 그 이유는 아리아의 키 스케줄링은 고정된 키에 대해 항상 같은 연산을 수행하기 때문에 랜덤한 평문을 다수 입력해 파형을 얻는 DPA방법은 키 스케줄링 과정에서 의미가 없기 때문이다. 따라서 키 스케줄링 공격에 대한 대응법은 키의 해밍웨이트를 숨기는 마스킹 기법으로 충분한 대응법이 된다.
상기 암호키 마스킹부(320)부는, 외부로부터 입력받은 암호키(key)를 상기 제어부(310)가 생성한 마스킹 난수에 의해 마스킹하여 마스킹 암호키(masked encryption key)를 생성한다.
상기 키 스케줄링부(330)는, 상기 마스킹 암호키를 이용하여 상기 제어부(310)가 생성한 마스킹 난수에 의해 마스킹된 상기 마스킹 라운드키(masked round-key)를 생성한다. 상기 키 스케줄링부(330)는 상기 동작을 구현하기 위해 키 확장부(332) 및 마스킹 라운드키 생성부(334)를 포함할 수 있다.
도 7에는 상기 암호키 마스킹부(320) 및 상기 키 스케줄링부(330)의 상기 키 확장부(332)의 일례가 구체적으로 도시되어 있다.
도 7을 참조하면, 상기 암호키 마스킹부(320)는 상기 암호키의 상위 128비트(KL)를 (m")16로 마스킹한 값 및 상기 암호키의 상기 상위 128비트 이외의 나머지 비트와 0으로 패딩(padding)한 비트를 이용하여 구성되는 128비트(KR)를 (m'm'mmmmm'm')2로 마스킹한 값을 포함하는 마스킹 암호키를 생성한다.
상기 키 스케줄링부(330)의 상기 키 확장부(332)는 상기 마스킹 암호키를 이용하여 상기 제어부(310) 생성한 마스킹 난수에 의해 마스킹된 확장키(MS 1, MS 2, MS 3, MS 4)를 생성한다. 예컨대, 도 7에 도시된 바와 같이 상기 키 확장부(332)는 상기 마스킹 암호키를 입력으로 하여 3라운드 256비트 파이스텔(Feistel) 알고리듬을 이용하면서 추가 마스킹을 수행하여 마스킹 값 (m")16으로 마스킹된 네 개의 16바이트 확장키(MS 1, MS 2, MS 3, MS 4)를 생성한다. 도 7에서 Fo 및 Fe는 각각 홀수라운드 함수 및 짝수라운드 함수 블록을 나타내며, CK1, CK2, CK3는 각각 라운드 함수 Fo, Fe, Fo의 키 역할을 수행하는 고정된 상수를 나타낸다. 기존의 3라운드 256비트 파이스텔 알고리듬에 추가된 배타적 논리합 연산부분(
Figure 112008004493754-pat00023
)들은 상기 16바이트의 확장키들(MS 1, MS 2, MS 3, MS 4)을 모두 (m")16으로 마스킹된 값으로 얻기 위해 추가적으로 필요한 연산들이다.
상기 마스킹 라운드키 생성부(334)는, 상기 확장키를 이용하여 상기 제어부(310)가 생성한 마스킹 난수에 의해 마스킹된 상기 마스킹 라운드키를 생성한다. 예컨대, 상기 마스킹 라운드키 생성부(334)는 상기 네 개의 확장키(MS 1, MS 2, MS 3, MS 4)를 이용하여 상기 수학식 4의 일반 아리아 알고리듬의 첫 번째 라운드키(ek 1)에 대응하는 첫 번째 마스킹 라운드키(ek 1')는 하기 수학식 7과 같이 생성할 수 있다.
Figure 112008004493754-pat00024
상기 수학식 7에서,
Figure 112008004493754-pat00025
이기 때문에 상기 첫 번째 마스킹 라운드키(ek 1')를 (m")16로 마스킹 된 값으로 생성하게 된다. 상기 마스킹 라운드키 생성부(334)는 유사한 방식에 의해 다른 모든 마스킹 라운드키를 상기 수학식 4에 대응하여 (m")16 마스킹 된 값으로 생성할 수 있다.
일 실시예에 따르면, 본 발명에 따른 마스킹을 이용한 아리아 암호 장치는 고차 DPA 공격에 충분히 대응할 수 있도록 첫 번째 라운드 및 최종라운드의 마스킹 에스박스의 입·출력 바이트마다 마스킹 값을 다르게 구현할 수 있다.
일 실시예에 따르면, 본 발명에 따른 마스킹을 이용한 아리아 암호 장치는 고차 DPA 공격에 충분히 대응할 수 있도록 S. Mangard가 제안한 방법(C. Herbst, E. Oswald, S. Mangard, "An AES Smart Card Implementation Resistant to Power Analysis Attacks," ACNS 2006, LNCS 3989, pp. 239-252, Springer, 2006. 참조)을 적용하여 동일한 마스킹 값을 사용하면서 첫 번째 라운드와 최종라운드의 키 에디션, 치환 계층, 확산 계층의 순서(각각의 16 byte 연산에 대한 순서)를 랜덤하게 바꾸도록 구현할 수 있다.
일 실시예에 따르면, 본 발명에 따른 마스킹을 이용한 아리아 암호 장치는 마이크로프로세서(microprocessor)상에 시스템 온 칩(system on chip) 형태로 구현될 수 있다.
도 8에는 본 발명에 따른 마스킹을 이용한 아리아 암호 방법의 일례가 흐름 도로 도시되어 있다.
도 8을 참조하면, 우선 상기 제어부(310)에서는 마스킹 난수를 생성하고, 상기 마스킹 난수와 두 종류의 에스박스(S1, S2)를 이용하여 네 종류의 마스킹 에스박스(MS 1, MS 2, MS 3, MS 4)를 생성한다(S800). 예컨대, 제1 마스킹 난수(m) 및 제2 마스킹 난수(m')를 생성하고, m, m' 및 S1, S2를 이용하여 상기 마스킹 에스박스 생성 알고리듬에 따라 네 종류의 마스킹 에스박스를 생성한다.
상기 입력데이터 마스킹부(340)에서는 상기 마스킹 난수에 의해 입력데이터를 마스킹하여 마스킹 입력데이터(masked input data)를 생성한다(S810). 예컨대, 상기 m 및 m'로 이루어진 마스킹 값으로 입력데이터를 마스킹하여 마스킹 입력데이터를 생성한다.
상기 키 스케줄링부(330)에서는 외부로부터 입력되는 암호키로부터 상기 마스킹 난수에 의해 마스킹된 마스킹 라운드키(masked round-key)를 생성한다(S820). 예컨대, 상기 암호키 마스킹부(320)에서 상기 암호키를 마스킹하여 마스킹 암호키를 생성하고, 상기 키 확장부(332)에서 상기 마스킹 암호키로부터 마스킹 값 (m")16로 마스킹된 확장키(MS 1, MS 2, MS 3, MS 4)를 생성하고, 그리고 상기 마스킹 라운드키 생성부(334)에서 상기 확장키(MS 1, MS 2, MS 3, MS 4)를 이용하여 마스킹 값 (m")16로 마스킹된 상기 마스킹 라운드키를 생성한다.
상기 마스킹 암호연산부(350)에서는 상기 마스킹 라운드키 및 상기 네 종류 의 마스킹 에스박스를 이용하여 상기 마스킹 입력데이터에 대해 각각의 라운드 연산을 수행한다(S830). 예컨대, 상기 마스킹 라운드키 및 상기 네 종류의 마스킹 에스박스를 이용하여 아리아 라운드 함수 연산을 수행하고, 상기 아리아 라운드 함수 연산 결과에 추가 마스킹을 수행하여 상기 각각의 라운드 연산 결과가 다음 라운드 연산의 입력 값이 되도록 한다.
상기 디스마스킹부(360)에서는 상기 마스킹 암호연산부(350)에서 수행된 최종라운드 연산 결과에 대해 디스마스킹(dismasking)을 수행하여 상기 입력데이터에 대응하는 암호 데이터를 출력한다(S840).
본 발명에 따른 마스킹을 이용한 아리아 암호 방법의 세부과정은 상기 본 발명에 따른 마스킹을 이용한 아리아 암호 장치에 관한 상세한 설명을 참조한다.
도 9에는 본 발명에 따른 아리아 마스킹 방법의 일례가 흐름도로 도시되어 있다.
도 9를 참조하면, 우선 두 개의 마스킹 난수(m, m')를 생성하고 m, m'과 두 종류의 에스박스(S1, S2)를 이용하여 네 종류의 마스킹 에스박스(MS 1, MS 2, MS 3, MS 4)를 생성한다(S900). 다음으로, m 및 m'로 이루어지는 마스킹 값으로 입력데이터를 마스킹한다(S910).
또한, 외부로부터 입력되는 암호키를 마스킹하여 마스킹 암호키를 생성하고, 상기 마스킹 암호키를 이용하여 m 및 m'의 배타적 논리합 결과인 m"에 의해 마스킹된 확장키를 생성하고, 그리고 상기 확장키를 이용하여 m"에 의해 마스킹된 마스킹 라운드키를 생성함으로써 키 스케줄링 과정을 마스킹한다(S920).
상기 키 스케줄링 마스킹 방법을 구체적으로 설명하면, 상기 암호키의 상위 128비트(KL)를 (m")16로 마스킹하고, 상기 암호키의 상기 상위 128비트 이외의 나머지 비트와 0으로 패딩(padding)한 비트를 이용하여 구성되는 128비트(KR)를 (m'm'mmmmm'm')2로 마스킹하여 마스킹 암호키를 생성한다. 그 다음, 상기 마스킹 암호키를 입력으로 하여 3라운드 256비트 파이스텔 알고리듬을 이용하면서 추가 마스킹을 수행하여 마스킹 값 (m")16로 마스킹된 확장키를 생성한다. 그리고나서 상기 확장키를 이용하여 마스킹 값 (m")16로 마스킹된 마스킹 라운드키를 생성함으로써 키 스케줄링 과정을 마스킹한다.
다음으로, 상기 마스킹 라운드키 및 상기 네 종류의 마스킹 에스박스를 이용하여 아리아 라운드 함수 연산을 수행하고, 상기 아리아 라운드 함수 연산 결과가 다음 라운드 연산의 입력 값이 되도록 상기 아리아 라운드 함수 연산 결과에 추가 마스킹을 수행하여 암호연산 과정을 마스킹한다(S930).
마지막으로, 상기 암호연산 과정에서 수행된 최종라운드 연산 결과에 대해 디스마스킹(dismasking)을 수행하여 상기 입력데이터에 대응하는 암호 데이터를 출력한다(S940).
본 발명에 따른 아리아 마스킹 방법의 세부과정은 상기 본 발명에 따른 마스킹을 이용한 아리아 암호 장치에 관한 상세한 설명을 참조한다.
본 발명에 따른 마스킹을 이용한 아리아 암호 방법 및 아리아 마스킹 방법은, 데이터 처리 및 연산을 수행하는 컴퓨터로 판독할 수 있는 기록매체에 컴퓨터가 읽어드릴 수 있는 프로그램 코드로서 구현하는 것이 가능하다. 컴퓨터가 판독할 수 있는 기록매체에는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
컴퓨터가 판독할 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 판독할 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽어드릴 수 있는 코드가 저장되고 실행될 수 있다.
또한, 본 발명에 따른 마스킹을 이용한 아리아 암호 방법 및 아리아 마스킹 방법은 데이터 처리 및 연산을 수행하는 마이크로프로세서상에 상기 마이크로프로세서를 동작시키는 프로그램 코드로 구현하는 것이 가능하다.
이상에서, 설명의 편의를 위해 본 발명을 암호화 장치 및 방법에 한정하여 상세히 설명하였지만, 아리아는 암호화 과정 및 복호화 과정이 동일한 ISPN(Involution Substitution Permutation Network) 구조를 가지는 대칭키 암호 알고리듬이기 때문에, 복호화 장치 및 방법으로도 본 발명을 설명할 수 있음은 자명하다.
하기 표 2에는 일반 아리아 알고리듬(ARIA), 상기 기존 제1 방법, 및 상기 기존 제2 방법과 본 발명에 따른 마스킹을 이용한 아리아 암호 방법을 500000번 수 행하여 그 연산 시간을 비교한 결과와 안정성을 비교한 결과 등이 나타나 있다.
Figure 112008004493754-pat00026
상기 표 2에서, HW 분석 공격이란 키가 마스킹되어 있지 않은 경우 키 에디션 연산 중에 키의 해밍웨이트를 알아내는 공격을 의미한다. 상기 표 2에 나타난 바와 같이, 본 발명에 따른 마스킹 방법은 두 종류의 에스박스만을 사용하며 암호 연산 중 추가적인 시간이 거의 들지 않는다. 따라서, 본 발명은 상기 기존 제1 방법에 비해 저장공간뿐만 아니라 연산시간 및 안전성 측면에서도 더 우수하다는 장점이 있다. 또한, 상기 기존 제2 방법의 경우 테이블 저장공간은 크지 않지만 치환 계층에 대한 연산과 마스킹 보정을 위한 추가적인 연산을 수행해야 하며, S1, S2, S1 -1, S2 -1가 존재하지 않기 때문에 키 스케줄링 과정에서 마스킹 방법 사용하려면 상당한 연산시간이 필요할 것이 자명하다. 따라서, 본 발명은 상기 기존 제2 방법에 비해 연산시간을 상당히 단축할 수 있다는 장점이 있다.
상술한 바와 같이, 본 발명에 따른 아리아 마스킹 방법과 이를 이용한 암호 장치 및 방법은, 기존의 아리아 마스킹 방법에 비해 DPA 공격에 대한 안전성은 물론, 키 스케줄링 공격에 대한 안전성도 제공한다. 또한, 기존의 아리아 마스킹 방법에 비해 하드웨어 자원 및 암호 연산시간을 감소시킨다는 이점을 제공한다.
지금까지 본 발명에 대하여 그 바람직한 실시예를 중심으로 살펴보았다. 그러나 당업자라면 본 발명의 본질적인 기술적 사상에서 벗어나지 않는 범위에서 본 발명이 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 즉, 본 발명의 범위는 상술한 설명이 아니라 특허청구범위에 나타나 있으며, 본 발명과 균등범위 내에 있는 모든 차이점은 본 발명에 포함되는 것으로 해석되어야 할 것이다.
도 1은 ARIA의 전체 구조를 나타낸 블록도.
도 2는 ARIA의 키 스케줄링을 나타낸 블록도.
도 3은 본 발명에 따른 마스킹을 이용한 아리아 암호 장치의 일례를 나타낸 블록도.
도 4는 본 발명에 따른 마스킹을 이용한 아리아 암호 장치의 홀수라운드 연산부를 나타낸 블록도.
도 5는 본 발명에 따른 마스킹을 이용한 아리아 암호 장치의 짝수라운드 연산부를 나타낸 블록도.
도 6은 본 발명에 따른 마스킹을 이용한 아리아 암호 장치의 최종라운드 연산부를 나타낸 블록도.
도 7은 본 발명에 따른 마스킹을 이용한 아리아 암호 장치의 암호키 마스킹부 및 키 확장부를 나타낸 블록도.
도 8은 본 발명에 따른 마스킹을 이용한 아리아 암호 방법의 일례를 나타낸 흐름도.
도 9는 본 발명에 따른 아리아 마스킹 방법의 일례를 나타낸 흐름도.

Claims (20)

  1. 마스킹을 이용하여 아리아(ARIA) 암호연산을 수행하는 장치에 있어서,
    상기 장치를 제어하는 제어부로서, 마스킹 난수를 생성하고 상기 마스킹 난수와 두 종류의 에스박스(S-box; S1, S2)를 이용하여 네 종류의 마스킹 에스박스(masked S-box; MS 1, MS 2, MS 3, MS 4)를 생성하는 상기 제어부;
    상기 마스킹 난수에 의해 입력데이터를 마스킹하여 마스킹 입력데이터(masked input data)를 생성하는 입력데이터 마스킹부;
    외부로부터 입력되는 암호키로부터 상기 마스킹 난수에 의해 마스킹된 마스킹 라운드키(masked round-key)를 생성하는 키 스케줄링부; 및
    상기 마스킹 라운드키 및 상기 네 종류의 마스킹 에스박스를 이용하여 상기 마스킹 입력데이터에 대해 각각의 라운드 연산을 수행하는 마스킹 암호연산부를 포함하는 마스킹을 이용한 아리아 암호 장치.
  2. 제1항에 있어서,
    상기 입력데이터 마스킹부는, 상기 마스킹 암호연산부가 수행하는 첫 번째 라운드 연산의 입력 값이 되는 상기 마스킹 입력데이터를 생성하는 것을 특징으로 하는 마스킹을 이용한 아리아 암호 장치.
  3. 제1항에 있어서,
    상기 마스킹 암호연산부는, 상기 네 종류의 마스킹 에스박스에 의해 아리아 라운드 함수의 치환 계층(substitution layer)을 구성하여 상기 아리아 라운드 함수 연산을 수행하고, 상기 아리아 라운드 함수 연산 결과가 다음 라운드 연산의 입력 값이 되도록 추가 마스킹을 수행하는 것을 특징으로 하는 마스킹을 이용한 아리아 암호 장치.
  4. 제1항에 있어서,
    상기 마스킹을 이용한 아리아 암호 장치는, 상기 마스킹 암호연산부가 수행한 최종라운드 연산 결과에 대해 디스마스킹(dismasking)을 수행하여 상기 입력데이터에 대응하는 암호 데이터를 출력하는 디스마스킹부를 더 포함하는 것을 특징으로 하는 마스킹을 이용한 아리아 암호 장치.
  5. 제1항에 있어서,
    상기 제어부가 생성하는 상기 네 종류의 마스킹 에스박스(MS 1, MS 2, MS 3, MS 4)는, 하기 수학식 1을 만족하는 것을 특징으로 하는 마스킹을 이용한 아리아 암호 장치.
    [수학식 1]
    Figure 112008004493754-pat00027
    (상기 수학식 1에서, S 1S 2는 상기 두 종류의 에스박스, S 1 -1S 2 - 1S 1S 2에 대한 역치환 에스박스, m 및 m'는 상기 제어부가 생성한 제1 마스킹 난수 및 제2 마스킹 난수, 그리고
    Figure 112008004493754-pat00028
    는 배타적 논리합 연산을 나타낸다)
  6. 제1항에 있어서,
    상기 마스킹을 이용한 아리아 암호 장치는, 외부로부터 입력되는 상기 암호키를 상기 마스킹 난수에 의해 마스킹하여 마스킹 암호키(masked encryption key)를 생성하는 암호키 마스킹부를 더 포함하고, 상기 키 스케줄링부는,
    상기 마스킹 암호키를 이용하여 상기 마스킹 난수에 의해 마스킹된 확장키를 생성하는 키 확장부; 및
    상기 확장키를 이용하여 상기 마스킹 난수에 의해 마스킹된 상기 마스킹 라운드키를 생성하는 마스킹 라운드키 생성부를 포함하는 것을 특징으로 하는 마스킹을 이용한 아리아 암호 장치.
  7. 제6항에 있어서,
    상기 암호키 마스킹부가 생성한 상기 마스킹 암호키는, 상기 암호키의 상위 128비트를 상기 마스킹 난수를 이용하여 마스킹한 값 및 상기 암호키의 상기 상위 128비트 이외의 나머지 비트와 0으로 패딩(padding)한 비트를 이용하여 구성되는 128비트를 상기 마스킹 난수를 이용하여 마스킹한 값을 포함하는 것을 특징으로 하는 마스킹을 이용한 아리아 암호 장치.
  8. 제7항에 있어서,
    상기 키 확장부는, 상기 마스킹 암호키를 입력으로 하여 3라운드 256비트 파이스텔(Feistel) 알고리듬을 이용하면서 추가 마스킹을 수행하여 상기 마스킹 난수에 의해 마스킹된 상기 확장키를 생성하는 것을 특징으로 하는 마스킹을 이용한 아리아 암호 장치.
  9. 제1항 내지 제8항 중 어느 한 항에 따른 마스킹을 이용한 아리아 암호 장치가 시스템 온 칩(system on chip) 형태로 구현된 마이크로프로세서.
  10. 마스킹을 이용하여 아리아(ARIA)암호연산을 수행하는 방법에 있어서,
    제어부가 제1 마스킹 난수와 제2마스킹 난수를 생성하고, 상기 제1 마스킹 난수와 상기 제2 마스킹 난수와 두 종류의 에스박스(S-box; S1, S2)를 입력으로 하여 마스킹 에스박스 생성 알고리듬에 따라 네 종류의 마스킹 에스박스(masked S-box: MS1, MS2, MS3, MS4)를 생성하는 마스킹 에스박스 생성 단계;
    입력데이터 마스킹부가 평문 입력데이터를 상기 제1마스킹 난수와 상기 제2마스킹 난수로 마스킹하여 마스킹 입력데이터(masked input data)를 생성하는 입력데이터 마스킹 단계;
    키 스케쥴링부가 외부로부터 입력되는 암호키를 상기 제1 마스킹 난수와 상기 제2 마스킹 난수로 마스킹하여 마스킹 라운드키(masked round-key)를 생성하는 키 스케쥴링 단계; 및
    마스킹 암호연산부가 상기 네 종류의 마스킹 에스박스에 의해 아리아 라운드 함수의 치환 계층(substitution layer)을 구성하여 상기 아리아 라운드 함수 연산을 수행하고, 상기 아리아 라운드 함수 연산 결과가 다음 라운드 연산의 입력 값이 되도록 추가 마스킹을 수행하는 마스킹 암호연산 단계를 포함하는 마스킹을 이용한 아리아 암호 방법.
  11. 제10항에 있어서,
    상기 입력데이터 마스킹 단계는, 상기 마스킹 암호연산 단계에서 수행되는 첫 번째 라운드 연산의 입력 값이 되는 상기 마스킹 입력데이터를 생성하는 단계인 것을 특징으로 하는 마스킹을 이용한 아리아 암호 방법.
  12. 삭제
  13. 제10항에 있어서,
    상기 마스킹을 이용한 아리아 암호 방법은, 디스마스킹부가 상기 마스킹 암호연산 단계에서 수행된 최종라운드 연산 결과에 대해 마스킹 값을 벗겨내는 디스마스킹(dismasking)을 수행하여 상기 입력데이터에 대응하는 암호 데이터를 출력하는 디스마스킹 단계를 더 포함하는 것을 특징으로 하는 마스킹을 이용한 아리아 암호 방법.
  14. 제10항에 있어서,
    상기 마스킹 에스박스 생성 단계에서 생성되는 상기 네 종류의 마스킹 에스박스(MS 1, MS 2, MS 3, MS 4)는, 하기 수학식 2를 만족하는 것을 특징으로 하는 마스킹을 이용한 아리아 암호 방법.
    [수학식 2]
    Figure 112008004493754-pat00029
    (상기 수학식 2에서, S 1S 2는 상기 두 종류의 에스박스, S 1 -1S 2 - 1S 1S 2에 대한 역치환 에스박스, m 및 m'는 상기 제어부가 생성하는 제1 마스킹 난수 및 제2 마스킹 난수, 그리고
    Figure 112008004493754-pat00030
    는 배타적 논리합 연산을 나타낸다)
  15. 제10항에 있어서,
    상기 마스킹을 이용한 아리아 암호 방법은, 암호키 마스킹부가 외부로부터 입력되는 상기 암호키를 상기 제 1마스킹 난수와 상기 제2 마스킹 난수로 마스킹하여 마스킹 암호키(masked encryption key)를 생성하는 암호키 마스킹 단계를 더 포함하고, 상기 키 스케줄링 단계는,
    확장부가 상기 마스킹 암호키를 이용하여 상기 제1 마스킹 난수와 상기 제2 마스킹 난수에 의해 마스킹된 확장키를 생성하는 키 확장 단계; 및
    키 확장부가 상기 확장키를 이용하여 상기 제 1마스킹 난수와 상기 제2 마스킹 난수에 의해 마스킹된 상기 마스킹 라운드키를 생성하는 마스킹 라운드키 생성 단계를 포함하는 것을 특징으로 하는 마스킹을 이용한 아리아 암호 방법.
  16. 제15항에 있어서,
    상기 암호키 마스킹 단계에서 생성되는 상기 마스킹 암호키는, 상기 암호키의 상위 128비트를 상기 제1 마스킹 난수와 상기 제2 마스킹 난수를 이용하여 마스킹한 값 및 상기 암호키의 상기 상위 128비트 이외의 나머지 비트와 0으로 패딩(padding)한 비트를 이용하여 구성되는 128비트를 상기 제1 마스킹 난수와 상기 제2 마스킹 난수를 이용하여 마스킹한 값을 포함하는 것을 특징으로 하는 마스킹을 이용한 아리아 암호 방법.
  17. 제16항에 있어서,
    상기 키 확장 단계는, 상기 마스킹 암호키를 입력으로 하여 3라운드 256비트 파이스텔(Feistel) 알고리듬을 이용하면서 추가 마스킹을 수행하여 상기 제1 마스킹 난수와 상기 제2 마스킹 난수에 의해 마스킹된 상기 확장키를 생성하는 단계인 것을 특징으로 하는 마스킹을 이용한 아리아 암호 방법.
  18. 제10항 내지 제17항 중 어느 한 항에 따른 마스킹을 이용한 아리아 암호 방법을 수행하는 프로그램 코드가 기록된 기록매체로서 데이터 처리 및 연산을 수행하는 컴퓨터로 판독할 수 있는 상기 기록매체.
  19. 삭제
  20. 삭제
KR1020080005799A 2008-01-18 2008-01-18 아리아 마스킹 방법 및 이를 이용한 아리아 암호 장치 및방법 KR101011264B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080005799A KR101011264B1 (ko) 2008-01-18 2008-01-18 아리아 마스킹 방법 및 이를 이용한 아리아 암호 장치 및방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080005799A KR101011264B1 (ko) 2008-01-18 2008-01-18 아리아 마스킹 방법 및 이를 이용한 아리아 암호 장치 및방법

Publications (2)

Publication Number Publication Date
KR20090079664A KR20090079664A (ko) 2009-07-22
KR101011264B1 true KR101011264B1 (ko) 2011-01-27

Family

ID=41290824

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080005799A KR101011264B1 (ko) 2008-01-18 2008-01-18 아리아 마스킹 방법 및 이를 이용한 아리아 암호 장치 및방법

Country Status (1)

Country Link
KR (1) KR101011264B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101646705B1 (ko) 2009-12-01 2016-08-09 삼성전자주식회사 에스-박스를 구현한 암호화 장치
KR101601684B1 (ko) * 2011-05-18 2016-03-09 한국전자통신연구원 부채널 공격에 대응하는 대칭키 암호 알고리즘 구현 방법
CN116866038A (zh) * 2023-07-12 2023-10-10 北京兆讯恒达技术有限公司 动态掩码加密方法及动态掩码加密装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100734877B1 (ko) * 2005-08-19 2007-07-03 한국전자통신연구원 Aria 암호 모듈 및 그 방법
KR100737171B1 (ko) * 2006-05-04 2007-07-10 경북대학교 산학협력단 아리아에 대한 전력분석공격에 대응하는 저메모리형 마스킹방법
KR100834096B1 (ko) * 2007-05-11 2008-06-02 한국전자통신연구원 고차 전력분석공격에 대응하는 블록 암호 알고리즘aria의 암호화 방법
US7386130B2 (en) * 2001-06-13 2008-06-10 Fujitsu Limited Encryption secured against DPA

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7386130B2 (en) * 2001-06-13 2008-06-10 Fujitsu Limited Encryption secured against DPA
KR100734877B1 (ko) * 2005-08-19 2007-07-03 한국전자통신연구원 Aria 암호 모듈 및 그 방법
KR100737171B1 (ko) * 2006-05-04 2007-07-10 경북대학교 산학협력단 아리아에 대한 전력분석공격에 대응하는 저메모리형 마스킹방법
KR100834096B1 (ko) * 2007-05-11 2008-06-02 한국전자통신연구원 고차 전력분석공격에 대응하는 블록 암호 알고리즘aria의 암호화 방법

Also Published As

Publication number Publication date
KR20090079664A (ko) 2009-07-22

Similar Documents

Publication Publication Date Title
US8731188B2 (en) Cryptographic processing apparatus and cryptographic processing method, and computer program
US7978851B2 (en) Keystream encryption device, method, and program
US8966279B2 (en) Securing the implementation of a cryptographic process using key expansion
US8577023B2 (en) Encryption processing method, apparatus, and computer program utilizing different types of S-boxes
US20050232430A1 (en) Security countermeasures for power analysis attacks
JP7031580B2 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
CN113940028A (zh) 实现白盒密码的方法和装置
US10148425B2 (en) System and method for secure communications and data storage using multidimensional encryption
Mahendran et al. Generation of key matrix for hill cipher encryption using classical cipher
JP7078631B2 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
US11463235B2 (en) Encryption device, encryption method, program, decryption device, and decryption method
JP2017187724A (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
Rajput et al. An improved cryptographic technique to encrypt text using double encryption
Kim et al. Cryptanalysis of hash functions based on blockciphers suitable for IoT service platform security
Andreevich et al. Pseudo-probabilistic block ciphers and their randomization
Dawood et al. The new block cipher design (Tigris Cipher)
KR101011264B1 (ko) 아리아 마스킹 방법 및 이를 이용한 아리아 암호 장치 및방법
KR20100079060A (ko) 마스킹이 적용된 seed를 이용한 암호화 방법
Kumar et al. Expansion of Round Key generations in Advanced Encryption Standard for secure communication
Kim et al. Efficient masking methods appropriate for the block ciphers ARIA and AES
Buell Modern symmetric ciphers—Des and Aes
Ledda et al. Enhancing IDEA algorithm using circular shift and middle square method
Singh et al. Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish
Tayal et al. Analysis of various cryptography techniques: a survey
Anand et al. Real-time symmetric cryptography using quaternion julia set

Legal Events

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

Payment date: 20140120

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150108

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160118

Year of fee payment: 6