KR20120071844A - 기밀성과 무결성을 제공하는 통합 암호화 장치 및 그 방법 - Google Patents

기밀성과 무결성을 제공하는 통합 암호화 장치 및 그 방법 Download PDF

Info

Publication number
KR20120071844A
KR20120071844A KR1020100133553A KR20100133553A KR20120071844A KR 20120071844 A KR20120071844 A KR 20120071844A KR 1020100133553 A KR1020100133553 A KR 1020100133553A KR 20100133553 A KR20100133553 A KR 20100133553A KR 20120071844 A KR20120071844 A KR 20120071844A
Authority
KR
South Korea
Prior art keywords
message
bit
integrity
integrated
hash
Prior art date
Application number
KR1020100133553A
Other languages
English (en)
Other versions
KR101445339B1 (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 KR1020100133553A priority Critical patent/KR101445339B1/ko
Priority to US13/335,245 priority patent/US9065631B2/en
Publication of KR20120071844A publication Critical patent/KR20120071844A/ko
Application granted granted Critical
Publication of KR101445339B1 publication Critical patent/KR101445339B1/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
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/122Hardware reduction or efficient architectures
    • 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/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Landscapes

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

Abstract

본 발명은 기밀성과 무결성을 제공하는 통합 암호화 기술에 관한 것으로, 유비쿼터스 컴퓨팅 환경과 같이 제약된 구현 환경에서 기밀성 및 무결성 기능을 보장할 수 있는 통합 암호 모듈 구성 방법을 제시하며, 무결성 기능을 제공하는 해쉬함수 H, 기밀성 기능을 제공하는 블록암호 BC를 포함한다. 통합 암호 모듈 ICM을 이용하여 대표적인 데이터 암호 알고리즘인 블록암호와 메시지 변조 여부를 파악할 수 있는 해쉬함수를 동시에 구성하는 것을 특징으로 한다. 본 발명에 의하면, 하나의 통합된 암호 모듈을 이용하여 두 개의 프리미티브 블록암호와 해쉬함수를 동작시킬 수 있기 때문에, 하드웨어 및 소프트웨어 환경에서 구현될 경우, 독립적인 두 개의 알고리즘을 구현해야 하는 기존의 암호 시스템보다 효율적으로 암호 시스템을 구성할 수 있다.

Description

기밀성과 무결성을 제공하는 통합 암호화 장치 및 그 방법{INTEGRATED CRYPTOGRAPHIC APPARATUS FOR PROVIDING CONFIDENTIALITY AND INTEGRITY}
본 발명은 통합 암호화 기술에 관한 것으로서, 특히 유비쿼터스 컴퓨팅 환경에서의 RFID(Radio Frequency Identification)/USN(Ubiquitous Sensor Network) 등과 같이 자원이 제한된 구현 환경에서 기밀성을 제공하는 블록암호(BC)와 무결성을 보장하는 해쉬함수(H)를 동시에 사용할 수 있는 통합 암호 모듈(ICM)을 설계하는데 적합한 기밀성과 무결성을 제공하는 통합 암호 모듈 및 그 방법에 관한 것이다.
일반적으로 암호학적 해쉬함수(Cryptographic Hash Function)는 임의의 길이의 스트링을 입력 받아 고정된 길이의 스트링을 출력하는 압축함수(Compression Function)로 해쉬함수를 사용하는 암호시스템의 안전성뿐만 아니라 효율성을 향상시키는데 사용 목적이 있다.
암호학적 해쉬함수는 인터넷 뱅킹(Internet Banking), 전자서명(Digital Signature), 메시지 인증 코드(Message Authentication Code), 키 교환 알고리즘(Key Exchange Algorithm), 키 생성 알고리즘(Key Generation Algorithm), 의사 난수 생성기(Pseudo Random Number Generator) 뿐 아니라 다양한 암호시스템에서 사용되며 이들의 안전성은 해쉬함수의 안전성에 기반을 둔다는 점에 있어서 안전한 해쉬함수를 설계하는 것은 매우 중요하다.
현재 미국 국립 기술 표준원(NIST, National Institute of Standards and Technology)에서는 2010년부터 가장 널리 사용되고 있는 MD5, SHA-1 해쉬함수 대신 출력 크기를 224, 256, 384, 512 비트로 갖는 SHA-224/256/384/512를 사용할 것을 권장하고 있으며, 미국 국립 기술 표준원은 신규 해쉬 알고리즘 SHA-3 개발을 목표로 2007년부터 2012년까지 6 개년 “SHA-3 개발 프로젝트 (Cryptographic Hash Project)” 계획을 수립하고 현재 진행 중에 있다. NIST의 6 개년 프로젝트를 진행하는 이유에서 볼 수 있듯이 안전하고 효율적인 새로운 해쉬함수의 개발은 매우 필요한 상황이다.
한편, 대칭키 알고리즘(Symmetric Key Algorithm) 중 가장 널리 이용되는 블록암호(Block Cipher)는 송신자와 수신자간에 공유된 비밀키 정보를 이용하여 데이터를 암호화함으로써 기밀성을 보장하는 알고리즘이다. 뿐만 아니라, 해쉬함수와 마찬가지로 다양한 환경에 적용 가능하다.
대표적인 블록암호로는 미연방 표준 암호인 AES(Advanced Encryption Standard)가 있다. AES는 미국의 연방 표준 알고리즘으로서 20년이 넘게 사용되어 온 DES(Data Encryption Standard)를 대신할 차세대 표준 알고리즘이다. DES는 1972년에 미국 상무성 산하 NIST의 전신인 NBS(National Bureau of Standards)에서 컴퓨터 데이터를 보호할 목적으로 표준 알고리즘을 공모하여 IBM사가 개발한 암호 알고리즘이다.
DES는 연방 표준으로 제정된 후에 5년마다 안정성을 인정받으면서 표준으로 존속되어 왔으나, 1997년 이후 안정성에 대한 논란이 대두되자 NIST가 DES를 대체할 차세대 표준 암호 알고리즘 제정을 위한 프로젝트로 추진한 것이 AES이다. 2001년 미 연방 표준 암호 알고리즘으로 제정되어, 전 세계적으로 널리 이용되고 있다.
이처럼 안전한 암호시스템을 구성하기 위해서는 기밀성 및 무결성을 보장할 수 있는 블록암호와 해쉬함수가 반드시 필요하다. 하지만, 종래에 제안된 암호 시스템들의 경우는 블록암호와 해쉬함수가 독립적인 알고리즘으로 구성되었으며, 유비쿼터스 컴퓨팅 환경의 RFID/USN 등과 같은 자원이 제약된 구현 환경에서는 두 개의 프리미티브(Primitive)를 동시에 구현하기가 어렵다.
예를 들어, 해쉬함수 SHA와 블록암호 AES는 비록 미 연방 표준 암호 알고리즘이지만, 그 설계 기법이 상이하여 두 개의 표준 알고리즘을 구성하기 위해서는 독립적으로 각각의 알고리즘이 구현되어야 한다는 문제점이 있었다.
상기한 바와 같이 동작하는 종래 기술의 문제점을 해결하기 위한 본 발명의 실시예는 유비쿼터스 컴퓨팅 환경에서의 RFID/USN 등과 같이 자원이 제한된 구현 환경에서 기밀성을 제공하는 블록암호(BC)와 무결성을 보장하는 해쉬함수(H)를 동시에 사용할 수 있는 통합 암호 모듈(ICM: Integrated Cryptographic Module)을 설계할 수 있는 기밀성과 무결성을 제공하는 통합 암호화 장치 및 그 방법을 제공할 수 있다.
본 발명의 일 실시예에 따른 기밀성과 무결성을 제공하는 통합 암호화 장치는, 기밀성 및 무결성 기능을 포함하는 통합 암호 모듈과, 상기 통합 암호 모듈을 토대로 메시지 변조 여부를 파악하는 해쉬함수와, 상기 통합 암호 모듈을 토대로 데이터 암호 알고리즘을 구성하는 블록암호를 포함할 수 있다.
그리고 상기 통합 암호 모듈은, 입력된 비트에 대해 S-박스, 순환이동, XOR 을 포함하는 연산으로 값을 출력할 수 있다.
그리고 상기 해쉬함수는, 입력된 임의 길이의 비트열을 32비트 워드열로 변환하는 메시지 사전 처리부와, 상기 32비트 워드열로 변환된 메시지를 압축하는 메시지 압축부와, 상기 메시지 압축부로부터 출력된 값으로 어느 한 해쉬 길이의 해쉬값을 출력하는 해쉬값 추출부를 포함할 수 있다.
그리고 상기 메시지 사전 처리부는, 입력된 메시지에 대한 비트열이 32비트의 배수가 되도록 마지막 비트에 하나의 1과 적어도 하나의 0을 추가할 수 있다.
그리고 상기 메시지 압축부는, 상기 32비트 워드열로 변환된 메시지를 상태 갱신 함수를 이용하여 순차적으로 압축할 수 있다.
그리고 상기 상태 갱신 함수는, 입력된 값에 대해 상기 통합 암호 모듈을 반복 적용하여 상기 입력된 값을 갱신할 수 있다.
그리고 상기 해쉬값 추출부는, 해쉬함수의 길이에 대응하는 상태 갱신 함수를 수행할 수 있다.
그리고 상기 블록암호는, 128비트 평문 및 128비트 키를 입력 받아 적어도 하나의 통합 암호 모듈의 반복을 통해 128비트 암호문을 출력하는 함수인 것을 특징으로 할 수 있다.
본 발명의 일 실시예에 따른 기밀성과 무결성을 제공하는 통합 암호화 방법은, 기밀성 및 무결성 기능을 포함하는 통합 암호 모듈을 토대로 메시지 변조 여부를 파악하는 해쉬함수를 생성하는 과정과, 상기 통합 암호 모듈을 토대로 데이터 암호 알고리즘을 구성하는 블록암호를 생성하는 과정을 포함할 수 있다.
그리고 상기 통합 암호 모듈은, 입력된 비트에 대해 S-박스, 순환이동, XOR 을 포함하는 연산으로 값을 출력할 수 있다.
그리고 상기 해쉬함수를 생성하는 과정은, 입력된 임의 길이의 비트열을 32비트 워드열로 변환하는 메시지 사전 처리 과정과, 상기 32비트 워드열로 변환된 메시지를 압축하는 메시지 압축 과정과, 상기 메시지 압축부로부터 출력된 값으로 어느 한 해쉬 길이의 해쉬값을 출력하는 해쉬값 추출 과정을 포함할 수 있다.
그리고 상기 메시지 사전 처리 과정은, 입력된 메시지에 대한 비트열이 32비트의 배수가 되도록 마지막 비트에 하나의 1과 적어도 하나의 0을 추가할 수 있다.
그리고 상기 메시지 압축 과정은, 상기 32비트 워드열로 변환된 메시지를 상태 갱신 함수를 이용하여 순차적으로 압축할 수 있다.
그리고 상기 상태 갱신 함수는, 입력된 값에 대해 상기 통합 암호 모듈을 반복 적용하여 상기 입력된 값을 갱신할 수 있다.
그리고 상기 해쉬값 추출 과정은, 해쉬함수의 길이에 대응하는 상태 갱신 함수를 수행할 수 있다.
그리고 상기 블록암호를 생성하는 과정은, 128비트 평문 및 128비트 키를 입력 받아 적어도 하나의 통합 암호 모듈의 반복을 통해 128비트 암호문을 출력하는 함수인 것을 특징으로 할 수 있다.
상기와 같은 본 발명의 실시예에 따른 기밀성과 무결성을 제공하는 통합 암호화 장치 및 그 방법에 따르면 다음과 같은 효과가 하나 혹은 그 이상이 있다.
본 발명의 실시예에 따른 기밀성과 무결성을 제공하는 통합 암호화 장치 및 그 방법에 의하면, 유비쿼터스 컴퓨팅 환경에서의 RFID/USN 등과 같이 자원이 제한된 구현 환경에서 블록암호와 해쉬함수를 통합하여 구현함으로써 기밀성과 무결성을 동시에 제공할 수 있으며, 통합 암호 모듈을 필요에 따라 블록암호나 해쉬함수를 선택적으로 사용할 수 있는 유연성을 제공할 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 통합 암호 모듈 ICM의 기본 구조도,
도 2는 본 발명의 실시예에 따른 무결성 기능을 제공하는 해쉬함수 H (Hash Function)의 구조를 도시한 블록도,
도 3은 본 발명의 실시예에 따른 해쉬함수의 메시지 압축부 MCP(Message Compressing Process)를 도시한 도면,
도 4는 본 발명의 실시예에 따라 메시지 압축부 및 해쉬값 출력부에서 이용되는 상태 갱신 함수 f(State Update Function)를 도시한 도면,
도 5는 본 발명의 실시예에 따른 해쉬함수의 해쉬값 출력부 HOP(Hash Value Output Process)를 도시한 도면,
도 6은 본 발명의 실시예에 따라 기밀성 기능을 제공하는 블록암호 BC (Block Cipher)를 도시한 도면.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
본 발명의 실시예는, 유비쿼터스 컴퓨팅 환경에서의 RFID/USN 등과 같이 자원이 제한된 구현 환경에서 기밀성을 제공하는 블록암호(BC)와 무결성을 보장하는 해쉬함수(H)를 동시에 사용할 수 있는 통합 암호 모듈(ICM)을 설계하는 것으로서, 설계된 통합 암호모듈(ICM)은 112비트 이상의 보안강도를 만족해야 하며, 하드웨어 및 소프트웨어에 대한 효율성이 탁월해야 한다.
이에 통합 암호화 장치에서는 통합 암호 모듈을 필요에 따라 블록암호나 해쉬함수로 선택적으로 사용할 수 있으며, 두 개의 프리미티브 블록암호와 해쉬함수를 동작시킬 수 있기 때문에, 하드웨어 및 소프트웨어 환경에서 구현될 경우, 독립적인 두 개의 알고리즘을 구현해야 하는 기존의 암호시스템보다 효율적으로 암호시스템의 구성을 가능하게 할 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 통합 암호 모듈 ICM의 기본 구조도이다.
도 1을 참조하면, 통합 암호 모듈
Figure pat00001
(100)은
Figure pat00002
,
Figure pat00003
,
Figure pat00004
,
Figure pat00005
,
Figure pat00006
,
Figure pat00007
을 입력 받아 아래의 (표 1)과 같은 연산을 수행할 수 있다. 단, 여기서
Figure pat00008
Figure pat00009
비트,
Figure pat00010
,
Figure pat00011
,
Figure pat00012
,
Figure pat00013
Figure pat00014
비트 워드,
Figure pat00015
,
Figure pat00016
Figure pat00017
비트이며,
Figure pat00018
는 연접연산이다.
Figure pat00019
(표 1)에서
Figure pat00020
Figure pat00021
비트 워드 임시 변수이며,
Figure pat00022
Figure pat00023
비트만큼 왼쪽으로 순환 이동하는 연산,
Figure pat00025
Figure pat00026
비트 워드간의 비트별 XOR 연산이다.
Figure pat00027
는 z 가 0 이면 x 를 출력하고, z 가 1 이면 y 를 출력하는 함수이다. 그리고 함수 G는 32 비트 워드를 입력 받아 32 비트 워드를 출력하는 함수로 암호학적으로 혼돈(Confusion) 및 확산(Diffusion) 성질이 우수한 함수를 사용할 수 있다. 암호학적으로 혼돈 성질을 주기 위한 대표적인 대치함수인 S-박스와 확산 성질을 주기 위한 치환 함수를 결합하여 내부함수
Figure pat00028
를 구성할 수 있다. (표 2)는
Figure pat00029
비트 워드 입력을
Figure pat00030
개의
Figure pat00031
비트 블록으로 나누어 각각의
Figure pat00032
비트 블록에 대하여
Figure pat00033
S-박스 연산을 수행하는 실시예이다.
Figure pat00034
(표 3)은
Figure pat00035
비트 워드 입력을
Figure pat00036
개의
Figure pat00037
비트 블록으로 나누어 각각의
Figure pat00038
비트 블록을 가지고 확산 효과를 주기 위한 치환 함수의 실시예이다.
Figure pat00039
한편, (표 1)에서 왼쪽 순환이동 연산에 이용되는 순환 이동양은 각각 서로 다른 고정된 상수이며, (표 1)에서 주어진 특정 값으로 한정하지 않으며, 암호학적으로 확산(Diffusion) 성질이 우수한 값을 선택하여 사용할 수 있다.
도 2는 본 발명의 실시예에 따른 무결성 기능을 제공하는 해쉬함수의 구조를 도시한 블록도이다.
도 2를 참조하면, 무결성을 제공하는 해쉬함수 H(200)는 메시지 사전 처리부(210), 메시지 압축부(220) 및 해쉬값 출력부(230) 등을 포함할 수 있다.
무결성을 제공하는 해쉬함수(200)는 32 비트 워드 단위의 연산을 사용한다. 따라서, 첫번째 과정에서 메시지 사전 처리부(210)에서는 임의 길이의 비트열을 32 비트 워드열로 변환한다. 두 번째 과정에서 메시지 압축부(220)는 32 비트 워드 단위로 변환된 메시지를 압축한다. 그리고 마지막 과정에서는 해쉬값 추출부(230)에서 사용자에게 필요한 해쉬 길이만큼 해쉬 값으로 출력한다.
구체적으로 메시지 사전 처리부(210)(MP: Message Preprocessing)에서는 임의 길이의 비트열을 32 비트 워드열로 변환한다. 32 비트 비트열을 4 바이트의 문자열로 보고 첫 바이트가 워드의 최상위 바이트가 된다.
예를 들면, 비트열
Figure pat00040
은 32 비트 워드로
Figure pat00041
가 된다. 이는 위의 4 바이트 문자열을 빅엔디안(big-endian) 컴퓨터에서 unsigned long의 형태로 타입 캐스팅(type casting)한 것과 같다.
임의의 길이의 비트열을 32 비트 워드열로 변환하고자 할 때는 이 비트열을 바이트 열로 보고 첫 4 바이트를 첫 워드로, 두 번째 4 바이트를 두 번째 워드로 변환하는 과정을 반복한다. 예를 들면, 비트열 10101101 01101011 11001001 10101110 00111111 01011001 01000110은 32 비트 워드열로 표현하면
Figure pat00042
가 된다.
만약 입력 메시지가 32 비트의 배수가 아닌 경우, 입력 메시지가 32 비트의 배수가 되도록
Figure pat00043
을 채운다. 예를 들어 입력 메시지가 다음과 같은 비트열로 주어진 경우,
이 비트열의 길이는 56이므로 1 다음에 7 개의 0을 덧붙여 64 비트로 만들 수 있다. 따라서 64 비트의 32 비트 워드열은 다음과 같이 주어진다.
Figure pat00045
메시지 압축부(MCP)(220)는 도 3과 같으며, 메시지 사전 처리부(MP)(210) 를 통해 32 비트 워드 단위로 변환된 메시지 워드를 상태 갱신 함수 f(222)를 이용하여 순차적으로 압축한다. 메시지 사전 처리부(MP)(210)에 의하여 변환된 32 비트 메시지 워드열을
Figure pat00046
라고 가정하면, 메시지 압축부(MCP)(220)는 (표 4)와 같이 정의할 수 있다. 단,
Figure pat00047
는 32 비트 워드이다.
Figure pat00048
(표 4)에서
Figure pat00049
은 각각 32 비트 워드로 고정된 초기 상수이며, 특정 값으로 한정하지 않는다.
(표 4)에서 상태 갱신 함수 f(222)는 도 4와 같으며, 통합 암호 모듈 ICM (100)을 이용하여 구성할 수 있다. 256 비트인
Figure pat00050
(단,
Figure pat00051
32 비트 워드)를 입력 받아 통합 암호 모듈 ICM(100)을 이용하여 입력값을 갱신하는 함수이다. 상태 갱신 함수 f(222)는 (표 5)와 같이 정의할 수 있다.
Figure pat00052
상태 갱신 함수 f(222)는 X와 Mi을 입력 받아 통합 암호 모듈 ICM(100)을
Figure pat00053
번 반복하여 적용함으로써
Figure pat00054
값을 갱신할 수 있다. 단,
Figure pat00055
,
Figure pat00056
은 서로 다른 고정된 상수이며, 특정 값으로 한정하지 않는다.
Figure pat00057
는 무결성을 제공하는 해쉬함수 H (200)에 대한 안전성을 보장할 수 있는 범위에서 선택적으로 이용할 수 있다.
해쉬값 출력부 HOP(230)는 도 5와 같으며, 메시지 압축부 MCP(220)를 마친 후, 출력하고자 하는 해쉬값의 길이만큼 해쉬값을 출력하는 함수이다. 출력하고자 하는 해쉬함수의 길이만큼 추가적으로 상태 갱신 함수 f(222)를 수행하면서, 32 비트 워드
Figure pat00058
를 출력한다. 해쉬값 출력부 HOP(220)는 (표 6)과 같이 정의할 수 있다.
Figure pat00059
해쉬값의 길이가 32 비트인 경우, 해쉬값으로
Figure pat00060
이 비트열로 변환되어 출력되며, 해쉬값의 길이 64 비트인 경우
Figure pat00061
가 비트열로 변환되어 출력된다. 이와 같은 방법으로 해쉬값을 출력하며, 만약 해쉬값의 길이가 224 비트인 경우,
Figure pat00062
가 비트열로 변환되어 출력된다. 예를 들어, 해쉬값의 길이가 224 비트인 경우, 각각의 출력변수
Figure pat00063
Figure pat00064
(
Figure pat00065
는 1바이트)를 만족하면, 해쉬값은 다음과 같이 비트열로 변환된다.
Figure pat00066
이제 도 2에 주어진 입력 메시지에 대해 기밀성을 제공하는 블록암호
Figure pat00067
(300)를 단계별로 자세히 기술한다. 기밀성을 제공하는 블록암호
Figure pat00068
(300)는 도 6과 같으며, 128비트 평문
Figure pat00069
와 128비트 키
Figure pat00070
를 입력 받아 비트 암호문
Figure pat00071
를 출력하는 함수이다. 기밀성을 제공하는 블록암호
Figure pat00072
(300)는
Figure pat00073
통합 암호 모듈 (100)을 이용하여 (표 7)과 같이 정의할 수 있다.
Figure pat00074
(표 7)에서
Figure pat00075
Figure pat00076
,
Figure pat00077
은 서로 다른 고정된 상수이며, 특정 값으로 한정하지 않는다.
Figure pat00078
는 기밀성을 제공하는 블록암호
Figure pat00079
(300)에 대한 안전성을 보장할 수 있는 범위에서 선택적으로 이용할 수 있다.
이상 설명한 바와 같이, 본 발명의 실시예에 따른 기밀성과 무결성을 제공하는 통합 암호화 장치 및 그 방법은 유비쿼터스 컴퓨팅 환경에서의 RFID/USN 등과 같이 자원이 제한된 구현 환경에서 기밀성을 제공하는 블록암호(BC)와 무결성을 보장하는 해쉬함수(H)를 동시에 사용할 수 있는 통합 암호 모듈(ICM)을 설계한다.
이와 같이 통합된 암호 모듈을 이용하면 하드웨어 및 소프트웨어 환경에서 구현될 때 독립적인 두 개의 알고리즘을 구현해야 하는 기존의 암호시스템보다 효율적으로 암호시스템을 구성할 수 있다. 뿐만 아니라, 유비쿼터스 컴퓨팅 환경에서의 RFID/USN 등과 같이 자원이 제한된 구현 환경에서도 매우 간단한 연산을 통하여 효율적으로 구현될 수 있으며, 암호학적으로도 안전하게 구현할 수 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
100: 통합 암호화 장치 200: 해쉬함수
210: 메시지 사전 처리부 220: 메시지 압축부
230: 해쉬값 출력부 300: 블록암호

Claims (16)

  1. 기밀성 및 무결성 기능을 포함하는 통합 암호 모듈과,
    상기 통합 암호 모듈을 토대로 메시지 변조 여부를 파악하는 해쉬함수와,
    상기 통합 암호 모듈을 토대로 데이터 암호 알고리즘을 구성하는 블록암호
    를 포함하는 기밀성과 무결성을 제공하는 기밀성과 무결성을 제공하는 통합 암호화 장치.
  2. 제 1항에 있어서,
    상기 통합 암호 모듈은,
    입력된 비트에 대해 S-박스, 순환이동, XOR 을 포함하는 연산으로 값을 출력하는 것을 특징으로 하는 기밀성과 무결성을 제공하는 통합 암호화 장치.
  3. 제 1항에 있어서,
    상기 해쉬함수는,
    입력된 임의 길이의 비트열을 32비트 워드열로 변환하는 메시지 사전 처리부와,
    상기 32비트 워드열로 변환된 메시지를 압축하는 메시지 압축부와,
    상기 메시지 압축부로부터 출력된 값으로 어느 한 해쉬 길이의 해쉬값을 출력하는 해쉬값 추출부
    를 포함하는 것을 특징으로 하는 기밀성과 무결성을 제공하는 통합 암호화 장치.
  4. 제 3항에 있어서,
    상기 메시지 사전 처리부는,
    입력된 메시지에 대한 비트열이 32비트의 배수가 되도록 마지막 비트에 하나의 1과 적어도 하나의 0을 추가하는 것을 특징으로 하는 기밀성과 무결성을 제공하는 통합 암호화 장치.
  5. 제3항에 있어서,
    상기 메시지 압축부는,
    상기 32비트 워드열로 변환된 메시지를 상태 갱신 함수를 이용하여 순차적으로 압축하는 것을 특징으로 하는 기밀성과 무결성을 제공하는 통합 암호화 장치.
  6. 제4항에 있어서,
    상기 상태 갱신 함수는,
    입력된 값에 대해 상기 통합 암호 모듈을 반복 적용하여 상기 입력된 값을 갱신하는 것을 특징으로 하는 기밀성과 무결성을 제공하는 통합 암호화 장치.
  7. 제3항에 있어서,
    상기 해쉬값 추출부는,
    해쉬함수의 길이에 대응하는 상태 갱신 함수를 수행하는 것을 특징으로 하는 기밀성과 무결성을 제공하는 통합 암호화 장치.
  8. 제 1항에 있어서,
    상기 블록암호는,
    128비트 평문 및 128비트 키를 입력 받아 적어도 하나의 통합 암호 모듈의 반복을 통해 128비트 암호문을 출력하는 함수인 것을 특징으로 하는 기밀성과 무결성을 제공하는 통합 암호화 장치.
  9. 기밀성 및 무결성 기능을 포함하는 통합 암호 모듈을 토대로 메시지 변조 여부를 파악하는 해쉬함수를 생성하는 과정과,
    상기 통합 암호 모듈을 토대로 데이터 암호 알고리즘을 구성하는 블록암호를 생성하는 과정
    을 포함하는 기밀성과 무결성을 제공하는 통합 암호화 방법.
  10. 제 9항에 있어서,
    상기 통합 암호 모듈은,
    입력된 비트에 대해 S-박스, 순환이동, XOR 을 포함하는 연산으로 값을 출력하는 것을 특징으로 하는 기밀성과 무결성을 제공하는 통합 암호화 방법.
  11. 제 9항에 있어서,
    상기 해쉬함수를 생성하는 과정은,
    입력된 임의 길이의 비트열을 32비트 워드열로 변환하는 메시지 사전 처리 과정과,
    상기 32비트 워드열로 변환된 메시지를 압축하는 메시지 압축 과정과,
    상기 메시지 압축부로부터 출력된 값으로 어느 한 해쉬 길이의 해쉬값을 출력하는 해쉬값 추출 과정
    을 포함하는 것을 특징으로 하는 기밀성과 무결성을 제공하는 통합 암호화 방법.
  12. 제 11항에 있어서,
    상기 메시지 사전 처리 과정은,
    입력된 메시지에 대한 비트열이 32비트의 배수가 되도록 마지막 비트에 하나의 1과 적어도 하나의 0을 추가하는 것을 특징으로 하는 기밀성과 무결성을 제공하는 통합 암호화 방법.
  13. 제11항에 있어서,
    상기 메시지 압축 과정은,
    상기 32비트 워드열로 변환된 메시지를 상태 갱신 함수를 이용하여 순차적으로 압축하는 것을 특징으로 하는 기밀성과 무결성을 제공하는 통합 암호화 방법.
  14. 제13항에 있어서,
    상기 상태 갱신 함수는,
    입력된 값에 대해 상기 통합 암호 모듈을 반복 적용하여 상기 입력된 값을 갱신하는 것을 특징으로 하는 기밀성과 무결성을 제공하는 통합 암호화 방법.
  15. 제11항에 있어서,
    상기 해쉬값 추출 과정은,
    해쉬함수의 길이에 대응하는 상태 갱신 함수를 수행하는 것을 특징으로 하는 기밀성과 무결성을 제공하는 통합 암호화 방법.
  16. 제 9항에 있어서,
    상기 블록암호를 생성하는 과정은,
    128비트 평문 및 128비트 키를 입력 받아 적어도 하나의 통합 암호 모듈의 반복을 통해 128비트 암호문을 출력하는 함수인 것을 특징으로 하는 기밀성과 무결성을 제공하는 통합 암호화 방법.
KR1020100133553A 2010-12-23 2010-12-23 기밀성과 무결성을 제공하는 통합 암호화 장치 및 그 방법 KR101445339B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100133553A KR101445339B1 (ko) 2010-12-23 2010-12-23 기밀성과 무결성을 제공하는 통합 암호화 장치 및 그 방법
US13/335,245 US9065631B2 (en) 2010-12-23 2011-12-22 Integrated cryptographic module providing confidentiality and integrity

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100133553A KR101445339B1 (ko) 2010-12-23 2010-12-23 기밀성과 무결성을 제공하는 통합 암호화 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20120071844A true KR20120071844A (ko) 2012-07-03
KR101445339B1 KR101445339B1 (ko) 2014-10-01

Family

ID=46316828

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100133553A KR101445339B1 (ko) 2010-12-23 2010-12-23 기밀성과 무결성을 제공하는 통합 암호화 장치 및 그 방법

Country Status (2)

Country Link
US (1) US9065631B2 (ko)
KR (1) KR101445339B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190105188A (ko) 2018-03-02 2019-09-16 황순영 균등분포를 갖는 무작위 행렬을 이용한 일회용 암호화 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9565022B1 (en) * 2013-07-02 2017-02-07 Impinj, Inc. RFID tags with dynamic key replacement
US9515823B2 (en) 2013-08-30 2016-12-06 L-3 Communications Corporation Cryptographic device with detachable data planes
KR102460248B1 (ko) 2019-02-21 2022-10-31 한국전자통신연구원 유한체 나눗셈 연산기 및 그것을 갖는 타원곡선 암호 시스템 및 그것의 동작 방법
CN111083150A (zh) * 2019-12-23 2020-04-28 郑州轻工业大学 医疗传感器网络环境下的身份认证与数据安全传输方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5606616A (en) 1995-07-03 1997-02-25 General Instrument Corporation Of Delaware Cryptographic apparatus with double feedforward hash function
US20020048364A1 (en) 2000-08-24 2002-04-25 Vdg, Inc. Parallel block encryption method and modes for data confidentiality and integrity protection
US7249255B2 (en) * 2001-06-13 2007-07-24 Corrent Corporation Apparatus and method for a hash processing system using multiple hash storage areas
US20080019524A1 (en) * 2006-06-29 2008-01-24 Kim Moo S Apparatus and method for low power aes cryptographic circuit for embedded system
JP4790541B2 (ja) * 2006-08-25 2011-10-12 日本電信電話株式会社 ハッシュ関数回路及びその演算方法
KR100916805B1 (ko) * 2006-09-15 2009-09-14 고려대학교 산학협력단 256비트 출력을 갖는 해쉬 알고리즘
KR20080044150A (ko) 2006-11-09 2008-05-20 한국전자통신연구원 블록암호 해쉬 운영모드의 압축함수 설계 장치 및 방법
KR100874706B1 (ko) 2007-01-31 2008-12-18 고려대학교 산학협력단 초경량, 저전력 환경에 적합한 암호화 방법
EP2186250B1 (en) * 2007-08-31 2019-03-27 IP Reservoir, LLC Method and apparatus for hardware-accelerated encryption/decryption
US8774407B2 (en) * 2010-08-25 2014-07-08 Cisco Technology, Inc. System and method for executing encrypted binaries in a cryptographic processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190105188A (ko) 2018-03-02 2019-09-16 황순영 균등분포를 갖는 무작위 행렬을 이용한 일회용 암호화 방법

Also Published As

Publication number Publication date
US9065631B2 (en) 2015-06-23
KR101445339B1 (ko) 2014-10-01
US20120163587A1 (en) 2012-06-28

Similar Documents

Publication Publication Date Title
Alenezi et al. Symmetric encryption algorithms: Review and evaluation study
JP5412414B2 (ja) 検索可能暗号処理システム
JP5930235B2 (ja) 暗号ハッシュ関数の実行を保護する方法とシステム
US6973187B2 (en) Block encryption method and schemes for data confidentiality and integrity protection
Aumasson et al. The hash function BLAKE
KR20190039850A (ko) 비트-믹서들로부터 안전한 해시 함수를 구성하는 방법
WO2017056150A1 (ja) メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム
JP2007316614A (ja) ハッシュ値生成装置、プログラム及びハッシュ値生成方法
KR101445339B1 (ko) 기밀성과 무결성을 제공하는 통합 암호화 장치 및 그 방법
Vyakaranal et al. Performance analysis of symmetric key cryptographic algorithms
Courtois et al. Combined algebraic and truncated differential cryptanalysis on reduced-round simon
CN111010266A (zh) 消息的加解密、读写方法、装置、计算机设备和存储介质
Joshy et al. Text to image encryption technique using RGB substitution and AES
Jain et al. Implementation of hybrid cryptography algorithm
Sakan et al. DEVELOPMENT AND ANALYSIS OF THE NEW HASHING ALGORITHM BASED ON BLOCK CIPHER.
Tiwari Cryptography in blockchain
EP0996250A2 (en) Efficient block cipher method
Prasanna et al. Performance analysis of md5 and sha-256 algorithms to maintain data integrity
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム
CN108777622B (zh) 一种二进制流散列取模加密解密方法
Yap et al. Security analysis of GCM for communication
Kashyap et al. Security techniques using Enhancement of AES Encryption
Liu Software protection with encryption and verification
Pal et al. A random block length based cryptosystem through multiple cascaded permutation-combinations and chaining of blocks
Abdelgader et al. Design of a secure file transfer system using hybrid encryption techniques

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170828

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180823

Year of fee payment: 5

R401 Registration of restoration