[go: up one dir, main page]

KR20100120671A - 스마트 카드의 보안 - Google Patents

스마트 카드의 보안 Download PDF

Info

Publication number
KR20100120671A
KR20100120671A KR1020107019054A KR20107019054A KR20100120671A KR 20100120671 A KR20100120671 A KR 20100120671A KR 1020107019054 A KR1020107019054 A KR 1020107019054A KR 20107019054 A KR20107019054 A KR 20107019054A KR 20100120671 A KR20100120671 A KR 20100120671A
Authority
KR
South Korea
Prior art keywords
white
smart card
box
decryption
module
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
KR1020107019054A
Other languages
English (en)
Inventor
빌헬무스 피. 아. 예. 미힐스
크리스티안 카위퍼르스
Original Assignee
이르데토 비.브이.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이르데토 비.브이. filed Critical 이르데토 비.브이.
Publication of KR20100120671A publication Critical patent/KR20100120671A/ko
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

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

Abstract

본 발명은 스마트 카드(100)를 보안하기 위한 방법을 제공하고, 스마트 카드는 프로세싱 수단(101), 프로세싱 수단에 의해 실행될 소프트웨어 모듈(115)을 암호화 방식으로 저장하기 위한 메모리(110), 및 소프트웨어 모듈의 적시 복호화를 위해 구성된 복호화 수단(130)을 포함하고, 스마트 카드에 복호화 수단의 화이트-박스 구현을 제공하는 단계를 포함한다. 하나의 실시예에서, 화이트-박스 구현은 Lombok 암호화 알고리즘의 화이트-박스 구현을 포함한다.

Description

스마트 카드의 보안{SECURING A SMART CARD}
본 발명은 스마트 카드(smart card) 및 그와 같은 스마트 카드를 보안하기 위한 방법에 관한 것이다.
스마트 카드, 마이크로프로세서(microprocessor) 카드, 칩 카드(chip card), 또는 집적 회로 카드(integrated circuit card; ICC)는 통상적으로 정보를 처리할 수 있는 내장 집적 회로들을 구비한 상대적으로 작고 소형인 카드로 규정된다. 그와 같은 스마트 카드들은 매우 중요한 알고리즘(algorithm)들 또는 노하우(know-how)을 구현하는 암호 키들 또는 소프트웨어 루틴(routine)들과 같은 기밀 정보(sensitive information)를 안전하게 저장하는데 이용된다.
자체의 폐쇄적인 특성으로 인해, 스마트 카드들은 공격자가 들어오고 나가는 것만을 관찰할 수 있고 암호 알고리즘의 구현 동작을 관찰할 수 없는 오랫동안 블랙 박스(black box)들로 간주되어 왔다. 그러나 오늘날 그와 같은 구현들의 세부사항들을 획득하고, 때로는 심지어 카드로부터 내장된 소프트웨어 전부 또는 일부를 추출하는 많은 기술들이 존재한다. 어떤 널리 공지되어 있는 예들은 오류 주입 공격(fault injection attack)들 및 버퍼 오버플로우 공격(buffer overflow attack)들이다.
스마트 카드에 대한 오류 주입 공격에서, 공격자는 스마트 카드에 부적합한 입력을 제공함으로써 또는 스마트 카드를 극 전압(extreme voltage)과 같은, 규격 이탈(out-of-specification) 상태들로 노출시킴으로써, 스마트 카드의 동작을 바꾸는 시도를 한다. 오류 주입 공격은 또한 침입 방식으로 행해질 수 있다. 침입하는 오류 주입의 예는 칩이 물리적으로 개봉되어 보호되지 않는 하드웨어가 복사선에 노출되어 이로 인해 칩의 동작을 변화시키는 것이다. 그와 같은 고의적 원인에 의한 오류에 인해 변형된 동작은 기밀 정보의 일부를 유출시킬 수 있다.
버퍼 오버플로우 공격에서 공격자는 메모리 장소를 저장할 수 있는 것보다 많은 데이터로 채움으로써, 다른 데이터 구조들이 손상되도록 한다. 데이터의 정확한 선택에 있어서, 상기 손상으로 인해 데이터 또는 코드 단편(code fragment)이 메모리에서 외부 세계로 유출되는 결과를 초래할 수 있다.
예를 들면, 미국 일리노이 시카고, 1999년 5월 10일 및 11일 USENIX 협회의 스마트 카드 기술에 대한 USENIX 워크샵(Smartcard '99) 회보에서의 이 종류의 공격들에 대한 총론, pp. 9-20, ISBN 1-880446-34-0에서의 Oliver Koemmerling, Markus G. Kuhn의 'Design Principles for Tamper-Resistant Smartcard Processors'를 참조하라.
이러한 종류들의 공격들로부터 보호하기 위해, WO2007105126(대리인 문서번호 PH005600) 및 미국 특허 출원 20060140401은 암호화 구현들을 보호하기 위해 화이트-박스(white-box) 구현을 이용하는 것을 제안하고 이 해법이 다른 디바이스들 중에서도 스마트 카드들에서 이용되는 것을 언급한다. 암호 알고리즘들의 화이트-박스 구현들은 화이트-박스 공격, 즉 공격자가 프로세서에 의해 실행되는 일부 또는 모든 명령들을 관찰할 수 있는 공격에 대비하여 모든 또는 일부의 암호 알고리즘의 내부 작동들을 감추는 구현들이다. 일부의 경우들에서, 공격자들은 동작 환경을 어떤 형태로든지 제어하여, 공격자가 암호 동작들의 적어도 일부를 관찰하고 실행 중인 알고리즘에서 이용되는 암호 키의 적어도 일부를 식별하도록 한다. 예를 들면, 공격자는 디버깅(debugging) 환경 또는 가상 기계(virtual machine)에서 구현을 실행할 수 있으므로 모든 동작들을 관찰하고, 데이터 버퍼(data buffer)들을 조작하고, 실행 흐름을 모니터링(monitoring)한다.
다른 경우들에서, 공격자는 동작 환경으로 하여금 구현의 일부 암호 알고리즘이 실행되는 동안 데이터 버퍼들의 콘텐츠들의 일부가 '유출' 또는 '누출'되도록 할 수 있다. 예를 들면,, 공격자는 버퍼 오버플로우 공격을 이용하여 암호가 구현된 부분들을 추출할 수 있을 것이다. 정확한 부분이 추출되면, 이로 인해 공격자는 상기 구현에서의 암호 키 또는 특정 설정들을 알 수 있어서 자신이 일부 또는 모든 암호 보호를 해제하는 것이 가능해진다.
화이트-박스 구현들은 암호 알고리즘, 특히 키 데이터의 일부 또는 모든 내부 작동들을 감춘다. 이는 다양한 방법들로 행해질 수 있다. 화이트-박스 구현들을 생성하는 대중적인 기술은 암호 알고리즘 내의 인코딩 테이블(encoding table)들을 개별 단계들 대신 합성을 나타내는 무작위 전단사(bijection)들과 결합한 것을 이용하는 것이다. 암호 키 및 암호 알고리즘은 하나의 모놀리식 블록(monolithic block)으로 효과적으로 전환된다. 이 블록의 단 하나의 부분도 알고리즘 또는 키의 내부 작동에 대한 어떠한 정보도 유출하지 않는다. 실제로는 심지어 전체 화이트-박스 구현이 제공될 때라도 원래의 알고리즘 또는 이용된 복호화(decryption) 키를 역 설계하는 것은 극도로 어렵다. 예를 들면, 유럽 특허 출원 번호 08155798.5(대리인 문서번호 PH010099)에 개시된 또 다른 기술은 RSA와 같은 암호 알고리즘에서의 지수(exponent)의 모호화(obfuscation)이다.
스마트 카드에서 암호 알고리즘의 화이트-박스 구현을 이용하는데 있어서의 단점은 화이트-박스 구현들은 종래의 구현들에 비해 코드 크기가 매우 많이 증가하지만, 스마트 카드들은 매우 제한된 저장소(storage)를 가진다는 점이다. 예를 들면, Chow 1에 제한되는(아래에 인용되는 바와 같이) AES 암호화 알고리즘의 화이트-박스 구현은 0.7메가바이트 이상의 크기를 갖는다. 종래의, 즉 비 화이트-박스 형태에서의 AES의 하나의 기준 구현은 크기가 대략 10 킬로바이트들이다.
본 발명의 목적은 스마트 카드 내의 소프트웨어 모듈(module)의 작동들에 대한 정보를 노출시키는 공격들에 대비하여 스마트 카드를 효과적으로 보안하는 것이다.
본 발명은 청구항 제 1 항에서 청구된 바와 같은 방법 및 청구항 제 5 항에서 청구된 바와 같은 스마트 카드로 본 목적을 달성한다. 보호되어야 할 소프트웨어 모듈은 임의의 적절한 암호 알고리즘을 이용하여 암호화된다. 예를 들면, 3DES 또는 AES가 이용될 수 있다. 모듈이 실행되어야 할 때, 소프트웨어 모듈(또는 상기 모듈의 필요한 일부)을 복호화하는 적시 복호화 모듈(just-in-time decryption module)이 제공된다. 모듈의 복호화 카피(copy)는 이후에 가능한 신속하게 삭제된다. 이는 공격자가 소프트웨어 모듈의 카피를 획득할 가능성을 감소시킨다. 공격자는 이 모듈의 암호화된 버전을 추출할 수 있을 것이지만 이 버전은 정확한 복호화 키가 아니면 무용하다.
본 발명에 따르면, 복호화 모듈의 화이트-박스 구현이 이용된다. 화이트-박스 기술들을 이용하여 이 상대적으로 작은 모듈만이 구현되기 때문에, 상기 스마트 카드에 대한 저장소 필요성이 단지 미세하게 증가한다. 그와 같은 화이트-박스 구현을 생성하기 위하여 상술한 기술들이 이용될 수 있으나, 다른 현재 공지되어 있거나 이후에 발명되는 화이트-박스 기술들 또한 이용될 수 있다.
주요 요건은 화이트-박스 구현이 크기가 아주 작지 않으며 공격자가 구현(상기 알고리즘에 의해 이용되는 키를 포함하는)의 임의의 부분을 갖는 경우 공격자가 이로부터 기능적으로 정확한 복호화 기능을 유도하는 것이 어렵다는 특성을 갖는 것이다. 이 요건은 화이트-박스 구현들에서 흔히 가정되는 요건, 즉, 공격자가 환경을 완전히 제어하는 것보다 더 약화된 요건이다. 그러므로, 본 발명은 키 크기에 대한 화이트-박스 보안의 트레이드-오프(trade-off)를 허용한다.
복호 알고리즘의 구현에 대해 필요한 조건은 공격자가 구현의 일부로부터 근본적인 키를 유도할 수 없는 그러한 방식으로 구현이 행해지는 점이다. 일부 화이트-박스 기술들 예를 들면, 상술한 인코딩 테이블들의 결합의 용법들은 공격자가 환경을 완전히 제어하는 화이트-박스 공격들을 견뎌내도록 설계된다. 이와 같은 기술들이 본 발명의 목적에 적합할지라도, 또한 본 발명에 적합한 다른, 더욱 용이한 기술들이 존재한다.
일례로서, AES의 화이트-박스 구현을 생성할 때에는, 비-선형 인코딩에 의해 각각의 룩업 테이블(lookup table)의 입력 및 출력을 인코딩하는 것으로 충분하다. 선형 인코딩들에 의한 XOR 연산에 선행하는 룩업 테이블들의 출력(그리고, 대응하여, XOR 연산 이후의 룩업 테이블들의 입력들)을 인코딩함으로써, 본 발명의 목적이 룩업 테이블에 의한 XOR 연산을 구현할 필요가 없다.
현재 보호되어야 할 소프트웨어가 더욱 격리되는 것이 추가적인 장점이며, 이는 소프트웨어를 상술한 공격들로부터 보호하는 것이 집중적으로 관찰될 수 있음을 의미한다.
그러므로, 이 추측에 따른 기밀 코드의 실행 중에, 성공적인 공격의 기회가 현저하게 감소한다. 다른 소프트웨어가 여전히 공격당하기 쉬울 수 있을지라도, 기껏해야 이는 보호된 소프트웨어 모듈의 암호화된 부분들을 노출할 것이다. 공격자는 이 부분들을 이용할 수 없을 것이다.
바람직하게도 화이트-박스 구현은 US7043016(대리인 문서번호 PHNL000365) 및 EP1307993B1(대리인 문서번호 PHNL000444)에 개시된 바와 같은 Lombok 암호 알고리즘의 화이트-박스 구현이다. 이 실시예의 장점은 Lombok의 화이트-박스 구현이 AES의 화이트-박스 구현보다 더 작다는 것이다. 이는 Lombok가 4 비트 S-박스들, 즉 4 비트를 4 비트로 매핑(mapping)하는 S-박스들을 가지는데 반해 AES는 8 비트 S-박스들을 가진다는 사실에 기인한다.
각 S-박스의 경우, 화이트-박스 Lombok 및 AES 구현들은 포함하는 룩업 테이블를 갖는다. m 비트 S-박스는 2m 행들을 갖는 룩업 테이블를 생성한다. 그러므로, 더욱 작은 S-박스들은 더욱 작은 화이트-박스 구현들을 생성한다.
본 발명의 상기 및 다른 양태들은 도면들에 도시된 예시의 실시예들로부터 명확해지고 상기 실시예들을 참조하여 설명될 것이다.
도 1은 스마트 카드를 개략적으로 도시한 도면.
도 1은 프로세서(101) 및 상기 프로세서(101)에 의해 구현되는 하나 이상의 소프트웨어 모듈(들)을 저장하기 위한 메모리(110)를 포함하는 스마트 카드(100)를 개략적으로 도시한다. 하나의 소프트웨어 모듈은 모듈(115)이며, 이는 본 발명의 주제이다. 메모리(110)는 많은 대안 저장 매체가 이용 가능할지라도, 바람직하게 EEPROM 또는 플래시 메모리(flash memory)로서 구현된다. 메모리(110)는 암호 키 또는 권한부여 요소들과 같은 데이터를 추가해서 저장할 수 있다. 예를 들면, 명령들 및 데이터의 분리가 바람직하다면, 그와 같은 데이터를 저장하기 위해 개별 메모리(도시되지 않음)가 또한 이용될 수 있다.
스마트 카드(100)는 또한 상기 스마트 카드가 접속되어 있는 디바이스(도시되지 않음)로부터 및 디바이스로 데이터를 수신하고 송신하기 위한 입력/출력 모듈(120)을 포함한다. 모듈(120)은 통상적으로, 바람직하게 ISO/IEC 7816 및 ISO/IEC 7810 시리즈의 표준들에 규정되는 바와 같이, 디바이스에서의 판독기 내의 전기 커넥터(connector)들에 접속하는 칩으로 구현된다. 소위 무접속 스마트 카드들에서 대체물이 이용되는데, 여기서 데이터의 송신은 예를 들면, ISO/IEC 14443에 규정되는 무선 주파수 유도 기술에 의한다.
스마트 카드(100)는 예를 들면, 조건 액세스(conditional access) 또는 DRM 시스템에서 이용될 수 있고, 권한이 부여될 때 오디오 및/또는 비디오 데이터를 암호화하는 암호 알고리즘의 소프트웨어 구현을 제공할 수 있다. 이후에 셋-톱 박스(set-top box), 텔레비전, 컴퓨터 또는 다른 디바이스는 암호화된 데이터를 I/O 모듈(120)을 통해 스마트 카드(100)에 공급하고, 스마트 카드(100)가 상기 디바이스에 이 데이터를 수신할 권한이 부여된다고 결정하는 경우 회답으로 암호화된 데이터를 수신한다. 이를 위해, 메모리(110)(또는 다른 메모리)는 자격관리 메시지(entitlement message)들, 라이센스(license)들, 또는 권리 오브젝트들(rights objects)을 저장할 수 있거나, 디바이스는 그와 같은 아이템들을 적용하는 데이터와 함께 공급할 수 있다.
그와 같은 작동들은 널리 공지되어 있으므로, 더 이상 상세하게 설명되지 않을 것이다. 스마트 카드들은 또한 당업자에게 공지되어 있는 바와 같이 보안이 바람직한 많은 다른 상황들에서도 유용하다.
메모리(110)에 저장된 소프트웨어 모듈(115)은 암호화 방식으로 저장된다. 임의의 공지되어 있는 또는 미래의 암호 알고리즘, 예를 들면, AES 또는 3DES는 이 소프트웨어 모듈(115)을 암호화하는데 이용될 수 있다. 이는 공격자가 메모리(110)의 모든 또는 일부의 콘텐츠를 추출해내는 경우에, 공격자가 소프트웨어 모듈(115) 상의 유용한 정보를 획득하지 못하는 것을 보장한다. 이 모듈(115)은 보호될 필요가 있는 매우 소중한 기술 또는 암호 키들, 예를 들면, 권한 부여 키들, 또는 복호화 키들을 포함할 수 있다.
소프트웨어 모듈(115)은 메모리(110) 내에 저장되는 소프트웨어 모듈 중 단지 하나이다. 다른 모듈들은 암호화 또는 암호화되지 않고(평문) 형식으로 동일한 메모리(110)에 저장될 수 있다.
스마트 카드(100)는 소프트웨어 모듈(115)의 관련 부분들이 프로세서(101)에 의해 실행되어야 할 때 상기 관련 부분들을 복호화하도록 구성되는 적시 복호화 모듈(130)을 제공한다. 모듈(130)의 가능한 구현들은 각각의 명령이 프로세서(101)에 공급되기 전에 상이 명령들을 복호화하거나, 프로세서(101)에 전체적으로 공급되는 소프트웨어 모듈(115)의 블록들을 복호화하는 것을 포함한다. 복호화된 명령(들) 또는 블록(들)은 실행 후에 가능한 신속하게 소거된다.
적시 복호화의 일부 실시예들에서, 복호화된 명령(들) 또는 블록(들)은 프로세서(101) 내 또는 부근의 임시 메모리(도시되지 않음)에 저장된다. 그러한 실시예들에서 이 임시 메모리는 명령(들) 또는 블록(들)이 실행되었고 스마트 카드(100)가 활성화되거나 비활성화될 때 데이터가 삭제된다.
전형적으로 적시 복호화 기능은 스마트 카드(101) 상의 개별 하드웨어 모듈로서, 또는 내장된 소프트웨어 모듈로서 구현된다. 스마트 카드들에서, 또한 버스 암호화와 같은 명칭들로 공지되는 적시 복호화의 개념은 예를 들면, US4168396 또는 US5224166에서 공지되어 있다. 예를 들면, 후자의 특허는 시스템의 안전한 물리적 영역 내에 내부 캐시 메모리(cache memory)를 구비한 스마트 카드와 같은 데이터 프로세싱 시스템을 개시한다. 메모리(110)에 대응하는 외부 메모리는 안전한 물리적 영역의 외부에 위치되고 암호화되고 암호화되지 않은 데이터 및/또는 명령들을 저장한다. 명령은 암호화된 데이터 및 명령들을 수반하는 암호화된 마스터 키를 복호화하는데 이용되는 안전한 물리적 영역 내에 포함되는 개인 키의 액세스를 가능하게 한다.
안전한 물리적 영역에서 복호화 모듈(130)과 유사한 인터페이스 회로는 개인 키의 이용을 통해 각각 암호화된 마스터 키를 복호화하고 또한 각각의 복호화된 마스터 키와 관련된 암호화된 데이터 및 명령들을 복호화한다. 프로세서(101)에 대응하는 중앙 프로세서는 외부 메모리로부터 암호화되지 않고 암호화된 데이터 및 명령들 모두의 세그먼트(segment)들에 액세스하여, 인터페이스 회로로 하여금 복호화된 마스터 키를 이용하여 데이터 및 명령들을 복호화하고 내무 메모리 캐시에 복호화된 정보를 저장하도록 한다. 암호화되지 않은 데이터 및 명령들은 내부 메모리 캐시에 직접 저장된다.
본 발명에 따르면, 모듈(130) 내의 복호화 기능은 적용 가능한 암호 알고리즘의 화이트-박스 구현로서 제공된다. 언급된 바와 같이, 화이트-박스 구현들은 암호 알고리즘 내의 인코딩 테이블들을 개별 단계들 대신 합성을 나타내는 무작위 전단사들에 대한 암호 알고리즘과 결합한 것을 이용함으로써 암호 알고리즘의 내부 작동들을 숨긴다.
국제 특허 출원들 WO2005/060147(대리인 문서번호 PHNL031443), WO2007/031894(대리인 문서번호 PH001720) 및 WO2006/046187(대리인 문서번호 PHNL041207)은 암호 알고리즘의 화이트-박스 구현들을 개시한다.
이후에 "Chow 1"로 칭할, 2002년 8월 15일 및 16일자, 캐나다, 뉴파운드랜드, 세인트 존스의 Selected Areas in Cryptography: 9차 연례 국제 워크샵, SAC2002에서의 Stanley Chow, Philip Eisen, Harold Johnson, 및 Paul C. Van Oorschot에 의한 "White-Box Cryptography and an AES Implementation", 및 이후에 "Chow 2"로 칭할, 2002년 11월 18일자, 미국, 워싱턴 DC의 Digital Rights Management: ACM CCS-9 워크샵, DRM 2002에서의 Stanley Chow, Phil Eisen, Harold Johnson, 및 Paul C.van Oorschot에 의한 "A White-Box DES Implementation for DRM Applications"는 암호 알고리즘들의 화이트-박스 구현들을 생성하는 방법들이 개시한다.
이는 복호화 모듈(130)이 여전히 이전과 같이 동작하여 메모리(110) 내에 저장된 소프트웨어 모듈(115)의 상기 부분들을 복호화하는 것을 제공하지만, 복호화 모듈(130)의 콘텐츠의 어떤 부분들을 추출하더라도 복호화 모듈의 작동들에 대한, 또는 메모리(110)의 소프트웨어 모듈들의 일부들을 복호화하는데 이용되는 복호화 키에 대한 어떠한 유용한 정보도 제공하지 않는다.
스마트 카드들로부터 데이터 단편들을 추출하기 위한 기술들이 존재(페이지 1에 인용된 참조문헌을 참조하라)할지라도, 이 기술들은 단지 적은 양의 데이터를 노출할 뿐이다. 예를 들면, ISO 표준 7816은 많아야 255 바이트들이 그와 같은 공격으로부터 유출될 수 있다고 규정한다. ROM 추출 공격과 같은 공격들은 더 많은 코드를 노출하지만, 그와 같은 공격들의 특성으로 인해 추출되는 데이터의 5바이트 중 1바이트가 전형적으로 부정확한 값을 갖는다. 이는 공격자가 화이트-박스 구현의 평균 80%로만 액세스할 수 있고, 이는 화이트-박스 구현로부터 어떠한 유용한 정보도 복구하는데 충분하지 않음을 의미한다.
모듈(130)에서 구현되는 복호화 메커니즘(mechanism)이 메모리(110)의 콘텐츠들에 비해 상대적으로 작기 때문에, 이 화이트-박스 구현에 대한 저장 요건들 마찬가지로 상대적으로 적다.
이 메커니즘의 작은 사이즈로 더 많은 엄격한 코드 보안 조치들을 이용하는 것이 가능하다.
화이트-박스 구현의 저장 요건들을 감소하기 위해서, 하나의 선택사항은 8 비트 S-박스들과 같은 알고리즘 대신에 4 비트 S-박스를 이용하는 암호 알고리즘을 이용하는 것인데, 왜냐하면 m 비트 S-박스는 2m 행들의 룩업 테이블들을 야기하기 때문이다. 이전 선택사항과 함께 또는 달리 이용될 수 있는 다른 선택사항은 알고리즘 내의 XOR 연산들을 테이블들로 변환하는 대신에 XOR 알고리즘들로서 유지하는 것이다.
바람직한 실시예에서 이용되는 복호 알고리즘은 US7043016(대리인 문서번호 PHNL000365) 및 EP1307993B1(대리인 문서번호 PHNL000444)에 개시되는 바와 같은 Lombok 암호 알고리즘이다. Lombok의 화이트-박스 구현을 제공하는 방법에 대한 더 많은 정보는 WO2005/060147(대리인 문서번호 PHNL031443)에서 확인될 수 있다. Lombok는 화이트-박스 구현에 매우 적합하다. 실험에 의하면 Lombok의 화이트-박스 구현은 10 킬로바이트만큼 작을 수 있다.
본 발명이 하나의 암호화 모듈(115)을 참조하여 상술되었을지라도, 물론 하나 이상의 소프트웨어 모듈이 암호화 방식으로 저장되고 모듈(130)을 이용하여 복호화될 수 있다.
상술한 실시예들은 본 발명을 제한하기보다는 예시적이며, 당업자는 첨부된 청구항들의 범위를 벗어나지 않고 많은 대안의 실시예들을 설계할 수 있음이 주목되어야 한다.
청구항들에서, 괄호 안의 어떠한 참조 부호들도 청구항을 제한하는 것으로 해석되지 않아야 한다. 단어 "포함하는(comprising)"은 청구항에 기재된 것 이외의 요소들 또는 단계들의 존재를 배제하지 않는다. 요소 앞의 단어("a" 또는 "an")는 복수의 그와 같은 요소들의 존재를 배제하지 않는다. 본 발명은 여러 별개의 요소들을 포함하는 하드웨어에 의해, 및 적절하게 프로그램된 컴퓨터에 의해 구현될 수 있다.
여러 수단들을 열거한 장치 청구항들에서 이들 수단의 몇몇은 하나 또는 동일한 아이템의 하드웨어에 의해 구현될 수 있다. 특정 조치들이 상호 상이한 종속항들에서 인용된다는 단순한 사실은 이 조치들의 결합이 유익하게 이용될 수 없음을 나타내지 않는다.
100: 스마트 카드 101: 프로세서
110: 메모리 115: 모듈
120: 입력/출력 모듈 130: 적시 복호화 모듈

Claims (5)

  1. 스마트 카드(100)를 보안하기 위한 방법으로서, 상기 스마트 카드는 프로세싱 수단(101), 상기 프로세싱 수단에 의해 실행된 소프트웨어 모듈(115)을 암호화 방식으로 저장하기 위한 메모리(110), 및 상기 소프트웨어 모듈의 적시 복호화를 위해 구성된 복호화 수단(130)을 포함하는, 상기 스마트 카드(100)를 보안하기 위한 방법에 있어서,
    상기 스마트 카드에 상기 복호화 수단의 화이트-박스 구현을 제공하는 단계를 포함하는, 스마트 카드(100)를 보안하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 복호화 수단(130)은 4 비트를 4 비트로 매핑(mapping)하는 S-박스들에 의해 암호 알고리즘(cryptographic algorithm)을 구현하는, 스마트 카드(100)를 보안하기 위한 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 화이트-박스 구현은 상기 복호화 수단을 위해 이용된 상기 암호 알고리즘에서 임의의 XOR 연산들을 테이블 룩업들(table lookups)로 변환하지 않고 유지하는, 스마트 카드(100)를 보안하기 위한 방법.
  4. 제 1 항에 있어서,
    상기 화이트-박스 구현은 Lombok 암호 알고리즘의 화이트-박스 구현을 포함하는, 스마트 카드(100)를 보안하기 위한 방법.
  5. 프로세싱 수단(101), 상기 프로세싱 수단에 의해 실행될 소프트웨어 모듈(115)을 암호화 방식으로 저장하기 위한 메모리(110), 및 상기 소프트웨어 모듈의 적시 복호화(just-in-time decryption)를 위해 구성되는 복호화 수단(130)의 화이트-박스 구현을 포함하는, 스마트 카드(100).
KR1020107019054A 2008-01-31 2009-01-26 스마트 카드의 보안 Ceased KR20100120671A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP08150860 2008-01-31
EP08150860.8 2008-01-31

Publications (1)

Publication Number Publication Date
KR20100120671A true KR20100120671A (ko) 2010-11-16

Family

ID=40688347

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107019054A Ceased KR20100120671A (ko) 2008-01-31 2009-01-26 스마트 카드의 보안

Country Status (7)

Country Link
US (1) US20110083020A1 (ko)
EP (1) EP2238709A1 (ko)
JP (1) JP2011512726A (ko)
KR (1) KR20100120671A (ko)
CN (1) CN101978647A (ko)
CA (1) CA2713663A1 (ko)
WO (1) WO2009095838A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5689472B2 (ja) * 2009-11-13 2015-03-25 イルデト カナダ コーポレーション 悪意ある実行環境内での静的および動的攻撃からJavaバイトコードを保護するシステムおよび方法
EP2362573A1 (en) * 2010-02-19 2011-08-31 Irdeto B.V. Device and method for establishing secure trust key
US9641337B2 (en) * 2014-04-28 2017-05-02 Nxp B.V. Interface compatible approach for gluing white-box implementation to surrounding program
DE102014016548A1 (de) * 2014-11-10 2016-05-12 Giesecke & Devrient Gmbh Verfahren zum Testen und zum Härten von Softwareapplikationen
US10042589B2 (en) 2015-03-11 2018-08-07 Secure Cloud Systems, Inc. Encrypted data storage and retrieval system
FR3050847B1 (fr) * 2016-05-02 2019-04-05 Morpho Procede d'optimisation d'ecritures en memoire dans un dispositif
KR101933649B1 (ko) * 2016-05-27 2018-12-28 삼성에스디에스 주식회사 화이트박스 암호 알고리즘을 이용한 공개키 암호화를 위한 장치 및 방법
US11012722B2 (en) 2018-02-22 2021-05-18 Secure Cloud Systems, Inc. System and method for securely transferring data
US11329963B2 (en) 2018-02-22 2022-05-10 Eclypses, Inc. System and method for securely transferring data
CN109359490A (zh) * 2018-09-12 2019-02-19 李文昌 基于移动终端的防盗刷便携式ic卡识别设备及方法
US11405203B2 (en) 2020-02-17 2022-08-02 Eclypses, Inc. System and method for securely transferring data using generated encryption keys
US11720693B2 (en) 2021-03-05 2023-08-08 Eclypses, Inc. System and method for securely transferring data
US12353576B2 (en) 2021-03-05 2025-07-08 Eclypses, Inc. System and method for securely transferring data using encryption keys
US11522707B2 (en) 2021-03-05 2022-12-06 Eclypses, Inc. System and method for detecting compromised devices

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4168396A (en) * 1977-10-31 1979-09-18 Best Robert M Microprocessor for executing enciphered programs
US5224166A (en) * 1992-08-11 1993-06-29 International Business Machines Corporation System for seamless processing of encrypted and non-encrypted data and instructions
FR2723223B1 (fr) * 1994-07-29 1996-08-30 Sgs Thomson Microelectronics Procede de brouillage numerique et application a un circuit programmable
JP2001338271A (ja) * 2000-03-23 2001-12-07 Matsushita Electric Ind Co Ltd Icカード及びicカード利用システム
US20010039621A1 (en) * 2000-03-23 2001-11-08 Takeshi Yamamoto IC card and IC card utilization system
US6895506B1 (en) * 2000-05-16 2005-05-17 Loay Abu-Husein Secure storage and execution of processor control programs by encryption and a program loader/decryption mechanism
KR100889465B1 (ko) * 2000-07-04 2009-03-20 코닌클리케 필립스 일렉트로닉스 엔.브이. 대칭-키 암호들을 위한 치환-박스
CA2327911A1 (en) * 2000-12-08 2002-06-08 Cloakware Corporation Obscuring functions in computer software
WO2003023577A1 (en) * 2001-11-12 2003-03-20 Network Research Lab Limited Method and device for protecting information against unauthorised use
WO2005091636A1 (en) * 2004-03-04 2005-09-29 Cloakx, Llc. A method and system for digital rights management and digital content distribution
WO2007031894A2 (en) * 2005-09-15 2007-03-22 Koninklijke Philips Electronics N.V. Improved cryptographic method and system
CN101401348B (zh) * 2006-03-10 2011-08-31 耶德托公司 用于使密码函数模糊的方法和系统
CN100566460C (zh) * 2007-07-13 2009-12-02 北京工业大学 利用短消息实现的移动实体间的认证与密钥协商方法

Also Published As

Publication number Publication date
US20110083020A1 (en) 2011-04-07
CN101978647A (zh) 2011-02-16
CA2713663A1 (en) 2009-08-06
EP2238709A1 (en) 2010-10-13
JP2011512726A (ja) 2011-04-21
WO2009095838A1 (en) 2009-08-06

Similar Documents

Publication Publication Date Title
KR20100120671A (ko) 스마트 카드의 보안
US7039816B2 (en) Using smartcards or other cryptographic modules for enabling connected devices to access encrypted audio and visual content
JP3747520B2 (ja) 情報処理装置及び情報処理方法
TWI468971B (zh) 安全軟體下載
US8347114B2 (en) Method and apparatus for enforcing a predetermined memory mapping
EP2161671A2 (en) Device with privileged memory and applications thereof
EP2381672A1 (en) Secure key access with one-time programmable memory and applications thereof
CN105247883B (zh) 用于给媒体内容加水印的方法以及实现这一方法的系统
TWI490724B (zh) 用於加載至少一個軟體模組的代碼的方法
JP2007013433A (ja) 暗号化データを送受信する方法及び情報処理システム
US20090019290A1 (en) Method and central processing unit for processing encrypted software
US20100095132A1 (en) Protecting secrets in an untrusted recipient
KR101458479B1 (ko) 세션상태정보의 암호화 및 복호화 방법
US10103884B2 (en) Information processing device and information processing method
US20170046280A1 (en) Data processing device and method for protecting a data processing device against attacks
CN109690537A (zh) 用于解密和呈现内容的系统
CN101539979B (zh) 一种电子文档控制保护方法和装置
US7841014B2 (en) Confidential information processing method, confidential information processor, and content data playback system
CN118740825A (zh) 车辆的配置文件的传输方法、装置、存储介质和车辆
US20090202077A1 (en) Apparatus and method for secure data processing
US20080289046A1 (en) Method and device for the prevention of piracy, copying and unauthorized execution of computer-readable media
JP2004280678A (ja) データ処理装置、およびデータ処理方法
JP2007013835A (ja) 暗号化データ復号装置及びその方法

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20100827

Patent event code: PA01051R01D

Comment text: International Patent Application

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

Patent event code: PA02012R01D

Patent event date: 20140127

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: 20141024

Patent event code: PE09021S01D

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20150326

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20141024

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I