KR101425224B1 - 펌웨어 업그레이드를 위해 펌웨어를 복호화하는 장치 및방법 - Google Patents

펌웨어 업그레이드를 위해 펌웨어를 복호화하는 장치 및방법 Download PDF

Info

Publication number
KR101425224B1
KR101425224B1 KR1020070117879A KR20070117879A KR101425224B1 KR 101425224 B1 KR101425224 B1 KR 101425224B1 KR 1020070117879 A KR1020070117879 A KR 1020070117879A KR 20070117879 A KR20070117879 A KR 20070117879A KR 101425224 B1 KR101425224 B1 KR 101425224B1
Authority
KR
South Korea
Prior art keywords
firmware
version
key
encrypted
cryptographic key
Prior art date
Application number
KR1020070117879A
Other languages
English (en)
Other versions
KR20090051475A (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 KR1020070117879A priority Critical patent/KR101425224B1/ko
Publication of KR20090051475A publication Critical patent/KR20090051475A/ko
Application granted granted Critical
Publication of KR101425224B1 publication Critical patent/KR101425224B1/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/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
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

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

Abstract

본 발명은 펌웨어의 불법적인 사용을 방지하기 위한 방법을 제안한다. 특히 본 발명은 펌웨어의 상위 버젼으로의 모든 업그레이드는 허용하면서도 다운그레이드는 방지하기 위한 방법을 제안한다. 이를 위해 본 발명에서는 펌웨어를 복호화하는 장치에서 특정 버젼의 암호키로 암호화된 펌웨어를 수신하면, 미리 가지고 있던 암호키에 일방향 함수를 적용함으로써 그 펌웨어 버젼에 해당하는 암호키를 생성한다. 그리고나서 그 장치는 생성된 암호키를 이용하여 그 펌웨어를 복호화함으로써 해당 펌웨어를 얻는다. 이렇게 함으로써, 버젼이 다른 암호키를 가지고도 해당 버젼의 펌웨어를 복호화할 수 있는 암호키를 획득할 수 있어 최신의 버젼으로의 업그레이드가 가능해지는 이점이 있다.
펌웨어(firmware), 업그레이드, 복호화

Description

펌웨어 업그레이드를 위해 펌웨어를 복호화하는 장치 및 방법{APPARATUS AND METHOD OF DECODING FIRMWARE FOR UPGRADING THE FIRMWARE}
본 발명은 펌웨어 복호화 방법에 관한 것으로, 특히 펌웨어의 불법적인 사용을 방지하기 위한 펌웨어 복호화 장치 및 방법에 관한 것이다.
현재 단말 제조사에서는 단말이 보다 복합적이고 다양한 기능을 제공할 수 있도록 펌웨어의 업그레이드를 지원하고 있다. 예를 들어, 환경이 변화하거나 새로운 기능들을 추가하고자 할 경우 펌웨어를 업그레이드함으로써 단말로 하여금 향상된 기능을 수행할 수 있도록 한다. 이와 같이 펌웨어의 업그레이드가 가능해짐에 따라 그에 따라 보안 위협도 증가하고 있다. 즉, 사용자에 의한 펌웨어의 해킹 가능성이 증가되고 있는 실정이다. 따라서, 제조사는 이에 대처하기 위해 기능이 향상된 신규 펌웨어를 배포하고 있다. 마이크로소프트(MicroSoft)의 윈도우 패치(Windows patch)도 이의 좋은 예이다.
그러나, 정보 통신의 발달로 인해 펌웨어의 불법 복제, 유통 증가 등에 따른 피해가 발생할 수 있다. 이와 같이 펌웨어의 변경이 가능해지면 불법적으로 변경된 펌웨어가 인터넷에 유포되어 단말을 사용하는 산업의 비즈니스 모델을 위협하기도 한다. 예를 들어, SIM(Subscriber Identity Module) 락(Lock) 기능이 활성화된 단말은 특정 통신업자의 SIM 카드를 장착한 경우에만 동작하는데, 그 SIM 락이 풀릴 경우에는 다른 사업자의 SIM 카드도 사용할 수 있게 되어 여러 법적 문제를 일으킬 수 있다.
그렇지만 현재 대부분 단말이 동일한 하드웨어를 가지는 경우에는 펌웨어를 제작한 국가, 언어, 사업자 등이 서로 다른 종류의 펌웨어를 적용할지라도 그 단말은 아무런 문제없이 동작이 가능하다. 따라서, 불법적인 펌웨어의 사용을 방지하기 위해 일부 펌웨어 다운로더(downloader)의 경우에는 펌웨어 내부의 특정 문자열(사업자 이름, 버젼 정보 등)을 체크한 후, 현재 버젼의 정보와 비교하여 다운로드를 방지하는 기능을 제공하기도 한다.
또한, 기존의 단말에서는 펌웨어의 업그레이드를 지원하면서도 펌웨어의 불법적인 변경을 방지하기 위한 기능을 구비하였다. 구체적으로, 제조사 또는 통신 사업자는 펌웨어의 업그레이드가 필요한 경우 일부 또는 전체를 암호화한 펌웨어를 단말로 제공하고, 단말 출시 시에는 키를 미리 내장시킨다. 따라서, 단말에서는 내장된 키를 이용하여 제공된 펌웨어를 복호화한다. 이때. 키 제공 방식은 크게 2가지로 구분되는데, 단말에서 모든 버젼의 펌웨어마다 같은 키를 사용하거나 버젼별로 다른 키를 사용하는 방식으로 구분된다. 만일 동일한 키를 사용할 경우에는 한번의 배포만으로 버젼에 상관없는 펌웨어의 복호화가 가능하다. 이에 반해 버젼별 다른 키를 사용하기 위해서는 다음 버젼을 위한 키를 펌웨어와 같이 미리 배포해야만 한다. 즉, 제조사 또는 통신 사업자는 i+1번째 키와 펌웨어를 i번째 키로 암호 화해서 단말에 배포한다.
하지만, 종래에는 특정 문자열을 비교하는 방식의 경우에는 특정 문자열만 일치하기만 하면 펌웨어의 다운로드가 가능하기 때문에 악의를 가진 사용자가 해당 문자열을 임의로 수정할 경우 원하는 펌웨어를 단말로 다운로드할 수 있는 문제점이 있다.
또한, 펌웨어 자체를 암호화한 방식에서 펌웨어 버젼에 상관없이 동일한 키를 사용할 경우에는 펌웨어 다운그레이드가 가능하게 된다. 특히 초기의 펌웨어 버젼이 불법으로 유포될 경우에는 단말의 악의적 사용이 발생할 가능성도 있다. 예를 들어, 제조사 입장에서는 초기의 펌웨어 버젼의 보안을 강화한 새로운 펌웨어를 배포한 상태일지라도 여전히 초기의 펌웨어 버젼이 유통된다면 해킹을 방지하고자 하는 문제를 해결할 수 없게 된다.
게다가 버젼별로 다른 키를 사용하는 경우일지라도 특정 버젼으로의 펌웨어 업그레이드를 하기 위해서는 그 특정 버젼의 펌웨어를 위한 키가 필요하다. 이 특정 버젼의 키는 이전 단계의 펌웨어와 함께 제공되기 때문에 그 특정 버젼 이전의 모든 중간 단계를 거쳐야만 획득이 가능하다. 예를 들어, 10번째 버젼 키는 9번째 버젼의 펌웨어와 함께 제공되기 때문에 현재 5번째 버젼 키를 가지고 있을 경우에는 6번째 버젼부터 9번째 버젼까지의 펌웨어의 순차적인 업그레이드(sequential upgrade)가 필수적이다. 이와 같이 버젼별 다른 키를 사용한 경우는 특정 버젼으로 업그레이드 하기 위해 중간 단계 버젼을 모두 거치는 불편함이 있다.
이에 따라 제조사가 정한 바의 펌웨어 업그레이드를 허용하면서 불법적인 펌웨어 또는 버젼이 낮은 펌웨어로의 다운그레이드를 방지하는 기술의 필요성이 대두되고 있다.
따라서, 본 발명은 펌웨어의 불법적인 사용을 방지하기 위한 펌웨어 복호화 장치 및 방법을 제공한다.
또한, 본 발명은 펌웨어의 상위 버젼으로의 모든 업그레이드는 가능하면서 불법 펌웨어 및 다운그레이드는 방지하기 위한 펌웨어 복호화 장치 및 방법을 제공한다.
또한, 본 발명은 펌웨어를 업그레이드하는데 필요한 펌웨어용 복호화키를 간편하게 제공할 수 있도록 하는 펌웨어 복호화 장치 및 방법을 제공한다.
상술한 바를 달성하기 위한 본 발명은, 펌웨어 복호화 장치에서 펌웨어 업그레이드를 위해 펌웨어를 복호화하는 방법에 있어서, 암호화된 펌웨어 수신 시 상기 암호화된 펌웨어의 버젼과 현재 보유하고 있는 펌웨어의 버젼 차이를 판단하는 과정과, 미리 저장해놓은 암호키에 일방향 함수를 상기 버젼 차이만큼 적용하여 상기 암호화된 펌웨어의 버젼과 동일한 버젼의 암호키를 생성하는 과정과, 상기 생성된 암호키를 이용하여 상기 암호화된 펌웨어를 복호화하는 과정을 포함함을 특징으로 한다.
또한 본 발명은 펌웨어 업그레이드를 위해 펌웨어를 복호화하는 장치에 있어서, 기준 펌웨어 및 기준 암호키를 저장하고, 새로운 암호키를 생성하기 위한 일방 향 함수를 저장하는 메모리와, 암호화된 펌웨어를 수신하는 수신부와, 상기 암호화된 펌웨어의 버젼과 상기 기준 펌웨어의 버젼 차이를 판단한 후, 상기 기준 암호키에 상기 일방향 함수를 상기 버젼 차이만큼 적용함으로써 상기 암호화된 펌웨어의 버젼과 동일한 버젼의 암호키를 생성하는 키 생성부와, 상기 생성된 암호키를 이용하여 상기 암호화된 펌웨어를 복호화하는 펌웨어 복호화부를 포함함을 특징으로 한다.
본 발명에 따르면, 단말에서 보유하고 있는 키를 일방향 함수에 적용함으로써 그 키 하나만으로도 펌웨어를 복호화하는데 필요한 새로운 키를 얻을 수 있어 키 저장 및 보호가 간편해지는 이점이 있다.
또한, 본 발명에 따르면 버젼별로 다른 키를 획득하지 않고도 하나의 키를 가지고 해당 버젼의 키를 획득할 수 있어 모든 펌웨어 업그레이드 단계를 거치지 않고도 최신의 버젼으로의 업그레이드가 가능해지는 이점이 있다.
또한, 본 발명에서는 일방향 함수를 사용함으로써 현재 보유하고 있는 펌웨어의 버젼보다 이전 버젼의 펌웨어는 복호화할 수 없도록 하여 펌웨어의 다운그레이드를 방지할 수 있게 된다.
이하 본 발명의 바람직한 실시 예들을 첨부한 도면을 참조하여 상세히 설명한다. 도면들 중 동일한 구성 요소들은 가능한 한 어느 곳에서든지 동일한 부호들로 나타내고 있음에 유의해야 한다. 또한 본 발명의 요지를 불필요하게 흐릴 수 있 는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
본 발명은 펌웨어의 불법적인 사용을 방지하기 위한 방법을 제안한다. 특히 본 발명은 펌웨어의 상위 버젼으로의 모든 업그레이드는 허용하면서도 다운그레이드는 방지하기 위한 방법을 제안한다. 이를 위해 본 발명에서는 펌웨어를 복호화하는 장치에서 특정 버젼의 암호키로 암호화된 펌웨어를 수신하면, 미리 가지고 있던 암호키에 일방향 함수를 적용함으로써 그 펌웨어 버젼에 해당하는 암호키를 생성한다. 그리고나서 그 장치는 생성된 암호키를 이용하여 그 펌웨어를 복호화함으로써 해당 펌웨어를 얻는다. 이렇게 함으로써, 버젼이 다른 암호키를 가지고도 해당 버젼의 펌웨어를 복호화할 수 있는 암호키를 획득할 수 있어 최신의 버젼으로의 업그레이드가 가능해지는 이점이 있다.
상기한 바와 같은 기능이 구현된 장치에서의 동작을 살펴보기 위해 도 1을 참조한다. 도 1은 본 발명의 실시 예에 따른 펌웨어 복호화 장치의 내부 블록 구성도이다.
도 1을 참조하면, 펌웨어를 복호화하는 장치는 크게 수신부(100), 키 생성부(110), 메모리(120) 및 펌웨어 복호화부(130)를 포함하여 구성된다.
먼저, 메모리(120)는 메모리(120)는 그 장치 출시 당시의 n번째 버젼의 펌웨어 및 그 버젼의 암호키 Kn을 저장하고 있다. 또한 메모리(120)는 원하는 버젼의 암호키를 생성하기 위한 일방향 함수(one-way function)를 저장하고 있다. 여기서, 일방향 함수란 출력값으로부터 입력값을 찾아내기가 확률적으로 불가능한 함수를 의미한다. 구체적으로, x가 주어지면 y= f(x)의 계산이 용이한 반면, y가 주어졌을 때 x를 구하기 위한 f(x)의 역함수를 구하는 것이 불가능한 함수 f(x)를 말한다. 이러한 일방향 함수의 대표적인 예로 SHA(Secure Hash Function)-1을 들 수 있다.
수신부(100)는 암호화된 새로운 펌웨어를 수신한다. 이 암호화된 새로운 펌웨어는 제조사 또는 통신 사업자에서 만들어 배포한 n+i번째 버젼의 펌웨어로서, 그 일부의 펌웨어 Xn +i를 암호키 Kn +i로 암호화된
Figure 112007082805341-pat00001
를 포함한다. 여기서,
Figure 112007082805341-pat00002
는 암호키 Kj를 이용하여 data를 암호화한 것을 의미한다.
키 생성부(110)는 수신부(100)로부터의 암호화된 펌웨어의 버젼을 파악한 후, 파악된 버젼에 맞는 암호키를 생성하는 역할을 한다. 버젼을 파악하기 위해 키 생성부(110)는 현재 보유하고 있는 펌웨어의 버젼과 암호화된 펌웨어의 버젼 차이를 구할 수 있다. 그리고나서 키 생성부(110)는 메모리(120)에 저장해놓은 암호키 Kn를 가져온 후, 일방향 함수에 그 버젼 차이만큼 대입함으로써 그 파악된 버젼에 맞는 새로운 암호키를 생성한다. 본 발명에서의 일방향 함수는 하기 수학식 1과 같이 표현된다.
Figure 112007082805341-pat00003
상기 수학식 1에서 j=1이라고 할 경우 1번째 버젼의 암호키 K1을 일방향 함수 f에 대입할 경우 2번째 버젼의 암호키 K2를 얻을 수 있다.
구체적으로, 키 생성부(110)는 암호키 Kn에 일방향 함수를 i번 적용하여 새로운 암호키 Kn +i를 만들어낸다. 이러한 새로운 암호키 Kn +i는 하기 수학식 2를 통해 구해질 수 있다.
Figure 112007082805341-pat00004
이후, 키 생성부(110)는 이렇게 만들어진 새로운 암호키 Kn +i를 암호화된 펌웨어를 복호화하는데 사용될 수 있도록 펌웨어 복호화부(130)로 전달하고 동시에 메모리(120)에 저장한다.
펌웨어 복호화부(130)는 키 생성부(110)에서 만든 암호키를 이용하여 암호화된 펌웨어를 복호화한다. 구체적으로, 펌웨어 복호화부(130)는 암호키 Kn +i를 이용하여 암호화된 펌웨어인
Figure 112007082805341-pat00005
를 복호화함으로써 Xn +i를 획득한다. 이와 같은 방식으로 펌웨어 복호화부(130)는 펌웨어 일부 또는 전체를 복호화한 후 그 복호화된 펌웨어 일부 또는 전체를 메모리(120)에 저장한다.
이하, 본 발명의 실시 예에 따른 펌웨어 업그레이드 시 펌웨어 저장 구조를 보인 도면인 도 2를 참조하여 설명한다.
도 2는 n번째 버젼의 펌웨어가 저장되는 메모리(120)의 구조를 예시하고 있는데, 메모리(120)의 일부 영역(200, 210)에 n번째 펌웨어의 일부인 Xn, Yn이 저장되어 있으며, 특히 별도의 영역(220)에는 n번째 암호키 Kn이 저장되는 경우를 예시 하고 있다. 이러한 상태에서 새로운 펌웨어(230)가 다운로드되거나 수신될 경우 각각의 영역(200, 210, 220)에는 이전 펌웨어들 및 이전 암호키가 새로운 펌웨어들 Xn+i, Yn +i 및 새로운 암호키 Kn +i로 대체되어 저장된다. 이때. 새로운 펌웨어(230)는 펌웨어 일부 Xn +i만 암호화한
Figure 112007082805341-pat00006
를 포함할 수 있다.
도 3은 본 발명의 실시 예에 따른 펌웨어 업그레이드 과정을 보인 도면이다. 도 3에서는 펌웨어 복호화 장치가 펌웨어를 업그레이드하기 전에 n번째 버젼의 펌웨어 및 n번째 버젼의 암호키를 저장하고 있는 경우를 예로 들어 설명한다.
도 3을 참조하면, 펌웨어 복호화 장치는 300단계에서 펌웨어 업그레이드 요청이 있는지를 판단한다. 펌웨어 업그레이드 요청은 사용자, 제조사 및 통신 사업자 등 필요에 따라 이루어질 수 있다. 만일 펌웨어 업그레이드 요청이 있는 경우 그 장치는 310단계에서 n+i번째 버젼의 암호화된 펌웨어를 다운로드한다. 이어, 그 장치는 320단계에서 미리 저장된 암호키 Kn에 일방향 함수를 적용하는데, 이때 일방향 함수는 암호화된 펌웨어 버젼과 일치되도록 i번 적용되게 된다. 이를 위해 그 장치는 현재 보유하고 있는 펌웨어 버젼 n과 다운로드한 펌웨어 버젼 n+i과의 버젼 차이를 비교한다.
그리고나서 그 장치는 암호키 Kn에 일방향 함수를 그 버젼 차이만큼 즉, i번 적용함으로써 330단계에서 암호키 Kn +i를 생성하게 된다. 이와 같이 암호화된 펌웨어의 버젼과 동일한 버젼의 암호키 Kn +i이 생성되면, 그 장치는 340단계에서 그 암 호키 Kn +i를 이용하여 다운로드한 암호화된 상태의 펌웨어를 복호화한다. 그리고나서 그 장치는 그 암호화된 상태의 펌웨어를 복호화함으로써 350단계에서 n+i번째 버젼의 펌웨어를 획득하게 된다.
예를 들어, 기준 펌웨어가 5번째 버젼의 펌웨어이며 기준 암호키도 5번째 버젼의 암호키일 경우를 설명하면 다음과 같다. 현재 5번째 버젼의 암호키 K5를 가지고 있던 상태에서 암호화된 펌웨어가 9번째 버젼이라고 할 경우 일방향 함수를 암호키 K5에 4번 적용함으로써 9번째 버젼의 암호키 K9가 생성된다. 그러면 메모리(120)에는 9번째 버젼의 복호화된 펌웨어 및 생성된 9번째 버젼의 암호키는 각각 기준 펌웨어 및 기준 암호키로 대체되어 저장된다.
상기한 바와 같이 일방향 함수를 사용한다면 상위 버젼에 해당하는 암호키만을 얻을 수 있기 때문에 현재 보유하고 있는 버젼보다 낮은 버젼으로의 암호키를 획득할 수 없어 현재 보유하고 있는 펌웨어 버젼보다 낮은 버젼의 펌웨어를 복호화할 수 없게 된다. 이와 같은 본 발명에 따르면 상위 버젼으로의 업그레이드만 가능하기 때문에 펌웨어의 불법적인 다운그레이드를 방지할 수 있게 된다. 게다가 하나의 암호키만 미리 가지고 있다면 일방향 함수를 적용하기만 하면 어떠한 상위 버젼의 암호키도 얻을 수 있기 때문에 암호키의 관리 및 저장이 용이하게 된다.
도 1은 본 발명의 실시 예에 따른 펌웨어 복호화 장치의 내부 블록 구성도,
도 2는 본 발명의 실시 예에 따른 펌웨어 업그레이드 시 펌웨어 저장 구조를 보인 도면,
도 3은 본 발명의 실시 예에 따른 펌웨어 업그레이드 과정을 보인 도면.

Claims (7)

  1. 펌웨어 복호화 장치에서 펌웨어 업그레이드를 위해 펌웨어를 복호화하는 방법에 있어서,
    상기 펌웨어 복호화 장치가 암호화된 펌웨어 수신 시 상기 암호화된 펌웨어의 버젼과 현재 보유하고 있는 펌웨어의 버젼 차이를 판단하는 과정과,
    상기 펌웨어 복호화 장치가 미리 저장해놓은 암호키에 일방향 함수를 상기 버젼 차이만큼 적용하여 상기 암호화된 펌웨어의 버젼과 동일한 버젼의 암호키를 생성하는 과정과,
    상기 펌웨어 복호화 장치가 상기 생성된 암호키를 이용하여 상기 암호화된 펌웨어를 복호화하는 과정을 포함함을 특징으로 하는 펌웨어 복호화 방법.
  2. 제1항에 있어서,
    상기 현재 보유하고 있는 펌웨어가 n번째 버젼의 펌웨어 Xn이고, 상기 미리 저장해놓은 암호키가 상기 n번째 버젼의 암호키 Kn일 경우, 상기 암호화된 펌웨어는 n+i번째 버젼의 펌웨어 중 일부 펌웨어 Xn +i를 암호키 Kn +i로 암호화한
    Figure 112007082805341-pat00007
    를 포함하며, 상기 i는 상기 버젼 차이를 나타냄을 특징으로 하는 펌웨어 복호화 방법.
  3. 제1항에 있어서, 상기 암호키를 생성하는 과정에서 상기 일방향 함수를 상기 버젼 차이만큼 적용하는 것은,
    하기 수학식 2를 통해 이루어짐을 특징으로 하는 펌웨어 복호화 방법.
    [수학식 2]
    Figure 112007082805341-pat00008
    상기 수학식 2에서 상기 Kn은 상기 미리 저장해놓은 암호키이며, 상기 Kn +i는 상기 일방향 함수를 나타내는 f를 i번 적용한 상기 생성된 암호키임을 나타내며, 상기 i는 상기 버젼 차이를 나타냄.
  4. 펌웨어 업그레이드를 위해 펌웨어를 복호화하는 장치에 있어서,
    기준 펌웨어 및 기준 암호키를 저장하고, 새로운 암호키를 생성하기 위한 일방향 함수를 저장하는 메모리와,
    암호화된 펌웨어를 수신하는 수신부와,
    상기 암호화된 펌웨어의 버젼과 상기 기준 펌웨어의 버젼 차이를 판단한 후, 상기 기준 암호키에 상기 일방향 함수를 상기 버젼 차이만큼 적용함으로써 상기 암호화된 펌웨어의 버젼과 동일한 버젼의 암호키를 생성하는 키 생성부와,
    상기 생성된 암호키를 이용하여 상기 암호화된 펌웨어를 복호화하는 펌웨어 복호화부를 포함함을 특징으로 하는 펌웨어 업그레이드를 위한 펌웨어를 복호화하는 장치.
  5. 제4항에 있어서, 상기 암호화된 펌웨어는,
    n+i번째 버젼의 펌웨어 중 일부 펌웨어 Xn +i를 암호키 Kn +i로 암호화한
    Figure 112007082805341-pat00009
    를 포함하며, 상기 n은 상기 기준 펌웨어의 버젼을 나타내며, 상기 i는 상기 버젼 차이를 나타냄을 특징으로 하는 펌웨어 업그레이드를 위한 펌웨어를 복호화하는 장치.
  6. 제4항에 있어서, 상기 메모리는,
    상기 암호화된 펌웨어가 복호화되면 상기 복호화된 펌웨어 및 상기 생성된 암호키를 각각 상기 기준 펌웨어 및 상기 기준 암호키로 대체하여 저장함을 특징으로 하는 펌웨어 업그레이드를 위한 펌웨어를 복호화하는 장치.
  7. 제4항에 있어서, 상기 키 생성부는,
    하기 수학식 2를 통해 상기 암호화된 펌웨어의 버젼과 동일한 버젼의 암호키 를 생성함을 특징으로 하는 펌웨어 업그레이드를 위한 펌웨어를 복호화하는 장치.
    [수학식 2]
    Figure 112007082805341-pat00010
    상기 수학식 2에서 상기 Kn은 상기 n번째 버젼의 암호키이며, 상기 Kn +i는 상기 일방향 함수를 나타내는 f를 i번 적용한 상기 생성된 암호키임을 나타내며, 상기 i는 상기 버젼 차이를 나타냄.
KR1020070117879A 2007-11-19 2007-11-19 펌웨어 업그레이드를 위해 펌웨어를 복호화하는 장치 및방법 KR101425224B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070117879A KR101425224B1 (ko) 2007-11-19 2007-11-19 펌웨어 업그레이드를 위해 펌웨어를 복호화하는 장치 및방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070117879A KR101425224B1 (ko) 2007-11-19 2007-11-19 펌웨어 업그레이드를 위해 펌웨어를 복호화하는 장치 및방법

Publications (2)

Publication Number Publication Date
KR20090051475A KR20090051475A (ko) 2009-05-22
KR101425224B1 true KR101425224B1 (ko) 2014-07-31

Family

ID=40859539

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070117879A KR101425224B1 (ko) 2007-11-19 2007-11-19 펌웨어 업그레이드를 위해 펌웨어를 복호화하는 장치 및방법

Country Status (1)

Country Link
KR (1) KR101425224B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9763087B2 (en) * 2014-07-14 2017-09-12 Microsoft Technology Licensing, Llc Cryptographic key exchange over an electrostatic channel
US20210075604A1 (en) * 2019-09-06 2021-03-11 STMicroelectronics (Grand Ouest) SAS Key generation method
CN117201021B (zh) * 2023-11-08 2024-02-23 中孚信息股份有限公司 用于主业务系统的密钥动态切换方法、系统、装置及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002215256A (ja) 2000-11-14 2002-07-31 Lucent Technol Inc ソフトウェアプログラムのオーソライズれていない使用を防止する方法および装置および媒体
US20020152392A1 (en) 2001-04-12 2002-10-17 Motorola, Inc. Method for securely providing encryption keys
KR20030071750A (ko) * 2000-11-17 2003-09-06 비트폰 코포레이션 정보의 업데이트 및 분산 시스템 및 방법
KR20050088091A (ko) * 2002-12-03 2005-09-01 나그라비젼 에스에이 소프트웨어 업데이트 보안 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002215256A (ja) 2000-11-14 2002-07-31 Lucent Technol Inc ソフトウェアプログラムのオーソライズれていない使用を防止する方法および装置および媒体
KR20030071750A (ko) * 2000-11-17 2003-09-06 비트폰 코포레이션 정보의 업데이트 및 분산 시스템 및 방법
US20020152392A1 (en) 2001-04-12 2002-10-17 Motorola, Inc. Method for securely providing encryption keys
KR20050088091A (ko) * 2002-12-03 2005-09-01 나그라비젼 에스에이 소프트웨어 업데이트 보안 방법

Also Published As

Publication number Publication date
KR20090051475A (ko) 2009-05-22

Similar Documents

Publication Publication Date Title
CN109214168B (zh) 固件升级方法及装置
US8213612B2 (en) Secure software download
US8874922B2 (en) Systems and methods for multi-layered authentication/verification of trusted platform updates
EP1907917B1 (en) Secure software updates
CN109583217B (zh) 一种互联网电商平台用户隐私数据加密及解密方法
US8150039B2 (en) Single security model in booting a computing device
US7930537B2 (en) Architecture for encrypted application installation
US20090259855A1 (en) Code Image Personalization For A Computing Device
KR100958108B1 (ko) 이동통신 단말기의 프로그램 불법복제 방지 방법 및 장치
JP6146476B2 (ja) 情報処理装置及び情報処理方法
EP1593015B1 (en) Architecture for encrypted application installation
KR101425224B1 (ko) 펌웨어 업그레이드를 위해 펌웨어를 복호화하는 장치 및방법
CN111512593B (zh) 半导体设备、提供更新数据的方法、接收更新数据的方法以及介质
CN115795438A (zh) 应用程序授权的方法、系统及可读存储介质
US20190199694A1 (en) Individual encryption of control commands
CN107682147B (zh) 用于智能卡芯片操作系统文件的安全管理方法及系统
EP2063358A2 (en) Telecommunications device security
AU2011202785B2 (en) Secure software updates
KR101649780B1 (ko) 암복호화 키를 이용하는 어플리케이션 보안 방법 및 장치
KR100480377B1 (ko) 스마트 카드를 이용한 네트워크 전용장치의 환경설정 및인증방법
KR20220081068A (ko) 암복호화 키를 이용한 어플리케이션 보안 장치 및 방법
CN114785498A (zh) 一种数据库密码保护方法、装置及设备
CN116186645A (zh) 一种基于容器化的产品授权部署方法及装置
JP2007150929A (ja) 携帯電話装置及びそれに用いるソフトウェア不正書換え防止方法並びにそのプログラム

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
FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 5