KR20020060237A - 키스트림 생성방법 및 장치 - Google Patents

키스트림 생성방법 및 장치 Download PDF

Info

Publication number
KR20020060237A
KR20020060237A KR1020027006549A KR20027006549A KR20020060237A KR 20020060237 A KR20020060237 A KR 20020060237A KR 1020027006549 A KR1020027006549 A KR 1020027006549A KR 20027006549 A KR20027006549 A KR 20027006549A KR 20020060237 A KR20020060237 A KR 20020060237A
Authority
KR
South Korea
Prior art keywords
stage
feedback shift
register
shift register
randomization
Prior art date
Application number
KR1020027006549A
Other languages
English (en)
Other versions
KR100756435B1 (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 KR20020060237A publication Critical patent/KR20020060237A/ko
Application granted granted Critical
Publication of KR100756435B1 publication Critical patent/KR100756435B1/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/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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • H04L9/0668Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Electrical Discharge Machining, Electrochemical Machining, And Combined Machining (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)
  • External Artificial Organs (AREA)
  • Selective Calling Equipment (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은, 2진 데이터를 암호화하고 해독하는데 이용하기 위한 암호 단방향 펑크션(키 또는 키스트림 생성기)의 생성방법 및 장치를 제공한다. 다중 피드백 시프트 레지스터(예컨대, 110, 120, 130)를 이용하여 비선형 키 또는 키스트림 생성 알고리즘이 제공된다. 피드백 시프트 레지스터(110, 120, 130)는 확장된 갈루아체 GF(2m)이라 불리우는 고등수학 구성개념을 이용하여 구성된다. 상기 키 또는 키스트림은 정적 피드백 시프트 레지스터(110)와 동적 피드백 시프트 레지스터(120, 13)의 조합인 다중 피드백 시프트 레지스터(110, 120, 130)의 출력(RGA, RGB, RGC)의 비선형 펑크션으로 생성된다. 암호키 또는 해독키로서 이용하기 위한 암호적으로 강한 키스트림(100)을 생성하기 위해 많은 계수를 갖는 조밀 원시 다차함수가 이용된다.

Description

키스트림 생성방법 및 장치{METHODS AND APPARATUS FOR KEYSTREAM GENERATION}
2진 데이터는, 인터넷 프로토콜이나 다른 순수한 데이터 서비스 뿐만 아니라, 디지털화된 비디오 또는 오디오를 포함한다. 비록 본 발명이 케이블 및 위성 텔레비전 시스템에서의 프리미엄 서비스에 대한 액세스를 제어하는데 적용될 지라도, 전자형태로 전달되는 다른 정보의 보호에도 적용될 수 있다.
특히, 본 발명은 다중 피드백 시프트 레지스터를 이용하여 비선형 키스트림(keystream) 생성 알고리즘을 제공한다. 피드백 시프트 레지스터는 확장된 갈루아체(Galois Field) GF(2m)라 불리우는 고등수학 구성개념을 이용하여 구성된다. 상기 키스트림은 정적 피드백 시프트 레지스터와 동적 피드백 시프트 레지스터의 조합인 다중 피드백 시프트 레지스터의 출력의 비선형 펑크션(non-linear function)으로 생성된다. 암호키 또는 해독키로서 이용하기 위한 암호적으로 강한 키스트림을 생성하기 위해 많은 계수를 갖는 조밀 원시 다차함수가 이용된다.
암호문(암호화된 데이터)을 생성하기 위해 키스트림(암호키)을 갖는 2진 데이터를 처리함으로써 상기 2진 데이터가 스크램블(암호화)되는 한 방식이 있다. 키스트림은 의사무작위 시퀀스(pseudorandom sequences)에 의해 생성될 수 있는 비트 시퀀스에 기초한다. 다음에, 암호문은 동일한 키스트림을 이용하여 해독될 수 있다. 데이터 콘텐츠 소유자는 유일하면서 복사가 어려운 복사방지 키 유도에 이용된 기술을 원한다. 이러한 목적을 달성하기 위해, 암호 단방향 해쉬 펑크션에 대한 입력으로서 그 데이터를 이용하고, 다른 2진 데이터를 위한 암호키로서 그 펑크션의 출력을 이용하여 해쉬 펑크션을 통해 2진 데이터가 처리될 수 있다.
통상 양도된 미국특허 제4,860,353호에는 DFAST(Dynamic feedback arrangement scrambling technique) 키스트림 생성기가 기술되어 있다. DFAST는 동적 피드백 시프트 레지스터를 이용하고, 그 구조는 다차함수(polynomial) 코드신호에 의해 변경된다. 상기 다차함수 코드신호는 피드백 시프트 레지스터의 소정 레지스터 스테이지로부터 시프트된 데이터 비트의 콘텐츠에 따라 변경된다.
그것은, DFAST 및 다른 종래의 키스트림 생성기에 의해 제공된 것과 비교된 바와 같이 강화된 암호 및 안정된 실행특징을 갖는 키스트림 생성을 제공하는데 장점이 있다.
또한, 확장된 갈루아체 GF(2m)를 이용하여 구성된 다중 피드백 시프트 레지스터를 이용하여 키스트림 생성을 제공하는데 장점이 있다. 확장된 갈루아체 수학은 소프트웨어 시스템의 실행에 적합하다. 더욱이, 피드백 시프트 레지스터의 구조가 다차함수 코드신호에 의해서도 변경되는 키스트림 생성을 제공하는데 장점이 있다. 심지어, 비선형방식으로 피드백 시프트 레지스터의 소정 레지스터 스테이지로부터의 데이터 비트를 결합하기 위해 몇개의 랜덤화(예컨대, 치환(permutation))를 이용하여 키스트림 생성을 제공하는데 장점이 있다.
본 발명은 상기한 바와 같은 장점 및 또 다른 장점을 제공한다. 특히, 본 발명은 통상 양도된 미국특허 제4,860,353호에 기술된 DFAST 기술의 확장 및 개선을 제공한다. 본 발명에 따른 개선된 DFAST는 DFAST와 비교된 바와 같이 강화된 암호 및 안정된 실행특징을 갖는 키스트림을 제공한다. 본 발명은 POD(Point of deployment)성능을 갖는 케이블 텔레비전 시스템 또는 호스트에 사용하는데 적합하다. 본 발명은 미국 콜로라도의 Cable Televison Laboratories, Inc.(CableLabsTM)에 의해 개발되고 2000년 1월 POD 복사방지 표준에 통합된 OpenCableTM셋톱박스 및 POD에 사용하는데 특히 적합하다.
본 발명은, 보안 및 암호분야에 관한 것으로, 2진 데이터를 암호화하거나 해독하는데 이용하기 위한 임의의 암호 단방향 펑크션(function; 즉, 키스트림)을 생성하기 위한 방법 및 장치에 관한 것이다.
도 1은 본 발명의 블록도를 나타낸 도면,
도 2는 본 발명의 실시예를 나타낸 도면,
도 3은 본 발명의 다른 실시예를 나타낸 도면,
도 4는 본 발명에 따른 정적 피드백 시프트 레지스터의 실행을 나타낸 도면,
도 5는 본 발명에 따른 동적 피드백 시프트 레지스터의 실행을 나타낸 도면,
도 6은 본 발명에 따른 동적 피드백 시프트 레지스터의 또 다른 실행을 나타낸 도면이다.
본 발명은, 2진 데이터를 암호화하거나 해독하는데 이용하기 위한 임의로 나타나는 출력을 생성하는 암호 단방향 펑크션의 생성방법 및 장치를 제공한다. 특히, 본 발명은 다중 피드백 시프트 레지스터를 이용하여 비선형 키 생성 알고리즘을 제공한다. 통상, 키스트림은 배타 OR동작을 이용하여 데이터의 스트림을 암호 또는 해독하기 위해 이용된 긴 일련의 랜덤화된 비트이다. 키스트림 생성기는 이들 비트의 소스이고, 이 키스트림 생성기로부터 출력된 제1세트의 비트는 일정한 크기의 실제 암호키로서 이용될 수 있다. 따라서, 용어 "키"는 키스트림 생성기로부터 출력된 고정세트의 비트(예컨대, 56비트)를 의미할 수 있다. 피드백 시프트 레지스터는 확장 갈루아체 GF(2m)라 불리우는 고등수학 구성개념을 이용하여 구성된다. 그 키는, 정적 피드백 시프트 레지스터와 동적 피드백 시프트 레지스터의 조합인 다중 피드백 시프트 레지스터의 출력의 비선형 펑크션으로 생성된다. 암호키 또는 해독키로서 이용하기 위한 암호적으로 강한 키를 생성하기 위해 많은 계수를 갖는 조밀 원시 다차함수가 이용된다.
본 발명의 실시예에 있어서, 키는 다중 피드백 시프트 레지스터를 이용하여 생성된다. 각 피드백 시프트 레지스터는 클럭신호에 따라 데이터 비트가 연속적으로 시프트되는 입력, 중개 및, 출력 스테이지를 갖춘다. 다중 피드백 시프트 레지스터의 소정 레지스터 스테이지로부터의 데이터 비트는 제1랜덤화 스테이지에 제공된다. 제1랜덤화 스테이지의 출력은 제2랜덤화 스테이지에 제공된다. 제2랜덤화 스테이지의 출력과 피드백 시프트 레지스터의 또 다른 소정 레지스터 스테이지로부터의 데이터 비트는 적어도 하나의 추가적인 랜덤화 스테이지에 제공된다. 데이터 비트는 각 랜덤화 스테이지에서 치환되고 최종 랜덤화 스테이지 출력은 키스트림을 제공한다. 키스트림의 마지막 56비트는 최종 키로 이용된다.
바람직한 실시예에 있어서는, 제3랜덤화 스테이지가 최종 랜덤화 스테이지이다.
적어도 하나의 피드백 시프트 레지스터의 구조는 다차함수 코드신호 생성기에 의해 생성된 다차함수 코드신호에 따라 변경된다. 또한, 다차함수 코드신호를 생성하기 위해 이용된 다차함수 코드가 변경된다.
피드백 시프트 레지스터는 복수의 동적 피드백 시프트 레지스터와 적어도 하나의 정적 피드백 시프트 레지스터로 이루어진다.
바람직할 실시예에 있어서, 피드백 시프트 레지스터는 제1동적 피드백 시프트 레지스터와, 제2동적 피드백 시프트 레지스터 및, 정적 피드백 시프트 레지스터로 이루어진다. 시드(seed) 데이터가 입력버퍼 내로 입력된다. 입력버퍼로부터의 제1부분의 시드 데이터는 제1동적 피드백 시프트 레지스터에 제공되고 입력버퍼로부터의 제2부분의 시드 데이터는 제2동적 피드백 시프트 레지스터에 제공된다. 입력버퍼로부터의 제3부분의 시드 데이터는 정적 피드백 시프트 레지스터에 제공된다.
동적 피드백 시프트 레지스터의 데이터 비트는 클럭신호에 따라 각 레지스터 스테이지로부터 연속적으로 시프트된다. 다수의 유한체 가산기가 동적 피드백 시프트 레지스터의 소정 쌍의 레지스터 스테이지 사이에 배열되어, 각 가산기에 대한 어느 하나의 입력이 선행 레지스터로부터 제공되고 각 가산기의 또 다른 입력이 유한체 다중화기를 통해 출력 스테이지의 출력단자로부터 피드백된다.
제1랜덤화 스테이지는 소정 레지스터 스테이지로부터의 데이터 비트를 치환하기 위한 랜덤화 테이블(예컨대, 치환 테이블)로 이루어진다. 제2랜덤화 스테이지는 제2랜덤화 스테이지의 출력과 피드백 시프트 레지스터의 또 다른 소정 레지스터 스테이지로부터의 데이터 비트를 결합하도록 비선형 혼합 펑크션으로 이루어진다. 제3랜덤화 스테이지는 다중 비선형 S-박스로 이루어진다. S-박스는 8*8 S-박스이다. 제3랜덤화 스테이지는 256 비선형 8*8 S-박스로 이루어진다.
바람직한 실시예에 있어서, 피드백 시프트 레지스터는 확장된 갈루아체 GF(2m)을 이용하여 구성된다. 예컨대, 확장된 갈루아체 GF(2^8)가 이용된다. 피드백 시프트 레지스터에 이용된 다차함수는 원시이고 최대길이 출력 시퀀스를 보장하도록 약분될 수 없다.
다른 실시예에 있어서, 제1랜덤화 스테이지는 소정 레지스터 스테이지로부터의 데이터 비트를 치환하기 위한 다중 랜덤화 테이블로 이루어진다. 예컨대, 8개의 랜덤화 테이블이 제1랜덤화 스테이지에 제공된다. 피드백 시프트 레지스터로부터의 데이터 비트는 제1랜덤화 스테이지에 입력하기 전에 다중화된다.
또 다른 실시예에 있어서, 제3랜덤화 스테이지로부터의 출력은 프리(pre)-키스트림 레지스터에 제공된다. 상기 프리-키스트림 레지스터로부터의 출력의 대체비트가 선택 체인버퍼에 제공된다. 선택 체인버퍼로부터의 출력은, 다차함수 코드신호를 생성하는데 이용하기 위한 특정 다차함수를 디코드하는 디코딩 로직유닛에 제공되고, 상기 다차함수 코드신호는 적어도 어느 하나의 피드백 시프트 레지스터에 제공된다. 상기 프리-키스트림으로부터의 출력의 나머지 비트는 키스트림 레지스터에 제공된다. 키스트림 레지스터의 출력은 키스트림을 제공한다. 제3랜덤화 스테이지는 다중 비선형 S-박스로 이루어진다.
어떤 S-박스의 출력은 코드스트림 레지스터에 제공된다. 이 출력은 코드스트림 레지스터를 통해 클럭되고 피드백 데이터 비트를 생성하기 위해 비-2진 가산기를 통해 적어도 어느 하나의 피드백 시프트 레지스터로부터 시프트된 데이터 비트에 가산된다. 피드백 데이터 비트는 적어도 어느 하나의 피드백 시프트 레지스터의 입력 스테이지와 소정 중개 스테이지에 제공된다.
192비트 할당 시드 입력의 사용이 제안되었지만, 다른 입력키 길이도 사용될 수 있다. 192비트 입력의 사용은 출력 키스트림으로부터 56비트 키를 생성한다. 128비트의 1/2을 복사함으로써 128비트 입력으로부터 192비트 입력이 유도된다.
갈루아체 28동작의 사용은, 8, 16 또는 32비트 명령 폭을 이용하는 CPU상의 실행에 적합하다. 비록 본 발명이 소프트웨어에서의 실행에 대해 기술했을 지라도, 하드웨어에서의 실행에도 쉽게 적용될 수 있다.
본 발명은 다중 피드백 시프트 레지스터를 이용하여 키를 생성하기 위한 방법 및 장치를 제공한다. 피드백 시프트 레지스터는 확장된 갈루아체 GF(2m)라 불리우는 고등수학 구성개념을 이용하여 구성된다. 키는 정적 피드백 시프트 레지스터와 동적 피드백 시프트 레지스터의 조합인 다중 피드백 시프트 레지스터의 출력의 비선형 펑크션으로 생성된다. 암호키 또는 해독키로서 이용하기 위한 암호적으로 강한 키스트림을 생성하기 위해 많은 계수를 갖는 조밀 원시 다차함수가 이용된다.
계산적으로 제한된 적대자에 대해 임의로 나타내려 할 경우, 할당된 시드 키로부터 키스트림이 의사무작위로 생성된다. 할당된 시드 키값은, 예컨대 호스트 인증 및 키 교환 프로세스로부터 유도된다. 192비트 할당 시드 입력의 사용이 제안되었지만, 다른 입력키 길이도 사용될 수 있다. 192비트 입력의 사용은 56비트 키스트림을 생성한다. 128비트의 1/2을 복사함으로써 128비트 입력으로부터 192비트 입력이 유도된다.
도 1에 나타낸 바와 같은 본 발명의 실시예에 있어서, 다중 피드백 시프트 레지스터를 이용하여 키스트림(100)이 생성된다. 각 피드백 시프트 레지스터는, 클럭신호에 따라 데이터 비트가 연속적으로 시프트되는 입력, 중개 및, 출력 스테이지를 갖는다. 다중 피드백 시프트 레지스터의 소정 레지스터 스테이지로부터의 데이터 비트(10)는 제1랜덤화 스테이지(20)에 제공된다. 제1랜덤화 스테이지(20)의 출력은 제2랜덤화 스테이지(30)에 제공된다. 제2랜덤화 스테이지(30)의 출력과 피드백 시프트 레지스터의 또 다른 소정 레지스터 스테이지로부터의 데이터 비트는 적어도 하나의 추가적인 랜덤화 스테이지에 제공된다. 데이터 비트가 각 랜덤화 스테이지에서 치환되고 최종 랜덤화 스테이지(40)의 출력이 키스트림(100)을 제공한다.
도 1에는 3개의 랜덤화 스테이지(20, 30, 40)가 도시되어 있으며, 제3랜덤화 스테이지가 최종 랜덤화 스테이지(40)가 된다. 그러나, 원하는 키스트림(100)의 실행 및 암호 보전에 따라, 다수의 랜덤화 스테이지가 제공될 수 있다.
적어도 어느 하나의 피드백 시프트 레지스터의 구조는, 다차함수 코드신호 생성기(예컨대, 디코딩 로직유닛(80))에 의해 생성된 다차함수 코드신호(90)에 따라 변경된다. 또한, 다차함수 코드신호(90)를 생성하기 위해 이용된 다차함수 코드가 변경된다.
피드백 시프트 레지스터(FSR)는 복수의 동적 피드백 시프트 레지스터(DFSR)와 적어도 하나의 정적 피드백 시프트 레지스터(SFSR)로 이루어진다. 2개의 DFSR은 병렬로 배열된다. 키스트림(100)은 양쪽 SFSR 및 DFSR의 출력의 비선형 펑크션으로 생성된다. DSFR은, 다차함수 코드신호(90)에 의해 구조가 변경되는 동적 시프트 레지스터이다. 다차함수 코드신호(90)는 소정 레지스터 스테이지로부터 시프트된 데이터 비트에 따라 그 자신이 변경된다. 만약 다차함수 코드가 변경되면, 키스트림(100)을 복사하는 것이 더 어렵다. 다차함수 코드(90)를 변경시키는 비트는 키스트림(100)에 가급적이면 포함되지 않는다.
도 2에 나타낸 바와 같은 바람직한 실시예에 있어서, 피드백 시프트 레지스터는 정적 피드백 시프트 레지스터(A; 110으로 표기된)와, 제1동적 피드백 시프트 레지스터(B; 120으로 표기된) 및, 제2동적 피드백 시프트 레지스터(C; 130으로 표기된)로 이루어진다. 시드 데이터는 입력버퍼(140) 내에 입력된다. 입력버퍼(140)의 콘텐츠(contents)는 키스트림 생성을 초기화하기 위해 시프트 레지스터(110, 120, 130) 내에 병렬로 로드된다. 입력버퍼(140)로부터의 제1부분의 시드 데이터는 제1동적 피드백 시프트 레지스터(B)에 제공되고, 입력버퍼로부터의 제2부분의 시드 데이터는 제2동적 피드백 시프트 레지스터(C)에 제공된다. 입력버퍼로부터의 제3부분의 시드 데이터는 정적 피드백 시프트 레지스터(A)에 제공된다.
도 2에 나타낸 실시예에 있어서, 피드백 시프트 레지스터(110, 120, 130; 각각 레지스터 A, B, C)는 확장된 갈루아체 GF(2m)을 이용하여 구성된다. 공지된 바와 같이, 갈루아체는 주어진 다차함수의 계수 및 루트를 고려하여 얻어진 수학분야의 확장이다. 본 발명의 피드백 시프트 레지스터에 이용된 다차함수는 원시이고 약분할 수 없다. 각각 그와 같은 시프트 레지스터는 최대길이 max_length = 2^(m*L) - 1의 시퀀스를 생성한다(여기서, L은 시프트 레지스터 스테이지의 수이다).
도면에서, RGA는 레지스터(A; 110)의 스테이지로부터의 출력을 나타내고, RGB는 레지스터(B; 120)의 스테이지로부터의 출력을 나타내며, RGC는 레지스터(C;130)의 스테이지로부터의 출력을 나타낸다. 예컨대, 도 2는 L개의 레지스터 스테이지(RGA0, RGA1, RGA2, ..., RGAL-1)로부터의 출력을 갖는 레지스터(A)를 나타낸다.
피드백 시프트 레지스터(110, 120, 130)의 데이터 비트는 클럭신호에 따라 각 레지스터 스테이지로부터 연속적으로 시프트된다. 다수의 유한체 가산기가 피드백 시프트 레지스터(110, 120, 130)의 소정 쌍의 레지스터 스테이지 사이에 배열되어, 각 가산기에 대한 어느 하나의 입력이 선행 레지스터 스테이지로부터 제공되고 각 가산기의 또 다른 입력이 유한체 다중화기를 통해 출력 스테이지의 출력단자로부터 피드백된다. 도 2의 각 피드백 시프트 레지스터(110, 120, 130)의 구조의 예가 도 4, 5, 6과 관련하여 이하에 상세히 기술된다. 본 발명은 피드백 시프트 레지스터의 소정 레지스터 스테이지로부터 시프트된 데이터 비트를 결합하기 위해 비선형 펑크션의 3개 이상의 스테이지를 이용한다.
제1랜덤화 스테이지(예컨대, 도 1의 제1랜덤화 스테이지(20))는 소정 레지스터 스테이지로부터의 데이터 비트를 치환하기 위한 하나 이상의 랜덤화 테이블(예컨대, "F1 테이블" 150~157)로 이루어진다. 도 2에 나타낸 예에서는, 8개의 F1 테이블(150~157)이 이용된다. 8개의 F1 테이블은 예시의 목적으로 사용될 뿐이고, 본 발명은 제1랜덤화 스테이지에 다수의 F1 테이블(또는, 유사한 비선형 치환 펑크션)을 이용하여 실시될 수 있다. F1 테이블(150~157)은 여러가지 피드백 시프트 레지스터로부터 시프트된 데이터 비트를 다른 값으로 맵(map)하기 위해 이용된 고정 치환 테이블이 된다. 각 F1 테이블에 대한 입력은 그들 소스 피드백 시프트 레지스터 구조의 적어도 하나의 배타-or 게이트에 의해 분리된다.
피드백 시프트 레지스터의 선택된 레지스터 스테이지로부터의 데이터 비트는 F1 테이블(150~157)에 입력하기 전에 다중화된다(예컨대, 다중화기(170~173)에서). 각기 다른 소정의 레지스터 스테이지로부터 시프트된 데이터 비트중에서 다중화기(170~173)에 의한 선택은 각기 다른 소정의 레지스터 스테이지로부터 시프트된 데이터 비트에 따라 콘트롤된다. 예컨대, 도 2에 있어서, 2개의 출력비트(RGAj, RGAi)는 레지스터(A)의 각기 다른 스테이지로부터 다중화기(170)로 직접 시프트된다. RGAj와 RGAi중 어느 하나가 레지스터(C; RGCk)로부터 시프트된 데이터 비트에 따라 다중화기(170)에 의해 선택된다. 다중화기(171, 172, 173)에서 동일한 동작이 발생한다. 다중화기(170, 171, 172, 173)의 출력은 각각 F1 테이블(150, 153, 154, 157)에 제공된다.
F1 테이블(151)은 레지스터(A; RGAm)의 스테이지로부터 직접 입력을 수신한다. F1 테이블(152)은 레지스터(B; RGBp)의 스테이지로부터 직접 입력을 수신한다. F1 테이블(155)은 레지스터(A; RGAmm)의 스테이지로부터 직접 입력을 수신한다. F1 테이블(156)은 레지스터(B; RGBpp)의 스테이지로부터 직접 입력을 수신한다.
제2랜덤화 스테이지(예컨대, 도 1의 제2랜덤화 스테이지(30))는 제2랜덤화 스테이지의 출력과 피드백 시프트 레지스터의 또 다른 소정의 레지스터 스테이지로부터의 데이터 비트를 결합하기 위해 하나 이상의 비선형 혼합 펑크션(예컨대, 161, 162)으로 이루어진다.
도 2에 나타낸 예에 있어서, 2개의 비선형 혼합 펑크션(161, 162)은 예시의 목적으로 사용될 뿐이다. 본 발명은 제2랜덤화 스테이지의 다수의 비선형 혼합 펑크션(또는, 유사한 비선형 치환 펑크션)을 이용하여 실시될 수 있다.
비선형 혼합 펑크션(161, 162)에 의해 사용된 비선형 로직은 적어도 4개의 탭 위치에서 결합하고, 그 몇몇은 F1 테이블 출력으로부터, 그리고 또 다른 몇몇은 소정의 FSR 스테이지로부터 직접 결합한다. 예컨대, 도 2는, 각각 레지스터(A)의 스테이지와 레지스터(B)의 스테이지로부터의 입력(RGAq'및 RGBq)을 직접 취할 뿐만 아니라, F1 테이블(153)로부터의 입력(RGB'i'/j')과, F1 테이블(152)로부터의 입력(RGB'p), F1 테이블(151)로부터의 입력(RGA'm) 및, F1 테이블(150)로부터의 입력(RGA'i/j)을 취하는 비선형 혼합 펑크션(161)을 나타낸다. 그와 같은 예에 있어서, 비선형 혼합 펑크션은 g0 = RGA'i/j RGB'i'/j' RGAq' RGB'p RGA'm RGBq가 된다. 이 식에서,은 필드성분 곱셈동작을 나타내고,은 필드성분 덧셈동작을 나타낸다(bit-wise XOR).
각각 레지스터(A)의 스테이지와 레지스터(B)의 스테이지로부터의 입력(RGAn'및 RGBn)을 직접 취할 뿐만 아니라, F1 테이블(154)으로부터의 입력(RGA'ii/jj)과, F1테이블(155)로부터의 입력(RGA'mm), F1 테이블(156)로부터의 입력(RGB'pp) 및, F1 테이블(157)로부터의 입력(RGB'ii'/jj')을 취하는 것으로 비선형 혼합 펑크션(162)이 도시되어 있다. 이들 입력은 펑크션 g1 = RGA'ii/jj RGB'ii'/jj' RGAn' RGB'pp RGA'mm RGBn에 의해 비선형 혼합 펑크션(162)에서 결합된다.
제3랜덤화 스테이지(예컨대, 도 1의 최종 랜덤화 스테이지(40))는 다중 비선형 치환박스(165; S-박스)로 이루어진다. S-박스(165)는 8*8 S-박스이다.
바람직한 실시예에 있어서, 제3랜덤화 스테이지는 256개의 비선형 동적 8*8 S-박스(165; 예컨대, S0, S1, S2, ..., S255)로 이루어진다. 동적 S-박스(165)의 모든 성분을 동작중 변경하는 것을 보장하도록 루프 카운터가 카운트 n(FSR사이클 수)으로 제공된다. 2개의 확장된 갈루아체 시프트 레지스터 구조의 적어도 하나의 소정 스테이지는 S-박스 어드레스 신호(S-박스 RAM(166)에 입력된 RGBx및 RGAy로 나타낸)의 랜덤화 바이트를 직접 제공한다. 비선형 혼합 펑크션(161, 162)으로부터의 이미 높게 랜덤화된 출력(g0 및 g1)은 S-박스(165)의 n번째 성분에 가산되고, FSR구조로부터 직접 RGBx/RGAy에 의해 인덱스된 S-박스(165)의 그 성분에 가산된다. 이것은 높게 랜덤화된 출력(Y0' 및 Y1')을 생성한다. 다음에, n으로 인덱스된 S-박스 성분과 Y0'/Y1'가 스왑(swap)되어 (S0, S1, ..., S255)의 모든 성분이 FSR 시프팅 동작의 첫번째 256사이클동안 영향을 준다.
다른 실시예에 있어서, 제3랜덤화 스테이지(예컨대, S-박스(165))로부터의 출력(45; 프리-키스트림)은 프리-키스트림 레지스터(50)에 제공된다. 상기 프리-키스트림 레지스터(50)로부터의 출력의 대체비트는 선택 체인버퍼(70)에 제공된다. 선택 체인버퍼(70)로부터의 출력은 디코딩 로직유닛(80)에 제공되고, 그 디코딩 로직유닛(80)은 다차함수 코드신호(90)를 생성하는데 이용하기 위한 특정 다차함수를 디코드하며, 상기 다차함수 코드신호(90)는 적어도 어느 하나의 동적 피드백 시프트 레지스터(120, 130)에 제공된다. 상기 프리-키스트림 레지스터(50)로부터의 출력의 나머지 비트는 키스트림 레지스터(60)에 제공된다. 키스트림 레지스터(60)의 출력은 키스트림(100)을 제공한다.
프리-키스트림(45)은 시스템 클럭율로 프리-키스트림 레지스터(50)로 클럭된다. 프리-키스트림(45)의 대체바이트는 반전 클럭(CLOCK)/2신호에 의해 선택 체인버퍼(70)에 시스템 클럭율의 1/2로 클럭된다. 프리-키스트림(45)의 나머지 바이트는 비반전 CLOCK/2신호에 의해 키스트림 레지스터(60)에 시스템 클럭율의 1/2로 클럭된다. 이것은, 키스트림(100)에 프리-키스트림(45)의 연속하는 바이트를 위치시키는 것을 피한다. 또한 이것은, 다차함수 코드신호(90)의 선택을 콘트롤하기 위한 신호로서 키스트림 바이트가 사용되지 않는 것을 보장한다. 프리-키스트림 레지스터(50)는 최종 출력 생성 스테이지이고 비반전 CLOCK/2의 클럭 사이클당 출력 데이터의 비트를 생성한다.
디코딩 로직유닛(80)은, 특정 다차함수 참에 대응하는 신호를 셋팅하면서 모든 또 다른 다차함수 신호 거짓을 셋팅하여, 특정 다차함수를 디코드하기 위해선택 체인버퍼(70)에 저장된 비트를 사용한다.
디코딩 로직유닛(80)은 2m개의 다른 다차함수 코드신호(90)까지 제공하기 위해 고정바이트 치환 테이블(F2 테이블(81))을 사용한다. F2 테이블(81)은 F1 테이블(150~157)과 유사한 고정 치환 테이블이다.
S-박스(165)의 소정 출력은 코드스트림 레지스터(175)에 제공된다. 이 출력은 코드스트림 레지스터(175; 코드스트림(48))를 통해 클럭되고 피드백 데이터 비트를 생성하기 위해 비-2진 가산기를 통해 적어도 어느 하나의 피드백 시프트 레지스터(120, 130)로부터 시프트된 데이터 비트에 가산된다. 피드백 데이터 비트는 적어도 어느 하나의 피드백 시프트 레지스터(120, 130)의 입력 스테이지와 소정 중개 스테이지에 제공된다. 코드스트림(48)은 프리-키스트림(45)과 구별되고 동적 FSR구조(120 및 130)에는 영향을 주고 정적 FSR구조(110)에는 영향을 주지 않는다.
도 3은 FSR에 이용된 다차함수가 확장된 갈루아체 GF(2^8)에 의해 구성되고, 모든 다차함수가 최대길이 시퀀스를 생성하기 위해 원시이면서 약분되지 않도록 선택되는 본 발명의 도 2 실시예의 특정 구성을 나타낸다. 이들 다차함수의 차수는 8이고, 따라서 각 FSR에 이용된 8-투플(tuple) 시프트 레지스터 셀의 8개의 스테이지가 존재한다. 다차함수의 불충분한 항은 암호 약화의 원인이 될 수 있기 때문에, 많은 계수를 갖는 조밀 원시 다차함수가 이용된다. 각 FSR의 각 스테이지로부터의 출력은 8비트(1바이트)를 갖는다.
3개의 FSR(110, 120, 130)은 초기화를 위해 총 192비트(18바이트)를 필요로 한다. 이들 192비트는, 입력버퍼(140)에 192비트의 입력을 제공하기 위해 복사된 128비트의 1/2과 함께 128비트의 입력으로부터 유도된다. 입력버퍼(140)는 각 FSR(110, 120, 130)에 대한 64비트의 입력을 제공한다.
이하의 테이블에 나타낸 바와 같이, 128비트(16바이트) 입력이 FSR 상태의 192비트(18바이트)를 초기화하기 위해 이용된다. 입력 바이트가 0에서 15로 번호 매겨지고, 3개의 FSR(A, B, C)을 초기화하기 위해 이용된다.
테이블 1: FSR(A, B, C)에 맵핑 입력
입력 바이트 이 바이트를 이용하여 초기화된 FSR 바이트
FSR 바이트 FSR 바이트
0 B 0 A 0
1 B 1 A 1
2 B 2 A 2
3 B 3 A 3
4 B 4
5 B 5
6 B 6
7 B 7
8 C 0 A 4
9 C 1 A 5
10 C 2 A 6
11 C 3 A 7
12 C 4
13 C 5
14 C 6
15 C 7
128비트 입력 데이터 시드가 입력버퍼(140)에 저장된다. 모든 비트의 입력시드가 동적 FSR구조(B 및 C) 내에 입력버퍼로부터 병렬로 로드된다. 또 다른제3입력(0~3 및 8~11 바이트)이 정적 FSR구조(A) 내에 병렬로 로드된다.
확장된 갈루아체 GF(2^8)에 구성된 각 FSR이 8개의 스테이지를 가질 경우, 각 스테이지의 입력 데이터는 크기가 64비트가 될 것이다(실제로 입력 크기가 128비트이기 때문에, 상기 선행 단계는 정보의 크기가 192에서 128로 감소될 필요가 있다).
도 2와 관련하여 상술한 바와 같이, 각 프리-키스트림 바이트(45)는 3-스테이지 비선형 펑크션 프로세서의 조합에 의해 생성된다. 제1랜덤화 스테이지에 있어서, 2개의 각 분리된 피드백 시프트 레지스터(A 및 B)로부터 시프트된 소정 데이터 바이트는 F1 테이블(150~157)에 의해 치환된다. 제2랜덤화 스테이지에 있어서, 비선형 펑크션(161, 162)은 레지스터(A 및 B)의 소정 스테이지로부터의 데이터 바이트를 직접 혼합할 뿐만 아니라 각기 다른 F1 테이블로부터의 데이터 바이트를 혼합하기 위해 사용된다. 제3랜덤화 스테이지에 있어서, 8*8 S-박스(165; S0=0, S1=1, ..., S255=255로 초기화된)는, 레지스터(A 및 B)로부터의 2바이트 데이터에 따라, 제2레벨의 비선형 펑크션으로부터의 출력을 치환하기 위해 사용된다.
정적 FSR구조(110; 레지스터(A)) 및 2개의 동적 FSR구조(120, 130; 레지스터(B, C))는 각각 도 4, 도 5 및 도 6에 도시되어 있다. 각각의 이들 구조는 L개의 스테이지를 포함하며, 여기서 L=8이고, 스테이지 0은 입력 스테이지가 되고, 스테이지 7은 출력 스테이지가 되며, 스테이지 1 내지 6은 중개 스테이지가 된다. 여기서 설명에 사용된 모든 다차함수는 설명의 목적을 위해 선택된다. 여러가지의 다른 다차함수가 본 발명을 실시하기 위해 사용된다.
모든 FSR은 확장된 갈루아체 GF(2^8)에 의해 구성된다. GF(2^8)의 성분은 이하의 식에 의해 생성된다:
F(X) = X^8 + X^4 + X^3 + X^2 + 1 = [100011101]
여기서, X는 GF(2^8)의 원시성분이다. 또한, GF(2^8) 내의 가산 및 다중화 동작이 117로 도 4에 기술된다.
도 4에 나타낸 정적 피드백 레지스터(110; 구조(A))에 있어서, 데이터 비트는 CLK단자에 인가된 클럭신호에 따라 각 스테이지로부터 연속적으로 시프트된다. 레지스터로부터 시프트된 데이터 바이트는 출력단자(RGA0내지 RGA7)에 각각 제공된다. 다수의 유한체 가산기(111~116)는 각각 소정 쌍의 레지스터 스테이지 사이에 위치된다. 도 4에 있어서, 유한체 가산기는 스테이지 0과 스테이지 1 사이(111), 스테이지 1과 스테이지 2 사이(112), 스테이지 3과 스테이지 4 사이(113), 스테이지 4와 스테이지 5 사이(114), 스테이지 5와 스테이지 6 사이(115) 및, 스테이지 6과 스테이지 7 사이(116)에 위치된다. 유한체 가산기는 스테이지 2와 3 사이에는 위치되지 않는다. 각 가산기(111~116)에 대한 어느 하나의 입력은 선행 레지스터 스테이지로부터 제공되고, 각 가산기에 대한 또 다른 입력은 각각 유한체 다중화기(91~97)를 통해 8개의 출력 스테이지의 출력단자(RGA7)로부터 피드백 된다.
비-2진 가산기(XOR)와 비-2진 다중화기의 펑크션은 통상 117로 도시되어 있다.
레지스터(A)의 구조는 고정, 비동적 다차함수 코드 및 계수를 갖는다. 레지스터(A)의 정적 FSR구조의 다차함수 코드는 다차함수 코드신호에 따라 변경되지 않는다. 도 4에 나타낸 바와 같이, A 레지스터에 사용된 다차함수는 이하와 같다:
레지스터 구조 Poly_A = x^8 ^212 x^7 ^147 x^6 ^194 x^5 ^47 x^4 0 x^3 ^38 x^2 ^229 x ^74이고, 여기서 8-투플 j7X^7 + j6X^6 + j5X^5 + j4X^4 + j3X^3 + j2X^2 + j1X + j0를 얻기 위한이다. 각각의 계수 다중화기에 대한 값은 이하와 같다:
^212=^6 +^5 +^4 +^3 + 1 = [01111001]
^147=^5 +^3 + 1 = [00101001]
^194=^5 +^4 += [00110010]
^47=^5 +^2 = [00100100]
^38=^7 +^4 +^2 = [10010100]
^229=^6 +^5 +^4 +^3 += [01111010]
^74=^7 +^3 + 1 = [10001001]
동적 피드백 시프트 레지스터 구조(B 및 C; 120 및 130)에 있어서, 각각 도5 및 도 6에 나타낸 바와 같이, 데이터 비트는 클럭신호에 따라 연속적으로 시프트되고, 또한 출력 스테이지로부터 연결된 다차함수 코드신호(90)에 따라 입력 스테이지로 시프트된다. 도 4와 관련하여 기술한 바와 같이, 다수의 로직성분은 레지스터(B, C)의 소정 쌍의 레지스터 스테이지 사이에 각각 위치된다. 로직성분은, 다차함수 코드신호(90)에 따라, 출력 스테이지로부터 피드백된 데이터 비트와 함께 선행 스테이지로부터 시프트된 데이터 비트를 처리한다.
B-레지스터 및 C-레지스터 구조에 있어서, 디코딩 로직유닛으로부터의 다차함수 코드신호가 2개의 다차함수 계수 세트로부터 어느 하나의 다차함수 계수 세트(즉, 각기 다른 확장된 갈루아체 다중화기 값의 세트)를 선택하기 위해 제공된다.
예컨대, 도 5에 나타낸 동적 피드백 레지스터 구조(B)에 있어서, 데이터 비트는 CLK단자에 인가된 클럭신호에 따라 각 스테이지로부터 연속적으로 시프트된다. 레지스터 스테이지로부터 시프트된 데이터 바이트는 출력단자 RGB0내지 RGB7에 각각 제공된다. 다수의 유한체 가산기(121~127)는 각 쌍의 레지스터 스테이지 사이에 각각 위치된다. 각 가산기(121~127)에 대한 어느 하나의 입력은 선행 레지스터 스테이지로부터 제공되고, 각 가산기에 대한 또 다른 입력은 2개의 유한체 다중화기 세트중 어느 하나를 통해 8번째 출력 스테이지의 출력단자(RGB7)로부터 피드백 된다(예컨대, 제1세트는 유한체 다중화기 200, 202, 204, 205, 206, 208, 210, 212, 214를 포함하고; 제2세트는 201, 203, 205, 207, 209, 211, 213, 215를포함한다). 유한체 다중화기의 세트는 다차함수 코드(90)에 따라 선택된 다차함수에 따라 사용된다(도 3의 디코딩 로직유닛(80)으로부터).
도 5에 나타낸 동적 피드백 시프트 레지스터(B)의 구조는 2개의 다차함수만을 사용한다. 디코딩 로직유닛(80)의 최소유효비트(1sb)는 동적 FSR구조(B)로부터 어느 하나의 다음 다차함수를 선택하기 위해 사용된다:
Poly_B0 = x^8 ^92 x^7 ^229 x^6 ^5 x^5 ^95 x^4 ^84 x^3 0 x^3 ^195 x ^176이고, 여기서 8-투플 j7X^7 + j6X^6 + j5X^5 + j4X^4 + j3X^3 + j2X^2 + j1X + j0를 얻기 위한이다. 각각의 계수 다중화기에 대한 값은 이하와 같다:
^92=^6 +^4 +^3 ++ 1 = [01011011]
^229=^6 +^5 +^4 +^3 += [01111010]
^5=^5 = [00100000]
^95=^7 +^6 +^5 += [11100010]
^84=^6 +^5 +^3 ++ 1 = [01101011]
^195=^6 +^5 +^2 = [01100100]
^176=^7 +^6 +^5 ++ 1 = [11100011]
구조(B)에 사용된 제2다차함수는 이하와 같다:
Poly_B1 = x^8 ^22 x^7 ^47 x^6 0 x^5 ^230 x^4 ^94 x^3 ^202 x^2 ^28 x ^188이다. 각각의 계수 다중화기에 대한 값은 이하와 같다:
^22=^7 +^6 +^5 +^3 += [11101010]
^47=^5 ++ 1 = [00100011]
^230=^7 +^6 +^5 +^4 +^2 = [11110100]
^94=^6 +^5 +^4 + 1 = [01110001]
^202=^5 +^4 +^3 = [01110000]
^28=^4 +^3 = [00011000]
^188=^7 +^5 +^2 + 1 = [10100101]
동적 피드백 시프트 레지스터(C; 130)의 구조는 도 6에 도시되어 있다. 레지스터(C)의 펑크션은 도 5에 나타낸 레지스터(B)의 펑크션과 대응하고, 도 5의 레지스터(B)의 유한체 가산기(121~127)와 동등한 레지스터(C)의 유한체 가산기(221~227)를 갖추고, 도 5의 레지스터(B)의 유한체 다중화기(200~215)와 동등한 레지스터(C)의 유한체 다중화기(230~245)를 갖춘다.
또한, 이러한 예의 실시에 있어서는, 2개의 다차함수만이 레지스터(C)의 구조에 사용된다. 디코딩 로직유닛(80) 출력의 최소유효비트(1sb)는 동적 FSR구조(C)로부터 2개의 다차함수중 어느 하나를 선택하기 위해 사용된다:
Poly_C0 = x^8 ^221 x^7 ^18 x^6 ^129 x^5 ^200 x^4 0 x^3 ^124 x^2 ^25 x ^31이고, 여기서 8-투플 j7X^7 + j6X^6 + j5X^5 + j4X^4 + j3X^3 + j2X^2 + j1X + j0를 얻기 위한이다. 각각의 계수 다중화기에 대한 값은 이하와 같다:
^221=^6 +^2 + 1 = [01000101]
^18=^5 +^3 +^2 + 1 = [00101101]
^129=^4 +^2 ++ 1 = [00010111]
^200=^4 +^3 +^2 = [00011100]
^124=^7 +^4 +^2 ++ 1 = [10010111]
^25=+ 1 = [00000011]
^31=^7 +^6 = [11000000]
레지스터(C)의 구조에 사용된 제2다차함수는 이하와 같다:
Poly_C1 = x^8 ^39 x^7 ^203 x^6 0 x^5 ^185 x^4 ^151 x^3 ^114 x^2 ^7 x ^47이다. 각각의 계수 다중화기에 대한 값은 이하와 같다:
^39=^5 +^4 +^2 + 1 = [00110101]
^203=^7 +^6 +^5 = [11100000]
^185=^5 +^4 +^2 ++ 1 = [001101111]
^151=^7 +^5 +^3 += [10101010]
^114=^5 +^4 +^3 +^2 += [00111110]
^7=^7 = [10000000]
^47=^5 ++ 1 = [00100011]
도 3에 의하면, 동적 FSR(120, 130)에 인가된 다차함수 코드신호(90)는 소정 레지스터 스테이지로부터 시프트된 데이터 비트에 따라 변경한다. F2 테이블(81)은 다차함수 코드신호를 생성하기 위해 디코딩 로직유닛(80; DLU)에 사용된다.
도 3의 디코딩 로직유닛(80)은 동적 FSR(120, 130)로부터 2개의 다차함수중 어느 하나를 선택하기 위해 F2 테이블 출력의 최소유효비트(1sb)를 사용한다. 이 경우, 2개의 다른 다차함수가 B-레지스터 구조 및 C-레지스터 구조에 사용되고, 하나의 다차함수가 A-레지스터 구조에 사용된다. 따라서, F2 테이블 치환 후 모든 다른 프리-키스트림 바이트의 1비트만이 2개의 다차함수, POLY_A0(POLY_B0)와 POLY_A1(POLY_B1)중 선택하기 위해 직접 사용된다.
프리-키스트림(45)으로부터의 대체바이트(8비트)는 다차함수 코드신호(90)를 변경하기 위해 처리되고, 프리-키스트림(45)의 나머지 바이트는 키스트림(100)을 제공하기 위해 처리된다. 변경되는 다차함수 코드신호(90)를 야기하는 바이트는 키스트림(100)에 포함되지 않는다.
도 2와 관련하여 상술한 바와 같이, 도 3에 기술된 실시예에 있어서, 다중화기(170~173)는 F1 테이블(예컨대, F1 테이블(150, 153, 154, 157))에 다소의 입력을 제공하기 위해 레지스터(A, B)의 각기 다른 소정 레지스터 스테이지로부터 시프트된 데이터 바이트중 선택하도록 레지스터(C)의 소정 레지스터 스테이지로부터의 출력을 사용한다. 각각의 다중화기(170~173)는 2:1 다중화기이다. 예컨대, 2개의 출력비트(RGA0및 RGA7)는 다중화기(170)에 레지스터(A)의 각기 다른 스테이지로부터 직접 시프트된다. 레지스터(C; RGC6)로부터 시프트된 데이터 비트에 따라 다중화기(170)에 의해 RGA0와 RGA7중 어느 하나가 선택된다. 다중화기 171, 172 및, 173에서 유사한 동작이 발생한다. 다중화기(170, 171, 172, 173)의 출력은 각각 F1 테이블(150, 153, 154, 157)에 제공된다.
다중화기(170,172; MUX)에 대한 상세한 다중화기의 셋팅을 이하의 테이블에 나타냈다.
테이블 2: MUX 170 및 172 셋팅
SEL A B 설명
MUX 170 RGC6 RGA0 RGA7 출력i= RGA0_i만약 RGC6_i= 0이면또는 = RGA7_i만약 RGC6_i= 1이면여기서, i = 0, 1, ..., 7
MUX 172 RGC6 RGA1 RGA6 출력i= RGA1_i만약 RGC7_i= 0이면또는 = RGA6_i만약 RGC7_i= 1이면여기서, i = 0, 1, ..., 7
다중화기(171, 173; MUX)에 대한 상세한 다중화기의 셋팅을 이하의 테이블에나타냈다.
테이블 3: MUX 171 및 173 셋팅
SEL A B 설명
MUX 171 RGC0 RGB1 RGB6 출력i= RGB1_i만약 RGC6_i= 0이면또는 = RGB6_i만약 RGC6_i= 1이면여기서, i = 0, 1, ..., 7
MUX 173 RGC0 RGB0 RGB7 출력i= RGB0_i만약 RGC7_i= 0이면또는 = RGA7_i만약 RGC7_i= 1이면여기서, i = 0, 1, ..., 7
또한, 다중화기가 S-박스 치환 펑크션(165)에 어드레스 신호를 제공하기 위해 사용된다. 예컨대, MUX 170의 반전(MUX 170-1)이 RGA0내지 RGA7으로부터 대체비트를 선택하기 위해 사용된다. MUX 170-1은 이하의 테이블로 정의된다:
테이블 4: MUX 170 -1 셋팅
SEL A B 설명
MUX 170 -1 RGC6 RGA7 RGA0 출력i= RGA7_i만약 RGC6_i= 0이면또는 = RGA0_i만약 RGC6_i= 1이면여기서, i = 0, 1, ..., 7
MUX 173의 반전(MUX 173-1)이 RGB0내지 RGB7으로부터 대체비트를 선택하기 위해 사용된다. MUX 173-1은 이하의 테이블로 정의된다:
테이블 5: MUX 173 -1 셋팅
SEL A B 설명
MUX 173 -1 RGC0 RGB7 RGB0 출력i= RGB7_i만약 RGC6_i= 0이면또는 = RGA0_i만약 RGC6_i= 1이면여기서, i = 0, 1, ..., 7
각 시프트 레지스터로부터의 8개의 레지스터 출력중 2개가 F1 테이블(151, 152, 155, 156)에 직접 입력으로서 탭(tap)된다. 탭은 1회 이상 사용되지 않는다. 나머지 F1 테이블(150, 153, 154, 157)에 대한 입력은 각각 다중화기(170, 171, 172, 173)에 의한다.
F1 테이블에 의한 다른 것들을 갖는 레지스터 A 또는 레지스터 B(RGA2/RGA4, RGB3/RGB5)로부터 직접 시프트된 2개의 바이트를 결합하기 위해 사용된 비선형 혼합 펑크션(161, 162)은 이하와 같다:
g0 = RGA'0/7 RGB'1/6 RGA2 RGB'4 RGA'5 RGB3
g1 = RGA'1/6 RGB'0/7+ RGA4 RGB'2 RGA'3 RGB5
RGA'0/7은 RGC6에 기초하여 RGA0및 RGA7로부터 8비트를 선택함으로써 구성된 필드성분이고, 그 후 상기 선택된 비트는 F1 테이블(150)로 전달된다. 동일한 정의에 의해, RGB'1/6은 RGC0에 기초하여 RGB1및 RGB6로부터 8비트를 선택함으로써 구성된 필드성분이고, 그 후 상기 선택된 비트는 F1 테이블(153)로 전달된다. RGA'1/6은RGC6에 기초하여 RGA1및 RGA6로부터 8비트를 선택함으로써 구성된 필드성분이고, 그 후 상기 선택된 비트는 F1 테이블(172)로 전달된다. RGB'0/7은 RGC0에 기초하여 RGB0및 RGB7로부터 8비트를 선택함으로써 구성된 필드성분이고, 그 후 상기 선택된 비트는 F1 테이블(157)로 전달된다.
상기 2개의 비선형 펑크션(g0, g1) 등은 이하의 규칙에 따라 구성된다:
·동시에 다중화된 조건은 각기 다른 레지스터 구조에 의한다.
·2개의 다중화 조건중 적어도 어느 하나는 F1 테이블에 의한다.
도 3에 의하면, 8*8 S-박스(165)가, 비선형 혼합 펑크션(161, 162)으로부터의 출력의 콘텐츠에 따라 출력단자(Y1, Y0)로부터 각각 개별의 프리-키스트림 바이트(45) 및 코드스트림 바이트(48)와 A 및 B 레지스터 구조로부터의 2바이트의 데이터를 제공하기 위해 사용된다. S-박스의 엔트리는 숫자 0 내지 255의 순열이고, S-박스의 어드레스는 루프 카운터(n)의 펑크션, go, g1, RGB0/7및 RGA0/7이다.
S-박스는 선형적으로 S0=0, S1=1, ..., S255=255로 초기화된다. S-박스 순열처리는 이하의 관계에 따라 공식화될 수 있다:
관계:
0에서 runup_Cycles까지의 n
n = (n% 256);
Y0' = (g0 + SRGB7/0+ Sn) mod 256
swap Si및 SYO'
Y1' = (g1 + SRGA7/0+ Sn) mod 256
swap Si및 SY1'
t0 = (Sg1+ SY0') mod 256
t1 = (Sg0+ SY1') mod 256
Y0 = S t0 및 Y1 = S t1
S-박스는 모든 성분을 변경하는 것을 보장하기 위해 n의 반복을 서서히 이끌어 내고, 또 임의로 성분을 변경하는 것을 보장하기 위해 (g0, g1, RGB0/7, RGA0/7, Y0', Y1')의 사용도 이끌어 낸다.
코드스트림 레지스터(175)는 A 및 B구조로부터의 어드레스 신호에 따라 S-박스(165)의 Y1 출력단자로부터, 또한 비선형 혼합 펑크션(161, 162)으로부터 코드스트림 비트(48)를 수신한다. 코드스트림 바이트(48)는 코드스트림 레지스터(175)를 통해 클럭되고, 레지스터 B 및 레지스터 C의 MSB 출력 스테이지(스테이지 7)로부터 시프트된 데이터 바이트(RGB7, RGC7)에 비선형 가산기(XOR)에 의해 가산된다. 이러한 처리는 제공된 다차함수 코드(90)에 따라 레지스터 B 및 C의 입력 스테이지(스테이지 0) 및 소정 중개 스테이지에 피드백되는 피드백 데이터 바이트를 제공한다.
키스트림 레지스터(60)로부터의 키스트림 바이트(100)는 제어클럭 CLOCK에기초하여 생성된다. 이들 바이트는, 알고리즘이 FSR중의 데이터를 순환하기 위한 적절한 혼합시간을 가진 후에만 7바이트 또는 56비트의 출력을 형성하도록 어셈블된다. 혼합시간량은 시간 FSR A, B, C가 초기화되는 동안의 CLOCK의 클럭 사이클의 수로 측정되고, 그 시간은 키스트림 레지스터(60) 바이트 출력이 저장되는 시간이다. 초기화는 시간 T=0에서 발생하고, 시간은 CLOCK 사이클로 측정된다. 초기화 후, 701 CLOCK 사이클은 키스트림 레지스터(60)의 첫번째 바이트가 저장되기 전에 발생한다. 그 후, 출력 바이트는 다음의 추가적인 사이클의 완료 후에 저장된다:
테이블 6: 초기화에서 출력 저장까지의 CLOCK 사이클
CLOCK사이클수 이벤트 CLOCK사이클수 이벤트
0 FSR A, B, C를 초기화 701 + 126 = 827 출력 바이트 3 저장
701 출력 바이트 0 저장 701 + 142 = 843 출력 바이트 4 저장
701 + 30 = 731 출력 바이트 1 저장 701 + 580 = 1281 출력 바이트 5 저장
701 + 70 = 771 출력 바이트 2 저장 701 + 636 = 1337 출력 바이트 6 저장
상술한 본 발명의 실시예는 선택된 적절한 실시예이고 본 발명의 목적을 제한하려고 하는 것은 아니다. 상술한 실시예의 많은 변형예가 이용가능하다. 예컨대, 여기에 기술한 본 발명은 폭넓은 다양한 입력키의 크기를 이용하여 실시될 수 있다. 또한, 여러가지 갈루아체 선택이 본 발명을 실시하기 위해 사용될 것이다. 사용된 다수의 정적 및/또는 동적 피드백 시프트 레지스터 뿐만 아니라, 각각의 그와 같은 시프트 레지스터에 대한 다수의 레지스터 스테이지를 변경할 것이다. 다수의 랜덤화 스테이지 뿐만 아니라, 각 스테이지(예컨대, 다수의 다중화기, 다수의 S-박스, 다수의 랜덤화 테이블 등) 내에 포함된 기능을 변경할 것이다. 상술한 본 발명의 일반적인 설명과 일치되어 다른 실시의 복잡성이 바뀌거나 변경될 수 있다.
본 발명은 데이터 암호화 및 해독화에 사용하기 위한 암호적으로 강한 키스트림을 생성하기 위한 개선된 방법 및 장치를 제공한다.
비록 본 발명이 상술한 여러가지의 실시예와 관련지어 기술했지만, 본 발명의 목적 및 배경을 이탈하지 않는 범위 내에서 다양하게 변형하여 실시할 수 있는 것은 물론이다.

Claims (48)

  1. 다중 피드백 시프트 레지스터의 소정 레지스터 스테이지로부터 제1랜덤화 스테이지로 데이터 비트를 제공하는 단계와,
    상기 제1랜덤화 스테이지의 출력을 제2랜덤화 스테이지에 제공하는 단계 및,
    상기 제2랜덤화 스테이지의 출력 및 상기 피드백 시프트 레지스터의 또 다른 소정의 레지스터 스테이지로부터의 데이터 비트를 적어도 하나의 추가적인 랜덤화 스테이지에 제공하는 단계를 구비하여 이루어지고,
    상기 각 피드백 시프트 레지스터는 데이터 비트가 클럭신호에 따라 연속적으로 시프트되는 입력, 중개 및, 출력 스테이지를 갖추며,
    상기 데이터 비트는 각 랜덤화 스테이지에서 치환되고, 최종 랜덤화 스테이지의 출력은 상기 키스트림을 제공하는 것을 특징으로 하는 키스트림 생성방법.
  2. 제1항에 있어서, 제3랜덤화 스테이지가 상기 최종 랜덤화 스테이지인 것을 특징으로 하는 키스트림 생성방법.
  3. 제1항에 있어서, 다차함수 코드신호 생성기에 의해 생성된 다차함수 코드신호에 따라 적어도 하나의 피드백 시프트 레지스터 구조를 변경하는 단계를 더 구비하여 이루어진 것을 특징으로 하는 키스트림 생성방법.
  4. 제3항에 있어서, 다차함수 코드신호를 생성하기 위해 사용된 다차함수 코드를 변경하는 단계를 더 구비하여 이루어진 것을 특징으로 하는 키스트림 생성방법.
  5. 제1항에 있어서, 상기 피드백 시프트 레지스터는;
    다수의 동적 피드백 시프트 레지스터와,
    적어도 하나의 정적 피드백 시프트 레지스터로 이루어진 것을 특징으로 하는 키스트림 생성방법.
  6. 제1항에 있어서, 상기 피드백 시프트 레지스터는;
    제1동적 피드백 시프트 레지스터와,
    제2동적 피드백 시프트 레지스터 및,
    정적 피드백 시프트 레지스터로 이루어진 것을 특징으로 하는 키스트림 생성방법.
  7. 제6항에 있어서, 시드 데이터를 입력버퍼 내에 입력하는 단계와,
    제1동적 피드백 시프트 레지스터에 상기 입력버퍼로부터의 제1부분의 시드 데이터를 제공하는 단계,
    상기 제2동적 피드백 시프트 레지스터에 상기 입력버퍼로부터의 제2부분의 시드 데이터를 제공하는 단계 및,
    상기 정적 피드백 시프트 레지스터에 상기 입력버퍼로부터의 제3부분의 시드데이터를 제공하는 단계를 더 구비하여 이루어진 것을 특징으로 하는 키스트림 생성방법.
  8. 제7항에 있어서, 상기 동적 피드백 시프트 레지스터의 데이터 비트가 클럭신호에 따라 각 레지스터 스테이지로부터 연속적으로 시프트되고,
    다수의 유한체 가산기가 상기 동적 피드백 시프트 레지스터의 소정 쌍의 레지스터 스테이지 사이에 배열되어, 각 가산기에 대한 어느 하나의 입력이 선행 레지스터 스테이지로부터 제공되고 각 가산기의 또 다른 입력이 유한체 다중화기를 통해 출력 스테이지의 출력단자로부터 피드백되는 것을 특징으로 하는 키스트림 생성방법.
  9. 제1항에 있어서, 상기 제1랜덤화 스테이지는 소정의 레지스터 스테이지로부터의 데이터 비트를 치환하기 위한 랜덤화 테이블로 이루어진 것을 특징으로 하는 키스트림 생성방법.
  10. 제1항에 있어서, 제2랜덤화 스테이지는 상기 제2랜덤화 스테이지의 출력과 상기 피드백 시프트 레지스터의 또 다른 소정 레지스터 스테이지로부터의 데이터 비트를 결합하기 위한 비선형 혼합 펑크션으로 이루어진 것을 특징으로 하는 키스트림 생성방법.
  11. 제1항에 있어서, 상기 제3랜덤화 스테이지는 다중 비선형 S-박스로 이루어진 것을 특징으로 하는 키스트림 생성방법.
  12. 제11항에 있어서, 상기 S-박스는 8*8 S-박스인 것을 특징으로 하는 키스트림 생성방법.
  13. 제1항에 있어서, 상기 제3랜덤화 스테이지는 256 비선형 8*8 S-박스로 이루어진 것을 특징으로 하는 키스트림 생성방법.
  14. 제1항에 있어서, 상기 피드백 시프트 레지스터는 확장된 갈루아체 GF(2m)를 이용하여 구성된 것을 특징으로 하는 키스트림 생성방법.
  15. 제14항에 있어서, 상기 m은 8과 동일한 것을 특징으로 하는 키스트림 생성방법.
  16. 제14항에 있어서, 상기 피드백 시프트 레지스터에 사용된 다차함수는 원시이고 약분할 수 없는 것을 특징으로 하는 키스트림 생성방법.
  17. 제1항에 있어서, 상기 제1랜덤화 스테이지는 소정의 레지스터 스테이지로부터의 데이터 비트를 치환하기 위한 다중 랜덤화 테이블로 이루어진 것을 특징으로 하는 키스트림 생성방법.
  18. 제17항에 있어서, 상기 다중 랜덤화 테이블은 8개의 랜덤화 테이블로 이루어진 것을 특징으로 하는 키스트림 생성방법.
  19. 제1항에 있어서, 상기 피드백 시프트 레지스터로부터의 데이터 비트를 상기 제1랜덤화 스테이지 내에 입력하기 전에 다중화하는 단계를 더 구비하여 이루어진 것을 특징으로 하는 키스트림 생성방법.
  20. 제1항에 있어서, 상기 제3랜덤화 스테이지로부터의 출력을 프리-키스트림 레지스터에 제공하는 단계와,
    상기 프리-키스트림 레지스터의 대체비트를 선택 체인버퍼에 제공하는 단계,
    상기 선택 체인버퍼로부터의 출력을, 다차함수 코드신호를 생성하는데 이용하기 위한 특정 다차함수를 디코드하는 디코딩 로직유닛에 제공하는 단계 및,
    상기 프리-키스트림 레지스터로부터의 출력의 나머지 비트를 키스트림 레지스터에 제공하는 단계를 더 구비하여 이루어지고,
    상기 다차함수 코드신호는 적어도 하나의 피드백 시프트 레지스터에 제공되며,
    상기 키스트림 레지스터의 출력은 상기 키스트림을 제공하는 것을 특징으로하는 키스트림 생성방법.
  21. 제20항에 있어서, 상기 제3랜덤화 스테이지는 다중 비선형 S-박스로 이루어진 것을 특징으로 하는 키스트림 생성방법.
  22. 제21항에 있어서, 상기 S-박스의 소정 출력을 코드스트림 레지스터에 제공하는 단계와,
    상기 코드스트림 레지스터를 통해 상기 출력을 클럭하는 단계,
    피드백 데이터 비트를 생성하기 위해 비-2진 가산기를 통해 적어도 어느 하나의 피드백 시프트 레지스터로부터 시프트된 데이터 비트에 상기 출력을 가산하는 단계 및,
    상기 적어도 어느 하나의 피드백 시프트 레지스터의 입력 스테이지 및 소정 중개 스테이지에 피드백 데이터 비트를 제공하는 단계를 더 구비하여 이루어진 것을 특징으로 하는 키스트림 생성방법.
  23. 제1항에 있어서, 192비트 할당 시드 입력키가 다중 피드백 시프트 레지스터에 제공되고,
    56비트 키스트림 출력이 생성되는 것을 특징으로 하는 키스트림 생성방법.
  24. 제23항에 있어서, 128비트의 1/2을 복사함으로써 128비트 입력으로부터 192비트 할당 시드 입력키가 유도되는 것을 특징으로 하는 키스트림 생성방법.
  25. 각각의 피드백 시프트 레지스터가, 클럭신호에 따라 데이터 비트가 연속적으로 시프트되는 입력, 중개 및, 출력 스테이지를 갖춘 다중 피드백 시프트 레지스터와,
    상기 다중 피드백 시프트 레지스터의 소정 레지스터 스테이지로부터의 출력을 수신하는 제1랜덤화 스테이지,
    상기 제1랜덤화 스테이지로부터의 출력을 수신하는 제2랜덤화 스테이지 및,
    상기 제2랜덤화 스테이지로부터의 출력 및 상기 피드백 시프트 레지스터의 또 다른 소정 레지스터 스테이지로부터의 데이터 비트를 수신하는 제3랜덤화 스테이지를 구비하여 구성되고,
    상기 데이터 비트는 각 랜덤화 스테이지에서 치환되고, 최종 랜덤화 스테이지의 출력은 상기 키스트림을 제공하는 것을 특징으로 하는 키스트림 생성장치.
  26. 제25항에 있어서, 제3랜덤화 스테이지가 상기 최종 랜덤화 스테이지인 것을 특징으로 하는 키스트림 생성장치.
  27. 제25항에 있어서, 다차함수 코드신호 생성기에 의해 생성된 다차함수 코드신호에 따라 적어도 하나의 피드백 시프트 레지스터 구조가 변경되는 것을 특징으로 하는 키스트림 생성장치.
  28. 제27항에 있어서, 다차함수 코드신호를 생성하기 위해 사용된 다차함수 코드가 변경되는 것을 특징으로 하는 키스트림 생성장치.
  29. 제25항에 있어서, 상기 피드백 시프트 레지스터는;
    다수의 동적 피드백 시프트 레지스터와,
    적어도 하나의 정적 피드백 시프트 레지스터로 이루어진 것을 특징으로 하는 키스트림 생성장치.
  30. 제25항에 있어서, 상기 피드백 시프트 레지스터는;
    제1동적 피드백 시프트 레지스터와,
    제2동적 피드백 시프트 레지스터 및,
    정적 피드백 시프트 레지스터로 이루어진 것을 특징으로 하는 키스트림 생성장치.
  31. 제30항에 있어서, 시드 데이터가 입력버퍼 내에 입력되고,
    상기 제1동적 피드백 시프트 레지스터에 상기 입력버퍼로부터의 제1부분의 시드 데이터가 제공되고,
    상기 제2동적 피드백 시프트 레지스터에 상기 입력버퍼로부터의 제2부분의 시드 데이터가 제공되며,
    상기 정적 피드백 시프트 레지스터에 상기 입력버퍼로부터의 제3부분의 시드 데이터가 제공되는 것을 특징으로 하는 키스트림 생성장치.
  32. 제31항에 있어서, 상기 동적 피드백 시프트 레지스터의 데이터 비트가 클럭신호에 따라 각 레지스터 스테이지로부터 연속적으로 시프트되고,
    다수의 유한체 가산기가 상기 동적 피드백 시프트 레지스터의 소정 쌍의 레지스터 스테이지 사이에 배열되어, 각 가산기에 대한 어느 하나의 입력이 선행 레지스터 스테이지로부터 제공되고 각 가산기의 또 다른 입력이 유한체 다중화기를 통해 출력 스테이지의 출력단자로부터 피드백되는 것을 특징으로 하는 키스트림 생성장치.
  33. 제25항에 있어서, 상기 제1랜덤화 스테이지는 소정의 레지스터 스테이지로부터의 데이터 비트를 치환하기 위한 랜덤화 테이블로 이루어진 것을 특징으로 하는 키스트림 생성장치.
  34. 제25항에 있어서, 제2랜덤화 스테이지는 상기 제2랜덤화 스테이지의 출력과 상기 피드백 시프트 레지스터의 또 다른 소정 레지스터 스테이지로부터의 데이터 비트를 결합하기 위한 비선형 혼합 펑크션으로 이루어진 것을 특징으로 하는 키스트림 생성장치.
  35. 제25항에 있어서, 상기 제3랜덤화 스테이지는 다중 비선형 S-박스로 이루어진 것을 특징으로 하는 키스트림 생성장치.
  36. 제35항에 있어서, 상기 S-박스는 8*8 S-박스인 것을 특징으로 하는 키스트림 생성장치.
  37. 제25항에 있어서, 상기 제3랜덤화 스테이지는 256 비선형 8*8 S-박스로 이루어진 것을 특징으로 하는 키스트림 생성장치.
  38. 제25항에 있어서, 상기 피드백 시프트 레지스터는 확장된 갈루아체 GF(2m)를 이용하여 구성된 것을 특징으로 하는 키스트림 생성장치.
  39. 제38항에 있어서, 상기 m은 8과 동일한 것을 특징으로 하는 키스트림 생성장치.
  40. 제38항에 있어서, 상기 피드백 시프트 레지스터에 사용된 다차함수는 원시이고 약분할 수 없는 것을 특징으로 하는 키스트림 생성장치.
  41. 제25항에 있어서, 상기 제1랜덤화 스테이지는 소정의 레지스터 스테이지로부터의 데이터 비트를 치환하기 위한 다중 랜덤화 테이블로 이루어진 것을 특징으로 하는 키스트림 생성장치.
  42. 제41항에 있어서, 상기 다중 랜덤화 테이블은 8개의 랜덤화 테이블로 이루어진 것을 특징으로 하는 키스트림 생성장치.
  43. 제25항에 있어서, 상기 피드백 시프트 레지스터로부터의 데이터 비트가 상기 제1랜덤화 스테이지 내에 입력하기 전에 다중화되는 것을 특징으로 하는 키스트림 생성장치.
  44. 제25항에 있어서, 상기 제3랜덤화 스테이지로부터의 출력을 수신하기 위한 프리-키스트림 레지스터와,
    상기 프리-키스트림 레지스터로부터의 출력의 대체비트를 수신하기 위한 선택 체인버퍼,
    상기 선택 체인버퍼로부터의 출력을 수신하고, 다차함수 코드신호를 생성하는데 이용하기 위한 특정 다차함수를 디코드하는 디코딩 로직유닛 및,
    상기 프리-키스트림 레지스터로부터의 출력의 나머지 비트를 수신하기 위한 키스트림 레지스터를 더 구비하여 구성되고,
    상기 다차함수 코드신호는 적어도 하나의 피드백 시프트 레지스터에 제공되며,
    상기 키스트림 레지스터의 출력은 상기 키스트림을 제공하는 것을 특징으로 하는 키스트림 생성장치.
  45. 제44항에 있어서, 상기 제3랜덤화 스테이지는 다중 비선형 S-박스로 이루어진 것을 특징으로 하는 키스트림 생성장치.
  46. 제45항에 있어서, 상기 S-박스의 소정 출력이 코드스트림 레지스터에 제공되고,
    상기 코드스트림 레지스터를 통해 상기 출력이 클럭되고,
    피드백 데이터 비트를 생성하기 위해 비-2진 가산기를 통해 적어도 어느 하나의 피드백 시프트 레지스터로부터 시프트된 데이터 비트에 상기 출력이 가산되며,
    상기 적어도 어느 하나의 피드백 시프트 레지스터의 입력 스테이지 및 소정 중개 스테이지에 상기 피드백 데이터 비트가 제공되는 것을 특징으로 하는 키스트림 생성장치.
  47. 제25항에 있어서, 192비트 할당 시드 입력키가 다중 피드백 시프트 레지스터에 제공되고,
    56비트 키스트림 출력이 생성되는 것을 특징으로 하는 키스트림 생성장치.
  48. 제25항에 있어서, 128비트의 1/2을 복사함으로써 128비트 입력으로부터 192비트 할당 시드 입력키가 유도되는 것을 특징으로 하는 키스트림 생성장치.
KR1020027006549A 1999-11-23 2000-11-17 키스트림 생성방법 및 장치 KR100756435B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16718599P 1999-11-23 1999-11-23
US60/167,185 1999-11-23
PCT/US2000/031539 WO2001039417A2 (en) 1999-11-23 2000-11-17 Methods and apparatus for keystream generation

Publications (2)

Publication Number Publication Date
KR20020060237A true KR20020060237A (ko) 2002-07-16
KR100756435B1 KR100756435B1 (ko) 2007-09-07

Family

ID=22606308

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027006549A KR100756435B1 (ko) 1999-11-23 2000-11-17 키스트림 생성방법 및 장치

Country Status (9)

Country Link
EP (1) EP1232603B1 (ko)
KR (1) KR100756435B1 (ko)
CN (1) CN1425230A (ko)
AT (1) ATE309654T1 (ko)
AU (1) AU1770501A (ko)
CA (1) CA2391997C (ko)
DE (1) DE60023934T2 (ko)
TW (1) TW548937B (ko)
WO (1) WO2001039417A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100584604B1 (ko) * 2004-08-14 2006-05-30 삼성전자주식회사 디바이스를 인증하기 위한 키 생성 방법/장치 및 디바이스인증 방법/장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7822797B2 (en) * 2002-07-29 2010-10-26 Broadcom Corporation System and method for generating initial vectors
CN100459493C (zh) * 2005-12-29 2009-02-04 北京浦奥得数码技术有限公司 流密码生成器、随机数生成方法、加密系统及加密方法
CN103701591B (zh) * 2013-12-23 2016-08-31 中国科学院数学与系统科学研究院 一种序列密码实现方法和密钥流生成方法及装置
US10025956B2 (en) 2015-12-18 2018-07-17 Intel Corporation Techniques to compress cryptographic metadata for memory encryption

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4860353A (en) * 1988-05-17 1989-08-22 General Instrument Corporation Dynamic feedback arrangement scrambling technique keystream generator
KR0153962B1 (ko) * 1994-10-31 1998-12-01 배순훈 피드백 시프트 레지스터
US5701136A (en) * 1995-03-06 1997-12-23 Thomson Consumer Electronics S.A. Liquid crystal display driver with threshold voltage drift compensation
KR970049468A (ko) * 1995-12-30 1997-07-29 김주용 난수 발생 장치
JPH1056361A (ja) * 1996-08-07 1998-02-24 Matsushita Electric Ind Co Ltd 疑似雑音系列発生器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100584604B1 (ko) * 2004-08-14 2006-05-30 삼성전자주식회사 디바이스를 인증하기 위한 키 생성 방법/장치 및 디바이스인증 방법/장치

Also Published As

Publication number Publication date
KR100756435B1 (ko) 2007-09-07
CA2391997C (en) 2007-07-24
DE60023934D1 (de) 2005-12-15
TW548937B (en) 2003-08-21
EP1232603A2 (en) 2002-08-21
DE60023934T2 (de) 2006-08-10
AU1770501A (en) 2001-06-04
CN1425230A (zh) 2003-06-18
EP1232603B1 (en) 2005-11-09
WO2001039417A2 (en) 2001-05-31
ATE309654T1 (de) 2005-11-15
WO2001039417A3 (en) 2002-01-17
CA2391997A1 (en) 2001-05-31

Similar Documents

Publication Publication Date Title
JP4828068B2 (ja) コンピュータで効率的な線形フィードバック・シフト・レジスタ
US7295671B2 (en) Advanced encryption standard (AES) hardware cryptographic engine
US6804354B1 (en) Cryptographic isolator using multiplication
US8213607B2 (en) Method for securely extending key stream to encrypt high-entropy data
US6314187B1 (en) Method for encryption or decryption using finite group operations
US10320554B1 (en) Differential power analysis resistant encryption and decryption functions
KR100449594B1 (ko) 보조 변환을 이용한 블럭 암호 장치
US6014446A (en) Apparatus for providing improved encryption protection in a communication system
US6295606B1 (en) Method and apparatus for preventing information leakage attacks on a microelectronic assembly
US6961426B2 (en) Cascaded stream cipher
US8170204B2 (en) Method and system for extending advanced encryption standard (AES) operations for enhanced security
JP2008293018A (ja) 引き起こされた非位取り誤りによる暗号化
US7826613B2 (en) Stream cipher cryptographic system and method
US8122075B2 (en) Pseudorandom number generator and encryption device using the same
US6961427B1 (en) Methods and apparatus for keystream generation
US6931127B2 (en) Encryption device using data encryption standard algorithm
JP3769804B2 (ja) 解読化方法および電子機器
KR100756435B1 (ko) 키스트림 생성방법 및 장치
JP2006517036A (ja) マスクされたデータを操作する装置及び方法
Ali et al. Modified Advanced Encryption Standard algorithm for fast transmitted data protection
JP3473171B2 (ja) 逐次暗号方式
BG67431B1 (bg) Метод и устройство за генериране на ключов поток за поточни шифри
KR20050019086A (ko) 진보된 암호화 표준(aes)의 하드웨어 암호 엔진
Guerrero et al. Customised hardware based on the REDOC III algorithm for high performance data ciphering
Sixel et al. Data encryption standard simulation and a bit-slice architecture design

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

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130729

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140730

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150810

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160811

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170814

Year of fee payment: 11