KR20080031830A - 코드 암호화 시스템에서 가변적이고 변경하는 키들을 위한방법 및 시스템 - Google Patents

코드 암호화 시스템에서 가변적이고 변경하는 키들을 위한방법 및 시스템 Download PDF

Info

Publication number
KR20080031830A
KR20080031830A KR1020070100412A KR20070100412A KR20080031830A KR 20080031830 A KR20080031830 A KR 20080031830A KR 1020070100412 A KR1020070100412 A KR 1020070100412A KR 20070100412 A KR20070100412 A KR 20070100412A KR 20080031830 A KR20080031830 A KR 20080031830A
Authority
KR
South Korea
Prior art keywords
code
decryption
code segments
key
algorithm parameters
Prior art date
Application number
KR1020070100412A
Other languages
English (en)
Other versions
KR100973207B1 (ko
Inventor
로저스 스테판
Original Assignee
브로드콤 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 브로드콤 코포레이션 filed Critical 브로드콤 코포레이션
Publication of KR20080031830A publication Critical patent/KR20080031830A/ko
Application granted granted Critical
Publication of KR100973207B1 publication Critical patent/KR100973207B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation

Landscapes

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

Abstract

가변되는(varying) 세그먼트(segment) 길이들(lengths)의 분할된 코드(code)를 복호화(decrypt)하기 위한 방법들 및 시스템들이 개시되며, 여기서 코드의 각 세그먼트는 복호화 파라미터들의 상이한 세트로써 보호될 수 있다. 복호화 파라미터 정보의 세트들은 상응하는 코드 세그먼트들에 후속(subsequent)되고 인접(contiguous)하여 내포(embedded)될 수 있다. 복호화 알고리즘 파라미터 정보의 세트들은 복호화 키 정보, IV 비트, 초기화 벡터 정보 및 코드 세그먼트 길이를 포함할 수 있다. 복호화 키 정보는 인덱스를 키 테이블에 포함할 수 있다. 키 테이블은 조합 로직(combinatorial logic)을 사용하여 저장될 수 있다. 정보의 연속적인 블록들은 초기화 벡터로써 및/또는 정보의 선행하는(preceding) 복호화된 블록으로부터의 복호화된 출력으로써 복호화될 수 있다. 코드의 현(current) 세그먼트에 상응하는 복호화 파라미터 정보는 코드의 선행하는 세그먼트로써 복호화될 수 있다. 복호화 알고리즘 파라미터들은 OTP(one-time-programmable) 메모리로부터 획득(acquire)된 시드(seed)를 이용하는 선형 피드백 시프트 레지스터(linear feedback shift register)를 사용하여 생성될 수 있다.
코드, 암호화, 복호화, 키, 보안

Description

코드 암호화 시스템에서 가변적이고 변경하는 키들을 위한 방법 및 시스템{METHOD AND SYSTEM FOR VARIABLE AND CHANGING KEYS IN A CODE ENCRYPTION SYSTEM}
본 발명의 어떤 실시예들은 암호화 시스템(encryption systems)에 관련된다. 더 상세하게는, 본 발명의 어떤 실시예들은 코드 암호화 시스템(code encryption system)에서 가변적이고 변경하는 키들을 위한 방법 및 시스템에 관련된다.
증가하는 보안 인식 세계(security conscious world)에 있어서, 요구되지 않는 디스커버리(discovery) 및/또는 손상(corruption)으로부터 정보 및/또는 시스템들에 대한 억세스(access)를 막는 것은 소비자들 및 사업들에 대한 주요 이슈(issue)이다. 많은 소비자 또는 사업 시스템들은 시스템 내에서 제공되는 보안의 레벨이 적절한 보호(protection)를 제공하기에 충분하지 않을 때 요구되지 않는 억세스에 취약할 수 있다. 이 점에서, 예를 들면, 멀티미디어 시스템과 같은 소비자 시스템들은 요구되지 않는 억세스로부터 필요한 보호를 제공하도록 사용자 권한들 또는 특권들을 한정(define)하고 관리(administer)하기 위하여 보안 관 리(management) 메커니즘들(mechanisms)을 가능하게 하는 통합 아키텍쳐들(integrated architectures)의 사용을 요구할 수 있다. 상이한 여러 사용자들에 의해 억세스될 수 있는 멀티미디어 시스템의 예는, 제조업자들(manufacturers), 공급자들(vendors), 운용자들(operators), 및/또는 가정내 사용자들(home users)이 적어도 시스템의 어떤 제한된 기능을 억세스 또는 제한하는 것에 관심을 가질 수 있는 셋톱 박스(set-top box)일 수 있다.
분산된 요소들(distributed elements)을 갖는 많은 보안 시스템들은 특정 사용자들에 대해 억세스를 제한하기 위해 암호화(encryption) 알고리즘들 및 상응하는 키들(keys)을 이용할 수 있다. 이들 알고리즘들은 만약 권한없는 사용자들이 암호화 키(encryption key)를 획득하여 억세스를 달성할 수 없다면 효과적일 수 있다. 유사 장치들이 필드(field)에 분산된 시스템에서, 공통 암호화 키(common encryption key)는 모든 유사한 장치들에 대해 억세스를 허용할 수 있다. 만약 권한없는 사용자가 키를 발견한다면, 사용자는 모든 유사한 장치들에 대해 억세스를 달성할 수 있다. 더구나, 발견된 키는 분산 유닛들(distributed units)을 또한 억세스할 수 있는 다른 요구되지 않는 사용자들에게 전달될 수 있다.
권한없는 억세스에 대한 한가지 해결책은 필드에 분산된 각 유닛에 대해 고유의(unique) 암호화 키(encryption key)를 할당(assign)하는 것일 수 있다. 이러한 경우에, 만약 암호화 키가 하나의 장치에 대해 부당한 사용자(wrongful user)에 의해 확인(identify)된다면, 그것은 다른 장치들에 대한 억세스를 위해 재사용될 수 없다. 그러나 대형 시스템들에 있어서는, 이러한 방법은 필드에서의 각 장치는 코드의 고유 유닛을 요구할 것이고 각 장치의 사용자들에 대한 고유 키는 분산될 필요가 있을 것이기 때문에 구현하기에는 논리학상으로(logistically) 비실용적일 수 있다.
종래 및 전통적인 접근법들의 더한 한계들(limitations) 및 단점들(disadvantages)은 도면들을 참조하여 본 출원의 나머지 부분들에서 제시되는 바와 같이 종래의 시스템들과 본 발명의 몇몇 측면들과의 비교를 통해 당해 기술 분야에서 숙련된 자에게는 명백할 것이다.
본 발명이 해결하고자 하는 과제는 상기한 종래의 한계들 및 단점들을 해결할 수 있는 코드 암호화 시스템(code encryption system)에서 가변적이고 변경하는 키들을 위한 방법 및 시스템을 제공하고자 함에 있다.
실질적으로 도면들 중의 적어도 하나에서 보여지고/보여지거나 도면들 중의 적어도 하나와 관련하여 설명되며, 청구항들에서 더 완전히 제시되는 바와 같은, 코드 암호화 시스템(code encryption system)에서 가변적(variable)이고 변경하는 키들을 위한 시스템 및/또는 방법이 제공된다.
본 발명의 일 측면에 따라, 보안 통신 시스템(secure communication system)에서의 정보 처리 방법이 제공되며, 그 방법은:
복수의 코드 세그먼트들(code segments) 각각의 연속적인 것들(ones) 사이에 내포된(embedded) 복호화(decryption) 알고리즘 파라미터들에 근거하여, 상기 복수의 코드 세그먼트들로 분할(segment)된 코드(code)를 복호화(decrypt)하는 단계를 포함하되, 상기 복수의 코드 세그먼트들 각각은 상이한 복호화 알고리즘 파라미터들에 의해 보호(protect)된다.
바람직하게는, 상기 복수의 코드 세그먼트들의 길이(length)는 변화(vary)한 다.
바람직하게는, 각각의 세그먼트에 대한 상기 복호화 알고리즘 파라미터들은:
상응하는 복호화 키 정보(decryption key information), 상응하는 초기화 벡터 정보(initialization vector information) 및 상응하는 코드 세그먼트 길이 정보(code segment length information)를 포함한다.
바람직하게는, 상기 복호화 키 정보는 인덱스(index)를 분리된 키 테이블(separate key table) 내에 포함한다.
바람직하게는, 상기 키 테이블은 결합 로직(combinatorial logic)을 사용하여 저장(store)된다.
바람직하게는, 상기 방법은 선행하는(preceding) 복호화된 출력을 이용하여 상기 복수의 코드 세그먼트들의 어떤 것들(ones)에서 정보의 연속적인 블록들을 복호화하는 단계를 더 포함한다.
바람직하게는, 상기 방법은 상응하는 초기화 벡터를 이용하여 상기 복수의 코드 세그먼트들의 어떤 것들(ones)에서 정보의 연속적인 블록들을 복호화하는 단계를 더 포함한다.
바람직하게는, 상기 방법은, 초기화 벡터 또는 미리(previously) 복호화된 코드 세그먼트로부터의 출력 블록의 사용이 개별적으로(individually) 선택될 수 있는 상기 복수의 코드 세그먼트들로부터 정보의 연속적인 블록들을 복호화하는 단계를 더 포함한다.
바람직하게는, 상기 방법은 상기 복수의 코드 세그먼트들 중의 현 재(current) 하나가 복호화되고 있을 때 상기 복수의 코드 세그먼트들 중의 후속(subsequent)되는 하나에 대한 복호화 알고리즘 파라미터들을 복호화하는 단계를 더 포함한다.
바람직하게는, 상기 방법은 선형 피드백 시프트 레지스터(linear feedback shift register)를 사용하여 하나 또는 그 이상의 상기 복호화 알고리즘 파라미터들을 생성하는 단계를 더 포함한다.
바람직하게는, 상기 방법은 OTP(one-time-programmable) 메모리로부터 상기 선형 피드백 시프트 레지스터에 의해 사용되는 시드(seed)를 획득(acquire)하는 단계를 더 포함한다.
본 발명의 일 측면에 따라, 보안 통신 시스템에서의 정보 처리 시스템이 제공되며, 그 시스템은:
복수의 코드 세그먼트들(code segments) 각각의 연속적인 것들(ones) 사이에 내포된(embedded) 복호화(decryption) 알고리즘 파라미터들에 근거하여, 상기 복수의 코드 세그먼트들로 분할(segment)된 코드(code)를 복호화(decrypt)하는 적어도 하나의 프로세서(processor)를 포함하되, 상기 복수의 코드 세그먼트들 각각은 상이한 복호화 알고리즘 파라미터들에 의해 보호(protect)된다.
바람직하게는, 상기 복수의 코드 세그먼트들의 길이는 변화(vary)한다.
바람직하게는, 각각의 세그먼트에 대한 상기 복호화 알고리즘 파라미터들은:
상응하는 복호화 키 정보(decryption key information), 상응하는 초기화 벡 터 정보(initialization vector information) 및 상응하는 코드 세그먼트 길이 정보(code segment length information)를 포함한다.
바람직하게는, 상기 복호화 키 정보는 인덱스(index)를 분리된 키 테이블(separate key table) 내에 포함한다.
바람직하게는, 상기 키 테이블은 조합 로직을 사용하여 저장된다.
바람직하게는, 적어도 하나의 프로세서는 선행하는 복호화된 출력을 이용하여 상기 복수의 코드 세그먼트들 각각에서의 정보의 연속적인 블록들의 복호화를 가능하게 한다.
바람직하게는, 적어도 하나의 프로세서는 상응하는 초기화 벡터를 이용하여 상기 복수의 코드 세그먼트들 각각에서의 정보의 연속적인 블록들의 복호화를 가능하게 한다.
바람직하게는, 적어도 하나의 프로세서는 초기화 벡터 또는 미리 복호화된 코드 세그먼트로부터의 출력 블록의 사용이 개별적으로 선택되는 상기 복수의 코드 세그먼트들로부터 정보의 연속적인 블록들의 복호화를 가능하게 한다.
바람직하게는, 적어도 하나의 프로세서는 상기 복수의 코드 세그먼트들 중의 현재 하나가 복호화되고 있을 때 상기 복수의 코드 세그먼트들 중의 후속되는 하나에 대한 복호화 알고리즘 파라미터들의 복호화를 가능하게 한다.
바람직하게는, 상기 시스템은 하나 또는 그 이상의 상기 복호화 알고리즘 파라미터들의 생성을 가능하게 하는 적어도 하나의 선형 피드백 시프트 레지스터를 더 포함한다.
바람직하게는, 상기 시스템은 상기 선형 피드백 시프트 레지스터에 의해 사용되는 시드를 획득하는 것을 가능하게 하는 적어도 하나의 OTP 메모리를 더 포함한다.
본 발명의 일 측면에 따라, 기계 가독 스토리지(machine-readable storage)로가 제공되고, 그 기계 가독 스토리지는, 그 상에 저장되는, 보안 통신 시스템(secure communication system)에서 정보를 처리하기 위한 적어도 하나의 코드 섹션(code section)을 갖는 컴퓨터 프로그램을 구비하며, 상기 적어도 하나의 코드 섹션은 기계(machine)에게 단계들(steps)을 수행하도록 하기 위해 상기 기계에 의해 실행가능하되, 상기 단계들은:
복수의 코드 세그먼트들(code segments) 각각의 연속적인 것들(ones) 사이에 내포된(embedded) 복호화(decryption) 알고리즘 파라미터들에 근거하여, 상기 복수의 코드 세그먼트들로 분할(segment)된 코드(code)를 복호화(decrypt)하는 단계를 포함하되, 상기 복수의 코드 세그먼트들 각각은 상이한 복호화 알고리즘 파라미터들에 의해 보호(protect)된다.
바람직하게는, 상기 복수의 코드 세그먼트들의 길이는 변화한다.
바람직하게는, 각 세그먼트에 대한 상기 복호화 알고리즘 파라미터들은:
상응하는 복호화 키 정보, 상응하는 초기화 벡터 정보 및 상응하는 코드 세그먼트 길이 정보를 포함한다.
바람직하게는, 상기 복호화 키 정보는 인덱스를 키 테이블 내에 포함한다.
바람직하게는, 상기 적어도 하나의 코드 섹션은 상기 키 테이블이 조합 로직을 사용하여 저장되는 것이 가능하게 하는 코드를 포함한다.
바람직하게는, 상기 적어도 하나의 코드 섹션은 선행하는 복호화된 출력을 이용하여 상기 복수의 코드 세그먼트들 각각에 정보의 연속적인 블록들의 복호화를 가능하게 하는 코드를 포함한다.
바람직하게는, 상기 적어도 하나의 코드 섹션은 상응하는 초기화 벡터를 이용하여 상기 복수의 코드 세그먼트들 각각에 정보의 연속적인 블록들의 복호화를 가능하게 하는 코드를 포함한다.
바람직하게는, 상기 적어도 하나의 코드 섹션은 초기화 벡터 또는 미리 복호화된 코드 세그먼트로부터의 출력 블록의 사용이 개별적으로 선택될 수 이는 상기 복수의 코드 세그먼트들로부터 정보의 연속적인 블록들의 복호화를 가능하게 하는 코드를 포함한다.
바람직하게는, 상기 적어도 하나의 코드 섹션은 상기 복수의 코드 세그먼트들 중의 현재의 하나가 복호화되고 있을 때 상기 복수의 코드 세그먼트들 중의 후속되는 하나에 대한 복호화 알고리즘 파라미터들의 복호화를 가능하게 하는 코드를 포함한다.
바람직하게는, 상기 적어도 하나의 코드 섹션은 선형 피드백 시프트 레지스터를 사용하여 하나 또는 그 이상의 상기 복호화 알고리즘 파라미터들의 생성을 가능하게 하는 코드를 포함한다.
바람직하게는, 상기 적어도 하나의 코드 섹션은 OTP 메모리로부터 상기 선형 피드백 시프트 레지스터에 의해 사용되는 시드를 획득하는 코드를 포함한다.
설명된 실시예의 상세 부분들 뿐 아니라 본 발명의 다양한 장점들, 측면들 및 새로운 특징들은 이하의 상세한 설명 및 도면들로부터 더 완전히 이해될 것이다.
상술한 바와 같이, 본 발명은 코드 암호화 시스템(code encryption system)에서 가변적(variable)이고 변경하는 키들을 위한 방법 및 시스템을 제공함으로써, 특히, 대형 시스템들에서, 필드에서의 각 장치가 코드의 고유 유닛을 요구하고 각 장치의 사용자들에 대한 고유 키가 분산될 필요가 있을 것이기 때문에 구현하기 곤란한 문제점을 개선하는 효과를 갖는다.
본 발명의 어떤 측면들은 코드 암호화 시스템(code encryption system)에서 가변적이고(variable) 변경하는 키들(keys)을 위한 방법 및 시스템에서 발견될 수 있다. 방법 및 시스템의 측면들은, 복수의 가변되는(varying) 길이(length)의 코드 세그먼트들로 분할될 수 있는 코드의 바디(body)를 복호화하는 단계를 포함할 수 있고, 예를 들면 셋톱 박스(set-top box)와 같은 분산된 장치 상에 바디를 저장하는 단계를 포함할 수 있다. 복호화 알고리즘 파라미터들의 고유의(unique) 세 트(set)를 이용하여 복수의 코드 세그먼트들 각각은 복호화될 수 있다. 복수의 코드 세그먼트들 사이에 내포된(embedded) 복수의 데이터 구조들은 복호화 알고리즘 파라미터 정보를 저장할 수 있다. 본 발명의 다른 실시예에서, 복호화 알고리즘 파라미터 정보의 하나 또는 그 이상의 요소들(elements)은 분산된 장치 상에서 생성될 수 있다.
보안의(secure), 재프로그램가능한 시스템에서, 보안 CPU 코드는, 예를 들면, 플래쉬 드라이브(flash drive)에 저장될 수 있다. 칩-공급자 비밀(chip-vendor secrets) 뿐 아니라 소비자 비밀(customer secrets)을 보호하기 위해, 보안 CPU 코드를 암호화하는 것이 필요할 수 있다.
본 발명의 일 실시예에 따라, 코드 암호화 시스템에서 가변적이고 변경하는 키들을 위한 방법은 STBs에서 코드를 암호화하기 위해 다중 키들(multiple keys)을 이용하는 단계를 포함할 수 있다. 만약 STB에 대한 단일 키(key)가 권한없는 사용자에 의해 발견되고, 예를 들면 인터넷을 통해 배포된다면, 권한없는 사용자는 단지 코드의 작은 부분(small portion)만을 복원(recover)할 수 있을 것이다. 본 발명의 일 실시예는 조합 온칩 로직 포맷(combinatorial on-chip logic format)으로 STBs에 대해 다중 키들의 세트를 저장하는 단계를 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따라 가변적이고 변경하는 키들을 이용할 수 있는 대표적인 통신 시스템의 블록 다이어그램이다. 도 1을 참조하면 커맨드 및 제어 헤드 엔드(command and control head-end)(150), 통신 위성(152), 위성 통신 링 크(154), 통신 분배 네트워크(communition distribution network)(156), 복수의 셋톱 박스들((1)(158) 내지 (N)(160)), 텔레비젼 유닛들(162 및 164)을 포함할 수 있는 비디오 분배 시스템(video distribution system)이 보여진다.
커맨드 및 제어 헤드 엔드(150)는 적절한 회로, 로직 및/또는 코드를 포함할 수 있고 복수의 셋톱 박스들((1)(158) 내지 (N)(160))로 분배 네트워크(156)를 통해 비디오 및 제어 신호들을 분배하도록 적응될 수 있다. 커맨드 및 제어 헤드 엔드(150)는 복수의 셋톱 박스들((1)(158) 내지 (N)(160)) 내에서 보안 동작들을 위해 이용되는 코드를 분배할 수 있다.
통신 분배 네트워크(156)는 적절한 회로, 로직 및/또는 코드를 포함할 수 있고 신호들의 전송을 위한 다양한 시작 및 종단 점들(originating and terminating points) 사이에서 링크들(links)을 제공하도록 적응될 수 있다. 통신 분배 네트워크(156)는 커맨드 및 제어 헤드 엔드(150)로부터 복수의 셋톱 박스들((1)(158) 내지 (N)(160)) 내에서 보안 동작들을 위해 이용되는 코드를 전달(carry)하는 신호들을 전송(transport)할 수 있다.
통신 위성(152) 및 상응하는 통신 위성 링크(154)는 적절한 회로, 로직 및/또는 코드를 포함할 수 있고 분배 네트워크(156)를 위하여 업링크(uplink) 및 다운링크(downlink) 무선 전송들(wireless transmissions)을 제공하도록 적응될 수 있다. 통신 위성(152) 업링크 및 다운링크 무선 전송들은 커맨드 및 제어 헤드 엔드(150)로부터 복수의 셋톱 박스들((1)(158) 내지 (N)(160)) 내에서 보안 동작들을 위해 이용되는 코드를 전달하는 신호들을 전송할 수 있다.
복수의 셋톱 박스들((1)(158) 내지 (N)(160))은 적절한 회로, 로직 및/또는 코드를 포함할 수 있고 커맨드 및 제어 헤드 엔드(150)로부터 또는 커맨드 및 제어 헤드 엔드(150)로 신호들을 수신 및 송신하도록 적응될 수 있다. 복수의 셋톱 박스들((1)(158) 내지 (N)(160))은 셋톱 박스 내에서 정보를 처리하고, 저장하고 통신하기 위한 적절한 회로, 로직, 및/또는 코드를 포함할 수 있다. 복수의 셋톱 박스들((1)(158) 내지 (N)(160))는 거기에서 보호된 기능성(functionality)을 위해 보안 동작들을 가능하게 할 수 있는 재프로그램가능한 보안 시스템을 포함할 수 있다. 복수의 셋톱 박스들((1)(158) 내지 (N)(160))은 분배 네트워크(156) 및 참조부호 162 및 164로 보여지는 상응하는 텔레비젼 유닛들에 통신상으로(communicatively) 결합될 수 있다.
참조부호 162 및 164로 보여지는 복수의 텔레비젼 유닛들은 상응하는 셋톱 박스들에 통신상으로 결합된다. 텔레비젼 유닛들은 셋톱 박스들로부터 복호화된 신호들을 수신하고 디스플레이할 수 있다.
동작시, 보안 프로세서 코드의 새로운 버젼들(versions)은 커맨드 및 제어 헤드 엔드(150)에 의해 분배될 수 있고 하나 또는 그 이상의 통신 위성(152), 통신 위성 링크(154), 및 통신 분배 네트워크(156)를 통해 복수의 셋톱 박스들((1)(158) 내지 (N)(160))로 통신 신호들에 의해 전달될 수 있다. 복수의 셋톱 박스들((1)(158) 내지 (N)(160))은 본 발명의 일 실시예에 따라 코드를 다운로드하고 보안 동작들을 수행할 수 있다.
도 2a는 본 발명의 일 실시예에 따라 가변적이고 변화하는 키들을 이용하는 대표적인 복호화 시스템을 나타내는 블록 다이어그램이다. 도 2a를 참조하면, 집적 회로(200), 메모리(210), 코드 세그먼트들(218, 224, 230, 236 및 242), 데이터 구조들(data structures)(220, 222, 226, 228, 232, 234, 238 및 240), 키 데이블(key table)(212), 암호화/복호화 엔진(encryption/decryption engine)(214) 및 암호화된/복호화된 코드 블록 출력(encrypted/decrypted code block output)(216)이보여진다.
메모리(210)는 예를 들면 외부 플래쉬 메모리(flash memory)일 수 있고 복수의 코드 세그먼트들 및 복수의 내포된 상응하는 데이터 구조들을 위한 스토리지(storage)를 포함할 수 있다. 메모리(210)는 암호화/복호화 엔진(214)에 통신상으로 결합될 수 있다. 코드 세그먼트 1(218) 및 데이터 구조들(220 및 222)은 그룹(group)으로서 함께 고정 파라미터들(fixed parameters)이 필드(field)에서 복수의 분산된 장치들과 공통으로 이용될 수 있는 고정 키(fixed key), 고정 초기화 벡터 및 고정 코드 세그먼트 길이를 이용하여 복호화될 수 있다.
데이터 구조(220)는 집적 회로(200)의 키 테이블(212) 내에서 키(key)를 확인(identify)하도록 이용될 수 있는 키 2 테이블 인덱스를 포함할 수 있다. 데이터 구조(222)는 초기화 벡터 2 및 코드 세그먼트 2 길이를 포함할 수 있다. 키 2 테이블 인덱스, 초기화 벡터 2 및 코드 세그먼트 2 길이에 의해 확인되는 키 테이블(212)로부터의 키를 포함하는 복호화 파라미터들의 세트는 암호화/복호화 엔진(214)으로 통신될 수 있다. 복호화 파라미터들의 세트는 226 내에서의 키 3 테이블 인덱스 및 228 내에서의 초기화 벡터 3 및 코드 세그먼트 3 길이와 함께 224 내 에 저장된 코드 세그먼트 2를 복호화하기 위해 이용될 수 있다.
데이터 구조(226)는 집적 회로(200) 상에서 키 테이블(212) 내에서 키를 확인하도록 이용될 수 있는 키 3 테이블 인덱스를 포함할 수 있다. 데이터 구조(228)는 초기화 벡터 3 및 코드 세그먼트 3 길이를 포함할 수 있다. 키 3 테이블 인덱스, 초기화 벡터 3 및 코드 세그먼트 3 길이에 의해 확인되는 키 테이블(212)로부터의 키를 포함하는 복호화 파라미터들의 세트는 암호화/복호화 엔진(214)으로 통신될 수 있다. 복호화 파라미터들의 세트는 232로부터의 키 4 테이블 인덱스 및 234로부터의 초기화 벡터 4 및 코드 세그먼트 4 길이와 함께 코드 세그먼트 3(230)을 복호화하기 위해 사용될 수 있다.
236 내에서의 코드 세그먼트 4 내지 242 내에서의 코드 세그먼트 n에 상응하는 복호화 파라미터들은 코드 세그먼트 4 내지 코드 세그먼트 n 및 코드 세그먼트 2(224) 및 코드 세그먼트 3(230) 및 상응하는 연속적인 데이터 구조들에 대해 설명된 방법에 따른 상응하는 연속적인 데이터 구조들을 복호화하기 위해 이용될 수 있다.
키 테이블(212)은 관련 키 인덱스들에 맵핑(mapping)되는 복수의 복호화 알고리즘 키들을 포함할 수 있다. 키 테이블은 물리적 칩 공격들(physical chip attacks)에 대비하여 더 나은 보호를 제공하기 위해 조합 로직(combinatorial logic)에 저장될 수 있다. 키 테이블은 암호화/복호화 엔진(214)에 통신상으로 결합될 수 있다. 복호화 엔진을 포함하는 본 발명의 일 실시예에서, 키 테이블(212)은 복호화된 코드 출력 블록(216)에 통신상으로 결합될 수 있다. 암호화 엔진을 포 함하는 본 발명의 다른 실시예에서, 키 테이블은 메모리(210)에 통신상으로 결합될 수 있다.
암호화/복호화 엔진(214)은 복호화 엔진으로서 기능할 수 있고 메모리(210)로부터 연속적인 코드 세그먼트/데이터 구조 그룹들을 복호화할 수 있다. 이 점에서, 복호화 엔진(214)은 메모리(210), 키 테이블(212) 및 암호화된 코드 출력 블록(216)에 통신상으로 결합될 수 있다. 암호화 엔진(214)은 입력으로서, 메모리(210)로부터 복호화된 코드 세그먼트 및 후속되고 인접하는 데이터 구조를 수신할 수 있다. 복호화 엔진(214)은 또한 키 테이블(212)로부터 키를 포함하는 상응하는 복호화 알고리즘 파라미터들을, 그리고 선행하는 복호화 출력(216)으로부터 초기화 벡터 또는 미리 복호화된 코드 블록 및 코드 세그먼트 길이를 수신할 수 있다. 복호화 엔진(214)은, 암호화된 코드 세그먼트 및 후속되고 인접하는 데이터 구조를 포함하는 다음 그룹을 위해 복호화된 코드 세그먼트들 및 복호화 알고리즘 파라미터들의 블록들을 출력할 수 있다.
암호화 엔진을 포함하는 본 발명의 다른 실시예에서, 암호화/복호화 엔진(214)은 암호화 엔진으로서 기능할 수 있고 코드 세그먼트들 및 데이터 구조들의 연속적인 코드 세그먼트들 및 데이터 구조들의 그룹들을 암호화할 수 있다. 이 점에서, 암호화 엔진(214)은 메모리(210), 키 테이블(212) 및 복호화된 코드 출력 블록(216)에 통신상으로 결합될 수 있다. 암호화 엔진(214)은 입력으로서, 메모리(210)로부터 코드 세그먼트 및 후속되고 인접하는 데이터 구조를 포함하는 그룹들을 수신할 수 있다. 암호화 엔진(214)은 키 테이블(212)로부터 키를 포함하는 상 응하는 암호화 알고리즘 파라미터들을, 그리고 메모리(210)로부터 초기화 벡터 및 코드 세그먼트 길이, 또는 초기화 벡터 대신에 216으로부터 미리 암호화된 코드 출력을 수신할 수 있다. 암호화 엔진(214)은 암호화된 코드 세그먼트들 및 데이터 구조들의 블록들을 출력할 수 있다.
암호화된/복호화된 코드 출력 블록(216)은 암호화된/복호화된 엔진으로부터의 출력을 포함할 수 있다. 암호화된/복호화된 코드 출력 블록(216)은 암호화/복호화 엔진(214)의 입력 및 키 테이블(212)의 입력에 통신상으로 결합된다. 복호화 알고리즘 파라미터들을 포함하는 데이터의 복호화된 블록이 암호화/복호화 엔진(214)으로부터의 출력일 때, 다음 코드 세그먼트를 복호화하기 위한 복호화된 키 인덱스는 키 테이블(212)의 입력으로 보내지고 데이터의 복호화된 블록은 암호화/복호화 엔진의 입력으로 보내진다. 여기서, 데이터의 복호화된 블록은 초기화 벡터 대신에 복호화 알고리즘 파라미터로서 사용될 수 있다.
동작시, 코드의 암호화된 바디(body)는 가변적인 길이의 복수의 코드 세그먼트들로 분할될 수도 있고, 분산된 장치, 예를 들면, 셋톱 박스 상의 메모리(210)에 저장될 수도 있다. 복수의 코드 세그먼트들(218, 224, 230, 236, 및 242) 사이에 내포된 복수의 데이터 구조들(220, 222, 226, 228, 232, 234, 238, 및 240)은 복호화 알고리즘 파라미터 정보를 저장할 수 있다. 복수의 코드 세그먼트들의 처음 것(first)을 제외하고, 복수의 코드 세그먼트들의 어떤 것들(ones)은 복수의 데이터 구조들의 상응하는 어떤 것들(ones)을 가질 수 있다.복수의 데이터 구조들의 어떤 것들은 복수의 코드 세그먼트들의 그들의 상응하는 어떤 것들을 선행하여 내포 될 수 있다.
코드의 암호화된 바디는 예를 들면 셋톱 박스와 같은 하나 또는 그 이상의 분산된 장치들 상의 플래쉬 메모리일 수 있는 메모리(210)에 저장될 수 있다. 복수의 코드 세그먼트들 내에서 코드의 상이한 세그먼트들은 복호화 파라미터 정보의 상이한 세트들을 이용하여 복호화될 수 있다. 코드의 바디는 후속되고 인접하는 데이터 구조로써 코드를 먼저 그룹핑(grouping)하고 그 후 복호화 알고리즘 파라미터들의 하나의 세트로써 그룹을 복호화함에 의해 복호화될 수 있다. 복호화될 제1 세그먼트는 제2 코드 세그먼트에 상응하는 복호화 알고리즘 파라미터 정보를 포함할 수 있는 후속되고 인접하는 데이터 구조와 그룹핑될 수 있다. 제1 코드 세그먼트/데이터 구조 그룹은 복수의 유사 배치된 장치들(similar deployed devices)에 의해 이용될 수 있는 고정되거나 알려진 복호화 알고리즘 파라미터 정보의 세트를 이용하여 복호화될 수 있다. 이러한 방법으로, 제1 코드 세그먼트/데이터 구조 그룹이 복호화된 이후에, 제2 코드 세그먼트/데이터 구조 그룹을 위한 복호화 알고리즘 파라미터 정보의 세트가 사용(utilization)을 위해 이용가능할 수 있게 된다. 연속적인 코드 세그먼트/데이터 구조 그룹들은 동일한 방법으로 복호화된다.
데이터 구조 예를 들면 220 및 222에 저장된 복호화 알고리즘 파라미터 정보의 세트는, 예를 들면 후속되고 인접하는 코드 세그먼트(224)에 상응하는 키 테이블 인덱스, 초기화 벡터 및 코드 세그먼트를 포함할 수 있다. 초기화 벡터는 복호화 처리의 반복들로써 변경할 수 있는 복호화 알고리즘 파라미터를 초가화하기 위해 사용될 수 있다. 키 테이블 인덱스는 키 테이블(212)에서 키를 확인(identify) 하기 위해 사용될 수 있다. 키 테이블(212)은 장치 상의 조합 로직에 저장될 수 있다. 코드 세그먼트/데이터 구조 그룹에 대한 복호화는 연쇄(chain)될 수 있고, 여기서 코드 세그먼트/데이터 구조 그룹으로부터의 코드의 제1 블록은 초기화 벡터 및 복호화 키를 이용하여 복호화된다. 코드의 제1 블록이 복호화된 이후에, 복호화된 출력 블록은 복호화 엔진(214)의 입력으로 피드백될 수 있고 초기화 벡터를 대신하여 사용될 수 있으며 데이터의 다음 블록을 복호화하기 위한 키로써 이용될 수 있다. 이러한 방법으로, 데이터의 연속적인 블록들은 선행하는 복호화된 블록 출력 및 상응하는 키를 복호화 알고리즘 파라미터들로서 이용한다. 후속 코드 세그먼트/데이터 구조 그룹이 복호화될 때, 복호화 파라미터들의 새로운 세트는 코드 세그먼트/데이터 구조 그룹에서 데이터의 제1 블록을 위해 새로운 초기화 블록을 포함하여 사용된다.
도 2b는 초기화 벡터 및 복호화 엔진 출력의 연쇄(chain) 또는 피드백 처리가 도 2a에서 도시된 것과 상이한 본 발명의 다른 실시예를 나타내는 블록 다이어그램이다. 도 2b를 참조하면, 메모리(210), 코드 세그먼트들(218, 224, 230, 236 및 242), 데이터 구조들(220, 226, 232, 및 238), 키 테이블(212), 암호화/복호화 엔진(214) 및 암호화된/복호화된 코드 블록 출력(216)을 포함하는 도 2a에 보여지는 것과 동일한 여러 요소들이 보여진다. 도 2b에서 새롭거나 대체된 요소들은 데이터 구조들(250, 252, 254 및 256)을 포함한다.
데이터 구조(250)는 메모리(210)에 저장될 수 있고 코드 세그먼트 1(218) 및 키 2 테이블 인덱스(220)로써 복호화될 수 있는 초기화 벡터를 포함할 수 있다. 데 이터 구조들(252, 254 및 256)은 도 2a에서와 같이 후속되고 인접하는 코드 세그먼트에 상응하는 코드 세그먼트 길이를 포함하지만 어떤 초기화 벡터들을 포함하지는 않는다.
동작시, 새롭거나 대체된 데이터 구조들을 포함하는 코드의 암호화된 바디는 복호화 엔진(214)의 입력으로의 복호화된 코드 출력의 체인 또는 피드백을 제외하고 도 2a에서 보여지는 데이터 구조들을 포함하는 어떤 것(one)에 유사한 방법으로 복호화된다. 도 2b에서 보여지는 바와 같이, 데이터 구조(220 및 250)에 저장된 복호화 알고리즘 파라미터 정보의 세트는, 예를 들면, 후속되고 인접하는 코드 세그먼트(224)에 상응하는 키 테이블 인덱스, 초기화 벡터 및 코드 세그먼트 길이를 포함할 수 있다. 초기화 벡터는 복호화 처리의 반복들로써 변경될 수 있는 복호화 알고리즘 파라미터를 초기화하기 위해 사용될 수 있다. 키 테이블 인덱스는 키 테이블(212)에서 키를 확인하기 위해 사용될 수 있다. 키 테이블(212)은 장치 상의 조합 로직에 저장될 수 있다.
코드 세그먼트/데이터 구조 그룹의 복호화는 연쇄될 수 있고 여기서 코드 세그먼트/데이터 구조 그룹으로부터의 제1 블록은 초기화 벡터 및 복호화 키를 이용하여 복호화될 수 있다. 코드의 제1 블록이 복호화된 이후에, 복호화된 출력 블록은 복호화 엔진(214)의 입력으로 피드백될 수 있고 데이터의 다음 블록을 복호화하기 위한 키 테이블로부터의 키로써 초기화 벡터를 대신하여 사용될 수 있다. 이러한 방법으로, 데이터의 연속적인 블록들은 선행하는 복호화된 블록 출력 및 상응하는 키를 복호화 알고리즘 파라미터들로서 이용할 수 있다. 그러나, 도 2b에서, 후 속되는 코드 세그먼트/데이터 구조 그룹이 복호화될 때, 복호화 파라미터들의 새로운 세트는 사용되지만 어떻나 새로운 초기화 벡터는 사용되지 않는다. 대신에, 선행하는 코드 세그먼트/데이터 구조 그룹의 마지막(last) 복호화된 블록으로부터의 출력이 이용된다. 연속적인 코드 세그먼트/데이터 구조 그룹들은 동일한 방법으로 복호화될 수 있다.
도 2c는 초기화 벡터의 사용이 코드 세그먼트 기반 별 상에서 선택가능할 수 있는 본 발명의 다른 실시예를 나타내는 블록 다이어그램이다. 따라서, 코드 세그먼트의 암호화 및/또는 복호화는 새로운 초기화 벡터로써 시작할 수 있거나 이전의(prior) 코드 세그먼트의 암호화 및/또는 복호화, 그리하여 하나 또는 그 이상의 코드 세그먼트들을 통한 연쇄화(chaining)로부터의 출력 블록을 이용할 수 있다. 선택가능한 초기화 벡터들의 구현은 몇가지 방법으로 수행될 수 있다. 예를 들면, 어떤 비트(bit)가 데이터 구조에 부가될 수 있고 후속되는 코드 세그먼트의 암호화 및/또는 복호화를 위한 유효 초기화 벡터의 지시자(indicator)로서 이용될 수 있다. 다른 예에서, 데이터 구조의 초기화 벡터 필드에서 명시된 값은 새로운 초기화 벡터보다는 오히려 이전의(prior) 코드 세그먼트로부터의 출력이 이용되어야 한다는 것을 나타낼 수 있다. 도 2c를 참조하면, 메모리(210), 코드 세그먼트들(218, 224, 230, 236 및 242), 데이터 구조들(220, 226, 232, 및 238), 키 테이블(212), 암호화/복호화 엔진(214) 및 암호화된/복호화된 코드 출력 블록(216)을 포함하는 도 2a에서 보여지는 것과 동일한 여러 요소들이 보여진다.
데이터 구조(270)는 메모리(210)에 저장될 수 있고 초기화 벡터(IV) 비트, 복호화 엔진(214)에서 파라미터들로서 이용될 초기화 벡터 및 코드 세그먼트 2 길이를 포함할 수 있다. IV 비트는 코드 세그먼트 2의 복호화가 초기화 벡터 2로써 시작해야 하는지 아니면 파라미터로서 코드 세그먼트의 복호화로부터의 출력으로써 시작해야 하는지를 나타낼 수 있다. 데이터 구조들(272, 274 및 276)은 복호화 파라미터들; IV 비트, 만약 IV 비트에 의해 나타내어진다면 초기화 벡터, 및 코드 세그먼트 길이를 포함한다. 여기서 데이터 구조 내의 각각의 파라미터는 도 2c에서 보여지는 바와 같이 후속되고 인접하는 코드 세그먼트에 상응한다.
동작시, 도 2c에서 보여진 바와 같이 선택가능한 초기화 벡터들을 가능하게 하는 데이터 구조들을 포함하는 코드의 복호화된 바디는, 도 2a 및 2b에 보여진 바와 같은 데이터 구조들을 포함하는 코드들을 위한 그것에 유사한 방법으로 복호화될 수 있다. 따라서, 코드의 후속되는 세그먼트가 복호화될 때, IV 비트는 새로운 초기화 벡터가 파라미터로서 이용될 것인지 아니면 코드의 이전의(prior) 세그먼트로부터의 복호화 엔진(214)의 출력이 피드백되고 입력 파라미터로서 이용될 것인지를 나타낼 수 있다. 도 2c에서 보여지는 바와 같이데이터 구조(220 및 270)에 저장된 복호화 알고리즘 파라미터 정보의 세트는, 예를 들면, 후속되고 인접하는 코드 세그먼트(224)에 상응하는 키 테이블 인덱스, IV 비트, 초기화 벡터 및 코드 세그먼트 길이를 포함한다. IV 비트는 복호화 엔진(214)으로부터 초기화 벡터 또는 연쇄된 출력의 사용을 선택하기 위해 이용될 수 있다. 초기화 벡터는 복호화 처리의 각 반복으로 변할 수 있는 복호화 알고리즘 파라미터를 초기화하기 위해 사용될 수 있다. 키 테이블 인덱스는 키 테이블(212)에서 키를 확인하기 위해 사용될 수 있 다. 키 테이블(212)은 장치 상의 조합 로직에 저장될 수 있다.
만약 IV 비트가 복호화 처리에서 이용되어져야 하는 유효 초기화 벡터를 나타낸다면, 코드 세그먼트/데이터 구조 그룹의 복호화는 연쇄될 수 있고, 여기서 코드 세그먼트/데이터 구조 그룹으로부터의 코드의 제1 블록은 초기화 벡터 및 복호화 키를 이용하여 복호화된다. 코드의 제1 블록이 복호화된 이후에, 복호화된 출력 블록은 복호화 엔진(214)의 입력으로 피드백될 수 있고 데이터의 다음 블록을 복호화하기 위해 키 테이블로부터의 키로써 초기화 벡터를 대신하여 사용될 수 있다. 이러한 방법으로, 데이터의 연속적인 블록들은 선행하는 복호화된 블록 출력 및 상응하는 키를 복호화 알고리즘 파라미터들로 서 이용한다. 그러나 도 2c에서, IV 비트가 후속되는 코드 세그먼트/데이터 구조 그룹이 이전의(prior) 코드 세그먼트/데이터 구조 그룹과 함께 연쇄되어야 할 때, 복호화 파라미터들의 새로운 세트는 초기화 벡터를 제외하고 이용된다. 대신에, 선행하는 코드 세그먼트/데이터 구조 그룹의 마지막 복호화된 블록으로부터의 출력이 복호화 알고리즘에 대한 입력으로서 이용된다. 연속적인 코드 세그먼트/데이터 구조 그룹들은 동일한 방법으로 복호화될 수 있다.
도 2d는 키 테이블 인덱스들이 코드 세그먼트들 사이에 내포되기보다는 오히려 필드에서의 복수의 장치들 상에서 생성 또는 저장될 수 있고 통신 네트워크를 통해 통신될 수 있는 본 발명의 다른 실시예를 나타낸다. 도 2d를 참조하면, 예를 들면 선형 피드백 시프트 레지스터(linear feedback shift register;LFSR)(262)는 키 테이블(212)을 위하여 키 테이블 인덱스들을 생성할 수 있다. LFSR을 초기화하 기 위한 시드(seed)는 OTP 메모리(260)에 저장될 수 있다. 이 점에서, 도 2a에서 보여지는 키 테이블 인덱스들을 저장하는 메모리(210)에서 데이터 구조들(220, 226, 232 및 238)은 제거될 수 있다. 도 2d에서 보여진 다른 블록들은 도 2a에서 보여진 블록들과 동일할 수 있고 유사한 방법으로 기능할 수 있다.
필드에서의 복수의 장치들, 예를 들어, 집적 회로들의 패밀리는 만약 그들이 동일한 LFSR 스킴(scheme)을 이용하고 동일한 시드 값으로써 초기화된다면 메모리(210)에서 코드의 동일한 바디를 복호화할 수 있고 상응하는 키 테이블 인덱스들의 동일한 시퀀스를 생성할 수 있다. LFSR을 위한 시드는 OTP 메모리(260)에서 복수의 장치들 상에 저장될 수 있고 LFSR로부터의 제1 키 인덱스의 생성 이전에 LFSR내로 들어갈 수 있다.
동작시, 도 2d에 보여진 바와 같은 코드 세그먼트들 및 데이터 구조들을 포함하는 메모리(210)에 저장된 코드의 복호화된 바디는 입력을 위한 키를 복호화 알고리즘으로 생성하는 방법의 단계들을 제외하고 도 2a에 대해 설명된 방법과 유사한 방법으로써 복호화될 수 있다. 이 점에서, 키 테이블(212)은 키들의 테이블 및 관련 키 테이블 인덱스들을 포함하여 도 2a에서 보여진 것과 동일할 수 있고 조합 로직에 저장될 수 있다. 복호화 엔진으로의 입력을 위한 키는 LFSR(262)에 의해 생성될 수 있다. 예를 들면, LFSR은 제1 LFSR 동작에 대비하여 OTP(260)로부터 시드를 수신할 수 있다. 메모리(210)에 저장된 연속적인 코드 세그먼트들의 복호화를 위하여, LFSR(262)은 상응하는 키 인덱스를 출력할 수 있다. 키인덱스는 키 테이블(212)로 보내질 수 있고 상응하는 키를 확인하기 위해 이용될 수 있다. 키 테이 블(212)로부터의 키는 메모리로부터의 상응하는 초기화 벡터 및 상응하는 코드 세그먼트 길이로써 복호화 엔진(214)으로 보내질 수 있다.
도 3a는 본 발명의 일 실시예에 따라 복호화 동작들을 위하여, 도 2a에 도시된 바와 같이 코드 세그먼트들 사이에 내포될 수 있고 어떤 장치로 통신될 수 있는 복호화 알고리즘 파라미터들을 변화(vary)하기 위해 이용하는 대표적인 단계들을 나타내는 플로우 챠트이다. 도 3a를 참조하면, 단계 310에서, 코드의 바디는 가변적인 길이의 세그먼트들로 분할된다. 단계 312에서, 암호화 파라미터들:코드 세그먼트의 길이, 키 테이블 및 초기화 벡터에 대한 인덱스는 상응하는 코드 세그먼트들과 함께 내포된다. 단계 314에서, 코드의 제1 세그먼트 및 하나 또는 그 이상의 후속되고 인접하는 데이터 구조들은 칩 패밀리 별로 고정되는 암호화 파라미터들로써 암호화될 수 있다. 단계 316에서 연속적인 코드 세그먼트들은 상응하는 암호화 알고리즘 파라미터들에 근거하여 후속되고 인접하는 데이터 구조들과 함께 암호화될 수 있다. 단계 318에서, 암호화된 코드는 하나 또는 그 이상의 복수의 분산된 장치들에 의해 수신될 수 있고 메모리(210)에 저장될 수 있다. 여기서 코드 세그먼트들은 218, 224, 230, 236 및 242에 보여지는 바와 같이 저장되고 암호화 파라미터들:코드 세그먼트의 길이, 키 테이블에 대한 인덱스 및 초기화 벡터를 포함하는 데이터 구조들은 220, 222, 226, 228, 232, 234, 238 및 240에서 보여지는 바와 같이 저장된다. 단계 320에서, 코드(218)의 제1 세그먼트 및 후속되고 인접하는 데이터 구조들(220 및 222)은 칩 패밀리 별로 고정된 복호화 파라미터들로써 복호화 엔진(214)에 연쇄 복호화(chain descrypt)된다. 코드 세그먼트 및 복호화 파라미터들 의 제2 세트를 포함하여 214로부터의 복호화된 출력은 그 후 키 테이블(212)의 입력 및 복호화 엔진(214)의 입력으로 보내질 수 있다. 단계 322에서, 연속적인 코드 세그먼트들은 후속되고 인접하는 데이터 구조들과 함께 복호화될 수 있다. 214로부터의 복호화된 출력은 코드의 다음 세그먼트를 위한 코드 세그먼트들 및 복호화 파라미터들을 포함할 수 있다. 214로부터의 복호화된 출력은 키 테이블(212)의 입력 및 복호화 엔진(214)의 입력으로 보내질 수 있다. 단계 324에서, 242에 저장된 마지막 코드 세그먼트 n이 복호화될 수 있다.
본 발명의 대표적인 실시예에 따라, 셋톱 박스와 같은 장치를 위한 코드의 바디는 복호화 알고리즘 파라미터 정보와 함께 내포될 수 있다.분할된 코드 및 내포된 복호화 파라미터 정보는 분산될 수 있고 예를 들면 도 2a에서 보여진 바와 같이 복수의 셋톱 박스 장치들 상에서 메모리(210)에 저장될 수 있다. 코드의 제1 세그먼트(218) 및 내포된 복호화 파라미터 정보의 제1 세트(220 및 222)는 복호화 엔진(214)에서 복호화를 위해 보내질 수 있고 복호화 알고리즘 파라미터들의 고정된 세트에 근거하여 복호화될 수 있다. 복호화 알고리즘 파라미터들의 고정 세트는 공통 칩 패밀리를 이용하여 복수의 장치들에 공통적일 수 있다. 복호화 알고리즘 파라미터들(220, 222, 226, 228, 232, 234, 238 및 240)의 후속되고 인접하는 세트들 중의 어떤 것들(ones)에 따른 코드(224, 230, 236 및 242)의 연속적인 세그먼트들의 어떤 것들(ones)은 복호화 엔진(214)에서 복호화된다. 연속적인 복호화 동작들은 현 코드 세그먼트의 복호화를 선행하는 복호화로부터 릴리스(release)된 복호화 알고리즘 파라미터들의 세트 상에 근거할 수 있다.
도 3b는 본 발명의 일 실시예에 따라, 가변적인 복호화 알고리즘을 이용하는 복호화 동작들을 위한 대표적인 단계들을 보여주는 플로우 챠트이다. 여기서 하나 또는 그 이상의 가변적인 복호화 알고리즘 파라미터들은 코드 세그먼트들 사이에 저장될 수 있고 도 2d에서 보여지는 바와 같이 하나 또는 그 이상의 가변적인 복호화 알고리즘 파라미터들이 장치 상에서 생성될 수 있다. 도 3b를 참조하면, 단계 340에서, 코드의 바디는 가변적인 길이의 세그먼트들로 분할된다. 단계 342에서, 암호화 파라미터들: 코드 세그먼트의 길이 및 초기화 벡터를 포함하는 데이터 구조들은 상응하는 코드 세그먼트들에 후속되고 인접하여 내포된다.
단계 344에서, 암호화 키들이 선택된다. 단계 346에서, 코드이 제1 세그먼트 및 하나 또는 그 이상의 후속되고 인접하는 데이터 구조들이 칩 패밀리 별로 고정되는 암호화 파라미트들로써 연쇄 암호화된다. 단계 348에서, 연속적인 코드 세그먼트들은 상응하는 암호화 알고리즘 파라미터들에 근거하여 후속되고 인접하는 데이터 구조들과 함께 암호화될 수 있다.
단계 350에서, 암호화된 코드 및 하나 또는 그 이상의 암호화 알고리즘 파라미터들이 하나 또는 그 이상의 복수의 분산된 장치들에 의해 수신되고, 예를 들면 218, 224, 230, 236 및 242에 보여진 바와 같이 플래쉬 메모리일 수 있는 메모리(210)에 저장된다. 암호화 알고리즘 파라미터들:코드 세그먼트의 길이 및 초기화 벡터를 포함하는 데이터 구조들은 222, 228, 234 및 240에서 보여진 바와 같이 저장된다. 단계 352에서, OTP 메모리(260)로부터의 시드가 키 테이블 인덱스를 생성하기 위해 선형 피드백 시프트 레지스터(LFSR)(262)에 이용될 수 있다.
단계 354에서, 메모리(218)에서의 코드의 제1 세그먼트 및 코드의 제2 세그먼트에 상응하는 하나 또는 그 이상의 복호화 알고리즘 파라미터들을 포함하는 데이터구조(222)는 복호화 파라미터들의 고정 세트에 근거하여 복호화 엔진(214)에서 복호화될 수 있다. 코드의 제2 세그먼트를 위해 복호화된 복호화 알고리즘 파라미터들은 복호화 엔진(214)으로부터 출력될 수 있고 다음 복호화 동작을 위해 입력(214)으로 되돌려 보내질 수 있다. 단계 356에서, 연속적인 코드 세그먼트들은 연속적인, 상응하는 키들, 복호화된 초기화 벡터들 및 복호화된 코드 세그먼트 길이들을 이용하여 복호화 엔진(214)에서 후속되고 인접하는 데이터 구조들의 어떤 것들(ones)로써 복호화될 수 있다. 연속적이고 상응하는 키들은 선형 피드백 시프트 레지스터(262)에서 연속적으로 생성될 수 있는 키 인덱스들에 의해 키 테이블(212)로부터 선택될 수 있다. 214로부터의 복호화된 출력은 복호화 엔진(214)의 입력으로 되돌려 보내질 수 있다. 단계 358에서, 242에 저장된 마지막 코드 세그먼트 n이 복호화될 수 있다.
본 발명의 대표적인 일 실시예에 따라, 셋톱 박스와 같은 장치를 위한 코드의 바디는 분할되고 복호화 알고리즘 파라미터 정보와 함께 내포될 수 있다. 본할된 코드 및 내포된 복호화 파라미터 정보는 예를 들면 도 2a에서 보여지는 바와 같이 메모리(210)에서의 복수의 셋톱 박스 장치들 상에 분산될 수 있고 저장될 수 있다. 내포된 복호화 파라미터 정보(222)의 코드의 제1 세그먼트(218) 및 제1 세트는 복호화 엔진(214)으로 보내질 수 있고 복호화 알고리즘 파라미터들의 고정 세트에 근거하여 복호화될 수 있다. 복호화 알고리즘 파라미터들의 고정 세트는 공통 칩 패밀리를 이용하여 복수의 장치들에 공통일 수 있다. 복호화 알고리즘 파라미터들(220, 222, 226, 228, 232, 234, 238 및 240)의 후속되고 인접하는 세트들에 따른 코드(224, 230, 236 및 242)의 연속적인 세그먼트들은 복호화 엔진(214)에서 복호화된다. 이 점에서, 선행하는 복호화 동작으로부터 릴리스된 복호화 알고리즘 파라미터들 및 LFSR(262)에서 생성된 키 인덱스에 의해 선택되는 키 테이블(212)로부터의 키들이 이용될 수 있다.
본 발명의 어떤 실시예들은 기계 가독 스토리지(machine-readable-storage)를 포함할 수 있으며, 이는 그 상에 저장되는, 네트워크 내에서 정보를 통신하기 위한 적어도 하나의 코드 섹션(code section)을 갖는 컴퓨터 프로그램을 가지며, 그 적어도 하나의 코드 섹션은 기계(machine)에게 여기에서 설명되는 하나 또는 그 이상의 단계들을 수행하도록 하기 위해 그 기계에 의해 실행가능하다.
따라서, 본 발명은 하드웨어, 소프트웨어, 펌웨어 또는 그들의 결합에서 구현될 수 있다. 본 발명은 적어도 하나의 컴퓨터 시스템에서 중앙 집중 방식으로, 또는 다른 구성 요소들이 몇몇의 상호 연결된 컴퓨터 시스템들에 걸쳐 분포되어 있는 분산된 방식으로 구현될 수 있다. 컴퓨터 시스템의 어떤 종류 또는 여기에서 설명된 방법들을 수행하기 위해 적응된 다른 장치가 적합하다. 하드웨어와 소프트웨어의 전형적인 결합은, 로딩되고 실행될 때, 그것이 여기에서 설명되는 방법들을 수행하도록 컴퓨터 시스템을 제어하는 컴퓨터 프로그램을 갖는 범용 컴퓨터 시스템(general-purpose computer system)일 수 있다.
본 발명의 일 실시예는 단일 칩, 주문형 집적 회로(application specific integrated circuit;ASIC)과 같은 기판 레벨 제품, 또는 분리된 요소들로서 시스템의 다른 부분들과 함께 단일 칩 상에 집적되는 다양한 레벨들로써 구현될 수 있다. 시스템의 집적도의 정도는 주로 속도 및 비용을 고려하여 결정될 것이다. 현대의 프로세서들의 정교한 특성 때문에, 상업적으로 이용가능한 프로세서를 이용하는 것이 가능하고, 그 프로세서는 본 시스템의 ASIC 구현에 대해 외부적으로 구현될 수 있다. 다르게는, 만약 그 프로세서가 ASIC 코어 또는 로직 블록으로서 이용가능하다면, 상업적으로 이용가능한 프로세서는 펌웨어로서 구현되는 다양한 기능들로써 ASIC 장치의 일부로서 구현될 수 있다.
본 발명은 또한 컴퓨터 프로그램 제품(computer program product)에 내장될 수 있으며, 그 컴퓨터 프로그램 제품은 여기에서 설명되는 방법들의 구현을 가능하게 하는 모든 특징들을 포함하고, 컴퓨터 시스템에 로딩될 때 이들 방법들을 수행할 수 있다. 본 문맥에서의 컴퓨터 프로그램은, 어떤 언어, 코드 또는 표기법(notation)으로 나타낸 일단의 명령들의 어떤 표현을 의미한다. 여기서의 일단의 명령들은, 정보 처리 능력을 갖는 시스템들이 특정 기능을 직접적으로 또는 다음 즉 a) 다른 언어, 코드 또는 표기법으로의 변환; b) 다른 물질적인 형태로의 재생산(reproduction) 중의 하나 또는 두 가지 모두를 거친 후에, 수행하도록 의도된 것들을 말한다.
본 발명은 어떤 실시예들을 참조하여 설명되었지만, 본 발명의 범위로부터 벗어나지 않고 다양한 변경들이 이뤄질 수 있고 균등물들이 치환될 수 있음은 당해 기술 분야에서 숙련된 자들에 의해 이해될 것이다. 더구나, 본 발명의 범위를 벗어나지 않고 특별한 상황 또는 물적 요건을 본 발명의 시사들(teachings)에 적응시키도록 많은 개조들(modifications)이 수행될 수 있다. 그러므로, 본 발명은 개시된 특정 실시예에 한정되지 않고, 본 발명은 첨부되는 청구항들의 범위 내에 들어오는 모든 실시예들을 포함하도록 의도된다.
도 1은 본 발명의 일 실시예에 따라 가변적이고 변경하는 키들을 갖는 복호화를 이용할 수 있는 대표적인 재프로그램가능한 보안 시스템의 블록 다이어그램이다.
도 2a는 본 발명의 일 실시예에 따라 코드 암호화 시스템에서 가변적이고 변경하는 키들의 구현을 위한 복수의 내포된 초기화 벡터들을 포함하는 스토리지 스택(storage stack)을 갖는 대표적인 복호화 시스템을 나타내는 블록 다이어그램이다.
도 2b는 본 발명의 일 실시예에 따라 코드 암호화 시스템에서 가변적이고 변경하는 키들의 구현을 위해 하나의 내포된 초기화 벡터를 포함하는 스토리지 스택을 갖는 대표적인 복호화 시스템을 나타내는 블록 다이어그램이다.
도 2c는 본 발명의 일 실시예에 따라 코드 복호화 시스템에서 가변적이고 변경하는 키들의 구현을 위한 선택가능한 초기화 벡터들을 포함하는 스토리지 스택을 갖는 대표적인 복호화 시스템을 나타내는 블록 다이어그램이다.
도 2d는 본 발명의 일 실시예에 따라 코드 복호화 시스템에서 가변적이고 변경하는 키들의 구현을 위한 스토리지 스택을 가지며 키 인덱스들(indices)을 생성하기 위해 이용되는 선형 피드백 시프트 레지스터를 가지는 대표적인 복호화 시스템을 나타내는 블록 다이어그램이다.
도 3a는 본 발명의 일 실시예에 따라 키 테이블 인덱스들이 내포된 데이터 구조들에서 저장되는 코드 복호화 시스템에서 가변적이고 변화하는 키들을 구현하 기 위한 대표적인 단계들을 나타내는 플로우 챠트이다.
도 3b는 본 발명의 일 실시예에 따라 선형 피드백 시프트 레지스터가 키 인덱스들을 생성하기 위해 이용되는 코드 복호화 시스템에서 가변적이고 변화하는 키들을 구현하기 위한 대표적인 단계들을 나타내는 플로우 챠트이다.

Claims (10)

  1. 보안 통신 시스템(secure communication system)에서의 정보 처리 방법에 있어서:
    복수의 코드 세그먼트들(code segments) 각각의 연속적인 것들 사이에 내포된(embedded) 복호화(decryption) 알고리즘 파라미터들에 근거하여, 상기 복수의 코드 세그먼트들로 분할(segment)된 코드(code)를 복호화(decrypt)하는 단계를 포함하되, 상기 복수의 코드 세그먼트들 각각은 상이한 복호화 알고리즘 파라미터들에 의해 보호(protect)되는 것을 특징으로 하는 정보 처리 방법.
  2. 청구항 1에 있어서,
    상기 복수의 코드 세그먼트들의 길이(length)는 가변(vary)되는 것을 특징으로 하는 정보 처리 방법.
  3. 청구항 1에 있어서,
    각각의 세그먼트에 대한 상기 복호화 알고리즘 파라미터들은:
    상응하는 복호화 키 정보(decryption key information), 상응하는 초기화 벡터 정보(initialization vector information) 및 상응하는 코드 세그먼트 길이 정보(code segment length information)를 포함하는 것을 특징으로 하는 정보 처리 방법.
  4. 청구항 3에 있어서,
    상기 복호화 키 정보는 인덱스(index)를 분리된 키 테이블(separate key table) 내에 포함하는 것을 특징으로 하는 정보 처리 방법.
  5. 청구항 4에 있어서,
    상기 키 테이블은 조합 로직(combinatorial logic)을 사용하여 저장(store)되는 것을 특징으로 하는 정보 처리 방법.
  6. 보안 통신 시스템에서의 정보 처리 시스템에 있어서:
    복수의 코드 세그먼트들(code segments) 각각의 연속적인 것들 사이에 내포된(embedded) 복호화(decryption) 알고리즘 파라미터들에 근거하여, 상기 복수의 코드 세그먼트들로 분할(segment)된 코드(code)를 복호화(decrypt)하는 적어도 하나의 프로세서(processor)를 포함하되, 상기 복수의 코드 세그먼트들 각각은 상이한 복호화 알고리즘 파라미터들에 의해 보호(protect)되는 것을 특징으로 하는 정보 처리 시스템.
  7. 청구항 6에 있어서,
    상기 복수의 코드 세그먼트들의 길이(length)는 가변(vary)되는 것을 특징으로 하는 정보 처리 시스템.
  8. 청구항 6에 있어서,
    각각의 세그먼트에 대한 상기 복호화 알고리즘 파라미터들은:
    상응하는 복호화 키 정보(decryption key information), 상응하는 초기화 벡터 정보(initialization vector information) 및 상응하는 코드 세그먼트 길이 정보(code segment length information)를 포함하는 것을 특징으로 하는 정보 처리 시스템.
  9. 청구항 8에 있어서,
    상기 복호화 키 정보는 인덱스(index)를 키 테이블(key table) 내에 포함하는 것을 특징으로 하는 정보 처리 시스템.
  10. 기계 가독 스토리지(machine-readable storage)로서, 그 상에 저장되는, 보안 통신 시스템(secure communication system)에서 정보를 처리하기 위한 적어도 하나의 코드 섹션(code section)을 갖는 컴퓨터 프로그램을 구비하며, 상기 적어도 하나의 코드 섹션은 기계(machine)에게 단계들(steps)을 수행하도록 하기 위해 상기 기계에 의해 실행가능하되, 상기 단계들은:
    복수의 코드 세그먼트들(code segments) 각각의 연속적인 것들 사이에 내포된(embedded) 복호화(decryption) 알고리즘 파라미터들에 근거하여, 상기 복수의 코드 세그먼트들로 분할(segment)된 코드(code)를 복호화(decrypt)하는 단계를 포 함하되, 상기 복수의 코드 세그먼트들 각각은 상이한 복호화 알고리즘 파라미터들에 의해 보호(protect)되는 것을 특징으로 하는 기계 가독 스토리지.
KR1020070100412A 2006-10-06 2007-10-05 코드 암호화 시스템에서 가변적이고 변하는 키들을 위한 방법 및 시스템 KR100973207B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US82855206P 2006-10-06 2006-10-06
US60/828,552 2006-10-06
US11/758,421 2007-06-05
US11/758,421 US20080084995A1 (en) 2006-10-06 2007-06-05 Method and system for variable and changing keys in a code encryption system

Publications (2)

Publication Number Publication Date
KR20080031830A true KR20080031830A (ko) 2008-04-11
KR100973207B1 KR100973207B1 (ko) 2010-07-30

Family

ID=38721759

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070100412A KR100973207B1 (ko) 2006-10-06 2007-10-05 코드 암호화 시스템에서 가변적이고 변하는 키들을 위한 방법 및 시스템

Country Status (5)

Country Link
US (1) US20080084995A1 (ko)
EP (1) EP1909428A1 (ko)
KR (1) KR100973207B1 (ko)
CN (1) CN102195776A (ko)
TW (1) TW200835275A (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162636B2 (en) 1998-06-22 2007-01-09 Semtek Innovative Solutions, Inc. Method and apparatus for securing and authenticating encoded data and documents containing such data
WO2003027816A1 (en) * 2001-09-28 2003-04-03 High Density Devices As Method and device for encryption/decryption of data on mass storage device
US7506812B2 (en) 2004-09-07 2009-03-24 Semtek Innovative Solutions Corporation Transparently securing data for transmission on financial networks
US9361617B2 (en) 2008-06-17 2016-06-07 Verifone, Inc. Variable-length cipher system and method
US8769275B2 (en) 2006-10-17 2014-07-01 Verifone, Inc. Batch settlement transactions system and method
US9123042B2 (en) * 2006-10-17 2015-09-01 Verifone, Inc. Pin block replacement
US20080288403A1 (en) * 2007-05-18 2008-11-20 Clay Von Mueller Pin encryption device security
US8355982B2 (en) 2007-08-16 2013-01-15 Verifone, Inc. Metrics systems and methods for token transactions
US8284939B2 (en) * 2007-10-01 2012-10-09 Neology, Inc. Systems and methods for preventing transmitted cryptographic parameters from compromising privacy
US8144940B2 (en) 2008-08-07 2012-03-27 Clay Von Mueller System and method for authentication of data
US9077526B2 (en) * 2008-09-30 2015-07-07 Apple Inc. Method and system for ensuring sequential playback of digital media
US8251283B1 (en) 2009-05-08 2012-08-28 Oberon Labs, LLC Token authentication using spatial characteristics
US20120079281A1 (en) * 2010-06-28 2012-03-29 Lionstone Capital Corporation Systems and methods for diversification of encryption algorithms and obfuscation symbols, symbol spaces and/or schemas
US20150113286A1 (en) * 2012-03-21 2015-04-23 Irdeto Canada Corporation Method and system for chain transformation
BR112014026659B1 (pt) 2012-04-26 2022-09-27 Huawei Technologies Co., Ltd Aparelho e método para decodificar um fluxo de mídia e aparelho para enviar um fluxo de mídia codificado
US9237006B2 (en) 2013-09-30 2016-01-12 Protegrity Corporation Table-connected tokenization
WO2016078006A1 (zh) * 2014-11-19 2016-05-26 华为技术有限公司 一种定向统计流量的方法、设备及系统
US10409613B2 (en) * 2015-12-23 2019-09-10 Intel Corporation Processing devices to perform a key value lookup instruction
CN105956840B (zh) * 2016-05-30 2020-02-07 广东电网有限责任公司 一种缴纳电费的方法、装置及银电联网系统
CN107124261B (zh) * 2017-06-06 2020-05-22 北京梆梆安全科技有限公司 基于同态加密算法保护程序代码安全的方法和装置
CN108494549B (zh) * 2018-02-27 2020-10-02 北京赛博兴安科技有限公司 基于fpga的密钥索引协商装置、系统及方法
CN110557680B (zh) * 2019-07-30 2020-11-27 视联动力信息技术股份有限公司 一种音视频数据帧传输方法和系统
CN110830831B (zh) * 2019-11-08 2022-03-01 江苏号百信息服务有限公司 一种有效保护iptv机顶盒预付费账户安全的方法
CN112752122B (zh) * 2020-12-30 2022-11-11 厦门市美亚柏科信息股份有限公司 智能摄像头的视频加密传输方法及计算机可读存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4747139A (en) * 1984-08-27 1988-05-24 Taaffe James L Software security method and systems
US5438295A (en) * 1993-06-11 1995-08-01 Altera Corporation Look-up table using multi-level decode
GB2288519A (en) * 1994-04-05 1995-10-18 Ibm Data encryption
US7065211B1 (en) * 1995-07-21 2006-06-20 Sony Corporation Signal reproducing/recording/transmitting method and apparatus and signal recording medium
US6970564B1 (en) * 1998-07-13 2005-11-29 Sony Corporation Data multiplexing device, program distribution system, program transmission system, pay broadcast system, program transmission method, conditional access system, and data reception device
US6021391A (en) * 1998-03-03 2000-02-01 Winbond Electronics Corp. Method and system for dynamic data encryption
EP1032159A3 (en) 1999-02-23 2002-07-10 R. Brent Johnson Method for information encryption and transfer
US7050583B2 (en) * 2001-03-29 2006-05-23 Etreppid Technologies, Llc Method and apparatus for streaming data using rotating cryptographic keys
JP2004126323A (ja) * 2002-10-04 2004-04-22 Sony Corp ブロック暗号方法、ブロック暗号回路、暗号装置、ブロック復号方法、ブロック復号回路および復号装置
EP1595358A1 (en) * 2002-10-10 2005-11-16 Asier Technology Corporation Method and system for data encryption and decryption
US20040141616A1 (en) * 2003-01-17 2004-07-22 Ibm Corporation Security object with encrypted, spread spectrum data communications
DE602004014109D1 (de) * 2003-03-03 2008-07-10 Matsushita Electric Ind Co Ltd Verfahren und vorrichtungen zur verringerung von diskreten leistungsspektraldichtekomponenten von in breitband-kommunikationssystemen übertragenen signalen
US20050084097A1 (en) * 2003-10-16 2005-04-21 Tien-Shin Ho Apparatus and method for calculatingtkip sbox value
FR2861234A1 (fr) * 2003-10-17 2005-04-22 St Microelectronics Sa Chiffrement de donnees dans un appareil electronique a plusieurs processeurs symetriques
KR20060009082A (ko) * 2004-07-20 2006-01-31 엘지전자 주식회사 세탁장치의 수평 조절용 받침대
US20060031873A1 (en) * 2004-08-09 2006-02-09 Comcast Cable Holdings, Llc System and method for reduced hierarchy key management

Also Published As

Publication number Publication date
US20080084995A1 (en) 2008-04-10
TW200835275A (en) 2008-08-16
CN102195776A (zh) 2011-09-21
KR100973207B1 (ko) 2010-07-30
EP1909428A1 (en) 2008-04-09

Similar Documents

Publication Publication Date Title
KR100973207B1 (ko) 코드 암호화 시스템에서 가변적이고 변하는 키들을 위한 방법 및 시스템
EP2491510B1 (en) Distribution system and method for distributing digital information
US6735313B1 (en) Cryptographic method and apparatus for restricting access to transmitted programming content using hash functions and program identifiers
CN101790865B (zh) 更新密码密钥数据
US8958558B2 (en) Conditional entitlement processing for obtaining a control word
CN107580765B (zh) 用于保护流媒体和其它数据流的混淆
CN101996154B (zh) 支持可重组安全设计的通用处理器
EP2381672A1 (en) Secure key access with one-time programmable memory and applications thereof
CA2623430A1 (en) System and method for software tamper detection
CA2602226A1 (en) System and method for a variable key ladder
CN103608820A (zh) 使得能够在硬件设备上执行软件应用
WO2008083363A1 (en) Protecting independent vendor encryption keys with a common primary encryption key
US20090249080A1 (en) Methods, apparatus and system for authenticating a programmable hardware device and for authenticating commands received in the programmable hardware device from a secure processor
US9455834B2 (en) Securely providing secret data from a sender to a receiver
US8130949B2 (en) Partially reversible key obfuscation
CN101267295A (zh) 用于安全通信系统中处理信息的方法和系统
US20230275745A1 (en) Device, method and program for secure communication between white boxes
MXPA98008403A (en) Security processor with external memory that uses blocking and block reordering

Legal Events

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

Payment date: 20130722

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee