KR100954224B1 - 오프셋 코드북 암호화 장치 - Google Patents

오프셋 코드북 암호화 장치 Download PDF

Info

Publication number
KR100954224B1
KR100954224B1 KR1020070112443A KR20070112443A KR100954224B1 KR 100954224 B1 KR100954224 B1 KR 100954224B1 KR 1020070112443 A KR1020070112443 A KR 1020070112443A KR 20070112443 A KR20070112443 A KR 20070112443A KR 100954224 B1 KR100954224 B1 KR 100954224B1
Authority
KR
South Korea
Prior art keywords
value
offset
exclusive
function
operator
Prior art date
Application number
KR1020070112443A
Other languages
English (en)
Other versions
KR20090046349A (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 한국전자통신연구원
Priority to KR1020070112443A priority Critical patent/KR100954224B1/ko
Publication of KR20090046349A publication Critical patent/KR20090046349A/ko
Application granted granted Critical
Publication of KR100954224B1 publication Critical patent/KR100954224B1/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
    • 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]

Landscapes

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

Abstract

본 발명은 오프셋 코드북 암호화 장치에 관한 것으로, 외부로부터 입력되는 값을 블록 암호화하는 블록 암호 연산부; 미리 설정된 초기 값이 상기 블록 암호 연산부에서 블록 암호화되어 생성된 오프셋 함수 초기 값을 저장하는 제 1 레지스터; 상기 오프셋 함수 초기 값을 입력받아 상기 오프셋 함수 초기 값에 상응하는 오프셋 함수 값을 생성하는 오프셋 함수 생성기; 상기 오프셋 함수 값 및 미리 설정된 임시 값을 입력받아 배타적 논리합하는 제 1 배타적 논리합 연산기; 및 상기 제 1 배타적 논리합 연산기의 출력 값이 상기 블록 암호 연산부에서 블록 암호화되어 생성된 오프셋 값을 저장하는 제 2 레지스터를 포함한다.
상기와 같은 본 발명은 암복호 처리에 필요한 일련의 과정을 CPU의 도움 없이 하드웨어로 처리함으로써 고속 처리가 가능한 이점이 있다.
Figure R1020070112443
오프셋 코드북, OCB, Offset code book

Description

오프셋 코드북 암호화 장치{Apparatus for offset code book coding}
본 발명은 오프셋 코드북 암호화 장치에 관한 것이다.
특히 본 발명은 복잡한 알고리즘을 가지는 오프셋 코드북 암호화 방법을 소프트웨어적인 방법을 사용하지 않고 하드웨어적으로 구현하여 대용량 암호화 처리 및 신속한 처리가 가능한 오프셋 코드북 암호화 장치에 관한 것이다.
오프셋 코드북(OCB : Offset code book) 방식은 하나의 키를 가지고 데이터의 기밀성과 인증을 동시에 처리할 수 있는 새로운 동작 모드이며, 블록 암호 연산기를 중심으로 오프셋 값을 결합하는 다소 복잡한 과정으로 동작한다. 오프셋 코드북 동작 모드는 암호화 결과를 랜덤하게 생성하기 위해, 초기값이나 카운터 값 대신에 임시값(N : Nonce) 값을 사용하는 데, 이 값은 하나의 세션에 대해서 중복해서 사용할 수 없다.
이러한 오프셋 코드북 동작 모드는 암복호화와 인증이 한 번의 계산 절차로 처리되어 별도의MAC (Message Authentication Code) 계산 과정이 필요 없으므로 고 속 구현에 적합하며, MAC 연산기에 필요한 하드웨어 자원을 절약할 수 있는 장점을 가진다. 또한 다수의 메시지 블록에 대한 병렬처리가 가능하기 때문에 파이프라이닝 기법을 통한 고속 구현에도 유리하다.
특히 오프셋 코드북 모드는 현재 IEEE 802.11i 무선랜 표준으로 채택되어, 선택 구현 사양으로 지정되어 있다. 따라서 오프셋 코드북 방식의 암호화의 수요가 매우 증가할 것으로 기대된다. 그러나 오프셋 코드북 방식은 연산 방법이 복잡하여 소프트웨어적으로 구현될 경우 많은 처리 부하가 걸릴 수 있어 빠르고 대용량의 처리에 적합하도록 하드웨어적인 구성이 요청되어왔다.
본 발명은 오프셋 코드북 암호화 장치를 제공하는 것을 목적으로 한다.
또한 본 발명은 기존 동작 모드들보다 복잡한 방식으로 동작하는 오프셋 코드북 모드를 소프트웨어의 도움 없이 하드웨어적으로만 고속으로 처리할 수 있는 오프셋 코드북 암호화 장치를 제공하는데 있다
상술한 목적들을 달성하기 위하여, 본 발명의 일 측면에 따른 오프셋 코드북 암호화 장치는, 외부로부터 입력되는 값을 블록 암호화하는 블록 암호 연산부; 미리 설정된 초기 값이 상기 블록 암호 연산부에서 블록 암호화되어 생성된 오프셋 함수 초기 값을 저장하는 제 1 레지스터; 상기 오프셋 함수 초기 값을 입력받아 상기 오프셋 함수 초기 값에 상응하는 오프셋 함수 값을 생성하는 오프셋 함수 생성기; 상기 오프셋 함수 값 및 미리 설정된 임시 값을 입력받아 배타적 논리합하는 제 1 배타적 논리합 연산기; 및 상기 제 1 배타적 논리합 연산기의 출력 값이 상기 블록 암호 연산부에서 블록 암호화되어 생성된 오프셋 값을 저장하는 제 2 레지스터를 포함한다.
바람직한 실시 예에 있어서, 상기 블록 암호 연산부에 입력되는 값을 다중화하는 제 1 다중화기를 더 포함할 수 있다. 또한, 상기 미리 설정된 초기 값을 저장하는 제 3 레지스터를 더 포함할 수 있다. 또한, 상기 오프셋 함수 생성기는, 제 1 유한체 연산기 및 제 2 유한체 연산기; 선택 신호를 생성하는 다중화기 선택 신호 생성기; 및 상기 제 1 유한체 연산기와 상기 제 2 유한체 연산기에서 연산된 결과 및 상기 선택 신호를 입력받아 상기 오프셋 함수 값을 생성하는 제 2 다중화기를 포함할 수 있다.
또한, 상기 다중화기 선택 신호 생성기는, 상기 다중화기 선택 신호 생성기에 입력되는 값을 2진수로 표현하였을 때 최하위 비트로부터 연속적인 '0'의 개수에 상응하여 상기 선택 신호를 생성할 수 있다. 또한, 상기 오프셋 코드북 암호화 장치는, 상기 오프셋 값 및 상기 오프셋 함수 값을 입력받아 배타적 논리합하는 제 2 배타적 논리합 연산기를 더 포함하고, 상기 제 2 레지스터는 상기 제 2 배타적 논리합 연산기로부터 출력되는 값에 미리 설정된 상수를 곱한 값을 상기 오프셋 값으로 갱신하여 저장할 수 있다. 또한, 상기 오프셋 코드북 암호화 장치는, 갱신된 상기 오프셋 값 및 암호화할 입력 문장 함수를 배타적 논리합하는 제 3 배타적 논리합 연산기; 및 상기 제 3 배타적 논리합 연산기로부터 출력된 값이 상기 블록 암호 연산부에서 블록 암호화되어 생성된 값 및 갱신된 상기 오프셋 값을 배타적 논리합하여 출력 문장 함수를 생성하는 제 4 배타적 논리합 연산기를 더 포함할 수 있다.
또한, 상기 오프셋 코드북 암호화 장치는, 검사 합계 값을 갱신하여 저장하는 제 4 레지스터; 및 암호화할 입력 문장 함수 및 상기 제 4 레지스터에 저장된 검사 합계 값을 배타적 논리합하여 상기 제 4 레지스터에 저장하는 제 5 배타적 논리합 연산기를 더 포함할 수 있다. 또한, 상기 오프셋 코드북 암호화 장치는, 상기 오프셋 값의 최종 값, 상기 오프셋 함수 값의 최초 값 및 상기 암호화할 입력 문장 함수의 길이 값을 배타적 논리합하는 제 6 배타적 논리합 연산기를 더 포함하고, 상기 제 4 배타적 논리합 연산기는 상기 제 6 배타적 논리합 연산기로부터 출력되는 값이 상기 블록 암호 연산부에서 블록 암호화되어 생성된 값과 상기 암호화할 입력 문장 함수를 배타적 논리합하여 출력 문장 함수 최종 값을 생성할 수 있다. 또한, 상기 오프셋 코드북 암호화 장치는, 상기 검사 합계 값 및 상기 오프셋 값을 배타적 논리합하는 제 7 배타적 논리합 연산기를 더 포함하고, 상기 블록 암호 연산부는 상기 제 7 배타적 논리합 연산기로부터 출력된 값을 블록 암호화하여 인증용 태그를 생성할 수 있다.
본 발명은 오프셋 코드북 암호화 장치를 제공할 수 있다.
또한 본 발명은 기존 동작 모드들보다 복잡한 방식으로 동작하는 오프셋 코 드북 모드를 소프트웨어의 도움 없이 하드웨어적으로만 고속으로 처리할 수 있는 오프셋 코드북 암호화 장치를 제공할 수 있다.
이하 첨부된 도면을 참조하여 본 발명에 따른 오프셋 코드북 암호화 장치에 대하여 상세히 설명한다.
도 1은 본 발명에 따른 오프셋 코드북 암호화 장치에 대한 전체적인 구성을 나타낸 도면이다.
도 1을 참조하면 본 발명에 따른 오프셋 코드북 암호화 장치는 블록 암호 연산부(101), 다중화기(103), 오프셋 함수 초기값 레지스터(105), 임시값 레지스터(107), 오프셋 값 레지스터(109), 검사합계 레지스터(111), 오프셋 함수 생성기(113) 및 제어회로(115)를 포함하여 구성되며 그 밖에 다수의 배타적 논리합 연산장치와 다중화 장치를 더 포함한다.
이러한 오프셋 코드북 암호화 장치는 기존의 암호화 방법보다 복잡한 오프셋 코드북 암호화 알고리즘을 소프트웨어적인 처리 없이 하드웨어에서 바로 구현할 수 있어 고속 동작이 가능하고 메인 프로세서에 부담을 줄일 수 있다.
본 발명에서 블록 암호 연산부(101)는 입력되는 신호에 따라 블록 암호화 연산을 수행하는 기능을 담당한다. 이러한 블록 암호화 연산은 기존에 공지된 여러 가지 효율적인 알고리즘이 존재하며, 상기 블록 암호 연산부(101)는 공지된 알고리즘을 하드웨어적으로 구현한 것이다.
다중화기(103)는 상기 블록 암호 연산부(101)에서 처리할 입력 신호를 다중화하는 역할을 담당한다. 본 도면에서 확인할 수 있는 바와 같이 블록 암호 연산부가 처리할 수 있는 비트 수가 128bit라면 상기 다중화기(103)는 외부로부터 입력되는 신호를 블록 암호 연산부(101)에서 처리할 수 있는 비트 수인 128bit로 다중화시키는 역할을 담당한다.
또한, 상기 참조부호가 표시된 다중화기 뿐만 아니라 본 도면에서 표시되는 다수의 다중화기는 모두 입력 신호를 다중화하는 역할을 담당한다.
오프셋 함수 초기값 레지스터(105)는 상기 블록 암호 연산부(101)에서 출력되는 신호 중 초기 오프셋 값을 생성시키기 위한 오프셋 함수 초기값을 저장하는 역할을 담당한다.
임시값 레지스터(107)는 본원 발명이 적용되는 오프셋 코드북 암호화 과정에서 암호화 결과가 난수로 발생할 수 있도록 하기 위하여 사용되는 임시(Nonce)값을 저장하는 레지스터이다.
오프셋 값 레지스터(109)는 본 발명에서 사용되는 초기 오프셋 값을 저장하고 또한 블록 암호화 함수값을 저장하는 역할을 담당하는 부분이다.
검사합계 레지스터(111) 본 발명에서 이용되는 검사 합계(Checksum)값을 저장하는 역할을 담당하는 레지스터이다.
오프셋 함수 생성기(113)는 본 발명에서 사용되는 오프셋 함수(L(j))를 생성하는 역할을 담당한다. 이러한 오프셋 함수 생성기(113)의 세부 구성은 이하의 도면에서 좀 더 자세하게 설명할 것이다.
제어회로(115)는 본 발명의 오프셋 코드북 암호화 장치의 진행을 전체적으로 제어하는 역할을 담당한다.
이러한 구성 장치와 더불어, 본 발명에서 오프셋 코드북 암호화 알고리즘을 하드웨어적으로 구성하기 위하여 신호에 대하여 배타적 논리합(XOR : eXclusive OR)연산을 수행하는 수 개의 배타적 논리합 연산자가 추가로 포함된다.
이렇게 구성된 회로의 동작에 대해서는 이하의 도면 5에서부터 자세하게 설명하도록 한다.
도 2는 본 발명이 적용되는 오프셋 함수 생성기의 내부 구조를 나타내는 도면이다.
도 2를 참조하면 본 발명에 따른 오프셋 함수 생성기(200)는 유한체 연산기 x(210), x-1(220), 다중화기(240) 및 다중화기 선택신호 생성기(NTZ)(230)를 포함한다.
이러한 오프셋 함수 생성기는 오프셋 함수 초기값(L(0))이 입력되면 유한체 연산기 x(210) 및 x-1(220)을 통하여 연산된 신호를 다중화기(240)를 통하여 선택하여 오프셋 함수(L(j))로서 출력된다. 이러한 오프셋 함수(L(j))는 다중화기 선택신호 생성기(NTZ)(230)에서 생성된 선택신호 j에 따라 선택된 값이다. 이러한 다중화기 선택신호 생성기(NTZ)(230)에서 선택되는 j 값은 상기 다중화기 선택신호 생성기(230)에 입력되는 i 값을 2진수로 표현했을 때 최하위 비트로부터 연속적인 '0' 의 개수를 나타낸다. 또한 오프셋 함수 L(j) 값은 상기 유한체 연산기를 본 도면에서처럼 여러 번 거쳐서 계산되며, 이러한 계산 회수는 입력 문장 함수M이 m 개의 블록으로 구성되어 M=M[1]||M[2]||....M[m]과 같이 표현된다면, 오프셋 함수의 최대 계산 값인 도면의 L(u)에서 u 값은 u=[log2 m]과 같이 계산될 수 있다.
도 3은 본 발명이 적용되는 오프셋 코드북 암호화 장치에서 유한체 연산기의 구조의 일 실시예를 나타내는 도면이다.
도 3을 참조하면 상기 참조번호 310의 경우 유한체 연산기 x의 내부 구조를 나타내며 참조번호 320은 x-1의 내부 구조를 나타낸다.
이러한 유한체 생성기는 본 도면에서는 유한체 GF(2n)의 감산 다항식이 p(x) = x128+x7+x2+x+1인 경우를 예시로서 나타내었다. 이러한 경우 상기 유한체 연산기에서 배타적 논리합 연산(311, 321)을 3개 사용하여 간단하게 구현될 수 있다. 즉 상기 도면에서 확인할 수 있는 바와 같이 상기 다항식에서 표시되는 항의 경우 2입력 배타적 논리합을 사용하여 표시된다.
도 4는 본 발명에서 적용되는 오프셋 코드북 암호화의 실행 단계를 구분한 도면이다.
도 4를 참조하면, 본 발명에서는 오프셋 코드북 암호화의 단계를 오프셋 함 수 초기값 생성 단계(410), 메시지 블록 암호화 단계(420), 최종 메시지 블록 암호화 단계(430) 및 인증용 태그 계산 단계(440)로 구분한다.
오프셋 함수 초기값 생성 단계(410)는 오프셋 코드북 암호화 과정에서 임시값(N) 및 오프셋 함수 초기값(L)을 이용하여 오프셋 값을 계산하는 단계를 의미한다.
메시지 블록 암호화 단계(420)는 암호화 되지 않은 입력 문장을 블록화한 입력 문장 함수(M(i)) 값의 각 블록에 대하여 상기 오프셋 함수 초기값 생성 단계(410)에서 설정된 오프셋 값에 상응하여 형성된 블록 암호화 함수(Z(i))를 이용하여 블록 암호화(Ek)를 수행하여 출력 문장 함수(C(i))를 생성하는 과정이다.
최종 메시지 블록 암호화 단계(430)는 입력 문장 함수의 최후 블록(M(m))에 대하여 블록 암호화(Ek)를 수행하여 출력 문장 함수의 최후 블록(C(m))을 생성하는 과정이다.
인증용 태그 계산 단계(440)는 상기의 메시지 블록 암호화를 수행하면서 계산된 검사 합계값(Checksum)을 이용하여 인증용 태그(T)를 계산하는 과정이다.
상기와 같은 4 단계의 오프셋 코드북 암호화 과정은 모두 하드웨어적인 회로로 구성되어 동작하여, 소프트웨어적인 계산이 없으며, 이러한 소프트웨어적인 계산이 없음으로 빠르고 대용량의 암호화 처리가 가능하다.
도 5 내지 도 10은 본 발명의 오프셋 코드북 암호화 장치가 각 단계에서 수 행되는 경로를 나타내는 도면이다.
본 발명이 적용되는 오프셋 코드북 암호화 방법은
Figure 112007079490314-pat00001
와 같은 수식으로 표현될 수 있다.
여기서 상기 L 값은 오프셋 함수 초기값으로 표현되며, Ek()는 블록 암호화, R은 오프셋 값, Z(i)는 블록 암호화 함수, M(i)은 입력 문장 함수, C(i)는 출력 문장 함수, N은 임시값, C(m)는 출력 문장함수 최종블록 값, Z(m)는 블록 암호화 함수 최종 블록 값으로 나타나며,
Figure 112007079490314-pat00002
값은 부가 상수이고 len(M(m))은 입력 문장의 블록 길이를 나타낸다.
본 발명의 도면 5 내지 10은 상기의 알고리즘을 하드웨어적으로 구현한 것으 로 상기 도 4에서 설명된 각 단계에 맞춰서 상기 오프셋 코드북 암호화의 각 단계에서 본 발명의 회로가 동작하는 방법을 나타낸 것이다.
우선 도 5는 오프셋 함수 초기값(L)을 생성하기 위한 회로의 움직임을 나타낸 도면이다.
도 5를 참조하면, 상기 도면에서 굵은 화살표로 표시된 경로(500)가 오프셋 함수 초기값(L)을 생성하기 위한 회로의 동작 경로를 나타낸다.
상기 오프셋 함수 초기값(L)은 오프셋 함수를 생성하기 위하여 필요한 값으로 상기 알고리즘에서 확인할 수 있는 바와 같이 오프셋 함수 초기값(L) = Ek(0n)값이다.
따라서 상기 참조 번호 500의 화살표의 시작 지점의 초기값(501)은 128비트가 모두 '0'으로 채워진 값을 말하며, 이렇게 128비트의 0이 다중화기(103)를 거쳐 블록 암호 연산부에서 Ek(0128)연산을 수행되고 그 값이 오프셋 함수 초기값 레지스터(105)에 저장된다.
도 6은 오프셋 값(R)을 생성하기 위한 회로의 움직임을 나타낸 도면이다.
도 6을 참조하면, 상기 도면에서 굵은 화살표로 표시된 경로(600)가 오프셋 값(R)을 생성하기 위한 회로의 동작 경로를 나타낸다.
오프셋 값(R)은 오프셋 코드북 알고리즘에서
Figure 112007079490314-pat00003
로서 나타 난다.
이러한 알고리즘이 회로에서 구현되면 상기 화살표(600)의 시작점에서 임시값 레지스터(107) 저장된 임시값(N)과 상기 도면 5에서 결정된 오프셋 함수 초기값을 이용한 오프셋 함수 값L(0)을 배타적 논리합(601)한다. 그런 다음 그 신호를 블록 암호 연산부에서 블록 암호화(101)를 수행하고 수행된 신호를 오프셋 값 저장 레지스터(109)에 저장한다. 이러한 과정을 거쳐서 오프셋 값(R)이 저장된다.
도 7은 블록 암호화 함수(Z(i))를 생성하기 위한 회로의 움직임을 나타낸 도면이다.
도 7을 참조하면, 상기 도면에서 굵은 화살표로 표시된 경로(700)가 블록 암호화 함수(Z(i))를 생성하기 위한 회로의 동작 경로를 나타낸다.
블록 암호화 함수(Z(i))는 오프셋 코드북 알고리즘에서
Figure 112007079490314-pat00004
로서 나타난다. 특히 Z(i) 값은 입력 문장이 분리된 블록의 수만큼 반복해서 나타나야 하므로 본 도면의 경로(700)에서와 같이 동일한 레지스터에 값이 계속 반복하여 갱신되는 형태로 나타난다.
상기 Z(i) 값의 구현 회로는 상기 도면 6에서 오프셋 값 레지스터에 저장된 R 값이 상기 참조 부호 700 경로를 따라 상기 오프셋 함수 생성기에서 생성된 L 값과 배타적 논리합(701) 연산되어 다시 오프셋 값 레지스터(109)에 갱신된다. 이러한 값은 입력 문장이 나눠진 블록의 개수만큼 반복되어 갱신된다. 한 편
Figure 112007079490314-pat00005
값에 대해서는 본 도면에서 생략하였는데 이는
Figure 112007079490314-pat00006
값이 상수로서 회로의 구성에 크게 영향을 미지치 않기 때문이다.
도 8은 출력 문장 함수(C(i))를 생성하기 위한 회로의 움직임을 나타낸 도면이다.
도 8을 참조하면, 상기 도면에서 굵은 화살표로 표시된 참조 번호 800 경로가 출력 문장 함수(C(i))를 생성하기 위한 회로의 동작 경로를 나타낸다. 한편으로 참조 번호 819 경로는 검사합계 값(Checksum)을 갱신하기 위한 경로를 표시한다.
출력 문장 함수(C(i))는 오프셋 코드북 암호화 알고리즘에서는
Figure 112007079490314-pat00007
로서 나타난다.
이를 회로에서 나타내면 상기 도7에서 설정된 Z(i) 값이 입력 문장함수와 우선 배타적 논리합(801)되고 그런 다음 블록 암호 연산부(101)에서 계산된 신호를 블록 암호 연산한 다음 그 결과 값을 다시 상기 오프셋 값 레지스터(109)에서 출력된 신호와 배타적 논리합(803)되어 출력된다.
한편으로 검사합계 값(Checksum)의 갱신은 오프셋 코드북 알고리즘에서
Figure 112007079490314-pat00008
에서
Figure 112007079490314-pat00009
부분을 계산하는 과정이다. 따라서 상기 참조번호 810 화살표에서 확인할 수 있는 바와 같이 입력 문장함수 M(i)(811)과 검사합계 레지스터(111)에 포함된 그 전 블록의 입력 문장함수 M(i-1)이 배타적 논리합(813)되어 다시 검사합계 레지스 터(111)에 갱신된다.
도 9는 출력 문장 함수 최종값(C(m))을 생성하기 위한 회로의 움직임을 나타낸 도면이다.
출력 문장 함수 최종값 C(m)는
Figure 112007079490314-pat00010
이라 하면
Y(m) = Ek(X(m))이고
최종
Figure 112007079490314-pat00011
이다. 여기서 len(M(m))은 입력 문장의 블록 길이를 나타낸다.
이러한 과정을 본 발명의 회로에서 나타내면 참조 번호 900의 경로 시작 지점에서 입력 문장 함수의 길이len(M(m))(901)과 오프셋 값 레지스터(109)에 저장된 Z(m) 값 및 오프셋 함수 생성기에서 생성된 L(-1) 값을 배타적 논리합(903)한다. 이 경로까지의 계산이 X(m) 값을 나타낸다.
여기서 오프셋 함수 생성기에서 생성된 L(-1)값은 상기 도면 2에서 확인할 수 있는 바와 같이
Figure 112007079490314-pat00012
을 나타낸다.
그런 다음 블록 암호 연산부(101)를 거쳐 블록 암호 연산을 하고 그 값이 Y(m)값을 나타낸다. 그 후 블록 암호화 연산이 끝난 Y(m) 값을 입력 문장함수(907)와 배타적 논리합(905)하여 출력 문장 함수 최종값 C(m)를 생성한다.
한편으로 상기 도면 8에서 끝까지 계산하지 않은 검사합계 값을 연산하는 경로가 참조번호 910 경로이다.
Figure 112007079490314-pat00013
에서
Figure 112007079490314-pat00014
은 상기 도면 8에서 연산되었으며 나머지
Figure 112007079490314-pat00015
부분을 연산하기 위하여 본 도면의 회로에서 상기 블록 암호 연산부(101)에서 출력된 Y(m)값과 출력 문장 함수 최종값C(m)에서 나머지 부분을 모두 '0'으로 채운C(m)0*을 배타적 논리합(911)하여 검사 합계 레지스터(111)로 저장한다.
도 10은 인증용 태그(T)를 생성하기 위한 회로의 움직임을 나타낸 도면이다.
인증용 태그(T)의 오프셋 코드북 알고리즘에서 계산은
Figure 112007079490314-pat00016
로서 표현되고,
이러한 알고리즘을 본 발명의 회로에서 나타내면, 상기 검사합계 레지스터(111)에 저장된 검사합계 값(Checksum)과 오프셋 값 레지스터(109)에 저장된 Z(m) 값을 배타적 논리합(1001)하고, 그 값이 블록 암호 연산부(101)에서 블록 암호 연산 되어 최종 인증용 태그(T)를 구성하게 된다.
상기의 도면 5내지 10의 각 단계에서 이용되는 여러 다중화 장치에서 신호 선택은 본 도면의 제어 회로(115)에서 제어할 수 있다.
본 발명은 상기 실시예에 한정되지 않으며, 많은 변형이 본 발명의 사상 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 가능함은 물론이다.
도 1은 본 발명에 따른 오프셋 코드북 암호화 장치에 대한 전체적인 구성을 나타낸 도면.
도 2는 본 발명이 적용되는 오프셋 함수 생성기의 내부 구조를 나타내는 도면.
도 3은 본 발명이 적용되는 오프셋 코드북 암호화 장치에서 유한체 연산기 구조의 일 실시예를 나타내는 도면.
도 4는 본 발명에서 적용되는 오프셋 코드북 암호화의 실행 단계를 구분한 도면.
도 5는 오프셋 함수 초기값(L)을 생성하기 위한 회로의 움직임을 나타낸 도면.
도 6은 오프셋 값(R)을 생성하기 위한 회로의 움직임을 나타낸 도면.
도 7은 블록 암호화 함수(Z(i))를 생성하기 위한 회로의 움직임을 나타낸 도면.
도 8은 출력 문장 함수(C(i))를 생성하기 위한 회로의 움직임을 나타낸 도면
도 9는 출력 문장 함수 최종값(C(m))을 생성하기 위한 회로의 움직임을 나타낸 도면.
도 10은 인증용 태그(T)를 생성하기 위한 회로의 움직임을 나타낸 도면.
<도면의 주요 부분에 대한 부호의 설명>
101 : 블록 암호 연산부
103 : 다중화기
105 : 오프셋 함수 초기값 레지스터
107 : 임시값 레지스터
109 : 오프셋 값 레지스터
111 : 검사합계 레지스터
113 : 오프셋 함수 생성기
115 : 제어회로

Claims (10)

  1. 외부로부터 입력되는 값을 블록 암호화하는 블록 암호 연산부;
    미리 설정된 초기 값이 상기 블록 암호 연산부에서 블록 암호화되어 생성된 오프셋 함수 초기 값을 저장하는 제 1 레지스터;
    상기 오프셋 함수 초기 값을 입력받아 상기 오프셋 함수 초기 값에 상응하는 오프셋 함수 값을 생성하는 오프셋 함수 생성기;
    상기 오프셋 함수 값 및 미리 설정된 임시 값을 입력받아 배타적 논리합하는 제 1 배타적 논리합 연산기; 및
    상기 제 1 배타적 논리합 연산기의 출력 값이 상기 블록 암호 연산부에서 블록 암호화되어 생성된 오프셋 값을 저장하는 제 2 레지스터
    를 포함하는 오프셋 코드북 암호화 장치.
  2. 제 1항에 있어서,
    상기 블록 암호 연산부에 입력되는 값을 다중화하는 제 1 다중화기
    를 더 포함하는 오프셋 코드북 암호화 장치.
  3. 제 1항에 있어서,
    상기 미리 설정된 초기 값을 저장하는 제 3 레지스터
    를 더 포함하는 오프셋 코드북 암호화 장치.
  4. 제 1항에 있어서, 상기 오프셋 함수 생성기는,
    제 1 유한체 연산기 및 제 2 유한체 연산기;
    선택 신호를 생성하는 다중화기 선택 신호 생성기; 및
    상기 제 1 유한체 연산기와 상기 제 2 유한체 연산기에서 연산된 결과 및 상기 선택 신호를 입력받아 상기 오프셋 함수 값을 생성하는 제 2 다중화기
    를 포함하는 오프셋 코드북 암호화 장치.
  5. 제 4항에 있어서, 상기 다중화기 선택 신호 생성기는,
    상기 다중화기 선택 신호 생성기에 입력되는 값을 2진수로 표현하였을 때 최하위 비트로부터 연속적인 '0'의 개수에 상응하여 상기 선택 신호를 생성하는
    오프셋 코드북 암호화 장치.
  6. 제 1항에 있어서,
    상기 오프셋 값 및 상기 오프셋 함수 값을 입력받아 배타적 논리합하는 제 2 배타적 논리합 연산기를 더 포함하고,
    상기 제 2 레지스터는 상기 제 2 배타적 논리합 연산기로부터 출력되는 값에 미리 설정된 상수를 곱한 값을 상기 오프셋 값으로 갱신하여 저장하는
    오프셋 코드북 암호화 장치.
  7. 제 6항에 있어서,
    갱신된 상기 오프셋 값 및 암호화할 입력 문장 함수를 배타적 논리합하는 제 3 배타적 논리합 연산기; 및
    상기 제 3 배타적 논리합 연산기로부터 출력된 값이 상기 블록 암호 연산부에서 블록 암호화되어 생성된 값 및 갱신된 상기 오프셋 값을 배타적 논리합하여 출력 문장 함수를 생성하는 제 4 배타적 논리합 연산기
    를 더 포함하는 오프셋 코드북 암호화 장치.
  8. 제 6항에 있어서,
    검사 합계 값을 갱신하여 저장하는 제 4 레지스터; 및
    암호화할 입력 문장 함수 및 상기 제 4 레지스터에 저장된 검사 합계 값을 배타적 논리합하여 상기 제 4 레지스터에 저장하는 제 5 배타적 논리합 연산기
    를 더 포함하는 오프셋 코드북 암호화 장치.
  9. 제 8항에 있어서,
    상기 오프셋 값의 최종 값, 상기 오프셋 함수 값의 최초 값 및 상기 암호화할 입력 문장 함수의 길이 값을 배타적 논리합하는 제 6 배타적 논리합 연산기를 더 포함하고,
    상기 제 4 배타적 논리합 연산기는 상기 제 6 배타적 논리합 연산기로부터 출력되는 값이 상기 블록 암호 연산부에서 블록 암호화되어 생성된 값과 상기 암호화할 입력 문장 함수를 배타적 논리합하여 출력 문장 함수 최종 값을 생성하는
    오프셋 코드북 암호화 장치.
  10. 제 8항에 있어서,
    상기 검사 합계 값 및 상기 오프셋 값을 배타적 논리합하는 제 7 배타적 논리합 연산기를 더 포함하고,
    상기 블록 암호 연산부는 상기 제 7 배타적 논리합 연산기로부터 출력된 값을 블록 암호화하여 인증용 태그를 생성하는
    오프셋 코드북 암호화 장치.
KR1020070112443A 2007-11-06 2007-11-06 오프셋 코드북 암호화 장치 KR100954224B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070112443A KR100954224B1 (ko) 2007-11-06 2007-11-06 오프셋 코드북 암호화 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070112443A KR100954224B1 (ko) 2007-11-06 2007-11-06 오프셋 코드북 암호화 장치

Publications (2)

Publication Number Publication Date
KR20090046349A KR20090046349A (ko) 2009-05-11
KR100954224B1 true KR100954224B1 (ko) 2010-04-21

Family

ID=40856227

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070112443A KR100954224B1 (ko) 2007-11-06 2007-11-06 오프셋 코드북 암호화 장치

Country Status (1)

Country Link
KR (1) KR100954224B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5438622A (en) * 1994-01-21 1995-08-01 Apple Computer, Inc. Method and apparatus for improving the security of an electronic codebook encryption scheme utilizing an offset in the pseudorandom sequence
US6243470B1 (en) * 1998-02-04 2001-06-05 International Business Machines Corporation Method and apparatus for advanced symmetric key block cipher with variable length key and block
KR20040074266A (ko) * 2003-02-17 2004-08-25 삼성전자주식회사 고속의 오프셋 코드북 모드를 위한 블럭 암호화 장치 및그 방법
US6996233B2 (en) 2003-06-19 2006-02-07 International Business Machines Corporation System and method for encrypting and verifying messages using three-phase encryption

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5438622A (en) * 1994-01-21 1995-08-01 Apple Computer, Inc. Method and apparatus for improving the security of an electronic codebook encryption scheme utilizing an offset in the pseudorandom sequence
US6243470B1 (en) * 1998-02-04 2001-06-05 International Business Machines Corporation Method and apparatus for advanced symmetric key block cipher with variable length key and block
KR20040074266A (ko) * 2003-02-17 2004-08-25 삼성전자주식회사 고속의 오프셋 코드북 모드를 위한 블럭 암호화 장치 및그 방법
US6996233B2 (en) 2003-06-19 2006-02-07 International Business Machines Corporation System and method for encrypting and verifying messages using three-phase encryption

Also Published As

Publication number Publication date
KR20090046349A (ko) 2009-05-11

Similar Documents

Publication Publication Date Title
JP5225414B2 (ja) 暗号演算装置
KR101143041B1 (ko) 리볼빙 버퍼들을 이용한 스트림 암호 설계 방법
JP5572610B2 (ja) セキュリティ強化のための転置データ変換
US20210021405A1 (en) Key sequence generation for cryptographic operations
JPWO2004032098A1 (ja) 疑似乱数発生方法及び疑似乱数発生器
JP2016505887A (ja) 乱数生成器及びストリーム暗号
JP6552184B2 (ja) 情報処理装置およびその方法
US20140317407A1 (en) Incremental mac tag generation device, method, and program, and message authentication device
CN108063760B (zh) 一种分组加密的方法及其系统、分组解密的方法
CN113098675A (zh) 基于多项式完全同态的二进制数据加密系统及方法
JP2003535500A (ja) 暗号化されたメッセージの妥当性を確認する方法
JP2007019789A (ja) 乱数共有システムおよび方法
CN117135291A (zh) 一种图像加密方法、系统、设备及介质
KR20100029871A (ko) Aes 라인달 알고리즘을 이용하는 암호화 및 복호화 장치와 그 방법
KR100954224B1 (ko) 오프셋 코드북 암호화 장치
JPH1117673A (ja) 共通鍵暗号通信方法及びその通信ネットワーク
KR20140116725A (ko) 블록 암호화 처리 방법 및 장치
JP5818768B2 (ja) マスク生成装置、情報処理装置、及びその方法、プログラム
CN117725605B (zh) 一种远端自动编制电子档案文件信息保密的方法和系统
US20240187213A1 (en) Galois extension field-based block cipher
KR100835718B1 (ko) Aes에서의 암호화 장치 및 그 방법
Datta et al. The CRYPSTER: a private key crypto system
JP3795315B2 (ja) 暗号化・復号化回路
JP2001358709A (ja) 暗号化装置、復号化装置、その方法及び記録媒体
KR20070110579A (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: 20130410

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140326

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160329

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee