KR100458339B1 - 해독화방법및전자기기 - Google Patents

해독화방법및전자기기 Download PDF

Info

Publication number
KR100458339B1
KR100458339B1 KR1019970003379A KR19970003379A KR100458339B1 KR 100458339 B1 KR100458339 B1 KR 100458339B1 KR 1019970003379 A KR1019970003379 A KR 1019970003379A KR 19970003379 A KR19970003379 A KR 19970003379A KR 100458339 B1 KR100458339 B1 KR 100458339B1
Authority
KR
South Korea
Prior art keywords
key
data
decryption
reading
address
Prior art date
Application number
KR1019970003379A
Other languages
English (en)
Other versions
KR970063005A (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 KR970063005A publication Critical patent/KR970063005A/ko
Application granted granted Critical
Publication of KR100458339B1 publication Critical patent/KR100458339B1/ko

Links

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

수신측에서 실시간으로 모든 해독 처리를 완료할 수 있도록 한다.
단자(1)에 입력된 수신 데이터의 헤더 중에서 PID 정보와 TSC 정보를 추출하여 IDT(16)에 공급한다. IDT(16)는 이들의 정보를 받아서 간접 검색 방법에 의해 DPMEM(17)로부터 데이터 키를 검색하여 판독한다. DPMEM(17)에는 소정 기간마다 갱신되는 복수의 데이터 키가 비동기로 기록되고, DPMEM(17)의 기록과 판독이 같은 타이밍으로 또한 동일 어드레스에 대해 행해질 때, 그의 기록을 금지한다. 이에 의해, DPMEM(17)의 메모리 제어를 용이하게 행할 수 있다.

Description

해독화 방법 및 전자 기기
본 발명은 암호화됨으로써 스크램블된 송신 데이터를 받아서, 해독하도록 한 해독화 방법 및 전자 기기에 관한 것이다.
통신에서 정보를 은닉하기 위해서, 송신 정보를 암호화하고, 암호화된 송신 정보를 수신하여 해독하는 것에 의해, 원래의 정보를 얻도록 한 암호화· 해독화 방식이 종래부터 공지되어 있다. 이러한 암호화· 해독화 방식으로는 미국에서의 표준 방식인 DES(Data Encryption Standard) 등의 암호 알고리즘이 공지되어 있다.
그런데, 암호 알고리즘에는 여러 종류의 다양한 것이 있고, 보다 안전성· 고속성이 우수한 방식이 개발되고 있다. 상기의 일례로서, 미국 특허 제4,982,429호, 미국 특허 제5,103,479호 및 특개평1-276189호 등에 기재되어 있는 암호화 방식(MULTI2 방식)이 공지되어 있다.
또한, 국제표준화 기구(ISO)에서도 ISO 9979/0009로서 등록된 암호화 방식이라든지, ISO/IEC10116으로서 등록된 암호화 이용 모드가 있다.
상기 MUITI2 방식의 암호화 방식에서는 입력 데이터 사이즈가 64비트, 출력 데이터 사이즈가 64비트로 되어 있고, 256비트 사이즈의 시스템 키와 64비트의 데이터 키로부터, 암호화를 행하기 위해 필요한 256비트 사이즈의 워크 키가 생성된다. 또한, 암호화 단수는 양의 정수단으로 되어 있다.
상기 MULTI2 방식에서의 암호화 알고리즘의 개략 구성을 도 17에 도시한다. MULTI2 방식은 도 17에 도시된 바와 같이 64비트의 데이터 키 Ks에 256비트의 시스템 키 J를 사용하여 암호 알고리즘의 연산을 실시함으로써 256비트의 워크 키 Kw를 생성한다. 상기 암호 알고리즘의 연산은 암호 알고리즘 실행 수단 C에 의해 실행된다. 생성된 워크 키 Kw는 암호 알고리즘 실행 수단 F에 공급되어 입력된 64비트의 평문이 암호화된다. 또한, 암호 알고리즘 실행 수단 C와 암호 알고리즘 실행 수단 F로 실행되는 암호 알고리즘은 동일한 암호 알고리즘이다.
이러한 암호화가 MULTI2 방식의 기본적인 암호화 알고리즘이지만, 이것에서는 미리 문자, 혹은 단어가 출현하는 빈도의 분포를 통계 처리해 두고, 입수된 암호화문의 문자열 패턴의 빈도 분포와의 매칭을 취함으로써, 평문이 추정되어 버릴 우려가 있다.
그리하여, 암호화된 64비트의 암호 블럭과, 다음에 입력되는 64비트의 입력 데이터의 배타적 논리합을 연산하여 암호문을 작성하는 방법이 있다. 상기 방법을 행하여 암호화하는 모드를 CBC(Cipher Block Chaining) 모드라고 부르고 있다. 상기된 암호 알고리즘 실행 수단 F에서는 이러한 CBC 모드의 암호 알고리즘이 실행된다.
또한, 예를 들면 패킷 통신과 같이 통신을 행하는 데이터의 단위가 미리 정해져 있는 통신 방식이 있지만, 64 비트를 1 블럭으로 하도록 한 블럭 암호화 방식에서는 1 블럭의 비트 수로 나누어 떨어지지 않는 데이터 단위가 입력된 경우에, 데이터가 남게 되어진다. 그래서, 그 끝수 처리를 OFB (Output Feedback) 모드로 처리하도록 하고 있다.
상기 OFB 모드에서는 데이터의 끝수 부분이 암호 알고리즘 실행 수단 G에 공급되고, 난수를 사용하여 암호화된다. 상기 난수는 워크 키 Kw를 사용하여 암호 알고리즘 실행 수단 G에 의해 생성되어 있다. 이것에 의해, 64비트를 1 블럭으로 하는 암호문을 얻을 수 있게 된다. 또한, CBC 모드 및 OFB 모드는 암호화 이용 모드라고 불린다.
또한, 각 MULTI2 방식에서의 해독화 알고리즘의 개략 구성을 도 18에 도시했다. 도 18에 도시된 바와 같이, 64비트의 데이터 키 Ks에 256비트의 시스템 키 J를 사용하여 암호 알고리즘의 연산을 함으로써 256비트의 워크 키 Kw를 생성한다. 상기 암호 알고리즘의 연산은 암호 알고리즘 실행 수단 c에 의해 실행된다. 생성된 워크 키 Kw는 해독 알고리즘 실행 수단 f에 공급되어 입력된 64비트의 암호문이 해독화된다.
또한, OFB 모드로 암호화되어 있는 암호문은 암호 알고리즘 실행 수단 g에 공급되고, 워크 키 Kw를 사용하여 암호 알고리즘 실행 수단 g에 의해 생성된 난수를 사용함으로써 해독화된다. 이것에 의해, 1 블럭 64비트의 암호문을 해독화하여 64비트의 평문을 얻을 수 있다. 또한, CBC 모드로 되어 있는 경우는 해독 알고리즘 실행 수단 f가 CBC 모드의 해독 알고리즘을 실행하도록 한다.
여기에서, 암호화 이용 모드의 설명을 도 19를 참조하면서 행하는데, 도 19(a)에 CBC 모드의 암호화· 해독화의 개략 구성을 도시하고, 도 19(b)에 OFB 모드의 암호화· 해독화의 개략 구성을 도시하고 있다.
CBC 모드에서 도 19(a)에 도시된 바와 같이 i번째의 평문 블럭 M(i)는 배타적 논리합 회로(101)에 입력되고, 레지스터(REG)(103)에 의해 지연된 1 블록 전의 암호문 블럭 C(i-1)의 배타적 논리합이 연산된다. 연산된 데이터는 암호 알고리즘 실행 수단(102)에서, 데이터 Ks에 기초하여 생성된 워크 키에 의해 암호화된다. 상기 암호화된 i번째의 암호문 블럭 C(i)는
C(i)=EKs(M(i).EOR.C(i-1))
로 나타낼 수 있다. 여기서, EKs(m)은 m을 Ks로 암호화하는 것을 의미하고, EOR은 배타적 논리합의 연산을 행하는 것을 나타낸다.
그리고, 상기 암호문 블럭 C(i)는 송신되어. 수신측에 수신된다. 수신된 암호문 블럭 C(i)는 해독 알고리즘 실행 수단(111)에서 데이터 키 Ks에 기초하여 생성된 워크 키를 사용하여 해독되고, 배타적 논리합 회로(113)에 공급된다. 상기 배타적 논리합 회로(113)에는 레지스터(REG)(112)에서 지연된 1 블록 전의 암호문 블럭 C(i-1)가 입력되어, 양자의 배타적 논리합이 연산된다. 이때, 송신측과 수신측의 데이터 키 Ks는 마찬가지로, 이것에 의해, 배타적 논리합 회로(113)로부터 i번째의 평문 블럭 M(i)이 해독된다. i번째의 평문 블럭 M(i)은 다음과 같이 나타낼 수 있다.
M(i)=DKs(C(i).EOR.C(i-1))
여기서, DKs(c)는 Ks에서 c를 해독화하는 것을 나타낸다.
또한. OFB 모드 경우에는 i번째의 평문 블럭 M(i)은 배타적 논리합 회로(105)에 공급된다. 상기 배타적 논리합 회로(105)에는 데이터 키 Ks에 기초하여 생성된 워크 키에 의해 난수화된 암호 알고리즘 실행 수단(104)의 출력이 공급된다. 또한, 암호 알고리즘 실행 수단(104)의 출력은 레지스터(103)에 의해 1 블럭 지연되어 암호 알고리즘 실행 수단(104)에 복귀된다. 이것에 의해, 배타적 논리합 회로(105)로부터 난수에 의해 암호화된 암호문 블럭 C(i)가 출력된다.
그리고, 상기 암호문 블럭 C(i)는 송신되고, 수신측에서 수신된다. 수신된 암호문 블럭 C(i)는 배타적 논리합 회로(114)에 공급된다. 상기 배타적 논리합 회로(114)에는 암호 알고리즘 실행 수단(115)에서 데이터 키 Ks에 기초하여 생성된 워크 키를 사용하여 난수화된 출력이 공급된다. 상기 암호 알고리즘 실행 수단(115)의 출력은 레지스티(REG)(112)에서 1 블럭 지연되어 암호 알고리즘 실행 수단(115)에 복귀된다. 상기의 경우, 배타적 논리합 회로(114)에 공급되는 난수는 배타적 논리합 회로(105)에 공급되는 난수와 같이, 이것에 의해, 배타적 논리합 회로(114)로부터 i번째의 평문 블럭 M(i)을 얻게된다.
이상 설명한 암호화 이용 모드를 갖는 암호화· 해독화 방식의 개략 구성을 도 20에 도시한다.
상기 도면에서, 송신측에는 스크램블러(100)가 구비되고, 스크램블러(100)에 의해 입력 데이터가 스크램블되어 송신된다. 상기 스크램블된 송신 데이터는 공간 등의 전송로에 전파되어 수신측에서 수신된다. 수신측에는 디스크램블러(110)가 구비되어 있고, 상기 디스크램블러(110)에 의해 스크램블된 송신 데이터가 디스크램블되어, 원래의 데이터로 복귀되어 출력된다.
스크램블러(100)는 입력된 입력 데이터(평문)를 암호화하는 암호 알고리즘 실행 수단인 암호화기(102)와, 레지스터(103)와, 배타적 논리합 회로(EX-OR)(101)로 이루어진 CBC 모드 암호화부와, 암호 알고리즘 실행 수단인 암호화기(104)와, 배타적 논리합 회로(EX-OR)(105)로 이루어진 OFB 모드 암호화부로 구성되어 있다. 또한, 데이터 키와 시스템 키로부터 워크 키를 생성하는 암호화기(106)도 스크램블러(100) 내에 구비되어 있다. 생성된 워크 키는 암호화기(102, 104)에 공급된다.
그런데, 암호화기(102), 암호화기(104, 106)는 동일 구성으로 되어 있기 때문에, 1개의 암호화기로 3개의 암호화기를 겸용할 수 있다. CBC 모드 암호화부 및 OFB 모드 암호화부의 동작은 상술된 바와 같기 때문에, 여기에서는 생략한다.
또한, 디스크램블러(110)는 입력된 수신 데이터(암호문)를 해독화하는 해독 알고리즘 실행 수단인 해독화기(111)와, 레지스터(112)와, 배타적 논리합 회로(EX-OR)(113)로 구성된 CBC 모드 해독화부와, 암호 알고리즘 실행 수단인 암호화기(115)와, 배타적 논리합 회로(EX-OR)(114)로 구성된 OFB 모드 해독화부로 구성되어 있다. 또한, 데이터 키와 시스템 키로부터 워크 키를 생성하는 암호화기(116)도 디스클램블러(110) 내에 구비되어 있다. 생성된 워크 키는 해독화기(111)와, 암호화기(115)에 공급된다.
또한, 암호화기(115), 암호화기(116)는 동일 구성으로 되어 있기 때문에, 1개의 암호화기로 2개의 암호화기를 겸용할 수 있다. 또한, CBC 모드 해독화부 및 OFB 모드 해독화부의 동작은 상술된 바와 같기 때문에 여기에서는 생략한다.
그런데, 상술된 MULTI2 방식과 같은 고도한 암호화· 해독화 방식을 소프트웨어로 실현하여 사용하는 경우에는 현재의 연산 수단의 연산 속도에서는 실시간 처리를 행할 수 없다. 즉, 예를 들면 위성 디지털 텔레비전 방송 등에 적용한 경우는 화상이라든지 음성을 끊어지지 않게 실시간 재생할 필요가 있기 때문에, 수신측에서의 해독화 처리는 고속의 처리가 가능한 하드웨어로 행하지 않으면 안 되는 것이다.
그러나, 수신측에서 실시간으로 모든 해독 처리를 완료할 수 있는 하드웨어는 복잡한 처리를 행하기 때문에 대형으로 된다고 하는 문제점이 있다.
그리하여, 본 발명은 고도한 암호화 방식으로 스크램블된 데이터를 수신측에서 실시간으로 모든 해독 처리를 소형이며 또한 염가의 하드웨어를 사용하여 완료할 수 있는 해독화 방법을 제공하는 것을 제 1 의 목적으로 하고 있다.
또한, 본 발명은 고도의 암호화 방식으로 스크램블된 데이터를, 수신측에서 실시간으로 모든 해독 처리를 완료할 수 있는 해독화 수단을 구비한 소형이며 또한 염가의 전자 기기를 제공하는 것을 제 2 의 목적으로 하고 있다.
상기 제 1의 목적을 달성하기 위해서, 본 발명의 해독화 방법은 메모리 수단에 복수의 키 정보를 기록하는 기록 스텝과, 입력 데이터 중의 정보에 의해 지시된 어느 하나의 키 정보를 상기 메모리 수단으로부터 판독하는 판독 스텝과, 상기 판독 스텝에서 판독된 키 정보에 기초하여 상기 입력 데이터를 해독하는 해독 스텝으로 구성되고, 상기 기록 스텝의 실행 기간과, 상기 판독 스텝의 실행 기간이 겹친 경우에서, 기록 어드레스와 판독 어드레스가 일치하고 있는 경우는 상기 기록 스텝의 실행을 금지하도록 하고 있다.
또한, 상기 제 1의 목적을 달성하기 위해서, 본 발명의 다른 해독화 방법은 복수의 키 정보를 기억하고 있는 메모리 수단으로부터, 입력 데이터 중의 지시 데이터에 기초하여 어느 하나의 키 정보를 판독하는 판독 스텝과, 상기 판독 스텝에서 판독된 키 정보에 기초하여 상기 입력 데이터를 해독하는 해독 스텝으로 구성되고, 상기 판독 스텝으로서는 상기 지시 데이터에 의해 키 테이블을 참조함으로써, 상기 메모리 수단으로부터 판독하는 키 정보를 검색하고, 상기 지시 데이터에 해당하는 상기 키 정보를 판독하기 위한 키 어드레스가 상기 키 테이블에 2개 이상 존재하는 경우는 가장 적은 키 어드레스를 선택하도록 하고 있다.
그리고 또한, 상기 제 1의 목적을 달성하기 위해서, 본 발명의 또다른 해독화 방법은 복수의 키 정보를 기억하고 있는 메모리 수단으로부터, 입력 데이터 중의 지시 데이터에 기초하여 어느 하나의 키 정보를 판독하는 판독 스텝과, 상기 판독 스텝에서 판독된 키 정보에 기초하여 상기 입력 데이터를 해독하는 해독 스텝으로 구성되고. 상기 판독 스텝에서는 상기 지시 데이터에 의해 테이블을 참조함으로써, 상기 메모리 수단으로부터 판독하는 키 정보의 키 어드레스를 검색하고, 상기 지시 데이터에 의해 참조되는 키 어드레스가 상기 키 테이블에 존재하지 않는 경우는 키 어드레스의 검색을 행하지 않도록 하고 있다.
그리고 또한, 상기 제 1 의 목적을 달성하기 위해서, 본 발명의 또 다른 해독화 방법은 초기 설정을 행하는 초기 스텝과, 메모리 수단에 복수의 키 정보를 기록하는 기록 스텝과, 상기 메모리 수단으로부터, 입력 데이터 중의 지시 데이터에 기초하여 어느 것인가의 키 정보를 판독하는 판독 스텝과, 상기 판독 스텝에서 판독된 키 정보에 기초하여 상기 입력 데이터를 해독하는 해독 스텝으로 구성되고, 상기 판독 스텝에서는 상기 지시 데이터에 의해 키 테이블을 참조함으로써, 상기 메모리 수단으로부터 판독하는 키 정보의 키 어드레스를 설치하고, 초기화 기간 내에서는 검색한 결과, 해당하는 키 어드레스가 없도록, 상기 초기 스텝에서 초기 처리 되도록 하고 있다.
그리고 또한, 상기 제2의 목적을 달성하는 본 발명의 전자 기기는 상술된 것 중 어느 하나의 해독화 방법을 실행하는 해독 수단을 적어도 구비하도록 하고 있다.
이러한 본 발명의 해독화 방법에 의하면, 해독 처리를 행하기 위해서 필요한 키 정보가 저장되어 있는 메모리 수단의 판독 및 기록 제어를 적절히 행할 수 있기 때문에, 메모리 제어를 용이하게 행할 수 있는 해독화 방법으로 할 수 있다. 따라서, 수신측에서 실시간으로 모든 해독 처리를 행할 수 있는 해독화 방법으로 할 수 있다.
또한, 이러한 해독 방법을 실행하는 해독 수단을 구비하는 전자 기기에서는 메모리 제어 수단의 구성을 간단화할 수 있기 때문에, 전자 기기를 소형이며 또한 염가로 제공할 수 있게 된다.
본 발명의 해독화 방법의 실시예인 해독 장치의 구성예를 도시한 블록도를 도 1에 도시한다.
상기 도면에서, 해독 장치 A는 CBC 모드의 해독화부 B와, OFB 모드의 해독화부 C와, 패킷 ID(PID) 테이블을 구비한 데이터 키 간접 검색기(IDT)(16)와, 입력 데이터의 암호화에 사용된 데이터 키를 해독화부 B, C에 걸친 듀얼 포트 메모리(DPMEM)(17)와, DPMEM(17)의 기록 어드레스와 판독 어드레스를 비교하는 비교기(COMP)(11)로 구성된다.
해독장치 A의 단자(1)에는 수신 데이터인 암호문 데이터가 입력되고, 상기 암호문 데이터는 스위칭 수단(3)에 입력된다. 이 때, CBC 모드로 된 경우는 스위칭 수단(3) 및 스위칭 수단(4)이 동시에 단자 a측으로 스위칭되고, 입력된 암호문 데이터는 CBC 모드 해독부 B에 공급되어 해독화되어 출력된다. 또한, OFB 모드로 되었을 때는 스위칭 수단(3), 및 스위칭 수단(4)은 동시에 단자 b측으로 스위칭되고, 암호문 데이터는 OFB 모드 해독화부 C측에 입력된다. 그리고, 입력된 암호문 데이터는 OFB 모드 해독화부 C에서 해독화되어 평문 데이터가 출력된다.
CBC 모드 해독화부 B 및 OFB 모드 해독화부 C에서, 입력된 암호문 데이터는 해독 처리되어 평문 데이터로 되지만, 그 해독화 알고리즘은 상기 도 18에 도시된 해독화 알고리즘과 같다. 또한, 상기의 경우 해독 처리에 필요한 데이터 키는 DPMEM(17)으로부터 공급된다.
또한, 단자(1)에 입력되는 수신 데이터의 포맷은 예를 들면 ISO/IEC13818로서 규정되어 있는 트랜스포트 스트림(이하, TS로 표기한다)으로 된다. TS는 188바이트의 패킷 구조로 되어 있고, 통상 4바이트의 헤더 뒤에 184바이트의 페이로드가 이어지도록 되어 있다. 또한, 전송 에러에 대한 에러 정정을 위해 패리티를 부가하기 때문에, 16바이트에 패리티용 더미 기간이 부가되어, 이들의 반복 스트림으로 된다.
상기의 TS의 헤더에는 패킷이 영상 데이터로 구성되어 있는 것인가, 음성 데이터로 구성되어 있는 것인가, 혹은 다른 데이터로 구성되어 있는 것인가를 나타내는 PID 정보라든지, 암호화되어 있는 TS인 것인가의 여부를 나타내는 TSC(Transport Scrambling Control) 플래그 등이 포함되어 있고, 해석부(도시하지 않음)에서 헤더를 해석함으로써, 이들의 패킷의 속성이 해석된다.
이 때, TSC에 의해 암호화되어 있지 않은 패킷으로 해석된 경우는 해독화 처리를 행하지 않고 TS를 지연부를 통해서 그대로 출력하도록 한다. 상기 지연부의 지연 시간은 해독 장치 A가 해독 처리에 요하는 시간과 같게 된다.
또한, 1개의 PID에 대하여는 데이터 키 Kse(Ks-even)와 데이터 키 Kso(Ks_odd)의 2개가 할당되어져 있다. 이것은 데이터 키가 수초 내지 수십 초마다 갱신되기 때문에, 갱신에 맞도록 데이터 키의 바꿔쓰기를 행할 필요가 있는 것 및, 해독 처리 시에는 데이터 키 Kse와 데이터 키 Kso는 그 한 쪽밖에 사용할 수 없고, 사용되지 않는 데이터 키를 갱신 가능하게 하여, 그 데이터 키를 갱신할 수 있기 때문이다. 즉, 데이터 키를 갱신하는 갱신 제어를 용이하게 행하기 위해서이다.
또한, 상기 해석부는 도시하지 않았지만, 예를 들면 CBC 모드 해독화부 B에 구비되어 있고, CBC 모드 해독화부 B에서 15비트의 데이터 사이즈의 PID/TSC 정보가 IDT(16)로 이송된다.
IDT(16)에서는 수신된 13비트 사이즈의 PID 정보를 사용하여 PID 테이블을 참조하여, PID에서 판독된 어드레스 정보와, 2비트 사이즈의 TSC 정보를 조합하여 DPMEM(17)의 판독 어드레스 R4(데이터 사이즈는 9비트)를 생성한다. 생성된 판독 어드레스 RA는 AO 단자로부터 DPMEM(17)의 RA 단자로 공급되며, 이 때에 리드 인에이블(RE) 신호가 액티브 상태로 되도록 제어하여, 판독 어드레스 RA에 해당하는 데이터 키를 DPMEM(17)으로부터 판독한다. 판독된 데이터 키는 입력된 TS의 암호화시에 사용된 데이터 키와 같이, 단자 RD로부터 출력되어 해독화기(5)에 공급된다.
해독화기(5)는 공급된 데이터 키와, 시스템마다 다른 시스템 키가 워크 키를 생성하여, 생성된 워크 키에 기초하여 입력된 암호문 데이터의 해독 처리를 행한다.
또한, 시스템 키는 미리 CPU(10)로부터 해독 장치 A에 넘겨져 있다.
또한, CPU(10)는 해독화부 B, C에서 필요로 되는 갱신된 데이터 키를 해독 처리에서 필요해지기 전에 DPMEM(17)에 기록하도록 되어 있고. 기록하는 경우에는 라이트 인에이블(WE)을 액티브 상태로 함과 동시에, 9비트의 데이터 사이즈의 기록 어드레스(WA)와, 8비트의 데이터 사이즈의 데이터 키의 기록 데이터(WD)를 DPMEM(17)에 공급한다. 상기의 경우, CPU(10)에는 ROM이라든지 RAM이 구비되어 있고, 이들의 메모리에 해독 장치 A에 주어지는 데이터가 기록되어 있다.
또한, DPMEM(17)에 데이터 키 정보를 기록할 때에, 기록 어드레스와 동일의 판독 어드레스로 IDT(16)가 데이터 키를 판독하도록 된 경우는 판독된 데이터가 부정으로 되기 때문에, 이 때는 DPMEM(17)에의 기록을 금지하고 있다.
이를 위해, 비교기(11)와 AND 게이트(12), OR 게이트(13, 14), 인버터(15)가 마련되어 있다. 상기 동작을 설명하면, IDT(16)로부터 출력된다. 판독 어드레스 RA와 CPU(10)로부터 출력되는 기록 어드레스(WA)가, 비교기(11)의 P 단자 및 Q 단자에 각각 입력된다. 그리고, P단자 입력 데이터와 Q단자의 입력 데이터가 일치(P=Q) 했을 때, 비교기(11)에서 하이 레벨 신호가 출력된다. 이 때, 반전 RE가 로우 레벨이고 액티브 상태로 되어 있으면, 인버터(15)로부터 하이 레벨이 출력되기 때문에, 결국, AND 게이트(12)로부터 하이 레벨이 출력되어진다. 상기 AND 게이트(12)의 출력은 OR 게이트(13)에 입력되어, OR 게이트(13)의 출력이 하이 레벨로 되기 때문에, 반전 WE는 비액티브 상태로 되고, DPMEM(17)에의 기록이 금지되어진다.
다음에, CPU(10)로부터 본 해독 장치 A의 레지스터의 메모리 공간을 도 3에 도시하였지만, 9비트의 데이터 사이즈의 어드레스(HADD)의 상위 6비트가 "000100"으로 된 64bit x l의 영역이 CBC 모드의 초기값 테이블(CBC Initial value table)에 할당되어져 있다. 상기 초기값 테이블에 기억되는 초기값은 전원 투입 시 등에 실행되는 초기 처리 시에, CBC 모드 해독화부 B에 공급되어 레지스터(6)에 세트된다.
또한, 어드레스(HADD)의 상위 4비트가 "0010"으로 된 256bit x l의 영역이 시스템 키 테이블(SYSTEM_Key table)에 할당되어져 있다. 상기 시스템 키는 시스템마다 다른 것으로 되지만, 1개의 시스템에서는 고정된 키이다.
또한, 어드레스(HADD)의 상위 4비트가 "0100"으로 된 13bit x 12의 영역이 PID 테이블(PID value table)에 할당되어져 있다. 상기 PID 테이블은 패킷화된 데이터 종료를 나타내는 정보이고, 1칩에서는 최대 12종류로 되어 데이터 종류마다 다른 PID로 된다.
또한, 시스템 키 테이블은 소정의 레지스터에, PID 테이블의 정보는 IDT(16)에, 초기 처리 시에 CPU(10)로부터 기록된다.
그리고 또한, 어드레스(HADD)의 상위 2비트가 "10"으로 된 64bit x 12의 영역이 데이터 키 Kse 테이블(Ks_even value table)에 할당되고, 어드레스(HADD)의 상위 2비트가 "11"로 된 64bit x 12의 영역이 데이터 키 Kso 테이블(Ks_odd value table)에 할당된다. 상기 데이터 키 Kse 테이블 및 데이터 키 Kso 테이블의 정보는 DPMEM(17)에 기록되지만, 수초 내지 수십 초의 소정 타이밍마다, CPU(10)에 의해 갱신된다.
다음에, IDT(16)의 상세한 구성의 일례를 도시한 블록도를 도 2에 도시한다. 상기 도면에서, 41 내지 52는 각각 13비트폭을 갖는 12개의 플립플롭(DF0 내지 DF11)이고, 61 내지 72는 각각 13비트폭을 갖는 12개의 비교기(CP0 내지 CP11)이다. 또한, 40은 어드레스 디코더(ADEC)이고, 9비트의 데이터 사이즈의 어드레스 정보가 입력되면, 12개의 출력 중의 1개만, DF0 내지 DF11의 중 어느 하나를 액티브로 하는 출력이 나온다. 또한, 39는 프라이어러티 인코더(Priority encoder: PE)이고, TSC 정보와 조합된 어드레스 정보 TMP0 내지 TMP3이 출력된다.
상기 IDT(16)에서, 단자(30)에는 CPU(10)로부터 출력된 8비트의 데이터 사이즈의 PID 정보가 13비트의 데이터 사이즈로 전개되어 입력된다. 또한, 단자(32)에는 CPU(10)로부터 출력된 9비트의 데이터 사이즈의 어드레스 정보가 입력되고, ADEC(40)에서 디코딩된다. 상기 디코딩 출력은 스트로브 신호로서 DF0 내지 DF11에 입력되고, DF0 내지 DF11 중의 어느 하나가 래치 가능하게 된다.
이때, 입력된 13비트의 데이터 사이즈의 PID 정보는 12개의 DF0 내지 DF11에 공통으로 입력되고, ADEC(40)의 디코딩 출력에 의해 DF0 내지 DF11이 순차 1개씩 선택되어, 공급되어 있는 PID 정보가 래치된다. 이렇게 하여, DF0 내지 DF11에 최대 12종류의 PID 정보를 래치할 수 있고, DF0 내지 DF11에 의해 PID 테이블이 구성되도록 된다.
또한, 단자(33)에는 13비트의 데이터 사이즈의 PID 정보가 입력되고, 비교기 CP0 내지 CP11의 B 입력 단자에 공통으로 입력된다. 상기 PID 정보는 CBC 모드 해독화부 B에서, 수신 데이터인 패킷의 헤더로부터 추출되어 IDT(16)에 공급된 15비트의 데이터 사이즈의 PID/TSC 정보 중의 13비트의 데이터 사이즈의 PID 정보이다.
상기의 경우, 비교기 CP0 내지 CP11에는 DF0 내지 DF11에서의 PID 정보가 각각 A단자에 입력되어 있고, 단자(33)부터 입력된 PID 정보와 일치하는 PID 정보가 A단자에 입력되어 있는 비교기로부터 일치 신호가 출력된다. 따라서, PID 테이블에 있는 PID 정보가 단자(33)로부터 입력되면, CP0 내지 CP11 중 어느 하나가 1개로부터 일치 신호가 출력된다.
상기 CP0 내지 CP11의 논리표를 도 4에 도시하지만, CP0 내지 CP11의 A 단자 및 B 단자에 모두 "1"이 입력되어 있지 않을 때는 일치했을 때(A=B)에 "1" 신호가 출력된다. 또한, 일치하지 않을 때는 "0"이 출력된다.
또한, PE(39)의 논리표를 도 5에 도시한다. 상기 PE(39)의 논리표에서, 예를 들면, CP2로부티 "1" 신호가 출력되었을 때는 PE(39)에서는 "0010"의 4비트(TMP0 내지 TMP3)의 데이터가 출력된다. 상기 PE(39)에서는 도 5에 도시된 바와 같이, D0가 가장 우선된 입력으로 되고, D11이 최하위의 우선도의 입력으로 된다.
그런데, DF0 내지 DF11에 설정된 PID 테이블의 PID 정보와 일치하지 않는 PID 정보가 입력되는 일이 있지만, 상기의 경우에는 PE에 모두 "0"이 입력되어진다. 이 때, PE의 NK 출력이 "1"로 된다. 또한, NK 출력이 "1"일 때에는 후술하는 데이터 키의 키 테이블을 판독해 가는 것이 금지된다.
또한, 전원 투입 시 등의 초기 처리 시에는 단자(31)의 레벨이 "0"으로 되고, DF0 내지 DF11이 모두 프리셋되기 때문에, DF0 내지 DF11에서 "1"이 출력된다. 따라서, 상기의 경우는 CP0 내지 CP11에서 모두 "0"이 출력되어지고, 상술된 바와 같이 데이터 키의 키 테이블을 판독해 가는 것이 금지된다.
또한, 키 테이블을 판독하는 것이 금지되어 있을 때는 키 테이블이 사용되지 않기 때문에, 상기 키 테이블에 CPU(10)로부터 데이터 키를 기록할 수 있다. 즉, 데이터 키의 초기 설정을 할 수 있다. 또한, 단자(31)는 파워 온 리셋 단자이고, 소정 시간 후에 그 레벨을 "1"로 복귀한다.
다음에, 수신 데이터 중의 PID 정보와 TSC 정보에 의해, 데이터 키의 키 테이블을 검색하는 동작을 도 6을 참조하면서 설명한다.
도 6에 도시된 스텝 S20에서, 수신 데이터의 헤더로부터 13비트의 데이터 사이즈의 PID 정보로서 "PID-F"가 2비트의 데이터 사이즈의 TSC 정보로서 "10"이 입력된 것으로 한다. 이 "10"은 데이터 키 Kse에서 스크램블되어 있는 것을 나타내고 있는 것으로 한다.
이어서, 스텝 S21에서 상기 PID 정보는 CP0 내지 CP11의 A단자에 입력되어, DF0 내지 DF11에 저장되어 있는 PID 정보와 비교된다. 이 결과, CP5로부터 "1" 신호가 출력되고, PE39의 TEMP3 내지 TEMP0의 출력 TMP[3..0]이, "0101"로 된다. 즉, "PID-F"가 검색된다. 상기 PE39의 출력인 "0101"는 어드레스 HADD의 제 4 비트에서 제 1 비트로 된다.
이어서, 스텝 S22에서 TSC 정보 TSC[1..0]의 2비트("10")가 HADD의 제 5 비트, 제 6 비트로 되어, 6비트 사이즈의 어드레스 HADD[8..3]가 생성된다. 따라서, 어드레스 HADD[8..3]는 "10010"로 된다.
그리고, 스텝 S23에서 생성된 "100101"의 어드레스 HADD[8..3]에 의해 키 테이블을 참조하면, Ks_even 테이블에서 64비트폭의 데이터 키 Kse-F를 얻게 된다. 그리고, 얻어진 데이터 키 Kse_F에 기초하여 입력된 암호문의 해독이 해독 장치 A에서 실행된다.
이와 같이, 본 발명의 해독화 방법에서는 간접적으로 데이터 키를 검색하는 간접 검색 방법으로 하고 있기 때문에 PID 정보에 대응하는 13비트 폭의 테이블을 준비하지 않고, 6비트 폭의 키 테이블을 준비하면 되기 때문에 메모리 용량을 삭감하여 소형화할 수 있다.
또한, 이와 같이 해독 중에는 키 테이블의 Ks_even 테이블, Ks_odd 테이블의 한쪽밖에 사용되지 않기 때문에, 사용하지 않는 키 테이블의 데이터 키를 갱신할 수 있다. 이것은 상술한 바와 같이 CPU(10)가 실행되지만, CPU(10)의 타이밍과 해독 장치 A의 타이밍과는 비동기로 동작하기 때문에, CPU(10)는 비동기로 갱신하는 데이터 키를 기록해간다.
이를 위해, 키 테이블이 저장된 듀얼포트 메모리(17)에서는 상술된 바와 같이 기록과 판독이 동시에 동일 어드레스에서 행해지는 경우가 발생하는 것이다. 이 때의 타이밍 예를 도 9에 도시하지만, 도시하는 타이밍에서 8클럭 폭의 반전 RE가 발생한 경우에는 상기 8클록 기간에서는 상술된 바와 같이 CPU(10)로부터의 동일 어드레스의 기록이 금지된다.
그런데, 어떠한 원인에 의해 PID 테이블에 동일한 PID가 저장되어 있는 경우가 생긴다. 예를 들면, 1채널 당 최대 12종류의 PID 정보로 되지만, 12종류의 PID를 필요로 하지 않는 경우는 PID 테이블에는 12종류의 PID를 기록할 필요는 없고, 필요한 종류의 PID만을 기록하게 된다. 그렇게 하면, 기록되지 않은 PID 난의 데이터가 우연히 PID와 동일한 데이터로 되는 일이 있다.
이러한 경우에는 잘못된 데이터 키를 판독하여 해독할 수 없게 되어 버릴 우려가 있으므로, 본 발명에서는 다음과 같이 하여 이것을 방지하고 있다.
도 7에 도시된 바와 같이 PID 테이블에 복수의 "PID-F"가 있는 경우는 그 중의 어드레스 HADD가 작은 쪽을 우선으로 하도록 하고 있다. 이것은 어드레스 HADD가 작은 쪽으로부터 PID 테이블에 기록해 가기 때문에, 어드레스 HADD가 큰 쪽이 잘못될 확률이 높기 때문이다.
이것에 의해, PID정보로서 "PID-F"가 입력되면, 어드레스 HADD[8..1]로서 "01000101"를 얻게 되고, 상술된 처리와 같은 처리가 행하여지고, Ks_even 테이블에서 64비트 폭의 데이터 키 Kse-F를 얻게 된다.
또한, 입력데이터의 헤더로부터의 PID 정보에 의해, PID 테이블을 참조하더라도 해당하는 PID가 없는 경우가 있다. 예를 들면, 도 8에 도시된 바와 같이 PID 정보로서 "PID-F"가 입력되어도, PID 테이블 중에는 "PID-F"에 해당하는 PID가 없다.
이러한 경우에는 키 테이블의 Ks_even 테이블, Ks_odd 테이블 중의 어느 것도 판독해가지 않고, 데이터 키를 판독하지 않는다. 상기의 경우는 입력 데이터인 TS는 그대로 출력하게 된다.
다음에, 도 1에 도시된 해독 장치 A의 해독 플로우를 도 10에 도시하지만, 트랜스포트 스트림(TS)이 입력되면, 스텝 S10에서 스크램블되어 있는지 아닌지가 판정된다. 상기의 판정은 스크램블된 것을 나타내는 헤더 중의 플래그가 설정되어 있는지 아닌지를 검출함으로써 판정된다. 상기의 경우, 플래그가 설정되어 있는 경우에는 스크램블이 on으로 판정되고, 스텝 S11로 진행하고, 여기에서 원하는 플래그 등의 바꿔쓰기가 행해진다. 이어서, 스텝 S12에서 헤더로부터 PID 정보가 추출되어, 키 테이블이 참조된다. 상기의 경우 키 테이블은 키 테이블 처리의 스텝 S16에서 호스트 인터페이스 처리가 행해져, 스텝 S17에서 기록된 키 테이블이 참조된다.
또한, 스텝 S12의 처리는 상기 도 6에 도시된 처리이다.
이상의 스템 S10 내지 스텝 S12의 처리가 헤더 컨트롤 처리이다. 또한, 스탭S10에서 스크램블 off로 판정된 경우에는 TS는 그대로 출력된다.
이어서, 스텝 S13에서 CBC 모드의 해독처리가 행해지고, 스텝 S14에서 해독 처리되는 암호문이 64비트의 정수 배인지 아닌지가 판정된다. 암호문에 끝수가 있어 No로 판정된 경우는 스텝 S15에서 끝수 부분에 대하여 OFB 모드의 해독 처리가 행해지고, 해독 처리된 평문이 출력된다. 또한, 스텝 S14에서 64비트의 정수 배로 판정된 경우에는 해독 처리된 64 비트의 평문이 출력되어진다.
그런데, 도 10에 도시된 바와 같은 해독 플로우의 실행은 상기 도 18에 도시된 해독화 알고리즘에 의해 실행되어 있다. 도 18에 도시된 해독화 알고리즘은 상술된 바와 같기 때문에 여기에서는 생략하지만, 해독화 알고리즘 중 해독 알고리즘 및 암호 알고리즘을 실행하는 구성의 상세를 도 11 내지 도 15를 참조하여 설명한다.
도 11은 암호 알고리즘을 실행하는 암호처리의 구성을 도시한다. 도 11에서, 64비트폭의 입력 데이터는 상위 32비트의 데이터와 하위 32비트의 데이터로 분할되어 최초의 암호 8단에 입력된다. 상기 암호 8단은 함수의 연산을 행하는 4단의 연산단이 2회 반복된 구성으로 된다. 그리고, 입력된 상위 32비트의 데이터와 하위 32비트의 데이터에, 연산된(20)의 초단에서 함수 π 1의 연산이 행해진다. 이어서, 제 2 단에서 초단의 출력에 함수 π 2의 연산이 행해진다. 상기의 경우, 제 2 단에는 32비트 폭의 워크 키 K1이 입력되고, 상기 워크 키 K1을 사용하여 제 2단의 연산이 행해진다.
또한, 제 3 단에서 제 2 단의 출력에 함수 π 3의 연산이 행해진다. 상기의 경우 제 3 단에는 32비트 폭의 워크 키 K2, K3이 입력되고, 상기 워크 키 K2, K3을 사용하여 연산이 행해지고 있다. 계속해서, 제 4 단에서 제 3 단의 출력에 함수 π 4의 연산이 행해진다. 상기의 경우, 제 4 단에는 32비트 폭의 워크 키 K4가 입력되고, 상기 워크 키 K4를 사용하여 연산이 행해지고 있다.
또한 남은 4단의 연산을 행하는 연산단(21)에서, 연산단(20)으로부터의 출력에 초단에서 함수 π 1의 연산이 행해진다. 이어서, 제 2 단에서 초단의 출력에 함수 π 2의 연산이 행해진다. 상기의 경우, 제 2 단에는 32비트 폭의 워크 키 K5가 입력되고, 상기 워크 키 K5를 사용하여 연산이 행해진다.
또한. 제 3 단에서 제 2 단의 출력에 함수 π 3의 연산이 행해진다. 상기의 경우, 제 3 단에는 32비트 폭의 워크 키 K6, K7이 입력되고, 상기 워크 키 K6, K7을 사용하여 연산이 행해진다. 계속해서, 제 4 단에서 제 3 단의 출력에 함수 π 4의 연산이 행해진다. 상기의 경우, 제 4 단에는 32비트 폭의 워크 키 K8이 입력되고, 상기 워크 키 K8을 사용하여 연산이 행해진다.
이렇게 하여 암호처리가 행해진 상위 32비트. 하위 32비트의 합계 64비트 폭의 데이터는 또한 암호 8단(22)에 입력된다. 상기 암호 8단(22)에서, 상술한 암호 8단의 연산과 같은 연산이 행해지고, 상위 32비트, 하위 32비트의 합계 64비트 폭의 랜덤화된 출력 데이터를 얻게된다.
또한, 도시되어 있는 바와 같이, 암호 8단의 반복하는 수는 2회에 한정되지 않고, 원하는 회수를 반복할 수 있다. 상기 회수를 많이 반복할수록, 출력 데이터는 고도로 랜덤화되어, 암호 강도를 강한 것으로 할 수 있다.
또한, 연산단의 각별하게 행해지는 함수의 연산은 일정한 규칙에 따라서 어떤 문자를 다른 문자로 치환하는 것과, 문자의 순서를 바꾸어 위치 전환하는 연산으로 되어 있다.
다음에, 해독 알고리즘을 실행하는 해독 처리의 구성을 도 12에 도시하지만, 상술한 암호 처리와 다른 점은 암호 처리의 구성의 출력측으로부터 반대로 연산을 행하도록 하고 있는 점이다. 즉, 암호 8단 중의 최초의 4단의 연산단(23)에서는 상위 32비트와 하위 32비트로 분할된 64비트 폭의 암호화되어 있는 입력 데이터에, 32비트 폭의 워크 키 K8을 사용하여 함수 π 4의 연산을 실시하고 있다. 계속해서, 제 2 단째에서, 초단의 출력 데이터에 워크 키 K7을 사용하여 함수 π 3의 연산을 실시하고 있다. 또한, 제 3 단째에서, 제 2 단의 출력 데이터에 워크 키 K6, K7을 사용하여 함수 π 2의 연산을 실시하고 있다. 그리고 또한 제 3 단 째에서, 제 2 단의 출력 데이터에 워크 키 K5를 사용하여 함수 π 2의 연산을 실시하고, 제 4 단째에서, 제 3 단의 출력 데이터에 함수 π 1의 연산을 행하고 있다.
이러한 4단의 연산이, 연산(24)에서 워크 키 K4 내지 K1을 사용하여 마찬가지로 행해진다.
또한, 상기한 암호 8단의 연산이 종속되어 있는 암호 8단(25)에서도 실행되어, 해독화된 상위 32비트, 하위 32비트의 합계 64비트 폭의 출력 데이터를 얻게된다. 또한, 암호 8단의 반복 회수는 암호 처리에서 실행된 암호 8단의 반복하는 회수와 같은 회수로 된다.
다음에, 연산단에서 행해지고 있는 연산의 상세를 암호 처리의 연산단(20)을 예를 들어 도 13을 참조하면서 상세히 설명한다.
초단의 함수 π 1의 연산에서는 입력된 32비트로 분할된 상위 비트는 연산되지 않고 그대로 출력되고, 상위 비트와 하위 비트의 배타적 논리합이 연산되어 하위 비트로서 출력된다.
계속해서, 제 2 단의 함수 π 2의 연산에서는 하위 32비트의 데이터 x에 워크키 K1이 가산되어, x+K1이 먼저 연산된다. 이어서, x+K1을 y로 했을 때에, y를 1비트 왼쪽 순회 시프트하고, 그 값에 y-1을 가산하여 z를 얻는다. 다음에, z를 4비트 왼쪽 순회 시프트하고, 그 값과 z의 배타적 논리합을 얻는다. 상기의 연산 결과와, 상위 32비트의 배타적 논리합이 연산되어, 연산된 상위 32비트의 데이터가 출력된다. 상기의 경우, 하위 32비트는 입력된 데이터가 연산되지 않고 그대로 출력된다.
또한, 제 3 단의 함수 π 3의 연산에서는 상위 32비트의 데이터 x에 워크 키 K2가 가산되어, x+K2가 먼저 연산된다. 이어서, x+K2를 y로 했을 때, y를 2비트 왼쪽 순회 시프트하고, 그 값에 y+1을 가산하여 z를 얻는다. 다음에, z를 8비트 왼쪽 순회시프트하고, 그 값과 z의 배타적 논리합 a를 얻는다.
또한, a에 워크 키 K3이 가산되어, a+K3이 감산된다. 이어서, a+K3을 b로 했을 때, b를 1비트 왼쪽 순회 시프트하여, 그 값에 -b를 가산하여 c를 얻는다. 다음에, a와 x의 비트마다의 논리합과, c를 16비트 왼쪽 순회 시프트한 결과의 배타적 논리합을 연산한다. 상기 연산 결과와, 하위 32비트의 데이터의 배타적 논리합을 연산하여, 연산된 하위 32비트의 데이터를 출력한다. 또한, 상위 32비트의 데이터는 연산되지 않고 그대로 상위 32비트의 출력 데이터로 된다.
그리고 또한, 제 4 단의 함수 π 4의 연산에서는 하위 32비트의 데이터 x에 워크 키 K4가 가산되어, x+K4가 먼저 연산된다. 이어서, x+K4를 y로 했을 때, y를 2비트 왼쪽 순회 시프트하여, 그 값에 y+1을 가산한다. 상기 연산 결과와, 상위 32 비트의 배타적 논리합이 연산되고, 연산된 상위 32비트의 데이터가 출력된다. 상기의 경우, 하위 32비트의 데이터는 연산되지 않고, 그대로 하위 32비트의 데이터로서 출력된다.
상기 연산에서, 워크 키 K1 내지 K4를 데이터에 가산함으로써, 문자를 다른 문자로 바꾸는 문자 처리가 행해지고, 데이터를 순회 시프트시킴으로써 문자의 위치를 바꾸는 위치 전환이 행해진다. 이와 같이, 글자 전환과 위치 전환의 알고리즘을 행함으로써 평문이 암호화된다.
또한, 해독화하는 경우에는 암호화와 반대의 글자 전환과 위치 전환의 알고리즘을 행함으로써 원래의 평문으로 해독할 수 있다.
다음에, 상술한 함수의 연산을 행하는 구성을 또한 상세히 설명하지만, 함수 π 2의 예를 도 14를 참조하여 설명하기로 한다.
도 14에서, 제 1 가산기 Add(80)에서, 하위 32비트의 입력 데이터 x와 32비트의 워크 키 K1이 가산되고, 가산 데이터 y가 출력된다. 상기 가산 데이터 y는 제 1 왼쪽 순회 시프트(81)에서 1비트 왼쪽 순회 시프트되는 것과 동시에, 제 2 가산기(82)에서, 제 1 왼쪽 순회 시프터(81)의 출력과 가산되는 상기 가산 결과에 제 3 가산기(84)에서 -1이 가산되어, 데이터 z가 연산된다. 상기 데이터 z는 제 2 왼쪽 순회 시프터(85)에서 4비트 왼쪽 순회 시프트되는 동시에, 배타적 논리합 회로(86)에 공급된다. 상기 배타적 논리합 회로(86)에는 제 2 왼쪽 순회 시프트(85)의 출력 데이터, 데이터 z, 상위 32비트 입력 데이터가 입력되고, 3개의 데이터의 배타적 논리합이 연산된다.
상기 연산 결과는 다음 단에 입력되는 상위 32비트 입력 데이터로 된다. 또한, 하위 32비트 입력 데이터는 연산되지 않고 다음 단에 입력되는 하위 32비트 입력 데이터로 된다.
다음에, 64비트 폭의 데이터 키와 256비트 폭의 시스템 키로부터 256비트 폭의 워크 키를 생성하는 키 스케쥴 처리의 구성을 도 15에 도시한다.
키 스케쥴 처리는 도 15에 도시된 바와 같이 4단의 연산단(26, 27)이 2단으로, 1단의 연산단(28)이 1단으로 종속접속된 구성으로 되어 있다. 또한, 4단의 연산단(26, 27)에서는 초단에서 함수 π 1의 연산이 행해지고, 2단째에서 함수 π 2의 연산이 행해지며, 3단째에서 함수 π 3의 연산이 행해지고, 4단째에서 함수 π 4의 연산이 행해진다.
이러한 연산 알고리즘은 상술된 암호처리의 알고리즘과 동일하기 때문에 그 설명은 생략하지만, 키 스케쥴 처리에서는 입력 데이터가 64비트의 데이터로 되어, 각각 32비트의 시스템 키 J1 내지 J8을 사용하여 함수 π 1 내지 함수 π 4의 연산이 행해져서, 각각 32비트의 8개의 워크 키 K1 내지 K8이 생성된다. 다만, 전체로 9단의 연산을 행하고 있고, 최종단에서 함수 π 1의 연산을 행하는 점에서, 상술한 암호 처리의 알고리즘과 달리하고 있다.
또한, 감산단(26)의 함수 π 2 연산 후의 상위 32비트 출력 데이터가 워크 키 K1로서 출력되고, 함수 π 3 감산 후의 하위 32비트 출력 데이터가 워크 키 K2로서 출력되며, 함수 π 4 연산 후의 상위 32비트 출력 데이터가 워크 키 K3로서 출력된다.
또한, 연산단(27)의 함수 π 1 연산 후의 하위 32비트 출력 데이터가 워크 키 K4로서 출력되고, 함수 π 2 연산 후의 상위 32비트 출력 데이터가 워크 키 K5로서 출력되며, 함수 π 3 연산 후의 상위 32비트 출력 데이터가 워크 키 K6로서 출력되고, 함수 π 4 연산 후의 상위 32비트 출력 데이터가 워크 키 K7로서 출력되며, 최종단(28)의 함수 π 1 연산 후의 하위 32비트 출력 데이터가 워크 키 K8로서 출력된다.
상술된, 도 11에 도시된 암호 처리와 도 13에 도시된 키 스케쥴 처리를 참조하면, 4단의 연산단의 구성, 즉 연산 알고리즘은 마찬가지로 되어 있고, 상기 4단의 연산단의 연산을 반복하여 실행함으로써, 암호 처리 혹은 키 스케쥴 처리를 실행할 수 있다. 이 때문에, 연산 코어를 도 16(a)에 도시된 바와 같이, 함수 π 1의 연산단, 함수 π 2의 연산단, 함수 π 3의 연산단, 함수 π 4의 연산단을 종속접속한 구성으로 하면, 연산 코어를 반복하여 실행함으로써, 암호 처리 혹은 키 스케쥴 처리를 실행할 수 있다.
또한, 상기 연산 코어는 도 20에 도시된 데이터 키와 시스템 키로부터 워크 키를 생성하는 동시에, CBC 모드 및 OFB 모드로 암호처리를 행하고 있는 암호화기에 상당하고, 암호화기 코어로 된다. 상기의 경우, 암호화기 코어에는 데이터 키 Ks1 내지 Ks4와 데이터 키 Ks5 내지 Ks8이 시분할로 공급된다.
또한, 도 12를 참조하면, 4단의 연산단의 구성, 즉 연산 알고리즘은 마찬가지로 되어 있고, 상기 4단의 연산단의 연산을 반복하여 실행함으로써, 해독 처리를 실행할 수 있다. 이 때문에, 해독 연산 코어를 도 16(b)에 도시된 바와 같이, 함수 π 4의 연산단, 함수 π 3의 연산단, 함수 π 2의 연산단, 함수 π 1의 연산단을 종속접속한 구성으로 하면, 해독 연산 코어를 반복하여 실행함으로써, 해독 처리를 실행할 수 있다.
또한, 상기 해독 연산 코어는 도 20에 도시된 CBC 모드 및 OFB 모드의 해독 처리를 행하고 있는 해독화기에 상당하고, 해독화기 코어로 된다. 상기의 경우, 해독화기 코어에는 데이터 키 Ks8 내지 Ks5과 데이터 키 Ks4 내지 Ks1이 시분할로 공급된다.
상기와 같이, 암호화기 코어를 반복하여 실행함으로써 암호 처리 및 키 스케쥴을 알고리즘을 실행할 수 있고, 해독화기 코어를 반복하여 실행함으로써 해독 알고리즘을 실행할 수 있다.
이상, 본 발명의 해독화 방법을 실행하는 해독 장치의 설명을 하였지만, 본 발명의 전자 기기는 이러한 해독 장치를 적어도 구비하고 있는 튜너나 텔레비전 장치 등이다.
또한, 이상 설명에서는 64비트 블럭의 암호문을 64비트의 데이터 키 및 256 비트의 시스템 키를 사용하여 64비트 블럭의 평문을 생성하는 것으로 하여 설명하였지만, 본 발명이 이들의 수치에 한정되지 않고, 임의의 수치로 할 수 있다.
또한, 본 발명은 상술된 위치 전환 및 글자 전환을 반복하도록 한 암호화· 해독화 방식에 한정되지 않고, 다른 암호화· 해독화 방식에도 적용할 수 있다.
본 발명은 상기와 같이 구성되어 있기 때문에, 해독 처리를 행하기 위한 키 정보가 저장되어 있는 메모리 수단의 판독 및 기록 제어를 적절히 행할 수 있어, 메모리 제어를 용이하게 행할 수 있는 해독화 방법으로 할 수 있다. 따라서, 수신 측에서 실시간으로 모든 해독 처리를 실행하는 것이 가능한 해독화 방법으로 할 수 있다.
또한, 이러한 해독화 방법을 실행하는 해독 수단을 구비하는 전자 기기에서의 메모리 제어 수단의 구성을 작게 할 수 있기 때문에, 전자 기기를 소형이며 또는 염가로 제공할 수 있게 된다.
도 1은 본 발명의 해독화 방법의 실시 형태인 해독 장치의 구성예를 도시한 블럭도.
도 2는 도 1에 도시된 해독 장치에서 IDT의 구성을 도시한 블럭도.
도 3은 도 1에 도시된 CPU로부터 본 해독 장치에서의 레지스터의 메모리 공간을 도시한 도표.
도 4는 도 2에 도시된 IDT의 비교기 CP0 내지 CP11의 논리표를 도시한 도표.
도 5는 도 2에 도시된 IDT의 PE의 논리표를 도시한 도표.
도 6은 도 1에 도시된 해독 장치에서, 입력 데이터의 헤더중의 정보로부터 간접 검색 방법에 의해 데이터 키를 검색하는 방법을 설명하기 위한 도.
도 7은 PID 테이블 내에 PID가 중복되어 있는 경우의 동작을 설명하기 위한 도.
도 8은 PID 테이블 중에 해당하는 PID가 존재하지 않는 경우의 동작을 설명하기 위한 도.
도 9는 도 1에 도시된 해독 장치에서의 DPMEM의 리드 타이밍의 예를 도시한 도.
도 10은 도 1에 도시된 해독 장치의 해독 플로우를 도시한 플로우챠트.
도 11은 암호 처리의 구성을 도시한 도.
도 12는 해독 처리의 구성을 도시한 도.
도 13은 암호 처리에서의 기본 함수의 상세를 도시한 도.
도 14는 기본 함수 중의 함수 π 2를 연산하기 위한 상세한 구성을 도시한 도.
도 15는 키 스쥴 처리의 구성을 도시한 도.
도 16은 암호화기 코어와 해독화기 코어의 구성을 도시한 도.
도 17은 종래의 암호화의 알고리즘을 도시한 도.
도 18은 종래의 해독화의 알고리즘을 도시한 도.
도 19는 CBC 모드와 OFB 모드의 암호화 이용 모드의 구성을 도시한 도.
도 20은 종래의 암호화· 해독화 방식의 구성을 도시한 도.
※ 도면의 주요 부분에 대한 부호의 설명 ※
1 : 수신 데이터 2 : 출력 데이터
3, 4 : 스위칭 수단 5 : 해독화기
6 : 레지스터 7, 9, 86 : 배타적 논리합 회로
8 : 암호화기 10 : CPU
11 : 비교기 12 : AND 게이트
13, 14 : OR 게이트 15 : 인버터
16 : IDT 17 : DPMEM
20 내지 28 : 연산단 39 : PE
40 : ADEC 41 내지 52 : 플립플롭
61 내지 72 : 비교기 80, 82, 84 : 가산기
81, 85 : 왼쪽 순회 시프터

Claims (5)

  1. 메모리 수단에 복수의 키 정보를 기록하는 기록 스텝과,
    입력 데이터 중의 지시 데이터에 기초하여 어느 하나의 키 정보를, 상기 메모리 수단으로부터 판독하는 판독 스텝과,
    상기 판독 스텝에서 판독된 키 정보에 기초하여 상기 입력 데이터를 해독하는 해독 스텝으로 구성되고,
    상기 판독 스텝에서는 상기 지시 데이터에 의해 키 테이블을 참조하여 상기 메모리 수단으로부터 판독하는 키 정보를 검색하고,
    상기 기록 스텝의 실행 기간과, 상기 판독 스텝의 실행 기간이 겹친 경우로서, 기록 어드레스와 판독 어드레스가 일치하는 경우는, 상기 기록 스텝의 실행을 금지하도록 하는 것을 특징으로 하는, 해독화 방법.
  2. 복수의 키 정보를 기억하고 있는 메모리 수단으로부터, 입력 데이터 중의 지시 데이터에 기초하여 어느 하나의 키 정보를 판독하는 판독 스텝과,
    상기 판독 스텝에서 판독된 정보에 기초하여 상기 입력 데이터를 해독하는 해독 스텝으로 구성되고,
    상기 판독 스텝에서는, 상기 지시 데이터에 의해 키 테이블을 참조함으로써, 상기 메모리 수단으로부터 판독하는 키 정보를 검색하고, 상기 지시 데이터에 해당하는 상기 키 정보를 판독하기 위한 키 어드레스가, 상기 키 테이블에 2개 이상 존재하는 경우는, 가장 적은 키 어드레스를 선택하는 것을 특징으로 하는, 해독화 방법.
  3. 복수의 키 정보를 기억하고 있는 메모리 수단으로부터, 입력 데이터 중의 지시 데이터에 기초하여 어느 하나의 키 정보를 판독하는 판독 스텝과,
    상기 판독 스텝에서 판독된 키 정보에 기초하여 상기 입력 데이터를 해독하는 해독 스텝으로 구성되고,
    상기 판독 스텝에서는, 상기 지시 데이터에 의해 테이블을 참조함으로써, 상기 메모리 수단으로부터 판독된 키 정보의 키 어드레스를 검색하고, 상기 지시 데이터에 의해 참조되는 키 어드레스가 상기 테이블에 존재하지 않는 경우는, 키 어드레스의 검색을 행하지 않도록 한 것을 특징으로 하는, 해독화 방법.
  4. 초기 설정을 행하는 초기 스텝과,
    메모리 수단에 복수의 키 정보를 기록하는 기록 스텝과,
    상기 메모리 수단으로부터, 입력 데이터 중의 지시 데이터에 기초하여 어느 하나의 키 정보를 판독하는 판독 스텝과,
    상기 판독 스텝에서 판독된 키 정보에 기초하여 상기 입력 데이터를 해독하는 해독 스텝으로 구성되고,
    상기 판독 스텝에서는, 상기 지시 데이터에 의해 키 테이블을 참조함으로써, 상기 메모리 수단으로부터 판독하는 키 정보의 키 어드레스를 검색하고, 초기화 기간 내에 있어서는, 검색한 결과, 해당하는 키 어드레스가 없도록, 상기 초기 스텝에서 초기 처리되는 것을 특징으로 하는, 해독화 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 기재된 해독화 방법을 실행하는 해독 수단을 적어도 구비하고 있는 전자 기기.
KR1019970003379A 1996-02-02 1997-01-31 해독화방법및전자기기 KR100458339B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP03909996A JP3769804B2 (ja) 1996-02-02 1996-02-02 解読化方法および電子機器
JP96-039099 1996-02-02

Publications (2)

Publication Number Publication Date
KR970063005A KR970063005A (ko) 1997-09-12
KR100458339B1 true KR100458339B1 (ko) 2005-04-06

Family

ID=12543639

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970003379A KR100458339B1 (ko) 1996-02-02 1997-01-31 해독화방법및전자기기

Country Status (7)

Country Link
US (1) US6014442A (ko)
JP (1) JP3769804B2 (ko)
KR (1) KR100458339B1 (ko)
CN (1) CN1108040C (ko)
ID (1) ID15875A (ko)
SG (1) SG87756A1 (ko)
TW (1) TW336305B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11838402B2 (en) 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4273535B2 (ja) 1998-05-12 2009-06-03 ソニー株式会社 データ伝送制御方法、データ伝送システム、データ受信装置及びデータ送信装置
JP3816689B2 (ja) * 1999-03-31 2006-08-30 株式会社東芝 情報配信装置、情報受信装置及び通信方法
DE19935286A1 (de) * 1999-07-27 2001-02-01 Deutsche Telekom Ag Verfahren zur sicheren verteilten Generierung eines Chiffrierschlüssels
KR100605825B1 (ko) * 1999-09-14 2006-07-31 삼성전자주식회사 하드 디스크 드라이브를 구비하는 방송 수신 시스템의 복사 방지장치 및 방법
US7421411B2 (en) * 2001-07-06 2008-09-02 Nokia Corporation Digital rights management in a mobile communications environment
JP4447908B2 (ja) 2001-08-24 2010-04-07 トムソン ライセンシング 新しい装置を導入するローカルデジタルネットワーク及び方法と、そのネットワークにおけるデータ放送及び受信方法
DE10161769A1 (de) * 2001-12-15 2003-07-03 Bosch Gmbh Robert Verfahren und Vorrichtung zur Bereitstellung von Schlüsselfeldern für ein Ver- bzw. Entschlüsselungsmodul zur Echtzeitverschlüsselung von Daten, insbesondere multimedialer Daten
JP2005527853A (ja) * 2002-05-23 2005-09-15 アトメル・コーポレイション 高度暗号化規格(aes)のハードウェア暗号法エンジン
JP2007181198A (ja) * 2006-12-04 2007-07-12 Sony Corp データ伝送制御方法
JP5100497B2 (ja) * 2008-05-14 2012-12-19 三菱電機株式会社 復号装置
US8958550B2 (en) * 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0193537B1 (en) * 1984-08-17 1992-04-15 Computerized Security Systems Incorporated Microcomputer controlled locking system
JPH0685517B2 (ja) * 1985-06-28 1994-10-26 ソニー株式会社 情報サ−ビスシステム
JPS6313639A (ja) * 1986-07-05 1988-01-20 Sanden Corp ピストンリングの加工方法
JP2760799B2 (ja) * 1988-04-28 1998-06-04 株式会社日立製作所 暗号方式
US5237611A (en) * 1992-07-23 1993-08-17 Crest Industries, Inc. Encryption/decryption apparatus with non-accessible table of keys
US5661799A (en) * 1994-02-18 1997-08-26 Infosafe Systems, Inc. Apparatus and storage medium for decrypting information
US5481610A (en) * 1994-02-28 1996-01-02 Ericsson Inc. Digital radio transceiver with encrypted key storage
US5509071A (en) * 1994-04-01 1996-04-16 Microelectronics And Computer Technology Corporation Electronic proof of receipt
US5539828A (en) * 1994-05-31 1996-07-23 Intel Corporation Apparatus and method for providing secured communications
US5692049A (en) * 1995-02-13 1997-11-25 Eta Technologies Corporation Personal access management system
US5812666A (en) * 1995-03-31 1998-09-22 Pitney Bowes Inc. Cryptographic key management and validation system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11838402B2 (en) 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption

Also Published As

Publication number Publication date
CN1108040C (zh) 2003-05-07
SG87756A1 (en) 2002-04-16
ID15875A (id) 1997-08-14
JPH09212090A (ja) 1997-08-15
US6014442A (en) 2000-01-11
KR970063005A (ko) 1997-09-12
JP3769804B2 (ja) 2006-04-26
TW336305B (en) 1998-07-11
CN1167304A (zh) 1997-12-10

Similar Documents

Publication Publication Date Title
JP2541480B2 (ja) 擬似乱数発生装置
US6504930B2 (en) Encryption and decryption method and apparatus using a work key which is generated by executing a decryption algorithm
US6295606B1 (en) Method and apparatus for preventing information leakage attacks on a microelectronic assembly
AU767323B2 (en) Block encryption device using auxiliary conversion
CN1992589B (zh) 加扰和解扰数据单元的方法
US20110228928A1 (en) Selection of a lookup table with data masked with a combination of an additive and multiplicative mask
US5008938A (en) Encryption apparatus
JP4235174B2 (ja) 暗号化復号化装置、暗号化装置、復号化装置、及び送受信装置
KR100458339B1 (ko) 해독화방법및전자기기
GB2398213A (en) Encryption using the KASUMI algorithm
US8995666B2 (en) Key scheduling device and key scheduling method
US20010033654A1 (en) W-EC1 encryption and decryption method and system
US6931127B2 (en) Encryption device using data encryption standard algorithm
KR0137709B1 (ko) 암호화된 컴퓨터 목적 코드의 암호 해독 방지 방법
KR100930036B1 (ko) 암호화된 프레임의 다음 패킷 내의 중복된 스트림 암호 정보
US20040223609A1 (en) Data encryption method
CN109450614B (zh) 一种适用于高速数据传输通路的加密和解密方法
US20120321079A1 (en) System and method for generating round keys
JP4708914B2 (ja) 解読化方法
KR100845835B1 (ko) 다단계 암호화 및 복호화 시스템
US7583800B2 (en) Encryption apparatus and method in a wireless communications system
KR100226867B1 (ko) 무선 통신의 스트림 암호 시스템
JP2000076144A (ja) 論理回路、マイクロコンピュータ、および論理回路・記憶回路間の通信方法
JPH09233065A (ja) 暗号化装置及び暗号化方法
KR100447146B1 (ko) 암호화장치

Legal Events

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

Payment date: 20111109

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20121105

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee