KR20170097509A - 화이트 박스 암호화 기반의 연산 방법 및 그 방법을 수행하는 보안 단말 - Google Patents

화이트 박스 암호화 기반의 연산 방법 및 그 방법을 수행하는 보안 단말 Download PDF

Info

Publication number
KR20170097509A
KR20170097509A KR1020160019360A KR20160019360A KR20170097509A KR 20170097509 A KR20170097509 A KR 20170097509A KR 1020160019360 A KR1020160019360 A KR 1020160019360A KR 20160019360 A KR20160019360 A KR 20160019360A KR 20170097509 A KR20170097509 A KR 20170097509A
Authority
KR
South Korea
Prior art keywords
encoding
white
user terminal
encryption
box
Prior art date
Application number
KR1020160019360A
Other languages
English (en)
Inventor
이승광
강유성
김주한
김태성
최두호
김건우
김수형
조현숙
진승헌
Original Assignee
한국전자통신연구원
주식회사 한컴시큐어
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원, 주식회사 한컴시큐어 filed Critical 한국전자통신연구원
Priority to KR1020160019360A priority Critical patent/KR20170097509A/ko
Priority to US15/214,309 priority patent/US20170244677A1/en
Publication of KR20170097509A publication Critical patent/KR20170097509A/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/002Countermeasures against attacks on cryptographic mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • 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/16Obfuscation or hiding, e.g. involving white box
    • 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/34Encoding or coding, e.g. Huffman coding or error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 연산 방법 및 그 방법을 수행하는 보안 단말에 관한 것으로, 연산 방법은 사용자 단말로부터 외부 인코딩 연산을 하기 위한 평문을 수신하여 평문에 대하여 외부 인코딩 연산을 수행한 후, 외부 인코딩 연산된 평문을 사용자 단말로 송신하는 방법을 제안하고, 연산 방법은 사용자 단말로부터 외부 인코딩 연산된 평문에 대하여 화이트 박스 암호화 연산이 수행된 암호문을 수신하여 암호문에 대하여 외부 디코딩 연산을 수행한 후, 외부 디코딩 연산된 암호문을 사용자 단말로 송신하는 방법을 제안한다.

Description

화이트 박스 암호화 기반의 연산 방법 및 그 방법을 수행하는 보안 단말{OPERATION METHOD BASED ON WHITE-BOX CRYPTOGRAPHY AND SECURITY APPARATUS FOR PERFORMING THE METHOD}
아래의 설명은 화이트 박스 암호화 기반의 연산 방법 및 그 방법을 수행하는 보안 단말에 관한 것으로 구체적으로는 화이트 박스 암호화 연산에 따른 룩업 테이블에 대한 탈취에 대응하기 위한 방법 및 그 방법을 수행하는 단말에 관한 것이다.
화이트 박스 암호화 연산(White-box Cryptography)은 소프트웨어 콘텐츠 저작권을 보호 즉 불법 유통 방지를 위한 기술을 구현하는 방법이다. 구체적으로, 화이트 박스 암호화 연산은 암호화 알고리즘의 암호화 키에 대한 유추를 방지하기 위해 암호화 키 정보를 소프트웨어로 구현된 암호화 알고리즘에 섞는 방법으로 공격자가 알고리즘 내부 동작을 분석하더라도 암호화 키를 쉽게 유추할 수 없도록 하는 기술이다.
다시 말해, 화이트 박스 암호화 연산은 암호화 키가 소프트웨어로 구현된 암호화 알고리즘에 섞어 있음에 따라 공격자로 하여금 내부 동작을 분석하더라도 암호화 알고리즘과 암호화 키를 구분하기가 어려운 기술이다. 이를 위해, 화이트 박스 암호화 연산은 암호화 연산을 위한 룩업 테이블을 이용하여 암호화 알고리즘에 대한 연산을 수행한다.
이때, 화이트 박스 암호화에 따른 룩업 테이블이 공격자에 의해 탈취되는 경우, 공격자는 탈취한 룩업 테이블을 이용하여 화이트 박스 암호 연산에 따른 정보 노출시킨다. 다시 말해, 룩업 테이블은 암호화 알고리즘에 대한 비밀키가 결합되어 있음에 따라 공격자에 의해 룩업 테이블이 탈취된 경우, 공격자는 탈취한 룩업 테이블에 포함된 비밀 키를 이용해 공격자가 원하는 정보를 획득할 수 있다.
즉, 공격자는 탈취한 룩업 테이블을 이용해 암호 연산 과정과 중간값을 모두 알아냄에 따라 암호화 키 해석 및 유추가 가능하며, 이에 따른 정보 획득이 가능하다.
따라서, 공격자에 의해 화이트 박스 암호화에 따른 룩업 테이블이 탈취되더라도 이에 따른 정보가 유출되는 것을 방지할 수 있는 방법이 필요하다.
본 발명은 화이트 박스 암호화 연산에 따른 룩업 테이블이 탈취되었을 경우, 외부 공격자에 의해 정보 유출을 차단하기 위한 방법을 제공할 수 있다.
일실시예에 따른 보안 단말이 수행하는 연산 방법은 사용자 단말로부터 외부 인코딩 연산을 하기 위한 평문을 수신하는 단계; 상기 외부 인코딩을 위한 보안 테이블을 이용하여 상기 평문에 대해 외부 인코딩 연산을 수행하는 단계; 상기 외부 인코딩 연산된 평문을 상기 사용자 단말로 송신하는 단계를 포함하고, 상기 사용자 단말은, 상기 외부 인코딩 연산된 평문에 대해 복수의 인코딩 연산, 디코딩 연산, 암호화 연산으로 구성된 화이트 박스 암호화 연산을 수행할 수 있다.
일실시예에 따른 외부 인코딩 연산을 하기 위한 평문은 상기 사용자 단말을 통해 디코딩될 데이터를 나타낼 수 있다.
일실시예에 따른 평문에 대해 외부 인코딩 연산을 수행하는 단계는 상기 외부 인코딩 연산을 위한 평문에 대하여 선형 또는 비선형 인코딩을 수행할 수 있다.
일실시예에 따른 사용자 단말은 상기 화이트 박스 암호화 연산을 위한 룩업 테이블 중에서 외부 인코딩을 위한 보안 테이블을 포함하지 않을 수 있다.
일실시예에 따른 보안 단말이 수행하는 연산 방법은 사용자 단말로부터 외부 인코딩 연산된 평문에 대하여 화이트 박스 암호화 연산이 수행된 암호문을 수신하는 단계; 상기 외부 인코딩을 위한 보안 테이블을 이용하여 상기 암호문에 대해 외부 인코딩 연산에 따른 디코딩 연산을 수행하는 단계; 상기 디코딩 연산된 암호문을 상기 사용자 단말로 송신하는 단계를 포함하고, 상기 사용자 단말은, 상기 디코딩 연산된 암호문에 대해 디스플레이로 출력할 수 있다.
일실시예에 따른 외부 인코딩 연산을 하기 위한 평문은 상기 사용자 단말을 통해 디코딩될 데이터를 나타낼 수 있다.
일실시예에 따른 외부 인코딩 연산을 하기 위한 평문은 선형 또는 비선형 인코딩에 따라 외부 인코딩 연산이 수행될 수 있다.
일실시예에 따른 화이트 박스 암호화 연산이 수행된 암호문을 수신하는 단계는 상기 외부 인코딩 연산된 평문에 대해 복수의 인코딩 연산, 디코딩 연산, 암호화 연산으로 구성된 화이트 박스 암호화 연산을 수행하여, 화이트 박스 암호화 연산이 수행된 암호문을 수신할 수 있다.
일실시예에 따른 외부 인코딩 연산에 따른 디코딩 연산을 수행하는 단계는 상기 외부 인코딩 연산된 평문에 대해 복수의 인코딩 연산, 디코딩 연산, 암호화 연산으로 구성된 화이트 박스 암호화 연산의 과정을 통해 산출된 암호문을 보안 단말에서 디코딩 연산할 수 있다.
일실시예에 따른 보안 단말이 수행하는 연산 방법은 사용자 단말로부터 외부 인코딩 연산된 평문을 수신하는 단계; 상기 외부 인코딩 연산된 평문에 대해 복수의 인코딩 연산, 디코딩 연산 및 암호화 연산으로 구성된 화이트 박스 암호화 연산을 수행하는 단계; 및 상기 화이트 박스 암호화 연산된 평문을 상기 사용자 단말로 송신하는 단계를 포함하고, 상기 사용자 단말은, 상기 화이트 박스 암호화 연산된 평문을 디스플레이할 수 있다.
일실시예에 따른 외부 인코딩 연산된 평문은 상기 사용자 단말에서 외부 인코딩을 위한 보안 테이블을 이용하여 평문에 대한 외부 인코딩 연산이 수행된 결과를 나타낼 수 있다.
일실시예에 따른 화이트 박스 암호화 연산을 수행하는 단계는 상기 화이트 박스 암호화 연산을 위한 룩업 테이블 중에서 암호/복호 테이블을 이용하여 외부 인코딩 연산된 평문에 대한 화이트 박스 암호화 연산을 수행할 수 있다.
본 발명의 일실시예에 따른 연산 방법은 외부 인코딩을 위한 보안 테이블을 별도의 암호 장치에 보관함으로써, 외부 공격자에 의한 룩업 테이블의 탈취에 따른 정보 유출을 방지할 수 있다.
본 발명의 일실시예에 따른 연산 방법은 별도의 암호 장치를 통해 평문 또는 암호문에 대한 외부 인코딩/디코딩 연산의 결과값을 토대로 화이트 박스 암호화 연산을 수행함으로써, 별도의 암호 장치로부터의 결과값을 이용할 때에만 정확한 암호문/복호문을 출력할 수 있다.
본 발명의 일실시예에 따른 연산 방법은 외부 인코딩/디코딩 연산뿐만 아니라, 상황에 따라 화이트 박스 암호화 연산을 별도의 암호 장치를 통해 수행이 가능함에 따라 정보 보안을 요구하는 연산에 대하여 별도의 보관 및 관리할 수 있다.
도 1은 일실시예에 따른 화이트 박스 암호화 연산을 수행하는 전체 구성도이다.
도 2는 일실시예에 따른 화이트 박스 암호화 연산에 따른 룩업 테이블을 설명하기 위한 도면이다.
도 3은 일실시예에 따른 화이트 박스 암호화 연산에 따른 연산 방법을 설명하기 위한 흐름도이다.
도 4는 다른 실시예에 따른 화이트 박스 암호화 연산에 따른 연산 방법을 설명하기 위한 흐름도이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일실시예에 따른 화이트 박스 암호화 연산을 수행하는 전체 구성도이다.
도 1을 참고하면, 사용자 단말(103)은 화이트 박스 암호화 연산을 수행하기 위한 평문 또는 암호문을 보안 단말(101)에 전달할 수 있다. 여기서, 사용자 단말(103)은 화이트 박스 암호화 연산에 따른 암호화/복호화 연산을 위한 룩업 테이블을 포함하여 화이트 박스 암호화 연산을 수행하는 단말일 수 있다. 다시 말해, 사용자 단말(103)은 화이트 박스 암호화 연산에 따른 암호화/복호화 연산을 위한 룩업 테이블을 저장할 수 있는 저장 매체를 포함할 수 있으며, 저장 매체에 포함된 룩업 테이블을 이용하여 화이트 박스 암호화 연산에 따른 암호화/복호화 연산을 수행하는 장치일 수 있다. 일례로, 사용자 단말(103)은 화이트 박스 암호화 연산을 수행할 수 있는 데스크탑, 태블릿 PC, 노트북 등을 포함할 수 있으며, 뿐만 아니라, 저장 기능과 연산 기능을 포함하는 모든 장치에 해당할 수 있다.
이 때, 본 발명에서 제안하는 연산 방법은 비밀키를 포함하는 룩업 데이터가 공격자에 의해 탈취되었을 경우를 고려하여 화이트 박스 암호화 연산 중에서 외부 인코딩/디코딩 연산을 외부에서 수행할 수 있도록 룩업 테이블 중 보안 테이블(102)을 별도의 암호 단말(101)에서 관리할 수 있다. 다시 말해, 본 발명에서 제안하는 연산 방법은 하나의 디바이스, 즉 사용자 단말(103)에 비밀키를 포함하는 룩업 테이블이 모두 저장되어 있을 경우, 탈취의 위협이 증가함에 따라 룩업 데이터 중 외부 인코딩/디코딩에 해당하는 보안 테이블(102)을 암호 단말(101)에서 보관하고, 외부 인코딩/티코딩에 대하여 암호 단말에서 수행하는 방법을 제안할 수 있다.
결국, 사용자 단말(103)은 룩업 테이블에 포함된 비밀키를 이용하여 화이트 박스 암호화 연산을 수행할 수 있다. 이 때, 사용자 단말(103)은 화이트 박스 암호화 연산에 따른 평문 또는 암호문에 대한 외부 인코딩/디코딩 연산에 대하여 보안 단말(101)을 통해 수행할 수 있도록 화이트 박스 암호화 연산을 수행하기 위한 평문 또는 암호문을 보안 단말(101)에 전달할 수 있다.
여기서, 사용자 단말(103)은 화이트 박스 암호화 연산에 따른 룩업 테이블 중에서 외부 인코딩/디코딩을 위한 보안 테이블(102)을 제외한 나머지 암호/복호 테이블을 포함할 수 있다. 그리고, 보안 단말(101)은 룩업 테이블 중에서 외부 인코딩/디코딩을 위한 보안 테이블(102)을 포함할 수 있다.
보안 단말(101)은 사용자 단말(103)로부터 화이트 박스 암호화 연산을 수행하기 위한 평문 또는 암호문을 수신할 수 있다. 그리고, 보안 단말(101)은 사용자 단말(103)로부터 수신한 데이터를 고려하여 외부 인코딩 또는 외부 디코딩을 수행할 수 있다.
(1) 평문을 수신한 경우,
보안 단말(101)은 사용자 단말로부터 외부 인코딩 연산을 하기 위한 평문을 수신할 수 있다. 그리고, 보안 단말(101)은 외부 인코딩을 위한 보안 테이블을 이용하여 상기 평문에 대해 외부 인코딩 연산을 수행할 수 있다. 이 때, 보안 단말(101)은 외부 인코딩 연산을 위한 평문에 대하여 선형 또는 비선형 인코딩을 수행할 수 있다. 보안 단말은 외부 인코딩 연산된 평문을 상기 사용자 단말로 송신할 수 있다.
이후, 사용자 단말은 외부 인코딩 연산된 평문에 대해 복수의 인코딩 연산, 디코딩 연산, 암호화 연산으로 구성된 화이트 박스 암호화 연산을 수행할 수 있다. 다시 말해, 사용자 단말은
(2) 암호문을 수신한 경우,
보안 단말(101)은 사용자 단말로부터 외부 인코딩 연산된 평문에 대하여 화이트 박스 암호화 연산이 수행된 암호문을 수신할 수 있다. 외부 인코딩을 위한 보안 테이블을 이용하여 상기 암호문에 대해 외부 인코딩 연산에 따른 디코딩 연산을 수행할 수 있다.
다시 말해, 보안 단말(101)은 외부 인코딩 연산된 평문에 대해 복수의 인코딩 연산, 디코딩 연산, 암호화 연산으로 구성된 화이트 박스 암호화 연산의 과정을 통해 산출된 암호문을 다시 디코딩하는 동작을 수행할 수 있다. 그리고, 보안 단말(101)은 디코딩 연산된 암호문을 사용자 단말로 송신할 수 있다. 이후, 사용자 단말은 디코딩 연산된 암호문에 대해 디스플레이로 출력할 수 있다.
여기서, 본 발명이 제안하는 연산 방법은 화이트 박스 보안 테이블의 탈취 대응을 위한 시도 응답(challenge-response)을 기반으로 사용자 단말로부터 수신한 평문에 대응하여 외부 인코딩 연산된 평문을 상기 사용자 단말로 송신할 수 있다. 다시 말해, 보안 단말(101)이 사용자 단말(103)로부터 평문 또는 암호문을 수신하는 동작에 대하여 시도(challenge)하는 동작으로 정의할 수 있다. 그리고, 연산 방법은 외부 인코딩 연산된 평문 또는 외부 디코딩 연산된 암호문을 사용자 단말로 송신하는 동작에 대하여 응답(response)하는 동작으로 정의할 수 있다.
또한, 본 발명이 제안하는 연산 방법은 보안 단말(101)에서 동작하는 연산 방법에 있어서, 외부 인코딩/디코딩 연산뿐만 아니라, 암/복호 연산의 중간 단계의 연산으로써, 화이트 박스 암호화 연산을 수행할 수 있다. 다시 말해, 상술한 연산 방법을 기초하여 사용자 단말(103)은 외부 인코딩 연산을 하기 위한 평문에 대한 외부 인코딩 연산을 수행하고, 보안 단말(101)은 외부 인코딩 연산된 평문에 대하여 화이트 박스 암호화 연산을 수행할 수 있다. 그리고, 보안 단말(101)은 화이트 박스 암호화 연산된 평문을 사용자 단말(103)에 전송함으로써, 사용자 단말(103)은 보안 단말(101)로부터 수신한 화이트 박스 암호화 연산된 평문을 기반으로 완전한 암호문/복호문을 사용자에게 제공할 수 있다.
결국, 본 발명은 화이트 박스 암호화 연산에 따른 올바른 암호문/복호문을 구성하기 위하여 시도 응답(challenge-response)을 평문 및 암호문에 대한 연산 방법을 수행할 수 있다.
이에 따라, 본 발명에서 제안하는 연산 방법에 따른 화이트 박스 암호화 연산 기반의 올바른 연산 값을 획득하기 위해서는 사용자 단말(103)에 저장된 암호/복호 테이블만으로는 완전한 암호문/복호문을 구성하기 어렵다. 즉, 본 발명에서 제안하는 연산 방법은 보안 단말(101)을 통해 평문 또는 암호문에 대한 외부 인코딩/디코딩을 수행하고, 사용자 단말(103)은 외부 인코딩/디코딩 연산된 평문 또는 암호문에 대한 화이트 박스 암호화 연산을 수행함으로써, 화이트 박스 암호화 연산 기반의 완전한 암호문/복호문을 구성할 수 있다. 도 2는 일실시예에 따른 화이트 박스 암호화 연산에 따른 룩업 테이블을 설명하기 위한 도면이다.
도 2에 도시된 도면은 화이트 박스 암호화 연산에 따른 인코딩을 수행한 룩업 테이블에 따른 암호화된 결과값을 나타내고 있다.
일반적으로 화이트 박스 모델이란, 공격자가 메모리, 레지스터 등의 모든 자원에 접근이 가능한 환경을 의미하고, 화이트 박스 암호화 연산은 암호 알고리즘을 연속된 룩업 테이블로 재구성한 후, 룩업 테이블을 인코딩함으로써, 암호 연산의 중간값이 유출되는 것을 방지하는 연산 방법이다.
이 때, 화이트 박스 암호화 연산에 따른 인코딩을 수행한 룩업 테이블은 도 2에 도시된 바와 나타낼 수 있다. 이 때, 화이트 박스 암호화 연산은 암호 알고리즘에 대하여 하나의 큰 룩업 테이블로 생성됨에 따라 암호키를 숨기는 것이 용이하지만 테이블 크기가 지나치게 커져서 비현실적일 수 있다. 따라서, 화이트 박스 암호화 연산 암호화 연산은 테이블에 대한 암호화적인 기법을 적용으로 암호 알고리즘의 중간값이 노출되지 않도록 인코딩 연산과 코딩 연산을 수행하도록 적절히 분리할 수 있다.
이 때, 인코딩 연산과 디코딩 연산은 별도의 테이블에서 계산됨에 따라 암호 알고리즘의 중간값이 노출되지 않으면서도 인코딩과 디코딩이 상쇄되면서 원래의 암호화 동작만을 수행한 결과를 나타낼 수 있다.
여기서, 화이트 박스 암호화 연산은 암호 알고리즘에 대한 암호화적인 안전성을 고려하여 외부 인코딩 과정과 외부 디코딩 과정을 추가할 수 있다. 이에 따라, 본 발명은 안전성을 위해 추가된 외부 인코딩 과정과 외부 디코딩 과정을 하나의 디바이스에서 동작하도록 하는 것이 아니라, 별도의 보안 단말에서 수행되도록 함에 따라 암호 알고리즘에 대한 보안성을 강화시킬 수 있다.
다시 말해, 종래의 화이트 박스 암호화 연산의 룩업 테이블이 저장되어 있는 사용자 단말이 외부 공격자에 의해 탈취되었을 경우, 공격자는 ROM이나 디스크에 저장되어있는 룩업 테이블을 소유하여 암/복호 연산을 수행할 수 있다. 이는 룩업 테이블에 비밀키가 결합되어 있기 때문에 탈취에 의한 화이트 박스 암호화 연산이 가능할 수 있다.
이를 고려하여, 본 발명의 구성에 따르면, 사용자 단말은 외부 인코딩/디코딩을 수행할 수 있는 보안 테이블을 소유하지 않고, 별도의 디바이스로써, 보안 단말을 통해 평문 또는 암호문에 대한 외부 인코딩/디코딩 연산할 수 있다. 그리고, 사용자 단말은 보안 단말을 통해 외부 인코딩/디코딩 연산된 평문 또는 암호문을 토대로 화이트 박스 암호화 연산에 따른 암/복호화 연산할 때에만 정확한 암호/복호문을 출력할 수 있다.
결국, 본 발명은 사용자 단말에 저장되어 있는 암호/복호 테이블만으로는 완전한 암호문/복호문을 구성하기 어렵고, 보안 단말에 저장된 보안 테이블 및 사용자 단말에 저장된 암호/복호 테이블을 모두 이용할 때에만 완전한 암호문/복호문을 구성할 수 있음에 따라 본 발명은 룩업 테이블에 대한 탈취에 따른 보안 대응을 수행할 수 있다.
도 3은 일실시예에 따른 화이트 박스 암호화 연산에 따른 연산 방법을 설명하기 위한 흐름도이다.
단계(301)에서 사용자 단말(103)은 화이트 박스 암호화 연산을 수행하기 위한 평문 또는 암호문을 보안 단말(101)에 전달할 수 있다.
(1) 평문을 전달하는 경우,
평문은 사용자 단말(103)을 통해 디코딩 될 데이터를 나타낼 수 있다. 일례로, 'F'는 'F- 1'를 통해 디코딩 될 평문을 인코딩하는 과정으로써, 'F'는 화이트 박스 암호화 연산의 원리 중에서 외부 인코딩에 해당하는 외부 인코딩 연산을 의미할 수 있다.
사용자 단말(103)은 화이트 박스 암호화 연산에 따른 외부 인코딩 연산을 수행하기 위한 평문을 보안 단말(101)로 전달할 수 있다.
(2) 암호문을 전달하는 경우,
암호문은 외부 인코딩 연산된 평문에 대하여 화이트 박스 암호화 연산이 수행된 데이터를 나타낼 수 있다. 일례로, ' G- 1'는 화이트 박스 암호화 연산의 최종 과정을 통해 외부 인코딩된 결과를 다시 디코딩하기 위한 외부 디코딩 연산을 의미할 수 있다. 이 때, 암호문은 사용자 단말(103)을 통해 암호 알고리즘에 따른 복수의 인코딩 연산, 디코딩 연산, 암호화 연산으로 구성된 화이트 박스 암호화 연산을 수행한 최종 결과를 의미할 수 있다.
사용자 단말(103)은 외부 인코딩 연산된 평문에 대하여 화이트 박스 암호화 연산이 수행된 암호문을 보안 단말(101)로 전달할 수 있다.
단계(302)에서 보안 단말(101)은 사용자로부터 수신한 데이터의 성향에 따라 외부 인코딩 연산 또는 외부 디코딩 연산을 수행할 수 있다.
(1) 평문을 수신한 경우,
보안 단말(101)은 외부 인코딩을 위한 보안 테이블을 이용하여 평문에 대해 외부 인코딩 연산을 수행할 수 있다. 이 때, 보안 단말(101)은 외부 인코딩 연산을 위한 평문에 대하여 선형 또는 비선형 인코딩을 수행할 수 있다.
□ 선형 인코딩
보안 단말(101)은 평문에 대해 선형 인코딩을 수행할 수 있다. 구체적으로, 선형 인코딩 방식은 가역 행렬(invertible matrices)을 곱하는 방식의 인코딩 방식일 수 있다.
□ 비선형 인코딩
보안 단말(101)은 평문에 대해 비선형 인코딩을 수행할 수 있다. 구체적으로, 비선형 인코딩 방식은 AES 암호 알고리즘의 SubBytes 연산과 같은 연산 기능을 기반으로 임의의 수로 대치하는 방식의 인코딩 방식일 수 있다.
(2) 암호문을 수신한 경우,
보안 단말(101)은 외부 인코딩을 위한 보안 테이블을 이용하여 암호문에 대해 외부 인코딩 연산에 따른 디코딩 연산을 수행할 수 있다. 다시 말해, 보안 단말(101)은 화이트 박스 암호화 연산의 최종 과정을 통해 외부 인코딩된 결과를 다시 디코딩하기 위한 외부 디코딩 연산을 수행할 수 있다.
단계(303)에서 보안 단말(101)은 외부 디코딩 연산된 암호문 또는 외부 인코딩된 평문을 사용자 단말(103)로 송신할 수 있다.
단계(304)에서 사용자 단말(103)은 보안 단말(101)로부터 수신한 외부 디코딩 연산된 암호문 또는 외부 인코딩된 평문에 따라 다음과 같은 동작을 수행할 수 있다.
(1) 외부 인코딩 연산된 평문을 수신한 경우,
사용자 단말(103)은 외부 인코딩 연산된 평문에 대해 복수의 인코딩 연산, 디코딩 연산, 암호화 연산으로 구성된 화이트 박스 암호화 연산을 수행할 수 있다. 다시 말해, 사용자 단말(103)은 외부 인코딩 연산된 평문에 대응하여 'F- 1'를 적용함으로써, 외부 인코딩 연산된 평문에 대한 화이트 박스 암호화 연산을 수행할 수 있다.
(2) 외부 디코딩 연산된 평문을 수신한 경우,
사용자 단말(103)은 디코딩 연산된 암호문에 대해 디스플레이로 출력할 수 있다. 다시 말해, 사용자 단말(103)은 화이트 박스 암호/복호 연산의 최종과정을 통해 외부 인코딩된 값을 다시 디코딩 연산된 결과를 수신하는 것으로써, 이에 따라 보안 단말(101)로부터 수신한 결과를 사용자 단말(103)의 화면에 디스플레이하거나 또는 저장 매체에 저장하여 보관할 수 있다.
결국, 본 발명은 화이트 박스 암호/복호 연산을 위한 모든 룩업 테이블이 하나의 디바이스 저장 매체에 저장되어 있을 경우, 탈취의 위협이 증가하므로 상기 화이트 박스 암호 구현의 원리 중 외부 인코딩/디코딩(external encoding/decoding)에 해당하는 F 또는 G-1을 별도의 디바이스를 통해 수행함으로써, 룩업 테이블의 노출에 의한 정보 유출을 방지할 수 있다.
즉, 본 발명은 사용자 단말(103)에서 외부 인코딩/디코딩 연산을 수행할 수 있는 보안 테이블을 소유하지 않고 암호/복호 테이블만을 소유할 수 있다. 그리고, 보안 테이블은 보안 단말(101)에서 소유되며, 외부 인코딩/디코딩 연산은 보안 테이블을 소유한 보안 단말(101)에서 별도로 수행함에 따라, 보안 단말(101)에서 수행된 외부 인코딩/디코딩의 결과값을 토대로 화이트 박스 암호화 연산에 따른 암호화/복호화를 연산할 때에만 정확한 암호/복호문을 출력할 수 있다.
도 4는 다른 실시예에 따른 화이트 박스 암호화 연산에 따른 연산 방법을 설명하기 위한 흐름도이다.
단계(401)에서 사용자 단말(103)은 평문에 대한 외부 인코딩 연산을 수행할 수 있다. 구체적으로, 사용자 단말(103)은 디코딩될 데이터를 나타내는 평문에 대하여 선형 또는 비선형 인코딩을 수행할 수 있다. 이 때, 사용자 단말(103)은 화이트 박스 암호화 연산을 위한 룩업 테이블 중에서 외부 인코딩을 위한 보안 테이블을 포함하는 반면, 화이트 박스 암호화 연산을 위한 암호/복호 테이블을 포함하지 않을 수 있다.
그리고, 사용자 단말(103)은 외부 인코딩을 위한 보안 테이블을 이용하여 평문에 대한 외부 인코딩 연산을 수행할 수 있다. 이후, 사용자 단말(103)은 외부 인코딩 연산된 평문을 보안 단말(101)로 전달할 수 있다.
단계(402)에서 보안 단말(101)은 외부 인코딩 연산된 평문을 수신할 수 있다. 그리고, 보안 단말(101)은 외부 인코딩 연산된 평문에 대하여 복수의 인코딩 연산, 디코딩 연산, 암호화 연산으로 구성된 화이트 박스 암호화 연산을 수행할 수 있다. 다시 말해, 보안 단말(101)은 외부 인코딩 연산된 평문에 대응하여 'F- 1'를 적용함으로써, 외부 인코딩 연산된 평문에 대한 화이트 박스 암호화 연산을 수행할 수 있다.
단계(403)에서 보안 단말(101)은 화이트 박스 암호화 연산된 평문을 사용자 단말(103)로 전달할 수 있다.
단계(404)에서 사용자 단말(103)은 사용자 단말(103)로부터 수신한 화이트 박스 암호화 연산된 평문에 대한 결과를 사용자 단말(103)의 화면에 디스플레이하거나 또는 저장 매체에 저장하여 보관할 수 있다.
결국, 본 발명은 도 3을 통해 개시한 것과 같이 화이트 박스 암호 구현의 원리 중 외부 인코딩/디코딩 연산에 해당하는 F 또는 G-1을 별도의 디바이스를 통해 수행하는 것뿐만 아니라, 화이트 박스 암호 구현의 원리 중 어느 하나의 연산에 대하여 별도의 디바이스를 통해 수행이 가능함에 따라 룩업 테이블의 노출에 의한 정보 유출을 방지할 수 있다.
즉, 본 발명은 보안 단말(101)에서 이루어지는 연산에 있어서, 비선형 및 선형 인코딩에 의한 외부 인코딩 뿐만 아니라, 기타 다른 연산으로의 확장이 가능함에 따라 탈취 위협으로 인한 룩업 테이블 또는 타인으로부터 중요 데이터에 대한 보안을 강화시킬 수 있다.
본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
101: 보안 단말
102: 보안 테이블
103: 사용자 단말

Claims (12)

  1. 보안 단말이 수행하는 연산 방법에 있어서,
    사용자 단말로부터 외부 인코딩 연산을 하기 위한 평문을 수신하는 단계;
    상기 외부 인코딩을 위한 보안 테이블을 이용하여 상기 평문에 대해 외부 인코딩 연산을 수행하는 단계
    상기 외부 인코딩 연산된 평문을 상기 사용자 단말로 송신하는 단계
    를 포함하고,
    상기 사용자 단말은,
    상기 외부 인코딩 연산된 평문에 대해 복수의 인코딩 연산, 디코딩 연산, 암호화 연산으로 구성된 화이트 박스 암호화 연산을 수행하는 연산 방법.
  2. 제1항에 있어서,
    상기 외부 인코딩 연산을 하기 위한 평문은,
    상기 사용자 단말을 통해 디코딩될 데이터를 나타내는 연산 방법.
  3. 제1항에 있어서,
    상기 평문에 대해 외부 인코딩 연산을 수행하는 단계는,
    상기 외부 인코딩 연산을 위한 평문에 대하여 선형 또는 비선형 인코딩을 수행하는 연산 방법.
  4. 제1항에 있어서,
    상기 사용자 단말은,
    상기 화이트 박스 암호화 연산을 위한 룩업 테이블 중에서 외부 인코딩을 위한 보안 테이블을 포함하지 않는 연산 방법.
  5. 보안 단말이 수행하는 연산 방법에 있어서,
    사용자 단말로부터 외부 인코딩 연산된 평문에 대하여 화이트 박스 암호화 연산이 수행된 암호문을 수신하는 단계;
    상기 외부 인코딩을 위한 보안 테이블을 이용하여 상기 암호문에 대해 외부 인코딩 연산에 따른 외부 디코딩 연산을 수행하는 단계
    상기 외부 디코딩 연산된 암호문을 상기 사용자 단말로 송신하는 단계
    를 포함하고,
    상기 사용자 단말은,
    상기 디코딩 연산된 암호문을 디스플레이하는 연산 방법.
  6. 제5항에 있어서,
    상기 외부 인코딩 연산을 하기 위한 평문은,
    상기 사용자 단말을 통해 디코딩될 데이터를 나타내는 연산 방법.
  7. 제5항에 있어서,
    상기 외부 인코딩 연산을 하기 위한 평문은,
    선형 또는 비선형 인코딩에 따라 외부 인코딩 연산이 수행되는 연산 방법.
  8. 제5항에 있어서,
    상기 화이트 박스 암호화 연산이 수행된 암호문을 수신하는 단계는,
    상기 외부 인코딩 연산된 평문에 대해 복수의 인코딩 연산, 디코딩 연산, 암호화 연산으로 구성된 화이트 박스 암호화 연산을 수행하여, 화이트 박스 암호화 연산이 수행된 암호문을 수신하는 연산 방법.
  9. 제5항에 있어서,
    상기 외부 인코딩 연산에 따른 디코딩 연산을 수행하는 단계는,
    상기 외부 인코딩 연산된 평문에 대해 복수의 인코딩 연산, 디코딩 연산, 암호화 연산으로 구성된 화이트 박스 암호화 연산의 과정을 통해 산출된 암호문을 보안 단말에서 디코딩 연산하는 연산 방법.
  10. 보안 단말이 수행하는 연산 방법에 있어서,
    사용자 단말로부터 외부 인코딩 연산된 평문을 수신하는 단계;
    상기 외부 인코딩 연산된 평문에 대해 복수의 인코딩 연산, 디코딩 연산 및 암호화 연산으로 구성된 화이트 박스 암호화 연산을 수행하는 단계;
    상기 화이트 박스 암호화 연산된 평문을 상기 사용자 단말로 송신하는 단계
    를 포함하고,
    상기 사용자 단말은,
    상기 화이트 박스 암호화 연산된 평문을 디스플레이하는 연산 방법.
  11. 제1항에 있어서,
    상기 외부 인코딩 연산된 평문은,
    상기 사용자 단말에서 외부 인코딩을 위한 보안 테이블을 이용하여 평문에 대한 외부 인코딩 연산이 수행된 결과를 나타내는 연산 방법.
  12. 제1항에 있어서,
    상기 화이트 박스 암호화 연산을 수행하는 단계는,
    상기 화이트 박스 암호화 연산을 위한 룩업 테이블 중에서 암호/복호 테이블을 이용하여 외부 인코딩 연산된 평문에 대한 화이트 박스 암호화 연산을 수행하는 연산 방법.
KR1020160019360A 2016-02-18 2016-02-18 화이트 박스 암호화 기반의 연산 방법 및 그 방법을 수행하는 보안 단말 KR20170097509A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160019360A KR20170097509A (ko) 2016-02-18 2016-02-18 화이트 박스 암호화 기반의 연산 방법 및 그 방법을 수행하는 보안 단말
US15/214,309 US20170244677A1 (en) 2016-02-18 2016-07-19 Operation method based on white-box cryptography and secure terminal for performing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160019360A KR20170097509A (ko) 2016-02-18 2016-02-18 화이트 박스 암호화 기반의 연산 방법 및 그 방법을 수행하는 보안 단말

Publications (1)

Publication Number Publication Date
KR20170097509A true KR20170097509A (ko) 2017-08-28

Family

ID=59631350

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160019360A KR20170097509A (ko) 2016-02-18 2016-02-18 화이트 박스 암호화 기반의 연산 방법 및 그 방법을 수행하는 보안 단말

Country Status (2)

Country Link
US (1) US20170244677A1 (ko)
KR (1) KR20170097509A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102301243B1 (ko) * 2020-06-15 2021-09-13 주식회사 스틸리언 화이트박스 암호를 이용한 데이터 암호화/복호화 방법 및 장치
KR20230027633A (ko) * 2021-08-19 2023-02-28 한국전력기술 주식회사 사이버 보안을 위한 통신격리기, 및 통신격리방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107809313A (zh) * 2017-10-31 2018-03-16 北京三未信安科技发展有限公司 一种白盒密码运算方法及***
US10812269B2 (en) * 2017-11-07 2020-10-20 Arris Enterprises Llc Advanced crypto token authentication
CN107968706B (zh) * 2017-11-21 2020-10-13 武汉珈港科技有限公司 具有流程保护功能的白盒密码方法及***
WO2019236718A1 (en) * 2018-06-05 2019-12-12 Jpmorgan Chase Bank, N.A. Systems and methods for using a cryptogram lockbox
CN110933108B (zh) * 2019-09-26 2021-05-11 腾讯科技(深圳)有限公司 基于区块链网络的数据处理方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102301243B1 (ko) * 2020-06-15 2021-09-13 주식회사 스틸리언 화이트박스 암호를 이용한 데이터 암호화/복호화 방법 및 장치
KR20230027633A (ko) * 2021-08-19 2023-02-28 한국전력기술 주식회사 사이버 보안을 위한 통신격리기, 및 통신격리방법

Also Published As

Publication number Publication date
US20170244677A1 (en) 2017-08-24

Similar Documents

Publication Publication Date Title
US9712319B2 (en) Method and apparatus to encrypt plaintext data
JP6017501B2 (ja) 暗号システム
KR20170097509A (ko) 화이트 박스 암호화 기반의 연산 방법 및 그 방법을 수행하는 보안 단말
US20120170739A1 (en) Method of diversification of a round function of an encryption algorithm
EP3035585B1 (en) S-box selection in white-box cryptographic implementation
KR20100069610A (ko) 연쇄화된 암호화 모드를 위한 방법 및 디바이스
JP6877889B2 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
US20140348323A1 (en) Protecting against white box attacks using column rotation
KR102397579B1 (ko) 부채널 분석 방지를 위한 화이트박스 암호 방법 및 장치
EP2922235B1 (en) Security module for secure function execution on untrusted platform
US8699702B2 (en) Securing cryptographic process keys using internal structures
CN107273724B (zh) 为白盒实施方案的输入和输出加水印
JP7078631B2 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
KR20230095750A (ko) 일방향 함수를 이용한 암호 운영모드 기반의 화이트박스 암호화 방법 및 장치
KR102319699B1 (ko) 안티-인버전 함수를 이용한 화이트박스 암호 인코딩 장치 및 방법
EP3085004A1 (en) Operator lifting in cryptographic algorithm
JP2015022269A (ja) 暗号化装置、復号装置、暗号化方法、復号方法及びプログラム
KR101971001B1 (ko) 화이트박스 암호가 적용된 블록 암호 기반의 난수 생성 방법 및 장치
KR20170103321A (ko) 보안성이 강화된 순서보존 암호화 방법 및 장치
EP3931999A1 (en) Method secured against side-channel attacks with a new masking scheme protecting linear operations of a cryptographic algorithm
CN111651788A (zh) 一种基于格密码的终端访问控制***及方法
KR20150139304A (ko) 마스터 키를 보호하기 위한 암호화 장치 및 그 방법
KR20110042419A (ko) 멀티미디어 환경에 적용 가능한 블록암호 운용방법
JP2020145656A (ja) 情報処理装置、情報処理方法及びプログラム
GURUNADH et al. Secrete Image Transmission using AES Algorithm on Raspberry Pi

Legal Events

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