KR101915808B1 - 난독화를 이용하는 암호문 복호화 - Google Patents

난독화를 이용하는 암호문 복호화 Download PDF

Info

Publication number
KR101915808B1
KR101915808B1 KR1020160114953A KR20160114953A KR101915808B1 KR 101915808 B1 KR101915808 B1 KR 101915808B1 KR 1020160114953 A KR1020160114953 A KR 1020160114953A KR 20160114953 A KR20160114953 A KR 20160114953A KR 101915808 B1 KR101915808 B1 KR 101915808B1
Authority
KR
South Korea
Prior art keywords
scrambling
module
output data
random number
data based
Prior art date
Application number
KR1020160114953A
Other languages
English (en)
Other versions
KR20180027819A (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 KR1020160114953A priority Critical patent/KR101915808B1/ko
Publication of KR20180027819A publication Critical patent/KR20180027819A/ko
Application granted granted Critical
Publication of KR101915808B1 publication Critical patent/KR101915808B1/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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

본 명세서는 복호화 장치로서, 난수를 기초로 암호문을 스크램블링 입력 데이터로 변환하는 난독화 모듈; 상기 스크램블링 입력 데이터의 적어도 일부에 기초하여 복호화된 출력 데이터를 생성하는 암호화 모듈; 및 상기 출력 데이터 및 상기 난수에 기초하여 평문을 획득하는 난독화 해제 모듈을 포함하는 복호화 장치를 개시한다.

Description

난독화를 이용하는 암호문 복호화{DECRYPTING CIPHER TEXTS USING SCRAMBLING}
본 명세서는 난독화를 이용하는 암호문 복호화에 관한 것이다.
최근의 전자 장치는 암호화 기능(cryptographic function)을 수행하는 모듈이 포함되도록 구현될 수 있다. 이는 암호 가속기(cryptographic accelerator) 또는 하드웨어 보안 모듈(Hardware Security Module; HSM) 형태로 구현되어 암호화 기능에 사용되는 키와 중간 계산 값 등을 보호된 형태로 저장할 수 있다.
다만, 암호화 모듈이 보호된 암호화 또는 복호화 기능을 수행하도록 구현되어 있더라도, 반복 이용 과정에서 외부 공격자가 암호문(cipher text) 및 평문(plain text) 쌍을 충분히 기록하는 경우 보호 기능이 무력화 될 수 있다.
미합중국 특허공개공보 US2008/0137837A1은 통신 환경에서 메시지를 암호화 및 복호화 함에 있어 데이터 입력 블록이 가역적으로 처리되어 무작위 스트링이 생성되도록 하는 방법이 개시하고 있다.
전자 장치에 탑재되어 있는 보안 모듈을 활용하여 재사용 공격을 방지하며 안전하게 암호문을 복호화할 수 있는 방법이 필요하다.
전자 장치 내 메모리에 저장되어 있는 암호문 형태의 명령어를 필요에 따라 복호화하여 안전하게 사용할 수 있는 방법이 필요하다.
본 명세서는 난수를 기초로 암호문을 스크램블링 입력 데이터로 변환하는 난독화 모듈; 상기 스크램블링 입력 데이터의 적어도 일부에 기초하여 복호화된 출력 데이터를 생성하는 암호화 모듈; 및 상기 출력 데이터 및 상기 난수에 기초하여 평문을 획득하는 난독화 해제 모듈을 포함하는 복호화 장치를 제시한다. 상기 복호화 장치는 다음과 같은 특징 및 그 밖의 특징을 포함할 수 있다.
상기 암호화 모듈은 비대칭키 기반 암호화 기능에 기초하여 상기 복호화된 출력 데이터를 생성할 수 있다. 또한, 상기 난독화 모듈은 상기 암호문과 상기 난수의 곱셈 연산을 수행하고, 상기 난독화 해제 모듈은 상기 출력데이터에 대한 상기 난수의 나눗셈 연산을 수행할 수 있다. 또한, 제1 항에 있어서, 상기 암호화 모듈은 대칭키 기반 암호화 기능에 기초하여 상기 복호화된 출력 데이터를 생성할 수 있다.
한편, 본 명세서는 난수를 기초로 암호문을 스크램블링 입력 데이터로 변환하는 단계; 상기 스크램블링 입력 데이터의 적어도 일부에 기초하여 복호화된 출력 데이터를 생성하는 단계; 상기 출력 데이터 및 상기 난수에 기초하여 평문을 획득하는 단계를 포함하는 암호화 장치의 복호화 방법을 제시한다.
한편, 본 명세서는 피드백 값을 난수에 기초하여 스크램블링 입력 데이터로 변환하는 난독화 모듈; 암호문을 복호화하고, 상기 스크램블링 입력 데이터에 기초하여 상기 복호화된 암호문을 스크램블링 출력 데이터로 변환하는 암호화 모듈; 및 상기 난수 및 상기 피드백 값에 기초하여 상기 스크램블링 출력 데이터로부터 평문을 획득하는 난독화 해제 모듈을 포함하는 복호화 장치를 제시한다. 상기 피드백 값은 초기 벡터(Initial Vector; IV) 또는 이전 반복절차(iteration)의 상기 암호문을 포함할 수 있다.
한편, 본 명세서는 난수에 기초하여 피드백 값을 스크램블링 입력 데이터로 변환하는 단계; 암호문을 복호화하는 단계; 상기 스크램블링 입력 데이터에 기초하여 상기 복호화된 암호문을 스크램블링 출력 데이터로 변환하는 단계; 상기 난수 및 상기 피드백 값에 기초하여 상기 스크램블링 출력 데이터로부터 상기 평문을 획득하는 단계를 포함할 수 있다. 상기 피드백 값은 초기 벡터(Initial Vector; IV) 또는 이전 반복절차(iteration)의 상기 암호문을 포함할 수 있다.
한편, 본 명세서는 응용 모듈 및 암호화 모듈을 포함하는 시스템의 복호화 방법으로서, 상기 응용 모듈이 제1 난수에 기초하여 초기 벡터(Initial Vector; IV)를 제1 스크램블링 입력 데이터로 변환하는 단계; 상기 응용 모듈이 상기 암호화 모듈로 제1 암호문 및 상기 제1 스크램블링 입력 데이터를 전송하는 단계; 상기 암호화 모듈이 상기 제1 암호문을 복호화하는 단계; 상기 암호화 모듈이 상기 제1 스크램블링 입력 데이터에 기초하여 상기 복호화된 제1 암호문을 제1 스크램블링 출력 데이터로 변환하는 단계; 상기 응용 모듈이 상기 제1 스크램블링 출력 데이터를 상기 암호화 모듈로부터 수신하는 단계; 및 상기 응용 모듈이 상기 제1 난수 및 상기 초기 벡터에 기초하여 상기 제1 스크램블링 출력 데이터로부터 제1 평문을 획득하는 단계를 포함할 수 있다.
또한, 상기 방법은 상기 응용 모듈이 제2 난수에 기초하여 상기 제1 암호문을 제2 스크램블링 입력 데이터로 변환하는 단계; 상기 응용 모듈이 상기 암호화 모듈로 제2 암호문 및 상기 제2 스크램블링 입력 데이터를 전송하는 단계; 상기 암호화 모듈이 상기 제2 암호문을 복호화하는 단계; 상기 암호화 모듈이 상기 제2 스크램블링 입력 데이터에 기초하여 상기 복호화된 제2 암호문을 제2 스크램블링 출력 데이터로 변환하는 단계; 상기 응용 모듈이 상기 제2 스크램블링 출력 데이터를 상기 암호화 모듈로부터 수신하는 단계; 및 상기 응용 모듈이 상기 제2 난수 및 상기 제1 암호문에 기초하여 상기 제2 스크램블링 출력 데이터로부터 제2 평문을 획득하는 단계를 더 포함할 수 있다.
한편, 본 명세서는 암호문을 저장하는 메모리; 및 초기 벡터 또는 상기 암호문의 적어도 일부를 난수에 기초하여 스크램블링 입력 데이터로 변환하고, 상기 암호문 및 상기 스크램블링 입력 데이터를 암호화 모듈로 전송하고, 상기 암호화 모듈로부터 상기 암호문 및 상기 스크램블링 입력 데이터에 적어도 일부 기초하여 복호화된 스크램블링 출력 데이터를 수신하고, 상기 난수 및 상기 초기 벡터에 기초하여 상기 스크램블링 출력 데이터로부터 평문을 획득하는 제어부를 제시한다.
또한, 있어서, 상기 평문은 상기 제어부에서 실행 가능한 명령어(instruction)을 포함하는 복호화 장치일 수 있다.
본 명세서에 개시된 기술에 따르면 난수를 이용하여 노출되는 데이터의 무작위성을 증가시킬 수 있다. 이에 따라 암호문에 대한 재사용 공격의 위험을 감소 시킬 수 있다.
본 명세서에 개시된 기술에 따르면, 암호화된 명령어 또는 프로그램을 안전하게 전자 장치 내 메모리에 저장하고 필요에 따라 안전하게 복호화하여 사용할 수 있다.
도 1은 개시된 기술이 적용될 수 있는 예시적인 복호화 장치의 블록도이다.
도 2는 비대칭키 암호화 기능에 기초하여 수행되는 예시적인 복호화 방법의 흐름도이다.
도 3은 대칭키 암호화 기능에 기초하여 수행되는 예시적인 복호화 방법의 흐름도이다.
도 4는 체인 방식을 적용한 예시적인 복호화 방법의 흐름도이다.
도 5는 개시된 기술이 적용될 수 있는 다른 예시적인 복호화 장치의 블록도이다.
도 6은 개시된 기술이 적용될 수 있는 또 다른 예시적인 복호화 장치의 블록도이다.
본 명세서에 개시된 기술은 암호화 장치에 적용될 수 있다. 그러나 본 명세서에 개시된 기술은 이에 한정되지 않고, 상기 기술의 기술적 사상이 적용될 수 있는 모든 전자 장치 및 방법에도 적용될 수 있다.
본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 명세서에 개시된 기술의 사상을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 명세서에 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 기술적인 용어가 본 명세서에 개시된 기술의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 본 명세서에 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 명세서에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥 상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
본 명세서에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예들을 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
또한, 본 명세서에 개시된 기술을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 기술의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 기술의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 그 기술의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.
도 1은 개시된 기술이 적용될 수 있는 예시적인 복호화 장치의 블록도이다.
복호화 장치(100)는 암호화 모듈(cryptographic module)(110), 난독화 모듈(scrambler module)(120) 및 난독화 해제 모듈(unscramble module)(130)을 포함하도록 구성될 수 있다.
상기 암호화 모듈(110)은 입력 데이터에 대하여 암호화 기능(cryptographic function)을 수행하는 모듈이다. 상기 암호화 모듈(110)에 의하여 수행되는 상기 암호화 기능은, 예를 들어, 대칭키(symmetric) 방식 또는 비대칭키(asymmetric) 방식의 암호화 기능일 수 있다.
일 실시예로서, 상기 암호화 모듈(110)이 수행하는 상기 암호화 기능은, 예를 들어, 대칭키 방식의 암호화(encryption) 또는 복호화(decryption)일 수 있다. 상기 암호화 모듈(110)은, 예를 들어, 64, 128, 256 바이트(bytes) 등의 크기인 블록 단위의 데이터를 대상으로 암호화 기능을 수행할 수 있다.
다른 실시예로서, 상기 암호화 모듈(110)이 수행하는 상기 암호화 기능은, 예를 들어, 비대칭키 방식에 따라 서로 연관 관계가 있는 공개키(public key) 및 개인키(private key) 중 하나를 이용하여 수행되는 암호화(encryption) 또는 복호화(decryption)일 수 있다. 상기 암호화 기능은 비대칭키 방식의 서명(sign) 또는 서명 검증(validation)을 포함할 수 있다. 상기 암호화 모듈(110)은, 예를 들어, RSA(Rivest-Shamir-Adleman) 알고리듬을 수행할 수 있다.
상기 암호화 모듈(110)은 보안 저장소를 포함하도록 구성될 수 있다. 상기 보안 저장소는 상기 암호화 기능에 사용되는 암호화 키 (cryptographic key) 등의 민감한 데이터를 인가되지 않은 접근으로부터 보호하고, 안전하게 암호화 기능(cryptographic function)을 수행하기 위한 저장 공간이다. 상기 보안 저장소는 하드웨어 보안 모듈(Hardware Security Module; HSM)을 이용하여 구현될 수 있다. 상기 보안 저장소는, 예를 들어, TrustZone, IPT, Secure Enclave 등으로 불릴 수 있다.
상기 난독화 모듈(120)은 입력 데이터를 난수(random number)에 기초하여 무작위적인 데이터(randomized data) 또는 스크램블링 데이터(scrambled data)로 변경한다. 상기 난독화 모듈(120)은 동일한 입력 데이터에 대해서도 난수의 무작위성 때문에 서로 다른 데이터로 변경한다. 그리하여 상기 암호화 모듈(110)에 입력으로 전달되는 데이터라 하더라도 중간 지역(150)에 위치한 공격자가 용이하게 가져갈 수 없도록 하여 데이터를 보호할 수 있다.
상기 난독화 모듈(120)이 수행하는 난독화 기능은 상기 난수와 상기 입력 데이터에 대하여, 예를 들어, XOR, 곱셈, 나눗셈 등 역함수가 존재하는 연산자에 의한 연산일 수 있다.
상기 난독화 해제 모듈(130)은 상기 난독화 모듈(120)의 스크램블링 데이터 또는 상기 스크램블링 데이터에 기초한 다른 데이터로부터 난독화 되지 않은 데이터를 획득할 수 있다. 예를 들어, 상기 난독화 해제 모듈(130)은 상기 난독화 모듈(120)에서 이용되는 연산의 역함수일 수 있다.
한편, 도 1을 참조하여 개시되는 상기 난독화 모듈(120)은 난수를 기초로 암호문을 스크램블링 입력 데이터로 변환할 수 있다. 상기 암호문은 메모리(121)로부터 획득한 것일 수 있다. 상기 메모리(121)에 저장된 암호문은 그 자체로 기밀성(confidentiality)가 유지되는 상태일 수 있다. 상기 암호화 모듈(110)은 상기 스크램블링 입력 데이터의 적어도 일부에 기초하여 복호화된 출력 데이터를 생성할 수 있다. 예를 들어, 상기 암호화 모듈(110)은 상기 스크램블링 입력 데이터 전체 또는 포함된 일부 데이터를 복호화할 수 있다. 상기 난독화 해제 모듈(130)은 상기 출력 데이터 및 상기 난수에 기초하여 평문을 획득할 수 있다.
일 실시예에서, 상기 암호화 모듈(110)은 비대칭키 기반 암호화 기능에 기초하여 상기 복호화된 출력 데이터를 생성할 수 있다. 이 경우, 상기 난독화 모듈(120)은 상기 암호문에 상기 난수를 곱하고, 상기 난독화 해제 모듈(130)은 상기 출력데이터에 대하여 상기 난수로 나눗셈을 수행할 수 있다. 이에 대하여 도 2를 참조하여 후술된다.
다른 실시예에서, 상기 암호화 모듈(110)은 대칭키 기반 암호화 기능에 기초하여 상기 복호화된 출력 데이터를 생성할 수 있다. 이에 대하여 도 3 및 도 4를 참조하여 상술된다.
상기 메모리(121)는 하나 이상의 암호문을 저장할 수 있다. 상기 메모리(121) 휘발성(volatile) 또는 비휘발성(non-volatile) 저장 장소일 수 있다. 상기 메모리(121)에 저장되는 상기 하나 이상의 암호문은 보호된 멀티미디어 컨텐츠, 보호된 펌웨어, 그 밖의 보호된 데이터일 수 있다.
도 2는 비대칭키 암호화 기능에 기초하여 수행되는 예시적인 복호화 방법의 흐름도이다.
도 2를 참조하여 복호화 장치가 비대칭키 알고리즘을 기초로 암호문을 복호화하는 방법의 예시적인 실시예를 설명한다. 본 명세서에서는 RSA 알고리즘을 비대칭키 시스템의 예시로 설명되어 있으나 그 밖의 다른 공개키 알고리즘에 대해서도 적용될 수 있다.
난독화 모듈은 메모리에 저장된 데이터 중에서 복호화하려는 암호문을 준비한다(210). 상기 난독화 모듈은 난수를 기초로 상기 암호문을 스크램블링 입력 데이터로 변환한다(220). 상기 난독화 모듈은 상기 스크램블링 입력데이터를 암호화 모듈에 전송한다. 상기 암호화 모듈은 상기 스크램블링 입력 데이터의 적어도 일부에 기초하여 복호화된 출력 데이터를 생성한다(230). 일 실시 예에서, 이는 상기 스크램블링 입력 데이터를 개인키(private key)를 이용하여 복호화하는 것일 수 있다. 상기 암호화 모듈은 상기 복호화된 출력 데이터를 난독화 해제 모듈로 전송한다. 상기 난독화 해제 모듈은 상기 출력 데이터 및 상기 난수에 기초하여 평문을 획득한다(240).
RSA 알고리즘의 예를 들면, 암호문 C는 다음과 같이 표시될 수 있다.
C = me ( mod N )
여기서 C는 암호문(cipher text), m은 평문(message, plain text), N은 모듈러스(modulus), e는 공개지수(public exponent)이다.
상기 난독화 모듈은 난수 r을 기초로 상기 암호문 C를 상기 스크램블링 입력 데이터 C'로 다음과 같이 변환할 수 있다(220).
C' = reme (mod N) =(rm)e (mod N)
이는 난수 r에 기초한 곱셈(multiplication) 연산이 수행된 것이다. 상기 난수 r은 새로 생성된 것이거나 또는 미리 생성된 테이블에서 선택된 것일 수 있다. 상기 난수 r은 이후 난독화 해제를 위하여 상기 난독화 해제 모듈에게 공유된다.
상기 스크램블링 입력 데이터 C'를 수신한 상기 암호화 모듈은 개인키(Kprv)를 구성하는 d 를 이용하여 C'를 다음과 같이 복호화하고(230), 출력 데이터 m'을 생성한다.
m' = (rm)ed (mod N) = (rm)(mod N)
상기 난독화 해제 모듈은 상기 출력 데이터 m'를 상기 암호화 모듈로부터 수신한 후, 상기 난독화 모듈과 공유하고 있는 상기 난수 r를 기초로 상기 출력 데이터 m'을 난독화 해제(unscramble)하여 상기 평문 m을 획득한다(240).
m = (rm)/r (mod N)
상기 난독화 해제 모듈은 상기 난수 r에 기초하여 상기 난독화 모듈이 수행한 곱셈 연산의 역함수인 나눗셈 연산을 수행한 것이다. 이로써 상기 난독화 해제 모듈은 상기 평문 m을 획득하고 이후 처리를 위하여 상기 평문 m을 제어부로 전달할 수 있다.
상기 암호화 모듈의 입력으로서 상기 스크램블링 입력 데이터 C' 및 출력으로서 상기 출력 데이터 m'은 모두 각각 다른 모듈과의 접점인 인터페이스 251 및 인터페이스 253에서 암호문 C 및 평문 m 의 형태로 노출되지 아니하므로, 상기 복호화 장치는 상기 접점을 이용한 리플레이 공격 등에 강인한 복호화를 수행할 수 있다.
도 3은 대칭키 암호화 기능에 기초하여 수행되는 예시적인 복호화 방법의 흐름도이다.
도 2를 참조하여 복호화 장치가 대칭키 알고리즘을 기초로 암호문을 복호화하는 방법의 예시적인 실시예를 설명한다. 본 명세서에 개시된 기술이 적용될 수 있는 대칭키 알고리즘은, 예를 들어, AES, SEED, 3DES 등이 있으며, 이에 국한되지 아니하고 각종 블록 암호화(block cipher) 및 스트림 암호화(stream cipher) 등에 적용될 수 있다.
난독화 모듈은 메모리에 저장된 데이터 중에서 복호화하려는 암호문을 준비한다(310). 상기 난독화 모듈은 난수를 기초로 상기 암호문을 스크램블링 입력 데이터로 변환한다(320). 상기 난독화 모듈은 상기 스크램블링 입력데이터를 암호화 모듈에 전송한다. 상기 암호화 모듈은 상기 스크램블링 입력 데이터의 적어도 일부에 기초하여 복호화된 출력 데이터를 생성한다(330). 일 실시 예에서, 이는 상기 스크램블링 입력 데이터를 상기 암호문 생성에 사용된 것과 동일한 비밀키(secret key)를 이용하여 복호화하는 것일 수 있다. 상기 암호화 모듈은 상기 복호화된 출력 데이터를 난독화 해제 모듈로 전송한다. 상기 난독화 해제 모듈은 상기 출력 데이터 및 상기 난수에 기초하여 평문을 획득한다(340).
블록 암호화 알고리즘의 예를 들면, 암호문 C는 알고리즘에서 지정된 블록 크기와 비례하는 크기이다. 상기 난독화 모듈은 난수 r을 기초로 상기 암호문 C를 상기 스크램블링 입력 데이터 C'로 다음과 같이 변환할 수 있다(320).
C' = C XOR r
이는 난수 r에 기초한 XOR(exclusive OR) 연산이 수행된 것이다. 상기 난수 r은 새로 생성된 것이거나 또는 미리 생성된 테이블에서 선택된 것일 수 있다. 상기 난수 r은 이후 난독화 해제를 위하여 상기 난독화 해제 모듈에게 공유된다. 여기서는 XOR 연산을 예시하였으나, 이에 국한되지 아니하고 환원가능한 다른 연산이 사용되는 것도 배제하지 아니한다.
상기 스크램블링 입력 데이터 C'를 수신한 상기 암호화 모듈은 비밀키(K)를 기초로 다음과 같이 복호화하고(330), 출력 데이터 m'를 생성한다.
m' = D[K, C']
이후 상기 난독화 해제 모듈은 상기 출력 데이터 m'를 상기 암호화 모듈로부터 수신한 후, 상기 난독화 모듈과 공유하고 있는 상기 난수 r을 기초로 상기 출력 데이터 m'을 난독화 해제(unscramble)하여 상기 평문 m을 획득한다(340).
m = m'XOR r
상기 암호화 모듈의 입력으로서 상기 스크램블링 입력 데이터 C' 및 출력으로서 상기 출력 데이터 m'은 모두 각각 다른 모듈과의 접점인 인터페이스 351 및 인터페이스 353에서 암호문 C 및 평문 m 의 형태로 노출되지 아니하므로, 상기 복호화 장치는 상기 접점을 이용한 리플레이 공격 등에 강인한 복호화를 수행할 수 있다.
한편, 도 1을 참조하여 개시된 예시적인 복호화 장치가 체인 방식을 사용하여 복호화를 수행하는 경우 적용가능한 구성에 대하여 설명된다.
도 1의 복호화 장치(100)는 다수의 암호문을 대상으로 반복 절차(iteration)을 수행하도록 구성될 수 있으며, 이 경우 상기 복호화 장치(100)의 구체적인 구성의 예시는 다음과 같다.
상기 난독화 모듈(120)은 피드백 값을 난수에 기초하여 스크램블링 입력 데이터로 변환할 수 있다. 상기 피드백 값은 이전 반복 절차에서 획득 가능한 값을 현재 반복 절차에 반영하기 위해 사용되는 값이다. 상기 피드백 값은 이전 반복 절차가 존재하지 않는 최초 반복 단계에서는 초기 벡터(Initial Vector; IV)로 제공될 수 있다. 이 후에는 상기 피드백 값은 이전 반복절차의 암호문일 수 있다.
상기 암호화 모듈(110)은 암호문을 평문으로 복호화하고, 상기 스크램블링 입력 데이터에 기초하여 상기 평문을 스크램블링 출력 데이터로 변환할 수 있다. 상기 난독화 해제 모듈(130)은 상기 난수 및 상기 피드백 값에 기초하여 상기 스크램블링 출력 데이터로부터 상기 평문을 획득할 수 있다.
상기 복호화 장치(100)는 다음 암호문에 대하여 이와 같은 반복 절차를 수행하되, 상기 피드백 값은 이전 반복 절차의 암호문을 포함하도록 구성될 수 있다. 체인 방식을 따르는 구체적인 동작 방법에 대하여 도 4를 참조하여 상세히 개시된다.
도 4는 체인 방식을 적용한 예시적인 복호화 방법의 흐름도이다.
새로운 반복 절차 내에서 난독화 모듈은 복호화될 제1 암호문(C1)을 선택한다(411). 상기 제1 암호문(C1)은 메모리에 저장된 것일 수 있다. 상기 메모리는 하나 이상의 암호문을 저장할 수 있다. 상기 메모리는 휘발성(volatile) 또는 비휘발성(non-volatile) 저장 장소일 수 있다. 상기 메모리에 저장되는 상기 하나 이상의 암호문은 보호된 멀티미디어 컨텐츠, 보호된 펌웨어, 그 밖의 보호된 데이터일 수 있다. 상기 난독화 모듈은 상기 메모리에 저장된 암호문을 미리 지정된 블록 크기로 판독할 수 있다.
상기 난독화 모듈은 제1 난수(r1)에 기초하여 초기 벡터(Initial Vector; IV)를 제1 스크램블링 입력 데이터(C0')로 변환한다(412). 상기 제1 난수는 새로 생성되거나 미리 생성된 테이블에서 선택된 것일 수 있다. 상기 제1 스크램블링 입력 데이터(C0')는 다음과 같은 식으로 표현 될 수 있다.
C0' = IV XOR r1
상기 난독화 모듈은 상기 암호화 모듈로 상기 제1 암호문(C1) 및 상기 제1 스크램블링 입력 데이터(C0')를 전송한다.
상기 암호화 모듈은 상기 제1 암호문(C1)을 복호화한다(413). 상기 복호화 과정에는 대칭키 알고리즘의 비밀키(secret key, K)가 사용될 수 있으며, 이 경우 상기 복호화된 제1 암호문(m1'')은 다음과 같이 표현될 수 있다.
m1'' = D[K, C1]
상기 암호화 모듈이 상기 제1 스크램블링 입력 데이터(C0')에 기초하여 상기 복호화된 제1 암호문(m1'')을 제1 스크램블링 출력 데이터(m1')로 변환한다(414). 상기 제1 스크램블링 출력 데이터(m1')은 다음과 같이 표현될 수 있다.
m1' = ml'' XOR C0'
이후 상기 암호화 모듈은 상기 난독화 해제 모듈로 상기 제1 스크램블링 출력 데이터(m1')를 전송한다. 상기 암호화 모듈은 입력으로서 상기 제1 암호문(C1) 및 상기 제1 스크램블링 입력 데이터(C0')를 수신하며, 출력으로서 상기 제1 스크램블링 출력 데이터(m1')를 전송한다. 상기 입력 및 출력은 상기 암호화 모듈과 다른 외부 모듈과의 접점에서 보호된 형태로 노출되는 것이므로 상기 복호화 장치는 상기 접점과 관련된 리플레이 공격 등에 강인한 복호화를 수행할 수 있다.
상기 난독화 해제 모듈은 상기 제1 난수(r1)를 기초로 상기 초기 벡터(IV)를 변경하고(415), 그 결과를 기초로 상기 제1 스크램블링 출력 데이터(m1')로부터 제1 평문(m1)을 획득할 수 있다(416). 상기 난독화 해제 모듈이 획득한 상기 제1 평문(m1)은 다음과 같이 표현될 수 있다.
m1 = m1' XOR (IV XOR r1)
상기 복호화 장치는 상기 제1 평문(m1)은 상기 제1 암호문(C1)에 대응되는 평문에 해당함을 알 수 있다. 즉, 상기 제1 암호문(C1)은 상기 초기 벡터(IV) 및 상기 비밀키(K)를 기초로 상기 제1 평문(m1)을 암호화한 것에 해당한다.
다음 반복 절차(iteration)은 초기 벡터(IV) 대신에 이전 반복 절차(411 내지 416)에서 사용한 암호문인 상기 제1 암호문(C1)이 사용되는 것을 제외하고 제2 난수(r2)를 이용하여 제2 암호문(C2)으로부터 제2 평문(m2)를 획득하는 절차이다. 반복되는 사항에 대한 구체적인 설명은 생략된다.
도 5는 개시된 기술이 적용될 수 있는 다른 예시적인 복호화 장치의 블록도이다.
도 5의 복호화 장치(500)는 암호화 모듈(510) 및 응용 모듈(520)을 포함하도록 구성될 수 있다. 도 1을 참조하여 개시된 복호화 장치(100)와 비교하면, 상기 복호화 장치(500)의 상기 응용 모듈(520)은 난독화 모듈 및 난독화 해제 모듈의 특징을 포함할 수 있다. 나머지 동일한 사항에 대하여는 반복적 설명을 생략한다.
상기 암호화 모듈(510)은 보안 저장소를 포함하도록 구성될 수 있으며, 상기 보안 저장소는 하드웨어 보안 모듈(Hardware Security Module; HSM)을 이용하여 구현될 수 있다. 상기 보안 저장소는, 예를 들어, TrustZone, IPT, Secure Enclave 등으로 불릴 수 있다.
상기 응용 모듈(520)은 전자 장치의 CPU(Central Processing Unit), 컨트롤러, AP(Application Processor), CP(Communication Processor) 등과 같은 제어부 형태로 구현될 수 있다. 또한, 상기 응용 모듈(520)은 상기 보안 저장소 내의 컨트롤러 코어 형태로 구현될 수도 있다.
상기 메모리(521)는 상기 응용 모듈(520)과 전기적으로 되어, 하나 이상의 암호문을 저장하도록 구성될 수 있다. 상기 메모리(521)는 휘발성(volatile) 또는 비휘발성(non-volatile) 저장 장소일 수 있다. 상기 메모리에 저장되는 상기 하나 이상의 암호문은 보호된 멀티미디어 컨텐츠, 보호된 펌웨어, 그 밖의 보호된 데이터일 수 있다. 상기 응용 모듈(520)은 상기 메모리(521)에 저장된 암호문을 미리 지정된 블록 크기로 판독할 수 있다.
상기 암호화 모듈(510) 및 상기 응용 모듈(520)을 포함하는 시스템의 복호화 방법은, 상기 응용 모듈이 제1 난수에 기초하여 초기 벡터(Initial Vector; IV)를 제1 스크램블링 입력 데이터로 변환하는 단계; 상기 응용 모듈이 상기 암호화 모듈로 제1 암호문 및 상기 제1 스크램블링 입력 데이터를 전송하는 단계; 상기 암호화 모듈이 상기 제1 암호문을 복호화하는 단계; 상기 암호화 모듈이 상기 제1 스크램블링 입력 데이터에 기초하여 상기 복호화된 제1 암호문을 제1 스크램블링 출력 데이터로 변환하는 단계; 상기 응용 모듈이 상기 제1 스크램블링 출력 데이터를 상기 암호화 모듈로부터 수신하는 단계; 및 상기 응용 모듈이 상기 제1 난수 및 상기 초기 벡터에 기초하여 상기 제1 스크램블링 출력 데이터로부터 제1 평문을 획득하는 단계를 포함하도록 구성될 수 있다.
또한, 상기 복호화 방법은, 상기 응용 모듈이 제2 난수에 기초하여 상기 제1 암호문을 제2 스크램블링 입력 데이터로 변환하는 단계; 상기 응용 모듈이 상기 암호화 모듈로 제2 암호문 및 상기 제2 스크램블링 입력 데이터를 전송하는 단계; 상기 암호화 모듈이 상기 제2 암호문을 복호화하는 단계; 상기 암호화 모듈이 상기 제2 스크램블링 입력 데이터에 기초하여 상기 복호화된 제2 암호문을 제2 스크램블링 출력 데이터로 변환하는 단계; 상기 응용 모듈이 상기 제2 스크램블링 출력 데이터를 상기 암호화 모듈로부터 수신하는 단계; 및 상기 응용 모듈이 상기 제2 난수 및 상기 제1 암호문에 기초하여 상기 제2 스크램블링 출력 데이터로부터 제2 평문을 획득하는 단계를 더 포함하도록 구성될 수 있다.
나아가, 본 명세서에 개시된 기술이 적용된 복호화 장치는 암호문을 저장하는 메모리(521); 및 초기 벡터 또는 상기 암호문의 적어도 일부를 난수에 기초하여 스크램블링 입력 데이터로 변환하고, 상기 암호문 및 상기 스크램블링 입력 데이터를 암호화 모듈로 전송하고, 상기 암호화 모듈로부터 상기 암호문 및 상기 스크램블링 입력 데이터에 적어도 일부 기초하여 복호화된 스크램블링 출력 데이터를 수신하고, 상기 난수 및 상기 초기 벡터에 기초하여 상기 스크램블링 출력 데이터로부터 평문을 획득하는 제어부(520)를 포함하도록 구성될 수 있다.
상기 평문은 상기 제어부(520)에서 실행 가능한 명령어(instruction)을 포함할 수 있다. 이 경우 상기 제어부(520)는 전술된 방식에 의하여 상기 메모리(521) 상에 암호문 형태로 저장된 실행 명령어를 블록 단위로 평문 형태의 획득한 후, 획득된 명령어를 상기 제어부(520)가 실행하는 방식으로 동작할 수 있다.
도 6은 개시된 기술이 적용될 수 있는 또 다른 예시적인 복호화 장치의 블록도이다.
도 6에 개시된 예시적인 복호화 장치(600)는 암호화 모듈(610), 난독화 모듈(또는 제1 제어부)(620), 메모리(630), 난독화 해제 모듈(640) 및 제2 제어부(650)을 포함하도록 구성될 수 있다.
상기 복호화 장치(600)는 도 1 또는 도 5를 참조하여 설명된 복호화 장치와 유사하나. 상기 해제 모듈(640)에 의하여 획득된 평문 형태의 명령어는 제2 제어부(650)가 실행하는 점에서 차이가 있다. 또한 상기 제2 제어부(650)는 상기 난독화 모듈(제1 제어부)(620)와 저장 공간 또는 데이터 버스 등이 논리적 또는 물리적으로 분리되도록 구현될 수 있다. 다른 실시예에서는 상기 해제 모듈(640) 및 상기 제2 제어부(650)은 보안 저장소(660)와 같은 형태로 상기 암호화 모듈(610)과 동일한 보안 영역에서 동작하도록 구현될 수도 있다.
상기 복호화 장치(600)는 다음과 같은 보안상 이점을 가질 수 있다. 상기 메모리(630) 상에 암호문 형태로 저장된 실행 명령어를, 본 명세서에 전술된 방법에 따라 상기 난독화 모듈(620), 상기 암호화(610) 및 상기 해제 모듈(640)에 의하여 평문 형태로 획득이 된 경우라도, 별도의 보안 저장소(660) 또는 상기 암호화 모듈(610)과 동일한 보안 영역 내에서만 접근이 가능하므로 외부에 노출될 위험이 현저하게 줄어들 수 있다.
이상에서 본 명세서의 기술에 대한 바람직한 실시 예가 첨부된 도면들을 참조하여 설명되었다. 여기서, 본 명세서 및 청구 범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 한다.
본 발명의 범위는 본 명세서에 개시된 실시 예들로 한정되지 아니하고, 본 발명은 본 발명의 사상 및 특허청구범위에 기재된 범주 내에서 다양한 형태로 수정, 변경, 또는 개선될 수 있다.

Claims (14)

  1. 난수를 기초로 암호문(cipher text)을 스크램블링 입력 데이터로 변환하는 난독화 모듈;
    상기 스크램블링 입력 데이터의 적어도 일부에 기초하여 복호화된 출력 데이터를 생성하는 암호화 모듈, 상기 출력 데이터는 스크램블링된 형태이고; 및
    상기 난수에 기초하여 상기 출력 데이터의 스크램블링을 해제함으로써 상기 암호문에 대응되는 평문(plain text)을 획득하는 난독화 해제 모듈을 포함하는 복호화 장치.
  2. 제1 항에 있어서, 상기 암호화 모듈은 비대칭키 기반 암호화 기능에 기초하여 상기 복호화된 출력 데이터를 생성하는 복호화 장치.
  3. 제2 항에 있어서,
    상기 난독화 모듈은 상기 암호문과 상기 난수의 곱셈 연산을 수행하고,
    상기 난독화 해제 모듈은 상기 출력데이터에 대한 상기 난수의 나눗셈 연산을 수행하는 복호화 장치.
  4. 제1 항에 있어서, 상기 암호화 모듈은 대칭키 기반 암호화 기능에 기초하여 상기 복호화된 출력 데이터를 생성하는 복호화 장치.
  5. 난수를 기초로 암호문(cipher text)을 스크램블링 입력 데이터로 변환하는 단계;
    상기 스크램블링 입력 데이터의 적어도 일부에 기초하여 복호화된 출력 데이터를 생성하는 단계, 상기 출력 데이터는 스크램블링된 형태이고; 및
    상기 난수에 기초하여 상기 출력 데이터의 스크램블링을 해제함으로써 상기 암호문에 대응되는 평문(plain text)을 획득하는 단계를 포함하는 복호화 장치의 복호화 방법.
  6. 피드백 값을 난수에 기초하여 스크램블링 입력 데이터로 변환하는 난독화 모듈;
    암호문(cipher text)을 복호화하고, 상기 스크램블링 입력 데이터에 기초하여 상기 복호화된 암호문을 스크램블링 출력 데이터로 변환하는 암호화 모듈, 상기 스크램블링 출력 데이터는 스크램블된 형태이고; 및
    상기 난수 및 상기 피드백 값에 기초하여 상기 스크램블링 출력 데이터의 스크램블링을 해제함으로써 상기 암호문에 대응되는 평문(plain text)을 획득하는 난독화 해제 모듈을 포함하는 복호화 장치.
  7. 제6 항에 있어서, 상기 피드백 값은 초기 벡터(Initial Vector; IV) 또는 이전 반복절차(iteration)의 상기 암호문을 포함하는 복호화 장치.
  8. 난수에 기초하여 피드백 값을 스크램블링 입력 데이터로 변환하는 단계;
    암호문(cipher text)을 복호화하는 단계;
    상기 스크램블링 입력 데이터에 기초하여 상기 복호화된 암호문을 스크램블링 출력 데이터로 변환하는 단계;
    상기 난수 및 상기 피드백 값에 기초하여 상기 스크램블링 출력 데이터의 스크램블링을 해제함으로써 상기 암호문에 대응되는 평문(plain text)을 획득하는 단계를 포함하는 복호화 시스템의 동작 방법.
  9. 제8 항에 있어서, 상기 피드백 값은 초기 벡터(Initial Vector; IV) 또는 이전 반복절차(iteration)의 상기 암호문을 포함하는 복호화 시스템의 동작 방법.
  10. 응용 모듈 및 암호화 모듈을 포함하는 시스템의 복호화 방법으로서,
    상기 응용 모듈이 제1 난수에 기초하여 초기 벡터(Initial Vector; IV)를 제1 스크램블링 입력 데이터로 변환하는 단계;
    상기 응용 모듈이 상기 암호화 모듈로 제1 암호문 및 상기 제1 스크램블링 입력 데이터를 전송하는 단계;
    상기 암호화 모듈이 상기 제1 암호문을 복호화하는 단계;
    상기 암호화 모듈이 상기 제1 스크램블링 입력 데이터에 기초하여 상기 복호화된 제1 암호문을 제1 스크램블링 출력 데이터로 변환하는 단계;
    상기 응용 모듈이 상기 제1 스크램블링 출력 데이터를 상기 암호화 모듈로부터 수신하는 단계; 및
    상기 응용 모듈이 상기 제1 난수 및 상기 초기 벡터에 기초하여 상기 제1 스크램블링 출력 데이터로부터 제1 평문을 획득하는 단계를 포함하는 방법.
  11. 제10 항에 있어서,
    상기 응용 모듈이 제2 난수에 기초하여 상기 제1 암호문을 제2 스크램블링 입력 데이터로 변환하는 단계;
    상기 응용 모듈이 상기 암호화 모듈로 제2 암호문 및 상기 제2 스크램블링 입력 데이터를 전송하는 단계;
    상기 암호화 모듈이 상기 제2 암호문을 복호화하는 단계;
    상기 암호화 모듈이 상기 제2 스크램블링 입력 데이터에 기초하여 상기 복호화된 제2 암호문을 제2 스크램블링 출력 데이터로 변환하는 단계;
    상기 응용 모듈이 상기 제2 스크램블링 출력 데이터를 상기 암호화 모듈로부터 수신하는 단계; 및
    상기 응용 모듈이 상기 제2 난수 및 상기 제1 암호문에 기초하여 상기 제2 스크램블링 출력 데이터로부터 제2 평문을 획득하는 단계를 더 포함하는 방법.
  12. 실행 가능한 명령어(instruction)를 포함하는 암호문(cipher text)을 저장하는 메모리;
    복호화 기능을 수행하는 암호화 모듈; 및
    상기 메모리 및 상기 암호화 모듈과 전기적으로 연결되고, 상기 암호문으로부터 획득한 상기 실행 가능한 명령어를 수행하도록 설정된 제어부를 포함하고,
    상기 제어부는
    초기 벡터 또는 상기 암호문의 적어도 일부를 난수에 기초하여 스크램블링 입력 데이터로 변환하고, 상기 암호문 및 상기 스크램블링 입력 데이터를 상기 암호화 모듈로 전송하고, 상기 암호화 모듈로부터 상기 암호문 및 상기 스크램블링 입력 데이터에 적어도 일부 기초하여 복호화된 스크램블링 출력 데이터를 수신하고, 상기 난수 및 상기 초기 벡터에 기초하여 상기 스크램블링 출력 데이터로부터 상기 암호문에 대응되는 평문(plain text)을 획득하고, 상기 평문에 포함된 상기 실행 가능한 명령어를 수행하는 복호화 장치.
  13. 제12 항에 있어서, 상기 암호화 모듈은 하드웨어 보안 모듈(Hardware Security Module; HSM)을 이용하는 보안 저장소를 포함하도록 구현되고, 상기 제어부는 상기 보안 저장소 내의 컨트롤러 코어 형태로 구현되는 복호화 장치.
  14. 제1 항에 있어서,
    상기 암호화 모듈 및 상기 난독화 해제 모듈과 동일한 보안 영역에서 동작하도록 구현되어, 상기 암호문에 포함된 실행 가능한 명령어를 실행하도록 설정된 제어부를 더 포함하고,
    상기 제어부는 상기 난독화 모듈과 저장 공간 또는 데이터 버스가 논리적 또는 물리적으로 분리되도록 구현되어, 상기 보안 영역 내에서만 접근이 가능한 복호화 장치.
KR1020160114953A 2016-09-07 2016-09-07 난독화를 이용하는 암호문 복호화 KR101915808B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160114953A KR101915808B1 (ko) 2016-09-07 2016-09-07 난독화를 이용하는 암호문 복호화

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160114953A KR101915808B1 (ko) 2016-09-07 2016-09-07 난독화를 이용하는 암호문 복호화

Publications (2)

Publication Number Publication Date
KR20180027819A KR20180027819A (ko) 2018-03-15
KR101915808B1 true KR101915808B1 (ko) 2018-11-06

Family

ID=61659819

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160114953A KR101915808B1 (ko) 2016-09-07 2016-09-07 난독화를 이용하는 암호문 복호화

Country Status (1)

Country Link
KR (1) KR101915808B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005217842A (ja) 2004-01-30 2005-08-11 Fujitsu Ltd データ圧縮方法、データ復元方法及びそのプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005217842A (ja) 2004-01-30 2005-08-11 Fujitsu Ltd データ圧縮方法、データ復元方法及びそのプログラム

Also Published As

Publication number Publication date
KR20180027819A (ko) 2018-03-15

Similar Documents

Publication Publication Date Title
CN107667374B (zh) 用于存储器保密性、完整性和重放保护的技术
US9152805B2 (en) Security device
US10187200B1 (en) System and method for generating a multi-stage key for use in cryptographic operations
EP3192207B1 (en) Apparatus and method for data encryption
US11256478B2 (en) Method for securing a cryptographic process with SBOX against high-order side-channel attacks
WO2018104412A1 (en) Method of rsa signature or decryption protected using a homomorphic encryption
US9143317B2 (en) Protecting against white box attacks using column rotation
US8681975B2 (en) Encryption method and apparatus using composition of ciphers
CN103988461A (zh) 用于对数据进行解密的设备和方法
CN107453880B (zh) 一种云数据安全存储方法和系统
US20150215117A1 (en) White box encryption apparatus and method
KR20110139128A (ko) 전송 데이터를 보호하기 위한 방법 및 이 방법을 구현하기 위한 보안 시스템
CN110298186B (zh) 一种基于动态可重构密码芯片的无密钥数据加解密方法
CN110166236B (zh) 密钥处理方法、装置和系统及电子设备
US20150256343A1 (en) Securely Generating and Storing Passwords in a Computer System
EP2922235B1 (en) Security module for secure function execution on untrusted platform
EP2629225A1 (en) System, devices and methods for collaborative execution of a software application comprising at least one encrypted instruction
JP2010517449A (ja) 信頼できない受信者における秘密の保護
CN112035860A (zh) 文件加密方法、终端、装置、设备及介质
KR20170097509A (ko) 화이트 박스 암호화 기반의 연산 방법 및 그 방법을 수행하는 보안 단말
WO2019031026A1 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
CN104866784A (zh) 一种基于bios加密的安全硬盘、数据加密及解密方法
KR101458479B1 (ko) 세션상태정보의 암호화 및 복호화 방법
CN113890731A (zh) 一种密钥管理方法、装置、电子设备及存储介质
KR100480998B1 (ko) 디지털 하드웨어 시스템 보안 장치 및 방법

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