KR101699955B1 - Dram 데이터 변조 자동 탐지 시스템 및 방법 - Google Patents

Dram 데이터 변조 자동 탐지 시스템 및 방법 Download PDF

Info

Publication number
KR101699955B1
KR101699955B1 KR1020150132789A KR20150132789A KR101699955B1 KR 101699955 B1 KR101699955 B1 KR 101699955B1 KR 1020150132789 A KR1020150132789 A KR 1020150132789A KR 20150132789 A KR20150132789 A KR 20150132789A KR 101699955 B1 KR101699955 B1 KR 101699955B1
Authority
KR
South Korea
Prior art keywords
data
key
dram
cbc
unit
Prior art date
Application number
KR1020150132789A
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 KR1020150132789A priority Critical patent/KR101699955B1/ko
Application granted granted Critical
Publication of KR101699955B1 publication Critical patent/KR101699955B1/ko

Links

Images

Classifications

    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself

Landscapes

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

Abstract

RAM 데이터 변조 탐지 시스템이 DRAM 데이터의 변조를 탐지하기 위하여, 시스템이 휴면 상태로 전환되기 전에 암호화된 DRAM 데이터를 제1 키로 제1 복호화하고, 제1 키와 복호화된 DRAM 데이터를 이용하여 제1 CBC-MAC 값을 계산한다. 웨이크 업 상태로 모드가 전환되면, 제1 키로 상기 암호화된 DRAM 데이터를 제2 복호화하고, 제1 키와 복호화된 DRAM 데이터를 이용하여 제2 CBC-MAC 값을 계산한다. 그리고 제1 CBC-MAC 값과 제2 CBC-MAC 값이 일치하는지 판단하여 DRAM 데이터의 변조 여부를 탐지한다.

Description

DRAM 데이터 변조 자동 탐지 시스템 및 방법{System and method for automatic detection of DRAM data forgery}
본 발명은 DRAM 데이터 변조 자동 탐지 시스템 및 방법에 관한 것이다.
대부분의 전자 시스템은 휴면 상태의 전력 소모를 줄이기 위한 저전력 동작 모드를 가지고 있다. 그리고 전자 시스템은 휴면 상태로 모드가 전환될 때, 휴면 상태에 돌입하기 전까지의 동작 상태(예를 들어, 시스템 동작 코드 등)를 DRAM(Dynamic Random Access Memory)에 저장한다. 그리고 전자 시스템의 모드가 휴면 상태인 동안, 전자 시스템 내 DRAM은 셀프 리프레쉬(self-refresh)를 수행하여 DRAM에 저장되어 있는 데이터를 보존한다. 그리고 휴면 상태에서 깨어날 때(웨이크 업), 시스템은 DRAM에 저장된 정보를 이용하여 정상 동작 상태로 복귀한다.
이때, 전자 시스템이 휴면 상태일 때, DRAM 데이터를 노린 공격이 발생 할 수 있다. 이를 대처하기 위해 DRAM은 데이터를 암호화하는 등의 방법으로 공격을 방어하나, 암호화에 사용된 키(key)가 탈취되는 경우 외부 공격자는 자유롭게 DRAM 데이터를 조작 할 수 있다. 이 경우, 공격자가 시스템 동작 코드를 변조하여, 정상 동작 상태로 복귀한 이후의 시스템 동작을 공격자의 의도대로 변경할 수 있다.
따라서 시스템이 웨이크 업 상태로 전환된 후에 데이터 무결성 검사가 필요하며, 종래에는 CBC-MAC(Cipher Block Chaining-Message Authentication Code)을 이용하여, DRAM에 저장되어 있는 데이터를 식별하고 변조 여부 등을 확인하였다. 이와 같은 용도로 사용 할 수 있는 기술로는 순환 중복 검사(CRC: Cyclic Redundancy Check), 해시 함수(hash function) 등이 있다.
순환 중복 검사는 네트워크를 통한 데이터 전송 과정에서 발생 할 수 있는 오류를 검증하는 방식이다. 송신 측에서 메시지(데이터) 값에 따라 고유의 방식에 의해 계산된 CRC 값을 메시지 뒤에 덧붙이고, 수신 측에서 받은 메시지의 CRC 값을 계산하여 받은 메시지의 CRC 값과 비교하여 오류를 검증한다. 순환 중복 검사는 구현이 간단하고, 전송 과정에서 발생하는 작은 오류를 검출하기 쉬운 장점이 있으나, 간단한 구조 때문에 의도적으로 같은 CRC 값을 갖는 다른 데이터로 변조 될 수 있는 단점이 있다.
해시 함수는 임의의 길이를 갖는 데이터와 고정된 길이의 데이터(해시 값)로 변환하는 함수이다. 해시 함수의 기본적인 성질은, 서로 다른 해시 값이 있다면 원래의 데이터도 다르다는 것이며, 이 성질을 이용하여 데이터의 변조를 쉽게 알아 낼 수 있다. 하지만, 정교하게 설계되지 않은 해시 함수의 경우 충돌(서로 다른 데이터가 같은 해시 값을 갖는 것)이 발생 할 수 있다. 그리고 해시 충돌이 많이 발생 할 수록, 원래 데이터의 식별과 검색에 소모되는 자원이 증가한다.
CBC-MAC은 해시 함수와 유사하게, 원래 데이터와 계산된 CBC-MAC 값이 서로 대응하는 것을 이용한다. CBC-MAC 값을 계산하는 과정에서는 키를 사용하기 때문에, 같은 데이터라도 사용된 키가 다르면 CBC-MAC 값 역시 다르게 결정되어 해쉬 함수에 비해 상대적으로 보안 위협으로부터 안전하다.
이러한 특징 때문에 CBC-MAC을 전용 소프트웨어로 구현하여 데이터 보안에 적용하고 있다. 그러나, 소프트웨어로의 구현에 따라, CBC-MAC 값 계산에 필요한 키와 중간 처리 단계의 데이터가 저장되는 공간이 보안이 유지되는 공간이 아닌 경우, 이 부분이 보안 취약점이 될 수 있다. 또한, 전용 하드웨어가 아닌 소프트웨어로 동작하므로, CPU, 주 메모리 등의 시스템 자원을 소모하여 전체 시스템 성능을 저하시킬 수 있다.
따라서, 본 발명은 하드웨어로 구현된 DRAM 데이터의 무결성 탐지 시스템을 통해 CBC-MAC을 이용한 DRAM 데이터 변조 여부를 확인하고, 무결성 검사 결과에 따라 동작을 수행하는 DRAM 데이터 변조 자동 탐지 시스템 및 방법을 제공한다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 하나의 특징인 DRAM 데이터의 변조를 탐지하는 시스템은,
시스템 동작에 필요한 코드와 시스템에서 실행중인 정보를 포함하는 암호화된 DRAM(Dynamic Random Access Memory) 데이터가 저장되는 데이터 저장부; 및 상기 데이터 저장부에 저장된 암호화된 DRAM 데이터의 변조 여부를 확인하는 프로세서부를 포함하며,
상기 프로세서부는, DRAM 데이터를 암호화하거나 암호화된 DRAM 데이터를 복호화하는 키를 생성하는 키 생성부; 시스템이 휴면 상태에서 웨이크 업 상태로 모드가 전환되는지 확인하고, 모드가 전환되면 상기 키 생성부에서 생성하여 저장한 키를 스크램블러로 전달하는 모드 전환부; 상기 키 생성부가 생성한 키로 상기 데이터 저장부에 저장된 암호화된 DRAM 데이터를 복호화하거나, 복호화된 DRAM 데이터를 상기 키 생성부에서 생성한 또 다른 키로 암호화한 후 암호화된 DRAM 데이터를 상기 데이터 저장부로 전달하는 상기 스크램블러; 시스템이 휴면 상태로 전환되기 전 상기 스크램블러가 키로 복호화한 DRAM 데이터에 대한 제1 CBC-MAC(Cipher Block Chaining-Message Authentication Code) 값을 계산하고, 휴면 상태에서 웨이크 업 상태로 모드 전환된 후 상기 스크램블러가 상기 키로 복호화한 DRAM 데이터의 제2 CBC-MAC 값을 계산하는 CBC-MAC 계산부; 및 상기 CBC-MAC 계산부가 계산한 제1 CBC-MAC 값과 제2 CBC-MAC 값을 비교하여 상기 DRAM 데이터가 변조되었는지 탐지하는 메모리부를 포함한다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 DRAM 데이터 변조 탐지 시스템이 DRAM 데이터의 변조를 탐지하는 방법은,
시스템이 휴면 상태로 전환되기 전에 암호화된 DRAM 데이터를 제1 키로 제1 복호화하고, 상기 제1 키와 복호화된 DRAM 데이터를 이용하여 제1 CBC-MAC 값을 계산하는 단계; 휴면 상태로 모드 전환된 시스템이 웨이크 업 상태로 모드가 전환되는지 확인하는 단계; 웨이크 업 상태로 모드가 전환되면, 상기 제1 키로 상기 암호화된 DRAM 데이터를 제2 복호화하고, 상기 제1 키와 복호화된 DRAM 데이터를 이용하여 제2 CBC-MAC 값을 계산하는 단계; 상기 제1 CBC-MAC 값과 제2 CBC-MAC 값이 일치하는지 판단하여 DRAM 데이터의 변조 여부를 탐지하는 단계; 및 상기 제2 복호화된 DRAM 데이터를 제2 키로 암호화하여 저장하는 단계를 포함한다.
본 발명에 따르면 데이터 무결성 검사 전후의 데이터가 동일한 영역에 존재하기 때문에, 시스템 구동에 필요한 핵심 데이터의 위치를 시스템이 휴면 상태에서 정상 동작 상태로 모드 전환된 이후에 새로 지정할 필요가 없어, 데이터 위치를 새로 지정하는 수고를 피할 수 있다.
또한, 암/복호화에 사용되는 키가 하드웨어 내부에만 존재하고 내/외부 저장 장치 등으로 전달되는 것이 불가능하므로, 키를 노린 공격으로부터 안전하다.
도 1은 본 발명의 실시예에 따른 DRAM 데이터 변조 자동 탐지 시스템의 구조도이다.
도 2는 본 발명의 실시예에 따른 DRAM 데이터 변조 자동 탐지 방법에 대한 흐름도이다.
도 3은 본 발명의 실시예에 따른 시스템 휴면 상태에 대한 예시도이다.
도 4는 본 발명의 실시예에 따른 DRAM 데이터의 암/복호화를 나타낸 예시도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 도면을 참조로 하여, 본 발명의 실시예에 따른 DRAM 데이터 변조 자동 탐지 시스템 및 방법에 대해 설명한다. 본 발명의 실시예에서는 전자 시스템 내에 DRAM 데이터 변조 자동 탐지 시스템(100)이 포함되는 것을 예로 하여 설명한다.
도 1은 본 발명의 실시예에 따른 DRAM 데이터 변조 자동 탐지 시스템의 구조도이다.
도 1에 도시된 바와 같이 DRAM 데이터 변조 자동 탐지 시스템(100)은 데이터 저장부(110)와 프로세서부(120)를 포함한다. 그리고 프로세서부(120)는 키 생성부(121), 모드 전환부(122), 스크램블러(123), CBC-MAC 계산부(124), 메모리부(125) 및 제어부(126)를 포함한다.
데이터 저장부(110)는 DRAM 데이터 변조 자동 탐지 시스템(100)을 포함하는 전자 시스템(예를 들어, 셋탑박스 등)의 동작에 필요한 코드와 전자 시스템에서 실행중인 정보인 데이터를 저장, 관리한다. 본 발명의 실시예에서는 데이터 저장부(110)가 DRAM인 것을 예로 하여 설명한다. 데이터는 복수의 데이터 블록이 하나의 데이터로 형성된 것으로, 프로세서부(120)에서 암호화된 후 저장되며, 암호화된 데이터의 형태나 시스템 동작에 필요한 코드의 정보는 어느 하나로 한정하여 설명하지 않는다.
프로세서부(120)의 키 생성부(121)는 데이터를 암호화하거나 복호화하는 하는데 필요한 키를 생성하고, 생성한 키를 모드 전환부(122)에 전달한다. 본 발명의 실시예에서는 하나의 키로 데이터를 암호화하거나 복호화하는 것을 예로 하여 설명한다. 또한, 키 생성부(121)가 키를 생성하는 방법은 여러 방법을 통해 수행될 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하여 설명하지 않는다. 그리고 본 발명의 실시예에서는 키 생성부(121)가 TRNG(True Random Number Generator)로 구현되는 것을 예로 하여 설명하며, 반드시 이와 같이 한정되는 것은 아니다.
모드 전환부(122)는 DRAM 데이터 변조 자동 탐지 시스템(100)을 포함하는 전자 시스템에 공급되는 전력을 관리한다. 그리고 전자 시스템에서 웨이크업 신호가 발생하는지에 대해 미리 설정된 시간 주기로 확인하고, 전자 시스템이 휴면 상태에서 정상 상태로 복귀할 수 있도록 한다.
전자 시스템이 휴면 상태에서 정상 상태로 모드 전환됨과 동시에, 모드 전환부(122)는 키 생성부(121)에서 전달받아 저장한 키를 스크램블러(123)로 전달하여 암호화된 데이터를 복호화하도록 한다. 모드 전환부(122)가 웨이크업 신호의 발생 여부를 확인하는 방법이나, 휴면 상태에서 정상 상태로 모드 전환하는 방법은 이미 알려진 사항으로, 본 발명의 실시예에서는 상세한 설명을 생략한다.
스크램블러(123)는 데이터 저장부(110)에 저장될 데이터를 암호화하거나 복호화한다. 이를 위해, 스크램블러(123)는 데이터를 암호화하는 암호화부와 복호화하는 복호화부를 포함한다. 스크램블러(123)의 암호화부와 복호화부가 데이터를 암/복호화할 때, 키 생성부(121)에서 생성한 키를 이용하여 암호화하거나 복호화한다. 스크램블러(123)의 기능은 이미 알려진 사항으로, 본 발명의 실시예에서는 상세한 설명을 생략한다. 그리고, 스크램블러(123)는 데이터 복호화에 사용한 키와 복호화된 데이터를 CBC-MAC 계산부(124)로 전달한다.
CBC-MAC 계산부(124)는 스크램블러(123)로부터 수신한 키와 복호화된 데이터를 토대로 CBC-MAC 값을 계산한다. 키와 데이터를 이용하여 CBC-MAC 값을 계산하는 방법은 여러 방법을 통해 계산할 수 있으므로, 본 발명의 실시예에서는 상세한 설명을 생략한다.
그리고, 계산한 CBC-MAC 값을 메모리부(125)로 전달한다. 여기서, CBC-MAC 값은 전자 시스템이 휴면 모드로 진입하기 전에 계산되는 제1 CBC-MAC 값과, 휴면 모드에서 웨이크 업 상태로 전환될 때 계산되는 제2 CBC-MAC 값으로 구분된다. 또한, 제1 CBC-MAC 값과 제2 CBC-MAC 값은 데이터의 블록 수에 따라 복수 개 계산된다.
메모리부(125)는 CBC-MAC 계산부(124)가 계산한 CBC-MAC 값 중 복수의 제1 CBC-MAC 값 및 전자 시스템이 웨이크 업 시 필요한 여러 정보들을 저장, 관리한다. 여기서 웨이크 업 시 필요한 정보는 다양한 정보들을 포함할 수 있으므로, 본 발명의 실시예에서는 어느 하나의 정보로 한정하지 않는다.
또한, 메모리부(125)는 저장한 복수의 제1 CBC-MAC 값과, 웨이크 업 상태로 전환되어 계산된 복수의 제2 CBC-MAC 값을 각각 비교한다. 만약 두 값들이 일치하면, 메모리부(125)는 전자 시스템의 제어부(126)를 통해 전자 시스템이 정상 동작되도록 요청한다. 그러나, 두 값이 일치하지 않은 것으로 확인하면, 메모리부(125)는 제어부(126)로 전자 시스템의 리셋을 요청한다.
제어부(126)는 메모리부(125)로부터 전달되는 제어 신호를 토대로, DRAM 데이터 변조 자동 탐지 시스템(100)이 포함된 전자 시스템이 정상 동작되도록 제어하거나, 리셋되도록 한다.
이상에서 설명한 DRAM 데이터 변조 자동 탐지 시스템(100)을 이용하여 DRAM의 데이터 변조를 자동으로 탐지하는 방법에 대해 도 2 내지 도 4를 참조로 설명한다.
도 2는 본 발명의 실시예에 따른 DRAM 데이터 변조 자동 탐지 방법에 대한 흐름도이다.
도 2에 도시된 바와 같이, DRAM 데이터 변조 자동 탐지 시스템(100)이 포함된 전자 시스템이 휴면 상태에 돌입되기 전, 키 생성부(121)는 스크램블러(123)가 데이터 저장부(110)에 저장될 DRAM 데이터를 암호화 및 복호화에 사용할 제1 키를 생성한다(S100). 여기서 DRAM 데이터는 전자 시스템이 동작할 때 필요한 필수 코드와, 전자 시스템이 마지막으로 동작했을 때의 상태 정보 등을 포함한다. DRAM 데이터는 복수 개의 데이터 블록이 모여 하나의 DRAM 데이터를 생성하는 것을 예로 하여 설명한다. 본 발명의 실시예에서는 설명의 편의를 위하여 10개의 데이터 블록(data[0], …, data[9])이 모여 하나의 DRAM 데이터를 형성하는 것을 예로 하여 설명한다.
S100 단계에서 생성한 키를 이용하여 스크램블러(123)는 데이터 저장부(110)에 암호화되어 저장되어 있는 DRAM 데이터를 복호화한다(S101). 그리고, CBC-MAC 계산부(124)는 복호화된 DRAM 데이터와 제1 키를 이용하여 제1 CBC-MAC 값을 계산한다(S102). 여기서 제1 CBC-MAC 값은 DRAM 데이터의 데이터 블록 수만큼 계산되며, 본 발명의 실시예에서는 DRAM 데이터가 10개의 데이터 블록으로 형성되어 있다고 가정하였으므로, S102 단계에서 계산된 제1 CBC-MAC 값은 10개가 된다.
모드 전환부(122)는 S100 단계에서 생성된 제1 키를 저장하고, 메모리부(125)는 S102 단계에서 계산된 복수의 제1 CBC-MAC 값을 저장한다(S103). 이는 휴면 상태에서 웨이크 업 상태로 전자 시스템의 모드가 변환된 후 DRAM 데이터의 변조 여부를 확인하기 위해 제1 키와 복수의 제1 CBC-MAC 값을 저장하는 것이다.
S103 단계에 따라 제1 키와 복수의 제1 CBC-MAC 값이 저장된 후, 전자 시스템은 휴면 상태로 모드가 전환된다(S104). 휴면 상태로 전자 시스템이 전환된 후, 모드 전환부(122)는 미리 설정된 주기에 따라 휴면 상태의 모드가 웨이크 업 상태로 전환되었는지 여부를 지속적으로 확인한다(S105). 만약 여전히 휴면 상태인 경우에는 S104 단계에 따라 전자 시스템의 상태를 확인한다.
그러나, 모드 전환부(122)가 전자 시스템의 웨이크 업 상태를 인지하면(S106), 스크램블러(123)는 데이터 저장부(110)에 저장되어 있는 암호화된 DRAM 데이터를 모드 전환부(122)에 저장되어 있는 제1 키를 이용하여 복호화하고, CBC-MAC 계산부(124)는 복호화된 데이터와 제1 키를 이용하여 제2 CBC-MAC 값을 계산한다(S107). 그리고 메모리부(125)는 S103 단계에서 저장된 제1 CBC-MAC 값과 S107 단계에서 계산된 제2 CBC-MAC 값이 일치하는지 확인한다(S108).
만약 두 값이 일치하지 않는다면, 메모리부(125)는 제어부(126)로 시스템의 재시작을 요청한다(S109). 그러나, 두 CBC-MAC 값이 일치하는 경우, 메모리부(125)는 제어부(126)로 시스템의 정상 동작을 요청한다(S110). 이와 동시에, 키 생성부(121)는 S107 단계에서 복호화된 DRAM 데이터를 암호화하기 위한 제2 키를 생성한다(S111).
그리고, 스크램블러(123)는 S111 단계에서 생성된 제2 키를 이용하여 S107 단계에서 복호화된 DRAM 데이터를 암호화한 후 데이터 저장부(110)로 전달하여 저장되도록 한다(S112). 이와 함께, 제2 키는 모드 전환부(122)에 저장된다.
여기서, 시스템이 휴면 상태인 경우에 대해 도 3을 참조로 설명하고, S107 단계 내지 S112 단계에서 데이터를 복호하하고 암호화하는 절차에 대해 도 4를 참조로 설명한다.
도 3은 본 발명의 실시예에 따른 시스템 휴면 상태에 대한 예시도이다.
도 3에 도시된 바와 같이, 시스템이 휴면 상태로 전환되는 경우, 데이터 저장부(110), 메모리부(125) 및 모드 전환부(122)를 제외한 모든 시스템 구성요소가 휴면 상태(음영 표시된 부분)가 된다. 이때, 프로세서부(120)에 내장되어 있어 외부로부터의 공격이 어려운 메모리부(125)와는 달리, 데이터 저장부(110)는 프로세서부(120)의 외부에 있기 때문에, 상대적으로 데이터를 노린 공격에 취약하다.
따라서, 휴면 상태에서 정상 동작 상태로 모드가 전환될 때 DRAM 데이터의 변조 여부를 탐지하게 된다. 이때, DRAM 데이터의 변조 여부를 탐지하는 과정에서 DRAM 데이터를 암호화하거나 복호화하는 예에 대해 도 4를 참조로 설명한다.
도 4는 본 발명의 실시예에 따른 DRAM 데이터의 암/복호화를 나타낸 예시도이다.
도 4에 도시된 바와 같이, DRAM 데이터의 암/복호화는 데이터의 블록 단위로 수행된다. 스크램블러(123) 내의 복호화부는 모드 전환부(122)에 저장되어 있던 제1 키를 이용하여 암호화된 DRAM 데이터를 첫 번째 데이터 블록부터 복호화한다. 복호화 된 데이터 블록(dec_data[0])은 CBC-MAC 계산부(124)와 암호화부로 전달되고, 동시에 복호화부는 데이터 저장부(110)에서 다음 데이터 블록(data[1])을 읽어온다. 상기 도 2에서는 S107 단계 내지 S112 단계를 설명의 편의를 위하여 순차적으로 진행하는 것과 같이 언급하였으나, 도 4에 나타낸 바와 같이 DRAM 데이터의 암호화와 복호화가 동시에 진행된다.
즉, 암호화부는 전달받은 복호화된 데이터 블록(data[0])을 키 생성부(121)가 생성한 제2 키로 암호화하여 암호화된 데이터 블록(enc_data[0])을 생성하고, 암호화된 데이터 블록(enc_data[0])은 데이터 저장부(110)의 원래 위치(data[0]의 위치)에 저장된다. DRAM 데이터의 복호화, 복호화된 DRAM 데이터의 CBC-MAC 값 계산 및 복호화된 DRAM 데이터의 암호화 절차를 반복 수행하는 것을 자동 재 난독화(automatic re-obfuscation)이라 하며, 데이터의 암호화와 복호화가 동시에 진행되기 때문에, 재 난독화를 빠르게 수행할 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (9)

  1. DRAM 데이터의 변조를 탐지하는 시스템에 있어서,
    시스템 동작에 필요한 코드와 시스템에서 실행중인 정보를 포함하는 암호화된 DRAM(Dynamic Random Access Memory) 데이터가 저장되는 데이터 저장부; 및
    상기 데이터 저장부에 저장된 암호화된 DRAM 데이터의 변조 여부를 확인하는 프로세서부
    를 포함하며,
    상기 프로세서부는,
    DRAM 데이터를 암호화하거나 암호화된 DRAM 데이터를 복호화하는 키를 생성하는 키 생성부;
    시스템이 휴면 상태에서 웨이크 업 상태로 모드가 전환되는지 확인하고, 모드가 전환되면 상기 키 생성부에서 생성하여 저장한 키를 스크램블러로 전달하는 모드 전환부;
    상기 키 생성부가 생성한 키로 상기 데이터 저장부에 저장된 암호화된 DRAM 데이터를 복호화하거나, 복호화된 DRAM 데이터를 상기 키 생성부에서 생성한 또 다른 키로 암호화한 후 암호화된 DRAM 데이터를 상기 데이터 저장부로 전달하는 상기 스크램블러;
    시스템이 휴면 상태로 전환되기 전 상기 스크램블러가 키로 복호화한 DRAM 데이터에 대한 제1 CBC-MAC(Cipher Block Chaining-Message Authentication Code) 값을 계산하고, 휴면 상태에서 웨이크 업 상태로 모드 전환된 후 상기 스크램블러가 상기 키로 복호화한 DRAM 데이터의 제2 CBC-MAC 값을 계산하는 CBC-MAC 계산부; 및
    상기 CBC-MAC 계산부가 계산한 제1 CBC-MAC 값과 제2 CBC-MAC 값을 비교하여 상기 DRAM 데이터가 변조되었는지 탐지하는 메모리부
    를 포함하는 DRAM 데이터 변조 탐지 시스템.
  2. 제1항에 있어서,
    상기 프로세서부는,
    상기 메모리부에서 탐지한 상기 DRAM 데이터의 변조 여부에 따라 웨이크 업 상태로 모드가 전환된 시스템이 정상 동작하도록 하거나, 시스템이 재부팅되도록 제어하는 제어부
    를 포함하는 DRAM 데이터 변조 탐지 시스템.
  3. 제1항에 있어서,
    상기 스크램블러는,
    DRAM 데이터를 암호화하는 암호화부와 복호화하는 복호화부를 포함하고,
    상기 복호화부는 상기 시스템이 휴면 상태로 전환되기 전에 상기 데이터 저장부에 저장되어 있는 암호화된 DRAM 데이터를 상기 키 생성부가 생성한 제1 키로 복호화하고, 복호화에 사용한 상기 제1 키를 모드 전환부로 전달하며, 상기 시스템이 휴면 상태에서 웨이크업 상태로 모드가 전환되면 상기 모드 전환부로부터 제1 키를 수신하여 상기 데이터 저장부에 저장되어 있는 암호화된 DRAM 데이터를 복호화하며,
    상기 암호화부는 웨이크업 상태로 모드가 전환되어 상기 복호화부에서 암호화된 DRAM 데이터를 상기 제1 키로 복호화한 복호화된 DRAM 데이터를 상기 키 생성부가 생성한 상기 제1 키와 상이한 제2 키로 암호화하여 상기 데이터 저장부로 전달하는 DRAM 데이터 변조 탐지 시스템.
  4. 제3항에 있어서,
    상기 DRAM 데이터는 복수의 데이터 블록을 포함하고, 상기 암호화부와 복호화부는 복수의 데이터 블록을 동시에 암호화하거나 복호화하는 DRAM 데이터 변조 탐지 시스템.
  5. 제4항에 있어서,
    DRAM 데이터는 복수의 데이터 블록을 포함하며,
    상기 복호화부가 상기 복수의 데이터 블록 중 제1 데이터 블록을 복호화한 후 상기 제1 데이터 블록에 인접한 제2 데이터 블록을 복호화할 때, 상기 암호화부가 복호화된 제1 데이터 블록을 상기 제2 키로 암호화하는 DRAM 데이터 변조 탐지 시스템.
  6. 제1항에 있어서,
    상기 CBC-MAC 계산부는 복호화된 DRAM 데이터와, 상기 DRAM 데이터를 복호화하기 위해 사용한 키를 이용하여 CBC-MAC 값을 계산하는 DRAM 데이터 변조 탐지 시스템.
  7. DRAM 데이터 변조 탐지 시스템이 DRAM 데이터의 변조를 탐지하는 방법에 있어서,
    시스템이 휴면 상태로 전환되기 전에 암호화된 DRAM 데이터를 제1 키로 제1 복호화하고, 상기 제1 키와 복호화된 DRAM 데이터를 이용하여 제1 CBC-MAC 값을 계산하는 단계;
    휴면 상태로 모드 전환된 시스템이 웨이크 업 상태로 모드가 전환되는지 확인하는 단계;
    웨이크 업 상태로 모드가 전환되면, 상기 제1 키로 상기 암호화된 DRAM 데이터를 제2 복호화하고, 상기 제1 키와 복호화된 DRAM 데이터를 이용하여 제2 CBC-MAC 값을 계산하는 단계;
    상기 제1 CBC-MAC 값과 제2 CBC-MAC 값이 일치하는지 판단하여 DRAM 데이터의 변조 여부를 탐지하는 단계; 및
    상기 제2 복호화된 DRAM 데이터를 상기 제1 키와 상이한 제2 키로 암호화하여 저장하는 단계
    를 포함하는 DRAM 데이터 변조 탐지 방법.
  8. 제7항에 있어서,
    상기 암호화하여 저장하는 단계는,
    DRAM 데이터는 복수의 데이터 블록을 포함하며,
    상기 제2 복호화 단계에서 상기 복수의 데이터 블록 중 제1 데이터 블록이 복호화된 후 제2 CBC-MAC 값이 계산되고 상기 제1 데이터 블록에 인접한 제2 데이터 블록이 제2 복호화 과정을 거칠 때 복호화된 제1 데이터 블록을 상기 제2 키로 암호화하는 DRAM 데이터 변조 탐지 방법.
  9. 제7항에 있어서,
    상기 변조 여부를 탐지하는 단계는,
    상기 제1 CBC-MAC 값이 제2 CBC-MAC 값과 일치하면 상기 DRAM 데이터에 변조가 발생하지 않은 것으로 확인하여 시스템이 정상 동작되도록 제어하고,
    상기 제1 CBC-MAC 값이 제2 CBC-MAC 값과 일치하지 않으면 상기 DRAM 데이터에 변조가 발생한 것으로 확인하여 시스템이 재시작 되도록 제어하는 DRAM 데이터 변조 탐지 방법.
KR1020150132789A 2015-09-21 2015-09-21 Dram 데이터 변조 자동 탐지 시스템 및 방법 KR101699955B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150132789A KR101699955B1 (ko) 2015-09-21 2015-09-21 Dram 데이터 변조 자동 탐지 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150132789A KR101699955B1 (ko) 2015-09-21 2015-09-21 Dram 데이터 변조 자동 탐지 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR101699955B1 true KR101699955B1 (ko) 2017-01-26

Family

ID=57992680

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150132789A KR101699955B1 (ko) 2015-09-21 2015-09-21 Dram 데이터 변조 자동 탐지 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101699955B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230091660A (ko) * 2021-12-16 2023-06-23 주식회사 텔레칩스 소프트웨어의 무결성 검증 방법 및 그 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000076136A (ja) * 1998-08-27 2000-03-14 Melco Inc 記録再生装置
WO2011112052A2 (ko) * 2010-03-11 2011-09-15 한국전자통신연구원 Mimo 시스템에서 데이터를 송수신하는 방법 및 장치
KR101086011B1 (ko) * 2009-11-20 2011-11-22 전자부품연구원 내부 데이터 검증 기능을 갖는 초고속 광대역 모뎀
KR20130136008A (ko) * 2011-04-29 2013-12-11 엘에스아이 코포레이션 암호화된 전송 고체 상태 디스크 제어기

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000076136A (ja) * 1998-08-27 2000-03-14 Melco Inc 記録再生装置
KR101086011B1 (ko) * 2009-11-20 2011-11-22 전자부품연구원 내부 데이터 검증 기능을 갖는 초고속 광대역 모뎀
WO2011112052A2 (ko) * 2010-03-11 2011-09-15 한국전자통신연구원 Mimo 시스템에서 데이터를 송수신하는 방법 및 장치
KR20130136008A (ko) * 2011-04-29 2013-12-11 엘에스아이 코포레이션 암호화된 전송 고체 상태 디스크 제어기

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230091660A (ko) * 2021-12-16 2023-06-23 주식회사 텔레칩스 소프트웨어의 무결성 검증 방법 및 그 장치
KR102598510B1 (ko) * 2021-12-16 2023-11-06 주식회사 텔레칩스 소프트웨어의 무결성 검증 방법 및 그 장치

Similar Documents

Publication Publication Date Title
US9300470B2 (en) Semiconductor device and method of writing data to semiconductor device
US20220078035A1 (en) Generating an identity for a computing device using a physical unclonable function
EP2680485B1 (en) Key information generation device and key information generation method
US20160277933A1 (en) Secure Data Communication system between IoT smart devices and a Network gateway under Internet of Thing environment
US20180309580A1 (en) Electronic device for authentication system
Choi et al. A study on sensor nodes attestation protocol in a Wireless Sensor Network
US20120096278A1 (en) Authenticating Messages Using Cryptographic Algorithm Constants Supplied to a Storage-Constrained Target
US11146410B2 (en) Pseudo-random generation of matrices for a computational fuzzy extractor and method for authentication
CN110381055B (zh) 医疗供应链中的rfid系统隐私保护认证协议方法
US11496285B2 (en) Cryptographic side channel resistance using permutation networks
CN110688666A (zh) 一种分布式存储中数据加密保存方法
US11223490B2 (en) Robust computational fuzzy extractor and method for authentication
CN102982265B (zh) 存取基本输入输出系统设定的认证方法
CN115865448A (zh) 一种数据自加密装置和方法
CN109586898A (zh) 双系统通信密钥生成方法及计算机可读存储介质
JP6888122B2 (ja) 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム
KR101699955B1 (ko) Dram 데이터 변조 자동 탐지 시스템 및 방법
KR20190097083A (ko) 역계산 퍼지 추출기 및 인증을 위한 방법
Makhdoom et al. A novel code attestation scheme against Sybil Attack in Wireless Sensor Networks
US11283632B2 (en) Integrated circuit, control device, information distribution method, and information distribution system
US10615977B2 (en) Verification of secure parameters for rotating codes
CN115499124A (zh) 一种数据传输方法、系统及电动汽车
KR101216993B1 (ko) 모바일 리더의 태그 리스트 재사용을 방지하는 저비용 rfid 태그 검색방법
KR100958527B1 (ko) 무선통신 사용자 인증 시스템 및 방법
KR20230108594A (ko) 차량의 보안 키 제어 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191213

Year of fee payment: 4