KR20060119716A - 의사 랜덤 시퀀스 생성 방법 - Google Patents

의사 랜덤 시퀀스 생성 방법 Download PDF

Info

Publication number
KR20060119716A
KR20060119716A KR1020057022647A KR20057022647A KR20060119716A KR 20060119716 A KR20060119716 A KR 20060119716A KR 1020057022647 A KR1020057022647 A KR 1020057022647A KR 20057022647 A KR20057022647 A KR 20057022647A KR 20060119716 A KR20060119716 A KR 20060119716A
Authority
KR
South Korea
Prior art keywords
value
key
input
mkey
applying
Prior art date
Application number
KR1020057022647A
Other languages
English (en)
Other versions
KR101086940B1 (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 KR20060119716A publication Critical patent/KR20060119716A/ko
Application granted granted Critical
Publication of KR101086940B1 publication Critical patent/KR101086940B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • 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
    • 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
    • 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/20Manipulating the length of blocks of bits, e.g. padding or block truncation
    • 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)
  • Physics & Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Storage Device Security (AREA)
  • Image Processing (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Lock And Its Accessories (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 발명의 목적은 메인 키에 기초하여 시퀀스 또는 서브 키를 생성하는 방법을 제안하는 것으로서, 여기서 각각의 서브키는 메인 키 또는 어떠한 다른 서브 키를 복구하기 위한 아무런 정보도 제공하지 않는다.
상기 목적은 메인 키(MKEY)에 기초하여 서브키를 생성하는 방법에 의해 달성된다. 상기 방법은, 선형 변화층(diversification layer)을 상기 메인 키(MKEY)에 제공하여 상기 메인 키(MKEY)를 상수와 혼합함으로써 제 1 값(A1)을 획득하는 단계와; 상기 제 1 값(A1)에 비선형 변환을 적용하는 단계를 포함한다. 상기 변환 단계는, 상기 제 1 값(A1)을 치환층에 제공함으로써 제 2 값(A2)을 획득하는 단계 -상기 치환층은 적어도 하나의 치환 박스(sbox)를 포함하고, 각각의 치환 박스는 상기 입력이 포인터로서 작용하고 지시된 상수가 출력으로서 작용하는 적어도 하나의 상수 테이블을 포함함- 와; 상기 제 2 값(A2)에 기초하여 다중 순열 유형의 확산 박스를 이용하여 제 3 값(A3)을 획득하는 단계와; 상기 제 3 값(A3)을 동일한 사이즈의 N 개의 블록으로 분할하여 N 개의 블록에 의해 형성된 제 4 출력 값(A4)을 획득하는 단계 -상기 제 4 값(A4)의 각 블록은 제 3 값(A3)의 N-1 블록의 조합의 결과이고, 손실 블록은 동일한 인덱스의 블록임- 와; 치환층(시그마)을 상기 제 4 값(A4)에 적용하여 제 5 값(A5)을 획득하는 단계와; 대칭 암호화 모듈(SENC)을 제 5 값(A5)에 적용하여 상기 서브 키(RKEY)를 획득하는 단계 -상기 제 1 값(A1)은 이 모듈에 대한 키 입력으로서 작용함- 를 포함한다.

Description

의사 랜덤 시퀀스 생성 방법{METHOD FOR GENERATING PSEUDO-RANDOM SEQUENCE}
본 발명은 제 1 시드(seed) 또는 키에 기초하여 암호로 안전한 의사 랜덤 시퀀스를 생성하는 방법에 관한 것이다.
많은 경우에, 기본 키에 의존하여 데이터 시퀀스를 생성하는 것이 필요하다. 첫 번째 응용 분야로는 예를 들어 10초마다 생성되며 핀 코드 외에 요구되는 식별 번호인 챌린지(challenge)를 생성하는 것이 있다. 이 식별 번호는 짧은 시간 동안만 유효하며, 제 3자로부터의 어떠한 응답도 회피한다. 이러한 생성기의 목적은 식별 목적으로 인쇄되어 사용자에게 전송된 구 스트라이크스루(strikethrough) 리스트를 대체하는 것이다.
다른 응용 분야는 복수의 라운드를 사용하는 암호 알고리즘으로 서브키를 생성하는 것이다. 그러면 각각이 하나의 라운드에 제공되는, 제 1 키는 다수의 서브키를 생성하도록 확장된다. 이러한 복수의 라운드 암호화 방법의 예는 미국특허 제 5,214,703 호에 개시되어 있다.
그러한 생성 방법의 두 가지 특징으로, 즉 하나의 시퀀스를 알고 있는 가운데 임의의 다른 시퀀스(또는 시드)를 예측할 수 없다는 것 및 어느 한 방향으로 시 퀀스를 재생하는 것이 기대된다. 두 번째 특징은, 암호 해독이 역순으로 서브키를 사용하는 것을 필요로 하기 때문에 시퀀스가 암호 서브키로서 사용되는 경우에 특히 사용된다.
일반적인 솔루션은 시드 또는 메인 키를 LFSR(Logical Feedback Shift Register)에 적용하는 것이다. LFSR 생성기는 이른 바 LRS(linear recursive sequence)를 생성하는데, 이것은 모든 연산이 선형이기 때문에 붙여진 명칭이다. 일반적으로, 반복 전의 시퀀스의 길이는 피드백 탭 및 초기 상태에 의존한다. 임의의 사이즈 m(레지스터의 수)의 LFSR은 기간 N=2m-1 동안 모든 가능한 상태를 생성할 수 있지만, 적절한 피드백 탭 또는 기간이 선택되는 경우에만 그러하다. 이러한 시퀀스는 최대 길이 시퀀스, 최대 시퀀스 또는 보다 덜 일반적으로는 최고 길이 시퀀스라고 한다.
기존의 방법은 암호 프로세스의 라운드를 공급하기 위해 서브키를 블록 단위로 생성하도록 이러한 시프트 레지스터의 출력을 사용한다.
상기 방법으로 생성된 하나의 시퀀스를 아는 것은 다른 시퀀스 또는 시드에 대해 액세스할 가능성을 여는 것으로 일반적으로 받아들여진다.
본 발명의 목적은 메인 키에 기초하여 시퀀스 또는 서브 키를 생성하는 방법을 제안하는 것으로서, 여기서 각각의 서브키는 메인 키 또는 어떠한 다른 서브 키를 복구하기 위한 아무런 정보도 제공하지 않는다.
이 목적은 메인 키(MKEY)에 기초하여 서브키를 생성하는 방법으로 달성되며, 상기 방법은, 선형 변화층(diversification layer)을 상기 메인 키(MKEY)에 적용하고 상기 메인 키(MKEY)를 상수와 혼합함으로써 제 1 값(A1)을 획득하는 단계와; 상기 제 1 값(A1)에 비선형 변환을 적용하는 단계를 포함하며, 상기 변환 단계는,
-상기 제 1 값(A1)을 치환층(substitution layer)에 적용함으로써 제 2 값(A2)을 획득하는 단계로서, 상기 치환층은 적어도 하나의 치환 박스(sbox)를 포함하고, 각각의 치환 박스는 상기 입력이 포인터로서 작용하고 지시된 상수가 출력으로서 작용하는 적어도 하나의 상수 테이블을 포함하는, 상기 단계와,
-상기 제 2 값(A2)에 기초하여 다중 순열 유형의 확산 박스를 이용하여 제 3 값(A3)을 획득하는 단계와,
-상기 제 3 값(A3)을 동일한 사이즈의 N 개의 블록으로 분할하여 N 개의 블록에 의해 형성된 제 4 출력 값(A4)을 획득하는 단계로서, 상기 제 4 값(A4)의 각 블록은 제 3 값(A3)의 N-1 블록의 조합의 결과이고, 손실 블록은 동일한 인덱스의 블록인, 상기 단계와,
-치환층(시그마)을 상기 제 4 값(A4)에 적용하여 제 7 값(A7)을 획득하는 단계와,
-대칭 암호화 모듈(SENC)을 제 7 값(A7)에 적용하여 상기 서브 키(RKEY)를 획득하는 단계로서, 상기 제 1 값(A1)은 이 모듈에 대한 키 입력으로서 작용하는, 상기 단계를 포함한다.
이 방법은 선형 변화 모듈에 기초한 제 1 레벨과 비선형 변화 모듈에 기초한 제 2 레벨로서 요약될 수 있다.
선형 변화는 메인 키를 의사 랜덤 값과 혼합함으로써 달성된다. 의사 랜덤 값을 생성하는 하나의 일반적인 방법은 LFSR 함수를 이용하는 것이다. 이 함수는 상수 테이블을 저장할 필요없이 신속하게 값을 생성하는데 사용된다.
LFSR은 제 1 상수에 의해 로딩되고 키 길이와 동일한 길이의 비트 스트림을 생성하도록 시프트된다. 그 다음에 이 비트 스트림은 메인 키와 혼합되어(XOR) 값(A1)을 생성한다.
제 2 레벨의 목표는 값(A1)의 비선형 변화를 생성하는 것이다.
이 레벨은 다섯 개의 메인 층을 포함한다. 제 1 층은 치환층이다.
치환층의 목표는 임의의 단순한 대수 관계식 없이 입력 값을 출력 값으로 변환시키는 것이다. 예상 혼란 결과를 달성하기 위한 가장 빠른 방법은 상수를 포함하는 룩업 테이블을 사용하는 것이다.
이 실시예에서는 입력 데이터가 32 비트의 길이를 갖기 때문에, 상수의 수는 각각이 32 비트 길이의 232이 될 것이다.
바람직한 실시예에 따르면, 입력 데이터는 8 비트 길이의 그룹으로 분리되며 따라서 상수의 수가 256 바이트로 감소한다.
그 다음에, 32 비트 또는 64 비트의 입력 데이터가 8 비트의 바이트로 분할되며 치환 박스에 적용되어 8 비트의 출력을 획득한다. 입력 데이터는 어드레스 포인터로서 사용되고 지시된 상수는 출력이다.
구현 방법에 따라서, 상수 테이블은 입력 데이터의 모든 그룹에 대해 동일하다(32 비트 또는 64 비트). 다른 실시예에서는, 상수 테이블이 입력 데이터의 각 그룹에 대해 상이하다.
이 테이블에 저장된 상수는 모두 상이한 수의 고정된 순열이며, 테이블 폭과 동일한 비트 수에 의해 인코딩된다.
이 비선형 레벨의 제 2 메인 층은 다중 순열 행렬이다. 다중 순열 행렬은 모든 가능한 정방 서브 행렬이 0이 아닌 행렬식을 가지며, 행렬의 요소는 유한 필드의 요소인 특성을 갖는 정방 행렬이다. 혼합 동작은 입력 요소의 벡터에 행렬을 곱하여 그 결과 출력이 되도록 정의되는 벡터를 생성하는 단계를 포함한다.
제 3 층은 혼합층이다. 입력 값은 동일한 사이즈를 갖는 여러 블록으로 분할된다. 주어진 입력 블록(i)에 있어서, 출력 블록(i)은 블록 i를 제외하고는 모든 입력 블록의 XOR 함수의 결과이다.
제 4 층은 입력 값에 제 1 층과 동일한 연산을 적용하는 다른 치환층이다.
제 5 층은 복수의 라운드 암호화 방법의 단일 암호화 단계이다. 입력 값은 선행 층의 결과이고 키는 선형 변화층, 즉 A1의 결과로부터 취해진다.
DES, CAST 또는 IDEA와 같은 다양한 암호화 방법이 적용될 수 있다. 이 층이 목적은 양호한 변화를 보장하는 것, 즉 입력 데이터의 높은 확산을 달성하는 것이다.
본 발명의 일특정 실시예에서, 암호화 라운드에 대해 이전의 층을 재사용하는 것이 흥미롭다. 이 때문에, 기존의 암호화 라운드를 재이용하는 대신에, 출력 값(RA)을 획득하기 위해 다음 단계들이 입력 값(A5)에 대해 암호화 라운드로서 실행된다:
- 입력 값(A5)을 적어도 두 개의 값(Y0L, Y0R)으로 분할하는 단계
- 적어도 두 값(Y0L, Y0R)을 혼합하여 혼합된 값(Y1)을 형성하는 단계
- 값(A1)의 제 1 부분(A1H)을 값(Y1)과 혼합하여 값(Y2)을 획득하는 단계
- 값(Y2)을 치환층에 적용하여 값(Y3)을 획득하는 단계로서, 치환층은 적어도 하나의 치환 박스(sbox)를 포함하고, 각각의 치환 박스는 입력이 포인터로서 작용하고 지시된 상수가 출력으로서 작용하는 적어도 하나의 상수 테이블을 포함하는, 상기 단계
- 값(Y3)에 기초하여 복수의 순열 유형의 확산 박스를 이용하여 값(Y4)을 획득하는 단계
- 값(A1)의 제 2 부분(A1L)을 값(Y4)과 혼합하여 값(Y5)을 획득하는 단계
- 값(Y5)에 치환층을 적용하여 값(Y6)을 획득하는 단계
- 서브 키(RA)의 제 1 부분(RAH)을 값(Y6)과 혼합하여 값(Y7)을 획득하는 단계
- 값(Y7)을 적어도 두 최초 값(Y0L, Y0R)과 혼합하여 이 암호화 라운드의 출력 값(RA)을 나타내는 적어도 두 값(Y8L, Y8R)을 획득하는 단계.
다른 실시예에 따르면, 상기 값을 치환층에 적용하기 전에 부가적인 변환이 값(A4)에 추가된다.
상기 변환은 XOR 함수에 의해 실행된, 상수에 의한 단순한 가산이다.
제공된 키 길이가 메인 키(R)의 사이즈와 다른 경우에, 현재의 키는 메인 키와 동일한 사이즈를 갖도록 먼저 조정된다.
현재의 키의 사이즈가 메인 키보다 더 큰 경우에, 이 키는 절단되며 나머지 비트는 절단된 부분에 가산된다(XOR 함수).
현재의 키 사이즈가 메인 키보다 더 작으면, 패딩이 추가된다. 이 패딩이 변화의 질을 감소시키는 것을 회피하기 위해, 이 패딩은 패딩 비트가 결과의 키를 따라서 모두 확산되도록 현재의 키로 혼합된다.
전술한 특징은 암호적으로 안전하다는 점과, 양방향, 순방향 및 역방향 모드에서 생성된다는 점과, 가변 길이, 바람직하게는 8 비트 블록의 메인 키를 사용한다는 점과 같은 이점을 갖는 서브 키를 생성하도록 허용한다.
도 1은 메인 키에 기초한 서브 키 생성의 블록도.
도 2는 128 비트 입력 키 및 64 비트 출력 키에 기초한 비선형 모듈을 도시한 도면.
도 3은 256 비트 입력 키 및 64 비트 출력 키에 기초한 비선형 모듈을 도시한 도면.
도 4는 암호 프로세스에서의 메인 모듈의 블록도.
도 5는 두 개의 MOD 모듈 및 오르소모피즘(orthomorphism) 함수(OR)를 이용하는 암호 프로세스를 도시한 도면.
도 6은 오르소모피즘 함수의 블록도.
도 7은 메인 암호 모듈(MOD)의 내부 부분을 도시한 도면.
도 1은 키 생성의 주요한 구조를 도시한 도면이다. 제 1 단계는 키 길이 조정(LA) 단계이다. 이 예에서 입력 키(AKEY)는 예상 사이즈보다 더 작은 사이즈를 갖는다. 프로세스(PPr)는 입력 키(AKEY)에 패딩 데이터를 추가하며 따라서 그 사이즈는 정상 사이즈로 된다. 이 패딩 데이터는 단순히 키의 단부에 추가된다. 그 결과의 키(PKEY)는 정상 사이즈, 예를 들면, 128 또는 256 비트를 갖는다.
제 2 프로세스는 패딩 혼합 프로세스(MPr)이다. 패딩 데이터가 항상 동일한 위치에 있지 않도록 패딩 데이터를 키 내에서 혼합하는 것은 중요하다. 혼합은 입력으로서 길이가 ek(비트로 표현된)인 키(PKEY)를 취하는 피보나치 반복을 통해 이루어진다. 보다 형식적으로는, 패딩된 키(PKEY)가 ek/8 바이트 PKEY1(8)(0≤i≤ek/8-1)의 어레이로서 표현되고, 다음에 따라 혼합된다:
Figure 112005068662300-PCT00001
다음 단계는 선형 변화부(DPr)인 변화(diversification) 단계(LD)이다. 입력 키가 이미 예상 사이즈를 갖고 있는 경우, 이 키는 MKEY 레지스터에 바로 로딩될 것이다.
변화부(DPr)의 목적은 키(MKEY)를 초기화 벡터와 혼합시킴으로써 키(MKEY)의 선형 변화를 생성하는 것이다. 생성된 각각의 서브 키에 대하여, 초기화 벡터는 상이하다. 이 초기화 벡터를 생성하기 위해 상이한 실시예가 사용될 수 있다.
가장 간단한 방법은 상수 어레이를 저장하는 것으로서, 각 상수는 키 사이즈와 동일한 사이즈를 가지며 초기화 벡터로서 작용한다. 초기화 벡터의 수는 암호 프로세스에 사용된 라운드의 수 또는 시스템에 의해 사용된 서브 키의 수에 의존한다.
제 2 실시예에서는, 초기화 벡터가 LFSR(Linear Feedback Shift Register)을 이용하는 의사 랜덤 스트림에 기초하는 변화부(DPr)를 통해 생성된다. 최초 상수는 LFSR(이 예에서는 24 비트)로 로딩되고, 이 레지스터의 출력, 즉 초기화 벡터는 키(MKEY)와 혼합되어 키(DKEY)를 생성한다.
이 실시예는, 초기화 벡터가 저장되지는 않지만 LFSR에 의해 생성되고, 최초 상수만이 저장되거나 또는 알고리즘의 일부가 되기 때문에, 저장된 데이터 량을 최소화한다는 이점을 갖는다.
제 3 실시예에서는, 키 자체가 LFSR에 로딩되고, LFSR 출력은 바로 다음 모듈의 입력, 즉 키(DKEY)이다.
비선형 변화 단계(NLD)라고 하는 다음 단계는 비선형 모듈(NLxPr)이다. 이 단계는 도 2 및 도 3에 상세하게 도시되어 있다.
도 2에서 키(DKEY)(값(A1)에 대응함)는 네 부분으로 분할되어, 적어도 하나의 치환 박스(sbox)를 포함하는 치환층 시그마에 적용되며, 각각의 치환 박스는, 입력이 포인터 역할을 하고 지정된 상수가 출력으로 작용하는 상수 테이블을 포함한다. 출력 데이터(A2)는 시그마 박스의 출력이다. 이 상수 테이블을 생성하는 한 방법은 의사 랜덤 생성기를 사용하는 것이다. 테이블을 생성하는 경우, 이 테 이블 내의 각각의 상수가 유일하도록 모든 이중 값을 제거해야 한다.
실시에 따라서, 본 실시예에서의 각 박스가 8 비트 데이터 입력을 갖기 때문에 치환 박스(sbox)의 수는 변할 수 있다. 시그마 모듈에 적용된 입력 데이터는 8 비트 길이의 부분들로 분할되어 치환 박스로 적용된다. 그 다음에 각 박스의 출력이 연결되어 모듈 시그마의 출력을 형성한다.
다음 단계는 다중 순열 유형의 행렬(mu)이다. 이 행렬은 (n,n) 다중 순열 유형의 확산 박스 내에 있다. 하나의 mu 블록의 입력은 n 입력 벡터로 분할된다. 이 예에서는, 4 개의 요소로 이루어진 행렬을 선택한다. 이 확산 박스는 네 개의 입력 벡터(Aa, Ab, Ac, Ad)에 정방 행렬 4×4 Mu4를 곱하는데, 이들 요소는 256 개의 요소로 채워진 유한 필드에 속하며, 이들 요소는 Mu(i,j)로 표현되는데, 여기서 i는 행 인덱스이고 j는 열 인덱스이다. 입력 벡터(Aa, Ab, Ac, Ad)에 행렬 Mu4를 곱한 결과는 벡터(Ya, Yb, Yc, Yd)로서, 이들 값은 다음과 같이 획득된다.
Ya = Mu4(1,1)*Aa + Mu4(1,2)*Ab + Mu4(1,3)*Ac + Mu4(1,4)*Ad
Yb = Mu4(2,1)*Aa + Mu4(2,2)*Ab + Mu4(2,3)*Ac + Mu4(2,4)*Ad
Yc = Mu4(3,1)*Aa + Mu4(3,2)*Ab + Mu4(3,3)*Ac + Mu4(3,4)*Ad
Yd = Mu4(4,1)*Aa + Mu4(4,2)*Ab + Mu4(4,3)*Ac + Mu4(4,4)*Ad
여기서, "+"는 유한 필드에서의 덧셈을 나타내고, "*"는 곱셈을 나타낸다. Mu4의 요소는 위 네개의 수식을 평가하는데 필요한 계산의 양이 최소가 되도록 선택된다. 따라서 상수 "1"(이하에서는 "아이덴티티"로 표기됨)에 의한 곱셈의 수는 가능한 한 많게 선택되었다.
mu 블록의 출력 값(A3)은 네 개의 출력 값(Ya, Yb, Yc, Yd)의 결합이다.
다음 단계는 혼합 단계이다. 이 단계는 값(A3)을 동일한 사이즈의 N 개의 블록으로 분할하는 단계와, N 블록에 의해 형성된 출력 값(A4)을 획득하는 단계를 포함하며, 값(A4)의 각각의 블록은 값(A3)의 N-1 개의 블록의 조합의 결과이며, 소실 블록은 동일한 인덱스의 블록이다.
도 2의 예에서, 블록의 수는 4이다. 세 개의 나머지 블록은 함께 혼합되어 값(A4)의 부분을 형성한다.
다음 단계는 예측불가능한 요소가 프로세스에 삽입되도록 상수를 가산하는 가산 단계이다.
이 결과의 값(A5)은 조건부 인버터에 적용되는데, 즉 패딩 데이터가 입력 키(AKEY)에 가산되는 경우에 반전이 인에이블된다. 인에이블되면, 값(A5)의 모든 비트가 반전되어 값(A6)을 획득한다. 반전은 패딩된 데이터가 입력 키(AKEY)에 가산된 경우에 이루어진다. 이 단계의 목표는 풀 사이즈 키 및 패딩키가 사용되는 경우에 상이한 동작을 갖는 것이다. 보다 작은 키가 입력되고 패딩 데이터가 가산되는 경우에 풀 사이즈 키는 이론적으로는 동일한 값을 가질 수 있다. 입력 키를 완성하여 예상 사이즈를 갖도록 패딩 정보가 가산되는 경우에, 데이터(A5)의 반전이 이루어져서 생성 프로세스 중에 가산 변화를 도입한다.
그 다음에 결과의 값(A6)이 전술한 치환층 시그마에 적용된다.
치환층(A7)의 출력 값은 두 요소의 혼합에 의해 사이즈가 반으로 감소한다.
그 다음에 이 감소된 값(A8)이, 키가 프로세스의 메인 입력(즉, DKEY)으로부 터 취해지는 대칭 암호화 모듈(SENC)에 적용된다. 전술한 바와 같이, 이 모듈은 기본적으로 간단한 대칭 암호화 프로세스이다. 본 발명의 범주 내에서, IDEA, DES와 같은 공지되어 있는 암호화 프로세스를 이용하는 대신에, 동일 출원인의 특허 출원 EP 03011696.6에 개시된 프로세스를 이용하여 암호화 프로세스가 수행된다. 이 문헌은 참조로서 본 명세서에 포함된다. 라운드의 최소 수는 전체 키(DKEY)가 사용되도록 결정된다. 이 키는 암호화 단계의 입력 사이즈보다 더 길기 때문에, 이 키는 분할되어 직렬로 접속된 상이한 라운드에 적용된다.
이 암호화 프로세스는 도 4 내지 7을 참조하여 설명한다.
도 4는 모듈(MOD)을 나타내는 암호화 프로세스의 개략도이다. 이 예에서 각각 32 비트의 두 부분(X0L, X0R)으로 나타낸 64 비트 엔트리 데이터는 먼저 혼합 요소(MX) 내에서 혼합되어 X1 값을 획득한다. 혼합 요소의 목적은 32 비트 데이터의 두 배의 32 비트 이미지를 제공하는 것이다. 이것은 모듈로를 추가한 XOR 함수, 또는 임의의 그룹의 법칙을 이용하는 것과 같은 여러 방법으로 달성될 수 있다.
다음 단계는 32 비트 입력(X1) 및 32 비트 출력(X7)을 가지며 서브키(DK)를 이용하는 블록(f32)으로 도시되어 있다. 이 블록에 대한 상세한 설명은 도 7을 참조하여 한다(하기 참조).
블록(f32)의 출력(X7)은 두 엔트리(X0L, X0R)와 접속되는 두 개의 혼합 블록(MX)에 제공된다.
그 결과의 데이터(X8L, X8R)는 모듈로(MOD)의 두 개의 64 비트 출력(X8)을 나타낸다.
도 5는 두 개의 동일한 모듈(MOD), 즉 MOD1 및 MOD2를 사용하는 전체 암호화 프로세스를 나타낸다. 입력 데이터(A8)는 길이가 각각 32비트인 두 값(X0L1, X0R1)에 의해 형성된다.
대칭 암호화 프로세스는 도 2에 SENC로 도시되어 있다. 이 모듈은 도 5의 블록도에 대응한다.
다음으로 출력(X0L1 및 X0R1)이 제 1 모듈(MOD1)의 엔트리로서 사용된다. 이 제 1 모듈은 제 1 서브키(DK1)를 사용하여 데이터를 처리한다. DK1은 메인 키(DKEY)의 일부이다. X0L1 및 X0R1에 대한 처리는 도 4에 따라 설명한 것과 동일하다. 이 제 1 모듈(MOD1)의 출력은 2 개의 출력(X8L1, X8R1)이다. 오르소모피즘(orthomorphism) 함수가 이들 출력들 중 하나에 적용되는데, 도 5에 도시된 바와 같이 예를 들어 X8L1에 적용된다. 이 오르소모피즘 함수로부터의 출력은 X0L2로서 표시되어 있다. 제 1 모듈(MOD1)에 의한 처리로 인한 다른 값(X8R1) 및 오르소모피즘 함수로 인한 출력(X0L2)이 제 2 처리 모듈(MOD2)에서 입력으로서 사용된다. 모듈(MOR)은 이 모듈의 출력 중 하나의 출력 내의 오르소모피즘 함수(OR)와의 모듈(MOD)의 결과이다.
이 제 2 모듈(MOD2)은 메인 키(DKEY)의 제 2 부분(DK2)에 기초하여 입력 데이터를 처리한다. 이 제 2 모듈의 출력은 도 4에 X8L2 및 X8R2로서 도시되어 있다. 이들 출력은 어셈블러 모듈(AS) 내에서 서브 키(RKEY)를 형성하도록 어셈블링된다.
이 어셈블러 모듈(AS)의 기능은 X8L2에 대해서는 최하위 비트를 선택하고 X8R2에 대해서는 최상위 비트를 선택하거나, 또는 X8L2에 대해서는 홀수 비트를 선택하고 X8R2에 대해서는 짝수 비트를 선택하는 것과 같이 다른 방법으로 달성될 수 있다. RKEY의 모든 비트가 X8L2 및 X8R2에 포함된다면 결과 데이터(RKEY)를 어셈블링하는 다른 방법이 사용될 수 있다.
도 7은 도 4의 블록(f32)의 함수를 상세하게 도시한 것이다. 이 블록에서, 32 비트 길이의 데이터(X1)가 입력이다. 이 데이터는 분리 블록(SPMU)을 통해 8 비트 길이(X1a, X1b, X1c, X1d)의 블록으로 분리되는데, 이것은 도 7에서 X1'으로 표시되어 있다.
이 블록은 입력 데이터(X1)를 분리하여 결과의 값(X1a, X1b, X1c, X1d)의 모든 비트가 X1에 존재하도록 하는 함수를 갖는다. 이들 네 개의 값은 관련 모듈(MOR 또는 MOD)에 따라서 DK1 또는 DK2일 수 있는 키(DK)의 최상위 값(DKH)과 혼합되어, 네 개의 값(X2a, X2b, X2c, X2d)을 형성한다.
두 개의 서브 키(DKL, DKH)의 생성은 분리 모듈(SP)에 의해 이루어진다.
이들 값(X2a, X2d)은 각각 적어도 하나의 치환 박스(sbox)를 포함하는 치환층에 제공되며, 각각의 치환 박스는, 입력이 포인터로서 작용하고 지정된 상수가 출력으로서 작용하는 상수 테이블을 포함한다. 출력 데이터는 도 7에서 X3a, X3b, X3c, X3d(값(X3)을 형성함)로 도시되어 있다.
이 치환층은 도 2를 참조하여 모듈 시그마를 설명하면서 이미 설명하였다. 그 결과의 값은 X3이다.
동일한 방법이 도 2의 mu 모듈에 대응하는 Mu4 모듈에 대해서 동일하게 적용된다. 그 결과의 값은 X4이다.
그 다음에 데이터의 출력 데이터(X4)가 서브 키(DK)의 제 2 부분(DKL)과 혼합되어 값(X5a, X5b, X5c, X5d)(값 X5를 형성함)을 획득한다.
이들 값(X5a 내지 X5d)은 값(X6a, X6b, X6c, X6d)(값(X6)을 형성함)을 획득하기 위해 각각 치환 블록(sbox)에 제공된다. 이들 값은 서브 키(DK)의 제 1 부분(DKH)과 혼합되어 새로운 값(X7a, X7b, X7c, X7d)(값(X7)을 형성함)을 획득한다.
그 다음에, 이들 값(X7a, X7b, X7c, X7d)은 어셈블링되어 도 5를 참조하여 설명한 바와 같이 어셈블러 모듈(AS) 내에서 출력 데이터(X7)를 형성한다. 이 데이터는 도 4에서 블록(f32)의 출력 데이터(X7)에 대응한다.
도 6은 오르소모피즘 함수의 일실시예를 도시한 것이다. 입력 데이터는 ZI로 표시되고 출력 데이터는 ZO로 표시된다. 데이터 길이는 이 함수에 있어서 중요하지 않다. 입력 데이터(ZI)는 분리 모듈(SP)을 사용하여 동일한 사이즈의 두 개의 값(ZL, ZR)으로 먼저 분할된다. 그 다음에, 두 값은 이른바 MX 혼합 요소와 혼합되고, 이 요소의 출력은 어셈블러 유닛(AS)에 적용된다. 다른 분리 값(ZR)은 수정없이 어셈블러 모듈(A)에 직접 적용된다. 이 모듈은 두 개의 입력을 포함하고, 이들 데이터를 결합하여 출력 값(ZO)을 형성한다. 이 모듈은 분리 모듈(SP)과 반대로 작동한다. 이 예의 특징은 어셈블러 모듈의 입력이 분리 모듈(SP)의 출력에 대해 교차된다는 것이다. 분리 모듈(SP)의 우측 출력(ZR)은 어셈블러 모듈(AS)의 좌측 입력에 적용되고, 분리 모듈(SP)의 좌측 출력(ZL)은 분리 모듈(SP)의 다른 출 력과 혼합된 후에, 어셈블러 모듈(AS)의 우측 입력에 적용된다.
도 3은 메인 키(DKEY)에 기초하여 서브키(RKEY)를 생성하는 다른 예이다. 제한된 사이즈의 데이터만 처리할 수 있는 모듈로, 더 긴 키가 처리되는 경우, 입력 키(DKEY)를 보다 많은 요소로 분할하여 병렬로 처리할 필요가 있다. 도 2와 관련하여 설명한 원리는 값(A4)을 형성하는 경우를 제외하고는 동일하다.
단순화를 위해, 값(X3)으로부터 함께 혼합된 요소의 수는 세 개로 제한된다.
대칭 암호화 프로세스(SENC)의 단계에서, 입력 키(DKEY)는 네 부분으로 분할되어 세 개의 독립적인 암호화 모듈(MOR64)에 적용되며, 세 개의 모듈은 결과 값의 반에 적용된 오르소모피즘 함수를 갖는다. 최종 모듈(MOD64)은 오르소모피즘 함수가 없는 하나의 라운드 암호화 프로세스이다.
값(A8)으로부터 RKEY까지, 암호화 프로세스는 네 개의 라운드에서 행해지고, 각 라운드는 입력 키(DKEY)의 한 부분을 이용한다. 처음 세 개의 라운드는 모듈(MOR)을 이용, 즉 MD 모듈의 출력 중의 하나에 오르소모피즘 함수를 갖고 있고, 최종 라운드는 MOD 유형, 즉 오르소모피즘 함수가 없다.
한가지 중요한 점은 역순으로 서브키를 생성하는 것이다. 이것은 특히 서브키가 복수의 라운드 암호화 프로세스에서 사용될 때 유용하다.
이것은 선형 변화부(DPr)의 단계에서 이루어진다. 키(MKEY)와 혼합하는데 사용된 초기화 벡터 세트는 역순으로 제공된다. 초기화 벡터가 LFSR에 의해 생성되는 경우, 레지스터는 역순으로(역방향 프로세스(backward process)) 클록킹되고, 레지스터에 로딩된 최초 값은 순방향 프로세스(forward process) 동안 사용된 최종 초기화 벡터를 나타내는 최종 값이다.

Claims (6)

  1. 메인 키(MKEY)에 기초하여 서브키를 생성하는 방법에 있어서,
    선형 변화층(diversification layer)을 상기 메인 키(MKEY)에 적용하여 상기 메인 키(MKEY)를 상수와 혼합함으로써 제 1 값(A1)을 획득하는 단계와,
    상기 제 1 값(A1)에 비선형 변환을 적용하는 단계를 포함하며, 상기 변환 단계는,
    상기 제 1 값(A1)을 치환층에 적용함으로써 제 2 값(A2)을 획득하는 단계로서, 상기 치환층은 적어도 하나의 치환 박스(sbox)를 포함하고, 각각의 치환 박스는 상기 입력이 포인터로서 작용하고 지시된 상수가 출력으로서 작용하는 적어도 하나의 상수 테이블을 포함하는, 상기 제 2 값 획득 단계와,
    상기 제 2 값(A2)에 기초하여 다중 순열 유형의 확산 박스를 이용하여 제 3 값(A3)을 획득하는 단계와,
    상기 제 3 값(A3)을 동일한 사이즈의 N 개의 블록으로 분할하여 N 개의 블록에 의해 형성된 제 4 출력 값(A4)을 획득하는 단계로서, 상기 제 4 값(A4)의 각 블록은 제 3 값(A3)의 N-1 블록의 조합의 결과이고, 손실 블록은 동일한 인덱스의 블록인, 상기 제 4 값 획득 단계와,
    치환층(시그마)을 상기 제 4 값(A4)에 적용하여 제 7 값(A7)을 획득하는 단계와,
    대칭 암호화 모듈(SENC)을 제 7 값(A7)에 적용하여 상기 서브 키(RKEY)를 획득하는 단계로서, 상기 제 1 값(A1)은 이 모듈에 대한 키 입력으로서 작용하는, 상기 서브 키 획득 단계를 포함하는 것을 특징으로 하는 서브키 생성 방법.
  2. 제 1 항에 있어서,
    제공된 키(AKEY)는 상기 메인 키(MKEY)보다 더 작은 사이즈이고,
    상기 방법은
    상기 제공된 키(AKEY)를 상기 메인 키(MKEY)의 사이즈까지 완성시키기 위해 패딩 데이터를 추가하는 단계와, 패딩 비트가 결과의 키(DKEY)를 따라서 확산되도록 상기 제공된 키(AKEY)와 상기 패딩 데이터를 혼합하는 단계에 따라서, 상기 제공된 키(AKEY)로부터 상기 메인 키(MKEY)를 획득하는 단계를 포함하는 것을 특징으로 하는 서브키 생성 방법.
  3. 제 1 항 또는 2 항에 있어서,
    상기 제 1 값(A1)을 획득하기 위해 상기 메인 키(MKEY)와 혼합된 상수는 제 1 상수로 로딩된 LFSR을 이용하여 의사 랜덤하게 생성되는 것을 특징으로 하는 서브키 생성 방법.
  4. 제 1 항 내지 3 항 중 어느 한 항에 있어서,
    상기 대칭 암호화 모듈(SENC)의 상기 입력 사이즈가 상기 제 7 값(A7)의 사이즈보다 더 작은 경우에, 상기 제 7 값(A7)을 2의 배수로 나누고 결과부를 상기 대칭 암호화 모듈(SENC)의 입력 사이즈까지 두 개 단위로 혼합하는 단계를 포함하는 것을 특징으로 하는 서브키 생성 방법.
  5. 제 1 항 내지 4 항 중 어느 한 항에 있어서,
    상기 치환층(시그마)에 적용하기 전에 상기 제 4 값(A4)에 상수가 가산되는 것을 특징으로 하는 서브키 생성 방법.
  6. 제 2 항 내지 5 항 중 어느 한 항에 있어서,
    패딩 데이터가 상기 제공된 키(AKEY)에 가산되는 동안 상기 치환층(시그마)의 입력 값(A6)의 모든 비트에 반전이 이루어지는 것을 특징으로 하는 서브키 생성 방법.
KR1020057022647A 2003-09-05 2004-09-02 의사 랜덤 시퀀스 생성 방법 KR101086940B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP03103307A EP1513285A1 (en) 2003-09-05 2003-09-05 Method for generating pseudo-random sequence
EP03103307.9 2003-09-05
PCT/EP2004/052020 WO2005025123A1 (en) 2003-09-05 2004-09-02 Method for generating pseudo-random sequence

Publications (2)

Publication Number Publication Date
KR20060119716A true KR20060119716A (ko) 2006-11-24
KR101086940B1 KR101086940B1 (ko) 2011-11-29

Family

ID=34130323

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057022647A KR101086940B1 (ko) 2003-09-05 2004-09-02 의사 랜덤 시퀀스 생성 방법

Country Status (23)

Country Link
US (1) US7512241B2 (ko)
EP (2) EP1513285A1 (ko)
JP (1) JP4673857B2 (ko)
KR (1) KR101086940B1 (ko)
CN (1) CN100574183C (ko)
AP (1) AP1949A (ko)
AT (1) ATE407493T1 (ko)
AU (1) AU2004302919B2 (ko)
BR (1) BRPI0411184A (ko)
CA (1) CA2525541C (ko)
DE (1) DE602004016350D1 (ko)
DK (1) DK1661296T3 (ko)
EA (1) EA008677B1 (ko)
ES (1) ES2314453T3 (ko)
HK (1) HK1085592A1 (ko)
HR (1) HRP20080526T3 (ko)
IL (1) IL171934A (ko)
NO (1) NO20055403L (ko)
NZ (1) NZ543948A (ko)
PL (1) PL1661296T3 (ko)
PT (1) PT1661296E (ko)
SI (1) SI1661296T1 (ko)
WO (1) WO2005025123A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100622128B1 (ko) * 2004-12-17 2006-09-19 한국전자통신연구원 병렬 처리 축소 키 생성기
US7602906B2 (en) * 2005-08-25 2009-10-13 Microsoft Corporation Cipher for disk encryption
US8145691B2 (en) 2006-02-24 2012-03-27 Novell, Inc. Techniques for random bit generation
WO2011136614A2 (ko) * 2010-04-29 2011-11-03 동국대학교 산학협력단 이산화된 카오스 함수를 이용한 암호 시스템
US9135834B2 (en) * 2013-04-30 2015-09-15 The United Sates of America as represented by the Secretary of the Air Force Apparatus and method to prevent side channel power attacks in advanced encryption standard using floating point operation
US9160523B2 (en) * 2013-04-30 2015-10-13 The United States Of America As Represented By The Secretary Of The Air Force Apparatus and method to prevent side channel power attacks in advanced encryption standard
ES2924347T3 (es) * 2015-03-26 2022-10-06 Nagravision Sa Método y sistema para buscar al menos un dato específico en una unidad de usuario
RU2632119C9 (ru) * 2016-06-02 2017-11-22 Андрей Валерьевич Менячихин Устройство для построения ортоморфизмов, использующее парные разности
US10402169B2 (en) * 2017-07-12 2019-09-03 Dell Products L.P. Method and system of secure random seed generation for a cryptographically secure pseudo-random number generator
US10361627B1 (en) * 2018-09-12 2019-07-23 Texas Instruments Incorporated Reduction of low frequency noise in a discrete spread spectrum timebase
CN110909375B (zh) * 2019-10-12 2022-04-08 浙江工业大学 一种保留分布特征的地址脱敏方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US44651A (en) * 1864-10-11 Improvement in cider-mills
JPH06342257A (ja) * 1993-06-02 1994-12-13 Matsushita Electric Ind Co Ltd 逐次暗号方式
US5404402A (en) * 1993-12-21 1995-04-04 Gi Corporation Clock frequency modulation for secure microprocessors
US5745577A (en) * 1996-07-25 1998-04-28 Northern Telecom Limited Symmetric cryptographic system for data encryption
US6182216B1 (en) * 1997-09-17 2001-01-30 Frank C. Luyster Block cipher method
JPH11224183A (ja) * 1998-02-05 1999-08-17 Toyo Commun Equip Co Ltd 擬似乱数発生装置
US6189095B1 (en) * 1998-06-05 2001-02-13 International Business Machines Corporation Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks
JP3679936B2 (ja) * 1998-11-27 2005-08-03 東芝ソリューション株式会社 暗復号装置及び記憶媒体
EP1142191B1 (en) * 1998-12-30 2006-08-09 Nokia Corporation Method and device for cryptographically processing data
US6578061B1 (en) * 1999-01-19 2003-06-10 Nippon Telegraph And Telephone Corporation Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon
US6763363B1 (en) * 1999-12-02 2004-07-13 Honeywell International Inc. Computer efficient linear feedback shift register
US6804355B1 (en) * 2000-01-06 2004-10-12 Intel Corporation Block cipher for small selectable block sizes
US6891951B2 (en) * 2000-01-21 2005-05-10 Victor Company Of Japan, Ltd. Cryptosystem-related method and apparatus
US20020044651A1 (en) * 2000-05-16 2002-04-18 Tuvell Walter E. Method and apparatus for improving the security of cryptographic ciphers
JP2005527853A (ja) * 2002-05-23 2005-09-15 アトメル・コーポレイション 高度暗号化規格(aes)のハードウェア暗号法エンジン
CN1384621A (zh) * 2002-06-21 2002-12-11 清华大学 量子密钥分配中的加速全效及扩容方法
US7028059B2 (en) * 2002-06-24 2006-04-11 Sun Microsystems, Inc. Apparatus and method for random number generation

Also Published As

Publication number Publication date
DE602004016350D1 (de) 2008-10-16
IL171934A (en) 2010-11-30
SI1661296T1 (sl) 2009-02-28
KR101086940B1 (ko) 2011-11-29
CN1813439A (zh) 2006-08-02
NO20055403L (no) 2005-11-18
EA200501622A1 (ru) 2006-08-25
EA008677B1 (ru) 2007-06-29
HK1085592A1 (en) 2006-08-25
EP1661296A1 (en) 2006-05-31
DK1661296T3 (da) 2008-12-08
US7512241B2 (en) 2009-03-31
NZ543948A (en) 2007-08-31
CA2525541C (en) 2013-03-26
IL171934A0 (en) 2006-04-10
JP4673857B2 (ja) 2011-04-20
AP2005003444A0 (en) 2005-12-31
ES2314453T3 (es) 2009-03-16
AU2004302919A1 (en) 2005-03-17
JP2007532935A (ja) 2007-11-15
HRP20080526T3 (en) 2008-11-30
PL1661296T3 (pl) 2009-02-27
US20050053233A1 (en) 2005-03-10
AU2004302919B2 (en) 2009-03-05
CA2525541A1 (en) 2005-03-17
ATE407493T1 (de) 2008-09-15
AP1949A (en) 2009-02-05
PT1661296E (pt) 2008-10-08
CN100574183C (zh) 2009-12-23
WO2005025123A1 (en) 2005-03-17
EP1513285A1 (en) 2005-03-09
EP1661296B1 (en) 2008-09-03
BRPI0411184A (pt) 2006-07-25

Similar Documents

Publication Publication Date Title
US5745577A (en) Symmetric cryptographic system for data encryption
EP0839418B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
US5442705A (en) Hardware arrangement for enciphering bit blocks while renewing a key at each iteration
JP4052480B2 (ja) 疑似乱数発生方法、疑似乱数発生器、及び疑似乱数発生プログラム
WO2001067425A1 (fr) Systeme de chiffrage de blocs utilisant la conversion auxiliaire
US20020051534A1 (en) Cryptographic system with enhanced encryption function and cipher key for data encryption standard
US20110211691A1 (en) Common key block encryption device, common key block encryption method, and program
JPH0863097A (ja) データを暗号化するための対称暗号化方法およびシステム
JP2005527853A (ja) 高度暗号化規格(aes)のハードウェア暗号法エンジン
US8000471B2 (en) Robust cipher design
JP4663635B2 (ja) データのブロックを暗号化及び復号化するための装置が実行する方法
KR101086940B1 (ko) 의사 랜덤 시퀀스 생성 방법
US8437470B2 (en) Method and system for block cipher encryption
Masoodi et al. Symmetric Algorithms I
JPH10240500A (ja) 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム
KR101131167B1 (ko) 스트림 암호를 위한 키수열 발생 방법 및 장치. 블록 암호를 위한 S-box 및 상기 S-box에서의 치환 방법
Carter et al. Key schedule classification of the AES candidates
Abdulwahed Chaos-Based Advanced Encryption Standard
Biham et al. Differential cryptanalysis of Q
Gueron et al. Masked inversion in GF (2n) using mixed field representations and its efficient implementation for AES
JP3748184B2 (ja) 秘話通信装置
KR20050019086A (ko) 진보된 암호화 표준(aes)의 하드웨어 암호 엔진
Nakahara Jr Key-Shedule Analysis of AES Candidates
Pieprzyk et al. Private-Key Cryptosystems
MDC Symmetric key cryptography

Legal Events

Date Code Title Description
N231 Notification of change of applicant
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: 20141107

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151105

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161111

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171109

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181106

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20191108

Year of fee payment: 9