KR101781392B1 - 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화와 복호화 시스템 및 그 방법 - Google Patents

마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화와 복호화 시스템 및 그 방법 Download PDF

Info

Publication number
KR101781392B1
KR101781392B1 KR1020150129270A KR20150129270A KR101781392B1 KR 101781392 B1 KR101781392 B1 KR 101781392B1 KR 1020150129270 A KR1020150129270 A KR 1020150129270A KR 20150129270 A KR20150129270 A KR 20150129270A KR 101781392 B1 KR101781392 B1 KR 101781392B1
Authority
KR
South Korea
Prior art keywords
value
masking
output
masked
encryption
Prior art date
Application number
KR1020150129270A
Other languages
English (en)
Other versions
KR20170031551A (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 KR1020150129270A priority Critical patent/KR101781392B1/ko
Publication of KR20170031551A publication Critical patent/KR20170031551A/ko
Application granted granted Critical
Publication of KR101781392B1 publication Critical patent/KR101781392B1/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

Abstract

마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 방법은, (a-1) 제 3 마스킹값에 의해 불리언(Boolean) 마스킹된 제 A1 값을 아리스메틱(Arithmetic) 마스킹된 값으로 변환하는 단계; (b-1) 상기 (a-1) 단계의 출력을 제 a 값에 의해 마스킹하는 단계; (c-1) 상기 제 3 마스킹값에 의해 불리언 마스킹된 제 A2 값을 아리스메틱 마스킹된 값으로 변환하는 단계; (d-1) 상기 (b-1) 단계의 출력 및 상기 (c-1) 단계의 출력의 합을 상기 제 3 마스킹값의 2배수에 의해 마스킹하는 단계; (e-1) 4비트(bit) 단위로 아리스메틱 마스킹을 불리언 마스킹으로 변환하는 지-테이블 및 상기 지-테이블이 4비트씩 변환하는 동안 발생하는 캐리값을 위한 씨-테이블을 이용하여, 상기 (d-1) 단계의 출력을 불리언 마스킹된 값으로 변환하는 단계; (f-1) 현재 라운드에서 로테이션 연산과 관련하여 정해진 횟수만큼, 현재 라운드에서 로테이션 연산과 관련하여 정해진 로테이션 방향과 반대 방향으로 제 1 마스킹값을 로테이션하는 단계; (g-1) 상기 (e-1) 단계의 출력인 제 b 값에 의해 마스킹된 값을 상기 (f-1) 단계의 출력을 이용하여 마스킹하는 단계; 및 (h-1) 상기 (g-1) 단계의 출력을 상기 제 b 값에 의해 마스킹하는 단계;를 포함한다.

Description

마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화와 복호화 시스템 및 그 방법{ENCRYPTION AND DECRYPTION SYSTEM USING BLOCK ENCRYPTION LIGHTWEIGHT ENCRYPTION ALGORITHM HAVING MASKING FUNCTION AND METHOD THEREFOR}
본 발명은 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화와 복호화 시스템 및 그 방법에 관한 것이다.
노트북, 스마트폰 및 태블릿 PC 등의 현재의 다양한 휴대형 컴퓨팅 장비는 누구나 접근 용이성 및 휴대 용이성 때문에, 도난 및 복제에 의해 장비에 저장된 개인의 사생활 정보가 쉽게 유출될 수 있다. 그리고 무선 통신의 특성상 유선 통신에 비해 통신 데이터를 감청하여 위·변조 하는 것이 가능하기 때문에 장비 내부에 저장되어 있는 개인 정보 등의 중요 데이터가 유출되고 훼손되기 쉽다.
상술한 문제들을 해결하기 위해 현재 다양한 휴대형 장비 등에서 활용 가능한 암호화 하드웨어 모듈을 개발이 활발히 이루어지고 있다.
이러한 경량 하드웨어에 적합한 알고리즘 중, 블록 암호 경량 암호화 알고리즘(LEA, Lightweight Encryption Algorithm)은, 128비트 데이터 블록을 암호화하는 알고리즘으로 128, 192, 256비트 비밀키를 사용할 수 있으며 요구되는 안전성 기준에 따라 용도가 구분될 수 있다. LEA의 라운드함수는 32비트 단위의 ARX(Addition, Rotation, XOR) 연산만으로 구성하여, 이들 연산을 지원하는 범용 32비트 플랫폼에서 고속으로 동작할 수 있도록 설계되었다.
경량 암호화 알고리즘의 경우에도, 암호 알고리즘과 프로토콜 그 자체는 이론적으로 안전하더라도 구현 환경에 따라서 위협적인 공격에 노출될 수 있다.
따라서, 합산(Addition), 배타적 논리합(XOR), 로테이션(Rotation) 연산으로 이루어진 경량 암호화 알고리즘에 마스킹 기법을 적용할 필요가 있는 데, 보통 합산과 로테이션에 마스킹값을 씌워주는 기법을 이용하게 된다.
마스킹의 요지는, 동일한 값으로 마스킹된 값이 계속하여 유지되어야 한다는 것이다. 그래서 로테이션 연산이 일어날 경우에, 마스킹된 값이 함께 로테이션 되어, 동일하지 않은 값으로 마스킹이 되게 된다.
종래에는 이것을 다시 원래의 값으로 마스킹을 하고, 로테이션된 마스킹 값을 없애는 방식으로 해결을 하고 있지만, 단계가 많이 추가되어 번거로운 점이 있다.
본 발명은 전술한 바와 같은 기술적 과제를 해결하는 데 목적이 있는 발명으로서, 경량 암호화와 복호화 알고리즘에 마스킹 기법을 적용시에, 그 과정을 감소시켜 효율을 기할 수 있는 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화와 복호화 시스템 및 그 방법을 제공하는 것에 그 목적이 있다.
본 발명의 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 방법은, (f-1) 현재 라운드에서 로테이션 연산과 관련하여 정해진 횟수만큼, 현재 라운드에서 로테이션 연산과 관련하여 정해진 로테이션 방향과 반대 방향으로 제 1 마스킹값을 로테이션하는 단계; (g-1) 제 b 값에 의해 마스킹된 값을 상기 (f-1) 단계의 출력을 이용하여 마스킹하는 단계; (h-1) 상기 (g-1) 단계의 출력을 상기 제 b 값에 의해 마스킹하는 단계; 및 (i-1) 상기 (h-1) 단계의 출력을, 현재 라운드에서 로테이션 연산과 관련하여 정해진 로테이션 방향과 횟수에 의해 로테이션하는 단계;를 포함한다.
상기 (i-1) 단계의 출력은, 상기 제 1 마스킹값을 이용하여 마스킹된 값인 것을 특징으로 한다.
아울러 본 발명의 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 방법은, 상기 (f-1) 단계 이전에, (a-1) 제 3 마스킹값에 의해 불리언(Boolean) 마스킹된 제 A1 값을 아리스메틱(Arithmetic) 마스킹된 값으로 변환하는 단계; (b-1) 상기 (a-1) 단계의 출력을 제 a 값에 의해 마스킹하는 단계; (c-1) 상기 제 3 마스킹값에 의해 불리언 마스킹된 제 A2 값을 아리스메틱 마스킹된 값으로 변환하는 단계; (d-1) 상기 (b-1) 단계의 출력 및 상기 (c-1) 단계의 출력의 합을 상기 제 3 마스킹값의 2배수에 의해 마스킹하는 단계; 및 (e-1) 4비트(bit) 단위로 아리스메틱 마스킹을 불리언 마스킹으로 변환하는 지-테이블 및 상기 지-테이블이 4비트씩 변환하는 동안 발생하는 캐리값을 위한 씨-테이블을 이용하여, 상기 (d-1) 단계의 출력을 불리언 마스킹된 값으로 변환하는 단계;를 더 포함하는 것이 바람직하다.
또한, 상기 (d-1) 단계의 출력은, 상기 제 a 값에 의해 마스킹된 값인 것을 특징으로 한다. 아울러 상기 (e-1) 단계의 출력은 상기 제 b 값에 의해 마스킹된 값이고, 상기 (e-1) 단계의 출력이 상기 (f-1) 단계로 입력되는 것을 특징으로 한다.
본 발명의 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 복호화 방법은, (a-2) 현재 라운드에서 로테이션 연산과 관련하여 정해진 횟수만큼 현재 라운드에서 로테이션 연산과 관련하여 정해진 로테이션 방향과 반대 방향으로, 제 3 마스킹값을 로테이션하는 단계; (b-2) 제 1 마스킹값에 의해 마스킹된 값을 상기 (a-2) 단계의 출력을 이용하여 마스킹하는 단계; (c-2) 상기 (b-2) 단계의 출력을 상기 제 1 마스킹값에 의해 마스킹하는 단계; 및 (d-2) 상기 (c-2) 단계의 출력을, 현재 라운드에서 로테이션 연산과 관련하여 정해진 로테이션 방향과 횟수에 의해 로테이션하는 단계;를 포함한다.
아울러 본 발명의 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 복호화 방법은, (e-2) 제 3 마스킹값에 의해 불리언(Boolean) 마스킹된 제 B1 값을 아리스메틱(Arithmetic) 마스킹된 값으로 변환하는 단계; (f-2) 상기 (e-2) 단계의 출력을 제 a 값에 의해 마스킹하는 단계; (g-2) 상기 제 3 마스킹값에 의해 불리언 마스킹된 제 B2 값을 아리스메틱 마스킹된 값으로 변환하는 단계; 및 (h-2) 상기 (f-2) 단계의 출력으로부터 상기 (g-2) 단계의 출력을 감산하는 단계;를 더 포함하는 것이 바람직하다.
또한 본 발명의 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 복호화 방법은, 상기 (h-2) 단계 이후에, (i-2) 4비트(bit) 단위로 아리스메틱 마스킹을 불리언 마스킹으로 변환하는 지-테이블 및 상기 지-테이블이 4비트씩 변환하는 동안 발생하는 캐리값을 위한 씨-테이블을 이용하여, 상기 (h-2) 단계의 출력을 불리언 마스킹된 값으로 변환하는 단계; (j-2) 상기 (i-2) 단계의 출력을, 제 3 마스킹값에 의해 마스킹하는 단계; 및 (k-2) 상기 (j-2) 단계의 출력을, 제 b 값에 의해 마스킹하는 단계;를 더 포함하는 것을 특징으로 한다.
본 발명의 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화와 복호화 시스템 및 그 방법에 따르면, 경량 암호화와 복호화 알고리즘에 마스킹 기법을 적용시에, 그 과정을 감소시켜 효율을 기할 수 있다.
도 1은 각 기호들에 대한 설명 테이블.
도 2는 본 발명의 바람직한 일실시예에 따른 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 시스템의 구성도.
도 3은 본 발명에서의 라운드키 생성 및 라운드함수 수행의 사이클 설명도.
도 4는 도 2의 제 1 라운드키 생성부의 각 블록 연결선에 마스킹값을 표시한 설명도.
도 5는 마스킹에디션단의 구성 예시도.
도 6은 제 1-1 비투에이블록 및 제 1-2 비투에이블록의 구성 예시도.
도 7은 제 1 에이투비블록의 구성 예시도.
도 8a는 본 발명의 바람직한 일실시예에 따른 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 방법의 주요 부분도.
도 8b 종래의 마스킹 기능을 갖는 경량 암호화 방법의 주요 부분도.
도 9는 본 발명의 바람직한 일실시예에 따른 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 복호화 시스템의 구성도.
도 10은 도 9의 제 2 라운드키 생성부의 각 블록 연결선에 마스킹값을 표시한 예시도.
도 11는 마스킹서브트렉터단의 구성 예시도.
도 12는 제 2 에이투비블록의 구성 예시도.
이하, 첨부된 도면을 참조하면서 본 발명의 실시예에 따른 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화와 복호화 시스템 및 그 방법에 대해 상세히 설명하기로 한다.
본 발명의 하기의 실시예는 본 발명을 구체화하기 위한 것일 뿐 본 발명의 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 본 발명의 상세한 설명 및 실시예로부터 본 발명이 속하는 기술 분야의 전문가가 용이하게 유추할 수 있는 것은 본 발명의 권리 범위에 속하는 것으로 해석된다.
본 발명의 구체적인 설명에 앞서, 본 발명에 사용되는 각 기호들에 대한 설명을 도 1에 정리하였다.
도 2는 본 발명의 바람직한 일실시예에 따른 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 시스템(100)의 구성도를 나타낸다.
도 2로부터 알 수 있는 바와 같이, 본 발명의 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 시스템(100)은, 제 1 라운드키 생성부(110) 및 제 1 라운드함수 수행부(120)를 포함한다.
본 발명의 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 시스템(100)에 따르면, 라운드키(Round Key)를 생성하는 것과 필요한 라운드키가 생성되었을 때 다른 라운드키를 생성함과 동시에 라운드함수(Round Function)를 수행하는 것에 의해 사이클을 감소시킨 구조를 채택하고 있다.
도 3은 LEA128에 의한 본 발명에서의 라운드키 생성 및 라운드함수 수행의 사이클 설명도를 나타낸다.
즉, 본 발명의 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 시스템(100)은 다음과 같은 라운드, 즉 사이클(Cycle)에 의해 라운드키 생성 및 라운드함수 수행을 한다.
1Cycle : RKi[4] 생성 (Ti[3] ← ROL11(T[3]
Figure 112015088754440-pat00001
ROLi +3(δ[i mod 4])))
2Cycle : RKi[2] 생성 (Ti[2] ← ROL6(T[2]
Figure 112015088754440-pat00002
ROLi +2(δ[i mod 4])))
3Cycle : RKi[5] 생성 (Ti[1] ← ROL3(T[1]
Figure 112015088754440-pat00003
ROLi +1(δ[i mod 4])))
4Cycle : RKi[0] 생성 (Ti[0] ← ROL1(T[0]
Figure 112015088754440-pat00004
ROLi(δ[i mod 4]))), 동시에, RKi[5]와 RKi[4]를 이용해 라운드함수 실행 (Xi +1[2]= ROR3((Xi[2]
Figure 112015088754440-pat00005
RKi[4])
Figure 112015088754440-pat00006
(Xi[3]
Figure 112015088754440-pat00007
RKi[5])))
5Cycle : RKi +1[4] 생성, 동시에, RKi[3](=RKi[5])와 RKi[2]를 입력받아 라운드함수 실행(Xi+1[1]=ROR5((Xi[1]
Figure 112015088754440-pat00008
RKi[2])
Figure 112015088754440-pat00009
(Xi[2]
Figure 112015088754440-pat00010
RKi[3])))
6Cycle : RKi +1[2] 생성, 동시에, RKi[1](=RKi[5])와 RKi[0]를 입력받아 라운드함수 실행(Xi+1[0]=ROL9((Xi[0]
Figure 112015088754440-pat00011
RKi[0])
Figure 112015088754440-pat00012
(Xi[1]
Figure 112015088754440-pat00013
RKi1])))
7Cycle : 3Cycle과 동일
(반복)
하기에 도 2의 본 발명의 바람직한 일실시예에 따른 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 시스템(100)에 대해 구체적으로 설명하기로 한다.
참고로, 도 2를 비롯한 도면에서, (mj)4=(mj)∥(mj)∥(mj)∥(mj)를, (mj)8=(mj)∥(mj)∥(mj)∥(mj)∥(mj)∥(mj)∥(mj)∥(mj)를 각각 나타낸다.
도 4는 도 2의 제 1 라운드키 생성부(110)의 각 블록 연결선에 마스킹값을 표시한 설명도이다. 아울러, 도 5는 마스킹에디션단(111)의 예시도이다. 도 6은, 제 1-1 비투에이블록(BtoA_1a) 및 제 1-2 비투에이블록(BtoA_1b)의 예시도이고, 도 7은 제 1 에이투비블록(AtoB_1)의 예시도이다.
제 1-1 비투에이블록(BtoA_1a) 및 제 1-2 비투에이블록(BtoA_1b)은 도 6에 나타낸 바와 같이 동일한 구성에 의해 구현된다.
도 2, 도 4 및 도 5 내지 도 7로부터 알 수 있는 바와 같이, 본 발명의 바람직한 일실시예에 따른 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 시스템(100)에 의한 암호화 방법은, 제 1-1 비투에이블록(BtoA_1a)에서 (m3)4값에 의해 불리언(Boolean) 마스킹된 제 A1 값을 아리스메틱(Arithmetic) 마스킹된 값으로 변환하는 단계(S110), 아리스메틱 마스킹된 제 A1 값을 (ma)8값에 의해
Figure 112015088754440-pat00014
연산을 이용하여 마스킹하는 단계(S120), 제 1-2 비투에이블록(BtoA_1b)에서 (m3)4값에 의해 불리언(Boolean) 마스킹된 제 A2 값을 아리스메틱 마스킹된 값으로 변환하는 단계(S130) 및 S120 단계의 출력 및 S130 단계의 출력의 합을 (m3)4값의 2배수에 의해
Figure 112015088754440-pat00015
연산을 이용하여 마스킹하는 단계(S140)를 포함한다.
여기서, (m3)4값은, (m1)4
Figure 112015088754440-pat00016
(m2)4의 연산에 의해 산출된다. 또한, S140 단계의 출력은, (ma)8값에 의해 마스킹된 값인 것을 특징으로 한다.
아울러, 본 발명의 바람직한 일실시예에 따른 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 방법은, 4비트 단위로 아리스메틱 마스킹을 불리언 마스킹으로 변환하는 지-테이블(GT) 및 지-테이블(GT)이 4비트씩 변환하는 동안 발생하는 캐리값을 위한 씨-테이블(CT)을 이용하여, S140 단계의 출력을 불리언 마스킹된 값으로 변환하는 단계(S150), 현재 라운드에서 로테이션 연산과 관련하여 정해진 횟수만큼 현재 라운드에서 로테이션 연산과 관련하여 정해진 로테이션 방향과 반대 방향으로, (m1)4값을 로테이션하는 단계(S160) 및 (mb)8값에 의해 마스킹된 값을 S160 단계의 출력을 이용하여 마스킹하는 단계(S170) 및 S170 단계의 출력을 (mb)8값에 의해 마스킹하는 단계(S180)를 더 포함하는 것을 특징으로 한다.
지-테이블은 (input-ma)
Figure 112015088754440-pat00017
mb으로 산출되고, 씨-테이블은 바로우 디지트(Borrow digit)를 산출하는 기능을 한다. 또한, S150 단계의 출력은 (mb)8값에 의해 마스킹된 값인 것을 알 수 있다.
또한, 본 발명의 바람직한 일실시예에 따른 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 방법은, S180 단계의 출력을, 현재 라운드에서 로테이션 연산과 관련하여 정해진 로테이션 방향과 횟수에 의해 로테이션하는 단계(S190)를 더 포함한다. S190 단계의 출력은, (m1)4값을 이용하여 마스킹된 값인 것을 알 수 있다.
예를 들어, 본 발명에서는 S190 단계에서 ROL9(x)를 해야 할 경우, S160 단계에서는 ROR9((m1)4)로 로테이션하게 된다.
상술한 본 발명의 바람직한 일실시예에 따른 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 시스템(100) 및 그 방법에서, 불리언 연산의 수행시에는
Figure 112015088754440-pat00018
연산을 이용하여 마스킹하고, 아리스메틱 연산의 수행시에는
Figure 112015088754440-pat00019
연산을 이용하여 마스킹하는 것을 알 수 있다. 아울러, 동일한 값에 의한 짝수회의 마스킹에 의해, 해당 값에 의한 마스킹은 해제되게 된다.
도 8a 및 도 8b는 본 발명의 바람직한 일실시예에 따른 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 방법의 주요 부분 및 종래의 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 방법의 대비 부분을 각각 나타낸다.
도 8a 및 도 8b로부터 알 수 있는 바와 같이, 로테이션을 수행하기 이전에 역방향으로 로테이션하지 않은 경우, 훨씬 더 많은 단계를 거쳐야 된다.
즉, 도 8b의 종래의 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 방법에서는, (mb)8 로 마스킹된 K 지점의 출력은, (m1)4 을 이용하여
Figure 112015088754440-pat00020
연산으로 마스킹하고, (mb)8 마스킹을 해제하고, 로테이션을 수행하고, 32비트 마스크값을 이용하여
Figure 112015088754440-pat00021
연산으로 마스킹을 실시하고, 로테이션된 (m1)4 을 이용하여
Figure 112015088754440-pat00022
연산으로 마스킹을 실시하고, (m1)4 을 이용하여
Figure 112015088754440-pat00023
연산으로 마스킹을 실시하고, 32비트 마스크값을 이용하여
Figure 112015088754440-pat00024
연산으로 마스킹하여, 최종적으로 (m1)4로 마스킹된 값을 출력하게 된다.
그러나, 도 8a에 나타낸 바와 같이, 본 발명의 바람직한 일실시예에 따른 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 방법은 도 8b와 같은 복잡한 단계들을 거칠 필요가 없다.
도 9는 본 발명의 바람직한 일실시예에 따른 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 복호화 시스템(200)의 구성도를 나타낸다.
도 9로부터 알 수 있는 바와 같이, 본 발명의 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 복호화 시스템(200)은, 제 2 라운드키 생성부(210) 및 제 2 라운드함수 수행부(220)를 포함한다.
도 10은 도 9의 제 2 라운드키 생성부(210)의 각 블록 연결선에 마스킹값을 표시한 예시도이다. 아울러, 도 11는 마스킹서브트렉터단(211)의 예시도이고, 도 12는 제 2 에이투비블록(AtoB_2)의 예시도이다.
제 2-1 비투에이블록(BtoA_2a) 및 제 2-2 비투에이블록(BtoA_2b)은, 도 6의 암호화 시스템의 제 1-1 비투에이블록(BtoA_1a) 및 제 1-2 비투에이블록(BtoA_1b)과 동일한 구성에 의해 구현될 수 있다.
도 9 내지 도 12로부터 알 수 있는 바와 같이, 본 발명의 바람직한 일실시예에 따른 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 복호화 시스템(200)에 의한 복호화 방법은, 현재 라운드에서 로테이션 연산과 관련하여 정해진 횟수만큼 현재 라운드에서 로테이션 연산과 관련하여 정해진 로테이션 방향과 반대 방향으로, (m3)4값을 로테이션하는 단계(S210), (m1)4값에 의해 마스킹된 값을 S210 단계의 출력을 이용하여 마스킹하는 단계(S220), S220 단계의 출력을 (m1)4값에 의해 마스킹하는 단계(S230) 및 S230 단계의 출력을 현재 라운드에서 로테이션 연산과 관련하여 정해진 로테이션 방향과 횟수에 의해 로테이션하는 단계(S240)를 포함한다.
예를 들어, 본 발명에서는 S240 단계에서 ROL9(x)를 해야 할 경우, S210 단계에서는 ROR9((m3)4)로 로테이션하게 된다.
아울러 본 발명의 바람직한 일실시예에 따른 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 복호화 방법은, (m3)4값에 의해 불리언(Boolean) 마스킹된 제 B1 값을 아리스메틱(Arithmetic) 마스킹된 값으로 변환하는 단계(S250), 아리스메틱 마스킹된 제 B1 값을 (ma)8값에 의해 마스킹하는 단계(S260), (m3)4값에 의해 불리언(Boolean) 마스킹된 제 B2 값을 아리스메틱 마스킹된 값으로 변환하는 단계(S270) 및 S260 단계의 출력으로부터 S270 단계의 출력을 감산하는 단계(S275)을 더 포함하는 것이 바람직하다.
또한 본 발명의 바람직한 일실시예에 따른 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 복호화 방법은, 4비트 단위로 아리스메틱 마스킹을 불리언 마스킹으로 변환하는 지-테이블 및 지-테이블이 4비트씩 변환하는 동안 발생하는 캐리값을 위한 씨-테이블을 이용하여, S275 단계의 출력을 불리언 마스킹된 값으로 변환하는 단계(S280)를 더 포함하는 것을 특징으로 한다. 여기서, 지-테이블은 (input-ma)
Figure 112015088754440-pat00025
mb으로 산출되고, 씨-테이블은 바로우 디지트(Borrow digit)를 산출하는 기능을 한다.
그리고, 본 발명의 바람직한 일실시예에 따른 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 복호화 방법은, S280 단계의 출력을 (m3)4값에 의해 마스킹하는 단계(S285) 및 S285 단계의 출력을, (mb)8값에 의해 마스킹하는 단계(S290)을 더 포함하는 것을 특징으로 한다.
상술한 본 발명의 바람직한 일실시예에 따른 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 복호화 시스템(200) 및 그 방법에서, 불리언 연산의 수행시에는
Figure 112015088754440-pat00026
연산을 이용하여 마스킹하고, 아리스메틱 연산의 수행시에는
Figure 112015088754440-pat00027
연산을 이용하여 마스킹하는 것을 알 수 있다. 아울러, 동일한 값에 의한 짝수회의 마스킹에 의해, 해당 값에 의한 마스킹은 해제되게 된다.
본 발명의 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화와 복호화 시스템 및 그 방법은, 로테이션 연산이 일어나기 전에, 반대로 로테이션된 값으로 마스킹을 하여서, 로테이션 연산을 하는 것에 의해 정상적인 값으로 마스킹이 되게 한다. 본 발명의 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화와 복호화 시스템 및 그 방법에 따르면, 로테이션으로 잘못된 마스킹 값을 없애고, 다시 마스킹을 하는 과정을 생략할 수 있게 해 주어, LEA에 마스킹 기법을 적용함에 있어 효율성을 높일 수 있다.
100 : 본 발명의 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 시스템
110 : 제 1 라운드키 생성부 120 : 제 1 라운드함수 수행부
111 : 마스킹에디션단
BtoA_1a : 제 1-1 비투에이블록 BtoA_1b : 제 1-2 비투에이블록
AtoB_1 : 제 1 에이투비블록
200 : 본 발명의 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 복호화 시스템
210 : 제 2 라운드키 생성부 220 : 제 2 라운드함수 수행부
211 : 마스킹서브트렉터단
BtoA_2a: 제 2-1 비투에이블록 BtoA_2b : 제 2-2 비투에이블록
AtoB_2 : 제 2 에이투비블록

Claims (12)

  1. (a-1) 제 3 마스킹값에 의해 불리언(Boolean) 마스킹된 제 A1 값을 아리스메틱(Arithmetic) 마스킹된 값으로 변환하는 단계;
    (b-1) 상기 (a-1) 단계의 출력을 제 a 값에 의해 마스킹하는 단계;
    (c-1) 상기 제 3 마스킹값에 의해 불리언 마스킹된 제 A2 값을 아리스메틱 마스킹된 값으로 변환하는 단계;
    (d-1) 상기 (b-1) 단계의 출력 및 상기 (c-1) 단계의 출력의 합을 상기 제 3 마스킹값의 2배수에 의해 마스킹하는 단계;
    (e-1) 4비트(bit) 단위로 아리스메틱 마스킹을 불리언 마스킹으로 변환하는 지-테이블 및 상기 지-테이블이 4비트씩 변환하는 동안 발생하는 캐리값을 위한 씨-테이블을 이용하여, 상기 (d-1) 단계의 출력을 불리언 마스킹된 값으로 변환하는 단계;
    (f-1) 현재 라운드에서 로테이션 연산과 관련하여 정해진 횟수만큼, 현재 라운드에서 로테이션 연산과 관련하여 정해진 로테이션 방향과 반대 방향으로 제 1 마스킹값을 로테이션하는 단계;
    (g-1) 상기 (e-1) 단계의 출력인 제 b 값에 의해 마스킹된 값을 상기 (f-1) 단계의 출력을 이용하여 마스킹하는 단계; 및
    (h-1) 상기 (g-1) 단계의 출력을 상기 제 b 값에 의해 마스킹하는 단계;를 포함하는 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 방법.
  2. 제1항에 있어서,
    상기 암호화 방법은,
    (i-1) 상기 (h-1) 단계의 출력을, 현재 라운드에서 로테이션 연산과 관련하여 정해진 로테이션 방향과 횟수에 의해 로테이션하는 단계;를 더 포함하는 것을 특징으로 하는 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 방법.
  3. 제2항에 있어서,
    상기 (i-1) 단계의 출력은,
    상기 제 1 마스킹값을 이용하여 마스킹된 값인 것을 특징으로 하는 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 방법.
  4. 삭제
  5. 삭제
  6. 제1항에 있어서,
    상기 (d-1) 단계의 출력은,
    상기 제 a 값에 의해 마스킹된 값인 것을 특징으로 하는 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화 방법.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. (e-2) 제 3 마스킹값에 의해 불리언(Boolean) 마스킹된 제 B1 값을 아리스메틱(Arithmetic) 마스킹된 값으로 변환하는 단계;
    (f-2) 상기 (e-2) 단계의 출력을 제 a 값에 의해 마스킹하는 단계;
    (g-2) 상기 제 3 마스킹값에 의해 불리언 마스킹된 제 B2 값을 아리스메틱 마스킹된 값으로 변환하는 단계; 및
    (h-2) 상기 (f-2) 단계의 출력으로부터 상기 (g-2) 단계의 출력을 감산하는 단계; 및
    (i-2) 4비트(bit) 단위로 아리스메틱 마스킹을 불리언 마스킹으로 변환하는 지-테이블 및 상기 지-테이블이 4비트씩 변환하는 동안 발생하는 캐리값을 위한 씨-테이블을 이용하여, 상기 (h-2) 단계의 출력을 불리언 마스킹된 값으로 변환하는 단계;를 포함하는 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 복호화 방법.
  12. 제11항에 있어서,
    상기 복호화 방법은, 상기 (i-2) 단계 이후에,
    (j-2) 상기 (i-2) 단계의 출력을, 상기 제 3 마스킹값에 의해 마스킹하는 단계; 및
    (k-2) 상기 (j-2) 단계의 출력을, 제 b 값에 의해 마스킹하는 단계;를 더 포함하는 것을 특징으로 하는 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 복호화 방법.
KR1020150129270A 2015-09-11 2015-09-11 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화와 복호화 시스템 및 그 방법 KR101781392B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150129270A KR101781392B1 (ko) 2015-09-11 2015-09-11 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화와 복호화 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150129270A KR101781392B1 (ko) 2015-09-11 2015-09-11 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화와 복호화 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20170031551A KR20170031551A (ko) 2017-03-21
KR101781392B1 true KR101781392B1 (ko) 2017-09-25

Family

ID=58502501

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150129270A KR101781392B1 (ko) 2015-09-11 2015-09-11 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화와 복호화 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101781392B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110013767A1 (en) * 2009-07-20 2011-01-20 Electronics And Telecommunications Research Institute Masking method of defending differential power analysis attack in seed encryption algorithm

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110013767A1 (en) * 2009-07-20 2011-01-20 Electronics And Telecommunications Research Institute Masking method of defending differential power analysis attack in seed encryption algorithm

Also Published As

Publication number Publication date
KR20170031551A (ko) 2017-03-21

Similar Documents

Publication Publication Date Title
Wang et al. Cryptanalysis of an image encryption algorithm using Chebyshev generator
US7978851B2 (en) Keystream encryption device, method, and program
US10484170B2 (en) Custom encryption function for communications between a client device and a server device
US20180205536A1 (en) Stream cipher system
Zhang et al. Cryptanalysis and improvement of an image encryption algorithm based on hyper-chaotic system and dynamic S-box
WO2019114122A1 (zh) 登录信息的加密方法、装置、电子设备及介质
WO2021114850A1 (zh) 消息的加解密、读写方法、装置、计算机设备和存储介质
KR101330664B1 (ko) 저전력 암호화 장치 및 방법
KR100960113B1 (ko) 고속처리 가능한 아리아 암복호화 장치
JP2017187724A (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
US11057205B2 (en) Seed key expansion method and its uses
CN114175572A (zh) 利用拟群运算对加密数据实行相等和小于运算的系统和方法
WO2021129470A1 (zh) 基于多项式完全同态的二进制数据加密系统及方法
JPWO2019031026A1 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
US8804953B2 (en) Extensive ciphertext feedback
CN111798236B (zh) 交易数据加、解密方法、装置及设备
CN115632782B (zh) 基于sm4计数器模式的随机数生成方法、系统及设备
US10075290B2 (en) Operator lifting in cryptographic algorithm
KR101781392B1 (ko) 마스킹 기능을 갖는 블록 암호 경량 암호화 알고리즘을 이용한 암호화와 복호화 시스템 및 그 방법
Rouaf et al. Performance Evaluation of Encryption Algorithms in Mobile Devices
EP3832945A1 (en) System and method for protecting memory encryption against template attacks
CN114124359A (zh) 保留格式加密数据的方法、装置、电子设备及存储介质
CN111314051B (zh) 一种加解密方法和装置
Labbi et al. Symmetric encryption algorithm for RFID systems using a dynamic generation of key
US20170126399A1 (en) Encryption apparatus, storage system, decryption apparatus, encryption method, decryption method, and computer readable medium

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