KR20150018657A - 데이터의 보호 방법 및 장치 - Google Patents

데이터의 보호 방법 및 장치 Download PDF

Info

Publication number
KR20150018657A
KR20150018657A KR1020130093957A KR20130093957A KR20150018657A KR 20150018657 A KR20150018657 A KR 20150018657A KR 1020130093957 A KR1020130093957 A KR 1020130093957A KR 20130093957 A KR20130093957 A KR 20130093957A KR 20150018657 A KR20150018657 A KR 20150018657A
Authority
KR
South Korea
Prior art keywords
data
round
encryption
submatrices
key
Prior art date
Application number
KR1020130093957A
Other languages
English (en)
Other versions
KR102133200B1 (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 KR1020130093957A priority Critical patent/KR102133200B1/ko
Priority to US14/455,257 priority patent/US9509495B2/en
Publication of KR20150018657A publication Critical patent/KR20150018657A/ko
Application granted granted Critical
Publication of KR102133200B1 publication Critical patent/KR102133200B1/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
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명의 실시 예는 부울 함수를 이용한 데이터의 암호화를 통해 데이터를 보호할 수 있는 데이터의 보호 방법 및 장치에 관한 것으로, 부울 함수를 이용하여 암호화하고자 하는 데이터를 역 아핀 변환하는 동작; 상기 역 아핀 변환된 데이터를 AES(Advanced Encryption Standard) 암호화 알고리즘의 라운드 연산을 처리하는 동작; 및 상기 라운드 연산이 처리된 데이터를 아핀 변환하여 암호화 데이터를 생성하는 동작을 포함할 수 있다.

Description

데이터의 보호 방법 및 장치{METHOD AND APPARATUS FOR PROTECTING OF DATA}
본 발명의 다양한 실시 예는 데이터의 보호 방법 및 장치에 관한 것으로, 예를 들어 부울 함수를 이용한 데이터의 암호화를 통해 데이터를 보호할 수 있는 데이터의 보호 방법 및 장치에 관한 것이다.
최근 정보통신 기술과 반도체 기술 등의 눈부신 발전에 힘입어, 전자 기기의 보급과 이용이 급속도로 증가하고 있다. 또한, 상기 전자 기기는 휴대가 가능하며, 사용자들이 필요로 하는 다양한 기능을 제공함에 따라 현대인에게 필수품이 되고 있다. 예를 들어, 상기 전자 기기는 통화 기능, 이미지 또는 동영상 촬영 기능, 방송 수신 기능, 인터넷 접속 기능, 지도 서비스 기능 등과 같은 다양한 기능을 제공하고 있다.
한편, 상기 전자 기기는 전자 결재(예컨대, 교통 카드, 신용 카드, 모바일 뱅킹 등) 기능을 제공하고 있다. 또한, 상기 전자 기기에 디지털 컨텐츠(예컨대 음악 파일, 동영상 파일, 공인 인증서 등)를 저장하는 사용자들이 증가하고 있다. 이로 인하여, 최근에는 결재를 위하여 송수신되는 결재 정보에 대한 보안 및/또는 디지털 컨텐츠의 불법 복제를 방지할 수 있는 방법(예컨대 암호화 기술)에 대한 관심이 증가하고 있다. 예를 들어, 상기 전자 기기는 보안이 요구되는 데이터를 암호화하여 타 전자 기기에 전송하고, 상기 암호화된 데이터를 전송 받은 타 전자 기기는 암호화된 데이터를 원래의 데이터로 복호화 할 수 있다.
한편, 최근에는 소프트웨어만으로 비밀 키를 안전하게 보관할 수 있고, 신뢰할 수 없는 단말에서 암호 알고리즘이 실행되더라도 비밀 키가 드러나지 않도록 하는 화이트 박스 암호 기법(White-box Cryptography)에 대한 관심이 증가하고 있다. 하지만, 상기 화이트 박스 암호 기법은 대수적(Algebraic) 공격에 취약하다는 문제점을 가지고 있다. 예를 들어, Chow에 의해 제안된 룩업 테이블(Look-up Table) 및 AES 암호 알고리즘을 이용하는 화이트 박스 암호 기법은 228의 복잡도를 가진다. 이러한 화이트 박스 암호 기법은 Billet에 의해 제안된 대수적 공격에 의해 비밀 키가 완전히 복원되는 문제점이 존재한다. 상기 복원된 비밀 키를 이용하여 크래커(Cracker) 등은 암호화된 데이터를 자유롭게 복호할 수 있다.
본 발명의 다양한 실시 예들은 전술한 종래 기술의 불편함 및/또는 문제점을 해결하기 위하여 창안된 것으로, 본 발명의 다양한 실시 예들은 대수적 공격으로부터 데이터를 안전하게 보호할 수 있는 데이터의 보호 방법 및 장치를 제공할 수 있다.
또한, 본 발명의 다양한 실시 예들은 부울(Boolean) 함수(또는 대수) 및 AES(Advanced Encryption Standard) 암호화 알고리즘을 이용하여 데이터를 암호화함에 따라 대수적 공격으로부터 데이터를 안전하게 보호할 수 있는 데이터의 보호 방법 및 장치를 제공할 수 있다.
상술한 바와 같은 문제를 해결하기 위한 본 발명의 실시 예에 따른 데이터의 보호 방법은 부울 함수를 이용하여 암호화하고자 하는 데이터를 역 아핀 변환하는 동작; 상기 역 아핀 변환된 데이터를 AES(Advanced Encryption Standard) 암호화 알고리즘의 라운드 연산을 처리하는 동작; 및 상기 라운드 연산이 처리된 데이터를 아핀 변환하여 암호화 데이터를 생성하는 동작을 포함할 수 있다.
상술한 바와 같은 문제를 해결하기 위한 본 발명의 실시 예에 따른 데이터 및 보호 장치는 데이터를 저장하는 저장부; 및 상기 데이터의 암호화 요청 시 부울 함수를 이용하여 상기 암호화 요청된 데이터를 역 아핀 변환하고, 상기 역 아핀 변환된 데이터를 AES(Advanced Encryption Standard) 암호화 알고리즘의 라운드 연산 처리하며, 상기 라운드 연산 처리된 데이터를 아핀 변환하여 암호화 데이터를 생성하는 암호화부를 포함할 수 있다.
이상에서 살펴본 바와 같이 본 발명의 다양한 실시 예에 따른 데이터 보호 방법 및 장치는 크래킹(Cracking)과 같은 공격으로부터 데이터를 안전하게 보호할 수 있다. 예를 들어, 본 발명의 다양한 실시 예들은 대수적 공격에 의해 비밀 키가 복호되는 것을 방지하여, 데이터를 안전하게 보호할 수 있다. 이를 위하여, 본 발명의 다양한 실시 예들은 인코딩 시 부울 함수를 이용하여 입출력 변화를 크게 하고, 키 랜덤화를 이용하여 키를 보호하고, 다수의 입력이 하나의 라운드 함수(예컨대 S-box)에 영향을 주도록 하며, AES 암호화 알고리즘 중 일부 동작을 포함하도록 할 수 있다.
도 1은 본 발명의 실시 예에 따른 전자 기기의 구성을 도시한 블록도이다.
도 2는 본 발명의 실시 예에 따른 데이터 보호를 위한 암호화 방법을 설명하기 위한 순서도이다.
도 3은 본 발명의 실시 예에 따른 데이터 보호를 위한 암호화 방법을 도시한 도면이다.
도 4는 본 발명의 실시 예에 따른 입력 디코딩의 선형 변환을 위한 매트릭스의 구조를 도시한 도면이다.
도 5는 본 발명의 실시 예에 따른 출력 인코딩의 선형 변환을 위한 매트릭스의 구조를 도시한 도면이다.
도 6은 본 발명의 실시 예에 따른 저장량 감소를 위한 서브 매트릭스의 구조를 도시한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다. 이때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음에 유의해야 한다. 또한, 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다.
한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
상세한 설명에 앞서, 본 발명의 실시 예에 따른 전자 기기는 이동통신 단말기, 스마트 폰(Smart Phone), 태블릿 PC(Tablet Personnel Computer), 핸드-헬드(Hand-held) PC, 휴대 멀티미디어 플레이어(Portable Multimedia Player : PMP), 개인 정보 단말기(Personal Digital Assistant : PDA), 노트북(Notebook PC), 데스크 탑(Desk top) PC 등이 될 수 있다.
도 1은 본 발명의 실시 예에 따른 전자 기기의 구성을 도시한 블록도이다.
상기 도 1을 참조하면, 본 발명의 실시 예에 따른 전자 기기(100)는 제어부(110), 저장부(120), 표시부(130), 입력부(140), 무선 통신부(150) 및 오디오 처리부(160)의 구성을 포함할 수 있다. 상기 제어부(110)는 암호화부(111) 및 복호화부(112)를 포함할 수 있다.
상기 오디오 처리부(160)는 통화 시 송수신 되는 오디오 신호, 저장부(120)에 저장된 오디오 파일의 재생에 따른 오디오 신호 등을 출력하기 위한 스피커(SPK) 및 사용자의 음성 또는 기타 오디오 신호를 수집하기 위한 마이크(MIC)와 연결될 수 있다.
상기 무선 통신부(150)는 전자 기기(100)의 무선 통신 기능을 지원할 수 있다. 예를 들어, 상기 전자 기기(100)는 이동 통신(예컨대 2G, 3G 또는 4G 규격의 이동 통신) 기능을 지원하기 위한 이동 통신 모듈(미도시) 및 근거리 무선 통신 기능을 지원하기 위한 근거리 무선 통신 모듈(미도시)을 포함할 수 있다. 상기 이동 통신 모듈은 전자 기기(100)가 이동 중인 상태에서 음성 통신 및 데이터 통신이 가능하도록 지원할 수 있다. 예를 들어, 상기 이동 통신 모듈은 제어부(110)의 제어 하에 암호화된 데이터를 타 전자 기기(미도시)로 전송하거나, 타 전자 기기(미도시)로부터 암호화된 데이터를 수신하도록 지원할 수 있다.
상기 근거리 무선 통신 모듈은 블루투스(Bluetooth), 지그비(Jigbee), 와이파이(WiFi), 와이파이 다이렉트(WiFi Direct), NFC(Near Field Communication) 등과 같은 근거리 무선 통신을 지원할 수 있다. 상기 근거리 무선 통신 모듈은 제어부(110)의 제어 하에 암호화된 데이터를 타 전자 기기(미도시)로 전송하거나, 타 전자 기기(미도시)로부터 암호화된 데이터를 수신하도록 지원할 수 있다.
상기 입력부(140)는 숫자 또는 문자 정보를 입력받고 각종 기능들을 설정하기 위한 다수의 입력키 및 기능키들을 포함할 수 있다. 상기 기능키들은 특정 기능을 수행하도록 설정된 방향키, 사이드 키 및 단축키 등을 포함할 수 있다. 또한. 상기 입력부(140)는 사용자 설정 및 전자 기기(100)의 기능 제어와 관련한 키 신호를 생성하여 제어부(110)로 전달한다. 상기 입력부(140)는 쿼티 키패드, 3*4 키패드, 4*3 키패드, 볼 조이스틱(Ball Joystick), 옵티컬 조이스틱(Optical Joystick), 휠 키(Wheel Key), 터치 키(Touch key), 터치 패드(Touch Pad), 터치스크린(Touch-screen), 마우스(Mouse), 키보드(keyboard) 등과 같은 입력 수단들 중 어느 하나 또는 이들의 조합으로 형성될 수 있다. 한편, 상기 입력부(140)는 전자 기기(100)가 풀 터치스크린을 지원하는 경우 볼륨 키, 전원 키, 메뉴 키, 취소 키, 홈 키 등과 같은 일부 기능키만을 포함할 수도 있다.
상기 표시부(130)는 전자 기기(100)의 각종 메뉴를 비롯하여 사용자가 입력한 정보 또는 사용자에게 제공하기 위한 정보를 표시한다. 이러한 상기 표시부(130)는 액정 표시 장치(Liquid Crystal Display), OLED(Organic Light Emitted Diode), AMOLED(Active Matrix Organic Light Emitted Diode) 등으로 형성될 수 있다. 상기 표시부(130)는 전자 기기(100)의 이용에 따른 다양한 화면 예컨대 홈 화면, 메뉴 화면, 웹 페이지 화면, 통화 화면 등을 제공할 수 있다. 상기 표시부(130)는 터치스크린으로 형성되는 경우 입력부(140)의 기능을 수행할 수도 있다.
상기 저장부(120)는 전자 기기(100)의 운영체제(OS, Operating System)를 비롯하여, 기타 옵션(options) 기능 예컨대, 소리 재생 기능, 이미지 또는 동영상 재생 기능, 방송 재생 기능, 인터넷 접속 기능 등에 필요한 응용 프로그램을 저장할 수 있다. 또한, 상기 저장부(120)는 다양한 데이터 예를 들어, 동영상 데이터, 게임 데이터, 음악 데이터, 영화 데이터, 지도 데이터 등을 저장할 수 있다. 본 발명의 실시 예에 따른 저장부(120)는 부울 함수(Boolean Function) 및 AES(Advanced Encryption Standard) 암호화 알고리즘을 결합한 암호화 프로그램을 저장할 수 있다. 상기 암호화 프로그램은 보호하고자 하는 데이터에 부울 함수를 적용하여 역 아핀 변환(Invert Affine Transformation)하는 루틴, 역 아핀 변환된 데이터를 AES 암호화 알고리즘의 라운드 연산을 처리하는 루틴, 라운드 연산이 처리된 데이터를 아핀 변환하여 암호화 데이터를 생성하는 루틴 등을 포함할 수 있다. 상기 라운드 연산을 처리하는 루틴은 암호화 라운드 키를 이용하여 키 처리하는 추가 라운드 키(Add Round Key) 루틴, 각 바이트 상에서 대치 연산을 수행하는 서브 바이트(Sub-Bytes) 루틴, 각 데이터의 구성 요소의 행렬에서 행을 이동시키는 쉬프트 로우(Shift Rows) 루틴 및 이동된 행렬의 추가 선형 변환을 수행하는 믹스 컬럼(Mix Columns) 루틴을 포함할 수 있다. 이러한 라운드 연산 처리 루틴은 기 설정된 라운드 수(예컨대 10 라운드)만큼 반복 수행되며, 마지막 라운드는 믹스 컬럼 루틴을 수행하지 않는다.
또한, 상기 저장부(120)는 상기 암호화된 데이터를 원래 데이터(평문)로 복호하는 복호 프로그램을 저장할 수 있다. 상기 복호 프로그램은 암호화 루틴을 역으로 수행할 수 있다.
상기 제어부(110)는 전자 기기(100)의 전반적인 동작 및 전자 기기(100)의 내부 블록들 간 신호 흐름을 제어하고, 데이터를 처리하는 데이터 처리 기능을 수행할 수 있다. 예를 들어, 상기 제어부(110)는 중앙 처리 장치(Central Processing Unit : CPU), 어플리케이션 프로세서(Application Processor : AP) 등으로 형성될 수 있다. 상기 제어부(110)는 싱글 코어 프로세서(single core processor) 또는 멀티 코어 프로세서(multi-core processor)로 형성될 수 있다.
상기 제어부(110)는 데이터를 보호하기 위한 암호화 절차 및 암호화된 데이터의 복호화 절차를 제어할 수 있다. 이를 위하여, 상기 제어부(110)는 암호화부(111) 및 복호화부(112)를 포함할 수 있다.
상기 암호화부(111)는 보호하고자 하는 데이터에 부울 함수를 적용하여 역 아핀 변환하고, 상기 역 아핀 변환된 데이터를 AES암호화 알고리즘의 라운드 연산을 처리하며, 상기 라운드 연산이 처리된 데이터를 아핀 변환하여 암호화 데이터를 생성할 수 있다. 이때, 상기 암호화부(111)는 상술한 절차를 기 설정된 라운드 수(예컨대 10 라운드)만큼 반복할 수 있다.
상기 복호화부(112)는 암호화된 데이터를 원래의 데이터로 복호할 수 있다. 상세하게는, 상기 복호화부(112)는 암호화 절차를 역으로 수행하여 암호화된 데이터를 원래의 데이터로 복호할 수 있다.
한편, 상기 도 1에 도시하지 않았지만 상기 전자 기기(100)는 이미지/동영상 촬영 또는 화상 통화를 위한 카메라 모듈, 방송 수신을 위한 방송 수신 모듈, MP3 모듈과 같은 디지털 음원 재생 모듈 및 인터넷 기능을 수행하는 인터넷 통신 모듈(예컨대 와이파이(Wi-Fi) 통신모듈) 등의 부가 기능을 갖는 구성 요소들을 선택적으로 더 포함할 수 있다. 이러한 구성 요소들은 디지털 기기의 컨버전스(convergence) 추세에 따라 변형이 매우 다양하여 모두 열거할 수는 없으나, 본 발명에 따른 전자 기기(100)는 상기 언급된 구성 요소들과 동등한 수준의 구성 요소들을 더 포함할 수 있다.
도 2는 본 발명의 실시 예에 따른 데이터 보호를 위한 암호화 방법을 설명하기 위한 순서도이다.
상기 도 2를 참조하면, 본 발명의 실시 예에 따른 전자 기기(100)의 제어부(110)는 201 단계에서 데이터의 암호화 요청이 감지되는지 확인할 수 있다. 예를 들어, 상기 암호화 요청은 보안이 요구되는 데이터(예컨대 결재 정보)의 전송 시 발생할 수 있다. 또는 상기 암호화 요청은 저작권을 가지는 디지털 컨텐츠의 암호화 시 발생할 수 있다. 하지만, 본 발명의 실시 예가 이에 한정되지는 않고, 암호화 요청은 데이터의 암호화가 필요한 모든 상황에서 발생할 수 있다.
상기 201 단계에서 데이터의 암호화 요청이 감지되지 않는 경우 상기 제어부(110)는 203 단계로 진행하여 해당 기능을 수행할 수 있다. 예를 들어, 상기 제어부(110)는 사용자의 요청에 따라 음악 재생 기능, 동영상 재생 기능 등을 수행하거나, 대기 상태를 유지할 수 있다. 또는 상기 제어부(110)는 암호화된 데이터를 수신하고, 이를 원래의 데이터로 복호할 수도 있다.
상기 201 단계에서 데이터의 암호화 요청이 감지되는 경우 상기 제어부(110)는 205 단계로 진행하여 부울 함수를 이용하여 데이터를 역 아핀 변환할 수 있다. 상기 부울 함수는 논리 회로를 수학적으로 해석하기 위해 영국의 수학자 불(Boolean)에 의해 제안되었으며, 논리 연산자(AND, OR, NOT 등)를 사용하여 정보를 참 또는 거짓이라는 두 개의 논리로 표현하는 대수학적 표현을 의미한다.
상기 제어부(110)는 207 단계에서 역 아핀 변환된 데이터를 AES 암호화 알고리즘의 라운드 연산 처리를 수행할 수 있다. 상기 라운드 연산 처리는 일정 횟수(예컨대 10회)의 라운드로 구성되며, 마지막 라운드는 이전의 라운드와 절차가 상이하다. 예를 들어, 상기 라운드 연산 처리는 암호화 라운드 키를 이용하여 키 처리하는 추가 라운드 키(Add Round Key), 각 바이트 상에서 대치 연산을 수행하는 서브 바이트(Sub-Bytes), 각 데이터의 구성 요소의 행렬에서 행을 이동시키는 쉬프트 로우(Shift Rows) 및 이동된 행렬의 추가 선형 변환을 수행하는 믹스 컬럼(Mix Columns)을 연산을 마지막 라운드 이전까지 반복 수행한다. 상기 마지막 라운드는 믹스 컬럼을 제외하고, 서브 바이트, 쉬프트 로우 및 라운드 키 추가 동작만을 수행한다. 이러한, AES 암호화 알고리즘은 표준화된 기술로 상세한 설명을 생략하기로 한다.
상기 제어부(110)는 209 단계에서 라운드 연산 처리된 데이터를 아핀 변환하여 암호화 데이터를 생성할 수 있다.
상기 제어부(110)는 211 단계에서 암호화가 완료되었는지 확인할 수 있다. 상기 암호화가 완료되지 않은 경우 상기 제어부(110)는 205 단계로 복귀하여 모든 데이터가 암호화될 때까지 상술한 동작들을 반복 수행할 수 있다. 상기 암호화가 완료되는 경우 상기 제어부(110)는 암호화 절차를 종료할 수 있다. 이때, 상기 도 2에 도시하지는 않았지만, 상기 제어부(110)는 암호화된 데이터를 타 전자기기에 전송할 수 있다.
도 3은 본 발명의 실시 예에 따른 데이터 보호를 위한 암호화 방법을 도시한 도면이고, 도 4는 본 발명의 실시 예에 따른 입력 디코딩의 선형 변환을 위한 블록 매트릭스의 구조를 도시한 도면이며, 도 5는 본 발명의 실시 예에 따른 출력 인코딩의 선형 변환을 위한 블록 매트릭스의 구조를 도시한 도면이다.
상기 도 3내지 도 5를 참조하면, 본 발명의 실시 예에 따른 암호화 방법은 128 비트 단위로 데이터를 암호화할 수 있다. 하지만, 본 발명의 실시 예가 이에 한정되지는 않는다. 상기 도 3에서 원본 데이터(X)는 8비트의 크기를 가지는 "x1, x2,..., x16"으로 구성될 수 있다.
상기 도 3을 참조하면, 암호화 데이터(V)는 아래 <식 1>과 같이 표현될 수 있다.
Figure pat00001
<식 1>
여기서, 입력 디코딩(Hi)는 SR??Gi-1-1 이고, {0,1}128 -> {0,1}128의 아핀 변환이다. 또한, AK는 추가 라운드 키를 의미하고, SB는 서브 바이트를 의미하고, SR은 쉬프트 로우를 의미하며, MC는 믹스 컬럼을 의미한다.
상기 <식 1>과 같이, 본 발명의 실시 예는 AES 암호화 알고리즘 동작 중 SR만을 포함하여 입력 디코딩(Hi)을 수행하도록 하고 있다. 하지만, 본 발명이 이에 한정되지는 않는다. 예를 들어, 본 발명의 다른 실시 예에서는 AES 암호화 알고리즘 동작 중 일부를 포함시켜 입력 디코딩(Hi)을 수행할 수 있다.
상기 입력 디코딩(Hi) : {0,1}128 -> {0,1}128의 아핀 변환은 아래 <식 2>와 같이 표현될 수 있다.
Figure pat00002
<식 2>
여기서, i = 1, 2,..., 16 이다.
Figure pat00003
는 키 랜덤화(또는 키 난독화) 부분으로,
Figure pat00004
∈ {0,1}8이다. 한편, Mi는 선형 부분으로 Mi∈ GL128(Z2)이며, 8*8 크기를 가지는 서브 매트릭스(sub-matrices) Ai 및 Ai'를 포함한다. 여기서, Ai, Ai' ∈ GL8(Z2) 이다. 예를 들어, Mi는 도 4와 같이 표현될 수 있다. 상기 Mi는 128 * 128 의 크기를 가지며, 32*32의 크기를 가지는 16개의 블록 매트릭스로 구성된다. 상기 블록 매트릭스는 8*8의 크기를 가지는 서브 매트릭스 Ai 및 Ai'를 포함한다. 본 발명의 실시 예는 상기 서브 매트릭스의 계수(Rank)를 작게하여 저장량을 줄일 수 있다.
한편, 본 발명의 실시 예는 도 4에 도시된 서브 매트릭스 Ai 및 Ai'의 위치로 한정되지는 않는다. 예를 들어, 서브 매트릭스 Ai 및 Ai'의 위치는 다양하게 변경될 수 있으며, 상기 도 4와 다른 매트릭스를 이용할 수 있다. 또한, 상기 도 4에서는 두 개의 입력(Ai 및 Ai')이 S-box에 영향을 주는 예를 도시하고 있다. 하지만, 본 발명의 실시 예는 이에 한정되지 않고, 다수의 입력이 S-box에 영향을 주도록 설계될 수 있다.
다음으로, T??Hi 변환은 아래 <식 3>과 같이 표현될 수 있다.
<식 3>
Figure pat00005
상기 <식 3>에서,
Figure pat00006
(ki : AES byte key)이고,
Figure pat00007
인 경우
Figure pat00008
이고,
Figure pat00009
인 경우
Figure pat00010
이다. 한편,
Figure pat00011
이다.
한편, 상기 <식 3>에서는 키를 보호하기 위하여, "더하기(+)"연산을 키 랜덤화 도구로 사용하고 있다. 하지만, 본 발명의 실시 예가 이에 한정되지는 않는다. 예를 들어, 본 발명의 다른 실시 예에서는 다양한 연산(예컨대 "빼기(-)"연산, "곱하기(*)"연산 등)을 이용할 수도 있다.
여기서, MC = [ B1| B2| B3| B4] 이고, S를 S-box operation으로 가정하면, 상기 <식 3>은 아래 <식 4>와 같이 표현될 수 있다.
<식 4>
Figure pat00012
상기 <식 4>에서,
Figure pat00013
이고,
Figure pat00014
는 {0,1}16 -> {0,1}의 변환이다.
따라서,
Figure pat00015
는 4개의 입력 바이트
Figure pat00016
로 구성된다.
마지막으로, Gi??T??Hi 변환은 아래 <식 5>와 같이 표현될 수 있다.
<식 5>
Figure pat00017
상기 <식 5>의 출력 인코딩(Gi)의 선형 부분은 도 5에 도시된 바와 같은 매트릭스로 표현될 수 있다. 상기 도 5에서 회색이 아닌 부분은 모두 "0"의 값을 가진다.
상술한 절차를 가지는 본 발명의 실시 예에 따른 암호화 방법에 있어서,
Figure pat00018
는 214.7의 단항 계수(coefficients of monomials)를 가지며,
Figure pat00019
는 16(= 24)개의
Figure pat00020
로 구성된다. 따라서, 본 발명의 실시 예에 따른
Figure pat00021
는 218.7 비트로 저장된다. 따라서, 암호화 데이터의 전체 저장량은 약 64 MB이다.
한편, 도시하지는 않았으나, 본 발명의 실시 예들은 상술한 암호화 과정을 역으로 수행하여 암호화 데이터를 원본 데이터로 복원할 수 있다. 상세하게는, 라운드 수가 10회인 것으로 가정하였을 때, 상기 복원 과정의 첫번째 라운드는 아래 <식 6>과 같이 표현될 수 있다.
Figure pat00022
<식 6>
두번째 내지 아홉번째 라운드는 아래 <식 7>과 같 이 표현될 수 있다.
Figure pat00023
<식 7>
열번째 라운드는 아래 <식 8>과 같 이 표현될 수 있다.
Figure pat00024
<식 8>
상기 <식 6> 내지 <식 8>에서, IMC는 역 믹스 컬럼(Invert Mix Columns)를 의미하고, ISB는 역 서브 바이트(Invert Sub-Bytes)를 의미하며, ISR은 역 쉬프트 로우(Invert Shift Rows)를 의미한다.
도 6은 본 발명의 실시 예에 따른 저장량 감소를 위한 서브 매트릭스의 구조를 도시한 도면이다.
상기 도 6을 참조하면, 상술한 본 발명의 실시 예는 다소 많은 저장량을 필요로 한다. 이를 개선하기 위하여, 본 발명의 실시 예에서는 해밍 가중치(Hamming weight)를 12 이하로 설정할 수 있다. 예를 들어, 상기 도 4에 도시된 매트릭스(Mi)의 서브 매트릭스들(Ai 및 Ai 및 Ai') 중 하나의 일부 열의 원소 값들을 모두 "0"으로 설정할 수 있다. 예를 들어, 상기 도 6에 도시된 바와 같이, 서브 매트릭스(Ai 또는 Ai 및 Ai')의 뒤 4 개의 열에 포함된 원소의 값들을 모두 0으로 설정할 수 있다.
이때, 상기 해밍 가중치가 12인 것으로 가정하면,
Figure pat00025
는 211.7의 단항 계수(coefficients of monomials)를 가지며,
Figure pat00026
는 16(= 24)개의
Figure pat00027
로 구성된다. 따라서, 본 발명의 실시 예에 따른
Figure pat00028
는 215.7 비트로 저장된다. 따라서, 본 발명의 실시 예에 따른 암호화 데이터의 저장량은 약 10.5 MB로 감소될 수 있다. 이와 같이 본 발명의 실시 예는 해밍 가중치를 감소하여 저장량을 감소할 수 있다.
상술한 바와 같은 본 발명의 실시 예에 따른 데이터의 보호 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다. 이때, 상기 컴퓨터로 판독 가능한 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 한편, 기록매체에 기록되는 프로그램 명령은 본 발명의 실시 예들을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 상기 컴퓨터로 판독 가능한 기록매체에는 하드디스크, 플로피디스크 및 자기 테이프와 같은 자기매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 다양한 실시 예에 따른 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있다.
이상에서는 본 발명의 실시 예에 따른 데이터의 보호 방법 및 장치에 대하여 본 명세서 및 도면을 통해 다양한 실시 예들에 대하여 설명하였으며, 비록 특정 용어들이 사용되었으나 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위해 일반적인 의미에서 사용된 것일 뿐, 본 발명이 전술한 실시 예들로 한정되는 것은 아니다. 즉, 본 발명의 기술적 사상에 바탕을 둔 다양한 실시 예가 가능함은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
100 : 전자 기기 110 : 제어부
111 : 암호화부 112 : 복호화부
120 : 저장부 130 : 표시부
140 : 입력부 150 : 무선 통신부
160 : 오디오 처리부

Claims (19)

  1. 데이터의 보호 방법에 있어서,
    부울 함수를 이용하여 암호화하고자 하는 데이터를 역 아핀 변환하는 동작;
    상기 역 아핀 변환된 데이터를 AES(Advanced Encryption Standard) 암호화 알고리즘의 라운드 연산을 처리하는 동작; 및
    상기 라운드 연산이 처리된 데이터를 아핀 변환하여 암호화 데이터를 생성하는 동작을 포함하는 데이터 보호 방법.
  2. 제1항에 있어서,
    상기 라운드 연산을 처리하는 동작은
    암호화 라운드 키를 이용하여 키 처리하는 추가 라운드 키 동작, 각 바이트 상에서 대치 연산을 수행하는 서브 바이트 동작, 각 데이터의 구성 요소의 행렬에서 행을 이동시키는 쉬프트 로우 동작 및 이동된 행렬의 추가 선형 변환을 수행하는 믹스 컬럼 동작을 반복 수행하며, 마지막 라운드 시 상기 서브 바이트 동작, 상기 쉬프트 로우 동작 및 상기 추가 라운드 키 동작만 수행하는 데이터 보호 방법.
  3. 제2항에 있어서,
    상기 라운드 연산을 처리하는 동작들 중 일부 동작 및 상기 부울 함수를 이용하여 역 아핀 변환하는 동작이 하나의 입력 디코딩으로 통합되는 데이터 보호 방법.
  4. 제3항에 있어서,
    상기 일부 동작은
    상기 쉬프트 로우 동작인 데이터 보호 방법.
  5. 제3항에 있어서,
    상기 입력 디코딩은
    선형 변환 및 키 랜덤화를 포함하는 데이터 보호 방법.
  6. 제5항에 있어서,
    상기 선형 변환을 위한 매트릭스는 다수의 서브 매트릭스를 포함하며,
    상기 다수의 서브 매트릭스 중 일부의 서브 매트릭스는 모든 원소가 "0"의 값을 가지는 데이터 보호 방법.
  7. 제6항에 있어서,
    상기 다수의 서브 매트릭스 중 모든 원소가 "0"인 아닌 서브 매트릭스는 2개이며,
    상기 2 개의 서브 매트릭스 중 하나의 서브 매트릭스는 일부 열의 모든 원소가 "0"의 값을 가지는 데이터 보호 방법.
  8. 제7항에 있어서,
    상기 서브 매트릭스는 8*8의 크기를 가지며, 상기 일부 열은 뒤 4열인 데이터 보호 방법.
  9. 제1항에 있어서,
    상기 암호화 데이터를 원래 데이터로 복원하는 동작을 더 포함하는 데이터 보호 방법.
  10. 데이터의 보호 장치에 있어서,
    데이터를 저장하는 저장부; 및
    상기 데이터의 암호화 요청 시 부울 함수를 이용하여 상기 암호화 요청된 데이터를 역 아핀 변환하고, 상기 역 아핀 변환된 데이터를 AES(Advanced Encryption Standard) 암호화 알고리즘의 라운드 연산 처리하며, 상기 라운드 연산 처리된 데이터를 아핀 변환하여 암호화 데이터를 생성하는 암호화부를 포함하는 데이터 보호 장치.
  11. 제10항에 있어서,
    상기 라운드 연산 처리는
    암호화 라운드 키를 이용하여 키 처리하는 추가 라운드 키 동작, 각 바이트 상에서 대치 연산을 수행하는 서브 바이트 동작, 각 데이터의 구성 요소의 행렬에서 행을 이동시키는 쉬프트 로우 동작 및 이동된 행렬의 추가 선형 변환을 수행하는 믹스 컬럼 동작을 반복 수행하며, 마지막 라운드 시 상기 서브 바이트 동작, 상기 쉬프트 로우 동작 및 상기 추가 라운드 키 동작만 수행하는 데이터 보호 장치.
  12. 제11항에 있어서,
    상기 라운드 연산을 처리하는 동작들 중 일부 동작 및 상기 역 아핀 변환 동작은 하나의 입력 디코딩으로 통합되는 데이터 보호 장치.
  13. 제12항에 있어서,
    상기 일부 동작은
    상기 쉬프트 로우 동작인 데이터 보호 장치.
  14. 제12항에 있어서,
    상기 입력 디코딩은
    선형 변환 및 키 랜덤화를 포함하는 데이터 보호 장치.
  15. 제14항에 있어서,
    상기 선형 변환을 위한 매트릭스는 다수의 서브 매트릭스를 포함하며,
    상기 다수의 서브 매트릭스 중 일부의 서브 매트릭스는 모든 원소가 "0"의 값을 가지는 데이터 보호 장치.
  16. 제15항에 있어서,
    상기 다수의 서브 매트릭스 중 모든 원소가 "0"인 아닌 서브 매트릭스는 2개이며,
    상기 2 개의 서브 매트릭스 중 하나의 서브 매트릭스는 일부 열의 모든 원소가 "0"의 값을 가지는 데이터 보호 장치.
  17. 제16항에 있어서,
    상기 서브 매트릭스는 8*8의 크기를 가지며,
    상기 일부 열은 뒤 4열인 데이터 보호 장치.
  18. 제10항에 있어서,
    상기 암호화 데이터를 원래 데이터를 복호하는 복호화부를 더 포함하는 데이터 보호 장치.
  19. 제10항에 있어서,
    상기 암호화 데이터를 송신하거나 수신하는 무선 통신부를 더 포함하는 데이터 보호 장치.
KR1020130093957A 2013-08-08 2013-08-08 데이터의 보호 방법 및 장치 KR102133200B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130093957A KR102133200B1 (ko) 2013-08-08 2013-08-08 데이터의 보호 방법 및 장치
US14/455,257 US9509495B2 (en) 2013-08-08 2014-08-08 Data protection method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130093957A KR102133200B1 (ko) 2013-08-08 2013-08-08 데이터의 보호 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20150018657A true KR20150018657A (ko) 2015-02-23
KR102133200B1 KR102133200B1 (ko) 2020-07-13

Family

ID=52448691

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130093957A KR102133200B1 (ko) 2013-08-08 2013-08-08 데이터의 보호 방법 및 장치

Country Status (2)

Country Link
US (1) US9509495B2 (ko)
KR (1) KR102133200B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9916472B2 (en) 2015-07-22 2018-03-13 International Business Machines Corporation Obfuscation and protection of data rights
KR102602696B1 (ko) * 2017-10-13 2023-11-16 삼성전자주식회사 암호화 장치 및 복호화 장치, 이들의 동작방법
JP7383985B2 (ja) * 2019-10-30 2023-11-21 富士電機株式会社 情報処理装置、情報処理方法及びプログラム
US11632231B2 (en) * 2020-03-05 2023-04-18 Novatek Microelectronics Corp. Substitute box, substitute method and apparatus thereof

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004233427A (ja) * 2003-01-28 2004-08-19 Nec Corp Aes暗号処理装置、aes復号処理装置、および、aes暗号・復号処理装置
KR100788902B1 (ko) * 2006-12-06 2007-12-27 한국전자통신연구원 믹스컬럼블록 장치 및 이를 이용한 곱셈연산방법
KR20080075725A (ko) * 2007-02-13 2008-08-19 금오공과대학교 산학협력단 와이브로 무선인터넷 보안을 위한 다중모드 보안장치
KR20100068902A (ko) * 2008-12-15 2010-06-24 한국전자통신연구원 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치 및 방법.

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2327911A1 (en) 2000-12-08 2002-06-08 Cloakware Corporation Obscuring functions in computer software
US6937727B2 (en) * 2001-06-08 2005-08-30 Corrent Corporation Circuit and method for implementing the advanced encryption standard block cipher algorithm in a system having a plurality of channels
US20030198345A1 (en) * 2002-04-15 2003-10-23 Van Buer Darrel J. Method and apparatus for high speed implementation of data encryption and decryption utilizing, e.g. Rijndael or its subset AES, or other encryption/decryption algorithms having similar key expansion data flow
US20030219118A1 (en) * 2002-05-23 2003-11-27 Beverly Harlan T. Optimized multiplicative inverse
KR100594265B1 (ko) * 2004-03-16 2006-06-30 삼성전자주식회사 매스킹 방법이 적용된 데이터 암호처리장치, aes암호시스템 및 aes 암호방법.
US20060002548A1 (en) * 2004-06-04 2006-01-05 Chu Hon F Method and system for implementing substitution boxes (S-boxes) for advanced encryption standard (AES)
CN101542558A (zh) * 2007-05-30 2009-09-23 松下电器产业株式会社 加密装置、解密装置、加密方法及集成电路
US8923510B2 (en) * 2007-12-28 2014-12-30 Intel Corporation Method and apparatus for efficiently implementing the advanced encryption standard
US8565421B1 (en) * 2009-01-15 2013-10-22 Marvell International Ltd. Block cipher improvements
EP2293487A1 (en) * 2009-09-08 2011-03-09 Thomson Licensing A method of diversification of a round function of an encryption algorithm
US9565018B2 (en) * 2014-05-28 2017-02-07 Apple Inc. Protecting cryptographic operations using conjugacy class functions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004233427A (ja) * 2003-01-28 2004-08-19 Nec Corp Aes暗号処理装置、aes復号処理装置、および、aes暗号・復号処理装置
KR100788902B1 (ko) * 2006-12-06 2007-12-27 한국전자통신연구원 믹스컬럼블록 장치 및 이를 이용한 곱셈연산방법
KR20080075725A (ko) * 2007-02-13 2008-08-19 금오공과대학교 산학협력단 와이브로 무선인터넷 보안을 위한 다중모드 보안장치
KR20100068902A (ko) * 2008-12-15 2010-06-24 한국전자통신연구원 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치 및 방법.

Also Published As

Publication number Publication date
KR102133200B1 (ko) 2020-07-13
US20150043731A1 (en) 2015-02-12
US9509495B2 (en) 2016-11-29

Similar Documents

Publication Publication Date Title
CN108769027B (zh) 安全通信方法、装置、移动终端和存储介质
US9712319B2 (en) Method and apparatus to encrypt plaintext data
KR101194477B1 (ko) 전자 콘텐츠의 디지털 저작권 관리 시스템 및 방법
US9143317B2 (en) Protecting against white box attacks using column rotation
US10455286B2 (en) Protected media decoding system supporting metadata
US20120269340A1 (en) Hierarchical encryption/decryption device and method thereof
CN204360381U (zh) 移动设备
CN103218570A (zh) 用于应用程序数据保护的便携式终端的装置和方法
KR102297536B1 (ko) 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법
KR102393942B1 (ko) 비밀 키에 대한 정족수 설계를 수행하는 장치 및 방법
KR20170097509A (ko) 화이트 박스 암호화 기반의 연산 방법 및 그 방법을 수행하는 보안 단말
KR20110087094A (ko) 데이터 암호화 방법
CN105718763A (zh) 将白盒实现与精简安全单元绑定
KR102133200B1 (ko) 데이터의 보호 방법 및 장치
CN112054896A (zh) 白盒加密方法、装置、终端及存储介质
CN102460456A (zh) 用于内容的适应性保护的存储器器件和方法
CN113032810A (zh) 信息处理方法、装置、电子设备、介质和程序产品
JP7170878B2 (ja) 暗号文に対する非多項式演算を行う装置及び方法
KR20140133047A (ko) 전자장치에서 디지털 저작권 관리 서비스를 제공하기 위한 장치 및 방법
JP2007164595A (ja) コンピュータシステムの関数呼び出し方法、コンピュータシステムおよびライブラリ
CN103605927A (zh) 一种基于嵌入式Linux系统实现加密和解密方法
CN103491384A (zh) 一种视频的加密方法和装置及解密方法和装置
KR20230095750A (ko) 일방향 함수를 이용한 암호 운영모드 기반의 화이트박스 암호화 방법 및 장치
KR20210015403A (ko) 안티-인버전 함수를 이용한 화이트박스 암호 인코딩 장치 및 방법
CN103218548A (zh) 一种swf文件加密保护的方法和装置

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20130808

PG1501 Laying open of application
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20180719

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20130808

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20190930

Patent event code: PE09021S01D

PN2301 Change of applicant

Patent event date: 20191129

Comment text: Notification of Change of Applicant

Patent event code: PN23011R01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20200629

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20200707

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20200708

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20240625

Start annual number: 5

End annual number: 5