[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20070074617A - Data loading method, data processing unit, data item integrity protection method, and data item integrity verification method - Google Patents

Data loading method, data processing unit, data item integrity protection method, and data item integrity verification method Download PDF

Info

Publication number
KR20070074617A
KR20070074617A KR1020077010632A KR20077010632A KR20070074617A KR 20070074617 A KR20070074617 A KR 20070074617A KR 1020077010632 A KR1020077010632 A KR 1020077010632A KR 20077010632 A KR20077010632 A KR 20077010632A KR 20070074617 A KR20070074617 A KR 20070074617A
Authority
KR
South Korea
Prior art keywords
data item
data
version
hash value
version control
Prior art date
Application number
KR1020077010632A
Other languages
Korean (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
Priority claimed from EP04388069A external-priority patent/EP1645931A1/en
Application filed by 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) filed Critical 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘)
Publication of KR20070074617A publication Critical patent/KR20070074617A/en

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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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

Landscapes

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

Abstract

데이터를 데이터 처리 장치로 로드하는 방법이 개시되어 있다. 이 방법은, 상기 데이터 처리 장치에 의해 페이로드 데이터 항목을 수신하는 단계, 상기 페이로드 데이터 항목의 진정성(authenticity)을 보장하기 위해 암호 인증 프로세스를 수행하는 단계, 상기 인증된 수신 페이로드 데이터 항목을 상기 데이터 처리 장치에 저장하는 단계, 및 상기 저장된 페이로드 데이터 항목을 무결성 보호하는 단계를 포함한다. 상기 암호 인증 프로세스는 적어도 상기 수신된 데이터 항목의 감사 해시값(audit hash value)을 계산하는 단계를 포함한다. 상기 무결성 보호 단계는, 상기 데이터 처리 장치에 저장된 비밀키를 입력으로서 사용하여, 적어도 상기 감사 해시값의 참조 메시지 인증 코드값을 계산하는 단계를 더 포함한다.A method of loading data into a data processing apparatus is disclosed. The method comprises the steps of: receiving a payload data item by the data processing device, performing a password authentication process to ensure authenticity of the payload data item, and receiving the authenticated received payload data item. Storing in the data processing device, and integrity protecting the stored payload data item. The cryptographic authentication process includes calculating at least an audit hash value of the received data item. The integrity protection step further includes calculating at least a reference message authentication code value of the audit hash value using a secret key stored in the data processing device as an input.

Description

데이터 로드 방법, 데이터 처리 장치, 데이터 항목의 무결성 보호 방법 및 데이터 항목의 무결성 검증 방법{SECURE LOADING AND STORING OF DATA IN A DATA PROCESSING DEVICE}Data loading methods, data processing units, methods for protecting the integrity of data items, and methods for verifying the integrity of data items {SECURE LOADING AND STORING OF DATA IN A DATA PROCESSING DEVICE}

데이터 처리 장치에서의 데이터의 안전한 로드 및 저장 방법, 제품 수단 및 장치가 개시되어 있다.Disclosed are a method, a product means and an apparatus for safely loading and storing data in a data processing apparatus.

모바일 전화 및 다른 데이터 처리 장치와 같은 내장형 시스템은 불법적으로 조작되지 않은 올바른 소프트웨어의 실행에 의존한다. 소프트웨어의 조작은 장치의 부정확한 거동 또는 심지어 장치의 기본적인 보안 기능의 파괴를 가져올 수 있다. 따라서, 장치의 코어 소프트웨어를 보호하는 것이 특히 중요하다. 이것은 예를 들어 프로그램을 보호 메모리(protected memory)에 저장함으로써 달성될 수 있다. 이 메모리는 불법적 액세스로부터 물리적으로 보호되거나 암호 방법에 의해 보호될 수 있다. 실제로, 양호한 물리적 보호를 갖는 메모리를 제조하고 특히 메모리 인터페이스를 보호하기가 어렵거나 비용이 많이 든다. 그 결과, 가장 관심을 끄는 해결책은 메모리에 저장된 소프트웨어의 어떤 유형의 암호 보호를 사용하는 것이다.Embedded systems such as mobile phones and other data processing devices rely on the execution of correct software that has not been illegally tampered with. Operation of the software can lead to incorrect behavior of the device or even destruction of the basic security functions of the device. Therefore, it is particularly important to protect the core software of the device. This can be accomplished, for example, by storing the program in protected memory. This memory may be physically protected from illegal access or protected by cryptographic methods. In practice, it is difficult or expensive to manufacture a memory with good physical protection and in particular to protect the memory interface. As a result, the most interesting solution is to use some type of password protection of the software stored in memory.

게다가, 꽤 작은 시스템에 대한 소프트웨어조차도 점점 복잡해지고 있고, 그 에 의해, 특히 소프트웨어 수명 주기 동안의 초기 배포판(early release)에서, 에러 및 뜻하지 않은 동작의 위험을 증가시킨다. 게다가, 초기 소프트웨어 배포판의 기능은 일반적으로 제한되어 있다. 그 결과, 내장형 장치에 저장된 소프트웨어의 빈번한 업데이트의 필요성이 증가하고 있다.In addition, even software for quite small systems is becoming increasingly complex, thereby increasing the risk of errors and unintended behavior, especially in early releases during the software life cycle. In addition, the functionality of early software distributions is generally limited. As a result, there is an increasing need for frequent updates of software stored on embedded devices.

빈번한 업데이트의 필요성 및 데이터 처리 장치의 소프트웨어에 대한 충분한 보호를 제공하라는 요구는 저장 장치에 있는 데이터 처리 장치의 소프트웨어를 보호하고 또한 안전한 소프트웨어 업그레이드를 가능하게 해주는 보안 솔루션을 필요하게 만든다.The need for frequent updates and the need to provide sufficient protection for the software of the data processing device requires a security solution that protects the software of the data processing device in the storage device and also enables secure software upgrades.

미국 특허 제6,026,293호는 전자 장치에서의 전자 메모리 변조를 방지하는 방법을 개시하고 있다. 이 종래 기술의 방법에 따르면, 전자 장치가 데이터 전송 장치에 의해 재프로그램되어야 할 때, 전자 장치는 데이터 전송 장치를 인증하기 위해 공개/비밀키 기반 도전-응답 인증 방식을 개시한다. 일단 인증되면, 데이터 전송 장치는 메모리를 재프로그램하기 위해 액세스하도록 허용된다. 메모리의 재프로그래밍 이후에, 전자 장치는 수정된 메모리 내용의 해시 계산을 수행한다. 계산된 해시값은 디지털 서명을 위해 데이터 전송 장치로 전송되고, 서명된 해시값이 저장을 위해 전자 장치로 반환된다. 이 서명된 해시값은 나중에, 예를 들어, 부팅 동안에 또는 주기적으로, 메모리 내용의 무결성을 감사하기 위해 사용된다.U. S. Patent No. 6,026, 293 discloses a method of preventing electronic memory modulation in an electronic device. According to this prior art method, when the electronic device is to be reprogrammed by the data transmission device, the electronic device initiates a public / private based challenge-response authentication scheme to authenticate the data transmission device. Once authenticated, the data transfer device is allowed to access to reprogram the memory. After reprogramming the memory, the electronic device performs a hash calculation of the modified memory contents. The calculated hash value is sent to the data transmission device for digital signature, and the signed hash value is returned to the electronic device for storage. This signed hash value is used later to audit the integrity of the memory contents, for example during boot up or periodically.

상기한 종래 기술의 방법이 로드 단계 동안의 인증 보호 및 전자 장치의 메모리 내용의 무결성 보호 둘 다를 제공하지만, 이는 해시값을 발생하고 발생된 해시값에 서명하는 꽤 복잡한 방식을 필요로 하며, 그에 의해 로드 프로세스가 꽤 오 랜 시간 걸리게 한다.While the prior art method described above provides both authentication protection during the loading phase and integrity protection of the memory contents of the electronic device, this requires a fairly complex way of generating a hash value and signing the generated hash value. The load process takes quite a long time.

따라서, 소프트웨어를 장치로 로드하는 동안에도 차후에 소프트웨어가 장치에 저장되어 있는 동안에도 소프트웨어를 보호하는 계산상 보다 효율적인 보안 메커니즘을 제공하는 것이 문제이다.Therefore, it is a problem to provide a computationally more efficient security mechanism that protects the software while loading the software onto the device and subsequently while the software is stored on the device.

상기한 문제 및 다른 문제는 데이터를 데이터 처리 장치로 로드하는 방법에 의해 해결되며, 이 방법은,The above and other problems are solved by a method of loading data into a data processing apparatus, which method,

- 상기 데이터 처리 장치에 의해 페이로드 데이터 항목을 수신하는 단계,Receiving a payload data item by the data processing device,

- 상기 페이로드 데이터 항목의 진정성(authenticity)을 보장하기 위해 암호 인증 프로세스를 수행하는 단계,Performing a password authentication process to ensure authenticity of the payload data item,

- 상기 인증된 수신 페이로드 데이터 항목을 상기 데이터 처리 장치에 저장하는 단계, 및Storing the authenticated received payload data item in the data processing device, and

- 상기 저장된 페이로드 데이터 항목을 무결성 보호하는 단계를 포함하며,-Integrity protecting said stored payload data item,

상기 암호 인증 프로세스를 수행하는 단계는 적어도 상기 수신된 데이터 항목의 감사 해시값(audit hash value)을 계산하는 단계를 포함하고, 상기 무결성 보호 단계는, 상기 데이터 처리 장치에 저장된 비밀키를 입력으로서 사용하여, 적어도 상기 감사 해시값의 참조 메시지 인증 코드값을 계산하는 단계를 더 포함한다.Performing the cryptographic authentication process includes calculating at least an audit hash value of the received data item, wherein the integrity protection step uses, as input, a secret key stored in the data processing device. Calculating at least a reference message authentication code value of the audit hash value.

상세하게는, 로드 프로세스 동안에 계산된 감사 해시값이 수신된 페이로드 데이터로부터 계산되고 감사 해시값이 차후에 메시지 인증 코드의 계산 동안에 재사용되기 때문에, 소프트웨어 로드 동안에 수행되는 필요한 계산의 수가 감소되고, 그에 의해 이 방법의 계산 효율을 증대시킨다.Specifically, since the audit hash value calculated during the load process is calculated from the received payload data and the audit hash value is reused later during the calculation of the message authentication code, the number of necessary calculations performed during the software load is reduced, thereby The calculation efficiency of this method is increased.

게다가, 통상의 무결성 보호가 데이터 처리 장치에 저장된 비밀키에 기초하기 때문에, 무결성 보호는 임의의 외부 암호키에 독립적이며, 특히 공개키 서명 메커니즘에 의존하지 않는다. 대칭키 기반 무결성 검사, 즉 메시지 인증 코드에 기초한 무결성 검사가 서명 검증을 수반하는 공개키 기반 무결성 검사보다 계산상 더 효율적인 것이 이점이다.In addition, since conventional integrity protection is based on the private key stored in the data processing device, the integrity protection is independent of any external cryptographic key, and in particular does not rely on the public key signature mechanism. The advantage is that symmetric key based integrity checking, i.e. integrity checking based on message authentication code, is computationally more efficient than public key based integrity checking involving signature verification.

용어 '데이터 처리 장치'는 외부 소스, 예를 들어 데이터 전송 시스템으로부터 데이터가 로드될 수 있는 데이터 메모리를 포함하는 임의의 전자 장치를 포함시키고자 한 것이다. 상세하게는, 용어 '데이터 처리 장치'는 임의의 전자 장비, 휴대형 무선 통신 장비 및 다른 핸드헬드 또는 휴대형 장치를 포함시키고자 한 것이다. 용어 '휴대형 무선 통신 장비'는 모바일 전화, 페이저, 커뮤니케이터(communicator), 전자 수첩(electronic organiser), 스마트 폰, 개인 휴대 단말기(PDA), 핸드헬드 컴퓨터, 기타 등등의 모든 장비를 포함한다.The term 'data processing device' is intended to include any electronic device that includes a data memory into which data can be loaded from an external source, such as a data transmission system. Specifically, the term 'data processing device' is intended to include any electronic equipment, portable wireless communication equipment, and other handheld or portable devices. The term 'portable wireless communication equipment' includes all equipment such as mobile phones, pagers, communicators, electronic organizers, smart phones, personal digital assistants (PDAs), handheld computers, and the like.

용어 '페이로드 데이터 항목'은 데이터 처리 장치에 로드되는 임의의 데이터를 포함시키고자 한 것이다. 상세하게는, 용어 '페이로드 데이터 항목'은 구성 데이터, 프로그램 코드, 예를 들어 장치에서 실행시키기 위한 플랫폼 소프트웨어 또는 애플리케이션 소프트웨어, 기타 등등을 포함시키고자 한 것이다.The term 'payload data item' is intended to include any data loaded into the data processing device. Specifically, the term 'payload data item' is intended to include configuration data, program code, such as platform software or application software for execution on a device, and the like.

암호 인증 프로세스는 수신된 데이터의 진정성을 검증하기 위한, 즉 데이터가 전달하는 이름을 갖는 개체에 의해 그 데이터가 실제로 전송되었도록 또한 그 데이터가 위조되거나 변경되지 않았도록 보장하기 위한 임의의 적당한 암호 프로세스일 수 있다.The password authentication process is any suitable cryptographic process for verifying the authenticity of the received data, i.e. to ensure that the data has actually been transmitted by the entity whose name it carries and also that the data has not been forged or altered. Can be.

일부 실시예에서, 상기 암호 인증 프로세스는,In some embodiments, the password authentication process,

- 참조 해시값을 수신하는 단계, 및Receiving a reference hash value, and

- 상기 수신된 페이로드 데이터 항목의 진정성을 검증하기 위해 상기 수신된 참조 해시값을 상기 계산된 감사 해시값과 비교하는 단계를 포함한다.Comparing the received reference hash value with the calculated audit hash value to verify the authenticity of the received payload data item.

다른 실시예에서, 상기 암호 인증 프로세스는 공개키 암호시스템에 따라 상기 데이터 항목에 디지털 서명하는 단계를 포함한다. 소프트웨어의 디지털 서명은 모바일 장치에 로드되는 소프트웨어의 검증을 위한 효율적이고 안전한 원리이다. 서명의 성공적인 검증은 소프트웨어가 적법한 소스에 의해 발행되었다는 것을 보증한다. 게다가, 공개키 기술에 기초한 디지털 서명은 검증을 위해 사용되는 공개키가 전송 또는 저장 시에 기밀 보호될 필요가 없다는 이점을 갖는다. 따라서, 보안을 약화시키지 않고 동일한 공개키가 많은 수의 장치에 설치될 수 있다. 이것은 빠르고 안전한 소프트웨어 업그레이드를 위한 효율적인 절차를 가능하게 해준다.In another embodiment, the cryptographic authentication process includes digitally signing the data item in accordance with a public key cryptosystem. Digital signature of software is an efficient and safe principle for the verification of software loaded on mobile devices. Successful verification of the signature ensures that the software has been issued by a legitimate source. In addition, digital signatures based on public key technology have the advantage that the public key used for verification does not have to be confidential when transmitted or stored. Thus, the same public key can be installed in a large number of devices without weakening security. This allows an efficient procedure for fast and secure software upgrades.

일부 실시예에서, 이 방법은,In some embodiments, the method,

- 상기 페이로드 데이터 항목, 디지털 서명 데이터 항목 및 디지털 서명된 디지털 인증서 데이터 항목을 수신하는 단계 - 상기 디지털 인증서 데이터 항목은 제1 공개키를 포함하고, 상기 디지털 서명 데이터 항목은 상기 제1 공개키에 대응하는 제1 비밀키로 암호화된 참조 해시값을 포함함 -,Receiving the payload data item, the digital signature data item, and the digitally signed digital certificate data item, wherein the digital certificate data item includes a first public key, and the digital signature data item is stored in the first public key. Contains a reference hash value encrypted with the corresponding first secret key-,

- 상기 데이터 처리 장치에 저장된 루트 공개키(root public key)와 대조하여 상기 디지털 서명된 디지털 인증서 데이터 항목을 인증하는 단계,Authenticating the digitally signed digital certificate data item against a root public key stored in the data processing device,

- 상기 인증된 디지털 인증서와 대조하여 상기 디지털 서명 데이터 항목을 인증하는 단계, 및-Authenticating the digital signature data item against the authenticated digital certificate, and

- 상기 수신된 페이로드 데이터 항목의 진정성을 검증하기 위해 상기 수신된 참조 해시값을 상기 계산된 감사 해시값과 비교하는 단계를 포함한다.Comparing the received reference hash value with the calculated audit hash value to verify the authenticity of the received payload data item.

따라서, 디지털 서명의 진정성은 디지털 인증서에 의해 보장되고, 그에 따라 로드 프로세스의 보안을 향상시킨다. 데이터 처리 장치가 인증서 체인(certificate chain)을 형성하는 2개 이상의 디지털 인증서를 수신할 수 있으며, 이 체인의 한 인증서가 데이터 처리 장치에 저장된 공개 루트키(public root key)에 의해 검증된다는 것을 잘 알 것이다.Thus, the authenticity of the digital signature is guaranteed by the digital certificate, thus improving the security of the loading process. It is well understood that a data processing device may receive two or more digital certificates that form a certificate chain, and that one certificate in this chain is verified by a public root key stored in the data processing device. will be.

다른 실시예에서, 상기 참조 해시값은 암호 인증되고, 상기 참조 메시지 인증 코드값을 계산하는 단계는 상기 참조 해시값이 성공적으로 인증된 경우에만 수행된다. 그 결과, 데이터 처리 장치에서의 메시지 인증 코드 절차의 실행은 인증된 참조 해시값의 수신을 조건으로 하며, 그에 의해 공격자가 무허가 메시지 인증 코드값을 계산하기 위해 데이터 처리 장치의 메시지 인증 코드 절차를 이용할 위험을 감소시킨다.In another embodiment, the reference hash value is cryptographically authenticated and the step of calculating the reference message authentication code value is performed only if the reference hash value is successfully authenticated. As a result, the execution of the message authentication code procedure at the data processing device is subject to the receipt of an authenticated reference hash value, whereby an attacker may use the message authentication code procedure of the data processing device to calculate an unauthorized message authentication code value. Reduce the risk.

메시지 인증 코드(MAC)는 메시지를 무결성 보호하기 위한 공지의 메커니즘이다. MAC은 가변 길이 입력 및 키를 받아서 고정-길이 출력, 소위 MAC값 또는 태그값을 생성하는 함수이다. MAC은 일반적으로 비밀키를 공유하는 2개의 당사자 간에 전송되는 정보를 확인하기 위해 이들 당사자 간에 사용된다. 일부 실시예에서, MAC은 페이로드 데이터에 단방향 해시 함수를 적용하고 그 결과를 비밀키를 사용하여 암호화함으로써 계산된다. 암호 해시 함수와 결합될 수 있는 적당한 MAC 함수의 예는 HMAC(Keyed-Hashing for Message Authentication), 예를 들어, AES를 사용하는 CBC(Cipher Block Chaining) MAC 또는 안전한 단방향 해시 함수를 포함한다. 본 명세서에 기술된 로드 방법에서, 메시지 인증 코드는 신뢰할 수 없는 또는 안전하지 않은 매체에 저장된 데이터의 무결성을 검사하는 데 사용된다, 즉 이 상황에서, 페이로드 데이터 항목을 저장 및 검색할 때, MAC은 한 당사자, 즉 데이터 처리 장치에 의해서만 사용된다.A message authentication code (MAC) is a known mechanism for integrity protection of a message. MAC is a function that takes a variable length input and a key and produces a fixed-length output, a so-called MAC value or a tag value. MAC is typically used between these parties to verify the information sent between two parties sharing a secret key. In some embodiments, the MAC is calculated by applying a one-way hash function to the payload data and encrypting the result using a secret key. Examples of suitable MAC functions that may be combined with cryptographic hash functions include Keyed-Hashing for Message Authentication (HMAC), for example, Cipher Block Chaining (CBC) MAC using AES or secure one-way hash functions. In the load method described herein, the message authentication code is used to check the integrity of the data stored on an untrusted or insecure medium, ie in this situation, when storing and retrieving payload data items, the MAC Is used only by one party, namely the data processing device.

그 결과, 일부 실시예에서, 상기 무결성 보호 단계는 상기 수신된 페이로드 데이터 항목과 관련하여 상기 계산된 참조 메시지 인증 코드값을 저장하는 단계를 더 포함하며, 그에 의해 이 참조 메시지 인증 코드값이 데이터 처리 장치에 의한 페이로드 데이터 항목의 차후의 메모리 감사에 이용가능하게 만들어준다. 따라서, 메모리 내용을 감사할 때, 이 장치는 그 장치에 저장된 비밀키를 사용하여 상기 저장된 페이로드 데이터 항목의 메시지 인증 코드값을 계산하고, 그 결과를 이전에 저장된 참조 MAC값과 비교한다. 그 결과, 이 실시예에서, 비밀키가 디지털 처리 장치에만 알려져야 한다. 일부 실시예에서, 비밀키는 데이터 처리 장치에 고유한 비밀 데이터 항목, 예를 들어, 데이터 처리 장치에만 알려져 있는 비밀 데이터 항목이다.As a result, in some embodiments, the integrity protecting step further includes storing the calculated reference message authentication code value in relation to the received payload data item, whereby the reference message authentication code value is stored in the data. Make the payload data item available for subsequent memory auditing by the processing device. Thus, when auditing the memory contents, the device calculates the message authentication code value of the stored payload data item using the secret key stored in the device, and compares the result with a previously stored reference MAC value. As a result, in this embodiment, the secret key should be known only to the digital processing device. In some embodiments, the secret key is a secret data item unique to the data processing device, eg, a secret data item known only to the data processing device.

다른 실시예에서, 상기 참조 메시지 인증 코드값을 계산하는 단계는 적어도 상기 감사 해시값 및 난수로부터 도출되는 결합된 데이터 항목의 상기 참조 메시지 인증 코드값을 계산하는 단계를 더 포함한다. 이 실시예의 이점은 MAC에의 입력이 인증 프로세스의 결과에 전혀 의존하지 않는 것은 아니며, 그에 따라 데이터 보호의 보안을 향상시킨다.In another embodiment, calculating the reference message authentication code value further comprises calculating the reference message authentication code value of a combined data item derived from at least the audit hash value and a random number. The advantage of this embodiment is that the input to the MAC does not depend at all on the result of the authentication process, thus improving the security of data protection.

상기 참조 메시지 인증 코드값을 계산하는 단계는 적어도 상기 감사 해시값 및 버전 제어 데이터 항목으로부터 도출되는 결합된 데이터 항목의 상기 참조 메시지 인증 코드값을 계산하는 단계를 더 포함하는 경우, 상기 무결성 보호는 버전 제어 메커니즘과 효율적으로 결합되는데, 그 이유는 차후의 메모리 감사가 메모리 내용 및 버전 제어 정보 둘 다가 부합되는 경우에만 성공적이기 때문이다.Calculating the reference message authentication code value further comprises calculating the reference message authentication code value of a combined data item derived from at least the audit hash value and a version control data item, the integrity protection being version It is effectively combined with the control mechanism because subsequent memory audits are only successful if both the memory content and the version control information match.

일부 실시예에서, 버전 제어 데이터 레코드는 버전 제어 데이터 구조체에 저장되고, 상기 버전 제어 데이터 레코드는 적어도 상기 버전 제어 데이터 항목을 포함하는 상기 수신된 페이로드 데이터 항목에 관한 정보를 포함한다. 일부 실시예에서, 상기 제어 데이터 구조체는 무결성 보호되어 있다.In some embodiments, a version control data record is stored in a version control data structure, wherein the version control data record includes information regarding the received payload data item including at least the version control data item. In some embodiments, the control data structure is integrity protected.

일부 실시예에서, 상기 버전 제어 데이터 레코드는 버전 카운터를 포함한다. 일부 실시예에서, 상기 버전 제어 데이터 레코드는 상기 페이로드 데이터 항목의 현재 버전을 대체할 수 있는 이전 버전의 수를 식별해주는 백 카운터(back counter)를 더 포함하며, 그에 의해 후방 호환성을 제어하기 위한 메커니즘을 포함하는 간단하고 효율적인 버전 제어 메커니즘을 제공한다.In some embodiments, the version control data record includes a version counter. In some embodiments, the version control data record further comprises a back counter identifying a number of previous versions that can replace the current version of the payload data item, thereby controlling backward compatibility. It provides a simple and efficient version control mechanism that includes a mechanism.

기존의 소프트웨어가 새 버전의 소프트웨어에 의해 업그레이드되는 공지의 소프트웨어 업그레이드 방식에서, 소프트웨어 업그레이드는 종종 소위 델타 파일(delta file) 또는 델타 업데이트(delta update)로서 수신된다. 이러한 델타 업데이트는 현재 소프트웨어에 대한 새로운 (업데이트된) 소프트웨어의 차이를 포함하며, 그에 따라 업그레이드 패킷의 크기를 감소시킨다. 어떤 델타-파일 기술에서, 업데이트 파일은 또한 현재 소프트웨어 및 수신된 업데이트로부터 업데이트된 소프트웨어 버전을 생성하는 것을 제어하는 명령을 포함한다. 델타-파일 기술은 그 자체로서 기술 분야에 공지되어 있으며, 예를 들어 Christian Reichenberger의 "Delta storage for arbitary non-text files(임의적인 비텍스트 파일에 대한 델타 저장)", Proc. Of the 3rd International Workshop on Software Configuration Management, pp. 144-152, Norway, June 1991에 기술되어 있다. 델타 업데이트에도 적용될 수 있는 효율적인 보안 메커니즘을 제공하는 것이 바람직하다. 이 문제는, 상기 페이로드 데이터 항목을 수신하는 단계가, 이전에 수신된 현재 데이터 항목의 델타 업데이트(delta update)를 수신하는 단계, 및 상기 이전에 수신된 현재 데이터 항목 및 상기 수신된 델타 업데이트로부터 업데이트된 페이로드 데이터 항목으로서 상기 페이로드 데이터 항목을 발생하는 단계를 포함하는 경우에, 해결된다. 따라서, 이 실시예에 따르면, 업데이트된 페이로드 데이터 항목이 발생되고 감사 해시값이 발생된 업데이트된 페이로드 데이터 항목으로부터 계산된다. 그 결과, 감사 해시값은 다시 말하면 장치에 저장되어 있는 갱신된 페이로드 데이터의 참조 메시지 인증 코드의 계산을 위해 재사용될 수 있다.In known software upgrade schemes in which existing software is upgraded by new versions of software, software upgrades are often received as so-called delta files or delta updates. This delta update includes the new (updated) software difference to the current software, thus reducing the size of the upgrade packet. In some delta-file descriptions, the update file also includes instructions for controlling generation of updated software versions from current software and received updates. Delta-file techniques are known per se in the art and are described, for example, in Christian Reichenberger's "Delta storage for arbitary non-text files", Proc. Of the 3rd International Workshop on Software Configuration Management, pp. 144-152, Norway, June 1991. It is desirable to provide an efficient security mechanism that can also be applied to delta updates. The problem is that receiving the payload data item includes receiving a delta update of a previously received current data item, and from the previously received current data item and the received delta update. And generating the payload data item as an updated payload data item. Thus, according to this embodiment, an updated payload data item is generated and an audit hash value is calculated from the updated payload data item. As a result, the audit hash value can be reused for the calculation of the reference message authentication code of the updated payload data stored in other words the device.

제2 태양에 따르면, 상기 종래 기술의 시스템의 문제는 서로 다른 버전의 저장된 데이터 항목의 빈번한 업그레이드가 일어나는 상황에서 데이터 처리 장치에 저장된 현재 버전의 데이터 항목의 무결성을 보호하는 효율적이고 안전한 방법을 제공하는 것이다.According to a second aspect, a problem of the prior art system is to provide an efficient and safe method of protecting the integrity of the current version of data items stored in the data processing device in the event of frequent upgrades of different versions of stored data items. will be.

상기한 문제 및 다른 문제는, 데이터 처리 장치에 저장된 현재 버전의 데이터 항목의 무결성을 보호하는 방법에 의해 해결되며, 이 방법은,The above and other problems are solved by a method of protecting the integrity of the data item of the current version stored in the data processing device, which method,

- 적어도 상기 데이터 항목의 참조 해시값을 결정하는 단계,Determining at least a reference hash value of the data item,

- 상기 데이터 처리 장치에 저장된 비밀키를 사용하여 상기 결정된 참조 해시값으로부터 참조 메시지 인증 코드값을 계산하는 단계, 및Calculating a reference message authentication code value from the determined reference hash value using a secret key stored in the data processing apparatus, and

- 상기 데이터 항목과 관련하여 상기 계산된 참조 메시지 인증 코드값을 저장하는 단계를 포함하며,Storing the calculated reference message authentication code value in association with the data item,

상기 참조 메시지 인증 코드값을 계산하는 단계는 상기 결정된 참조 해시값 및 버전 제어 데이터 레코드의 적어도 일부분으로부터 도출되는 결합된 데이터 항목으로부터 상기 참조 메시지 인증 코드값을 계산하는 단계를 포함하고, 상기 버전 제어 데이터 레코드는 상기 현재 버전의 데이터 항목에 관한 버전 제어 정보를 포함하는 것을 특징으로 한다.Calculating the reference message authentication code value comprises calculating the reference message authentication code value from a combined data item derived from at least a portion of the determined reference hash value and a version control data record, wherein the version control data The record may include version control information about the data item of the current version.

따라서, 상기 결정된 참조 해시값 및 버전 제어 데이터 레코드의 적어도 일부분으로부터 도출되는 결합된 데이터 항목으로부터 상기 참조 메시지 인증 코드값을 계산함으로써, 상기 저장된 페이로드 데이터의 무결성 보호가 상기 저장된 데이터의 안전한 버전 제어와 효율적으로 결합된다.Thus, by calculating the reference message authentication code value from a combined data item derived from at least a portion of the determined reference hash value and version control data record, integrity protection of the stored payload data may be achieved by secure version control of the stored data. Combined efficiently.

적어도 상기 데이터 항목의 참조 해시값은 상기 데이터 항목으로부터 상기 해시값을 계산함으로써 또는 상기 데이터 항목과 함께 또는 본 명세서에 기술된 바와 같이 상기 데이터 항목의 수신과 관련하여 인증 프로세스로부터 상기 해시값을 수신함으로써 결정될 수 있다.At least a reference hash value of the data item is determined by calculating the hash value from the data item or by receiving the hash value from an authentication process in conjunction with the data item or in connection with receiving the data item as described herein. Can be determined.

용어 '결합된 데이터 항목'은 2개 이상의 데이터 항목의 함수로서, 예를 들어, 한쪽 데이터 항목이 다른 쪽 데이터 항목에 첨부되는 2개 이상의 데이터 항목의 연결(concatenation)로서 발생되는 임의의 데이터 항목을 포함시키고자 한 것이다. 따라서, 결정된 참조 해시값 및 버전 제어 데이터 레코드의 적어도 일부분으로부터 도출되는 결합된 데이터 항목은 적어도 상기 참조 해시값 및 적어도 버전 제어 데이터 레코드의 일부분의 함수로서 발생된다.The term 'combined data item' is a function of two or more data items, for example, any data item that occurs as a concatenation of two or more data items to which one data item is attached to the other data item. It is intended to be included. Thus, a combined data item derived from at least a portion of the determined reference hash value and version control data record is generated as a function of at least the reference hash value and at least a portion of the version control data record.

일부 실시예에서, 버전 제어 데이터 레코드는 무결성 보호된다.In some embodiments, the version control data record is integrity protected.

일부 실시예에서, 상기 버전 제어 데이터 레코드는 버전 카운터를 포함하고, 상기 참조 메시지 인증 코드값을 계산하는 단계는 상기 결정된 감사 해시값 및 적어도 상기 버전 카운터로부터 도출되는 결합된 데이터 항목으로부터 참조 메시지 인증 코드값을 계산하는 단계를 포함한다.In some embodiments, the version control data record comprises a version counter, and the step of calculating the reference message authentication code value comprises a reference message authentication code from the determined audit hash value and at least a combined data item derived from the version counter. Calculating a value.

일부 실시예에서, 상기 버전 제어 데이터 레코드는 상기 현재 버전의 페이로드 데이터 항목을 대체할 수 있는 이전 버전의 수를 식별해주는 백 카운터를 더 포함하고, 그에 의해 후방 호환성을 제어하는 메커니즘을 포함하는 간단하고 효율적인 버전 제어 메커니즘을 제공한다. 일부 실시예에서, 상기 참조 메시지 인증 코드값을 계산하는 단계는 상기 결정된 참조 해시값 및 적어도 상기 백 카운터로부터 도출되는 결합된 데이터 항목으로부터 참조 메시지 인증 코드값을 계산하는 단계를 포함한다.In some embodiments, the version control data record further comprises a back counter that identifies the number of previous versions that can replace the payload data item of the current version, thereby including a mechanism to control backward compatibility. And provide an efficient version control mechanism. In some embodiments, calculating the reference message authentication code value comprises calculating a reference message authentication code value from the determined reference hash value and at least a combined data item derived from the back counter.

다른 실시예에서, 상기 버전 제어 데이터 레코드는 상기 현재 버전의 데이터 항목에 대한 상기 참조 해시값을 더 포함하며, 그에 의해 상기 데이터 항목의 간소한 지문(compact fingerprint)을 제공한다.In another embodiment, the version control data record further includes the reference hash value for the data item of the current version, thereby providing a compact fingerprint of the data item.

일부 실시예에서, 상기 비밀키는 상기 디지털 처리 장치에만 알려져 있다. 게다가, 상기 비밀키는 상기 데이터 처리 장치에 고유한 비밀 데이터 항목일 수 있다.In some embodiments, the secret key is known only to the digital processing device. In addition, the secret key may be a secret data item unique to the data processing device.

일부 실시예에서, 상기 페이로드 데이터는 상기 첫 번째로 언급한 방법에 의해 로드되며, 그에 의해 안전한 로드 및 저장을 안전한 버전 제어와 효율적으로 결합시킨다.In some embodiments, the payload data is loaded by the first mentioned method, thereby efficiently combining safe load and store with safe version control.

또 다른 실시예에서, 상기 방법은, In another embodiment, the method,

- 이전에 수신된 현재 데이터 항목의 델타 업데이트를 수신하는 단계, 및Receiving a delta update of a previously received current data item, and

- 상기 이전에 수신된 현재 데이터 항목 및 상기 수신된 델타 업데이트로부터 업데이트된 데이터 항목으로서 상기 데이터 항목을 발생하는 단계를 더 포함한다.Generating the data item as an updated data item from the previously received current data item and the received delta update.

또 다른 실시예에서, 상기 방법은 상기 버전 제어 데이터 레코드를 발생하는 단계, 및 상기 버전 제어 데이터 레코드를 버전 제어 데이터 구조체에 저장하여, 그에 의해 상기 버전 제어 데이터 레코드가 차후의 메모리 감사에 이용가능하게 되도록 하는 단계를 포함한다.In another embodiment, the method includes generating the version control data record, and storing the version control data record in a version control data structure, thereby making the version control data record available for future memory auditing. It includes the steps to make.

따라서, 다른 태양에서, 데이터 처리 장치에 저장된 현재 버전의 데이터 항목의 무결성을 검증하는 방법은,Thus, in another aspect, a method of verifying the integrity of a data item of a current version stored in a data processing device,

- 상기 데이터 항목의 감사 해시값을 계산하는 단계,Calculating an audit hash value of the data item,

- 상기 데이터 처리 장치에 저장된 비밀키를 사용하여 상기 계산된 감사 해시값으로부터 감사 메시지 인증 코드값을 계산하는 단계, 및Calculating an audit message authentication code value from the calculated audit hash value using a secret key stored in the data processing device, and

- 상기 계산된 감사 메시지 인증 코드값을 상기 데이터 항목과 관련하여 저장된 참조 메시지 인증 코드값과 비교하는 단계를 포함한다.Comparing the calculated audit message authentication code value with a stored reference message authentication code value in relation to the data item.

이 태양에 따르면, 상기 방법은 버전 제어 데이터 레코드를 검색하는 단계를 더 포함하고, 상기 버전 제어 데이터 레코드는 상기 현재 버전의 데이터 항목에 관한 버전 제어 정보를 포함하며,According to this aspect, the method further comprises retrieving a version control data record, the version control data record comprising version control information relating to a data item of the current version,

상기 감사 메시지 인증 코드값을 계산하는 단계는 상기 계산된 감사 해시값 및 상기 버전 제어 데이터 레코드의 적어도 일부분으로부터 도출되는 결합된 데이터 항목으로부터 감사 메시지 인증 코드값을 계산하는 단계를 포함한다.Computing the audit message authentication code value includes calculating an audit message authentication code value from the calculated audit hash value and a combined data item derived from at least a portion of the version control data record.

본 발명은 이상에서 또한 이하에서 기술되는 방법들, 및 대응하는 장치, 및 컴퓨터 프로그램을 포함하는 다른 태양들에 관한 것으로서, 이들 각각은 상기한 방법들 중 하나와 관련하여 기술된 이점 및 장점 중 하나 이상을 가져오며, 또한 이들 각각은 상기한 방법들 중 하나와 관련하여 기술된 실시예들에 대응하는 하나 이상의 실시예들을 갖는다.The present invention relates to other aspects, including the methods described above and below, and a corresponding apparatus, and a computer program, each of which is one of the advantages and advantages described in connection with one of the methods described above. In addition, each of these has one or more embodiments corresponding to the embodiments described in connection with one of the methods described above.

보다 구체적으로는, 다른 태양에 따르면, 데이터 처리 장치는 이상에서 또한 이하에서 기술되는 데이터 처리 장치에 데이터를 로드하는 방법을 수행하도록 적응되어 있는 제1 처리 회로를 포함한다.More specifically, according to another aspect, the data processing apparatus includes a first processing circuit adapted to perform a method of loading data into the data processing apparatus as described above and below.

상세하게는, 본 명세서에 기술된 보안 메커니즘이 유익하게도 다중칩 아키텍처를 갖는 장치에 적용될 수 있음이 밝혀졌다. 상세하게는, 칩들 중 제1 칩이 칩들 중 제2 칩을 통해 메모리에 액세스할 때, 제1 칩이 메모리 내용의 데이터 진정성 및 무결성을 보장해주는 것이 특히 중요하다.In particular, it has been found that the security mechanisms described herein can be advantageously applied to devices having a multichip architecture. Specifically, when the first of the chips accesses the memory through the second of the chips, it is particularly important that the first chip ensures data authenticity and integrity of the memory contents.

그 결과, 일부 실시예에서, 데이터 처리 장치는 수신된 페이로드 데이터 항목을 저장하도록 적응된 저장 수단, 및 상기 저장 수단 및 상기 제1 처리 회로에 연결된 제2 처리 회로를 더 포함하며, 상기 제2 처리 회로는 상기 제1 처리 회로에 적어도 상기 저장 수단에의 판독 액세스를 제공하도록 구성되어 있다.As a result, in some embodiments, the data processing apparatus further comprises storage means adapted to store the received payload data item, and a second processing circuit connected to the storage means and the first processing circuit, wherein the second The processing circuit is configured to provide the first processing circuit with at least read access to the storage means.

다른 실시예에서, 상기 제1 처리 회로는 비대칭 암호 시스템의 루트 공개키를 저장하는 로컬 저장 수단을 포함한다. 다른 실시예에서, 상기 제1 처리 회로는 상기 비밀키를 저장하는 로컬 저장 수단을 포함하며, 그에 의해 데이터 진정성 및 무결성 메커니즘에서 사용되는 암호키의 제1 칩의 제어 하에서의 안전한 저장을 제공한다.In another embodiment, the first processing circuit comprises local storage means for storing a root public key of an asymmetric cryptographic system. In another embodiment, the first processing circuit includes local storage means for storing the secret key, thereby providing secure storage under control of a first chip of an encryption key used in data authenticity and integrity mechanisms.

다른 태양에 따르면, 데이터 처리 장치는 현재 버전의 데이터 항목 및 버전 제어 데이터 레코드를 저장하는 저장 수단 - 상기 버전 제어 데이터 레코드는 상기 현재 버전의 데이터 항목에 관한 버전 제어 정보를 포함함 -, 및 이상에서 또한 이하에서 기술되는 현재 버전의 데이터 항목의 무결성을 검증하는 방법을 수행하도록 적응된 처리 수단을 포함한다.According to another aspect, a data processing apparatus includes: storage means for storing a data item and a version control data record of a current version, wherein the version control data record includes version control information relating to the data item of the current version; It also includes processing means adapted to perform a method for verifying the integrity of a data item of a current version described below.

유의할 점은 이상에서 또한 이하에서 기술되는 방법들의 특징이 소프트웨어로 구현되고 또 데이터 처리 장치 또는 컴퓨터 실행가능 명령어 등의 프로그램 코드 수단의 실행의 결과에 의한 다른 처리 수단 상에서 실행될 수 있다는 것이다. 여기에서 또한 이하에서, 용어 '처리 수단'은 상기한 기능들을 수행하도록 적절히 적응되어 있는 임의의 회로 및/또는 장치를 포함한다. 상세하게는, 상기 용어는 범용 또는 전용의 프로그램가능 마이크로프로세서, 디지털 신호 처리기(DSP), ASIC(Application Specific Integrated Circuit), PLA(Programmable Logic Array), FPGS(Field Prgrammable Gate Array), 전용의 전자 회로, 기타 등등, 또는 이들의 조합을 포함한다.It should be noted that the features of the methods described above and below can also be implemented in software and executed on other processing means as a result of the execution of program code means, such as a data processing apparatus or computer executable instructions. Here also and hereinafter, the term 'processing means' includes any circuitry and / or apparatus suitably adapted to perform the above functions. Specifically, the term is used for general purpose or dedicated programmable microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), programmable logic arrays (PLAs), field programmable gate arrays (FPGS), and dedicated electronic circuits. , And the like, or combinations thereof.

따라서, 다른 태양에 따르면, 컴퓨터 프로그램은, 상기 컴퓨터 프로그램이 데이터 처리 장치 상에서 실행될 때, 데이터 처리 장치로 하여금 이상에서 또한 이하에서 기술되는 방법의 단계들을 수행하게 하도록 적응되어 있는 프로그램 코드 수단을 포함한다.Thus, according to another aspect, the computer program comprises program code means adapted to cause the data processing apparatus to perform the steps of the method described above and below when the computer program is executed on the data processing apparatus. .

예를 들어, 프로그램 코드 수단은 저장 매체로부터 또는 컴퓨터 네트워크를 통해 다른 컴퓨터로부터 RAM(Random Access Memory) 등의 메모리에 로드될 수 있다. 다른 대안으로서, 기술된 특징들은 소프트웨어 대신에 또는 소프트웨어와 결합하여 하드와이어링된 회로(hardwired circuit)에 의해 구현될 수 있다.For example, the program code means may be loaded into a memory, such as a random access memory (RAM), from a storage medium or from another computer via a computer network. As another alternative, the described features may be implemented by a hardwired circuit instead of or in combination with software.

상기한 태양 및 다른 태양은 도면을 참조하여 이하에 기술된 실시예들로부터 명백하고 또 분명하게 될 것이다.The foregoing and other aspects will become apparent and apparent from the embodiments described below with reference to the drawings.

도 1은 모바일 단말기로 데이터를 로드하는 시스템의 개략 블록도이다.1 is a schematic block diagram of a system for loading data into a mobile terminal.

도 2는 단일 칩 아키텍처를 갖는 모바일 단말기의 일례의 개략 블록도이다.2 is a schematic block diagram of an example of a mobile terminal having a single chip architecture.

도 3은 2-칩 아키텍처를 갖는 모바일 단말기의 일례의 개략 블록도이다.3 is a schematic block diagram of an example of a mobile terminal having a two-chip architecture.

도 4는 2-칩 아키텍처를 갖는 모바일 단말기의 다른 예의 개략 블록도이다.4 is a schematic block diagram of another example of a mobile terminal having a two-chip architecture.

도 5는 소프트웨어를 모바일 단말기로 로드하는 로딩 프로세스에서 사용되는 메시지 구조의 일례를 나타낸 도면이다.5 illustrates an example of a message structure used in a loading process for loading software into a mobile terminal.

도 6은 소프트웨어 버전의 최초 로드에 대한 소프트웨어 로딩 프로세스의 흐름도이다.6 is a flowchart of a software loading process for initial loading of a software version.

도 7은 메시지 인증 코드의 실시예의 계산을 나타낸 도면이다.7 is a diagram illustrating calculation of an embodiment of a message authentication code.

도 8은 버전 제어 메커니즘을 포함하는 메시지 인증 코드의 다른 실시예의 계산을 나타낸 도면이다.8 illustrates the calculation of another embodiment of a message authentication code including a version control mechanism.

도 9는 버전 제어 프로세스의 흐름도이다.9 is a flowchart of a version control process.

도 10은 버전 제어 메커니즘의 일례를 나타낸 도면이다.10 shows an example of a version control mechanism.

도 11은 소프트웨어 업그레이드를 위한 소프트웨어 로딩 프로세스의 흐름도이다.11 is a flowchart of a software loading process for software upgrade.

도 1은 모바일 단말기에 데이터를 로드하는 시스템의 개략 블록도를 나타낸 것이다. 이 시스템은 로딩 스테이션(loading station)(101) 및 모바일 단말기(102)를 포함한다.1 shows a schematic block diagram of a system for loading data into a mobile terminal. The system includes a loading station 101 and a mobile terminal 102.

로딩 스테이션은 적절한 통신 인터페이스를 포함하는 종래의 적절히 프로그램된 컴퓨터, 예를 들어 PC일 수 있다. 일부 실시예에서, 로딩 스테이션은 로딩될 페이로드 데이터, 예를 들어, 소프트웨어 버전, 구성 데이터, 및/또는 기타 등등을 생성할 수 있다. 상세하게는, 로딩 스테이션은 페이로드 데이터와 함께 로드될 디지털 서명 및 인증서를 생성할 수 있다. 다른 실시예에서, 로딩 스테이션은 원격 컴퓨터, 예를 들어, 퍼스널 컴퓨터, 워크 스테이션, 네트워크 서버, 기타 등등으로 부터 페이로드 데이터 및 헤더 정보를 수신한다. 예를 들어, 데이터는 컴퓨터 네트워크, 예를 들어, 인터넷, 근거리 통신망, 인트라넷, 엑스트라넷, 기타 등등을 통해 또는 임의의 다른 적당한 수단에 의해, 예를 들어 플로피 디스크, CD ROM, 기타 등등의 컴퓨터-판독가능 매체 상에 수신될 수 있다. 이 실시예에서, 서명의 계산 및 인증서의 생성은 로딩 스테이션보다는 원격 컴퓨터에 의해 수행될 수 있다. 로딩 스테이션은, 모바일 단말기와 협력하여, 데이터를 모바일 단말기로 로드하는 일을 수행한다.The loading station may be a conventional, properly programmed computer, for example a PC, including a suitable communication interface. In some embodiments, the loading station may generate payload data to be loaded, eg, software version, configuration data, and / or the like. In detail, the loading station can generate a digital signature and certificate to be loaded with payload data. In another embodiment, the loading station receives payload data and header information from a remote computer, such as a personal computer, workstation, network server, or the like. For example, the data may be transmitted over a computer network, such as the Internet, a local area network, an intranet, an extranet, or the like, or by any other suitable means, for example, a computer such as a floppy disk, CD ROM, or the like. May be received on a readable medium. In this embodiment, the calculation of the signature and the generation of the certificate can be performed by a remote computer rather than a loading station. The loading station, in cooperation with the mobile terminal, performs the task of loading data into the mobile terminal.

모바일 단말기(102)는 모바일 단말기가 직접 데이터 링크, 통신 네트워크, 기타 등등의 유선 또는 무선 통신 링크(103)를 통해 로딩 스테이션과 데이터를 통신할 수 있게 해주는 데 적합한 회로 및/또는 장치를 포함하는 통신 인터페이스(104)를 포함한다. 예를 들어, 데이터는 로컬 단거리 무선 통신 링크(local short range wireless communications link), 예를 들어, 블루투스 연결, 적외선 연결, 기타 등등을 통해 또는 유선 인터페이스를 통해 로드될 수 있다. 다른 실시예에서, 데이터는 통신 네트워크를 통해, 예를 들어, GSM, WCDMA, 기타 등등의 셀룰러 전기 통신 네트워크를 거쳐 예를 들어 OTA(over-the-air)를 통해 모바일 단말기로 로드될 수 있다.The mobile terminal 102 is a communication including circuitry and / or apparatus suitable for enabling the mobile terminal to communicate data with the loading station via a wired or wireless communication link 103 such as a direct data link, a communication network, or the like. Interface 104. For example, data may be loaded via a local short range wireless communications link, such as a Bluetooth connection, an infrared connection, or the like or via a wired interface. In another embodiment, data may be loaded to a mobile terminal via a communication network, for example via over-the-air (OTA) via a cellular telecommunication network such as GSM, WCDMA, and the like.

그 결과, 적당한 통신 유닛의 예는 RS-232 링크, USB 연결, IEEE 1394 표준에 설명되어 있는 FireWire 연결, 기타 등등의 유선 직렬 통신(wired serial communication)을 포함한다. 다른 예들은 무선 적외선 인터페이스, 또는 셀룰러 전화(도시 생략)의 주 안테나 또는 셀룰러 전화 내의 다른 안테나(블루투스 송수신 기, 기타 등등) 등의 RF 인터페이스를 포함한다. 적당한 인터페이스의 다른 예들은 케이블 모뎀, 전화 모뎀, ISDN(Integrated Services Digital Network) 어댑터, DSL(Digital Subscriber Line) 어댑터, 위성 송수신기, 이더넷 어댑터, 기타 등등을 포함한다.As a result, examples of suitable communication units include wired serial communication, such as an RS-232 link, a USB connection, a FireWire connection described in the IEEE 1394 standard, and the like. Other examples include an RF interface, such as a wireless infrared interface, or a primary antenna of a cellular telephone (not shown) or another antenna (bluetooth transceiver, etc.) within a cellular telephone. Other examples of suitable interfaces include cable modems, telephone modems, integrated services digital network (ISDN) adapters, digital subscriber line (DSL) adapters, satellite transceivers, Ethernet adapters, and the like.

모바일 단말기는 모바일 단말기의 동작을 제어하는 프로세싱 유닛(105), 및 메모리(106)를 더 포함한다. 예를 들어, 프로세싱 유닛은 범용 또는 전용의 프로그램가능 마이크로프로세서, DSP(Digital Signal Processor), ASIC(Application Specific Integrated Circuit), PLA(Programmable Logic Array), FPGA(Field Programmable Gate Array), 기타 등등, 또는 이들의 조합을 포함할 수 있다. 메모리(106)는 플래시 메모리, EPROM, EEPROM, 또는 비휘발성 메모리 등의 임의의 다른 유형의 메모리 또는 저장 장치일 수 있다.The mobile terminal further includes a processing unit 105 that controls the operation of the mobile terminal, and a memory 106. For example, the processing unit may be a general purpose or dedicated programmable microprocessor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a programmable logic array (PLA), a field programmable gate array (FPGA), or the like, or Combinations thereof. Memory 106 may be any other type of memory or storage device, such as flash memory, EPROM, EEPROM, or nonvolatile memory.

데이터가 모바일 단말기에 로드될 때, 프로세싱 유닛(105)은 본 명세서에 기술되는 데이터 인증 및 무결성 보호를 수행하고 데이터를 메모리(106)에 저장한다.When data is loaded into the mobile terminal, the processing unit 105 performs the data authentication and integrity protection described herein and stores the data in the memory 106.

모바일 단말기의 차후의 동작 동안에, 프로세싱 유닛은 로드된 데이터를 메모리(106)로부터 검색할 수 있다. 예를 들어, 소프트웨어의 경우에, 프로세싱 유닛은 소프트웨어를 실행을 위해 메모리(106)로부터 RAM으로 로드한다.During subsequent operation of the mobile terminal, the processing unit may retrieve the loaded data from the memory 106. For example, in the case of software, the processing unit loads software from memory 106 into RAM for execution.

도 2는 단일-칩 아키텍처를 갖는 모바일 단말기의 일례의 블록도를 나타낸 것이다. 모바일 단말기(101)는 모바일 단말기의 동작을 제어하는 제어기(105)를 포함한다. 제어기(105)는 플래시 프로그램 메모리(106) 및 랜덤 액세스 메모리(RAM)(209)와 관련하여 동작한다. 제어기(105)는 마이크로프로세서(208), 내부 판독 전용 메모리(ROM)(207), 및 안전하게 저장된 비밀키(218)를 포함한다. 예를 들어, 비밀키(218)는, 예를 들어, 하드웨어적으로(예를 들어, 소위 e-퓨즈(e-fuse) 기술을 사용함) 저장되어 있는 칩-고유 키일 수 있다. 다른 대안으로서, 비밀키는 ROM(207)에 저장되어 있을 수 있다. ROM(207)은 부트 코드, 해싱 코드, MAC 코드, 인증 코드, 및 공개 루트키를 포함한다. 일부 실시예에서, 해싱 코드 및/또는 MAC 코드는 ROM에 구현하는 것 대신에 또는 그에 부가하여 적어도 부분적으로 하드웨어적으로 구현될 수 있다. 셀룰러 전화의 일반적인 동작과 연관된 명령어 코드는 플래시 프로그램 메모리(106)에 포함되어 있다. RAM 메모리(209)는 통상의 모바일 단말기 호 처리의 일부분인 동작을 위해 사용된다. 일부 실시예에서, 민감한 데이터를 수반하는 동작, 해시값 계산 및 인증 프로세스는 마이크로컨트롤러(105)에 포함된 보호 정적 랜덤 액세스 메모리(PSRAM, protected static random access memory)(도시 생략)과 관련하여 수행된다. 제어기(105)는 메모리 버스(219)를 통해 플래시 프로그램 메모리(106) 및 RAM(209)과 통신한다.2 shows a block diagram of an example of a mobile terminal having a single-chip architecture. The mobile terminal 101 includes a controller 105 that controls the operation of the mobile terminal. Controller 105 operates in conjunction with flash program memory 106 and random access memory (RAM) 209. The controller 105 includes a microprocessor 208, an internal read only memory (ROM) 207, and a securely stored secret key 218. For example, the secret key 218 can be a chip-specific key that is stored, for example, in hardware (eg, using so-called e-fuse technology). Alternatively, the secret key may be stored in ROM 207. ROM 207 includes a boot code, hashing code, MAC code, authentication code, and public root key. In some embodiments, the hashing code and / or MAC code may be implemented at least partially in hardware instead of or in addition to implementing in ROM. Instruction code associated with general operation of a cellular telephone is contained in flash program memory 106. RAM memory 209 is used for operations that are part of normal mobile terminal call processing. In some embodiments, operations involving sensitive data, hash value calculation, and authentication processes are performed in connection with protected static random access memory (PSRAM) (not shown) included in microcontroller 105. . The controller 105 communicates with the flash program memory 106 and the RAM 209 via the memory bus 219.

도 3은 2-칩 아키텍처를 갖는 모바일 단말기의 일례의 개략 블록도를 나타낸 것이다. 이 실시예에서, 제어기(105)는 2개의 칩(각각, 310, 313), 외부 메모리(106) 및 내부 메모리(209)를 포함한다. 이 2개의 칩 각각은 적어도 하나의 마이크로프로세서(각각, 312, 315), 및 ROM(각각, 311, 314)을 포함한다. 외부 메모리(106)는 임의의 적당한 종류의 비휘발성 메모리, 예를 들어, 플래시 메모리이다. 내부 메모리(209)는 고속 액세스 메모리, 예를 들어, RAM이다. 도 3의 실시예에서, 2개의 칩은 내부 메모리(209)를 공유한다. 게다가, 이 실시예에서, 칩(313)만 이 외부 메모리(106)에 직접 액세스한다. 따라서, 칩(310)의 프로세서(312)가 외부 메모리(106)에 저장된 소프트웨어를 실행해야 하는 경우, 실행될 소프트웨어는, 실행될 수 있기 이전에, 칩(313)을 통해 내부 메모리(209)에 로드된다. 이 실시예에서, ROM(311, 314) 둘 다는 부트 코드를 포함하고, ROM(311)만이 해싱 코드, MAC 코드, 인증 코드, 및 공개 루트키를 포함하고, 칩(310)만이 비밀키(318)를 포함한다. 이상에서 기술한 바와 같이, 비밀키(318)는 하드웨어적으로(예를 들어, 소위 e-퓨즈 기술을 사용함) 저장될 수 있다. 다른 대안으로서, 비밀키는 ROM(311)에 저장될 수 있다. 게다가, 일부 실시예에서, 해싱 코드 및/또는 MAC 코드는 ROM에 구현되는 것 대신에 또는 그에 부가하여 적어도 부분적으로 하드웨어적으로 구현될 수 있다.3 shows a schematic block diagram of an example of a mobile terminal having a two-chip architecture. In this embodiment, the controller 105 includes two chips (310 and 313, respectively), an external memory 106 and an internal memory 209. Each of these two chips includes at least one microprocessor (312, 315, respectively), and ROM (311, 314, respectively). External memory 106 is any suitable type of nonvolatile memory, for example flash memory. Internal memory 209 is a fast access memory, for example RAM. In the embodiment of FIG. 3, the two chips share internal memory 209. In addition, in this embodiment, only the chip 313 directly accesses the external memory 106. Thus, when the processor 312 of the chip 310 needs to execute software stored in the external memory 106, the software to be executed is loaded into the internal memory 209 through the chip 313 before it can be executed. . In this embodiment, both ROMs 311 and 314 include boot code, only ROM 311 includes hashing code, MAC code, authentication code, and public root key, and only chip 310 with secret key 318. ). As described above, the secret key 318 may be stored in hardware (eg, using so-called e-fuse technology). As another alternative, the secret key may be stored in ROM 311. In addition, in some embodiments, the hashing code and / or MAC code may be implemented at least partially in hardware instead of or in addition to being implemented in ROM.

도 4는 2-칩 아키텍처를 갖는 모바일 단말기의 다른 예의 개략 블록도를 나타낸 것이다. 이 실시예는, 이 실시예의 2개의 칩(310, 313)이 공통의 내부 메모리를 공유하지 않는다는 것을 제외하고는, 도 3의 실시예와 유사하다. 그 대신에, 각각의 칩은 그 자신의 내부 메모리(416, 417)를 각각 가지고 있다. 도 3의 실시예에서와 같이, 칩(313)만이 외부 메모리(106)에 직접 액세스한다. 따라서, 칩(310)의 프로세서(312)가 외부 메모리(106)에 저장된 소프트웨어를 실행해야 하는 경우, 실행될 소프트웨어는, 실행될 수 있기 이전에, 칩(313)을 통해 칩(310)의 내부 메모리(416)에 로드된다.4 shows a schematic block diagram of another example of a mobile terminal having a two-chip architecture. This embodiment is similar to the embodiment of FIG. 3 except that the two chips 310, 313 of this embodiment do not share a common internal memory. Instead, each chip has its own internal memory 416, 417, respectively. As in the embodiment of FIG. 3, only the chip 313 directly accesses the external memory 106. Thus, when the processor 312 of the chip 310 needs to execute software stored in the external memory 106, the software to be executed may be executed by the chip 313 through the internal memory of the chip 310 through the chip 313. 416).

공유 또는 개별 RAM(Random Access Memory)을 갖는 대안의 2-칩 실시예에서, 양 칩은 외부 비휘발성 메모리에 직접 액세스할 수 있으며 또한 실행될 소프트웨어 를 그 메모리로부터 직접 실행하거나 이를 RAM에 먼저 로드한 다음에 실행할 수 있다.In an alternative two-chip embodiment with shared or separate random access memory (RAM), both chips can directly access external nonvolatile memory and also run the software to be executed directly from or load it into RAM first. Can be run on

도 5는 소프트웨어를 모바일 단말기로 로드하는 로딩 프로세스에서 사용되는 메시지 구조의 일례를 나타낸 것이다. 메시지(520)는 헤더 섹션(521), 페이로드 섹션(522), 디지털 인증서 섹션(523), 및 디지털 서명(524)을 포함한다.5 shows an example of a message structure used in a loading process for loading software into a mobile terminal. The message 520 includes a header section 521, a payload section 522, a digital certificate section 523, and a digital signature 524.

페이로드 섹션(522)은 모바일 단말기로 로드될 실제 페이로드 데이터를 포함한다. 이 페이로드 데이터는 애플리케이션 소프트웨어, 다른 소프트웨어의 로딩을 준비(organize) 및/또는 제어하는 프리-로더(pre-loader) 소프트웨어, 모바일 단말기의 운영 체제의 일부분, 기타 등등의 소프트웨어를 포함할 수 있다. 다른 대안으로서 또는 그에 부가하여, 페이로드 데이터는 다른 데이터, 예를 들어, 플래시 메모리 또는 모바일 단말기의 다른 메모리(예를 들어, EPROM, EEPROM, 기타 등등)에 저장하기 위한 구성 데이터를 포함할 수 있다.Payload section 522 contains actual payload data to be loaded into the mobile terminal. This payload data may include application software, pre-loader software that organizes and / or controls the loading of other software, portions of the operating system of the mobile terminal, and so forth. Alternatively or in addition, the payload data may include configuration data for storing in other data, eg, flash memory or other memory of the mobile terminal (eg, EPROM, EEPROM, etc.). .

헤더 섹션(521)은, 페이로드 데이터에 관한 정보(예를 들어, 버전 제어 데이터 등), 모바일 단말기에 관한 정보, 모바일 단말기가 데이터를 어떻게 처리해야 하는지를 결정하는 제어 파라미터, 및/또는 기타 등등의, 로딩 프로세스와 관련된 정보를 포함한다.Header section 521 may include information about payload data (eg, version control data, etc.), information about the mobile terminal, control parameters that determine how the mobile terminal should process the data, and / or the like. , Information related to the loading process.

서명 섹션은 페이로드(522)의 디지털 서명을 포함한다. 디지털 서명은 비대칭 암호시스템(예를 들어, RSA(Rivest, Shamir 및 Adleman) 시스템)의 공개-비밀키 쌍을 사용하여 계산된다. 디지털 서명은 처음에 페이로드 데이터, 즉 모바일 단말기에 로드될 소프트웨어 및/또는 데이터의 단방향 해시 함수를 계산함으로써 계산 된다. 계산된 해시값은 이어서 공개-비밀키 쌍의 비밀키로 암호화된다.The signature section contains the digital signature of the payload 522. Digital signatures are calculated using public-private key pairs of asymmetric cryptosystems (e.g., RSA (Rivest, Shamir and Adleman) systems). The digital signature is initially calculated by calculating the payload data, ie the one-way hash function of the software and / or data to be loaded into the mobile terminal. The computed hash value is then encrypted with the secret key of the public-private key pair.

단방향 해시 함수는 페이로드 데이터(522)를 대표하는 해시값을 도출하는 데 사용된다. 공개/비밀키 시스템은 유효한 해시값에 대한 보안을 제공하고 또 메시지(520)가 송출되어 나오는 로딩 스테이션 또는 데이터 전송 장치를 인증하는 데 사용된다.The one-way hash function is used to derive a hash value representative of payload data 522. The public / private system is used to provide security for valid hash values and to authenticate the loading station or data transmission device from which the message 520 is sent.

단방향 해시 함수는 전방향으로 계산하기는 간단하지만 역방향으로 계산하기는 어려운 함수이다. 단방향 해시 함수 H(M)는 임의-길이 입력 M(일부 실시예에서, 페이로드 데이터(522) 또는 페이로드 데이터의 선택된 부분으로 이루어짐)에 동작한다. M에 대해 수행되는 해시 함수는 고정-길이 해시값 h = H(M)을 반환한다.One-way hash functions are simple to compute in all directions but difficult to compute in the reverse direction. The one-way hash function H (M) operates on a random-length input M (in some embodiments, consisting of payload data 522 or a selected portion of payload data). The hash function performed on M returns a fixed-length hash value h = H (M).

임의-길이의 입력을 받아서 고정 길이의 출력을 반환할 수 있는 많은 함수가 있지만, 단방향 해시 함수는 이하의 부가적인 특성을 갖는다. M이 주어지면, h를 계산하기가 용이하고, h가 주어지면, M을 계산하기가 어려우며, M이 주어지면, H(M) = H(M')인 다른 메시지 M'을 찾기가 어렵다. 단방향 해시의 목표는 M의 고유의 서명 또는 지문을 제공하는 것이다. 해시 함수의 출력은 해시값 또는 메시지 요약(message digest)이라고 한다.There are many functions that can take arbitrary-length inputs and return fixed length outputs, but the one-way hash function has the following additional features. Given M, it is easy to calculate h; given h, it is difficult to calculate M; given M, it is difficult to find another message M ', where H (M) = H (M'). The goal of a one-way hash is to provide M's own signature or fingerprint. The output of a hash function is called a hash value or message digest.

본 명세서에 기술된 방법의 실시예들에서, 메시지(520)의 모바일 단말기로의 전송 이전에, 안전한 단방향 해시 함수가 페이로드 데이터(522) 또는 그의 선택된 내용에 대해 수행되어, 참조 해시값을 생성한다. 이 참조 해시값은, 이하에서 더 설명하는 바와 같이, 메시지(520)에 디지털 서명으로서 포함된다. 메시지(520)의 수신 시에, 모바일 단말기는 페이로드 데이터(522)의 감사 해시값을 계산하고 이 감사 해시값을 메시지(520)의 일부분으로서 수신된 참조 해시값과 비교한다.In embodiments of the method described herein, prior to sending the message 520 to the mobile terminal, a secure one-way hash function is performed on the payload data 522 or its selected content to generate a reference hash value. do. This reference hash value is included in the message 520 as a digital signature, as described further below. Upon receipt of message 520, the mobile terminal calculates an audit hash value of payload data 522 and compares this audit hash value with a reference hash value received as part of message 520.

적당한 단방향 해시 함수는, 예를 들어, SHA-1 함수이다. 적당한 함수의 다른 예들은 MD5 알고리즘, Snerfu, H-Hash, MD2, MD4, 기타 등등을 포함한다.Suitable one-way hash functions are, for example, SHA-1 functions. Other examples of suitable functions include the MD5 algorithm, Snerfu, H-Hash, MD2, MD4, and the like.

공개키 알고리즘은 2개의 키를 사용하며, 하나는 공개적으로 이용가능하고 하나는 이러한 메시지 암호화 및 복호화, 메시지 인증, 및 디지털 서명 등의 작업을 위해 개인적으로 보유(비밀)되어 있다. 송신자가 비밀키로 메시지를 암호화할 때, 대응하는 공개키를 갖는 임의의 수신자는 송신자의 진정성을 확신할 수 있는데, 그 이유는 비밀키를 소유하는 송신자만이 메시지를 암호화할 수 있었기 때문이다. 후자의 방식이 본 명세서에 기술되는 로딩 프로세스에 따라 페이로드 데이터를 인증하는 데 이용된다. 적당한 공개키 알고리즘은 RSA 알고리즘이다. 다른 적당한 예는 Fiat-Shamir(FS) 알고리즘, ELGAMAL, DSA, Fiege-Fiat-Shamir, 기타 등등을 포함한다.Public key algorithms use two keys, one is publicly available and one is privately held (secret) for such tasks as message encryption and decryption, message authentication, and digital signatures. When the sender encrypts the message with the secret key, any recipient with the corresponding public key can be assured of the authenticity of the sender, since only the sender who owns the secret key could encrypt the message. The latter approach is used to authenticate payload data according to the loading process described herein. A suitable public key algorithm is the RSA algorithm. Other suitable examples include Fiat-Shamir (FS) algorithms, ELGAMAL, DSA, Fiege-Fiat-Shamir, and the like.

상세하게는, 본 명세서에 기술된 로딩 프로세스에서, 계산된 해시값은 로딩 스테이션의 비밀키로 암호화되어, 메시지(520)에 포함되는 디지털 서명(524)을 생성한다.Specifically, in the loading process described herein, the calculated hash value is encrypted with the loading station's private key to generate a digital signature 524 that is included in the message 520.

대응하는 공개키는 메시지(520)의 디지털 인증서 섹션(523)에 포함되는 인증서에 포함된다. 디지털 인증서는 특정의 인증된 개인을 특정의 공개키에 연계시키기 위해 공개키 시스템에서 사용되는 데이터 구조체이다. 디지털 인증서는 이 인증서를 발행하는 인증 기관을 식별해주고, 그의 공개키가 포함되어 있는 개인의 이 름을 알려주거나 그의 신원을 확인시켜주며, 또 그 개인의 공개키를 포함하고 있는 정보의 디지털 표현이다. 디지털 인증서는 이를 발행하는 인증 기관에 의해 디지털 서명되고, 그에 의해 수신자는 인증 기관의 공개키를 사용하여 그 인증서를 인증할 수 있게 된다.The corresponding public key is included in the certificate included in digital certificate section 523 of message 520. A digital certificate is a data structure used in a public key system to associate a particular authenticated person with a particular public key. A digital certificate is a digital representation of information that identifies the certification authority that issues this certificate, identifies the name of the individual whose public key is included or identifies it, and contains the public key of that individual. . The digital certificate is digitally signed by the issuing authority, thereby allowing the recipient to authenticate the certificate using the certificate authority's public key.

디지털 인증서 섹션이 단일의 디지털 인증서 또는 인증서 체인을(certificate chain) 포함할 수 있다는 것을 잘 알 것이다. 어느 경우든지, 인증서 또는 인증서 체인은 모바일 단말기에 의해 단일의 인증서 또는 인증서 체인 내의 마지막 인증서에 대응하는 루트 공개키로 인증될 수 있다. 소프트웨어를 모바일 전화로 로드하는 것과 관련한 키 계층구조의 일례가 WO 03/060673에 기술되어 있다.It will be appreciated that the digital certificate section may contain a single digital certificate or certificate chain. In either case, the certificate or certificate chain may be authenticated by the mobile terminal with a root public key corresponding to a single certificate or the last certificate in the certificate chain. An example of a key hierarchy relating to loading software into a mobile phone is described in WO 03/060673.

일부 실시예에서, 페이로드가, 디지털 서명을 계산하기 위해, 예를 들어, WO 03/060673에 기술되어 있는 바와 같이, 더 작은 부분들로 분할될 수 있거나 이 서명만이 계산될 수 있다는 것을 잘 알 것이다.In some embodiments, it is well understood that the payload may be split into smaller portions or only this signature may be calculated, for example, as described in WO 03/060673 to calculate the digital signature. Will know.

일반적으로, 헤더 데이터(521)는 물론 페이로드 데이터(522)도 보호하는 것이 바람직하다. 일부 실시예에서, 이것은 디지털 서명에 의해 헤더 데이터(521) 자체를 보호함으로써 달성된다. 다른 실시예에서, 계산된 해시값의 상기 암호화는, 예를 들어, 소프트웨어(및 데이터)(522)에 걸쳐 계산된 해시값 h(SW)와 헤더 데이터(521)에 걸쳐 계산된 해시값 h(H)의 연결(concatenation) h(SW)|h(H)를 암호화/서명하는 것에 의한, 헤더 데이터(521)에 걸쳐 계산된 해시값의 암호화를 더 포함한다.In general, it is desirable to protect not only the header data 521 but also the payload data 522. In some embodiments, this is accomplished by protecting the header data 521 itself by digital signature. In another embodiment, the encryption of the calculated hash value is, for example, a hash value h (SW) calculated over software (and data) 522 and a hash value h (calculated over header data 521). Concatenation h (SW) | H (H) further comprises the encryption of the hash value calculated over the header data 521 by encrypting / signing.

도 6은 소프트웨어 버전의 최초 로드에 대한 소프트웨어 로딩 프로세스의 흐름도를 나타낸 것이다.6 shows a flowchart of the software loading process for initial loading of a software version.

최초 단계 601에서, 모바일 단말기는, 상기한 바와 같이, 로컬 또는 원격 인터페이스(예를 들어, GSM, WCDMA, 기타 등등)를 거쳐 재프로그래밍 툴로부터 소프트웨어 데이터 패킷을 수신한다. 이 패킷은, 상기 도 5와 관련하여 기술된 바와 같이, 새로운 소프트웨어 SW, 하나 이상의 인증서 C, 및 보호된 소프트웨어 및 데이터의 디지털 서명 S(hr)을 포함한다. 선택적으로, 이 새로운 소프트웨어는 데이터, 예를 들어, 구성 데이터를 포함할 수 있다. 서명 S(hr)은 적어도 소프트웨어 및 데이터로부터 계산되는 암호화된 해시값을 포함한다. 이 서명은, 먼저 소프트웨어 및 데이터의 단방향 해시 hr = H(SW)가 계산되고 이어서 적어도 계산된 해시값이 공개-비밀키 쌍(예를 들어, RSA 공개-비밀키 쌍)의 비밀키로 암호화되도록, 계산된다. 대응하는 공개키는 소프트웨어 데이터 패킷에 포함되어 있는 인증서에 포함되어 있다. 소프트웨어 및 데이터 패킷의 수신 시에, 모바일 단말기는 소프트웨어, 데이터, 인증서(들), 및 서명을 외부 메모리(106)에 저장한다. 상기 도 5와 관련하여 언급한 바와 같이, 일부 실시예에서, 서명은, 예를 들어, 소프트웨어로부터 계산된 해시값과 헤더로부터 계산된 해시값의 결합을 암호화하는 것에 의해, 페이로드뿐만 아니라 헤더 데이터도 보호할 수 있다.In an initial step 601, the mobile terminal receives a software data packet from a reprogramming tool via a local or remote interface (eg, GSM, WCDMA, etc.), as described above. This packet contains a new software SW, one or more certificates C, and a digital signature S (h r ) of the protected software and data, as described in connection with FIG. 5 above. Optionally, this new software may include data, for example configuration data. The signature S (h r ) contains an encrypted hash value calculated from at least software and data. This signature is such that the one-way hash h r = H (SW) of the software and data is first calculated and then at least the calculated hash value is encrypted with the secret key of the public-private key pair (e.g. RSA public-private pair). , Is calculated. The corresponding public key is included in the certificate contained in the software data packet. Upon receipt of the software and data packet, the mobile terminal stores software, data, certificate (s), and signature in external memory 106. As mentioned in connection with FIG. 5 above, in some embodiments, the signature may include header data as well as payload, for example, by encrypting a combination of hash values calculated from software and hash values calculated from headers. Can also protect.

단계 602에서, 모바일 단말기의 프로세서는 새로 저장된 소프트웨어 및 데이터 SW, 인증서(들) C, 및 서명 S(hr)을 그의 내부 메모리로 읽어들인다.In step 602, the processor of the mobile terminal reads newly stored software and data SW, certificate (s) C, and signature S (h r ) into its internal memory.

단계 603에서, 프로세서는 새로운 소프트웨어 및 데이터 SW의 단방향 감사 해시값 ha = H(SW)을 계산한다.In step 603, the processor calculates the one-way audit hash value h a = H (SW) of the new software and data SW.

단계 604에서, 프로세서는 메모리(605)로부터 루트 공개키 PK를 읽어온다. 일부 실시예에서, 루트 공개키는 안전하게 저장된다, 즉 무결성 보호된다. 일 실시예에서, 루트 공개키는, 상기한 바와 같이, 프로세서의 내부 ROM에 저장되어 있다. 프로세서는 새로운 소프트웨어 및 데이터의 서명 S(hr)을 검증하기 위해 루트 공개키 PK를 사용한다. 단지 하나의 인증서만이 사용되는 경우, 서명 S(hr)은 인증서 C 내의 공개키와 대조하여 검증된다. 이 인증서 C는 차례로 루트 공개키 PK와 대조하여 검증된다. 몇 개의 인증서가 사용되는 경우, 인증서 체인 전체가 검증된다. 그 경우에, 체인 내의 마지막 인증서의 서명이 루트 공개키와 대조하여 검증된다. 따라서, 단계 604에서, 프로세서는 새로운 소프트웨어 및 데이터에 서명하는 데 사용되는 공개키를 검증한다. 검증이 성공하면, 프로세서는 단계 606으로 진행하여 서명을 검증한다. 그렇지 않은 경우, 소프트웨어 로딩 프로세스가 중단된다.In step 604, the processor reads the root public key PK from memory 605. In some embodiments, the root public key is stored securely, i.e. integrity protected. In one embodiment, the root public key is stored in an internal ROM of the processor, as described above. The processor uses the root public key PK to verify the signature S (h r ) of the new software and data. If only one certificate is used, the signature S (h r ) is verified against the public key in certificate C. This certificate C is in turn verified against the root public key PK. If several certificates are used, the entire certificate chain is verified. In that case, the signature of the last certificate in the chain is verified against the root public key. Thus, at step 604, the processor verifies the public key used to sign new software and data. If the verification succeeds, the processor proceeds to step 606 to verify the signature. Otherwise, the software loading process is interrupted.

단계 606에서, 프로세서는 단계 604에서 검증된 공개키를 사용하여 소프트웨어 및 데이터의 디지털 서명 S(hr)을 복호화하며, 그 결과 참조 해시값 hr이 얻어진다.In step 606, the processor decrypts the digital signature S (h r ) of the software and data using the public key verified in step 604, resulting in a reference hash value h r .

단계 607에서, 복호화된 서명, 즉 참조 해시값 hr은 단계 603에서 계산된 단 방향 감사 해시값 ha와 대조하여 검증된다. 검증이 성공하면, 즉 감사 해시값 ha 및 참조 해시값 hr이 같으면, 프로세서는 단계 608로 진행하여, 참조 메시지 인증 코드(MAC)를 계산한다. 그렇지 않은 경우, 소프트웨어 로딩 프로세스가 중단된다.In step 607, the decrypted signature, i.e. the reference hash value h r, is verified against the one-way audit hash value h a calculated in step 603. If the verification succeeds, that is, if the audit hash value h a and the reference hash value h r are equal, the processor proceeds to step 608 to calculate the reference message authentication code (MAC). Otherwise, the software loading process is interrupted.

단계 608에서, 프로세서는 MAC 계산 함수에의 입력값으로서 검증된 단방향 해시값 ha(=hr) 및 칩 고유 키 K(또는 K로부터 도출된 값)를 사용하고, 그 결과 참조 메시지 인증 코드값 tr = MAC(ha;K)이 얻어진다. MAC 함수의 출력값은 새로운 소프트웨어 및 데이터의 참조 MAC 값이다. 일부 실시예에서, 칩 고유 키 K는 프로세서에 의해서만 액세스가능한 안전한 메모리에 저장되어 있다. 예를 들어, 고유 키 K는, 예를 들어, 소위 e-퓨즈 기술을 사용하여 제조 프로세스 동안 칩에 구워(burn)질 수 있다. 메시지 인증 코드의 실시예에 대해 이하에서 기술한다. 프로세서는 새로운 참조 MAC 값 tr을, 새로운 소프트웨어 및 데이터 SW와 함께, 외부 메모리(106)에 저장한다. 선택적으로, 인증서(들) 및 디지털 서명값은 외부 메모리로부터 제거된다.In step 608, the processor uses the verified one-way hash value h a (= h r ) and the chip unique key K (or a value derived from K) as input to the MAC calculation function, resulting in a reference message authentication code value t r = MAC (h a ; K) is obtained. The output of the MAC function is the reference MAC value of the new software and data. In some embodiments, the chip unique key K is stored in a secure memory accessible only by the processor. For example, the unique key K can be burned to the chip during the manufacturing process, for example using so-called e-fuse technology. An embodiment of a message authentication code is described below. The processor stores the new reference MAC value tr, along with the new software and data SW, in external memory 106. Optionally, the certificate (s) and digital signature values are removed from external memory.

상기한 로딩 프로세스는 모바일 단말기의 프로세서에 의해 제어된다. 도 3 및 도 4와 관련하여 기술된 바와 같은 2-칩 아키텍처에서, 상기한 단계들은 나중에 그 소프트웨어를 실행하도록 되어 있는 칩(311)에 의해 수행된다.The loading process is controlled by the processor of the mobile terminal. In a two-chip architecture as described in connection with Figures 3 and 4, the above steps are performed by the chip 311 which is later adapted to execute the software.

수신된 데이터를 인증하기 위한 암호 기능, 특히, MAC 기능은 상기 단계들을 수행하는 프로세서의 내부 ROM에, 예를 들어, 부트 코드의 일부분으로서 저장되어 있는 전용 소프트웨어에 의해 수행될 수 있다.The cryptographic function, in particular the MAC function, for authenticating the received data may be performed by dedicated software stored in the internal ROM of the processor performing the above steps, for example as part of the boot code.

따라서, 저장된 참조 MAC 값은 이제 프로세서에 의한 소프트웨어 및 데이터의 차후의 감사(audit)에 이용가능하다. 예를 들어, 저장된 소프트웨어의 무결성을 검증하기 위해, 프로세서는, 칩 고유 키 K를 사용하여, 저장된 소프트웨어 및 데이터의 감사 해시값 h(SW) 및 계산된 감사 해시값의 감사 MAC 값 ta = MAC(h(SW);K)을 계산한다. 프로세서는 계산된 감사 MAC 값 ta를 저장된 참조 MAC 값 tr과 비교한다. 2개의 값이 같은 경우, 소프트웨어의 무결성이 검증된다.Thus, the stored reference MAC value is now available for subsequent auditing of software and data by the processor. For example, to verify the integrity of the stored software, the processor uses the chip unique key K to audit the audit hash value h (SW) of the stored software and data and the audit MAC value t a = MAC of the calculated audit hash value. Compute (h (SW); K). The processor compares the calculated audit MAC value t a with the stored reference MAC value t r . If the two values are the same, the integrity of the software is verified.

예를 들어, 이러한 감사가 모바일 단말기의 부트 프로세서 동안 및/또는 소프트웨어가 실행될 때마다 및/또는, 예를 들어, 미국 특허 제6,026,293호에 기술된 바와 같이, 미리 정해진 시간 간격으로 주기적으로 수행될 수 있다.For example, such an audit may be performed periodically during the boot processor of the mobile terminal and / or whenever the software is executed and / or at predetermined time intervals, as described, for example, in US Pat. No. 6,026,293. have.

도 7은 메시지 인증 코드(MAC)의 실시예의 계산을 나타낸 것이다. MAC은 가변 길이 변수 M 및 키 K를 받아서 고정-길이 출력 t(소위 MAC 값 또는 태그값이라 함)를 생성하는 함수이다, 즉 t = MAC(M;K)이다. 일부 실시예에서, M은 알고 있지만 K의 값에 관한 정보를 가지고 있지 않은 침입자의 경우, 동일한 태그값을 갖지만 M과 다른 메시지 M'을 찾아내는 것이 계산상 어렵도록(실행 불가능하도록), MAC이 정의된다. 게다가, 메시지 M은 알고 있지만 K의 값에 관한 정보를 갖지 않는 침입자가 정확한 태그값 t를 예측하기가 어렵도록, MAC 함수가 정의될 수 있다. 본 명세서에 기술된 로딩 방법에서, MAC은 신뢰할 수 없는 또는 안전하지 않은 매체에 저장되어 있는 데이터의 무결성을 검사하는 데 사용된다, 즉 이 상황에서, 페이로드 데이터를 저장 및 검색할 때, MAC이 한쪽 당사자, 즉 모바일 단말기에 의해 서만 사용된다. 일부 실시예에서, MAC 함수는 암호 해시 함수에, 특히 상기한 바와 같이, 수신된 페이로드 데이터를 인증하기 위해 사용되는 해시 함수 H에 기초한다. 이것은, 차후의 무결성 보호를 위해 MAC 값을 계산할 때, 수신된 페이로드 데이터의 인증 동안에 계산된 해시값의 재사용을 가능하게 해주며, MAC 값의 계산을 위한 계산 노력을 상당히 감소시키며, 따라서 설치 시간을 감소시킨다.7 shows a calculation of an embodiment of a message authentication code (MAC). MAC is a function that takes a variable length variable M and a key K and produces a fixed-length output t (so-called MAC value or tag value), ie t = MAC (M; K). In some embodiments, for an attacker who knows M but does not have information about the value of K, the MAC is defined so that it is computationally difficult (not feasible) to find the same tag value but different message M 'from M. do. In addition, the MAC function can be defined such that it is difficult for an attacker who knows message M but does not have information about the value of K to predict the exact tag value t. In the loading method described herein, the MAC is used to check the integrity of the data stored on an unreliable or insecure medium, i.e. in this situation, when storing and retrieving payload data, the MAC is It is only used by one party, ie mobile terminal. In some embodiments, the MAC function is based on a cryptographic hash function, in particular the hash function H used to authenticate received payload data, as described above. This enables the reuse of the calculated hash value during authentication of the received payload data when calculating the MAC value for future integrity protection, significantly reducing the computational effort for calculating the MAC value and thus the installation time. Decreases.

도 7은 MAC 계산 모듈의 블록도를 나타낸 것이다. MAC 계산 모듈은 MAC 함수 계산기(732)를 포함한다. MAC 함수 계산기(732)는 h(h는 수신된 페이로드에 대한 선행하는 서명 검증 프로세스(736) 동안에 계산된 검증된 해시값임, h = ha 또는 h = hr임)를 입력으로서 수신한다. 제2 입력으로서, MAC 함수(732)는 칩 고유 키 K로부터 도출되는 비밀키 K'을 수신한다. 상세하게는, 키 K'은, 칩 고유 키 K 및 모드 식별자(735)로부터, 의사 랜덤 함수(731), 예를 들어, 해시 함수(예를 들어, SHA-1)에 기초하는 의사 랜덤 함수를 사용하여 발생될 수 있다. 예를 들어, 칩 고유 키 K는 칩의 ASIC 제조 동안에 발생된 난수일 수 있다. 마스터 키 K로부터 키 K'을 도출하는 것은 서로 다른 키 K'이 서로 다른 목적으로(예를 들어, 서로 다른 유형의 소프트웨어, 소프트웨어의 서로 다른 부분, 기타 등등의 보호를 위해) 사용될 수 있고, 그에 의해 암호 분리(cryptographic separation)를 보장하고 방법의 유연성을 증대시킨다는 이점을 갖는다. 모드 식별자(735)는 서로 다른 모드의 선택을 가능하게 해준다. 예를 들어, 다중-칩 시나리오에서, 소프트웨어가 사용되기로 되어 있는 각각의 목표 칩에 대해 서로 다른 모드가 사용될 수 있다. 적당한 MAC 함수의 예는 HMAC(Keyed-Hashing for Message Authentication), CBC(Cipher Block Chaining) MAC(예를 들어, AES 또는 안전한 단방향 해시 함수를 사용함), 예를 들어, A.J. Menezes, P.C. van Oorschot, S.A. Vanstone의 "Handbook of Cryptology", p. 353, CRC Press(1997년)에 규정된 CBC-MAC을 포함하며, 여기서 AES 블록 암호화 암호(block encryption cipher)는 블록 암호(block cipher) E로서 사용된다. MAC 함수(732)는, 상기한 바와 같이, 대응하는 태그값 t를 생성한다.7 shows a block diagram of a MAC calculation module. The MAC calculation module includes a MAC function calculator 732. The MAC function calculator 732 receives as input h (h is a validated hash value calculated during the preceding signature verification process 736 for the received payload, h = h a or h = h r ). As a second input, the MAC function 732 receives the secret key K 'derived from the chip unique key K. Specifically, the key K 'is a pseudo random function based on a pseudo random function 731, for example, a hash function (e.g., SHA-1), from the chip unique key K and the mode identifier 735. Can be generated. For example, the chip unique key K may be a random number generated during ASIC manufacture of the chip. Deriving the key K 'from the master key K means that different keys K' can be used for different purposes (e.g., to protect different types of software, different parts of the software, etc.), Thereby ensuring cryptographic separation and increasing the flexibility of the method. The mode identifier 735 allows the selection of different modes. For example, in a multi-chip scenario, different modes may be used for each target chip for which software is to be used. Examples of suitable MAC functions are Keyed-Hashing for Message Authentication (HMAC), Cipher Block Chaining (CBC) MAC (e.g., using AES or a secure one-way hash function), e.g. AJ Menezes, PC van Oorschot, SA Vanstone, "Handbook of Cryptology", p. CBC-MAC as defined in 353, CRC Press (1997), where AES block encryption cipher is used as block cipher E. MAC function 732 generates the corresponding tag value t, as described above.

불법적인 MAC 값 계산을 방지하기 위해, 계산에 앞서 성공적인 서명 검증이 있을 때에 MAC 회로는 계산된 MAC 값 t만을 방출한다. 따라서, MAC 계산 모듈은, 서명 검증 프로세스(736)로부터, 수신된 페이로드 데이터의 디지털 서명이 성공적으로 검증되었는지 여부를 나타내는 추가의 입력(733)을 수신한다. 블록 734는 태그값 및 신호(733)를 입력으로 받고, 신호(733)가 해시값 h가 검증된, 즉 진정한(authentic) 해시값임을 나타내는 경우에만 계산된 태그값을 방출한다. 예를 들어, 도 6의 방법에서, 신호(733)는 단계 607에 의해 발생된다.To prevent illegal MAC value calculation, the MAC circuit only emits the calculated MAC value t when there is a successful signature verification prior to calculation. Thus, the MAC calculation module receives from the signature verification process 736 an additional input 733 indicating whether the digital signature of the received payload data was successfully verified. Block 734 accepts a tag value and signal 733 as inputs and emits a calculated tag value only if signal 733 indicates that hash value h is verified, i.e., an authentic hash value. For example, in the method of FIG. 6, signal 733 is generated by step 607.

유의할 점은 MAC 계산 모듈이 프로세서 칩 상에 별도의 MAC 계산 회로로서 구현될 수 있다는 것이다. 게다가, 계산된 MAC 값과 참조값 간의 차후의 비교가 MAC 회로에 부착된 비교 회로 내부에서 수행될 수 있다. 게다가, 비밀키 K는 그 회로의 일부분으로서 저장될 수 있다. 그 결과, 전체적인 MAC 계산은 전용의 회로에 국한될 수 있으며, 따라서 계산된 MAC의 그 회로 외부로의 노출/방출을 필요로 하지 않는다.Note that the MAC computation module may be implemented as a separate MAC computation circuit on the processor chip. In addition, subsequent comparisons between the calculated MAC value and the reference value can be performed inside the comparison circuit attached to the MAC circuit. In addition, the secret key K can be stored as part of the circuit. As a result, the overall MAC calculation can be limited to a dedicated circuit and thus does not require exposure / emission of the calculated MAC outside of that circuit.

도 7의 MAC 계산은 안전한 버전 제어를 더 포함하고 또 MAC 계산에의 입력 h 의 예측가능성을 방지하기 위해 아주 적은 계산 비용으로 추가적으로 향상될 수 있다. MAC 계산의 이 대체 실시예에 대해 도 8 및 도 9를 참조하여 이제부터 기술한다.The MAC calculation of FIG. 7 further includes secure version control and can be further improved with very low computational costs to prevent the predictability of the input h in the MAC calculation. This alternative embodiment of MAC calculation is now described with reference to FIGS. 8 and 9.

도 8은 버전 제어 메커니즘을 포함하는 메시지 인증 코드의 다른 실시예의 계산을 나타낸 것이고, 도 9는 버전 제어 프로세스의 흐름도를 나타낸 것이다.8 illustrates the calculation of another embodiment of a message authentication code that includes a version control mechanism, and FIG. 9 shows a flowchart of the version control process.

MAC 회로(800)의 이 실시예에 따르면, 블록 732에서의 MAC 계산은 4-튜플(tuple)(rand, h, cnt, back_cnt)(844)에 대해 수행된다. 4-튜플(four-tuple)(844)은 MAC 계산에의 입력이 서명 검증 프로세스(736)로부터의 입력에 의해 완전히 제어되지는 않도록 보장해주는 짧은(예를 들어, 64 비트) 랜덤 값 rand를 포함한다. 4-튜플은 이전의 실시예에서와 같이 검증된 해시값 h를 더 포함한다. 마지막으로, 4-튜플은 이하에서 기술되는 버전 제어 메커니즘의 버전 제어 카운터 cnt 및 버전 제어 백 카운터 back_cnt를 포함한다. MAC 함수(732)(예를 들어 HMAC, CBC-MAC, 기타 등등)는 또한 도 7과 관련하여 기술된 바와 같은 비밀키 K'을 수신하고 4-튜플 및 비밀키 K'으로부터 MAC 값을 계산한다. 이와 마찬가지로, 도 7과 관련하여 기술된 바와 같이, 계산된 태그값 t는 서명 검증 프로세스가 해시값 h를 검증했음을 서명 신호(703)가 나타내는 경우에만 방출된다.According to this embodiment of the MAC circuit 800, the MAC computation at block 732 is performed on a 4-tuple (rand, h, cnt, back_cnt) 844. Four-tuple 844 includes a short (eg, 64-bit) random value rand that ensures that the input to the MAC computation is not fully controlled by the input from the signature verification process 736. do. The 4-tuple further includes the hash value h verified as in the previous embodiment. Finally, the 4-tuple includes the version control counter cnt and the version control back counter back_cnt of the version control mechanism described below. The MAC function 732 (eg HMAC, CBC-MAC, etc.) also receives the secret key K 'as described in connection with FIG. 7 and calculates the MAC value from the 4-tuple and secret key K'. . Likewise, as described with respect to FIG. 7, the calculated tag value t is emitted only if the signature signal 703 indicates that the signature verification process has verified the hash value h.

4-튜플(844)은 이전에 수신된 소프트웨어 버전의 버전 제어 리스트(842)를 유지하고 있는 버전 제어 모듈(841)에 의해 발생된다. 상세하게는, 버전 제어 리스트(841)는 데이터 레코드의 리스트를 포함하며, 여기서 각각의 데이터 레코드는 이전에 관찰된 해시값에 대응하는 4-튜플을 포함한다. 가장 최근의 해시값을 갖는 레코드는 실제로 설치된/사용중인 소프트웨어에 대응하는 리스트(842)의 최상위 요소(top element)를 말한다.Four-tuple 844 is generated by version control module 841, which maintains a version control list 842 of previously received software versions. Specifically, version control list 841 includes a list of data records, where each data record includes four tuples corresponding to previously observed hash values. The record with the most recent hash value refers to the top element of the list 842 corresponding to the software actually installed / in use.

버전 제어 모듈(841)은 검증된 해시값 h 및 상기한 바와 같이 서명 검증 프로세스로부터 서명이 성공적으로 검증되었음을 나타내는 디지털 신호(733)를 수신한다. 게다가, 버전 제어 모듈(841)은 서명 검증 프로세스(736)로부터 소프트웨어 버전 카운터 cnt 및 숫자 back_cnt를 수신한다. 이 숫자 back_cnt는, 주어진 소프트웨어 버전이 설치되어 있는 경우, 얼마나 많은 이전의 버전이 여전히 설치될 수 있는지를 나타낸다. 예를 들어, back_cnt는 0과 CMAX (예를 들어, CMAX = 15) 사이의 숫자일 수 있으며, 여기서 back_cnt = 0은 새로운 소프트웨어가 이전의 버전으로 대체되도록 허용되어 있지 않음을 의미한다. 따라서, back_cnt는 로드된 소프트웨어의 후방 및 전방 호환성을 제어하기 위한 간단하지만 효과적인 메커니즘을 구현한다. 일부 실시예에서, cnt 및 back_cnt의 값은 로딩 프로세스 동안에 수신되는 소프트웨어 패킷의 일부분으로서, 예를 들어, 수신된 소프트웨어 패킷의 헤더 섹션의 일부분으로서 수신된다.The version control module 841 receives the verified hash value h and a digital signal 733 indicating from the signature verification process as described above that the signature was successfully verified. In addition, version control module 841 receives software version counter cnt and number back_cnt from signature verification process 736. This number back_cnt indicates how many previous versions can still be installed if a given software version is installed. For example, back_cnt can be a number between 0 and C MAX (eg, C MAX = 15), where back_cnt = 0 means that new software is not allowed to be replaced by the previous version. Thus, back_cnt implements a simple but effective mechanism for controlling backward and forward compatibility of loaded software. In some embodiments, the values of cnt and back_cnt are received as part of a software packet received during the loading process, eg, as part of a header section of the received software packet.

로딩 프로세스 동안에 서명 검증 프로세스(736)로부터 새로운 해시값 h, 새로운 카운터 cnt, 새로운 back_cnt 값, 및 신호(733)의 수신 시에(단계 901), 버전 제어 모듈(841)은 신호(733)를 사용하여 서명 검증 프로세스(736) 동안에 해시값 h가 검증되었는지 여부를 확인한다(단계 902). 검증되지 않은 경우, 버전 제어 모듈(841)은 h의 값을 차단한다, 즉 버전 제어 및 MAC 계산 프로세스가 중단된다. 신호(733)가 해시값이 진정한 것임을 나타내는 경우, 버전 제어 모듈(841)은 단계 903으로 계속된다.Upon receipt of a new hash value h, new counter cnt, new back_cnt value, and signal 733 from the signature verification process 736 (step 901), the version control module 841 uses the signal 733 during the loading process. To check whether the hash value h was verified during the signature verification process 736 (step 902). If not verified, the version control module 841 blocks the value of h, i.e., the version control and MAC calculation process stops. If signal 733 indicates that the hash value is true, version control module 841 continues to step 903.

단계 903에서, 버전 제어 모듈(841)은 수신된 해시값을 버전 제어 리스트(842) 내의 해시값과 비교한다. 수신된 해시값 h가 버전 제어 리스트(842) 내의 이전의 해시값 hprev 중 하나와 같은 경우, 버전 제어 모듈(841)은 단계 904로 계속되고, 그렇지 않은 경우, 프로세스는 단계 906으로 계속된다.At step 903, version control module 841 compares the received hash value with a hash value in version control list 842. If the received hash value h is equal to one of the previous hash values h prev in the version control list 842, the version control module 841 continues to step 904, otherwise the process continues to step 906.

단계 904에서, 즉 수신된 해시값 h가 이전의 해시값 hprev 중 하나와 같은 경우에, 이 프로세스는 대응하는 4-튜플(rand, h, cnt, back_cnt)prev를 검색하고, 이전의 버전의 카운터 값 cntprev가 서명 검증 프로세스(736)로부터 수신된 값 cnt 및 back_cnt에 의해 정의되는 허용된 범위 내에 있는지 여부를 판정한다. 일부 실시예에서, 이 허용된 범위는 범위 [cnttop-back_cnt, ∞)로서 정의되며, 여기서 cnttop은 리스트의 현재 최상위 요소의 cnt 값이다. 간단함을 위해, 허용된 값들의 범위에 대한 상한이 없는 것으로 가정한다. 그렇지만, 다른 실시예들에서, 상한이 정의될 수 있다는 것을 잘 알 것이다.In step 904, i.e., if the received hash value h is equal to one of the previous hash values h prev , the process retrieves the corresponding 4-tuple (rand, h, cnt, back_cnt) prev , It is determined whether the counter value cnt prev is within the allowed range defined by the values cnt and back_cnt received from the signature verification process 736. In some embodiments, this allowed range is defined as the range [cnt top -back_cnt, ∞), where cnt top is the cnt value of the current top element of the list. For simplicity, it is assumed that there is no upper limit for the range of allowed values. However, it will be appreciated that in other embodiments, an upper limit may be defined.

cntprev가 허용된 범위 내에 있는 경우, 버전 제어 모듈(841)은 성분 randnew = 버전 제어 모듈(841)에 의해 발생된 새로운 랜덤값, hnew = h, cntnew = cntprev, back_cntnew = back_cntprev를 갖는 새로운 4-튜플(rand, h, cnt, back_cnt)new을 발생하고(단계 905), 버전 제어 모듈은 동일한 h 값을 갖는 이전의 튜플을 새로운 튜플 로 대체하고 이 새로운 튜플을 리스트에서의 최상위 요소로서 설정한다.If cnt prev is within the allowed range, the version control module 841 determines that the new random values generated by the component rand new = version control module 841, h new = h, cnt new = cnt prev , back_cnt new = back_cnt Generate a new 4-tuple with prev (rand, h, cnt, back_cnt) new (step 905), and the version control module replaces the old tuple with the same h value with the new tuple and replaces this new tuple in the list. Set as the top level element.

단계 903에서의 테스트에서 h가 이전의 해시값 중 하나와 같지 않음을 보여주는 경우, 새로운 랜덤값, 해시값 h, 및 카운터가 허용된 back_cnt(이 h와 연관됨)와 함께 버전 제어 리스트에 저장된다(단계 906). 이 경우에, randnew = 새로운 랜덤값, hnew = h, cntnew = cnt, back_cntnew = min(back_cnt, cnt - min_allowed_version)에 따라 새로운 4-튜플(rand, h, cnt, back_cnt)new가 생성되고, 이 새로운 튜플이 리스트에서의 최상위 요소가 된다. 여기에서, min_allowed_version은 업데이트 리스트에서의 임의의 튜플에 의한 현재의 최하위 허용 버전이다. 이 엔트리가 업데이트 리스트에서 최상단에 배치된 후에, min_allowed_version은 cnttop - back_cnttop으로서, 즉 최상위 요소의 카운터 cnttop 및 back_cnt 버전으로부터 재계산된다(단계 907). 마지막으로, 리스트에서의 모든 요소는, 그의 back_cnt 값이 가장 작은 허용된 버전 min_allowed_version보다 더 낮은 버전 번호를 제공하지 않는 가장 큰 가능한 값이 되도록 업데이트된다(단계 908). 리스트가 허용된 범위 밖에 있는 버전을 갖는 엔트리를 포함하는 경우, 이 엔트리는 삭제된다.If the test in step 903 shows that h is not equal to one of the previous hash values, then a new random value, hash value h, and counter are stored in the version control list with the allowed back_cnt (associated with this h). (Step 906). In this case, new = new random value rand, h new = h, cnt = cnt new, back_cnt new = min - the new generation (back_cnt, cnt min_allowed_version) new 4-tuple (rand, h, cnt, back_cnt ) according to This new tuple becomes the top element in the list. Where min_allowed_version is the current lowest allowed version by any tuple in the update list. After this entry is placed at the top of the update list, min_allowed_version is recalculated as cnt top -back_cnt top , ie from counters cnt top and back_cnt versions of the top element (step 907). Finally, every element in the list is updated so that its back_cnt value is the largest possible value that does not provide a lower version number than the smallest allowed version min_allowed_version (step 908). If the list contains entries with versions outside the allowed range, these entries are deleted.

일부 실시예에서, MAC 검사값(MACLIST)은 리스트 내의 엔트리의 불법적 조작을 방지하기 위해 버전 제어 리스트와 연관되어 있으며, 그에 의해 이 방법의 보안을 추가적으로 향상시킨다. MACLIST 값은 리스트가 업데이트된 경우에만, 즉 성공적인 서명 검증 이후에 업데이트된다. 버전 제어 리스트에 액세스/이를 사용하기 이전에, 현재의 MAC 검사값이 MACLIST 값과 대조하여 검사될 수 있다. 불법적인 MACLIST 값 계산을 방지하기 위해, MAC 회로는 그 계산 이전에 성공적인 서명 검증이 있은 경우에만 계산된 MAC 값을 방출한다(도 7 및 도 8의 블록 734에 의해 제어됨).In some embodiments, the MAC check value MACLIST is associated with a version control list to prevent illegal manipulation of entries in the list, thereby further improving the security of this method. The MACLIST value is updated only when the list is updated, i.e. after successful signature verification. Prior to accessing / using the version control list, the current MAC check may be checked against the MACLIST value. To prevent illegal MACLIST value calculations, the MAC circuit only emits the calculated MAC value if there is a successful signature verification before that calculation (controlled by block 734 of FIGS. 7 and 8).

따라서, 저장된 참조 MAC 값 및 버전 제어 리스트는 이제 프로세서에 의한 소프트웨어 및 데이터의 차후의 감사에 이용가능하다. 예를 들어, 저장된 소프트웨어의 무결성을 검증하기 위해, 프로세서는 저장된 소프트웨어 및 데이터의 감사 해시값 ha = h(SW)을 계산하고 버전 제어 리스트로부터 검색된 값 rand, cnt 및 back_cnt로 감사 튜플 (rand, ha, cnt, back_cnt)을 발생한다. 이것으로부터, 프로세서는 칩 고유 키 K를 사용하여 계산된 감사 튜플의 감사 MAC 값 ta = MAC((rand, ha, cnt, back_cnt);K)을 계산한다. 프로세서는 계산된 감사 MAC 값 ta를 저장된 참조 MAC 값 tr과 비교한다. 이 2개의 값이 같은 경우, 소프트웨어의 무결성이 검증된다.Thus, the stored reference MAC values and version control lists are now available for subsequent auditing of software and data by the processor. For example, to verify the integrity of the stored software, the processor computes the audit hash value h a = h (SW) of the stored software and data and audit tuples (rand, cnt and back_cnt with the values rand, cnt and back_cnt retrieved from the version control list). h a , cnt, back_cnt). From this, the processor calculates the audit MAC value ta = MAC ((rand, h a , cnt, back_cnt); K) of the audit tuple calculated using the chip unique key K. The processor compares the calculated audit MAC value t a with the stored reference MAC value t r . If these two values are the same, the integrity of the software is verified.

상기한 바와 같이, 이러한 감사는 모바일 단말기의 부트 프로세스 동안에 및/또는 소프트웨어가 실행되어야 할 때마다 및/또는 미리 정해진 시간 간격으로 주기적으로 수행될 수 있다.As noted above, this audit may be performed periodically during the boot process of the mobile terminal and / or whenever software needs to be executed and / or at predetermined time intervals.

상기 프로세스에 대해 이제부터 예로서 또한 도 10과 관련하여 추가적으로 설명한다.The process is now further described with reference to FIG. 10 as an example.

도 10은 크기 3의 버전 제어 리스트가 사용되는, 즉 버전 제어 리스트가 3개 의 튜플을 저장할 수 있는 버전 제어 메커니즘의 예를 나타낸 것이다. 이 예에서, 또한 서명 검증 프로세스로부터 수신되는 해시값 h, 버전 카운터 cnt 및 백 카운터 back_cnt의 값들(h, cnt, back_cnt)을 갖는 일련의 8개의 소프트웨어 버전 배포판이 있는 것으로 가정하고 있다.FIG. 10 shows an example of a version control mechanism in which a version control list of size 3 is used, that is, the version control list can store three tuples. In this example, it is also assumed that there are a series of eight software version distributions with hash values h, version counter cnt and back counter back_cnt values (h, cnt, back_cnt) received from the signature verification process.

버전 1: (H1, 1, 0)Version 1: (H1, 1, 0)

버전 2: (H2, 2, 1)Version 2: (H2, 2, 1)

버전 3: (H3, 3, 2)Version 3: (H3, 3, 2)

버전 4: (H4, 4, 3)Version 4: (H4, 4, 3)

버전 5: (H5, 5, 2)Version 5: (H5, 5, 2)

버전 6: (H6, 6, 3)Version 6: (H6, 6, 3)

버전 7: (H7, 7, 4)Version 7: (H7, 7, 4)

버전 8: (H8, 8, 4)Version 8: (H8, 8, 4)

또한, 적용되지 않은 버전 7을 제외하고는, 상기 버전들이 순차적으로 적용되고 있는 것으로 가정하고 있다. 도 10은 버전 8의 설치 이후에 버전 제어 리스트(1001)를 나타낸 것이다. 버전 제어 리스트(1001)의 각각의 행은 설치된 버전들 중 하나에 대한 대응하는 4-튜플을 포함하며, 리스트의 최상위 요소인 행 1002는 버전 8에 대응하고, 행 1003은 버전 6에 대응하며, 행 1004는 버전 5에 대응한다. R8, R6 및 R5는 상기한 바와 같이 버전 제어 모듈에 의해 발생된 난수이다. 버전 8이 적용된 후에, 최하위의 허용된 버전이 4(버전 8의 cnt가 8이고 버전 8의 back_cnt가 4이며, 8 - 4 = 4이기 때문임)이었으며, 그에 따라 min_allowed_version = 4이다. 따라서, 버전 8이 추가된 후에 최하위 허용된 버전에 대한 제한을 충족시키기 위해 리스트에서의 나머지 엔트리의 back_cnt 값이 버전 8의 설치 동안에 조정되었다. 상세하게는, 행 1002에서의 back_cnt 값이 2로 설정되었고, 행 1003에서의 back_cnt 값은 1로 설정되었다. 버전 8로의 업데이트 이전에, 최하위 허용된 버전은 3이었지만, 이 값은 버전 8을 통해 4로 증가되었다.Also, except for version 7, which is not applied, it is assumed that the versions are applied sequentially. 10 shows version control list 1001 after installation of version 8. FIG. Each row of the version control list 1001 includes a corresponding 4-tuple for one of the installed versions, row 1002, the highest element of the list, corresponds to version 8, row 1003 corresponds to version 6, Row 1004 corresponds to version 5. R8, R6 and R5 are random numbers generated by the version control module as described above. After version 8 was applied, the lowest allowed version was 4 (because version 8's cnt is 8 and version 8's back_cnt is 4 and 8-4 = 4), thus min_allowed_version = 4. Thus, after version 8 was added, the back_cnt value of the remaining entries in the list was adjusted during the installation of version 8 to meet the restrictions on the lowest allowed version. Specifically, the back_cnt value in row 1002 was set to 2, and the back_cnt value in row 1003 was set to 1. Prior to the update to version 8, the lowest allowed version was 3, but this value has been increased to 4 through version 8.

도 10은 또한 버전 7의 설치 이후에 버전 제어 테이블(1011)을 나타내고 있다. 무엇보다도 먼저, 버전 7의 카운터 값 cnt는 7이다, 즉 현재 버전의 허용된 범위 내에 있다. 해시값 H7은 아직 버전 제어 리스트(1001)에 존재하지 않으며, 따라서 새로운 해시값 H7을 갖는 새로운 4-튜플(1007)은 버전 제어 테이블(1011)의 새로운 최상위 요소(1012)로서 저장된다. 이전의 최상위 요소는 리스트에서 아래로 이동되고 행 1013에 대응한다. 버전 6은 이제 행 1014에 있는 반면, 버전 5는 리스트로부터 제거되는데, 그 이유는, 이 예에서, 버전 제어 리스트에 3개의 4-튜플을 위한 공간만이 있기 때문이다. 새로운 최상위 요소(1012)의 back_cnt의 값은 현재의 최하위 허용된 버전의 제한(min_allowed_version = 4)을 만족시키기 위해 3으로 설정되어 있다.10 also shows version control table 1011 after installation of version 7. FIG. First of all, the counter value cnt of version 7 is 7, i.e., it is within the allowed range of the current version. The hash value H7 does not yet exist in the version control list 1001, so that a new four-tuple 1007 with a new hash value H7 is stored as a new top element 1012 of the version control table 1011. The previous top element is moved down in the list and corresponds to row 1013. Version 6 is now in row 1014, while version 5 is removed from the list because, in this example, there is only space for three 4-tuples in the version control list. The value of back_cnt of the new top element 1012 is set to 3 to satisfy the limit of the current lowest allowed version (min_allowed_version = 4).

도 11은 소프트웨어 업그레이드에 대한 소프트웨어 로딩 프로세스의 흐름도를 나타낸 것이다. 이 프로세스는 소프트웨어를 처음으로 로드하는 도 6에 도시된 프로세스와 유사하다.11 shows a flowchart of a software loading process for software upgrade. This process is similar to the process shown in FIG. 6 that loads software for the first time.

최초 단계 1101에서, 모바일 단말기는 상기한 바와 같이 로컬 또는 원격 인터페이스(예를 들어, GSM, WCDMA, 기타 등등)를 거쳐 재프로그래밍 툴로부터 소프 트웨어 업그레이드 데이터 패킷을 수신한다. 이 패킷은, 상기 도 5와 관련하여 기술된 바와 같이, 보호되는 소프트웨어의 새로운 소프트웨어 업그레이드 Δ, 하나 이상의 인증서 C, 및 디지털 서명 S(hr)을 포함한다. 선택적으로, 이 소프트웨어는 또한 데이터, 예를 들어, 업데이트된 구성 데이터를 포함할 수 있다. 일 실시예에서, 새로운 소프트웨어는 현재의 소프트웨어에 대한 새로운 소프트웨어의 차이를 포함하는 소위 델타-파일로서 로드되며, 따라서 업그레이드 패킷의 크기를 감소시킨다. 델타-파일 기술은 기술 분야에 공지되어 있으며, 예를 들어 Christian Reichenberger의 "Delta storage for arbitary non-text files(임의적인 비텍스트 파일에 대한 델타 저장)", Proc. Of the 3rd International Workshop on Software Configuration Management, pp. 144-152, Norway, June 1991에 기술되어 있다. 다른 대안으로서, 다른 업그레이드 파일 생성 방법이 사용될 수 있거나 새로운 소프트웨어 전체가 수신될 수 있다. 서명 S(hr)은 새로운 소프트웨어로부터 계산되는 암호화된 해시값을 포함한다. 이 서명은 먼저 새로운 소프트웨어 SW의 단방향 해시 hr = H(SW)가 계산되고 그 다음에 이 해시값이 공개-비밀키 쌍(예를 들어, RSA 공개-비밀키 쌍)의 비밀키로 암호화되도록 계산된다. 대응하는 공개키는 소프트웨어 업그레이드 패키지에 포함되어 있는 인증서에 포함되어 있다. 소프트웨어 업그레이드 패키지의 수신 시에, 모바일 단말기는 소프트웨어 업그레이드, 인증서(들), 및 서명을 외부 메모리(106)에 저장한다.In the first step 1101, the mobile terminal receives a software upgrade data packet from the reprogramming tool via a local or remote interface (eg GSM, WCDMA, etc.) as described above. This packet contains a new software upgrade Δ, one or more certificates C, and a digital signature S (h r ) of the protected software, as described in connection with FIG. 5 above. Optionally, the software may also include data, for example updated configuration data. In one embodiment, the new software is loaded as a so-called delta-file containing the difference of the new software over the current software, thus reducing the size of the upgrade packet. Delta-file techniques are known in the art and are described, for example, in Christian Reichenberger, "Delta storage for arbitary non-text files", Proc. Of the 3rd International Workshop on Software Configuration Management, pp. 144-152, Norway, June 1991. Alternatively, other upgrade file creation methods may be used or new software may be received in its entirety. The signature S (h r ) contains an encrypted hash value computed from the new software. This signature is first calculated so that the one-way hash h r = H (SW) of the new software SW is computed and then this hash value is encrypted with the secret key of the public-private key pair (for example, the RSA public-private pair). do. The corresponding public key is included in the certificate included in the software upgrade package. Upon receipt of the software upgrade package, the mobile terminal stores the software upgrade, certificate (s), and signature in external memory 106.

단계 1102에서, 모바일 단말기의 프로세서는 새로 저장된 소프트웨어 업그레 이드, 인증서(들) C, 및 서명 S(hr)을 그의 내부 메모리로 읽어들인다.In step 1102, the processor of the mobile terminal reads the newly stored software upgrade, certificate (s) C, and signature S (h r ) into its internal memory.

단계 1122에서, 프로세서는 버전 제어를 수행한다. 모바일 단말기는 업그레이드 패킷의 일부분으로서 새로운 소프트웨어 버전의 소프트웨어 버전 번호를 수신한다. 새로운 소프트웨어 이미지의 소프트웨어 버전 번호는 외부 메모리(MAC에 의해 보호됨)에 저장된 현재의 소프트웨어의 버전 번호와 대조하여 검사한다. 새로운 소프트웨어 버전 번호가 이전의 소프트웨어 버전 번호보다 낮은 경우, 모바일 단말기는 업데이트 프로세스를 중단한다. 다른 실시예에서, 도 8 및 도 9와 관련하여 기술된 버전 제어 프로세스가 수행된다.In step 1122, the processor performs version control. The mobile terminal receives the software version number of the new software version as part of the upgrade packet. The software version number of the new software image is checked against the version number of the current software stored in the external memory (protected by the MAC). If the new software version number is lower than the previous software version number, the mobile terminal stops the update process. In another embodiment, the version control process described in connection with FIGS. 8 and 9 is performed.

단계 1122의 버전 제어가 성공하였으면, 이 프로세스는 단계 1123으로 계속하여, 프로세서는 수신된 델타-파일 Δ 및 외부 메모리(MAC에 의해 보호됨)에 저장된 현재의 소프트웨어 버전 SWprev로부터 새로운 소프트웨어 SWnew를 생성한다.If the version control of step 1122 was successful, the process continues to step 1123, wherein the processor creates a new software SW new from the received delta-file Δ and the current software version SW prev stored in the external memory (protected by MAC). do.

단계 1103에서, 프로세서는 새로운 소프트웨어 SWnew의 단방향 감사 해시값 ha = H(SWnew)을 계산한다.In step 1103, the processor calculates the one-way audit hash value h a = H (SW new ) of the new software SW new .

단계 1104에서, 프로세서는 메모리(1105)로부터 루트 공개키 PK를 읽어들인다. 일부 실시예에서, 루트 공개키가 안전하게 저장되어 있다, 즉 무결성 보호된다. 일 실시예에서, 루트 공개키는, 상기한 바와 같이, 프로세서의 내부 ROM에 저장되어 있다. 프로세서는 새로운 소프트웨어의 서명 S(hr)을 검증하기 위해 루트 공개키 PK를 사용한다. 단지 하나의 인증서만이 사용되는 경우, 서명 S(hr)은 인증 서 C 내의 공개키와 대조하여 검증된다. 이어서, 인증서 C는 차례로 루트 공개키 PK와 대조하여 검증된다. 몇 가지 인증서가 사용되는 경우, 인증서 체인 전부가 검증된다. 그 경우에, 체인에서의 마지막 인증서의 서명이 루트 공개키와 대조하여 검증된다. 따라서, 단계 1104에서, 프로세서는 새로운 소프트웨어에 서명하는 데 사용되는 공개키를 검증한다. 검증이 성공하는 경우, 프로세서는 단계 1106으로 계속하여, 서명을 검증한다. 그렇지 않은 경우, 소프트웨어 로딩 프로세스가 중단된다.In step 1104, the processor reads the root public key PK from memory 1105. In some embodiments, the root public key is stored securely, i.e. integrity protected. In one embodiment, the root public key is stored in an internal ROM of the processor, as described above. The processor uses the root public key PK to verify the signature S (h r ) of the new software. If only one certificate is used, the signature S (h r ) is verified against the public key in certificate C. Certificate C is then verified against the root public key PK in turn. If several certificates are used, the entire certificate chain is verified. In that case, the signature of the last certificate in the chain is verified against the root public key. Thus, at step 1104, the processor verifies the public key used to sign the new software. If the verification succeeds, the processor continues with step 1106 to verify the signature. Otherwise, the software loading process is interrupted.

단계 1106에서, 프로세서는 단계 1104에서 검증된 공개키를 사용하여 소프트웨어의 디지털 서명 S(hr)을 복호화하며, 그 결과 참조 해시값 hr이 얻어진다.In step 1106, the processor decrypts the digital signature S (h r ) of the software using the public key verified in step 1104, resulting in a reference hash value h r .

단계 1107에서, 복호화된 서명, 즉 참조 해시값 hr은 단계 1103에서 계산된 단방향 감사 해시값 ha와 대조하여 검증된다. 이 검증이 성공하면, 즉, 감사 해시값 ha 및 참조 해시값 hr이 같은 경우, 프로세서는 단계 1108로 진행하여 참조 메시지 인증 코드(MAC)를 계산한다. 그렇지 않은 경우, 소프트웨어 로딩 프로세스는 중단된다.In step 1107, the decrypted signature, i.e. the reference hash value h r, is verified against the one-way audit hash value h a calculated in step 1103. If this verification succeeds, that is, if the audit hash value h a and the reference hash value h r are equal, the processor proceeds to step 1108 to calculate the reference message authentication code (MAC). Otherwise, the software loading process is stopped.

단계 1108에서, 프로세서는 검증된 단방향 해시값 ha 및 칩 고유 키 K(또는 K로부터 도출된 값)를 MAC 계산 함수에의 입력값으로서 사용하고, 그 결과 참조 메시지 인증 코드값 tr = MAC(ha;K)이 얻어진다. MAC 함수의 출력값은 새로운 소프트웨어의 참조 MAC 값이다. 일부 실시예에서, 칩 고유 키 K는, 예를 들어, 소위 e- 퓨즈 기술을 사용하여 제조 프로세스 동안에 칩에 구워져 있다. 다른 대안으로서, 키 K는 프로세서만이 액세스가능한 다른 안전한 메모리에 저장된다. 이상, 메시지인증 코드의 실시예를 설명하였다. 프로세서는 새로운 참조 MAC 값 tr을 새로운 소프트웨어와 함께 외부 메모리(106)에 저장한다. 이전의 MAC 값은 삭제된다. 선택적으로, 인증서(들) 및 디지털 서명값은 외부 메모리로부터 제거된다. 새로운 소프트웨어 버전 SWnew는 외부 메모리에 저장되고, 이전의 소프트웨어 버전은 삭제된다.In step 1108, the processor checks the verified one-way hash value h a And the chip unique key K (or a value derived from K) as an input value to the MAC calculation function, and as a result, a reference message authentication code value t r = MAC (h a ; K) is obtained. The output of the MAC function is the reference MAC value of the new software. In some embodiments, the chip unique key K is baked into the chip during the manufacturing process, for example using so-called e-fuse technology. As another alternative, the key K is stored in another secure memory accessible only to the processor. The embodiment of the message authentication code has been described above. The processor stores the new reference MAC value t r in external memory 106 along with the new software. The previous MAC value is deleted. Optionally, the certificate (s) and digital signature values are removed from external memory. The new software version SW new is stored in external memory and the previous software version is deleted.

상기한 로딩 프로세스는 모바일 단말기의 프로세서에 의해 제어된다. 도 3 및 도 4와 관련하여 기술된 바와 같은 2-칩 아키텍처에서, 상기 단계들은 차후에 소프트웨어를 실행하기로 되어 있는 칩(311)에 의해 수행된다.The loading process is controlled by the processor of the mobile terminal. In a two-chip architecture as described in connection with FIGS. 3 and 4, the steps are performed by a chip 311 which is supposed to execute software later.

따라서, 이상에서, 많은 서로 다른 시스템에 대한 소프트웨어의 보호를 위한 강력한 소프트웨어 서명 메커니즘이 기술되어 있다. 이 메커니즘은 안전한 소프트웨어 저장을 위해 대칭키 기반 무결성 보호 메커니즘과 효율적으로 결합된다. SW가 플랫폼에 설치된 경우, 대칭키 기반 메커니즘이 사용되고, 이전의 계산으로부터 이점이 얻어진다. 게다가, 버전 제어 소프트웨어를 보호하는 결합된 메커니즘이 본 명세서에 기술되어 있다.Thus, in the above, a robust software signature mechanism is described for the protection of software for many different systems. This mechanism is effectively combined with a symmetric key-based integrity protection mechanism for secure software storage. If the SW is installed on the platform, a symmetric key based mechanism is used and benefits from the previous calculations. In addition, a combined mechanism for protecting version control software is described herein.

저장 장치에 제공된 무결성 보호는 2 CPU 아키텍처와 관련하여, 비휘발성 메모리가 비신뢰 CPU에 연결될 때, 또한 SW 업데이트가 필요한 경우에 특히 유익하다.Integrity protection provided to the storage device is particularly beneficial with respect to the two CPU architecture when non-volatile memory is connected to an untrusted CPU and also when a SW update is needed.

일부 실시예들이 상세히 기술되고 도시되어 있지만, 본 발명은 이들에 한정되지 않으며, 또한 이하의 청구 범위에 정의된 주제의 범위 내에서 다른 방식들로 구현될 수 있다.While some embodiments have been described and illustrated in detail, the invention is not limited thereto, and may also be embodied in other ways within the scope of the subject matter defined in the following claims.

상세하게는, 이들 실시예는 데이터 처리 장치의 예로서 모바일 단말기를 참조하여 주로 기술되어 있다. 그렇지만, 본 명세서에 기술된 방법, 제품 수단, 및 장치가 다른 데이터 처리 장치에도 적용될 수 있다는 것을 잘 알 것이다.In detail, these embodiments are mainly described with reference to a mobile terminal as an example of a data processing apparatus. However, it will be appreciated that the methods, product means, and apparatus described herein may be applied to other data processing apparatus.

본 명세서에 기술된 방법, 제품 수단, 및 장치는 몇 가지 개별 요소를 포함하는 하드웨어에 의해 또한 적당히 프로그램된 마이크로프로세서에 의해 구현될 수 있다. 몇 개의 수단을 열거하는 장치 청구항에서, 이들 수단 중 몇 개는 하나의 동일한 하드웨어 물품, 예를 들어, 적절히 프로그램된 마이크로프로세서, 하나 이상의 디지털 신호 처리기, 기타 등등으로 구현될 수 있다. 어떤 대책이 서로 다른 종속항에 인용되거나 서로 다른 실시예에 기술되어 있다는 단순한 사실이 이들 대책의 조합이 유익하게 사용될 수 없음을 말하는 것이 아니다.The methods, product means, and apparatus described herein may be implemented by hardware including several individual elements and also by a suitably programmed microprocessor. In the device claim enumerating several means, several of these means may be embodied in one and the same hardware article, for example, a suitably programmed microprocessor, one or more digital signal processors, or the like. The simple fact that certain measures are cited in different dependent claims or described in different embodiments does not mean that a combination of these measures cannot be used to advantage.

강조해야 할 것은, 용어 "포함한다/포함하는"이, 본 명세서에서 사용될 때, 언급된 특징, 정수, 단계 또는 구성요소의 존재를 명기하는 것으로 보아야 하며 하나 이상의 다른 특징, 정수, 단계, 구성요소 또는 이들의 그룹의 존재 또는 추가를 배제하는 것이 아니라는 것이다.It should be emphasized that the term "comprising / comprising", when used herein, should be taken to indicate the presence of the stated feature, integer, step, or component, and one or more other features, integers, steps, components Or does not exclude the presence or addition of groups thereof.

Claims (32)

데이터를 데이터 처리 장치로 로드하는 방법으로서,A method of loading data into a data processing device, 상기 데이터 처리 장치에 의해 페이로드 데이터 항목을 수신하는 단계,Receiving a payload data item by the data processing device, 상기 페이로드 데이터 항목의 진정성(authenticity)을 보장하기 위해 암호 인증 프로세스를 수행하는 단계,Performing a password authentication process to ensure authenticity of the payload data item, 상기 인증된 수신 페이로드 데이터 항목을 상기 데이터 처리 장치에 저장하는 단계, 및Storing the authenticated received payload data item in the data processing device, and 상기 저장된 페이로드 데이터 항목을 무결성 보호하는 단계Integrity protecting the stored payload data item 를 포함하며,Including; 상기 암호 인증 프로세스를 수행하는 단계는 적어도 상기 수신된 데이터 항목의 감사 해시값(audit hash value)을 계산하는 단계를 포함하고,Performing the cryptographic authentication process comprises calculating at least an audit hash value of the received data item; 상기 무결성 보호 단계는, 상기 데이터 처리 장치에 저장된 비밀키를 입력으로서 사용하여, 적어도 상기 감사 해시값의 참조 메시지 인증 코드값을 계산하는 단계를 더 포함하는 것을 특징으로 하는 데이터 로드 방법.And said integrity protecting step further comprises calculating at least a reference message authentication code value of said audit hash value using a private key stored in said data processing device as input. 제1항에 있어서, 상기 암호 인증 프로세스는,The method of claim 1, wherein the password authentication process, 참조 해시값을 수신하는 단계, 및Receiving a reference hash value, and 상기 수신된 페이로드 데이터 항목의 진정성을 검증하기 위해 상기 수신된 참조 해시값을 상기 계산된 감사 해시값과 비교하는 단계Comparing the received reference hash value with the calculated audit hash value to verify the authenticity of the received payload data item. 를 포함하는 데이터 로드 방법.Data loading method comprising a. 제2항에 있어서, 상기 암호 인증 프로세스는 공개키 암호시스템에 따라 상기 데이터 항목에 디지털 서명하는 단계를 포함하는 데이터 로드 방법.3. The method of claim 2, wherein the cryptographic authentication process comprises digitally signing the data item in accordance with a public key cryptosystem. 제3항에 있어서, The method of claim 3, 상기 페이로드 데이터 항목, 디지털 서명 데이터 항목 및 디지털 서명된 디지털 인증서 데이터 항목을 수신하는 단계 - 상기 디지털 인증서 데이터 항목은 제1 공개키를 포함하고, 상기 디지털 서명 데이터 항목은 상기 제1 공개키에 대응하는 제1 비밀키로 암호화된 참조 해시값을 포함함 -,Receiving the payload data item, the digital signature data item, and the digitally signed digital certificate data item, wherein the digital certificate data item includes a first public key, and the digital signature data item corresponds to the first public key. Includes a reference hash encrypted with the first secret key 상기 데이터 처리 장치에 저장된 루트 공개키(root public key)와 대조하여 상기 디지털 서명된 디지털 인증서 데이터 항목을 인증하는 단계,Authenticating the digitally signed digital certificate data item against a root public key stored in the data processing device; 상기 인증된 디지털 인증서와 대조하여 상기 디지털 서명 데이터 항목을 인증하는 단계, 및Authenticating the digital signature data item against the authenticated digital certificate, and 상기 수신된 페이로드 데이터 항목의 진정성을 검증하기 위해 상기 수신된 참조 해시값을 상기 계산된 감사 해시값과 비교하는 단계Comparing the received reference hash value with the calculated audit hash value to verify the authenticity of the received payload data item. 를 포함하는 데이터 로드 방법.Data loading method comprising a. 제3항 또는 제4항에 있어서, 상기 참조 해시값을 암호 인증하는 단계를 더 포함하고,The method of claim 3 or 4, further comprising cryptographically authenticating the reference hash value. 상기 참조 메시지 인증 코드값을 계산하는 단계는 상기 참조 해시값이 성공적으로 인증된 경우에만 수행되는 데이터 로드 방법.The calculating of the reference message authentication code value is performed only when the reference hash value is successfully authenticated. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 무결성 보호 단계는 상기 수신된 페이로드 데이터 항목과 관련하여 상기 계산된 참조 메시지 인증 코드값을 저장하는 단계를 더 포함하는 데이터 로드 방법.6. The method of any of claims 1 to 5, wherein the integrity protecting step further comprises storing the calculated reference message authentication code value in relation to the received payload data item. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 참조 메시지 인증 코드값을 계산하는 단계는 적어도 상기 감사 해시값 및 난수로부터 도출되는 결합된 데이터 항목의 상기 참조 메시지 인증 코드값을 계산하는 단계를 더 포함하는 데이터 로드 방법.7. The method of any one of the preceding claims, wherein calculating the reference message authentication code value comprises calculating the reference message authentication code value of a combined data item derived from at least the audit hash value and a random number. Data loading method further comprising. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 참조 메시지 인증 코드값을 계산하는 단계는 적어도 상기 감사 해시값 및 버전 제어 데이터 항목으로부터 도출되는 결합된 데이터 항목의 상기 참조 메시지 인증 코드값을 계산하는 단계를 더 포함하는 데이터 로드 방법.8. The method of any one of the preceding claims, wherein calculating the reference message authentication code value comprises at least the reference message authentication code value of a combined data item derived from the audit hash value and a version control data item. A data loading method further comprising the step of calculating. 제8항에 있어서, 버전 제어 데이터 레코드를 버전 제어 데이터 구조체에 저장하는 단계를 더 포함하며,The method of claim 8, further comprising storing a version control data record in a version control data structure, 상기 버전 제어 데이터 레코드는 적어도 상기 버전 제어 데이터 항목을 포함 하는 상기 수신된 페이로드 데이터 항목에 관한 정보를 포함하는 데이터 로드 방법.And the version control data record comprises information about the received payload data item including at least the version control data item. 제9항에 있어서, 상기 저장된 버전 제어 데이터 레코드는 무결성 보호되는 데이터 로드 방법.10. The method of claim 9, wherein the stored version control data record is integrity protected. 제9항 또는 제10항에 있어서, 상기 버전 제어 데이터 레코드는 버전 카운터를 포함하는 데이터 로드 방법.The method of claim 9 or 10, wherein the version control data record comprises a version counter. 제11항에 있어서, 상기 버전 제어 데이터 레코드는 상기 페이로드 데이터 항목의 현재 버전을 대체할 수 있는 이전 버전의 수를 식별해주는 백 카운터(back counter)를 더 포함하는 데이터 로드 방법.12. The method of claim 11 wherein the version control data record further comprises a back counter identifying a number of previous versions that can replace a current version of the payload data item. 제1항 내지 제12항 중 어느 한 항에 있어서, 상기 비밀키는 상기 데이터 처리 장치에 고유한 비밀 데이터 항목인 데이터 로드 방법.13. The data loading method according to any one of claims 1 to 12, wherein the secret key is a secret data item unique to the data processing device. 제1항 내지 제13항 중 어느 한 항에 있어서, 상기 비밀키는 상기 데이터 처리 장치에만 알려져 있는 비밀 데이터 항목인 데이터 로드 방법.The data loading method according to any one of claims 1 to 13, wherein the secret key is a secret data item known only to the data processing device. 제1항 내지 제14항 중 어느 한 항에 있어서, 상기 페이로드 데이터 항목을 수신하는 단계는,The method of claim 1, wherein receiving the payload data item comprises: 이전에 수신된 현재 데이터 항목의 델타 업데이트(delta update)를 수신하는 단계, 및Receiving a delta update of a previously received current data item, and 상기 이전에 수신된 현재 데이터 항목 및 상기 수신된 델타 업데이트로부터 업데이트된 페이로드 데이터 항목으로서 상기 페이로드 데이터 항목을 발생하는 단계Generating the payload data item as an updated payload data item from the previously received current data item and the received delta update 를 포함하는 데이터 로드 방법.Data loading method comprising a. 데이터 처리 장치로 하여금 제1항 내지 제15항 중 어느 한 항에 따른 방법의 단계들을 수행하게 하도록 적응되어 있는 프로그램 코드 수단을 포함하는 컴퓨터 프로그램으로서,A computer program comprising program code means adapted to cause a data processing apparatus to perform the steps of the method according to any one of claims 1 to 15, 상기 컴퓨터 프로그램은 상기 데이터 처리 장치 상에서 실행되는 컴퓨터 프로그램.The computer program running on the data processing device. 제1항 내지 제15항 중 어느 한 항에 따른 방법을 수행하도록 적응되어 있는 제1 처리 회로를 포함하는 데이터 처리 장치.A data processing apparatus comprising a first processing circuit adapted to perform the method according to any one of claims 1 to 15. 제17항에 있어서, The method of claim 17, 상기 수신된 페이로드 데이터 항목을 저장하도록 적응된 저장 수단, 및Storage means adapted to store the received payload data item, and 상기 저장 수단 및 상기 제1 처리 회로에 연결되어 있는 제2 처리 회로A second processing circuit connected to said storage means and said first processing circuit 를 더 포함하며,More, 상기 제2 처리 회로는 상기 제1 처리 회로에 적어도 상기 저장 수단에의 판독 액세스를 제공하도록 적응되어 있는 데이터 처리 장치.And said second processing circuit is adapted to provide said first processing circuit with at least read access to said storage means. 제17항 또는 제18항에 있어서, 상기 제1 처리 회로는 비대칭 암호 시스템의 루트 공개키를 저장하는 로컬 저장 수단을 포함하는 데이터 처리 장치.19. The data processing apparatus of claim 17 or 18, wherein the first processing circuit includes local storage means for storing a root public key of an asymmetric cryptographic system. 제17항 내지 제19항 중 어느 한 항에 있어서, 상기 제1 처리 회로는 상기 비밀키를 저장하는 로컬 저장 수단을 포함하는 데이터 처리 장치.20. The data processing apparatus according to any one of claims 17 to 19, wherein the first processing circuit includes local storage means for storing the secret key. 데이터 처리 장치에 저장된 현재 버전의 데이터 항목의 무결성을 보호하는 방법으로서,A method of protecting the integrity of a current version of a data item stored in a data processing device. 적어도 상기 데이터 항목의 참조 해시값을 결정하는 단계,Determining a reference hash value of at least the data item, 상기 데이터 처리 장치에 저장된 비밀키를 사용하여 상기 결정된 참조 해시값으로부터 참조 메시지 인증 코드값을 계산하는 단계, 및Calculating a reference message authentication code value from the determined reference hash value using a secret key stored in the data processing apparatus, and 상기 데이터 항목과 관련하여 상기 계산된 참조 메시지 인증 코드값을 저장하는 단계Storing the calculated reference message authentication code value in association with the data item 를 포함하며,Including; 상기 참조 메시지 인증 코드값을 계산하는 단계는 상기 결정된 참조 해시값 및 버전 제어 데이터 레코드의 적어도 일부분으로부터 도출되는 결합된 데이터 항 목으로부터 상기 참조 메시지 인증 코드값을 계산하는 단계를 포함하고,Calculating the reference message authentication code value comprises calculating the reference message authentication code value from a combined data item derived from at least a portion of the determined reference hash value and a version control data record, 상기 버전 제어 데이터 레코드는 상기 현재 버전의 데이터 항목에 관한 버전 제어 정보를 포함하는 것을 특징으로 하는 데이터 항목의 무결성 보호 방법.And the version control data record includes version control information about the data item of the current version. 제21항에 있어서, 상기 버전 제어 데이터 레코드는 버전 카운터를 포함하고,The system of claim 21, wherein the version control data record comprises a version counter, 상기 참조 메시지 인증 코드값을 계산하는 단계는 상기 결정된 참조 해시값 및 적어도 상기 버전 카운터로부터 도출되는 결합된 데이터 항목으로부터 참조 메시지 인증 코드값을 계산하는 단계를 포함하는 데이터 항목의 무결성 보호 방법.And calculating the reference message authentication code value comprises calculating a reference message authentication code value from the determined reference hash value and at least a combined data item derived from the version counter. 제22항에 있어서, 상기 버전 제어 데이터 레코드는 상기 현재 버전을 대체할 수 있는 이전 버전의 수를 식별해주는 백 카운터를 더 포함하고,23. The system of claim 22, wherein the version control data record further comprises a back counter that identifies a number of previous versions that can replace the current version, 상기 참조 메시지 인증 코드값을 계산하는 단계는 상기 결정된 참조 해시값 및 적어도 상기 백 카운터로부터 도출되는 결합된 데이터 항목으로부터 참조 메시지 인증 코드값을 계산하는 단계를 포함하는 데이터 항목의 무결성 보호 방법.And calculating the reference message authentication code value comprises calculating a reference message authentication code value from the determined reference hash value and at least a combined data item derived from the back counter. 제21항 내지 제23항 중 어느 한 항에 있어서, 상기 버전 제어 데이터 레코드는 상기 현재 버전의 데이터 항목에 대한 상기 참조 해시값을 더 포함하는 데이터 항목의 무결성 보호 방법.24. The method of any of claims 21 to 23, wherein the version control data record further comprises the reference hash value for the data item of the current version. 제21항 내지 제24항 중 어느 한 항에 있어서, The method according to any one of claims 21 to 24, 상기 버전 제어 데이터 레코드를 발생하는 단계, 및Generating the version control data record, and 상기 버전 제어 데이터 레코드를 버전 제어 데이터 구조체에 저장하는 단계Storing the version control data record in a version control data structure 를 더 포함하는 데이터 항목의 무결성 보호 방법.A method of protecting the integrity of a data item further comprising. 제25항에 있어서, 상기 버전 제어 데이터 레코드를 무결성 보호하는 단계를 더 포함하는 데이터 항목의 무결성 보호 방법.27. The method of claim 25, further comprising integrity protecting the version control data record. 제21항 내지 제26항 중 어느 한 항에 있어서, 상기 비밀키는 상기 데이터 처리 장치에 고유한 비밀 데이터 항목인 데이터 항목의 무결성 보호 방법.27. The method of claim 21, wherein the secret key is a secret data item unique to the data processing device. 제21항 내지 제27항 중 어느 한 항에 있어서, 상기 비밀키는 상기 데이터 처리 장치에만 알려져 있는 비밀 데이터 항목인 데이터 항목의 무결성 보호 방법.28. The method of any one of claims 21 to 27, wherein the secret key is a secret data item known only to the data processing device. 제21항 내지 제28항 중 어느 한 항에 있어서, The method according to any one of claims 21 to 28, wherein 이전에 수신된 현재 데이터 항목의 델타 업데이트를 수신하는 단계, 및Receiving a delta update of a previously received current data item, and 상기 이전에 수신된 현재 데이터 항목 및 상기 수신된 델타 업데이트로부터 업데이트된 데이터 항목으로서 상기 데이터 항목을 발생하는 단계Generating the data item as an updated data item from the previously received current data item and the received delta update 를 더 포함하는 데이터 항목의 무결성 보호 방법.A method of protecting the integrity of a data item further comprising. 데이터 처리 장치에 저장된 현재 버전의 데이터 항목의 무결성을 검증하는 방법으로서,A method of verifying the integrity of a current version of a data item stored in a data processing device, 상기 데이터 항목의 감사 해시값을 계산하는 단계,Calculating an audit hash value of the data item, 상기 데이터 처리 장치에 저장된 비밀키를 사용하여 상기 계산된 감사 해시값으로부터 감사 메시지 인증 코드값을 계산하는 단계, 및Calculating an audit message authentication code value from the calculated audit hash value using a secret key stored in the data processing apparatus, and 상기 계산된 감사 메시지 인증 코드값을 상기 데이터 항목과 관련하여 저장된 참조 메시지 인증 코드값과 비교하는 단계Comparing the calculated audit message authentication code value with a stored reference message authentication code value with respect to the data item. 를 포함하며,Including; 상기 방법은 버전 제어 데이터 레코드를 검색하는 단계를 더 포함하고,The method further comprises retrieving a version control data record, 상기 버전 제어 데이터 레코드는 상기 현재 버전의 데이터 항목에 관한 버전 제어 정보를 포함하며,The version control data record includes version control information about a data item of the current version, 상기 감사 메시지 인증 코드값을 계산하는 단계는 상기 계산된 감사 해시값 및 상기 버전 제어 데이터 레코드의 적어도 일부분으로부터 도출되는 결합된 데이터 항목으로부터 감사 메시지 인증 코드값을 계산하는 단계를 포함하는 것을 특징으로 하는 데이터 항목의 무결성 검증 방법.Calculating the audit message authentication code value comprises calculating an audit message authentication code value from the calculated audit hash value and a combined data item derived from at least a portion of the version control data record. How to verify the integrity of data items. 제21항 내지 제30항 중 어느 한 항에 있어서, 상기 데이터 항목은 제1항 내지 제15항 중 어느 한 항에 정의된 방법을 수행함으로써 로드되는 데이터 항목의 무결성 검증 방법.31. The method of any of claims 21-30, wherein the data item is loaded by performing the method defined in any one of claims 1-15. 현재 버전의 데이터 항목 및 버전 제어 데이터 레코드를 저장하는 저장 수단 - 상기 버전 제어 데이터 레코드는 상기 현재 버전의 데이터 항목에 관한 버전 제어 정보를 포함함 -, 및Storage means for storing a current version of the data item and a version control data record, the version control data record including version control information about the data item of the current version; and 제21항 내지 제31항 중 어느 한 항에 따른 방법을 수행하도록 적응된 처리 수단Processing means adapted to carry out the method according to any of claims 21 to 31. 을 포함하는 데이터 처리 장치.Data processing device comprising a.
KR1020077010632A 2004-10-11 2005-09-07 Data loading method, data processing unit, data item integrity protection method, and data item integrity verification method KR20070074617A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EP04388069.9 2004-10-11
EP04388069A EP1645931A1 (en) 2004-10-11 2004-10-11 Secure loading and storing of data in a data processing device
US61803704P 2004-10-12 2004-10-12
US60/618,037 2004-10-12

Publications (1)

Publication Number Publication Date
KR20070074617A true KR20070074617A (en) 2007-07-12

Family

ID=35355897

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077010632A KR20070074617A (en) 2004-10-11 2005-09-07 Data loading method, data processing unit, data item integrity protection method, and data item integrity verification method

Country Status (3)

Country Link
KR (1) KR20070074617A (en)
RU (1) RU2408071C2 (en)
WO (1) WO2006039967A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8583929B2 (en) 2006-05-26 2013-11-12 Alcatel Lucent Encryption method for secure packet transmission
US8316442B2 (en) 2008-01-15 2012-11-20 Microsoft Corporation Preventing secure data from leaving the network perimeter
RU2464628C1 (en) * 2011-06-24 2012-10-20 Федеральное государственное военное образовательное учреждение высшего профессионального образования "Военная академия связи имени маршала Советского Союза С.М. Буденного" Министерства обороны Российской Федерации Method of controlling software operation
RU2475838C1 (en) * 2011-11-07 2013-02-20 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Иркутский государственный университет путей сообщения (ФГБОУ ВПО ИрГУПС) Device for cryptographic information protection
EP2879074A1 (en) * 2013-11-29 2015-06-03 Gemalto SA Method for loading a native code on a secure element

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6367012B1 (en) * 1996-12-06 2002-04-02 Microsoft Corporation Embedding certifications in executable files for network transmission
AU6759998A (en) * 1997-03-06 1998-09-22 Skylight Software, Inc. Cryptographic digital identity method
US7124408B1 (en) * 2000-06-28 2006-10-17 Microsoft Corporation Binding by hash
KR100455566B1 (en) * 2000-06-30 2004-11-09 인터내셔널 비지네스 머신즈 코포레이션 Device and method for updating code
US7069445B2 (en) * 2001-11-30 2006-06-27 Lenovo (Singapore) Pte. Ltd System and method for migration of a version of a bootable program
EP1429224A1 (en) * 2002-12-10 2004-06-16 Texas Instruments Incorporated Firmware run-time authentication

Also Published As

Publication number Publication date
RU2007117505A (en) 2008-11-20
RU2408071C2 (en) 2010-12-27
WO2006039967A1 (en) 2006-04-20

Similar Documents

Publication Publication Date Title
US8627086B2 (en) Secure loading and storing of data in a data processing device
JP4856080B2 (en) Secure loading and storage of data to data processing equipment
US11361087B2 (en) Security data processing device
EP3693880B1 (en) Software encryption
US11601268B2 (en) Device attestation including attestation-key modification following boot event
JP4854677B2 (en) Updating the memory content of the processing device
TWI429255B (en) Secure patch system
EP1618451B1 (en) Associating software with hardware using cryptography
US7373509B2 (en) Multi-authentication for a computing device connecting to a network
JP4912879B2 (en) Security protection method for access to protected resources of processor
AU2012205457B2 (en) System and method for tamper-resistant booting
KR100702499B1 (en) Message Integrity Assurance Systems, Methods, and Recording Media
JP2007512787A (en) Trusted mobile platform architecture
WO2010089005A1 (en) Cryptographic protection of usage restrictions in electronic devices
Sanwald et al. Secure boot revisited: challenges for secure implementations in the automotive domain
EP3641219A1 (en) Puf based securing of device update
JP2024539876A (en) Method and system for protecting digital signatures - Patents.com
KR20070074617A (en) Data loading method, data processing unit, data item integrity protection method, and data item integrity verification method
CN114448794B (en) Method and device for safely upgrading firmware based on chip trusted root
JP4937921B2 (en) A secure interface for generic key derivation function support
KR20070017455A (en) Secure protection against access to protected resources within the processor
Linux et al. FIPS 140-2 Non-Proprietary Security Policy
DADHICH HARDWARE ROOT OF TRUST BASED TPM: THE INHERENT OF 5IRECHAIN SECURITY

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20070510

Patent event code: PA01051R01D

Comment text: International Patent Application

AMND Amendment
PG1501 Laying open of application
A201 Request for examination
AMND Amendment
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20100906

Comment text: Request for Examination of Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20120119

Patent event code: PE09021S01D

AMND Amendment
E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20121019

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20120119

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I

J201 Request for trial against refusal decision
PJ0201 Trial against decision of rejection

Patent event date: 20121121

Comment text: Request for Trial against Decision on Refusal

Patent event code: PJ02012R01D

Patent event date: 20121019

Comment text: Decision to Refuse Application

Patent event code: PJ02011S01I

Appeal kind category: Appeal against decision to decline refusal

Decision date: 20140224

Appeal identifier: 2012101009733

Request date: 20121121

AMND Amendment
PB0901 Examination by re-examination before a trial

Comment text: Amendment to Specification, etc.

Patent event date: 20121221

Patent event code: PB09011R02I

Comment text: Request for Trial against Decision on Refusal

Patent event date: 20121121

Patent event code: PB09011R01I

Comment text: Amendment to Specification, etc.

Patent event date: 20120319

Patent event code: PB09011R02I

Comment text: Amendment to Specification, etc.

Patent event date: 20100906

Patent event code: PB09011R02I

Comment text: Amendment to Specification, etc.

Patent event date: 20070514

Patent event code: PB09011R02I

B601 Maintenance of original decision after re-examination before a trial
PB0601 Maintenance of original decision after re-examination before a trial

Comment text: Report of Result of Re-examination before a Trial

Patent event code: PB06011S01D

Patent event date: 20130104

J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20121121

Effective date: 20140224

PJ1301 Trial decision

Patent event code: PJ13011S01D

Patent event date: 20140224

Comment text: Trial Decision on Objection to Decision on Refusal

Appeal kind category: Appeal against decision to decline refusal

Request date: 20121121

Decision date: 20140224

Appeal identifier: 2012101009733