KR20220055635A - Dma 채널 전송을 이용한 비밀키 관리 장치 및 방법 - Google Patents

Dma 채널 전송을 이용한 비밀키 관리 장치 및 방법 Download PDF

Info

Publication number
KR20220055635A
KR20220055635A KR1020200139938A KR20200139938A KR20220055635A KR 20220055635 A KR20220055635 A KR 20220055635A KR 1020200139938 A KR1020200139938 A KR 1020200139938A KR 20200139938 A KR20200139938 A KR 20200139938A KR 20220055635 A KR20220055635 A KR 20220055635A
Authority
KR
South Korea
Prior art keywords
secret key
dma
memory
address
dma channel
Prior art date
Application number
KR1020200139938A
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 KR1020200139938A priority Critical patent/KR20220055635A/ko
Publication of KR20220055635A publication Critical patent/KR20220055635A/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]

Abstract

본 발명은 비밀키 관리 기술에 관한 것으로서, 상세하게는 암호화 알고리즘에서 사용되는 비밀키를 DMA(Direct Memory Access} 방식으로 관리하여 보안성을 강화할 수 있는 DMA 채널 전송을 이용한 비밀키 관리 장치 및 방법에 관한 것이다. 이를 위하여, 본 발명에 따른 DMA 채널 전송을 이용한 비밀키 관리 장치는 난수를 발생시켜 난수로부터 비밀키를 생성하는 비밀키 발생부와, 마이크로프로세서로부터 비밀키 저장을 위한 명령신호를 수신하면 DMA 채널을 선택하고 DMA 채널 주소를 생성하는 DMA와, 상기 DMA로부터 상기 DMA 채널 주소를 입력 받아 메모리 맵에 따른 메모리 주소를 출력하는 리매퍼(remapper)를 포함하여, 상기 DMA가 메모리에서 상기 리매퍼에 의해 출력된 메모리 주소에 해당하는 메모리 영역에 상기 비밀키 발생부에 의해 생성된 비밀키를 저장하는 것을 특징으로 한다.

Description

DMA 채널 전송을 이용한 비밀키 관리 장치 및 방법{Secret key management device and method using DMA channel transmission}
본 발명은 비밀키 관리 기술에 관한 것으로서, 상세하게는 암호화 알고리즘에서 사용되는 비밀키를 DMA(Direct Memory Access} 방식으로 관리하여 보안성을 강화할 수 있는 DMA 채널 전송을 이용한 비밀키 관리 장치 및 방법에 관한 것이다.
암호학(cryptology)은 암호(cryptography)와 암호 해독(cryptanalysis)을 연구하는 정보 보호 이론과 기술에 대한 학문이다.
송신자가 수신자에게 보내고 싶은 통신문을 평문(plain text)이라 하고, 평문을 그냥 보아서는 알 수 없는 암호문으로 변환하는 조작을 암호화(encryption)라고 하고, 암호문을 본래의 평문으로 바꾸는 조작을 복호화(decryption)라고 한다.
복호화는 정당한 수신자가 정당한 절차를 통하여 평문을 복원하는 경우를 말하며, 부당한 제3자가 다른 수단을 통해 평문을 추정하는 것을 암호해독(cryptanalysis)이라고 말한다.
암호 알고리즘은 암호화와 복호화의 조작 원리이며, 암호 알고리즘에 의한 변환을 제어하는 요소를 키(key)라고 한다. 키에는 암호화키와 복호화키가 있다.
최근에는 사회의 전 분야에서 정보 보안에 대한 인식이 강화되고, 특히 사물인터넷(IOT) 기반의 다양한 제품 및 디바이스의 강력한 보안 요구 사항을 요구하는 초경량, 저전력 SOC(System On Chip) 암호 칩이 필요하다.
암호 칩은 데이터를 송수신할 때 중간에서 암복호화 기능을 수행한다. 암호 칩은 '아리아', 'AES', 'RSA2048', 'SHA256', '타원곡선알고리즘(ECC)' 등의 알고리즘을 지원한다.
'아리아', 'AES', 'RSA2048', 'SHA256', '타원곡선알고리즘(ECC)' 등의 알고리즘을 구현하기 위해서 공개키(Public Key) 및 비밀키(Secret Key)를 생성, 저장 및 보관하고 삭제하는 것이 중요하다.
이러한 키가 만약 해커에 의해 탈취된다면 비밀 정보들이 해킹되어 악용될 수 있기 때문에 심각한 문제를 야기할 수 있다.
일반적으로 키 관리는 마이크로프로세서에 의해 관리된다. 마이크로프로세서가 키를 관리하기 위해서 키 관리 프로그램을 사용해야 하며, 키 관리 프로그램은 메모리에 저장되어 있다.
그러나 메모리에 저장된 키 관리 프로그램은 리버스엔지니어링에 의해 쉽게 구현할 수 있어서, 해커들이 알아 낸 키 관리 프로그램을 통해 보관된 키를 쉽게 탈취할 수 있다는 문제점이 있다.
공개특허공보 제10-2020-0116009호
본 발명은 상기와 같은 상황을 감안하여 창안된 것으로서, 본 발명의 목적은 암복호화 알고리즘 구현을 위한 키를 안전하게 보관하고 빠르게 읽고 저장할 수 있도록 하는 것이다.
이를 위하여, 본 발명에 따른 DMA 채널 전송을 이용한 비밀키 관리 장치는 난수를 발생시켜 난수로부터 비밀키를 생성하는 비밀키 발생부와, 마이크로프로세서로부터 비밀키 저장을 위한 명령신호를 수신하면 DMA 채널을 선택하고 DMA 채널 주소를 생성하는 DMA와, 상기 DMA로부터 상기 DMA 채널 주소를 입력 받아 메모리 맵에 따른 메모리 주소를 출력하는 리매퍼(remapper)를 포함하여, 상기 DMA가 메모리에서 상기 리매퍼에 의해 출력된 메모리 주소에 해당하는 메모리 영역에 상기 비밀키 발생부에 의해 생성된 비밀키를 저장하는 것을 특징으로 한다.
또한 본 발명에 따른 DMA 채널 전송을 이용한 비밀키 관리 방법은 컴퓨터로 구현되는 비밀키 관리 장치에서 수행되는 DMA 채널 전송을 이용한 비밀키 관리 방법으로서, 암호 칩에 의해 비밀키가 생성되면 DMA(Direct Memory Access)가 DMA 채널 주소를 생성하여 저장하는 단계와, 리매퍼(remapper)가 DMA 채널 주소를 메모리 맵(memory map)에 따른 메모리 주소로 변환하는 단계와, 상기 DMA가 메모리에서 상기 메모리 주소에 해당하는 메모리 영역에 상기 비밀키를 저장하는 단계를 포함한다.
상술한 바와 같이, 본 발명에 따른 DMA 채널 전송을 이용한 비밀키 관리 방법은 마이크로프로세서에 의해 관리되는 방식에 비해 비밀키를 빠르게 저장하고 불러 올 수 있는 효과가 있다.
본 발명에 따르면 비밀키 저장을 위해 DMA 랜덤 채널 액세스를 할 때 하드웨어 암호 칩에서 생성한 비밀키를 이용하기 때문에 보안성이 더욱 강화될 수 있는 효과가 있다.
또한 본 발명에 따른 리매퍼의 매핑 과정을 통해 보안성을 더욱 강화할 수 있고 메모리 맵에 맞는 주소를 매핑하기 때문에 그 결과를 이용하는 마이크로프로세서가 폴트(fault)에 빠지는 것을 방지할 수 있다.
도 1은 본 발명에 따른 DMA 채널 전송을 이용한 비밀키 관리 장치의 구성을 나타낸 도면.
도 2는 본 발명에 따른 DMA 채널 전송을 이용한 비밀키 관리 방법에서 비밀키를 저장하는 과정을 나타낸 순서도.
도 3은 본 발명에 따른 DMA 채널 전송을 이용한 비밀키 관리 방법에서 비밀키를 호출하는 과정을 나타낸 순서도.
이하, 첨부된 도면을 참조하여 본 발명에 따른 실시예를 상세하게 설명한다. 본 발명의 구성 및 그에 따른 작용 효과는 이하의 상세한 설명을 통해 명확하게 이해될 것이다.
본 발명의 상세한 설명에 앞서, 동일한 구성요소에 대해서는 다른 도면상에 표시되더라도 가능한 동일한 부호로 표시하며, 공지된 구성에 대해서는 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 구체적인 설명은 생략하기로 함에 유의한다.
도 1은 본 발명에 따른 DMA 채널 전송을 이용한 비밀키 관리 장치의 내부 구성을 나타낸 것이다.
도 1을 참조하면, 본 발명에 따른 DMA 채널 전송을 이용한 비밀키 관리 장치는 마이크로프로세서(10), DMA(Direct Memory Access)(20), 리매퍼(remapper)(30), 비밀키 발생부(60), 메모리(70) 등을 포함한다.
본 발명에 따른 비밀키 관리 장치는 컴퓨터, 스마트폰, 노트북, 태블릿 PC 등과 같은 전자통신기기에서 구현될 수 있다.
마이크로프로세서(10), DMA(20), 리매퍼(30) 및 메모리(70)는 버스 매트릭스(40)를 통해 상호 연결되며, 비밀키 발생부(60)는 버스 브릿지(50)를 통해 버스 매트릭스(40)에 연결되어 DMA(20)와 통신하게 된다.
마이크로프로세서(10)는 비밀키 발생부(60)에서 생성된 비밀키가 DMA(20)를 통해 메모리(70)에 저장되도록 하고, 메모리(70)에 저장된 비밀키가 DMA(20)를 통해 호출되도록 한다.
DMA(Direct Memory Access)(20)는 비밀키 발생부(60)로부터 비밀키를 획득하여 메모리(70)에 저장하고, 메모리(70)에 저장된 비밀키를 호출한다. 본 발명에 따른 DMA(20)는 랜덤으로 DMA 채널을 선택하고 비밀키를 이용해 DMA 채널 주소를 생성하게 된다.
리맵퍼(remapper)(30)는 DMA(20)로부터 DMA 채널 주소를 입력 받아 메모리 맵(memory map)의 메모리 영역에 맞는 메모리 주소를 출력한다.
비밀키 발생부(60)는 난수(random number)를 발생시켜 난수로부터 비밀키를 생성하는 하드웨어 암호 칩이다. 비밀키 발생부(60)는 제1 비밀키 발생부(61), 제2 비밀키 발생부(62) 및 제3 비밀키 발생부(63)를 포함한다.
제1 비밀키 발생부(61)는 제1 난수를 발생시켜 제1 난수로부터 제1 비밀키를 생성한다. 제2 비밀키 발생부(62)는 제2 난수를 발생시켜 제2 난수로부터 제2 비밀키를 생성한다. 제3 비밀키 발생부(63)는 제3 난수를 발생시켜 제3 난수로부터 제3 비밀키를 생성한다.
일반적으로 소프트웨어나 하드웨어를 이용한 다양한 방법으로 암복호화를 위한 키를 생성할 수 있다. 소프트웨어에 의한 키 생성 방법의 경우 그 알고리즘이 간파당할 수 있기 때문에 하드웨어에 의한 키 생성 방법이 더 선호되고 있다.
하드웨어에 의한 키 생성 방법 중에서 하드웨어 칩 기반인 순수난수생성기(TRNG; True Random Number Generator)를 이용해 난수를 발생시켜 키를 만드는 방법이 많이 사용되고 있다. 본 발명의 실시예에서는 비밀키 발생부(60)로서 TRNG를 사용한다.
메모리(70)는 각종 프로그램과 데이터를 저장하는 부분으로서 본 발명의 실시예에 따라 비밀키 발생부(60)에서 생성한 비밀키를 저장한다. 메모리(70)는 복수의 SRAM(Static RAM) 또는 DRAM(Dynamic RAM)으로 구성될 수 있다.
도 2는 본 발명에 따른 DMA 채널 전송을 이용한 비밀키 관리 방법에서 비밀키를 저장하는 과정을 나타낸 것이다.
도 2를 참조하면, 우선 비밀키 발생부(60)가 비밀키를 생성하면(S10), 마이크로프로세서(10)가 DMA(20)로 비밀키 저장을 위한 명령신호를 출력하고 DMA(20)는 마이크로프로세서(10)로부터 명령신호를 수신한다(S12).
비밀키 저장을 위한 명령신호를 수신하면 DMA(20)는 마이크로프로세스(10)로 버스요청신호를 보내고 마이크로프로세서(10)로부터 버스허가신호를 받으면 비밀키 발생부(60)와 연결되어 비밀키 발생부(60)에서 생성된 비밀키를 획득하여 내부 레지스터에 저장한다.
이때 DMA(20)는 DMA 채널을 임의로 선택하고 비밀키를 이용해 DMA 채널 주소를 생성하고(S30), 이를 내부 레지스터에 저장한다. DMA(20)는 DMA 채널 주소를 리맵퍼(30)로 전송한다.
리맵퍼(30)는 DMA(20)로부터 DMA 채널 주소를 입력 받아 메모리 맵에 따른 메모리 주소로 변환한다. 즉, 리맵퍼(30)는 DMA 채널 주소를 메모리 맵의 메모리 영역에 맞는 주소로 매핑하게 된다(S16). 구체적으로 리맵퍼(30)는 DMA 채널 주소를 메모리 맵에 따라 매핑하여 메모리 주소를 결정하고 어드레스 디코더(address decoder)를 통해 메모리 주소를 출력한다.
다음, DMA(20)는 리매퍼(30)에 의해 출력된 메모리 주소에 근거하여 비밀키 발생부(60)로부터 획득한 비밀키를 메모리(70)에 저장한다. 즉, DMA(20)는 메모리(70)에서 리매퍼(30)에 의해 매핑된 메모리 주소에 해당하는 메모리 영역에 비밀키를 저장한다(S18).
도 3은 본 발명에 따른 DMA 채널 전송을 이용한 비밀키 관리 방법에서 비밀키를 호출하는 과정을 나타낸 것이다.
도 3을 참조하면, 먼저 DMA(20)는 마이크로프로세서(10)로부터 비밀키 호출을 위한 명령신호를 수신한다(S20).
비밀키 호출을 위한 명령신호를 수신하면 DMA(20)는 기 저장된 DMA 채널 주소를 리매퍼(30)로 출력한다(S22).
DMA(20)로부터 DMA 채널 주소를 입력받으면 리매퍼(30)는 DMA 채널 주소를 메모리 맵에 따른 메모리 주소로 매핑한다(S24)
다음, DMA(20)는 리매퍼(30)에 의해 출력된 메모리 주소에 근거하여 메모리(70)에 저장된 비밀키를 읽어 들인다(S26). 즉, DMA(20)는 메모리(70)에서 리매퍼(30)에 의해 매핑된 메모리 주소에 해당하는 메모리 영역으로부터 비밀키를 호출할 수 있게 된다.
이상의 설명은 본 발명을 예시적으로 설명한 것에 불과하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술적 사상에서 벗어나지 않는 범위에서 다양한 변형이 가능할 것이다.
따라서 본 발명의 명세서에 개시된 실시예들은 본 발명을 한정하는 것이 아니다. 본 발명의 범위는 아래의 특허청구범위에 의해 해석되어야 하며, 그와 균등한 범위 내에 있는 모든 기술도 본 발명의 범위에 포함되는 것으로 해석해야 할 것이다.
10: 마이크로프로세서 20: DMA
30: 리매퍼 40: 버스 매트릭스
50: 버스 브릿지 60: 비밀키 발생부
70: 메모리

Claims (7)

  1. 난수를 발생시켜 난수로부터 비밀키를 생성하는 비밀키 발생부와,
    마이크로프로세서로부터 비밀키 저장을 위한 명령신호를 수신하면 DMA 채널을 선택하고 DMA 채널 주소를 생성하는 DMA와,
    상기 DMA로부터 상기 DMA 채널 주소를 입력 받아 메모리 맵에 따른 메모리 주소를 출력하는 리매퍼(remapper)를 포함하여,
    상기 DMA가 메모리에서 상기 리매퍼에 의해 출력된 메모리 주소에 해당하는 메모리 영역에 상기 비밀키 발생부에 의해 생성된 비밀키를 저장하는 것을 특징으로 하는 DMA 채널 전송을 이용한 비밀키 관리 장치.
  2. 제1항에 있어서,
    상기 비밀키 발생부는 TRNG(True Random Number Generator)인 것을 특징으로 하는 DMA 채널 전송을 이용한 비밀키 관리 장치.
  3. 제1항에 있어서,
    상기 DMA는 상기 비밀키 발생부에 의해 생성된 비밀키를 이용하여 DMA 채널 주소를 생성하는 것을 특징으로 하는 DMA 채널 전송을 이용한 비밀키 관리 장치.
  4. 제1항에 있어서,
    상기 리매퍼는 상기 DMA 채널 주소를 매모리 맵에 따라 매핑하여 메모리 주소를 결정하고 어드레스 디코더를 통해 메모리 주소를 출력하는 것을 특징으로 하는 DMA 채널 전송을 이용한 비밀키 관리 장치.
  5. 제1항에 있어서,
    상기 DMA는 상기 마이크로프로세서로부터 비밀키 호출을 위한 명령신호를 수신하면, 상기 비밀키 저장을 위해 생성한 DMA 채널 주소를 상기 리매퍼로 출력하고 상기 리매퍼로부터 받은 메모리 주소에 근거해 상기 메모리로부터 비밀키를 읽어내는 것을 특징으로 하는 DMA 채널 전송을 이용한 비밀키 관리 장치.
  6. 컴퓨터로 구현되는 비밀키 관리 장치에서 수행되는 DMA 채널 전송을 이용한 비밀키 관리 방법에 있어서,
    암호 칩에 의해 비밀키가 생성되면 DMA(Direct Memory Access)가 DMA 채널 주소를 생성하여 저장하는 단계와,
    리매퍼(remapper)가 DMA 채널 주소를 메모리 맵(memory map)에 따른 메모리 주소로 변환하는 단계와,
    상기 DMA가 메모리에서 상기 메모리 주소에 해당하는 메모리 영역에 상기 비밀키를 저장하는 단계를 포함하는 DMA 채널 전송을 이용한 비밀키 관리 방법.
  7. 제6항에 있어서,
    상기 DMA가 상기 저장된 DMA 채널 주소를 상기 리매퍼로 출력하는 단계와,
    상기 리매퍼가 상기 DMA로부터 입력받은 DMA 채널 주소를 메모리 맵에 따른 메모리 주소로 변환하는 단계와,
    상기 DMA가 상기 메모리에서 상기 메모리 주소에 해당하는 메모리 영역으로부터 상기 비밀키를 호출하는 단계를 포함하는 DMA 채널 전송을 이용한 비밀키 관리 방법.
KR1020200139938A 2020-10-27 2020-10-27 Dma 채널 전송을 이용한 비밀키 관리 장치 및 방법 KR20220055635A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200139938A KR20220055635A (ko) 2020-10-27 2020-10-27 Dma 채널 전송을 이용한 비밀키 관리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200139938A KR20220055635A (ko) 2020-10-27 2020-10-27 Dma 채널 전송을 이용한 비밀키 관리 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20220055635A true KR20220055635A (ko) 2022-05-04

Family

ID=81583991

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200139938A KR20220055635A (ko) 2020-10-27 2020-10-27 Dma 채널 전송을 이용한 비밀키 관리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20220055635A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200116009A (ko) 2019-03-29 2020-10-08 알리바바 그룹 홀딩 리미티드 신원 정보에 기초한 암호화 키 관리

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200116009A (ko) 2019-03-29 2020-10-08 알리바바 그룹 홀딩 리미티드 신원 정보에 기초한 암호화 키 관리

Similar Documents

Publication Publication Date Title
CN112836229B (zh) 属性基加密和区块链结合的可信数据访问控制方案
TWI736271B (zh) 非對稱密鑰中的私鑰生成和使用方法、裝置和設備
US8726040B2 (en) Memory randomization for protection against side channel attacks
US11308241B2 (en) Security data generation based upon software unreadable registers
US20080285747A1 (en) Encryption-based security protection method for processor and apparatus thereof
US11329835B2 (en) Apparatus and method for authenticating IoT device based on PUF using white-box cryptography
KR102397579B1 (ko) 부채널 분석 방지를 위한 화이트박스 암호 방법 및 장치
WO2017000726A1 (zh) 一种密钥变换方法、装置及终端
US9954859B2 (en) Random number distribution
JP6533553B2 (ja) 暗号化/復号装置及びその電力解析保護方法
WO2022217714A1 (zh) 数据碰撞方法、装置、设备及计算机可读存储介质
CN108667598B (zh) 用于实现安全密钥交换的设备和方法及安全密钥交换方法
WO2007026287A1 (en) Method and device for generating random number generator seeds
CN113094718A (zh) 一种文件加密方法及相关装置
US20180123789A1 (en) Apparatus and method for generating a key in a programmable hardware module
CN112152802B (zh) 数据加密方法、电子设备及计算机存储介质
US10699021B2 (en) Method and a device for secure storage of at least one element of digital information, and system comprising such device
CN108256346B (zh) 关键数据的保护方法、加密保护装置及嵌入式系统装置
CN111680326A (zh) 一种数据处理方法及装置
CN109361506B (zh) 信息处理方法
KR20220055635A (ko) Dma 채널 전송을 이용한 비밀키 관리 장치 및 방법
US20130198528A1 (en) Modifying a Length of an Element to Form an Encryption Key
Xu et al. Data protection using recursive inverse function
KR102311340B1 (ko) 암호화 장치 및 방법
KR20220000537A (ko) 차량 네트워크 기반의 데이터 송수신 시스템 및 그 방법

Legal Events

Date Code Title Description
E601 Decision to refuse application