KR101458479B1 - 세션상태정보의 암호화 및 복호화 방법 - Google Patents

세션상태정보의 암호화 및 복호화 방법 Download PDF

Info

Publication number
KR101458479B1
KR101458479B1 KR1020120113337A KR20120113337A KR101458479B1 KR 101458479 B1 KR101458479 B1 KR 101458479B1 KR 1020120113337 A KR1020120113337 A KR 1020120113337A KR 20120113337 A KR20120113337 A KR 20120113337A KR 101458479 B1 KR101458479 B1 KR 101458479B1
Authority
KR
South Korea
Prior art keywords
session
state information
session state
counter
value
Prior art date
Application number
KR1020120113337A
Other languages
English (en)
Other versions
KR20140047291A (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 KR1020120113337A priority Critical patent/KR101458479B1/ko
Priority to JP2013138282A priority patent/JP2014081613A/ja
Priority to US13/958,543 priority patent/US20140108818A1/en
Publication of KR20140047291A publication Critical patent/KR20140047291A/ko
Application granted granted Critical
Publication of KR101458479B1 publication Critical patent/KR101458479B1/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/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect

Landscapes

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

Abstract

본 발명은 컴퓨터에서 정보 보호용 소프트웨어 암호제품이 암호연산을 하는 동안 레지스터 또는 램(RAM)과 같은 휘발성 메모리에 상주하는 세션상태정보를 편리하면서도 안전하게 암호화 및 복호화하도록 하는 방법을 개시한다. 개시된 암호화 방법은 암호화하고자 하는 세션상태정보에 대응하는 암호세션의 아이디 및 암호세션에 대한 세션 소멸 카운터의 값을 근거로 암호화하고자 하는 세션상태정보에 대응되는 카운터의 값을 계산하고, 계산된 카운터의 값 및 기설정된 키를 근거로 암호화하고자 하는 세션상태정보를 암호화한다. 개시된 복호화 방법은 메모리에서 복호화하고자 하는 세션상태정보를 읽어내고, 읽어낸 복호화하고자 하는 세션상태정보에 대응되는 카운터의 값을 계산하되 복호화하고자 하는 세션상태정보에 대응하는 암호세션의 아이디 및 암호세션에 대한 세션 소멸 카운터의 값을 근거로 카운터의 값을 계산한 후에 계산된 카운터의 값 및 기설정된 키를 근거로 복호화하고자 하는 세션상태정보를 복호화한다. 휘발성 메모리에 상주하는 세션상태정보를 안전하게 저장할 수 있으므로, 프로그램이 실행되는 동안 휘발성 메모리에 상주되는 암호세션상태 비밀정보를 해킹하는 것에 대한 어려움을 높인다. 따라서, 컴퓨터에서 실행되는 소프트웨어 방식의 정보 보호 제품들의 키, 인증정보 등 비밀정보에 대한 안전성을 높이는 효과를 가진다.

Description

세션상태정보의 암호화 및 복호화 방법{Method of encrypting and decrypting the data of the session state}
본 발명은 세션상태정보의 암호화 및 복호화 방법에 관한 것으로, 보다 상세하게는 암호제품이 지원하는 다수의 세션의 세션상태정보를 안전하게 암·복호화하는 방법에 관한 것이다.
개인정보 보호, 금융정보 보호, 공공기관의 정보통신 보호 등을 위해 컴퓨터에서 수행하는 정보 보호 제품들이 널리 사용되고 있다.
이러한 정보 보호 제품들은 소프트웨어로서 프로그램 난독화, 안전한 키 저장, 무결성 확인 등의 보호대책이 채택되고 있다.
안전한 비밀정보 저장에 속하는 기술분야로서, 비밀정보가 하드디스크, USB 또는 보안토큰 등에 장기간 저장되는 경우, 및 프로그램이 동작하는 동안 비밀정보가 암호연산을 위해 레지스터 혹은 RAM 등의 휘발성 메모리에 상주되는 경우 등이 있다.
일반적으로, 암호연산을 위해 레지스터 혹은 RAM 등의 휘발성 메모리에 상주되는 비밀정보는 평문으로 존재하는 제품이 많다.
더구나 암호제품이 다수의 암호세션을 지원하는 경우, 많은 세션상태정보가 휘발성 메모리에 평문으로 상주하는 경우가 많다. 이 경우, 휘발성 메모리 분석을 실행하는 악성 프로그램에 의해 비밀정보는 쉽게 해킹될 수 있다. 암호연산에 필요한 비밀정보가 노출됨으로써 정보 보호 제품이 보호하고자 하는 민감한 정보들이 노출될 취약성을 가지게 된다.
휘발성 메모리에 상주하는 세션상태정보를 키로 암호화하는 경우도 있다. 이 경우는 비밀정보가 휘발성 메모리에 평문으로 존재하는 경우에 비해 세션상태정보를 획득하는 것이 어렵다.
그러나, 세션상태정보를 항상 같은 키와 초기값으로 암호화하게 되면 암호문에 대한 취약성이 존재하게 된다. 그에 따라, 세션상태정보를 암호세션마다 다른 키와 초기값으로 암호화할 수 있는데, 이 경우에는 많은 세션에 따른 키 또는 초기값 관리가 복잡하다.
이와 같이 개인정보 보호, 금융정보 보호, 공공기관의 정보통신 보호 등에 적용되는 정보 보호 제품들은 메모리 분석공격으로부터 방어하기 위해, 레지스터 또는 RAM과 같은 휘발성 메모리에 상주하는 비밀정보의 안전한 저장이 필요하다.
또한, 암호화 프로그램이 다수의 암호세션을 지원하는 경우 많은 세션상태정보를 휘발성 메모리에 상주시키게 된다. 이때, 세션상태정보를 안전하게 보호하기 위해 암호화를 해야 한다. 일반적으로, 암호세션은 많으며 무작위로 생성되고 소멸되어 세션상태정보를 안전하게 암호화하는데 어려움이 존재한다.
대한민국 공개특허공보 10-2010-0099871호(데이터 보호를 위한 메모리, 이를 포함하는 메모리 시스템 및 이의 동작 방법)에는 암호키 또는 데이터가 외부로 노출되는 것을 방지할 수 있는 방안이 제시되었다. 그 대한민국 공개특허공보 10-2010-0099871호는 메모리가 암호화 또는 복호화 동작을 수행함에 있어서 사용자로부터 직접 암호키를 입력받아 사용자가 알고 있는 영역에 저장한다. 그리고, 메모리의 특정 영역 또는 어드레스별로 서로 다른 암호키를 적용하도록 선택함으로써 외부의 공격 등에 따라 메모리의 데이터 또는 암호키가 노출되는 것을 방지할 수 있고, 신뢰성 있는 메모리 데이터의 암호화 또는 복호화 동작을 수행할 수 있다.
그러나, 상기의 대한민국 공개특허공보 10-2010-0099871호는 메모리에 저장되는 데이터 또는 암호키가 노출되는 것을 방지할 수 있으나, N개의 메모리에 저장되는 데이터 또는 암호키를 보호하기 위해 N개의 키가 필요하여 키관리에 어려움이 있고, 같은 메모리에 저장되는 데이터가 같으면 항상 같은 암호문이 생성되어 취약성이 존재한다.
본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로, 컴퓨터에서 정보 보호용 소프트웨어 암호제품이 암호연산을 하는 동안 레지스터 또는 램(RAM)과 같은 휘발성 메모리에 상주하는 세션상태정보를 편리하면서도 안전하게 암호화 및 복호화하도록 하는 방법을 제공함에 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명의 바람직한 실시양태에 따른 세션상태정보의 암호화 방법은, 암호화하고자 하는 세션상태정보에 대응하는 암호세션의 아이디 및 상기 암호세션에 대한 세션 소멸 카운터의 값을 근거로, 상기 암호화하고자 하는 세션상태정보에 대응되는 카운터의 값을 계산하는 단계; 및 상기 카운터의 값을 계산하는 단계에서 계산된 상기 카운터의 값 및 기설정된 키를 근거로 상기 암호화하고자 하는 세션상태정보를 암호화하는 단계;를 포함한다.
상기 암호화하고자 하는 세션상태정보는 평문의 세션상태정보이다.
상기 카운터의 값을 계산하는 단계는 블록 암호 알고리즘의 CTR운용모드에서 사용되는 운용모드 카운터를 이용하여 상기 카운터의 값을 계산하되, 상기 카운터의 값은 (i-1)*T + n*Pi*T로 계산한다. 여기서, 상기 i은 상기 암호화하고자 하는 세션상태정보에 대응하는 암호세션의 ID(1≤i≤n)이고, 상기 T는 M/m 이고, 상기 M은 상기 세션상태정보의 비트 크기이고, 상기 m은 상기 블록 암호 알고리즘의 평문 비트 크기이고, 상기 n은 상기 암호세션의 최대 개수이고, 상기 Pi는 상기 암호화하고자 하는 세션상태정보에 대응하는 암호세션의 세션 소멸 카운터의 값이다.
상기 세션 소멸 카운터의 값은 상기 암호화하고자 하는 세션상태정보를 암호화할 때마다 1 증가하고, 상기 세션 소멸 카운터의 값은 메모리에 저장된다.
상기 암호화하는 단계에 의해 상기 암호화하고자 하는 세션상태정보가 암호화되면 상기 암호화된 세션상태정보에 대응하는 암호세션의 세션 플래그의 값을 1로 두고, 상기 세션 플래그의 값은 메모리에 저장된다.
상기 세션 플래그의 값이 1이면 상기 암호화하고자 하는 세션상태정보에 대응하는 암호세션의 세션 소멸 카운터의 값을 1 증가시키고, 상기 세션 소멸 카운터의 값은 상기 메모리에 저장된다.
바람직하게, 상기 암호화하는 단계에 의해 암호화된 세션상태정보를 메모리에 저장하는 단계;를 추가로 포함하여도 된다.
한편, 본 발명의 바람직한 실시양태에 따른 세션상태정보의 복호화 방법은, 메모리에서 복호화하고자 하는 세션상태정보를 읽어내는 단계; 상기 읽어내는 단계에서 읽어낸 상기 복호화하고자 하는 세션상태정보에 대응되는 카운터의 값을 계산하되, 상기 복호화하고자 하는 세션상태정보에 대응하는 암호세션의 아이디 및 상기 암호세션에 대한 세션 소멸 카운터의 값을 근거로 상기 카운터의 값을 계산하는 단계; 및 상기 카운터의 값을 계산하는 단계에서 계산된 상기 카운터의 값 및 기설정된 키를 근거로 상기 복호화하고자 하는 세션상태정보를 복호화하는 단계;를 포함한다.
상기 복호화하는 단계는 블록 암호 알고리즘의 CTR운영모드에 기반하여 복호화를 수행한다.
상기 카운터의 값을 계산하는 단계는 블록 암호 알고리즘의 CTR운용모드에서 사용되는 운용모드 카운터를 이용하여 상기 카운터의 값을 계산하되, 상기 카운터의 값은 Ni = (i-1) *T + n*Pi*T 로 계산한다. 여기서, 상기 i는 상기 복호화하고자 하는 세션상태정보에 대응하는 암호세션의 ID(1≤i≤n)이고, 상기 T는 M/m 이고, 상기 M은 상기 복호화하고자 하는 세션상태정보의 비트 크기이고, 상기 m은 상기 블록 암호 알고리즘의 평문 비트 크기이고, 상기 n은 상기 암호세션의 최대 개수이고, 상기 Pi는 상기 복호화하고자 하는 세션상태정보에 대응하는 암호세션의 세션 소멸 카운터의 값이다.
이러한 구성의 본 발명에 따르면, CTR운영모드의 카운터 시작값을 세션ID에 대응시켜 세션상태정보에 대한 암·복호화를 수행한다. 기존에는 암호세션을 관리하기 위하여 세션ID 및 세션상태정보를 저장하였는데, 본 발명에서는 암호세션을 관리하기 위하여 세션ID, 세션상태정보, 세션 소멸 카운터, 및 세션 플래그를 저장한다. 본 발명의 방법을 사용하면 한 개의 암·복호키로 세션상태정보를 항상 다른 CTR운영모드 카운터 값으로 암·복호화되는 장점이 있다.
이와 같은 본 발명에 의하면, 휘발성 메모리에 상주하는 세션상태정보를 안전하게 저장할 수 있으므로, 프로그램이 실행되는 동안 휘발성 메모리에 상주되는 암호세션상태 비밀정보를 해킹하는 것에 대한 어려움을 높인다.
그리고, 휘발성 메모리에 상주되는 암호세션 상태정보는 세션의 순서없이 빈번하게 생성되거나 소멸되어도, 한 개의 키를 사용할 수 있기 때문에 키관리도 편리하고, 같은 평문에 대하여 항상 다른 암호문을 생성할 수 있기 때문에 안전성을 높일 수 있다.
따라서, 컴퓨터에서 실행되는 소프트웨어 방식의 정보 보호 제품들의 키, 인증정보 등 비밀정보에 대한 안전성을 높이는 효과를 가진다.
도 1은 본 발명의 실시예에 따라 암호제품이 암호세션 i에서 암호연산을 끝내고 세션상태정보를 휘발성 메모리에 상주시키기 위하여 암호화하는 과정을 나타내는 도면이다.
도 2는 본 발명의 실시예에 따른 세션상태정보의 암호화 방법을 설명하기 위한 플로우차트이다.
도 3은 본 발명의 실시예에 따라 암호제품이 암호세션 i에서 암호연산을 다시 시작하는 경우 휘발성 메모리에 상주된 암호화된 세션상태정보를 복호화하는 과정을 나타내는 도면이다.
도 4는 본 발명의 실시예에 따른 세션상태정보의 복호화 방법을 설명하기 위한 플로우차트이다.
본 발명에서는 안전한 암호 알고리즘을 사용한다는 가정하에서 CTR운영모드를 사용하여 순서없이 빈번하게 생성 및 소멸하는 다수 암호세션의 세션상태정보를 편리하고 안전하게 암·복호화하는 방법을 제시한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 따른 세션상태정보의 암호화 및 복호화 방법에 대하여 설명하면 다음과 같다. 본 발명의 상세한 설명에 앞서, 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니된다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
도 1은 본 발명의 실시예에 따라 암호제품이 암호세션 i에서 암호연산을 끝내고 세션상태정보를 휘발성 메모리에 상주시키기 위하여 암호화하는 과정을 나타내는 도면이다.
도 1에서, 참조부호 10은 암호세션 i에서 평문인 암호화하고자 하는 세션상태정보를 의미한다.
참조부호 12는 n개의 암호세션 ID에 대응되는 세션 소멸 카운터, 세션 플래그가 휘발성 메모리에 저장되고 있음을 나타낸다. 암호세션이 소멸되어 암호화된 상태정보가 사라지더라도 암호세션에 해당되는 세션 소멸 카운터, 세션 플래그는 저장되어 있어야 하며, 암호세션이 다시 생성되어 새로운 상태정보를 암호화 할 때 사용된다. 다시 말해서, 암호세션 i은 닫힘에 의해 소멸되므로 암호화된 세션상태정보가 사라지더라도 암호세션 i에 해당하는 세션 소멸 카운터 Pi 및 세션 플래그 Fi에 대한 정보는 저장되어 있어야 한다. 암호세션 i가 다시 열려, 새로운 세션상태정보를 암호화 할 때 해당 암호세션 i에 대한 세션 소멸 카운터 Pi 및 세션 플래그 Fi 값이 사용되어야 하기 때문이다.
참조부호 14는 암호세션 ID가 1≤i≤n 인 세션상태정보에 대응되는 운영모드 카운터 Ni, 세션 소멸 카운터 Pi, 및 세션 플래그 Fi를 나타낸다. 여기서, 운영모드 카운터는 저장되지 않고 계산에 의해 유도된다. 즉, 운영모드 카운터 Ni = (i-1)*T + n*Pi*T(Ni는 m/2 비트 카운터임)"로 계산된다. m은 블록 암호 알고리즘의 평문 비트 크기이다. 세션 소멸 카운터 Pi 는 세션이 소멸된 횟수를 의미하고, 세션 플래그 Fi는 세션상태정보가 암호화되어 있을 경우에는 "1"를 나타내며, 그 세션 소멸 카운터 Pi 및 세션 플래그 Fi의 값은 휘발성 메모리에 저장된다. 상기 운용모드 카운터 Ni의 값을 계산해 내는 식에서, i은 암호화하고자 하는 세션상태정보에 대응하는 암호세션의 ID(1≤i≤n)이고, T는 M/m 이다. M은 세션상태정보의 비트 크기이고, m은 블록 암호 알고리즘의 평문 비트 크기이다. n은 암호제품이 지원하는 최대 세션 수로서 암호세션의 최대 개수이고, Pi는 암호화하고자 하는 세션상태정보에 대응하는 암호세션 i의 세션 소멸 카운터의 값으로 이해하면 된다. 상기 세션 소멸 카운터의 값은 암호화하고자 하는 세션상태정보를 암호화 할 때마다 즉, 세션이 소멸되었다가 다시 그 세션이 사용될 때마다 1 증가하고, 상기 세션 소멸 카운터의 값은 휘발성 메모리(도시 생략)에 저장된다.
운영모드 카운터 Ni는 암호화기(18)에서 암호화할 때 CTR(CounTeR) 운영모드에서 카운터 값으로 사용된다. 세션 소멸 카운터 Pi는 암호세션 i가 닫히는 횟수에 따라 1씩 증가한다.
키(16)는 암호화기(18)의 암호화에 사용되는 키(Key; K)이다. 여기서, 키(16)는 암호화키 또는 비밀키라고도 명칭할 수 있으며, 미리 설정된다. 예를 들어, 키(16)는 사용자가 입력할 수도 있고 메모리에 미리 저장되어 있는 것으로 하여도 된다.
암호화기(18)는 블록 암호 알고리즘의 CTR운영모드에 기반하여 암호화를 행한다. 암호화기(18)는 암호화하고자 하는 세션상태정보(10)를 키(16)와 참조부호 14의 운영모드 카운터 Ni에 의해 암호화한다. 여기서, 암호화하고자 하는 세션상태정보(10)는 평문의 세션상태정보이고, 평문 사이즈 m 마다 운영모드 카운터 Ni는 1씩 증가한다. 이와 같이, 본 발명에서는 항상 다른 CTR운용모드의 카운터 Ni의 값을 추가로 이용하게 되므로, 종래의 문제점인 암호문에 대한 취약성을 해소시켜 줄 뿐만 아니라 암호화 과정에서의 키 또는 초기값 관리가 수월해진다. 다시 말해서, 본 발명에서는 암호화할 때마다 항상 다른 CTR운용모드의 카운터 Ni의 값을 사용하므로 종래 항상 같은 키와 초기값으로 암호화할 때의 암호문에 대한 취약성을 해소시킨다. 그리고, 종래에는 세션상태정보를 암호세션마다 다른 키와 초기값으로 암호화할 수 있었다. 이 경우에는 많은 세션에 따른 키 또는 초기값 관리가 복잡하였으나, 본 발명은 하나의 키(16)를 사용하므로 매우 간편하다.
참조부호 20은 암호세션 ID가 1≤i≤n 인 암호화된 세션상태정보를 의미한다. 여기서, i는 암호화하고자 하는 또는 암호화된 세션상태정보에 대응되는 암호세션 ID이다.
참조부호 22는 휘발성 메모리에 암호화된 세션상태정보들을 저장하고 있는 것을 나타낸다. 여기서, n은 암호제품이 지원하는 최대 세션 수를 나타내고, 세션ID는 해당 암호세션을 식별하는 번호이며 최대 n개가 있으며, 세션상태정보 사이즈는 mT 비트이다. 여기서, m은 암호화기(18)의 암호 알고리즘에서 사용하는 평문 사이즈를 나타낸다.
도 2는 본 발명의 실시예에 따른 세션상태정보의 암호화 방법을 설명하기 위한 플로우차트이다.
암호세션 i 에서 암호연산 후 다른 암호세션으로 이동하기 전에 해당 암호세션 i의 세션상태정보를 휘발성 메모리에 암호화하여 저장해야 한다. 이하에서는 이때의 암호화 과정을 설명한다.
여기서, 암호세션 i에서 다른 암호세션으로 이동하기 전의 해당 암호세션 i의 세션상태정보는 평문의 세션상태정보이다.
암호화하기 전에, 세션 소멸 카운터의 값 Pi = 0(1≤i≤n), 세션 플래그 Fi = 0(1≤i≤n) 로 초기화되어 있는 것으로 가정한다.
일단, 암호화기(18)는 암호화하고자 하는 세션상태정보(10) 즉, 암호세션 i 에서 암호연산 후 다른 암호세션으로 이동하기 전의 세션상태정보를 입력받는다(S10). 이때, 세션 플래그 Fi의 값이 "1"이면 세션 소멸 카운터 Pi는 자신의 현재의 값을 "1"증가시킨다.
이어, 그 암호화하고자 하는 세션상태정보에 대응되는 운영모드 카운터 Ni의 값을 계산해 낸다. 즉, 운영모드 카운터는 Ni = (i-1)*T + n*Pi*T 의 계산식에 의해 해당 운영모드 카운터의 값을 계산해 낸다(S20). 여기서, i는 암호화하고자 하는 세션상태정보에 대응하는 암호세션의 ID(1≤i≤n)이고, T는 M/m 이다. M은 세션상태정보의 비트 크기이고, m은 블록 암호 알고리즘의 평문 비트 크기이다. n은 암호제품이 지원하는 최대 세션 수로서 암호세션의 최대 개수이고, Pi는 암호화하고자 하는 세션상태정보에 대응하는 암호세션의 세션 소멸 카운터의 값이다.
이후, 암호화기(18)는 블록 암호 알고리즘의 CTR운영모드에 기반하여, 그 암호화하고자 하는 세션상태정보(10)를 기설정된 키(16) 및 계산된 운용모드 카운터의 값을 기초로 암호화한다(S30).
이와 같이 하여 세션상태정보가 암호화되면 세션 플래그 F는 자신의 현재의 값을 계속 "1"로 두고(S40), 암호화기(18)에 의해 암호화된 세션상태정보(20)가 생성된다(S50).
그리고 나서, 암호화기(18)는 해당 암호세션 i에 대해 최종적으로 암호화된 세션상태정보(20)를 휘발성 메모리에 상주시킨다(S60).
상술한 도 1 및 도 2 설명에서, 운영모드 카운터의 값 계산, 세션 플래그의 값 조정, 및 세션 소멸 카운터의 값 조정은 암호화기(18) 또는 별도의 제어부(도시 생략)에서 행하는 것으로 할 수 있다.
상술한 본 발명의 실시예의 암호화 방법에 의하면, 기설정된 키(16)(즉, 암호화할 때 사용되는 키) 및 항상 다른 CTR암호운영모드 카운터 값으로 세션상태정보를 암호화할 수 있게 된다.
도 3은 본 발명의 실시예에 따라 암호제품이 암호세션 i에서 암호연산을 다시 시작하는 경우 휘발성 메모리에 상주된 암호화된 세션상태정보를 복호화하는 과정을 나타내는 도면이다.
참조부호 30은 암호세션 i에서 암호연산을 다시 시작하는 경우 암호화된 세션상태정보(40)를 복호화한 것을 의미한다. 즉, 참조부호 30은 복호화된 세션상태정보를 의미한다.
참조부호 32는 n개의 암호세션 ID에 대응되는 세션 소멸 카운터, 세션 플래그가 휘발성 메모리에 저장되고 있음을 나타낸다.
참조부호 34는 암호세션 ID가 1≤i≤n 인 세션상태정보에 대응되는 운영모드 카운터 Ni, 세션 소멸 카운터 Pi, 및 세션 플래그 Fi를 나타낸다. 여기서, 운영모드 카운터 Ni는 저장되지 않고 계산에 의해 유도된다. 즉,, 운영모드 카운터 Ni는 “Ni = (i-1)*T + n*Pi*T(N은 m/2 비트 카운터임)"로 계산된다. 세션 플래그 Fi는 세션상태정보가 암호화되어 있을 경우에는 "1"를 나타낸다. 세션 소멸 카운터 Pi 및 세션 플래그 Fi의 값은 휘발성 메모리에 저장된다. 상기 운용모드 카운터 Ni의 값을 계산해 내는 식에서, i는 복호화하고자 하는 세션상태정보에 대응하는 암호세션의 ID(1≤i≤n)이고, T는 M/m 이다. M은 세션상태정보의 비트 크기이고, m은 블록 암호 알고리즘의 평문 비트 크기이다. n은 암호제품이 지원하는 최대 세션 수로서 암호세션의 최대 개수이고, Pi는 복호화하고자 하는 세션상태정보에 대응하는 암호세션의 세션 소멸 카운터의 값으로 이해하면 된다.
운영모드 카운터 Ni는 복호화기(42)에서 복호화할 때 CTR(CounTeR) 운영모드에서 카운터 값으로 사용된다.
키(36)는 복호화기(42)의 복호화에 사용되는 키(Key; K)이다. 여기서, 키(36)는 복호화키 또는 비밀키라고도 명칭할 수 있고, 미리 설정된다. 예를 들어, 키(36)는 사용자가 입력할 수도 있고 메모리에 미리 저장되어 있는 것으로 하여도 된다. 본 발명의 실시예에서는 복호화할 때 사용되는 키(36)와 암호화할 때 사용되는 키(16)를 동일한 것으로 한다. 이와 같이 복호화할 때 사용되는 키(36)와 암호화할 때 사용되는 키(16)를 동일한 것으로 하게 되면 한 개의 암·복호화 키 및 항상 다른 CTR암호운영모드 카운터 값으로 세션상태정보를 암·복호화할 수 있게 된다.
참조부호 38은 휘발성 메모리에 암호화된 세션상태정보들을 저장하고 있는 것을 나타낸다.
참조부호 40은 암호세션ID가 1≤i≤n 인 암호화된 세션상태정보를 나타낸다.
복호화기(42)는 블록 암호 알고리즘의 CTR 운영모드에 기반하여 복호화를 수행한다. 복호화기(42)는 암호화된 세션상태정보(40)를 키(36)와 운영모드 카운터 Ni에 의해 복호화한다. 여기서, 평문 사이즈 m 마다 운영모드 카운터 Ni는 1씩 증가한다. 이와 같이, 본 발명에서는 항상 다른 CTR운용모드의 카운터 Ni의 값을 추가로 이용하게 되므로, 복호화 과정에서의 키 또는 초기값 관리가 수월해진다. 다시 말해서, 본 발명에서는 복호화할 때마다 항상 다른 CTR운용모드의 카운터 Ni의 값을 사용하므로 종래 항상 같은 키와 초기값으로 복호화하는 경우에 비해 민감 정보들의 노출 위험성이 줄어든다. 그리고, 종래에는 세션상태정보를 암호세션마다 다른 키와 초기값으로 복호화할 수 있었다. 이 경우에는 많은 세션에 따른 키 또는 초기값 관리가 복잡하였으나, 본 발명은 하나의 키를 사용하므로 매우 간편하다.
도 4는 본 발명의 실시예에 따른 세션상태정보의 복호화 방법을 설명하기 위한 플로우차트이다.
암호세션 i를 호출하기 위해 휘발성 메모리에 상주하고 있는 해당 암호세션 i의 세션상태정보를 복호화해야 한다. 이하에서는 이때의 복호화 과정을 설명한다.
복호화기(42)는 휘발성 메모리에 상주하고 있는 암호세션중에서 복호화하고자 하는 암호세션 i의 암호화된 세션상태정보(40)를 호출한다(S100).
이어, 그 복호화하고자 하는 암호화된 세션상태정보(40)에 대응되는 운영모드 카운터 Ni의 값을 계산해 낸다. 즉, 운영모드 카운터는 "Ni = (i-1) *T + n*Pi*T"의 계산식에 의해 해당 운영모드 카운터의 값을 계산해 낸다(S110). 여기서, i은 복호화하고자 하는 세션상태정보에 대응하는 암호세션의 ID(1≤i≤n)이고, T는 M/m 이다. M은 세션상태정보의 비트 크기이고, m은 블록 암호 알고리즘의 평문 비트 크기이다. n은 암호제품이 지원하는 최대 세션 수로서 암호세션의 최대 개수이고, Pi는 복호화하고자 하는 세션상태정보에 대응하는 암호세션의 세션 소멸 카운터의 값이다.
이후, 복호화기(42)는 블록 암호 알고리즘의 CTR운영모드에 기반하여, 그 복호화하고자 하는 암호화된 세션상태정보(40)를 기설정된 키(36) 및 계산된 운용모드 카운터의 값을 기초로 복호화한다(S120).
이와 같이 암호화된 세션상태정보가 복호화되면 복호화기(42)에 의해 복호화된 세션상태정보가 생성된다(S130).
그리고 나서, 복호화기(42)는 해당 암호세션 i에 대해 최종적으로 복호화된 세션상태정보(30)를 출력한다(S140).
상술한 도 3 및 도 4 설명에서, 운영모드 카운터의 값 계산, 세션 플래그의 값 조정, 및 세션 소멸 카운터의 값 조정은 복호화기(42) 또는 별도의 제어부(도시 생략)에서 행하는 것으로 할 수 있다.
상술한 본 발명의 실시예의 복호화 방법에 의하면, 기설정된 키(36)(즉, 복호화할 때 사용되는 키) 및 항상 다른 CTR암호운영모드 카운터 값으로 세션상태정보를 복호화할 수 있게 된다.
상술한 바와 같은 본 발명의 암호화 및 복호화 방법을 따르게 되면, CTR 암호 운영모드의 카운터 시작값을 세션ID에 대응시켜 세션상태정보의 암·복호화를 수행한다. 한 개의 암·복호키 및 항상 다른 CTR 암호운영모드 카운터 값으로 세션상태정보를 암·복호화하므로, 휘발성 메모리에 상주하는 세션상태정보를 안전하게 저장할 수 있다. 이로 인해, 프로그램이 실행되는 동안 휘발성 메모리에 상주되는 암호세션상태 비밀정보를 해킹하는 것에 대한 어려움을 높인다. 따라서, 컴퓨터에서 실행되는 소프트웨어 방식의 정보보호 제품들의 키, 인증정보 등 비밀정보에 대한 안전성을 높이는 효과를 가진다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플라피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
한편, 본 발명은 상술한 실시예로만 한정되는 것이 아니라 본 발명의 요지를 벗어나지 않는 범위내에서 수정 및 변형하여 실시할 수 있고, 그러한 수정 및 변형이 가해진 기술사상 역시 이하의 특허청구범위에 속하는 것으로 보아야 한다.
10 : 암호화하고자 하는 세션상태정보
16, 36 : 키
18 : 암호화기
20, 40 : 암호화된 세션상태정보
30 : 복호화된 세션상태정보
42 : 복호화기

Claims (10)

  1. 운영모드 카운터가, 암호화하고자 하는 세션상태정보에 대응하는 암호세션의 아이디 및 상기 암호세션에 대한 세션 소멸 카운터의 값을 근거로, 상기 암호화하고자 하는 세션상태정보에 대응되는 카운터 값을 계산하는 단계; 및
    암호화기가, 상기 카운터 값을 계산하는 단계에서 계산된 상기 카운터 값 및 기설정된 키를 근거로 상기 암호화하고자 하는 세션상태정보를 암호화하는 단계;를 포함하고,
    상기 카운터 값을 계산하는 단계는 블록 암호 알고리즘의 CTR운용모드에서 사용되는 운용모드 카운터를 이용하여 상기 카운터 값을 계산하되,
    상기 카운터 값은 (i-1)*T + n*Pi*T로 계산하는 것을 특징으로 하는 세션상태정보의 암호화 방법.
    여기서, 상기 i은 상기 암호화하고자 하는 세션상태정보에 대응하는 암호세션의 ID(1≤i≤n)이고, 상기 T는 M/m 이고, 상기 M은 상기 세션상태정보의 비트 크기이고, 상기 m은 상기 블록 암호 알고리즘의 평문 비트 크기이고, 상기 n은 상기 암호세션의 최대 개수이고, 상기 Pi는 상기 암호화하고자 하는 세션상태정보에 대응하는 암호세션의 세션 소멸 카운터의 값이다.
  2. 청구항 1에 있어서,
    상기 암호화하고자 하는 세션상태정보는 평문의 세션상태정보인 것을 특징으로 하는 세션상태정보의 암호화 방법.
  3. 삭제
  4. 청구항 1에 있어서,
    상기 세션 소멸 카운터의 값은 상기 암호화하고자 하는 세션상태정보를 암호화할 때마다 1 증가하고, 상기 세션 소멸 카운터의 값은 메모리에 저장되는 것을 특징으로 하는 세션상태정보의 암호화 방법.
  5. 청구항 1에 있어서,
    상기 암호화하는 단계에 의해 상기 암호화하고자 하는 세션상태정보가 암호화되면 상기 암호화된 세션상태정보에 대응하는 암호세션의 세션 플래그의 값을 1로 두고, 상기 세션 플래그의 값은 메모리에 저장되는 것을 특징으로 세션상태정보의 암호화 방법.
  6. 청구항 5에 있어서,
    상기 세션 플래그의 값이 1이면 상기 암호화하고자 하는 세션상태정보에 대응하는 암호세션의 세션 소멸 카운터의 값을 1 증가시키고, 상기 세션 소멸 카운터의 값은 상기 메모리에 저장되는 것을 특징으로 하는 세션상태정보의 암호화 방법.
  7. 청구항 1에 있어서,
    상기 암호화기가, 상기 암호화하는 단계에 의해 암호화된 세션상태정보를 메모리에 저장하는 단계;를 추가로 포함하는 것을 특징으로 하는 세션상태정보의 암호화 방법.
  8. 복호화기가, 메모리에서 복호화하고자 하는 세션상태정보를 읽어내는 단계;
    운영모드 카운터가, 상기 읽어내는 단계에서 읽어낸 상기 복호화하고자 하는 세션상태정보에 대응되는 카운터 값을 계산하되, 상기 복호화하고자 하는 세션상태정보에 대응하는 암호세션의 아이디 및 상기 암호세션에 대한 세션 소멸 카운터의 값을 근거로 상기 카운터 값을 계산하는 단계; 및
    상기 복호화기가, 상기 카운터 값을 계산하는 단계에서 계산된 상기 카운터 값 및 기설정된 키를 근거로 상기 복호화하고자 하는 세션상태정보를 복호화하는 단계;를 포함하고,
    상기 카운터 값을 계산하는 단계는 블록 암호 알고리즘의 CTR운용모드에서 사용되는 운용모드 카운터를 이용하여 상기 카운터 값을 계산하되,
    상기 카운터 값은 Ni = (i-1) *T + n*Pi*T 로 계산하는 것을 특징으로 하는 세션상태정보의 복호화 방법.
    여기서, 상기 i는 상기 복호화하고자 하는 세션상태정보에 대응하는 암호세션의 ID(1≤i≤n)이고, 상기 T는 M/m 이고, 상기 M은 상기 복호화하고자 하는 세션상태정보의 비트 크기이고, 상기 m은 상기 블록 암호 알고리즘의 평문 비트 크기이고, 상기 n은 상기 암호세션의 최대 개수이고, 상기 Pi는 상기 복호화하고자 하는 세션상태정보에 대응하는 암호세션의 세션 소멸 카운터의 값이다.
  9. 청구항 8에 있어서,
    상기 복호화하는 단계는 블록 암호 알고리즘의 CTR운영모드에 기반하여 복호화를 수행하는 것을 특징으로 하는 세션상태정보의 복호화 방법.
  10. 삭제
KR1020120113337A 2012-10-12 2012-10-12 세션상태정보의 암호화 및 복호화 방법 KR101458479B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020120113337A KR101458479B1 (ko) 2012-10-12 2012-10-12 세션상태정보의 암호화 및 복호화 방법
JP2013138282A JP2014081613A (ja) 2012-10-12 2013-07-01 セッション状態情報の暗号化および復号化方法
US13/958,543 US20140108818A1 (en) 2012-10-12 2013-08-03 Method of encrypting and decrypting session state information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120113337A KR101458479B1 (ko) 2012-10-12 2012-10-12 세션상태정보의 암호화 및 복호화 방법

Publications (2)

Publication Number Publication Date
KR20140047291A KR20140047291A (ko) 2014-04-22
KR101458479B1 true KR101458479B1 (ko) 2014-11-07

Family

ID=50476551

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120113337A KR101458479B1 (ko) 2012-10-12 2012-10-12 세션상태정보의 암호화 및 복호화 방법

Country Status (3)

Country Link
US (1) US20140108818A1 (ko)
JP (1) JP2014081613A (ko)
KR (1) KR101458479B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2531770A (en) * 2014-10-30 2016-05-04 Ibm Confidential Extracting System Internal Data
US10726162B2 (en) * 2014-12-19 2020-07-28 Intel Corporation Security plugin for a system-on-a-chip platform
US20180189842A1 (en) * 2016-12-30 2018-07-05 Telefonica Digital Espana, S.L.U. Method for determining monetary user value of web activity of an individual user, a user device, a network element and computer program products
CN107958141A (zh) * 2017-11-15 2018-04-24 广西师范大学 一种基于芯片id号的软件保护方法
CN110837634B (zh) * 2019-10-24 2023-10-27 杭州安存网络科技有限公司 基于硬件加密机的电子签章方法
CN110943834B (zh) * 2019-12-06 2023-02-28 歌尔科技有限公司 网络设备及其密码处理方法、控制装置和可读存储介质
US12013970B2 (en) 2022-05-16 2024-06-18 Bank Of America Corporation System and method for detecting and obfuscating confidential information in task logs

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006018685A (ja) 2004-07-02 2006-01-19 Ntt Docomo Inc マルチタスク実行システム
KR20090055994A (ko) * 2007-11-29 2009-06-03 주식회사 시큐트론 공정편차에 기반한 보안 시스템 및 방법
KR20100065012A (ko) * 2008-12-05 2010-06-15 한국전자통신연구원 이동단말에 대한 사용 제한 방법 및 이를 위한 이동단말
JP2011519235A (ja) * 2008-04-30 2011-06-30 聯發科技股▲ふん▼有限公司 トラフィック暗号化キーの派生方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7336783B2 (en) * 2003-01-24 2008-02-26 Samsung Electronics, C., Ltd. Cryptographic systems and methods supporting multiple modes
JP4375980B2 (ja) * 2003-03-11 2009-12-02 株式会社エヌ・ティ・ティ・ドコモ マルチタスク実行システム及びマルチタスク実行方法
US7472285B2 (en) * 2003-06-25 2008-12-30 Intel Corporation Apparatus and method for memory encryption with reduced decryption latency
US8094814B2 (en) * 2005-04-05 2012-01-10 Broadcom Corporation Method and apparatus for using counter-mode encryption to protect image data in frame buffer of a video compression system
JP2013153327A (ja) * 2012-01-25 2013-08-08 Toshiba Corp 記憶装置、ホスト装置および情報処理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006018685A (ja) 2004-07-02 2006-01-19 Ntt Docomo Inc マルチタスク実行システム
KR20090055994A (ko) * 2007-11-29 2009-06-03 주식회사 시큐트론 공정편차에 기반한 보안 시스템 및 방법
JP2011519235A (ja) * 2008-04-30 2011-06-30 聯發科技股▲ふん▼有限公司 トラフィック暗号化キーの派生方法
KR20100065012A (ko) * 2008-12-05 2010-06-15 한국전자통신연구원 이동단말에 대한 사용 제한 방법 및 이를 위한 이동단말

Also Published As

Publication number Publication date
US20140108818A1 (en) 2014-04-17
JP2014081613A (ja) 2014-05-08
KR20140047291A (ko) 2014-04-22

Similar Documents

Publication Publication Date Title
KR101458479B1 (ko) 세션상태정보의 암호화 및 복호화 방법
US20080260147A1 (en) Method and apparatus for encrypting message for maintaining message integrity, and method and apparatus for decrypting message for maintaining message integrity
KR101527329B1 (ko) 데이터 암호화 장치 및 방법
EP3035585B1 (en) S-box selection in white-box cryptographic implementation
JP2007013433A (ja) 暗号化データを送受信する方法及び情報処理システム
EP2922235B1 (en) Security module for secure function execution on untrusted platform
US20130136256A1 (en) Block encryption
KR102397579B1 (ko) 부채널 분석 방지를 위한 화이트박스 암호 방법 및 장치
EP2290871A2 (en) Encryption method and apparatus using composition of ciphers
US20150256343A1 (en) Securely Generating and Storing Passwords in a Computer System
KR20100120671A (ko) 스마트 카드의 보안
KR101269089B1 (ko) 자가암호화를 이용한 소프트웨어 변조방지 방법
EP2629225A1 (en) System, devices and methods for collaborative execution of a software application comprising at least one encrypted instruction
KR20170097509A (ko) 화이트 박스 암호화 기반의 연산 방법 및 그 방법을 수행하는 보안 단말
US9025765B2 (en) Data security
CN101539979B (zh) 一种电子文档控制保护方法和装置
KR101790948B1 (ko) Drm 서비스 제공 장치 및 방법, drm 서비스를 이용한 콘텐츠 재생 장치 및 방법
US20210143978A1 (en) Method to secure a software code performing accesses to look-up tables
Bansal et al. RSA encryption and decryption system
KR20210015403A (ko) 안티-인버전 함수를 이용한 화이트박스 암호 인코딩 장치 및 방법
JP4474267B2 (ja) 暗号処理装置
KR20110042419A (ko) 멀티미디어 환경에 적용 가능한 블록암호 운용방법
CN117811734B (zh) 业务源码加密存储与评估与鉴权方法
KR101915808B1 (ko) 난독화를 이용하는 암호문 복호화
JP4604523B2 (ja) データの移管方法およびデータの保管装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20170918

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181002

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190925

Year of fee payment: 6