KR20110123290A - 파일 복호화 인터페이스 - Google Patents

파일 복호화 인터페이스 Download PDF

Info

Publication number
KR20110123290A
KR20110123290A KR1020117025373A KR20117025373A KR20110123290A KR 20110123290 A KR20110123290 A KR 20110123290A KR 1020117025373 A KR1020117025373 A KR 1020117025373A KR 20117025373 A KR20117025373 A KR 20117025373A KR 20110123290 A KR20110123290 A KR 20110123290A
Authority
KR
South Korea
Prior art keywords
file
encrypted
data
key material
encrypted file
Prior art date
Application number
KR1020117025373A
Other languages
English (en)
Other versions
KR101257191B1 (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 KR20110123290A publication Critical patent/KR20110123290A/ko
Application granted granted Critical
Publication of KR101257191B1 publication Critical patent/KR101257191B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • 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/60Digital content management, e.g. content distribution
    • H04L2209/603Digital right managament [DRM]

Landscapes

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

Abstract

무선 통신 환경에서 디지털 저작권 관리를 용이하게 하는 시스템 및 방법이 설명된다. 일반적으로, 콘텐츠 (예를 들어, 데이터 파일, 비디오 이미지 등) 는 암호화된 상태에서 다운로드되고 유지될 수 있어 디지털 저작권의 보호를 확보한다. 그 결과, 이러한 콘텐츠를 이용하는 프로그래밍 애플리케이션은 사용시 (예를 들어, 플레이백 또는 엑세스) 콘텐츠를 복호화한다. 파일 인터페이스는, 애플리케이션이 표준화된 파일 I/O 인터페이스를 이용하여 암호화된 콘텐츠를 엑세스하는 것을 허용하는 것으로 제공될 수 있다. 콘텐츠의 복호화는 암호화된 콘텐츠를 이용하는 개별 애플리케이션에 대해 투과성일 수 있다. 그러므로, 변형 암호화 알고리즘 또는 절차 및 키 크기에서의 변화는 프로그래밍 애플리케이션을 작용할 필요가 없다.

Description

파일 복호화 인터페이스{FILE DECRYPTION INTERFACE}
본 출원은, 발명의 명칭이 "BLOCK DECRYPTION IN DMSS VIRTUAL FILE I/O INTERFACE" 으로 2006 년 4 월 4 일자로 출원된 미국 가출원 제 60/789,264 호에 대해 우선권을 주장한다. 이들 모두는 본 명세서에서 참조로서 포함된다.
일반적으로, 이하 설명은 콘텐츠 보호, 및 특히 데이터의 복호화에 관한 것이다.
무선 네트워킹 시스템은 일반적으로 행해지는 수단이 되어있고 이에 의해 전세계에 분포된 대부분의 사람들이 통신하게 되었다. 무선 통신 디바이스는 소비자의 요구를 충족시키고 휴대성 및 편리성을 개선시키기 위해 더 작아지고 더욱 강력해지고 있다. 소비자는, 신뢰성 있는 서비스를 만족시키고 커버리지 영역을 확장시키며 기능성을 증가시킨 셀룰러 전화기, PDA 등과 같은 무선 통신 디바이스에 의존하게 되었다.
이러한 일 기능으로는 비디오 콘텐츠와 같은 데이터 집약적인 콘텐츠의 분배가 있다. 소비자는, 존재하는 기술 (예를 들어, 텔레비전, 인터넷) 을 통한 소비자의 경험에 기초하여 유용성, 관리, 엑세스 제어 및 디바이스 성능 면에서 높은 레벨의 서비스에 익숙해지고 있다. 이들 기대를 만족시키는 데이터 집약적인 콘텐츠의 제공은 많은 시도를 포함한다.
이러한 시도는 분배시 및 분배 이후에 콘텐츠를 보호하는 것이다. 통상적으로, 콘텐츠 공급자는 콘텐츠 분배 시스템이 DRM (Digital Rights Management) 을 제공하는 성능을 갖는 것을 필요로 하는데, DRM 은 이러한 측정치가 인스톨되는 전자 디바이스에 분배된 재료의 제어를 공급하는 임의의 몇몇 기술 배열을 지칭한다. 콘텐츠 분배 시스템을 위한 언더라잉 컴포넌트는 미디어의 암호화/복호화이다. DRM 소프트웨어는 언더라잉 암호화/복호화 알고리즘, 해싱 (hashing) 및 클라이언트 및 서버 모두에 의해 이용된 인증 알고리즘의 구현을 제공할 수 있다. 또한, DRM 소프트웨어는 라이센스 관리 및 안전한 콘텐츠의 저장을 위해 제공될 수 있다.
DRM 은 2 개 유형의 암호 체계 (cryptosystems) 또는 암호화 (cryptography) 기술, 대칭 암호화 및 비대칭 암호화를 이용할 수 있다. 대칭키 암호화에서, 단일 키는 데이터의 암호화 및 복호화 전부에 이용된다. 대칭 암호화 알고리즘의 예들로는 DES (Data Encryption Standard) 및 AES (Advanced Encryption Standard) 시스템을 포함한다. 또한 공동-키 암호화로 알려진 비대칭 암호화에서, 각 사용자는 공동키 및 개인키를 가질 수도 있다. 암호화는 공동키로 수행되는 반면에 복호화는 개인키로 수행된다. 비대칭 암호화의 예들로는 RSA (Rivest, Shamir and Adleman) 알고리즘 및 ECC (Elliptic Curve Cryptography) 을 포함한다. 대칭키 암호화 알고리즘을 이용하는 복호화가 비대칭키 암호화 알고리즘을 이용하는 복호화보다 상당히 빠르더라도, 대칭키 암호화는 통신하는 엔티티들 사이에서 공유키의 통신을 필요로 한다. 비대칭 암호화에서, 엔티티는 그 공동키를 다른 엔티티에 분배할 수 있어 임의의 이러한 엔티티가 공동키를 이용하여 데이터를 암호화하는 것을 허용한다. 그러나, 암호화된 데이터는 공동키로 분배된 엔티티에 의해 유지되는 개인키로만 복호화될 수 있다. 비대칭 암호화가 계산상 비싸지만, 안전한 통신을 원하는 엔티티들 사이에서 공유키의 안전한 분배를 필요로 하지 않는다.
이어서, 이러한 실시형태의 기본 이해를 제공하기 위해 하나 이상의 실시형태의 간략화된 개요를 나타낸다. 이 개요는, 심사숙고된 모든 실시형태들의 광범위한 개관은 아니며 실시형태들 모두의 키 또는 크리티컬 엘리먼트를 인증하지 않을 뿐만 아니라 임의의 실시형태 또는 모든 실시형태의 사상을 서술하는 것은 아닌 것으로 의도된다. 후술되는 보다 상세한 설명의 도입부 (prelude) 로서 간략화된 형태로 하나 이상의 실시형태의 일부 개념을 나타내는데 그 목적이 있다.
하나 이상의 실시형태 및 실시형태의 대응하는 개시글에 따르면, 데이터 콘텐츠의 복호화를 용이하게 하는 것과 관련하여 각종 양태들이 설명된다. 일반적으로, 콘텐츠 (예를 들어, 데이터 파일, 비디오 이미지 등) 는 디지털 저작권을 보호하기 위해 암호화된 상태에서 전송되거나 유지될 수 있다. 그 결과, 이러한 콘텐츠를 이용하는 프로그래밍 애플리케이션은 사용시 (예를 들어, 플레이백 또는 엑세스) 에 콘텐츠를 복호화한다. 파일 인터페이스는, 애플리케이션이 표준화된 파일 인터페이스를 이용하여 암호화된 콘텐츠를 엑세스하는 것을 허용하는 것으로 제공될 수 있다. 그 결과, 콘텐츠의 복호화는 암호화된 콘텐츠를 이용하는 개별 애플리케이션에 대해 투과성일 수 있다. 암호화 또는 복호화 알고리즘이나 절차에 대한 변형은 프로그래밍 애플리케이션에 영향을 준다라고는 할 수 없다.
일 양태에 있어서, 디지털 저작권 관리를 용이하게 하는 방법은, 애플리케이션으로부터 암호화된 파일을 개방하라는 요청을 수신하는 단계, 파일에 대한 파일 핸들을 발생시키는 단계 및 파일 I/O 동작에서의 사용을 위해 파일 핸들과 파일에 관련된 키 재료를 연관시키는 단계를 포함한다.
다른 양태에 있어서, 디지털 저작권 관리를 용이하게 하는 장치는, 암호화된 파일을 저장하는 메모리 및 암호화된 파일과 연관된 키 재료에 적어도 부분적으로 기초하여 애플리케이션으로부터의 파일 I/O 요청에 응답하여 암호화된 파일에 엑세스하는 명령들을 실행하는 프로세서를 포함한다.
다른 양태에 따르면, 디지털 저작권 관리를 용이하게 하는 장치는, 적어도 하나의 프로그래밍 애플리케이션으로부터 파일 I/O 요청을 수신하는 수단, 파일 I/O 요청에 응답하여 암호화된 파일에 엑세스하는 수단, 암호화된 파일로부터 데이터를 복호화하도록 파일과 연관된 키 재료를 이용하는 수단, 및 복호화된 데이터를 애플리케이션에 공급하는 수단을 포함한다.
다른 양태에 따르면, 컴퓨터 판독가능 매체는, 암호화된 파일에 대한 프로그래밍된 애플리케이션으로부터 파일 판독 요청을 수신하는 명령들, 판독 요청의 함수로서 암호화된 파일로부터 데이터를 획득하는 명령들, 암호화된 파일과 연관된 키에 적어도 부분적으로 기초하여 획득된 데이터를 복호화하는 명령들, 및 프로그래밍 애플리케이션으로 복호화된 데이터를 공급하는 명령들을 갖는다.
또 다른 양태는, 프로그래밍 애플리케이션으로부터 암호화된 파일에 대한 파일 개방 지시어 (directive) 를 수신하고, 암호화된 파일에 대한 파일 레퍼런스를 발생시키고, 암호화된 파일과 관련된 키를 파일 레퍼런스와 연관시키고, 파일 I/O 에서의 이용을 위해 파일 레퍼런스를 프로그래밍 애플리케이션에 공급하는 컴퓨터 실행가능 명령들을 실행하는 프로세서에 관련된다.
전술하고 관련된 목적을 달성하기 위해서, 하나 이상의 실시형태는 이하에서 완전히 설명되고 특히 청구항에서 지적된 특징을 포함한다. 이하 설명 및 첨부된 도면은 하나 이상의 실시형태의 어떤 예시적인 양태를 상세히 설명한다. 그러나, 이들 양태는 각종 방식 중 일부를 나타내며, 각종 실시형태의 원리가 채택될 수도 있고 설명된 실시형태는 이러한 양태 및 그 등가물 전부를 포함하도록 의도된다.
도 1 은 본 명세서에 나타난 하나 이상의 양태들에 따른 암호화된 콘텐츠의 복호화를 용이하게 하는 시스템의 블록도이다.
도 2 는 본 명세서에 나타난 하나 이상의 양태들에 따른 암호화된 콘텐츠의 복호화를 용이하게 하는 시스템의 보다 상세한 블록도이다.
도 3 은 본 명세서에 나타난 하나 이상의 양태들에 따른 암호화된 콘텐츠의 이용을 용이하게 하는 시스템의 블록도이다.
도 4 는 본 명세서에 나타난 하나 이상의 양태들에 따른 암호화된 콘텐츠의 복호화를 용이하게 하는 사용자 디바이스의 블록도이다.
도 5 는 본 명세서에 나타난 하나 이상의 양태들에 따른 암호화된 콘텐츠의 복호화를 용이하게 하는 무선 시스템의 블록도이다.
도 6 은 본 명세서에 나타난 하나 이상의 양태들에 따른 콘텐츠의 암호화를 용이하게 하는 기지국의 블록도이다.
도 7 은 본 명세서에 나타난 하나 이상의 양태들에 따른 암호화된 콘텐츠를 이용하는 방법론 (methodology) 을 도시한다.
도 8 은 본 명세서에 나타난 하나 이상의 양태들에 따라 암호화된 파일로부터 판독 동작을 수행하는 방법론을 도시한다.
도 9 는 본 명세서에 나타난 하나 이상의 양태들에 따라 파일 암호화를 수행하는 방법론을 도시한다.
도 10 은 본 명세서에 나타난 하나 이상의 양태들에 따른 복호화를 이용하는 사용자 디바이스를 도시한다.
도 11 은 본 명세서에 나타난 하나 이상의 양태들에 따른 암호화를 이용하는 시스템을 도시한다.
도 12 는 본 명세서에 설명된 각종 시스템 및 방법과 관련하여 채택될 수 있는 무선 통신 환경의 도면이다.
도 13 은 본 명세서에 나타난 각종 양태들에 따른 무선 통신 환경에서 파일 복호화를 용이하게 하는 시스템의 도면이다.
도면을 참조하여 각종 실시형태를 설명하는데, 동일한 참조 부호는 동일한 엘리먼트들 전체를 지칭하는데 이용된다. 이하 설명에 있어서, 설명을 목적으로 하나 이상의 실시형태의 이해를 통해 제공하기 위해 다수의 특정 상세가 설명된다. 그러나 이러한 실시형태(들)는 이들 특정 상세 없이 실시될 수도 있는 것으로 명백하다. 다른 경우에 있어서, 하나 이상의 실시형태를 설명하는 것을 용이하게 하기 위해 블록 다이아그램 형태로 잘 알려진 구조 및 디바이스가 도시된다.
본 출원에 이용된 바와 같이, "컴포넌트", "시스템" 등의 용어는 하드웨어, 하드웨어 및 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어 중 어느 것인 컴퓨터 관련된 엔티티를 지칭하는 것으로 의도된다. 예를 들어, 컴포넌트는, 프로세서를 구동하는 프로세스, 프로세서, 대상, 실행가능한 것, 실행의 스레드 (thread), 프로그램, 및/또는 컴퓨터를 포함할 수도 있으나 이에 한정되는 것은 아니다. 예시의 방식으로, 통신 디바이스를 구동하는 애플리케이션 및 디바이스 전부가 컴포넌트일 수 있다. 하나 이상의 컴포넌트가 프로세스 및/또는 실행의 스레드 내에 상주할 수도 있으며, 컴포넌트가 하나의 컴퓨터에 국한되고/되거나 2 개 이상의 컴퓨터들 사이에 분배될 수도 있다. 또한, 이들 컴포넌트는 그것에 저장된 각종 데이터 구조를 갖는 각종 컴퓨터 판독가능 매체로부터 실행할 수 있다. 이 컴포넌트는, 하나 이상의 데이터 패킷 (예를 들어, 로컬 시스템에서, 분배된 시스템에서, 및/또는 신호의 방식으로 다른 시스템과 인터넷과 같은 네트워크 전체에서 다른 컴포넌트와 상호작용하는 하나의 컴포넌트로부터의 데이터) 을 갖는 신호에 따르는 것과 같이 로컬 및/또는 원격 프로세스의 방식으로 통신할 수 있다.
또한, 본 명세서에서는 각종 실시형태가 사용자 디바이스와 연관되어 설명된다. 또한, 사용자 디바이스는 시스템, 가입자 유닛, 가입자국, 이동국, 이동 디바이스, 원격국, 엑세스 포인트, 기지국, 원격 단말기, 엑세스 단말기, 사용자 단말기, 단말기, 사용자 에이전트, 또는 사용자 장비 (UE) 로 지칭될 수 있다. 사용자 디바이스는, 셀룰러 전화기, 무선 전화기, SIP (Session Initiation Protocol) 전화기, WLL (wireless local loop) 국, PDA, 무선 접속 능력을 갖는 핸드헬드 디바이스, 또는 무선 모뎀에 접속된 다른 프로세싱 디바이스일 수 있다.
또한, 본 명세서에 설명된 각종 양태 또는 특징은 표준화된 프로그래밍 및/또는 엔지니어링 기술을 이용하는 방법, 장치, 또는 제조 품목 (article of manufacture) 으로서 구현될 수도 있다. 본 명세서에 이용된 바와 같이, "제조 품목" 이라는 용어는 임의의 컴퓨터 판독가능 디바이스, 캐리어, 또는 매체로부터 엑세스 가능한 컴퓨터 프로그램을 포함하는 것으로 의도된다. 예를 들어, 컴퓨터 판독가능 매체는, 자기 저장 매체 (예를 들어, 하드 디스크, 플로피 디스크, 자기 스트림...), 광 디스크 (예를 들어, CD, DVD...), 스마트 카드, 및 플래시 메모리 디바이스 (예를 들어, 카드, 스틱, 키 드라이브...) 를 포함할 수 있으나 이에 한정되는 것은 아니다.
무선 통신 시스템은 대량의 콘텐츠의 분배를 위해 제공된다. 예를 들어, 순방향 링크 전용 (FLO) 기술이 무선 통신 서비스 제공자들의 산업 그룹에 의해 최고의 품질 성능을 달성하기 위해 이 시스템 설계에서 최근의 진보 (advance) 를 이용한다. FLO 기술은 이동 멀티미디어 환경을 고려하며 이동 사용자 디바이스의 사용에 적합하다. FLO 기술은 실시간 콘텐츠 스트리밍 및 다른 데이터 서비스 전부를 대해 고품질의 수신율을 달성하도록 설계된다. FLO 기술은 소비전력을 손상시키지 않고 강건한 이동 성능 및 고 용량을 제공할 수 있다. 또한, 이 기술은 배치될 필요가 있는 기지국 송신기의 개수를 감소시킴으로써 멀티미디어 콘텐츠를 전달하는 네트워크 비용을 감소시킨다. 또한, 멀티미디어 멀티캐스팅에 기초하는 FLO 기술은 무선 동작기의 셀룰러 네트워크 데이터 및 음성 서비스와 상보적이어서 동일한 이동 디바이스로 콘텐츠를 전달한다. FLO 무선 시스템은 실시간 오디오 및 비디오 신호 뿐만 아니라 넌-실시간 서비스를 브로드캐스팅하도록 설계되고 있다.
이러한 FLO 무선 시스템과 같은 송신 시스템의 능력은 비디오와 같은 데이터 집약적인 콘텐츠를 무선 사용자 디바이스로 전달하는 것을 허용한다. 이러한 콘텐츠 분배의 용이성은 콘텐츠 분배의 제어와 관계없이 중요하다. 고도로 발달된 DRM 소프트웨어는 이용 가능한 암호화 알고리즘 및 제어키 분배를 이용할 수 있어서 다수의 애플리케이션의 하나 이상의 암호화된 파일에 대한 엑세스 및 저작권을 관리한다. 예를 들어, 사용자는 관람할 권리 (viewing right) 를 가질 수도 있으나, 콘텐츠의 추가 복사본을 생성할 수 없을 수도 있다. 추가적으로, 콘텐츠에 대한 엑세스는 제때에 또는 허가된 엑세스의 개수로 제한될 수 있다. 콘텐츠는 사용자 디바이스로 송신하는 동안 뿐만 아니라 콘텐츠가 수신된 이후에도 보호되어야 한다. 일반적으로, 콘텐츠는 디지털 저작권의 보호를 확보하도록 암호화된 상태로 유지될 수도 있다. DRM 기술은 복호화 키의 관리를 이용하여 암호화된 콘텐츠의 엑세스 및 권리를 관리한다.
암호화된 콘텐츠는, 콘텐츠가 각종 애플리케이션에 이용되기 이전에 복호화될 수 있다. 그러나, 존재하는 애플리케이션은 콘텐츠를 성공적으로 복호화하는데 용량 또는 정보가 부족할 수도 있다. 추가적으로, 암호화 표준은 쉽게 변화되어 기술에서의 진보를 반영한다. 상이한 알고리즘이 대중적이 될 수도 있다. 추가적으로, 키 길이가 증가하여 암호의 보안을 향상시킬 수도 있다. 또한, 키 크기로 지칭된 키 길이는 특정 암호 (cipher) 또는 암호화의 (cryptographic) 알고리즘에 이용될 수 있는 가능한 키의 측정 개수이다. 일반적으로, 키 길이는 비트에서 지정된다. 각각의 개별 애플리케이션이 콘텐츠 암호화를 독립적으로 핸들링한다면, 각각의 애플리케이션은 개별 업데이트를 필요로 하여 암호화를 지원할 수 있다. 개별 업데이트를 필요로 하는 것은, 애플리케이션들 모두가 암호에서의 변화로 적절히 변형되는 것을 확보하는데 필요한 시간을 증가시킨다. 또한, 분리 업데이트는 업데이트 절차시 놓치게 되는 애플리케이션의 에러의 가능성을 증가시킨다.
도면을 참조하면, 도 1 은 표준 파일 입력/출력 (I/O) 동작에 기초하여 암호화된 콘텐츠의 복호화를 용이하게 하는 시스템 (100) 의 블록도를 도시한다. 시스템 (100) 은, 복호화키 (104) 를 이용하는 복호화 파일 인터페이스 컴포넌트 (102) 를 포함하여 암호화된 파일 (미도시) 로부터 획득된 데이터를 복호화한다. 복호화 파일 인터페이스 컴포넌트 (102) 는, 프로그래밍 애플리케이션 컴포넌트 (106) 에 표준 파일 I/O 동작을 제공하는 파일 I/O 인터페이스층으로서 활동한다. 예를 들어, 복호화 파일 인터페이스 컴포넌트 (102) 는 판독 요청에 응답하여 암호화된 파일로부터 복호화된 데이터를 제공할 수 있다. 애플리케이션 컴포넌트 (106) 는 표준 파일 I/O 동작을 이용하여 복호화 파일 인터페이스 컴포넌트 (102) 를 호출함으로써 데이터를 획득한다.
암호화된 파일을 이용하는 것을 용이하게 하도록 파일이 개방되고 파일 핸들이 발생되는 경우, 복호화 파일 인터페이스 컴포넌트 (102) 는 복호화키 (104) 를 획득할 수 있다. 본 명세서에 이용된 바와 같이, 파일 핸들 또는 파일 디스크립터는 파일에 대한 레퍼런스이다. 파일 핸들 또는 디스크립터는 애플리케이션 컴포넌트 (106) 에 의해 이용되어 특정 파일을 나타낸다. 도시된 바와 같이, 복호화 파일 인터페이스 컴포넌트 (102) 는 파일 개방 요청과 같은 파일 I/O 요청을 수신할 수 있다. 복호화 파일 인터페이스 컴포넌트 (102) 는 복호화키를 획득하고 파일 핸들을 발생시켜, 애플리케이션 컴포넌트 (106) 로 리턴할 수 있다. 또한, 복호화 파일 인터페이스 컴포넌트 (102) 는 파일 핸들을 포함하는 판독 요청을 수신할 수 있고, 판독 요청에 기초하여 암호화된 데이터를 획득할 수 있고, 파일 핸들과 연관된 복호화키 (104) 를 이용하여 데이터를 복호화할 수 있고, 이 복호화된 데이터를 애플리케이션 컴포넌트 (106) 로 리턴할 수 있다.
실시형태에서, 복호화 파일 인터페이스 컴포넌트 (102) 는 키 관리를 위해 제공될 수 있다. 예를 들어, 복호화 파일 인터페이스 컴포넌트 (102) 는 복호화키를 획득하고, 키 업데이트를 획득하고, 키 만료일 등을 결정할 수 있다. 복호화 파일 인터페이스 (102) 는 서버 또는 기지국 (미도시) 과 통신하여 암호화된 파일의 복호화에 필요한 키를 획득할 수 있다. 복호화 파일 인터페이스 컴포넌트 (102) 는 다수의 키 및 키/파일 관계를 관리하는데 필요한 로직을 포함할 수 있다.
도 2 를 참조하여 파일 복호화를 위한 시스템 (200) 을 보다 상세히 설명한다. 복호화 파일 인터페이스 컴포넌트 (102) 는 하나 이상의 애플리케이션 컴포넌트 (106) 로부터의 파일 I/O 요청을 수신하는 애플리케이션 인터페이스 컴포넌트 (202) 를 포함할 수 있다. 파일 I/O 요청은, 파일 개방, 파일 폐쇄, 파일 판독, 및 파일 탐색 (seek) 을 포함하는 표준 파일 엑세스 동작을 포함할 수 있으나, 이에 한정되는 것은 아니다. 애플리케이션 인터페이스 컴포넌트 (202) 는 수신된 요청에 기존하여 응답할 수 있다. 예를 들어, 파일 개방 요청이 수신되면, 파일 핸들 컴포넌트 (204) 는 파일 핸들 또는 파일에 대한 레퍼런스를 발생시켜 개방된다. 애플리케이션 인터페이스 컴포넌트 (202) 는, 파일 I/O 동작을 더 이용하기 위해 파일 핸들에 애플리케이션 (106) 을 제공할 수 있다. 또한, 파일 개방 요청은 암호화된 파일에 대한 키 재료를 포함할 수 있다. 키 관리 컴포넌트 (206) 는 수신된 키 재료를 발생된 파일 핸들과 연관시킬 수 있다.
파일 판독 동작에 있어서, 애플리케이션 인터페이스 컴포넌트 (202) 는 애플리케이션으로부터 파일 판독 요청을 수신할 수 있다. 판독 요청은, 파일로부터 판독하도록 파일 및 블록의 수 또는 데이터량을 식별하는 파일 핸들을 포함할 수 있다. 파일 엑세스 컴포넌트 (208) 는 판독 요청에 기초하여 파일로부터 적합한 데이터량을 검색할 수 있다. 키 관리 컴포넌트 (206) 는 파일 핸들에 기초하여 파일과 연관된 키 재료를 식별할 수 있다. 애플리케이션 인터페이스 컴포넌트 (202) 에 의해 데이터가 애플리케이션 컴포넌트 (106) 에 제공되기 이전에, 복호화 컴포넌트 (210) 는 키 재료를 이용하여 검색된 데이터를 복호화할 수 있다.
도 3 을 참조하면, 하나 이상의 애플리케이션의 파일 복호화를 위한 시스템 (300) 을 도시한다. 시스템 (300) 은, 파일을 복호화하는데 이용될 수 있는 하나 이상의 키 또는 키 재료를 획득하고/하거나 관리하는 복호화 파일 관리 컴포넌트 (302) 를 포함한다. 특히, 복호화 파일 관리 컴포넌트 (302) 는 메타데이터로서 콘텐츠와 함께 제공되는 하나 이상의 키를 획득할 수 있다. 대안적으로, 키는 서버 또는 기지국 (미도시) 과 같은 콘텐츠의 소스로부터 독립적으로 획득될 수 있다. 복호화 파일 관리 컴포넌트 (302) 는 하나 이상의 키 뿐만 아니라 각종 키의 관계에 관한 정보를 디바이스 저장 매체 (304) 내에 유지된 암호화된 콘텐츠에 유지할 수 있다. 복호화 파일 관리 컴포넌트 (302) 는 키 업데이트, 키의 만료일, 키의 요청 등을 핸들링하는 로직을 포함할 수 있다.
애플리케이션 (106) 은 표준 I/O 동작을 이용하여 복호화 파일 인터페이스 컴포넌트 (102) 를 호출하고 디바이스 저장 매체 (304) 에 의해 유지된 콘텐츠를 획득할 수 있다. 복호화 파일 인터페이스 컴포넌트 (102) 는 디바이스 저장 매체 (304) 를 엑세스하여 애플리케이션 (106) 에 의해 요청된 데이터를 획득한다. 검색된 데이터가 암호화되면, 복호화 파일 인터페이스 컴포넌트 (102) 는 복호화 파일 관리 컴포넌트 (302) 를 통해 획득된 복호화키 (104) 를 이용하여 디바이스 저장 매체로부터 획득된 데이터를 복호화할 수 있다. 복호화된 데이터는 프로그래밍 애플리케이션 (106) 에 제공될 수 있다. 복호화 프로세스는 애플리케이션 (106) 에 대해 투과성일 수 있다. 그 결과, 애플리케이션 (106) 은 데이터의 복호화에 대한 변화에 영향을 받지 않는다. 그러나, 복호화 파일 인터페이스 컴포넌트 (102) 를 이용하지 않는 판독 동작은 그 데이터를 복호화하지 않기 때문에, 암호화된 콘텐츠를 직접 엑세스하도록 시도하는 애플리케이션 (106) 은 에러를 경험할 수도 있다.
도 4 를 참조하여 파일 복호화를 용이하게 하는 사용자 디바이스 (400) 의 블록도를 설명한다. 사용자 디바이스 (400) 는 하나 이상의 애플리케이션 (106A-106C) 을 포함할 수 있다. 예를 들어, 애플리케이션은 미디어 플레이어나 인터넷 브라우저 등과 같은 임의의 소프트웨어 애플리케이션을 포함할 수 있다. 이러한 애플리케이션은 디바이스 저장 매체 (304) 내에 유지된 데이터 파일들 (404A-404C) 을 이용할 수도 있다. 많은 애플리케이션은, 복호화 파일 인터페이스 컴포넌트에 의해 제공되는 파일 I/O 동작을 이용하여 디바이스 저장 매체에 의해 유지된 데이터를 엑세스할 수 있다.
콘텐츠가 사용자 디바이스 (400) 에 의해 수신되는 경우, 콘텐츠는 애플리케이션들 (106A-106C) 에 의한 이용을 위해 디바이스 저장 매체 (304) 내에 저장될 수 있다. 많은 파일들 (404A-404C) 이 디바이스 저장 매체 (304) 에 의해 유지되고 애플리케이션들 (106A-106C) 에 의해 이용될 수 있다. 사용자 디바이스 (400) 는 파일 엑세스 및 보안을 핸들링할 수 있는 파일 관리 컴포넌트 (402) 를 포함할 수 있다. 파일 관리 컴포넌트 (402) 는 복호화 파일 관리 컴포넌트 (302) 및 복호화 파일 인터페이스 컴포넌트 (102) 를 포함할 수 있다. 파일 관리 컴포넌트 (402) 는 암호화된 파일과 연관된 하나 이상의 키를 획득할 수 있다. 각각의 파일은 개별키로 암호화될 수 있다. 대안적으로, 파일은 키를 공유할 수도 있다. 복호화 파일 관리 컴포넌트 (302) 는 키 세트와 파일 세트 사이의 관계를 관리할 수 있다.
도 5 를 참조하여, 암호화된 콘텐츠의 효율적인 전달을 위한 시스템 (500) 의 블록도를 설명한다. 예를 들어, 시스템 (500) 은 입력으로서 서비스 콘텐츠를 취하고 콘텐츠를 다수의 사용자 디바이스로 출력하는 FLO 시스템일 수 있다. FLO 시스템은 대칭 및 비대칭 암호화 전부를 이용하여 콘텐츠를 보호할 수 있다. 일반적으로, 비대칭 암호화는 대칭 키를 안전하게 전달하는데 이용될 수 있다. 대칭 암호화는 암호화/복호화의 벌크를 수행하는데 이용될 수 있다. 비대칭 암호화는 메시지 인증을 위해 이용될 수 있다.
시스템 (500) 은 하나 이상의 사용자 디바이스 (400) 또는 셀룰러 전화기, 스마트 전화기, 랩톱, 핸드헬드 통신 디바이스, 핸드헬드 계산 디바이스, 위성 라디오, GPS, PDA (Personal Digital Assistant), 및/또는 무선 통신 네트워크를 통한 통신을 위한 다른 적절한 디바이스와 같은 이동 디바이스를 포함할 수 있다. 사용자 디바이스 (400) 는 하나 이상의 기지국 (502) 과 무선으로 통신할 수 있다. 다수의 사용자 디바이스 및 기지국이 통신 네트워크에 포함될 수 있지만, 간략화를 목적으로 하나의 기지국으로 통신 데이터 신호를 수신하고/하거나 송신하는 하나의 사용자 디바이스가 도시되는 것으로 인식된다.
기지국 (502) 은 하나 이상의 암호화된 콘텐츠를 사용자 디바이스 (400) 로 송신한다. 콘텐츠는 송신되기 이전에 기지국 (502) 에 의해 암호화될 수도 있다. 기지국 (502) 은, 하나 이상의 키를 콘텐츠와 연관시키고 사용자 디바이스로 적합한 키의 제공을 제어할 수 있는 암호화 파일 관리 컴포넌트 (504) 를 포함할 수 있다. 또한, 기지국 (502) 은, 사용자 디바이스 (400) 로 송신되기 이전에 콘텐츠를 암호화하도록 연관된 키를 이용할 수 있는 암호화 컴포넌트 (506) 를 포함할 수 있다. 특히, 이에 한정되지는 않지만 비디오 (예를 들어, MPEG4), 오디오, 및 데이터 파일을 포함하는 콘텐츠는 대칭키를 이용하여 암호화될 수 있다. 대칭키는 비대칭키 암호화를 이용하여 암호화되고 대칭 콘텐츠를 따라 메타데이터로서 송신될 수 있다. 사용자 디바이스 (400) 에서, 비대칭키는 대칭키를 복호화하는데 이용될 수 있다. 대칭키는 복호화 파일 관리 컴포넌트 (302) 에 의해 파일과 연관되고 복호화 파일 인터페이스 컴포넌트 (102) 에 의해 이용되어 하나 이상의 애플리케이션 (106) 의 콘텐츠를 복호화할 수 있다.
도 6 은 기지국 (502), 데이터의 암호화를 용이하게 하는 서버 또는 다른 시스템을 도시한다. 기지국 (502) 은 데이터 파일과의 연관키 뿐만 아니라 각종 사용자 디바이스에 대한 통신키를 핸들링하는 암호화 파일 관리 컴포넌트 (504) 를 포함할 수 있다. 암호화 컴포넌트 (506) 는 파일의 실제 암호화를 핸들링할 수 있다. 암호화 컴포넌트 (506) 는 대칭 및/또는 비대칭 키를 발생시킬 수 있는 키 발생 컴포넌트 (602) 를 포함할 수 있다. 키는 고정된 길이일 수도 있거나 키 발생 컴포넌트 (602) 는 다수의 키 길이를 제공할 수도 있다.
데이터 파일은 각종 방법 (strategy) 을 이용하여 암호화될 수 있다. 예를 들어, 파일은 파일 포맷에 기초하여 암호화될 수 있다. 파일 파서 컴포넌트 (604) 는 암호화 이전에 소스 데이터 파일을 파싱할 수 있다. 일부 실시형태에서, 파일 파서 컴포넌트 (604) 는 소스 데이터 파일을 파일 포맷에 관계없이 암호를 위한 블록으로 간단히 분배할 수 있다. 블록은 데이터의 표준 크기 부분 (예를 들어, 512 바이트) 일 수 있다. 각 블록은, 연관키를 이용하여 파일 암호화 컴포넌트 (606) 에 의해 개별적으로 암호화될 수 있다. 임의의 블록 암호화 알고리즘 (예를 들어, AES, DES, Twofish, Blowfish, Anubis, CAST-128, CAST-256, CRYPTON 등) 이 이용될 수 있다. 키는 암호화 파일 관리 컴포넌트 (504) 에 의해 파일과 연관되고/되거나 키 발생 컴포넌트 (602) 에 의해 발생될 수도 있다. 연속 블록들 세트로서 파일을 개별적으로 암호화 하는 것은 파일 포맷으로부터의 독립을 제공한다. 통상적으로, 데이터 파일 포맷은 오버 타임을 변경하여 새로운 특징 또는 더 효율적인 데이터의 저장을 가능하게 한다. 그러나, 블록 암호는 파일 포맷과 독립적이다. 따라서, 블록-기반 암호화 및 복호화는 새로운, 업데이트되거나 추가의 파일 포맷을 업데이트시키는데 필요하지 않을 수도 있다.
도 7 내지 도 9 를 참조하여, 콘텐츠의 암호화 및 복호화를 용이하게 하는 방법론을 설명한다. 설명의 간략화를 목적으로, 일련의 활동으로서 도시되고 설명된 방법론들은 활동의 순서로 제한되지 않고 일부 활동은 하나 이상의 실시형태에 따라 본 명세서에 도시되고 설명된 것으로부터 상이한 순서 및/또는 다른 활동과 동시에 발생할 수도 있는 것으로 이해되고 인식된다. 예를 들어, 당업자는 방법론이 상태 다이아그램에서와 같은 일련의 상호 관계를 갖는 상태 또는 이벤트로서 대안적으로 나타날 수 있는 것으로 이해하고 인식한다. 또한, 도시된 활동들 전부는 하나 이상의 실시형태에 따라 방법론을 구현하도록 이용될 수도 있다.
도 7 을 참조하여, 암호화된 파일에 대해 파일 I/O 동작을 수행하는 방법 700 을 설명한다. 702 에서, 암호화된 파일은 개방될 수 있다. 파일 개방 동작을 호출하는 것은 파일 입력/출력 동작 (예를 들어, FileSeek, FileRead 및 FileTell) 을 수행하는데 이용된 파일 핸들을 발생시킬 수 있다. 704 에서, 파일과 연관된 키가 획득될 수 있다. 키는 파일 개방 동작의 파라미터로서 제공될 수 있다. 일단 제공되면, 키는 추가의 파일 동작 동안 이용될 수 있다. 파일 개방 동작을 위한 파라미터는 키 뿐만 아니라 키 길이를 포함할 수도 있다. 키 길이는 파라미터로서 제공될 수 있어 키 길이에서의 변형을 가능하게 한다. 예를 들어, 키 길이가 증가되어 보안성을 향상시킬 수 있다.
일단 파일이 개방되면, 706 에서는 파일 I/O 동작이 수행될 수 있다. 파일 I/O 동작은, 파일의 복호화를 관리하도록 동작을 이용하는 프로그래밍 애플리케이션을 필요로 하지 않고 표준 포맷을 이용할 수 있다. 일단 파일이 개방되었다면, 추가 파일 동작은 키를 요구하지 않고 파일 핸들을 사용할 수 있다. 예를 들어, FileTell, FileClose, FileFlush, CheckEndOfFile, GetFileError 및 IsFileOpen 동작과 같은 종래의 파일 동작은 파일 핸들만을 이용하고, 발동 (invocation) 을 위한 임의의 다른 파라미터를 요구하지 않을 수도 있다. 종래의 동작은 더 많은 정보를 필요로 할 수도 있으나, 키 재료를 필요로 하지는 않는다. FileSeek 함수는 핸들, 오프셋 및 오프셋이 마킹되는 것으로부터 파일 내에서 원래의 지점과 같은 표준 파라미터를 필요로 할 수도 있다. 유사하게, FileRead 함수는 파일 핸들, 판독 데이터를 판독하기 위한 버퍼로의 포인터, 판독될 양 및 파일로부터 실제로 판독된 양과 같은 표준 파라미터를 포함할 수도 있다.
판독 동작 시, 암호화된 파일로부터 검색된 데이터는 판독 동작을 호출하는 애플리케이션으로 제공되기 이전에 복호화될 수 있다. 따라서, 파일 복호화는 암호화된 파일로부터 데이터를 판독하는 프로그래밍 애플리케이션에 대해 투과성일 수 있다. 일단 애플리케이션이 판독 또는 임의의 다른 파일 I/O 동작을 완료하면, 708 에서는 파일이 폐쇄될 수 있다.
도 8 은 암호화된 파일로부터 판독 동작을 수행하는 방법 800 을 도시한다. 802 에서, 파일 판독 동작이 초기화될 수 있다. 동작 파라미터는, 데이터가 검색되는 것으로부터 파일과 연관된 파일 핸들, 검색된 데이터로 버퍼로의 포인터, 검색될 블록 또는 다른 데이터 엘리먼트의 개수를 포함할 수 있다. 다른 파라미터가 포함되더라도, 파일 개방 시 복호화키 및/또는 키 길이가 제공되고 판독 동작에 대한 파라미터로서 제공되지 않는다. 판독 동작의 초기화에 따라 블록의 적합한 개수는 804 에서 파일로부터 판독될 수 있다. 적합한 개수의 블록은 판독 동작 시 요청된 데이터량에 의존될 수 있다.
파일로부터 검색된 데이터는 806 에서 파일과 연관된 복호화키를 이용하여 복호화될 수 있다. 특히, 파일이 블록 암호에 기초하여 암호화되는 경우, 각각의 블록은 개별적으로 복호화될 수 있다. 블록 암호화 동안 파일은 연속적인 데이터 블록으로 구획될 수 있고, 각각의 블록은 개별적으로 암호화될 수 있다. 그 결과, 암호화된 데이터 블록의 복호화시, 각각의 블록은 개별적으로 복호화될 수 있다. 블록이 복호화된 이후에, 808 에서는 복호화될 추가 블록의 존재 여부에 관해 결정될 수 있다. 추가 불록이 존재하는 경우, 프로세스는 다음 블록이 복호화되는 806 으로 리턴할 수 있다. 검색된 블록들 모두가 복호화된 경우, 810 에서는 판독 동작을 초기화시키는 프로그래밍 애플리케이션에 복호화된 데이터가 제공될 수 있다.
도 9 을 참조하여, 블록 암호 파일을 위한 방법 900 을 설명한다. 902 에서, 파일은 분배를 위해 획득된다. 파일은 콘텐츠 제공자들에 의해 공급될 수 있고 임의의 포맷 (예를 들어, MPEG4) 일 수 있다. 904 에서는 파일과 연관된 키가 획득될 수 있다. 이전에-존재하는 키는 그 파일과 연관될 수 있거나 새로운 키가 발생되어 그 파일과 연관될 수 있다.
906 에서는, 암호화를 위해 파일로부터 블록이 선택될 수 있다. 블록 암호에 있어서, 파일의 제 1 블록이 초기에 선택된다. 추가 선택은 순차적인 연속 블록을 검색한다. 908 에서는, 연관키를 이용하여 선택된 블록이 암호화될 수 있다. 임의의 대칭 또는 비대칭 키 암호화 알고리즘이 이용될 수 있다. 그러나, 미디어 콘텐츠 데이터 파일과 같은 대량의 데이터에 있어서, 대칭키 암호화는 상당한 성능 이점을 제공한다. 910 에서는, 암호화될 추가 데이터 블록이 존재하는지 여부에 관해 결정이 이루어진다. 추가 블록이 있는 경우, 프로세스는 906 으로 리턴하고, 여기서 다음 블록이 암호화를 위해 선택된다. 추가 블록이 없는 경우, 912 에서는 암호화된 파일이 하나 이상의 사용자 디바이스로 제공되거나 송신될 수 있다. 대안적으로, 암호화된 파일은 이후의 송신을 위해 저장될 수 있다. 또한, 파일과 연관된 키는 사용자 디바이스로 제공되어 복호화를 허용할 수 있다. 특히, 비대칭 키 암호화를 이용하여 복호화키가 암호화될 수 있고, 송신시에 파일로 제공될 수 있다.
본 명세서에 설명된 하나 이상의 실시형태에 따르면, 송신 포맷, 주파수 등에 관한 추론 (inference) 이 이루어질 수 있는 것으로 인식된다. 본 명세서에 이용된 바와 같이, 일반적으로 "추론하다 (infer)" 또는 "추론 (inference)" 이라는 용어는 시스템, 환경, 및/또는 이벤트 및/또는 데이터를 통해 캡쳐링되는 관찰 세트로부터의 사용자에 관한 이유 또는 이의 상태를 추론하는 프로세스를 지칭한다. 추론은 특정 콘텍스트 또는 활동을 식별하는데 채택될 수 있거나, 예를 들어, 상태에 대한 확률 분포를 발생시킬 수 있다. 추론은 가능성 있는, 즉, 데이터 및 이벤트의 고려에 기초하여 대상의 상태에 대한 확률 분포의 계산일 수 있다. 또한, 추론은 이벤트 및/또는 데이터 세트로부터 상위 레벨의 이벤트를 구성하는데 채택된 기술을 지칭할 수 있다. 이러한 추론은, 관찰된 이벤트 및/또는 저장된 이벤트 데이터 세트로부터 새로운 이벤트 또는 활동의 구성, 이벤트가 일시적으로 근접하게 상관되어 있는지 여부, 및 이벤트 및 데이터가 하나 이상의 이벤트 및 데이터 소스로부터 오는지 여부를 초래한다.
도 10 은 본 명세서에 설명된 하나 이상의 양태에 따른 무선 통신 환경에서 신호 요청을 발생시키는 시스템 (1000) 의 도면이다. 시스템 (1000) 은 액세스 포인트 및/또는 사용자 디바이스에 상주할 수 있는 것으로 당업자에게 인식될 것이다. 시스템 (1000) 은, 예를 들어 하나 이상의 수신 안테나로부터 신호를 수신하고, 수신된 신호에 대해 통상적인 액션 (예를 들어, 필터링, 증폭, 다운컨버팅 등) 을 수행하고, 컨디셔닝된 신호를 디지털화하여 샘플을 획득하는 수신기 (1002) 를 포함한다. 복조기 (1004) 는 수신된 파일럿 심볼을 복조하고 채널 추정을 위해 프로세서 (1006) 에 제공한다.
프로세서 (1006) 는 수신기 컴포넌트 (1002) 에 의해 수신된 정보를 해석하고/하거나 송신기 (1014) 에 의해 송신을 위한 정보를 발생시키는데 전용되는 프로세서일 수 있다. 프로세서 (1006) 는 사용자 디바이스 (1000) 의 하나 이상의 컴포넌트를 제어하는 프로세서일 수 있고/있거나 수신기 (1002) 에 의해 수신된 정보를 해석하고 송신기 (1014) 에 의해 송신을 위한 정보를 발생시키고, 사용자 디바이스 (1000) 의 하나 이상의 컴포넌트를 제어하는 프로세서일 수 있다. 프로세서 (1006) 는 도 7 내지 도 9 에 대하여 설명된 방법론을 포함하는 본 명세서에 설명된 임의의 방법론을 이용하여 통신을 조정할 수 있다. 또한, 사용자 디바이스 (1000) 는 비디오, 오디오 등을 포함하는 콘텐츠를 복호화할 수 있는 파일 복호화 인터페이스 (1008) 를 포함할 수 있다. 파일 복호화 인터페이스 (1008) 는 프로세서 (1006) 에 통합될 수도 있다.
사용자 디바이스 (1000) 는, 프로세서 (1006) 에 동작적으로 커플링되고, 신호 요청, 신호 세기를 결정하는 방법, 여기에 관련된 정보를 포함하는 룩업 테이블에 관련된 정보, 및 본 명세서에 설명된 엑세스 포인트 선택에 관련된 임의의 다른 적합한 정보를 저장할 수 있는 메모리 (1010) 를 추가로 포함할 수 있다. 메모리 (1010) 는 룩업 테이블 등을 발생시키는 것과 연관된 프로토콜을 추가로 저장할 수 있어서, 사용자 디바이스 (1000) 는 저장된 프로토콜 및/또는 알고리즘을 채택할 수 있어 엑세스 포인트를 선택한다. 본 명세서에 설명된 데이터 저장 컴포넌트 (예를 들어, 메모리) 는 휘발성 메모리 이거나 비휘발성 메모리일 수 있고, 또는 휘발성 메모리 및 비휘발성 메모리 전부를 포함할 수 있다. 비제한적인 예시의 방식으로서, 비휘발성 메모리는, ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically PROM), EEPROM (Electrically Erasable PROM), 또는 플래시 메모리를 포함할 수 있다. 휘발성 메모리는, 외부 캐시 메모리로서 작동하는 RAM (Random Access Memory) 를 포함할 수 있다. 비제한적인 예시의 방식으로, RAM 은 SRAM (Synchronous RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM), DDR SDRAM (Double Data Rate SDRAM), ESDRAM (Enhanced SDRAM), SLDRAM (Synclink DRAM), 및 DRRAM (Direct Rambus RAM) 과 같은 다수의 형태들로 이용가능하다. 주 시스템 및 방법의 메모리 (1010) 는 이들을 포함하는 것에 한정되지 않고 임의의 다른 적합한 유형의 메모리를 포함하는 것으로 의도된다. 프로세서 (1006) 는 심볼 변조기 (1012) 및 변조된 신호를 송신하는 송신기 (1014) 에 접속된다.
도 11 은 통신 환경에서 디지털 저작권 관리를 용이하게 하기위해 제공되는 시스템 (1100) 의 도면이다. 시스템 (1100) 은, 하나 이상의 수신 안테나 (1106) 를 통해 하나 이상의 사용자 디바이스 (1104) 로부터 신호(들)을 수신하는 수신기 (1110) 와 하나 이상의 송신 안테나 (1108) 를 통해 하나 이상의 사용자 디바이스 (1104) 로 송신하는 (송신기를) 갖는 기지국 (1102) 를 포함한다. 하나 이사의 실시형태에서, 수신 안테나 (1106) 및 송신 안테나 (1108) 는 단일 세트의 안테나를 사용하여 구현될 수 있다. 수신기 (1110) 는 수신 안테나 (1106) 으로부터 정보를 수신하고, 수신된 정보를 복조하는 복조기 (1112) 와 동작적으로 연관될 수 있다. 예를 들어, 수신기 (1110) 는, 레이크 수신기 (예를 들어, 복수의 기저대 상관기,...를 이용하여 다중 경로 신호 컴포넌트를 개별적으로 처리하는 기술), MMSE-기반 수신기, 또는 여기에 할당된 사용자 디바이스를 분리하는 일부 다른 적합한 수신기일 수 있는 것으로 당업자에게 인식된다. 각종 양태에 따르면, 다수의 수신기는 (예를 들어, 수신 안테나 당 한 개) 가 채택될 수 있고, 이러한 수신기는 사용자 데이터의 개선된 추정치를 제공하도록 서로 통신할 수 있다. 복조된 심볼은 프로세서 (1114) 에 의해 해석된다. 프로세서 (1114) 는 수신기 컴포넌트 (1110) 에 의해 수신된 정보를 해석하고/하거나 송신기 (1120) 에 의해 송신을 위한 정보를 발생시키는데 전용된 프로세서일 수 있다. 프로세서 (1114) 는 기지국 (1102) 의 하나 이상의 컴포넌트를 제어하는 프로세서, 및/또는 수신기 (1110) 에 의해 수신된 정보를 해석하고 송신기 (1120) 에 의해 송신을 위한 정보를 발생시키고 기지국 (1102) 의 하나 이상의 컴포넌트를 제어하는 프로세서일 수 있다. 각 안테나에 대한 수신기 출력은 수신기 (1110) 및/또는 프로세서 (1114) 에 의해 공동으로 처리될 수 있다. 변조기 (1118) 는 송신기 (1120) 에 의해 송신을 위한 신호를 송신 안테나 (1108) 를 통해 사용자 디바이스 (1104) 로 멀티플렉싱할 수 있다. 변조기 (1118) 는 송신기 (1120) 에 의해 송신을 위한 신호를 송신 안테나 (1108) 를 통해 사용자 디바이스 (1104) 로 멀티플렉싱할 수 있다.
또한, 기지국 (1102) 는 암호화 컴포넌트 (1122) 를 포함할 수 있다. 암호화 컴포넌트는 사용자 디바이스 (1104) 로 송신하기 이전에 콘텐츠를 암호화할 수 있다. 콘텐츠는, 임의의 이용 가능한 암호화 알고리즘을 이용하는 연속 블록 암호화를 이용하여 암호화될 수 있다.
기지국 (1102) 은, 프로세서 (1114) 에 동작적으로 커플링되는 메모리 (1116) 를 추가로 포함할 수 있고, 암호화 알고리즘, 키 재료 및/또는 본 명세서에 기술된 각종 활동 및 기능을 수행하는 것과 관련된 임의의 다른 적합한 정보에 관한 정보를 저장할 수 있다. 본 명세서에 설명된 데이터 저장 컴포넌트 (예를 들어, 메모리) 는 휘발성 메모리 이거나 비휘발성 메모리일 수 있고, 또는 휘발성 메모리 및 비휘발성 메모리 전부를 포함할 수 있다. 비제한적인 예시의 방식으로서, 비휘발성 메모리는, ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically PROM), EEPROM (Electrically Erasable PROM), 또는 플래시 메모리를 포함할 수 있다. 휘발성 메모리는, 외부 캐시 메모리로서 작동하는 RAM (Random Access Memory) 를 포함할 수 있다. 비제한적인 예시의 방식으로, RAM 은 SRAM (Synchronous RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM), DDR SDRAM (Double Data Rate SDRAM), ESDRAM (Enhanced SDRAM), SLDRAM (Synclink DRAM), 및 DRRAM (Direct Rambus RAM) 과 같은 다수의 형태들로 이용가능하다. 주 시스템 및 방법의 메모리 (1116) 는 이들을 포함하는 것에 한정되지 않고 임의의 다른 적합한 유형의 메모리를 포함하는 것으로 의도된다.
도 12 는 예시적인 무선 통신 시스템 (1200) 을 나타낸다. 무선 통신 시스템 (1200) 은 간략화를 위해 하나의 기지국과 하나의 사용자 디바이스를 도시한다. 그러나, 이 시스템은 하나 이상의 기지국 및/또는 하나 이상의 사용자 디바이스를 포함할 수 있고, 부가적인 기지국들 및/또는 단말기들이 후술되는 실시예의 기지국 및/또는 단말기와 실질적으로 유사하거나 상이할 수 있는 것으로 인식되어야 한다. 또한, 기지국 및/또는 사용자 디바이스가 본 명세서에 설명된 시스템 및/또는 방법을 채택할 수 있는 것으로 인식된다.
도 12 를 참조하면, 다운링크 상에서, 액세스 포인트 (1205) 에서, 송신 (TX) 데이터 프로세서 (1210) 는 트래픽 데이터를 수신하고, 포맷하고, 코딩하고, 인터리빙하고 변조하여 (또는 심볼 매핑하여), 변조 심볼들 ("데이터 심볼들") 을 제공한다. 심볼 변조기 (1215) 는, 이 데이터 심볼들과 파일럿 심볼들을 수신 및 처리하여, 심볼들의 스트림을 제공한다. 심볼 변조기 (1215) 는, 데이터 및 파일럿 심볼들을 다중화하여, 이를 송신기 유닛 (TMTR; 1220) 으로 제공한다. 각각의 송신 심볼은 데이터 심볼, 파일럿 심볼, 또는 제로의 신호 값일 수도 있다. 각각의 심볼 주기에서, 파일럿 심볼들이 연속적으로 송신될 수도 있다. 파일럿 심볼들은 주파수 분할 다중화 (FDM), 직교 주파수 분할 다중화 (OFDM), 시분할 다중화 (TDM), 또는 코드 분할 다중화 (CDM) 일 수 있다.
TMTR (1220) 은 심볼들의 스트림을 수신하여 이를 하나 이상의 아날로그 신호들로 변환하고, 또한, 이 아날로그 신호들을 추가 조절 (예를 들어, 증폭, 필터링, 및 주파수 업 컨버팅) 하여, 무선 채널을 통한 송신에 적합한 다운링크 신호를 발생시킨다. 이어서, 다운링크 신호는 안테나 (1225) 를 통해 사용자 디바이스로 송신된다. 사용자 디바이스 (1230) 에서, 안테나 (1235) 는 다운링크 신호를 수신하여, 수신된 신호를 수신기 유닛 (RCVR; 1240) 으로 제공한다. 수신기 유닛 (1240) 은, 수신된 신호를 조절 (예를 들어, 필터링, 증폭, 및 주파수 다운컨버팅) 하고, 조절된 신호를 디지털화하여, 샘플들을 획득한다. 심볼 복조기 (1245) 는, 수신된 파일럿 심볼들을 복조하여, 채널 추정을 위해 이를 프로세서 (1250) 로 제공한다. 또한, 심볼 복조기 (1245) 는 프로세서 (1250) 로부터 다운링크에 대한 주파수 응답 추청치를 수신하고, 수신된 데이터 심볼들에 대해 데이터 복조를 수행하여, (송신된 데이터 심볼들의 추정치들인) 데이터 심볼 추정치를 획득하고, 데이터 심볼 추정치들을 RX 데이터 프로세서 (1255) 로 제공하는데, 이 RX 데이터 프로세서 (1255) 는 데이터 심볼 추정치들을 복조 (즉, 심볼 디-매핑) 하고, 디-인터리빙하고, 디코딩하여, 송신된 트래픽 데이터를 호출한다. 심볼 복조기 (1245) 및 RX 데이터 프로세서 (1255) 에 의한 처리는 각각 액세스 포인트 (1205) 에서의 심볼 변조기 (1215) 및 TX 데이터 프로세서 (1210) 에 의한 처리에 대해 상보적이다.
업링크 상에서, TX 데이터 프로세서 (1260) 는 트래픽 데이터를 처리하여, 데이터 심볼들을 제공한다. 심볼 변조기 (1265) 는 데이터 심볼들을 수신하여 파일럿 심볼들과 함께 다중화하고, 변조를 수행하여, 심볼들의 스트림을 제공한다. 그 다음에, 송신기 유닛 (1270) 은 심볼들의 스트림을 수신 및 처리하여, 안테나 (1235) 에 의해 액세스 포인트 (1205) 로 송신 업링크 신호를 발생시키킨다.
액세스 포인트 (1205) 에서는, 안테나 (1225) 에 의해 사용자 디바이스 (1230) 로부터 업링크 신호가 수신되고 수신기 유닛 (1275) 에 의해 처리되어, 샘플을 획득한다. 그 다음에, 심볼 복조기 (1280) 는 이 샘플들을 처리하여, 업링크에 대해 수신된 파일럿 심볼들 및 데이터 심볼 추정치를 제공한다. RX 데이터 프로세서 (1285) 는 데이터 심볼 추정치를 처리하여, 사용자 디바이스 (1230) 에 의해 송신된 트래픽 데이터를 호출한다. 프로세서 (1290) 는 업링크를 통해 송신하는 각각의 활성 사용자 사용자 디바이스에 대한 채널 추정을 수행한다. 다수의 사용자 디바이스는, 그 각각의 할당된 파일럿 서브대역 세트 상에서 업링크를 통해 동시에 파일럿을 송신할 수도 있는데, 파일럿 서브대역 세트는 인터레이스될 수도 있다.
프로세서들 (1290 및 1250) 은 각각 액세스 포인트 (1205) 및 사용자 디바이스 (1230) 에서의 동작을 지시 (예를 들어, 제어, 조정, 관리 등) 한다. 프로세서들 (1290 및 1250) 각각은, 프로그램 코드들 및 데이터를 저장하는 메모리 유닛들 (미도시) 과 연결될 수 있다. 프로세서들 (1290 및 1250) 은 본 명세서에 설명된 임의의 방법을 이용할 수 있다. 특히, 프로세서 (1290) 는 사용자 디바이스 (1230) 로 송신하기 이전에 콘텐츠를 암호화할 수 있고, 프로세서 (1250) 는 본 명세서에 설명된 방법을 이용하여 콘텐츠를 복호화할 수 있다. 또한, 프로세서들 (1290 및 1250) 각각은 연산을 수행하여, 각각 업링크 및 다운링크에 대한 주파수 및 임펄스 응답 추정치들을 도출할 수 있다.
소프트웨어 구현에 있어서, 본 명세서에 설명된 기술들은 본 명세서에 설명된 기능들을 수행하는 모듈들 (예를 들어, 절차, 기능 등) 로 구현될 수도 있다. 소프트웨어 코드들은 메모리 유닛에 저장되어, 프로세서들에 의해 실행될 수도 있다. 메모리 유닛은 프로세서 내부에 또는 프로세서 외부에서 구현될 수도 있고, 이 경우에서 메모리 유닛은 본 발명이 속하는 기술분야에서 공지된 바와 같은 각종 수단들을 통해 프로세서에 통신가능하게 연결될 수 있다.
도 13 을 참조하여, 디지털 저작권 관리를 용이하게 하는 시스템 (1300) 이 설명된다. 시스템 (1300) 은 하나 이상의 프로그래밍 애플리케이션 (미도시) 로부터 파일 I/O 요청 또는 지시어를 수신하는 모듈 1302 를 포함할 수 있다. 수신된 파일 I/O 요청은, 파일 개방, 파일 판독, 파일 폐쇄, 파일 검색 등과 같은 표준 파일 I/O 동작을 포함할 수 있다. 시스템 (1300) 은, 수신된 I/O 요청에 응답하여 암호화된 파일에 엑세스하는 모듈 1304 를 포함할 수 있다. 특히, 엑세스 모듈 1304 는, 파일 판독 요청에 응답하여 암호화된 파일로부터 데이터를 획득할 수 있다. 엑세스 모듈 1304 활동은 수신된 요청에 따른다.
데이터가 암호화된 파일로부터 검색되는 경우, 데이터 복호화를 위한 모듈 1306 은 파일과 연관된 키 재료를 이용하여 검색된 데이터를 복호화할 수 있다. 특히, 연속 블록 암호화를 이용하여 파일이 암호화된 경우, 데이터 블록은 복호화 모듈 1306 에 의해 개별적으로 복호화될 수 있다. 데이터가 복호화된 경우, 복호화된 데이터를 공급하는 모듈 1308 은 프로그래밍 애플리케이션으로 데이터를 제공할 수 있다.
전술한 설명은 예시적인 실시형태들을 포함한다. 물론, 실시형태들을 설명하기 위하여 컴포넌트들 또는 방법론의 생각할 수 있는 모든 조합을 설명하는 것이 가능하지는 않지만, 본 발명이 속하는 기순분야에서 통상의 지식을 가진 자라면, 각종 양태의 다수의 추가적인 조합 및 치환이 가능하다는 것을 인식할 수도 있다. 따라서, 이들 실시예들은 첨부된 특허청구범위의 사상 및 범위 내에서 이루어지는 모든 변경들, 수정들 및 변형들을 포함하는 것으로 의도된다. 또한, "포함 (include)" 이라는 용어가 상세한 설명이나 특허청구범위 중 어느 하나에서 사용된다는 점에서, 특허청구범위에서 전이 (transitional) 단어로서 이용되는 경우에 "구비 (comprising)" 가 해석되는 바와 같이, 이러한 용어 "구비" 라는 용어와 유사한 방식으로 포괄적인 것으로 의도된다.

Claims (29)

  1. 디지털 저작권 관리를 용이하게 하는 방법으로서,
    암호화된 키 재료를 포함하는 메타데이터를 포함하는 암호화된 파일을 수신하는 단계;
    상기 암호화된 파일에 관련된 상기 암호화된 키 재료를 획득하기 위하여 상기 메타데이터를 복호화하는 단계;
    애플리케이션으로부터 상기 암호화된 파일을 개방하라는 요청을 수신하는 단계;
    상기 암호화된 파일에 대한 파일 핸들을 발생시키는 단계; 및
    파일 I/O 동작들에서의 사용을 위해 상기 암호화된 파일에 관련된 상기 암호화된 키 재료를 상기 파일 핸들과 연관시키는 단계를 포함하는, 디지털 저작권 관리를 용이하게 하는 방법.
  2. 제 1 항에 있어서,
    상기 파일 핸들 및 상기 연관된 암호화된 키 재료를 이용하여 파일 I/O 동작들을 수행하는 단계를 더 포함하는, 디지털 저작권 관리를 용이하게 하는 방법.
  3. 제 1 항에 있어서,
    상기 파일 핸들을 이용하여 상기 애플리케이션으로부터 파일 판독 요청을 수신하는 단계;
    상기 파일 판독 요청에 응답하여 상기 암호화된 파일로부터 데이터를 획득하는 단계;
    상기 파일 핸들과 연관된 상기 암호화된 키 재료를 이용하여 상기 획득된 데이터를 복호화하는 단계; 및
    상기 파일 판독 요청에 응답하여 상기 애플리케이션으로 상기 복호화된 데이터를 제공하는 단계를 더 포함하는, 디지털 저작권 관리를 용이하게 하는 방법.
  4. 제 3 항에 있어서,
    상기 암호화된 파일은 연속 블록 암호화를 이용하여 암호화되는, 디지털 저작권 관리를 용이하게 하는 방법.
  5. 제 4 항에 있어서,
    상기 데이터는 블록 단위로 획득되고 복호화되는, 디지털 저작권 관리를 용이하게 하는 방법.
  6. 제 3 항에 있어서,
    상기 메타데이터를 획득하도록 상기 암호화된 파일의 구조에 기초하여 상기 암호화된 파일을 파싱하는 (parse) 단계; 및
    상기 암호화된 파일과 연관된 상기 메타데이터를 해석하는 단계를 더 포함하는, 디지털 저작권 관리를 용이하게 하는 방법.
  7. 제 1 항에 있어서,
    상기 암호화된 파일을 개방하라는 요청은 상기 암호화된 키 재료를 포함하는, 디지털 저작권 관리를 용이하게 하는 방법.
  8. 제 1 항에 있어서,
    상기 암호화된 키 재료를 키 관리자로부터 획득하는 단계를 더 포함하고,
    상기 암호화된 키 재료에는 상기 암호화된 파일이 제공되는, 디지털 저작권 관리를 용이하게 하는 방법.
  9. 제 1 항에 있어서,
    상기 암호화된 파일은 AES (Advanced Encryption Standard) 를 이용하여 암호화되는, 디지털 저작권 관리를 용이하게 하는 방법.
  10. 디지털 저작권 관리를 용이하게 하기 위한 장치로서,
    암호화된 파일을 저장하도록 구성되는 메모리; 및
    상기 암호화된 파일과 연관된 키 재료에 적어도 부분적으로 기초하여 애플리케이션으로부터의 파일 I/O 요청들에 응답하여 상기 암호화된 파일에 액세스하는 명령들을 실행하도록 구성되는 프로세서를 포함하고,
    상기 프로세서는,
    암호화된 키 재료를 포함하는 메타데이터를 포함하는 상기 암호화된 파일을 수신하고;
    상기 암호화된 파일에 관련된 상기 암호화된 키 재료를 획득하기 위하여 상기 메타데이터를 복호화하고;
    상기 애플리케이션으로부터 암호화된 파일을 개방하라는 요청을 수신하고;
    상기 암호화된 파일을 개방하라는 요청에 응답하여, 상기 암호화된 파일에 대한 파일 핸들을 발생시키고;
    파일 I/O 동작들에서의 사용을 위해 상기 암호화된 파일에 관련된 상기 암호화된 키 재료를 상기 파일 핸들과 연관시키는, 디지털 저작권 관리를 용이하게 하는 장치.
  11. 제 10 항에 있어서,
    상기 암호화된 파일을 개방하라는 요청은 상기 암호화된 키 재료를 포함하는, 디지털 저작권 관리를 용이하게 하는 장치.
  12. 제 10 항에 있어서,
    상기 프로세서는,
    파일 레퍼런스를 포함하는 판독 요청을 수신하는 명령들;
    상기 파일 레퍼런스에 적어도 부분적으로 기초하여 상기 암호화된 파일을 식별하는 명령들;
    상기 암호화된 파일로부터 데이터를 검색하는 명령들; 및
    상기 암호화된 키 재료를 이용하여 상기 검색된 데이터를 복호화하는 명령들을 실행하도록 더 구성되는, 디지털 저작권 관리를 용이하게 하는 장치.
  13. 제 12 항에 있어서,
    상기 암호화된 파일은 연속 블록 암호화를 이용하여 암호화되고, 상기 데이터는 블록들 단위로 검색되고 복호화되는, 디지털 저작권 관리를 용이하게 하는 장치.
  14. 제 10 항에 있어서,
    상기 암호화된 파일은 AES (Advanced Encryption Standard) 를 이용하여 암호화되는, 디지털 저작권 관리를 용이하게 하는 장치.
  15. 제 10 항에 있어서,
    상기 파일 I/O 요청들은 FileRead, FileClose, FileTell, FileClose, FileFlush, CheckEndOfFile, GetFileError, 또는 IsFileOpen 또는 이들의 조합 중 적어도 하나를 포함하는, 디지털 저작권 관리를 용이하게 하는 장치.
  16. 제 10 항에 있어서,
    상기 프로세서는 상기 암호화된 키 재료를 키 관리자로부터 획득하는 명령들을 실행하도록 또한 구성되는, 디지털 저작권 관리를 용이하게 하는 장치.
  17. 제 10 항에 있어서,
    상기 프로세서는,
    상기 암호화된 파일과 연관된 메타데이터를 획득하도록 상기 암호화된 파일을 파싱하는 명령들; 및
    상기 메타데이터를 분석하는 명령들을 실행하도록 더 구성되는, 디지털 저작권 관리를 용이하게 하는 장치.
  18. 디지털 저작권 관리를 용이하게 하기 위한 장치로서,
    암호화된 키 재료를 포함하는 메타데이터를 포함하는 암호화된 파일을 수신하는 수단;
    상기 암호화된 파일에 관련된 상기 암호화된 키 재료를 획득하기 위하여 상기 메타데이터를 복호화하는 수단;
    적어도 하나의 프로그래밍 애플리케이션으로부터 파일 I/O 요청을 수신하는 수단;
    상기 파일 I/O 요청에 응답하여 상기 암호화된 파일에 액세스하는 수단;
    상기 암호화된 파일로부터의 데이터를 복호화하도록 상기 암호화된 파일과 연관된 상기 암호화된 키 재료를 이용하는 수단; 및
    상기 애플리케이션에 복호화된 데이터를 공급하는 수단을 포함하는, 디지털 저작권 관리를 용이하게 하는 장치.
  19. 제 18 항에 있어서,
    파일 개방 요청에 응답하여 상기 암호화된 파일에 대한 파일 디스크립터 ( descriptor) 를 발생시키는 수단; 및
    상기 파일 디스크립터와 상기 암호화된 키 재료를 연관시키는 수단을 더 포함하는, 디지털 저작권 관리를 용이하게 하는 장치.
  20. 제 19 항에 있어서,
    상기 파일 개방 요청은 상기 암호화된 키 재료를 포함하는, 디지털 저작권 관리를 용이하게 하는 장치.
  21. 제 18 항에 있어서,
    상기 암호화된 파일은 블록 단위로 암호화되는, 디지털 저작권 관리를 용이하게 하는 장치.
  22. 컴퓨터 판독가능 매체로서,
    암호화된 키 재료를 포함하는 메타데이터를 포함하는 암호화된 파일을 수신하는 명령들;
    상기 암호화된 파일에 관련된 상기 암호화된 키 재료를 획득하기 위하여 상기 메타데이터를 복호화하는 명령들;
    프로그래밍 애플리케이션으로부터 상기 암호화된 파일에 대한 파일 판독 요청을 수신하는 명령들;
    상기 파일 판독 요청에 응답하여 상기 암호화된 파일로부터 데이터를 획득하는 명령들;
    상기 암호화된 파일과 연관된 상기 암호화된 키 재료에 적어도 부분적으로 기초하여 상기 획득된 데이터를 복호화하는 명령들; 및
    상기 프로그래밍 애플리케이션에 상기 복호화된 데이터를 공급하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  23. 제 22 항에 있어서,
    상기 프로그래밍 애플리케이션으로부터 상기 암호화된 파일에 대한 파일 개방 요청을 수신하는 명령들;
    상기 암호화된 파일에 대한 파일 핸들을 발생시키는 명령들; 및
    상기 암호화된 키 재료를 상기 파일 핸들과 연관시키는 명령들을 더 포함하고,
    상기 파일 핸들은 파일 I/O 동작들을 위해 상기 암호화된 파일에 대한 레퍼런스를 제공하는, 컴퓨터 판독가능 매체.
  24. 제 22 항에 있어서,
    상기 암호화된 파일은 AES 로 암호화되는, 컴퓨터 판독가능 매체.
  25. 제 22 항에 있어서,
    상기 암호화된 파일은 연속 블록 암호화를 이용하여 암호화되고, 상기 데이터는 블록 단위로 획득되고 복호화되는, 컴퓨터 판독가능 매체.
  26. 디지털 저작권 관리를 용이하게 하기 위한 컴퓨터 실행가능 명령들을 실행하는 프로세서로서,
    암호화된 키를 포함하는 메타데이터를 포함하는 암호화된 파일을 수신하는 제 1 모듈;
    상기 암호화된 파일에 관련된 상기 암호화된 키를 획득하기 위하여 상기 메타데이터를 복호화하는 제 2 모듈;
    프로그래밍 애플리케이션으로부터 상기 암호화된 파일에 대한 파일 개방 지시어 (directive) 를 수락하는 제 3 모듈;
    상기 암호화된 파일에 대한 파일 레퍼런스를 발생시키는 제 4 모듈;
    상기 암호화된 파일에 관련된 상기 암호화된 키를 상기 파일 레퍼런스와 연관시키는 제 5 모듈; 및
    파일 I/O 에서의 사용을 위해 상기 파일 레퍼런스를 상기 프로그래밍 애플리케이션에 공급하는 제 6 모듈을 포함하는, 컴퓨터 실행가능 명령들을 실행하는 프로세서.
  27. 제 26 항에 있어서,
    상기 프로그래밍 애플리케이션으로부터 상기 파일 레퍼런스를 포함하는 파일 판독 지시어를 수신하는 모듈;
    상기 파일 판독 지시어에 응답하여 상기 암호화된 파일로부터 데이터를 획득하는 모듈;
    상기 파일 레퍼런스와 연관된 상기 암호화된 키에 기초하여 상기 데이터를 복호화하는 모듈; 및
    상기 프로그래밍 애플리케이션에 상기 복호화된 데이터를 공급하는 모듈을 더 구비하는, 컴퓨터 실행가능 명령들을 실행하는 프로세서.
  28. 제 26 항에 있어서,
    상기 암호화된 파일은 연속 블록 암호화를 이용하여 암호화되는, 컴퓨터 실행가능 명령들을 실행하는 프로세서.
  29. 제 26 항에 있어서,
    상기 파일 개방 지시어는 상기 암호화된 키를 포함하는, 컴퓨터 실행가능 명령들을 실행하는 프로세서.
KR1020117025373A 2006-04-04 2007-04-04 파일 복호화 인터페이스 KR101257191B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US78926406P 2006-04-04 2006-04-04
US60/789,264 2006-04-04
US11/692,099 US8819421B2 (en) 2006-04-04 2007-03-27 File decryption interface
US11/692,099 2007-03-27
PCT/US2007/066006 WO2007115332A2 (en) 2006-04-04 2007-04-04 File decryption interface

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020087026997A Division KR101257138B1 (ko) 2006-04-04 2007-04-04 파일 복호화 인터페이스

Publications (2)

Publication Number Publication Date
KR20110123290A true KR20110123290A (ko) 2011-11-14
KR101257191B1 KR101257191B1 (ko) 2013-04-22

Family

ID=38543663

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020117025373A KR101257191B1 (ko) 2006-04-04 2007-04-04 파일 복호화 인터페이스
KR1020087026997A KR101257138B1 (ko) 2006-04-04 2007-04-04 파일 복호화 인터페이스

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020087026997A KR101257138B1 (ko) 2006-04-04 2007-04-04 파일 복호화 인터페이스

Country Status (7)

Country Link
US (1) US8819421B2 (ko)
EP (1) EP2002375A2 (ko)
JP (1) JP4903858B2 (ko)
KR (2) KR101257191B1 (ko)
CN (1) CN101595487B (ko)
TW (1) TW200803395A (ko)
WO (1) WO2007115332A2 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070230356A1 (en) * 2006-04-04 2007-10-04 Kalantri Sacchindrakumar G Method and apparatus for enabling FLO device certification
US20090202068A1 (en) * 2008-02-07 2009-08-13 Amjad Qureshi Media security through hardware-resident proprietary key generation
JP4346670B1 (ja) * 2008-05-20 2009-10-21 株式会社東芝 電子装置およびコンテンツデータ提供方法
JP4342596B1 (ja) * 2008-05-20 2009-10-14 株式会社東芝 電子装置およびコンテンツデータ提供方法
CN102110202B (zh) * 2009-12-29 2014-01-01 比亚迪股份有限公司 一种在移动终端文件系统中读取drm文件的方法
US9064131B2 (en) 2010-07-28 2015-06-23 Nextlabs, Inc. Protecting documents using policies and encryption
US9460296B2 (en) * 2013-07-19 2016-10-04 Appsense Limited Systems, methods and media for selective decryption of files containing sensitive data
US9373003B2 (en) 2014-06-27 2016-06-21 Appsense Limited Systems and methods for automatically handling multiple levels of encryption and decryption
CN105404820A (zh) * 2014-09-15 2016-03-16 深圳富泰宏精密工业有限公司 文件安全存取系统与方法
US9602477B1 (en) * 2016-04-14 2017-03-21 Wickr Inc. Secure file transfer
US11216592B2 (en) * 2018-08-02 2022-01-04 Qualcomm Incorporated Dynamic cryptographic key expansion

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6249866B1 (en) 1997-09-16 2001-06-19 Microsoft Corporation Encrypting file system and method
JP2002312222A (ja) 2001-04-18 2002-10-25 Nippon Telegr & Teleph Corp <Ntt> 暗号ファイル管理装置および暗号ファイル管理方法
US7110982B2 (en) * 2001-08-27 2006-09-19 Dphi Acquisitions, Inc. Secure access method and system
JP2003115831A (ja) 2001-10-02 2003-04-18 Open Technology Kk 共通鍵生成方法並びにその共通鍵を用いる暗号方法、そのプログラム、そのプログラムを記録した記録媒体および暗号装置並びに復号方法および復号装置
KR20040041684A (ko) * 2001-10-12 2004-05-17 코닌클리케 필립스 일렉트로닉스 엔.브이. 블록식으로 저장된 사용자 데이터를 판독 또는 기록하는장치 및 방법
US7243226B2 (en) * 2001-12-12 2007-07-10 Valve Corporation Method and system for enabling content security in a distributed system
US8031869B2 (en) * 2002-03-07 2011-10-04 Panasonic Corporation Information recording medium, usage management method, and usage management apparatus
US20030208686A1 (en) * 2002-05-06 2003-11-06 Thummalapally Damodar R. Method of data protection
JP4021791B2 (ja) 2003-03-31 2007-12-12 富士通株式会社 ファイルのセキュリティ管理プログラム
US7644446B2 (en) * 2003-10-23 2010-01-05 Microsoft Corporation Encryption and data-protection for content on portable medium
US20060265758A1 (en) * 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US20070011469A1 (en) * 2005-07-11 2007-01-11 Simdesk Technologies Secure local storage of files

Also Published As

Publication number Publication date
WO2007115332A3 (en) 2007-12-27
CN101595487A (zh) 2009-12-02
EP2002375A2 (en) 2008-12-17
WO2007115332A2 (en) 2007-10-11
KR101257138B1 (ko) 2013-04-22
KR101257191B1 (ko) 2013-04-22
JP4903858B2 (ja) 2012-03-28
US20070260881A1 (en) 2007-11-08
US8819421B2 (en) 2014-08-26
JP2009532813A (ja) 2009-09-10
TW200803395A (en) 2008-01-01
KR20080108344A (ko) 2008-12-12
CN101595487B (zh) 2012-10-10

Similar Documents

Publication Publication Date Title
KR101257191B1 (ko) 파일 복호화 인터페이스
US10855385B2 (en) System and method for controlling broadcast multimedia using plural wireless network connections
KR101011521B1 (ko) 스트리밍 콘텐츠의 권한 미세 관리
CN108989848B (zh) 一种视频资源文件的获取方法和管理系统
CA2463542C (en) Method and apparatus for security in a data processing system
US8788849B2 (en) Method and apparatus for protecting cached streams
KR20030086617A (ko) 데이터 프로세싱 시스템의 보안 방법 및 장치
MXPA05002221A (es) Metodo y aparato para transmision de datos de seguridad en un sistema de comunicaciones moviles.
JP2004289847A (ja) 更新可能な条件付き受信システム
KR20120120481A (ko) 멀티미디어 콘텐츠를 전송하기 위한 효율적 키 계층
AU2002342014A1 (en) Method and apparatus for security in a data processing system
CN1383296A (zh) 在通信网络中管理对称密钥的方法及实现该方法的设备
JP4987850B2 (ja) マルチメディアコンテンツへのアクセスを管理するためのセキュリティ方法及びデバイス
BRPI0412398B1 (pt) Método e equipamento para segurança em um sistema de processamento de dados
KR101346623B1 (ko) 브로드캐스트암호화를 이용한 컨텐츠 서비스 제공 방법 및기기간 인증 방법 그리고 재생기기 및 저자원 디바이스
KR20150051253A (ko) 애플리케이션 데이터 보안 시스템 및 그 방법
BRPI0213214B1 (pt) Safety method and equipment in a data processing system

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190327

Year of fee payment: 7