KR100578550B1 - 스트림 암호를 이용한 메시지 인증 코드 구성 방법 - Google Patents

스트림 암호를 이용한 메시지 인증 코드 구성 방법 Download PDF

Info

Publication number
KR100578550B1
KR100578550B1 KR1020030095702A KR20030095702A KR100578550B1 KR 100578550 B1 KR100578550 B1 KR 100578550B1 KR 1020030095702 A KR1020030095702 A KR 1020030095702A KR 20030095702 A KR20030095702 A KR 20030095702A KR 100578550 B1 KR100578550 B1 KR 100578550B1
Authority
KR
South Korea
Prior art keywords
block
key
stream cipher
mac
message
Prior art date
Application number
KR1020030095702A
Other languages
English (en)
Other versions
KR20050064343A (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 KR1020030095702A priority Critical patent/KR100578550B1/ko
Publication of KR20050064343A publication Critical patent/KR20050064343A/ko
Application granted granted Critical
Publication of KR100578550B1 publication Critical patent/KR100578550B1/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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3

Landscapes

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

Abstract

본 발명은 보안 장비에서 많이 사용되고 있는 스트림 암호를 사용하여 별도의 블록 암호나 해쉬 함수를 사용하지 않고 메시지 무결성 함수인 MAC(Message Authentication Code)을 생성할 수 있고, 적은 비용과 적은 사이즈로 안전하고 효율적인 MAC을 구성할 수 있도록 하는 MAC 구성 방법에 관한 것이다.
본 발명의 MAC 구성 방법은, 입력 메시지를 스트림 암호의 초기치 사이즈의 블록들로 분할하는 단계와, 분할된 메시지 블록의 앞과 뒤에 각각 제 1키(
Figure 112006015260116-pat00001
)와 제 2키(
Figure 112006015260116-pat00002
)를 연접시키는 단계와, 연접된 블록들에서, 첫 번째 블록을 스트림 암호의 초기치로 사용하여 블록 크기만큼의 키 수열을 추출한 후, 그 결과를 두 번째 블록과 XOR하여 다시 스트림 암호의 초기치로 사용하여 블록 크기만큼의 키 수열을 추출하며, 이러한 과정을 모든 블록에 대해 진행하여 최종 블록에 대한 키 수열을 MAC 값으로 하는 단계로 이루어진다.
MAC, 스트림 암호, 연접, 키 수열, CBC, 블록 암호, 해쉬 함수, 메시지 인증

Description

스트림 암호를 이용한 메시지 인증 코드 구성 방법{Message Authentication Coding Method using the Stream Cipher}
도 1은 본 발명에 따른 메시지 인증 코드 구성 구조를 보인 도면.
본 발명은 메시지 인증 코드(MAC) 구성 방법에 관한 것으로, 상세하게는 스트림 암호를 사용하여 적은 비용과 적은 사이즈로 안전한 메시지 인증 코드 MAC을 구성하는 방법에 관한 것이다.
일반적으로 블록 암호를 사용한 MAC이나 해쉬 함수를 사용한 MAC은 많이 소개되어 왔으나, 스트림 암호를 사용한 MAC에 대하여는 거의 알려진 바가 없다.
단지, 매우 특별한 형태의 스트림 암호나 LFSR(Linear Feedback Shift Register)를 사용한 MAC 정도만 알려져 있고, 종래의 기술로는 일반적인 형태의 스트림 암호에 대하여 MAC을 생성하는 것은 어려운 것으로 알려져 왔다.
한편, 기존의 MAC 기능을 제공하는 함수는 크게 블록 암호 기반 MAC과 해쉬함수 기반 MAC으로 나눌 수 있다.
블록 암호 기반의 MAC으로는 CBC-MAC, Retail MAC, 3GPP MAC등이 있고, 해쉬 함수를 이용한 MAC으로는 prefix, appendix 및 envelope 방식 및 HMAC 등이 있다. 이 때 해쉬 함수로는 주로 MDx 계열과 SHA 계열을 많이 사용한다.
그러나, 이들 방식의 문제점은 블록 암호를 사용하지 않는 보안 모듈안에 블록 암호나 해쉬 함수를 추가하여야 하는 점이다. 이는 게이트 수를 늘이게 되고, 결과적으로 모듈의 크기, 가격, 전력 등을 증가시키는 요인이 된다. 따라서, 스트림 암호를 사용하는 보안 모듈에서는 MAC 기능을 구현하기에 어려움이 따랐다.
이러한 블록 암호 및 해쉬 함수 기반 MAC의 문제점에도 불구하고, 스트림 암호의 특성상, 해쉬 함수나 MAC을 구현하기에 어려움이 따랐기 때문에 아직까지 스트림 암호를 이용한 MAC이 제안되지 못하고 있으며, 단지 제한된 형태의 스트림 암호에 대하여만 이를 이용한 MAC이 제안되었을 뿐이다.
한편, 최근 소프트웨어 환경에 대해서도 고속 스트림 암호가 많이 제안되었기 때문에 이를 사용한다면 소프트웨어 환경에서도 매우 빠르고 효율적인 MAC의 구성이 가능할 것이다.
본 발명은 상술한 종래의 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 보안 장비에서 많이 사용되고 있는 스트림 암호를 사용하여 별도의 블록 암호나 해쉬 함수를 사용하지 않고 메시지 무결성 함수인 MAC을 생성할 수 있고, 적은 비용과 적은 사이즈로 안전하고 효율적인 MAC을 구성할 수 있도록 하는 스트림 암호 를 이용한 메시지 인증 코드(MAC) 구성 방법을 제공하는데 있다.
본 발명은 상기 요구에 부응하기 위해, 스트림 암호를 사용하여 CBC(Cipher Block Chaining)를 구성하고 이때 사용되는 블록의 양끝에 키를 연접시키는 방법을 사용함으로써, 안전하고 효율적인 MAC의 구성이 가능해진다.
상기 목적을 달성하기 위한 본 발명의 스트림 암호를 이용한 메시지 인증 코드 구성 방법은, 입력 메시지를 스트림 암호의 초기치 사이즈의 블록들로 분할하는 제 1단계; 상기 분할된 메시지 블록의 앞과 뒤에 각각 제 1키(
Figure 112006015260116-pat00003
)와 제 2키(
Figure 112006015260116-pat00004
)를 연접시키는 제 2단계; 및 상기 연접된 블록들에서, 첫 번째 블록을 스트림 암호의 초기치로 사용하여 블록 크기만큼의 키 수열을 추출한 후, 그 결과를 두 번째 블록과 XOR하여 다시 스트림 암호의 초기치로 사용하여 블록 크기만큼의 키 수열을 추출하며, 이러한 과정을 모든 블록에 대해 진행하여 최종 블록에 대한 키 수열을 MAC 값으로 하는 제 3단계;로 구성된다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다.
본 발명은, 스트림 암호를 이용하여 인증 코드를 만들 메시지를 입력한다. 이 때 메시지의 양끝에 키를 연접하여 다양한 공격에 내성을 갖도록 구성한다. 즉, 주어진 키||메시지||키를 사용하여 MAC의 입력으로 만들고, 주어진 크기로 블록을 나눈다. 다음으로 첫 번째 블록을 스트림 암호의 초기치로 사용하여 블록 크기만큼 의 키 수열을 뽑아낸 후, 이를 두 번째 블록과 XOR하여 다시 스트림 암호의 초기치로 사용하여 블록 크기만큼의 키수열을 뽑아낸다. 다음 블록에 대하여도 이와 같은 작업을 진행하여 최종 블록에 대한 키수열을 MAC 값으로 한다.
도 1은 본 발명에 따른 스트림 암호를 이용한 메시지 인증 코드(MAC) 구성 구조를 보인 도면으로, 도 1을 참조하여 본 발명의 MAC 구성 과정을 각 단계별로 설명하도록 한다.
첫째 단계로, MAC을 생성할 메시지를 스트림 암호의 초기치 사이즈의 크기로 나눈다. 이때, 마지막 블록의 나머지는 정해진 규칙에 따라서 패딩을 한다. 패딩하는 방법은 본 발명의 안전성에 영향을 주지 않기 때문에 시스템의 환경에 맞게 적절하게 한다. 이 때 생성된 메시지 블록의 개수가
Figure 112003049225391-pat00005
개라고 할 때, 각각의 메시지 블록을
Figure 112003049225391-pat00006
,
Figure 112003049225391-pat00007
,…,
Figure 112003049225391-pat00008
이라고 하자.
둘째 단계로, 메시지 블록에 키
Figure 112003049225391-pat00009
,
Figure 112003049225391-pat00010
를 앞뒤로 연접(concatenation)시킨다. 이 때 사용되는 키의 크기는 본 발명의 안전성을 좌우하는 요소가 된다. 따라서 특별한 경우가 아니라면 각각 80비트 이상으로 한다. 또한 이 때 사용되는 키
Figure 112003049225391-pat00011
,
Figure 112003049225391-pat00012
는 서로 다르거나 동일하거나에 관계없다. 이렇게 생성된 블록은 이제
Figure 112003049225391-pat00013
,
Figure 112003049225391-pat00014
,
Figure 112003049225391-pat00015
,…,
Figure 112003049225391-pat00016
,
Figure 112003049225391-pat00017
라고 하자.
셋째 단계로, 스트림 암호의 초기치에
Figure 112003049225391-pat00018
을 사용하여 나오는 출력을
Figure 112003049225391-pat00019
라고 할 때, 이를
Figure 112003049225391-pat00020
으로 표현하기로 하면, 본 발명에서 생성되는 MAC값은 다 음의 수학식 1과 같이 표현된다. 여기에서,
Figure 112003049225391-pat00021
는 키 수열 추출 함수이고
Figure 112003049225391-pat00022
는 그 추출된 키 수열이 된다.
Figure 112003049225391-pat00023
본 발명은 상기 수학식 1에 대하여 여러 가지 변형을 할 수 있다. 예를 들면,
Figure 112003049225391-pat00024
을 바로 사용하지 않고 대신에 초기치
Figure 112003049225391-pat00025
를 사용하여
Figure 112003049225391-pat00026
를 사용할 수도 있고, 이는
Figure 112003049225391-pat00027
에 대해서도 동일하게 적용할 수 있다.
또 다른 예로,
Figure 112003049225391-pat00028
대신에
Figure 112003049225391-pat00029
을 사용할 수도 있다. 이 외에도 본 발명의 안전성을 감소시키지 않는 변형들이 많이 존재한다.
상기된 바와 같은 본 발명은, 보안 시스템에서 널리 사용되고 있는 스트림 암호를 이용하여 별도의 시스템을 추가하지 않고도 간단하게 MAC 기능을 제공할 수 있도록 하고, 특히 모듈 형식으로 구성된 보안 시스템에서는 게이트 수가 모듈의 크기, 제작 단가 등을 결정하는 중요한 요소인데, 본 발명을 이용하게 되면 게이트 수를 크게 줄이고도 MAC 기능을 제공할 수 있다.
실재로 현재까지 알려진 MAC 기능은 블록 암호를 기반으로 한 것들이 많기 때문에, 많은 수의 게이트를 요구하는 블록 암호를 모듈 안에 장착하게 되면 제작 단가 및 사이즈가 현저하게 증가하게 된다. 이 외에도 해쉬 함수를 이용한 MAC을 장착하게 되어도 역시 같은 문제가 발생하게 된다. 하지만, 본 발명을 이용하여 MAC 기능을 제공하게 되면 작은 사이즈이면서 제작 단가가 싼 모듈을 구성할 수 있 다.
상기와 같은 본 발명의 스트림 암호를 이용한 메시지 인증 코드 구성 방법은 컴퓨터로 읽을 수 있는 기록 매체에 저장될 수 있다. 이러한 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있도록 프로그램 및 데이터가 저장되는 모든 종류의 기록매체를 포함하는 것으로, 그 예로는, 롬(Read Only Memory), 램(Random Access Memory), CD(Compact Disk)-Rom, DVD(Digital Video Disk)-Rom, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 이러한 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
상술한 바와 같이 본 발명에 따른 메시지 인증 코드 구성 방법은, 통신 보안 장비에서 많이 사용하고 있는 스트림 암호를 사용하여 메시지 무결성 기능을 제공하는 MAC을 생성함으로써 별도의 블록 암호나 해쉬 함수 없이 간단하게 MAC을 구성할 수 있도록 한다.
또한, 본 발명에서 사용하는 스트림 암호가 안전하다면 즉, 키스트림으로부터 초기치를 알 수 없다면, 사용된 키가 노출되지 않음을 수학적으로 증명할 수 있게 되고, 본 발명을 사용하여 보안 장비를 구성하게 되면 적은 비용과 노력으로 간단하면서도 안전한 메시지 무결성을 제공할 수 있을 것이다.
이상에서 설명한 것은 본 발명에 따른 스트림 암호를 이용한 메시지 인증 코 드 구성 방법을 실시하기 위한 하나의 실시예에 불과한 것으로서, 본 발명은 상기한 실시예에 한정되지 않고, 이하의 특허청구의 범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다.

Claims (6)

  1. 입력 메시지를 스트림 암호의 초기치 사이즈의 블록들로 분할하는 제 1단계;
    상기 분할된 메시지 블록의 앞과 뒤에 각각 제 1키(
    Figure 112006015260116-pat00047
    )와 제 2키(
    Figure 112006015260116-pat00048
    )를 연접시키는 제 2단계; 및
    상기 연접된 블록들에서, 아래의 수학식을 수행하여 첫 번째 블록을 스트림 암호의 초기치로 사용하여 블록 크기만큼의 키 수열을 추출한 후, 그 결과를 두 번째 블록과 XOR하여 다시 스트림 암호의 초기치로 사용하여 블록 크기만큼의 키 수열을 추출하며, 이러한 과정을 모든 블록에 대해 진행하여 최종 블록에 대한 키 수열을 MAC 값으로 하는 제 3단계;
    <수학식>
    Figure 112006015260116-pat00049
    여기에서,
    Figure 112006015260116-pat00050
    : 키 수열 추출 함수,
    Figure 112006015260116-pat00051
    ,
    Figure 112006015260116-pat00052
    ,…,
    Figure 112006015260116-pat00053
    : 입력 메시기에 대한 분할 블록들,
    Figure 112006015260116-pat00054
    ,
    Figure 112006015260116-pat00055
    : 연접된 제 1키 및 제 2키
    를 포함하는 것을 특징으로 하는 스트림 암호를 이용한 메시지 인증 코드 구성 방법.
  2. 제 1항에 있어서, 상기 제 2단계는,
    제 1키 및 제 2키는 각각 안전성을 확보할 수 있는 80비트 이상으로 하는 것을 특징으로 하는 스트림 암호를 이용한 메시지 인증 코드 구성 방법.
  3. 삭제
  4. 제 1항에 있어서, 상기 제 3단계는,
    상기 수학식을 적용함에 있어, 제 1키(
    Figure 112006015260116-pat00039
    )과 제 2키(
    Figure 112006015260116-pat00040
    )를 바로 사용하지 않고, 제 1키(
    Figure 112006015260116-pat00041
    )와 제 2키(
    Figure 112006015260116-pat00042
    )에 초기치(
    Figure 112006015260116-pat00043
    )를 XOR한 값을 각각 대신하여 사용하는 것을 특징으로 하는 스트림 암호를 이용한 메시지 인증 코드 구성 방법.
  5. 제 1항에 있어서, 상기 제 3단계는,
    상기 수학식을 적용함에 있어,
    Figure 112006015260116-pat00044
    대신에
    Figure 112006015260116-pat00045
    을 사용하여 안전성을 확보하는 것을 특징으로 하는 스트림 암호를 이용한 메시지 인증 코드 구성 방법.
  6. 제 1항, 제 2항, 제 4항 또는 제 5항 중 어느 한 항에 기재된 스트림 암호를 이용한 메시지 인증 코드 구성 방법을 컴퓨터에서 실행시키기 위한 프로그램으로 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020030095702A 2003-12-23 2003-12-23 스트림 암호를 이용한 메시지 인증 코드 구성 방법 KR100578550B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030095702A KR100578550B1 (ko) 2003-12-23 2003-12-23 스트림 암호를 이용한 메시지 인증 코드 구성 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030095702A KR100578550B1 (ko) 2003-12-23 2003-12-23 스트림 암호를 이용한 메시지 인증 코드 구성 방법

Publications (2)

Publication Number Publication Date
KR20050064343A KR20050064343A (ko) 2005-06-29
KR100578550B1 true KR100578550B1 (ko) 2006-05-12

Family

ID=37255955

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030095702A KR100578550B1 (ko) 2003-12-23 2003-12-23 스트림 암호를 이용한 메시지 인증 코드 구성 방법

Country Status (1)

Country Link
KR (1) KR100578550B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4810289B2 (ja) * 2006-04-17 2011-11-09 ルネサスエレクトロニクス株式会社 メッセージ認証子生成装置、メッセージ認証子検証装置、及びメッセージ認証システム
JP4712017B2 (ja) 2006-11-13 2011-06-29 韓國電子通信研究院 ストリーム暗号を利用したメッセージ認証コード生成方法とストリーム暗号を利用した認証暗号化方法及びストリーム暗号を利用した認証復号化方法
KR101072277B1 (ko) 2009-08-31 2011-10-11 주식회사 아나스타시스 실시간 데이터 무결성 보장 장치 및 방법과 이를 이용한 블랙박스 시스템
KR101572935B1 (ko) 2014-10-02 2015-12-11 현대자동차주식회사 메시지 인증 코드 혼합을 통한 can 패킷 인증 방법 및 그 장치
KR101596753B1 (ko) 2014-10-02 2016-02-23 현대자동차주식회사 메시지 인증 코드 분할을 통한 순차적 can 패킷 인증 방법 및 그 장치
KR101966088B1 (ko) * 2017-04-06 2019-04-05 상명대학교산학협력단 Iot 응용에 최적화된 인증 암호 장치 및 방법
KR102528017B1 (ko) 2020-09-28 2023-04-28 (주)바이오융합기술 앵커형 혈관 지혈 기구

Also Published As

Publication number Publication date
KR20050064343A (ko) 2005-06-29

Similar Documents

Publication Publication Date Title
TWI750223B (zh) 區塊鏈加密射頻晶片存儲設計方法
CN110677237B (zh) 一种具有似混沌特性的文件加密方法
Daemen Cipher and hash function design strategies based on linear and differential cryptanalysis
US8284933B2 (en) Encrypting variable-length passwords to yield fixed-length encrypted passwords
KR101393806B1 (ko) 다단계 물리적 복제 불가 함수 시스템
Saraf et al. Text and image encryption decryption using advanced encryption standard
CN100431293C (zh) 对称-密钥加密的线性变换方法和系统
ES2291675T3 (es) Metodo de generar un cifrado de flujo utilizando claves multiples.
US20150270950A1 (en) Splitting s-boxes in a white-box implementation to resist attacks
US20080304664A1 (en) System and a method for securing information
KR20040007769A (ko) 컴퓨터 네트워크에서의 데이터 분산 처리의 통합 보호방법 및 이 방법을 수행하는 시스템
JPS5873257A (ja) 暗号化装置
US20100246813A1 (en) Method and system for accelerating the deterministic enciphering of data in a small domain
US20080063187A1 (en) Hash value generation device, program, and hash value generation method
EP3086585B1 (en) Method and system for securing data communicated in a network
US10419207B2 (en) Cryptographic apparatuses and methods for encrypting and decrypting data using automata
CN111066077B (zh) 加密装置、加密方法、解密装置以及解密方法
Amalarethinam et al. Image encryption and decryption in public key cryptography based on MR
KR100578550B1 (ko) 스트림 암호를 이용한 메시지 인증 코드 구성 방법
CN112199699A (zh) 字符串的加解密方法、装置、存储介质和处理器
Biryukov et al. Cryptanalysis of the “kindle” cipher
CN110995415A (zh) 一种基于md5算法的加密算法
KR19990053174A (ko) 해쉬함수를 이용한 정보의 무결성 확인방법
JP2004053969A (ja) 電子割符生成方法およびプログラム
JP2001282103A (ja) 暗号化方法

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

FPAY Annual fee payment

Payment date: 20140326

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee