KR101663274B1 - 블록 암호 방식에서 패딩을 수행하는 암호화 장치, 복호화 장치 및 시스템 - Google Patents
블록 암호 방식에서 패딩을 수행하는 암호화 장치, 복호화 장치 및 시스템 Download PDFInfo
- Publication number
- KR101663274B1 KR101663274B1 KR1020150006673A KR20150006673A KR101663274B1 KR 101663274 B1 KR101663274 B1 KR 101663274B1 KR 1020150006673 A KR1020150006673 A KR 1020150006673A KR 20150006673 A KR20150006673 A KR 20150006673A KR 101663274 B1 KR101663274 B1 KR 101663274B1
- Authority
- KR
- South Korea
- Prior art keywords
- unit
- block
- initial vector
- padding
- valid data
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은, 블록 암호 방식에서 패딩을 수행하는 암호화 장치로서, 입력 데이터의 길이가 1개의 블록 크기인 n의 배수인지를 판단하는 판단부와, 상기 입력 데이터의 길이가 n의 배수가 아니면, 마지막 블록 중 유효 데이터를 제외한 열에 난수 및 유효 데이터의 크기 값을 삽입하여 패딩(padding)하는 패딩부 및 암호화 키(key) 및 제 1 초기 벡터(initial vector)를 이용하여 상기 패딩된 입력 데이터를 암호화하는 암호화부를 포함할 수 있다.
Description
본 발명은 블록 암호 방식에서 패딩을 수행하고, 비어 있는 열에 난수 및 마지막 블록의 유효 데이터의 크기값을 삽입하여 암호화하고, 이를 복호화하는 기술에 관한 것이다.
블록 암호 알고리즘은 주어진 데이터를 정해진 길이의 블럭(16비트, 64비트 혹은 128 비트 등)으로 나누어 블록단위로 암호화를 수행하는 알고리즘이다. 다양한 '모드'로 구현되며 '패딩(padding:덧붙이기)'이 필요하다. 64 비트 블록 암호에는 DES, DES3, DESX, RC5, BLOWFISH, CAST128, IDEA, SAFER , RC2 등이 있으며, 128 비트 블록 암호에는 SEED, CRYPTON, RIJNDAEL, CAST256, RC6, TWOFISH, MARS, SERPENT 등이 있다.
상기 암호중 64 비트 블록 암호인 DES와 128비트 블록 암호인 SEED를 살펴보면, DES는 입력 데이터의 길이를 8의 배수로, SEED는 16의 배수로 나누며, 만약 입력 데이터의 길이가 8이나 16의 배수가 되지 않는 경우에는, 8의 배수나 16의 배수가 되도록 데이터를 더하게 되는데 이를 '패딩'이라고 한다.
이 중 SEED 방식을 이용한 블록 암호화 기술은 대한민국 공개특허 제10-2005-0058629호 (2005. 06. 17)에 개시되어 있다.
본 발명은 패딩된 열에 난수와 마지막 블록의 유효 데이터의 크기 값을 삽입함으로써, 랜덤화된 암호화 결과를 얻을 수 있는 암호화 장치, 복호화 장치 및 시스템을 제공하기 위한 것이다.
본 발명은 마지막 블록의 유효 데이터의 크기에 기초하여 패딩의 열의 크기를 결정함으로써, 패딩되는 크기를 최소화할 수 있는 암호화 장치, 복호화 장치 및 시스템을 제공하기 위한 것이다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상술한 과제를 해결하기 위하여 안출된 본 발명의 일실시예인 블록 암호 방식에서 패딩을 수행하는 암호화 장치는 입력 데이터의 길이가 1개의 블록 크기인 n의 배수인지를 판단하는 판단부와, 상기 입력 데이터의 길이가 n의 배수가 아니면, 마지막 블록 중 유효 데이터를 제외한 열에 난수 및 유효 데이터의 크기 값을 삽입하여 패딩(padding)하는 패딩부 및 암호화 키(key) 및 제 1 초기 벡터(initial vector)를 이용하여 상기 패딩된 입력 데이터를 암호화하는 암호화부를 포함할 수 있다.
패딩부는 마지막 블록 중 유효 데이터의 크기가 n-1보다 크거나 같은 경우, 1개의 블록을 더 생성하고, 상기 마지막 블록 중 유효 데이터를 제외한 열 및, 새롭게 생성된 블록의 열에 난수 및 유효 데이터의 크기 값을 삽입할 수 있다.
패딩부는 상기 유효 데이터의 크기 값을 상기 마지막 블록의 맨 마지막 열에 삽입할 수 있다.
블록 암호 방식에서 패딩을 수행하는 암호화 장치는 상기 난수에 기초하여 해쉬(hash) 값을 연산하는 제 1 연산부 및 상기 연산된 해쉬 값을 이용하여 제 2 초기 벡터(initial vector)를 생성하는 제 1 생성부를 더 포함하고, 암호화부는 상기 제 1 초기 벡터를 이용하여 상기 마지막 블록을 암호화하고, 상기 제 2 초기 벡터를 이용하여 상기 마지막 블록을 제외한 나머지 블록을 암호화할 수 있다.
본 발명의 또 다른 일실시예인 복호화 장치는 암호화 키(key) 및 제 1 초기 벡터(initial vector)를 이용하여, 난수 및 유효 데이터의 크기 값을 포함하는 입력 데이터를 복호화하는 복호화부 및 복호화된 데이터로부터 유효 데이터를 추출하는 추출부를 포함할 수 있다.
복호화부는 입력 데이터 중 마지막 블록을 상기 암호화 키(key) 및 제 1 초기 벡터(initial vector)를 이용하여 복호화할 수 있다.
블록 암호 방식에서 패딩을 수행하는 복호화 장치는 복호화된 데이터 유효 데이터의 크기 값에 기초하여 난수를 추출하고, 추출된 난수에 기초하여 해쉬(hash) 값을 연산하는 제 2 연산부 및 상기 연산된 해쉬 값을 이용하여 제 2 초기 벡터(initial vector)를 생성하는 제 2 생성부를 더 포함하고, 복호화부는 상기 제 2 초기 벡터를 이용하여 상기 마지막 블록을 제외한 나머지 블록을 복호화할 수 있다.
본 발명의 또 다른 일실시예인 암복호화 시스템은 입력 데이터의 길이가 1개의 블록 크기인 n의 배수인지를 판단하는 판단부와, 상기 입력 데이터의 길이가 n의 배수가 아니면, 마지막 블록 중 유효 데이터를 제외한 열에 난수 및 유효 데이터의 크기 값을 삽입하여 패딩(padding)하는 패딩부와, 암호화 키(key) 및 제 1 초기 벡터(initial vector)를 이용하여 상기 패딩된 입력 데이터를 암호화하는 암호화부를 구비하는 블록 암호 방식에서 패딩을 수행하는 암호화 장치 및, 상기 암호화 키(key) 및 상기 제 1 초기 벡터(initial vector)를 이용하여, 난수 및 유효 데이터의 크기 값을 포함하는 입력 데이터를 복호화하는 복호화부와, 복호화된 데이터 중 유효 데이터의 크기 값에 기초하여, 복호화된 데이터로부터 유효 데이터를 추출하는 추출부를 구비하는 블록 암호 방식에서 패딩을 수행하는 복호화 장치를 포함할 수 있다.
패딩부는 마지막 블록 중 유효 데이터의 크기가 n-1보다 크거나 같은 경우, 1개의 블록을 더 생성하고, 상기 마지막 블록 중 유효 데이터를 제외한 열 및, 새롭게 생성된 블록의 열에 난수 및 유효 데이터의 크기 값을 삽입할 수 있다.
패딩부는 유효 데이터의 크기 값을 마지막 블록의 맨 마지막 열에 삽입할 수 있다.
암호화 장치는 난수에 기초하여 해쉬(hash) 값을 연산하는 제 1 연산부 및 연산된 해쉬 값을 이용하여 제 2 초기 벡터(initial vector)를 생성하는 제 1 생성부를 더 포함하고, 암호화부는 상기 제 1 초기 벡터를 이용하여 상기 마지막 블록을 암호화하고, 상기 제 2 초기 벡터를 이용하여 상기 마지막 블록을 제외한 나머지 블록을 암호화할 수 있다.
복호화부는 입력 데이터 중 마지막 블록을 상기 암호화 키(key) 및 제 1 초기 벡터(initial vector)를 이용하여 복호화할 수 있다.
복호화 장치는 복호화된 데이터로부터 난수를 추출하고, 추출된 난수에 기초하여 해쉬(hash) 값을 연산하는 제 2 연산부 및 상기 연산된 해쉬 값을 이용하여 제 2 초기 벡터(initial vector)를 생성하는 제 2 생성부를 더 포함하고, 복호화부는 상기 제 2 초기 벡터를 이용하여 상기 마지막 블록을 제외한 나머지 블록을 복호화할 수 있다.
상술한 구성을 가지는 본 발명의 일실시예에 따르면, 패딩된 열에 난수와 마지막 블록의 유효 데이터의 크기 값을 삽입함으로써, 랜덤화된 암호화 결과를 얻을 수 있다.
또한, 마지막 블록의 유효 데이터의 크기에 기초하여 추가될 패딩 열의 크기를 결정함으로써, 패딩되는 크기를 최소화할 수 있다.
도 1은 본 발명의 일실시예인 블록 암호 방식에서 패딩을 수행하는 암복호화 시스템을 설명하기 위한 블록 구성도이다.
도 2는 본 발명의 일 실시예에 따른 암복호화 시스템의 구동 방법을 설명하기 위한 도면이다.
도 3은 본 발명의 또 다른 일 실시예에 따른 암복호화 시스템의 구동 방법을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 암복호화 시스템의 구동 방법을 설명하기 위한 도면이다.
도 3은 본 발명의 또 다른 일 실시예에 따른 암복호화 시스템의 구동 방법을 설명하기 위한 도면이다.
이하, 본 발명의 바람직한 실시 예들을 첨부된 도면을 참고하여 더욱 상세히 설명한다. 본 발명의 실시 예들은 여러 가지 형태로 변형될 수 있으며, 본 발명의 범위가 아래에서 설명하는 실시 예들에 한정되는 것으로 해석되어서는 안 된다. 본 실시예들은 당해 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 상세하게 설명하기 위해서 제공되는 것이다.
도 1은 본 발명의 일실시예인 블록 암호 방식에서 패딩을 수행하는 암복호화 시스템을 설명하기 위한 블록 구성도이다.
도 1을 참조하면, 암복호화 시스템(100)은 암호화 장치(110) 및 복호화 장치(120)를 포함할 수 있다.
암호화 장치(110)는 제 1 통신부(111), 판단부(112), 패딩부(113), 제 1 연산부(114), 제 1 생성부(115) 및 암호화부(116)를 포함한다.
제 1 통신부(111)는 데이터를 복호화 장치(120)로 송수신할 수 있는 유선 또는 무선 장치일 수 있다. 예를 들면, 제 1 통신부(111)는 유선 인터넷 모듈, 이동 통신 모듈, 무선 인터넷 모듈, 근거리 통신 모듈 등과 같은 통신 가능한 모듈을 포함할 수 있다.
판단부(112)는 입력 데이터의 길이가 1개의 블록 크기인 n의 배수인지를 판단할 수 있다. 예를 들면, 블록 크기가 16 바이트인 경우, 판단부(112)는 입력 데이터의 길이가 16의 배수인지를 판단할 수 있다.
패딩부(113)는 입력 데이터의 길이가 n의 배수가 아니면, 마지막 블록 중 유효 데이터를 제외한 열에 난수 및 유효 데이터의 크기 값을 삽입하여 패딩(padding)할 수 있다. 패딩부(113)는 마지막 블록의 유효 데이터의 크기 값을 마지막 블록의 맨 마지막 열에 삽입할 수 있다. 예를 들면, 패딩부(113)는 마지막 블록 중 유효 데이터의 크기가 n-1보다 크거나 같은 경우, 1개의 블록을 더 생성할 수 있다. 패딩부(113)는 마지막 블록 중 유효 데이터를 제외한 열 및, 새롭게 생성된 블록의 열에 난수 및 유효 데이터의 크기 값을 삽입할 수 있다. 이에 대한 구체적인 설명은 이하의 도 2 및 도 3을 참조하여 구체적으로 설명하겠다.
제 1 연산부(114)는 난수에 기초하여 해쉬(hash) 값을 연산할 수 있다.
제 1 생성부(115)는 연산된 해쉬 값을 이용하여 제 2 초기 벡터(initial vector)를 생성할 수 있다. 제 2 초기 벡터의 크기는 제 1 초기 벡터의 크기와 동일하다.
암호화부(116)는 암호화 키(key) 및 제 1 초기 벡터(initial vector)를 이용하여 패딩된 입력 데이터를 암호화할 수 있다.
암호화부(116)는 제 1 초기 벡터를 이용하여 마지막 블록을 암호화하고, 제 2 초기 벡터를 이용하여 마지막 블록을 제외한 나머지 블록을 암호화할 수 있다.
복호화 장치(120)는 제 2 통신부(121), 제 2 연산부(122), 제 2 생성부(123), 복호화부(124) 및 추출부(125)를 포함한다.
제 2 통신부(121)는 데이터를 암호화 장치(110)로 송수신할 수 있는 유선 또는 무선 장치일 수 있다. 예를 들면, 제 2 통신부(121)는 암호화 장치(110)로부터 암호화 키(key) 및 제 1 초기 벡터를 수신할 수 있다. 예를 들면, 제 2 통신부(121)는 유선 인터넷 모듈, 이동 통신 모듈, 무선 인터넷 모듈, 근거리 통신 모듈 등과 같은 통신 가능한 모듈을 포함할 수 있다.
제 2 연산부(122)는 마지막 블록에 대해 복호화된 데이터로부터 난수를 추출할 수 있다. 제 2 연산부(122)는 추출된 난수에 기초하여 해쉬(hash) 값을 연산할 수 있다. 예를 들면, 제 2 연산부(122)는 마지막 블록에 포함된 데이터 중 유효 데이터 및, 유효 데이터의 크기 값에 대응되는 데이터를 제외한 부분을 난수로 추출할 수 있다.
제 2 생성부(123)는 제 2 연산부(122)에서 연산된 해쉬 값을 이용하여 제 2 초기 벡터(initial vector)를 생성할 수 있다.
복호화부(124)는 암호화 키(key) 및 제 1 초기 벡터(initial vector)를 이용하여, 난수 및 유효 데이터의 크기 값을 포함하는 입력 데이터를 복호화할 수 있다.
복호화부(124)는 입력 데이터 중 마지막 블록을 암호화 키(key) 및 제 1 초기 벡터(initial vector)를 이용하여 복호화할 수 있다. 그 다음, 복호화부(124)는 제 2 생성부(123)에서 생성된 제 2 초기 벡터를 이용하여 마지막 블록을 제외한 나머지 블록을 복호화할 수 있다.
추출부(125)는 복호화된 데이터로부터 유효 데이터를 추출할 수 있다. 예를 들면, 추출부(125)는 마지막 블록을 제외한 블록들로부터 유효 데이터를 추출하고, 마지막 블록의 유효 데이터의 크기 값에 기초하여 마지막 블록으로부터 유효 데이터를 추출할 수 있다.
블록 암호 방식에서 패딩을 수행하는 암복호화 시스템은 패딩된 열에 난수와 마지막 블록의 유효 데이터의 크기 값을 삽입함으로써, 랜덤화된 암호화 결과를 얻을 수 있다.
또한, 블록 암호 방식에서 패딩을 수행하는 암복호화 시스템은 마지막 블록의 유효 데이터의 크기에 기초하여 추가될 패딩 열의 크기를 결정함으로써, 패딩되는 크기를 최소화할 수 있다.
도 2는 본 발명의 일 실시예에 따른 암복호화 시스템의 구동 방법을 설명하기 위한 도면이다.
도 1 및 도 2의 (a)를 참조하면, 입력데이터는 총 24바이트 일 수 있으며, 본 실시예에서는 블록 단위가 16 바이트인 경우를 기준으로 설명하겠다.
도 1 및 도 2의 (b)를 참조하면, 판단부(112)는 입력 데이터의 길이가 1개의 블록 크기인 16바이트의 배수인지를 판단할 수 있다. 본 실시예에 따르면, 판단부(112)는 2번째 블록(block)이 16바이트의 배수가 아니라는 것을 판단할 수 있다.
도 1 및 도 2의 (c)를 참조하면, 패딩부(113)는 입력 데이터의 길이가 n의 배수가 아니면, 마지막 블록 중 유효 데이터를 제외한 열에 난수 및 유효 데이터의 크기 값을 삽입하여 패딩(padding)할 수 있다. 본 실시예에 따르면, 패딩부(113)는 7바이트의 난수를 삽입하여 패딩할 수 있다.
도 1 및 도 2의 (d)를 참조하면, 패딩부(113)는 입력 데이터의 길이가 n의 배수가 아니면, 마지막 블록 중 유효 데이터를 제외한 열에 난수 및 유효 데이터의 크기 값을 삽입하여 패딩(padding)할 수 있다. 본 실시예에 따르면, 패딩부(113)는 1바이트의 유효 데이터의 크기 값을 삽입하여 패딩할 수 있다. 예를 들면, 유효 데이터의 크기 값은 -1 ~ (블록 크기-1)의 범위 내에 있을 수 있다. 본 실시예에 따르면, 유효 데이터의 크기 값은 8이다. 이때, 패딩부(113)는 패딩부(113)는 마지막 블록의 유효 데이터의 크기 값을 마지막 블록의 맨 마지막 열(2번째 블록의 맨 마지막 열)에 삽입할 수 있다.
암호화의 일 실시예에 따르면, 암호화부(116)는 암호화 키(key) 및 제 1 초기 벡터(initial vector)를 이용하여 도 2의 (d)의 패딩된 입력 데이터를 암호화할 수 있다.
암호화의 또 다른 일 실시예에 따르면, 제 1 연산부(114)는 7바이트의 난수에 기초하여 해쉬(hash) 값을 연산할 수 있다. 제 1 생성부(115)는 연산된 해쉬 값을 이용하여 제 2 초기 벡터(initial vector)를 생성할 수 있다. 제 2 초기 벡터의 크기는 제 1 초기 벡터의 크기와 동일하다. 암호화부(116)는 제 1 초기 벡터를 이용하여 마지막 블록(2번째 블록)을 암호화하고, 제 2 초기 벡터를 이용하여 마지막 블록을 제외한 나머지 블록(1번째 블록)을 암호화할 수 있다.
복호화의 일 실시예에 따르면, 복호화부(124)는 암호화 키(key) 및 제 1 초기 벡터(initial vector)를 이용하여, 난수 및 유효 데이터의 크기 값을 포함하는 암호화된 입력 데이터를 복호화할 수 있다.
복호화의 또 다른 일 실시예에 따르면, 복호화부(124)는 입력 데이터 중 마지막 블록(2번째 블록)을 암호화 키(key) 및 제 1 초기 벡터(initial vector)를 이용하여 복호화할 수 있다. 제 2 연산부(122)는 마지막 블록(2번째 블록)에 대해 복호화된 데이터로부터 7바이트의 난수를 추출할 수 있다. 제 2 연산부(122)는 추출된 난수에 기초하여 해쉬(hash) 값을 연산할 수 있다. 제 2 생성부(123)는 제 2 연산부(122)에서 연산된 해쉬 값을 이용하여 제 2 초기 벡터(initial vector)를 생성할 수 있다. 복호화부(124)는 제 2 생성부(123)에서 생성된 제 2 초기 벡터를 이용하여 마지막 블록을 제외한 나머지 블록(1번째 블록)을 복호화할 수 있다.
추출부(125)는 복호화된 데이터로부터 유효 데이터를 추출할 수 있다. 예를 들면, 추출부(125)는 마지막 블록을 제외한 블록들로부터 유효 데이터를 추출하고, 마지막 블록의 유효 데이터의 크기 값에 기초하여 마지막 블록으로부터 유효 데이터를 추출할 수 있다.
도 3은 본 발명의 또 다른 일 실시예에 따른 암복호화 시스템의 구동 방법을 설명하기 위한 도면이다.
도 1 및 도 3의 (a)를 참조하면, 입력데이터는 총 31바이트 일 수 있으며, 본 실시예에서는 블록 단위가 16 바이트인 경우를 기준으로 설명하겠다.
도 1 및 도 3의 (b)를 참조하면, 판단부(112)는 입력 데이터의 길이가 1개의 블록 크기인 16바이트의 배수인지를 판단할 수 있다. 본 실시예에 따르면, 판단부(112)는 2번째 블록(block)이 16바이트의 배수가 아니라는 것을 판단할 수 있다.
도 1 및 도 3의 (c)를 참조하면, 패딩부(113)는 마지막 블록 중 유효 데이터의 크기가 n-1보다 크거나 같은 경우, 1개의 블록(3번째 블록)을 더 생성할 수 있다. 패딩부(113)는 마지막 블록 중 유효 데이터를 제외한 열 및, 새롭게 생성된 블록의 열에 난수 및 유효 데이터의 크기 값을 삽입할 수 있다. 본 실시예에 따르면, 패딩부(113)는 마지막 블록 중 유효 데이터를 제외한 열 및, 새롭게 생성된 블록의 열에 16 바이트의 난수를 삽입하여 패딩을 할 수 있다.
도 1 및 도 3의 (d)를 참조하면, 패딩부(113)는 마지막 블록 중 유효 데이터의 크기가 n-1보다 크거나 같은 경우, 1개의 블록(3번째 블록)을 더 생성할 수 있다. 패딩부(113)는 마지막 블록 중 유효 데이터를 제외한 열 및, 새롭게 생성된 블록의 열에 난수 및 유효 데이터의 크기 값을 삽입할 수 있다. 본 실시예에 따르면, 패딩부(113)는 1바이트의 유효 데이터의 크기 값을 삽입하여 패딩할 수 있다. 본 실시예에 따르면, 유효 데이터의 크기 값은 -1이다. 이때, 패딩부(113)는 패딩부(113)는 마지막 블록(2번째 블록)의 유효 데이터의 크기 값을 새롭게 생성된 블록(3번째 블록)의 맨 마지막 열에 삽입할 수 있다. 이와 같이, 마지막 블록 중 유효 데이터의 크기가 n-1인 경우, 패딩부(113)는 n+1 바이트(17 바이트)의 열을 추가한 후 마지막 블록 중 유효 데이터를 제외한 열 및, 새롭게 생성된 블록의 열에 난수 및 유효 데이터의 크기 값을 삽입할 수 있다.
암호화의 일 실시예에 따르면, 암호화부(116)는 암호화 키(key) 및 제 1 초기 벡터(initial vector)를 이용하여 도 3의 (d)의 패딩된 입력 데이터를 암호화할 수 있다.
암호화의 또 다른 일 실시예에 따르면, 제 1 연산부(114)는 새롭게 생성된 블록(3번째 블록)에 존재하는 15바이트의 난수에 기초하여 해쉬(hash) 값을 연산할 수 있다. 제 1 생성부(115)는 연산된 해쉬 값을 이용하여 제 2 초기 벡터(initial vector)를 생성할 수 있다. 제 2 초기 벡터의 크기는 제 1 초기 벡터의 크기와 동일하다. 암호화부(116)는 제 1 초기 벡터를 이용하여 마지막 블록(3번째 블록)을 암호화하고, 제 2 초기 벡터를 이용하여 마지막 블록을 제외한 나머지 블록(1번째 블록 및 2번째 블록)을 암호화할 수 있다.
복호화의 일 실시예에 따르면, 복호화부(124)는 암호화 키(key) 및 제 1 초기 벡터(initial vector)를 이용하여, 난수 및 유효 데이터의 크기 값을 포함하는 암호화된 입력 데이터를 복호화할 수 있다.
복호화의 또 다른 일 실시예에 따르면, 복호화부(124)는 입력 데이터 중 마지막 블록(3번째 블록)을 암호화 키(key) 및 제 1 초기 벡터(initial vector)를 이용하여 복호화할 수 있다. 제 2 연산부(122)는 마지막 블록(3번째 블록)에 대해 복호화된 데이터로부터 15바이트의 난수를 추출할 수 있다. 제 2 연산부(122)는 추출된 난수에 기초하여 해쉬(hash) 값을 연산할 수 있다. 제 2 생성부(123)는 제 2 연산부(122)에서 연산된 해쉬 값을 이용하여 제 2 초기 벡터(initial vector)를 생성할 수 있다. 복호화부(124)는 제 2 생성부(123)에서 생성된 제 2 초기 벡터를 이용하여 마지막 블록을 제외한 나머지 블록(1번째 블록 및 2번째 블록)을 복호화할 수 있다.
추출부(125)는 복호화된 데이터로부터 유효 데이터를 추출할 수 있다. 예를 들면, 추출부(125)는 마지막 블록을 제외한 블록들로부터 유효 데이터를 추출하고, 마지막 블록의 유효 데이터의 크기 값에 기초하여 마지막 블록으로부터 유효 데이터를 추출할 수 있다.
설명된 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
또한, 실시예는 그 설명을 위한 것이며, 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술분야의 통상의 전문가라면 본 발명의 기술사상의 범위에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.
100 : 암복호화 시스템
111 : 제 1 통신부
112 : 판단부
113 : 패딩부
114 : 제 1 연산부
115 : 제 1 생성부
116 : 암호화부
120 : 복호화 장치
121 : 제 2 통신부
122 : 제 2 연산부
123 : 제 2 생성부
124 : 복호화부
125 : 추출부
111 : 제 1 통신부
112 : 판단부
113 : 패딩부
114 : 제 1 연산부
115 : 제 1 생성부
116 : 암호화부
120 : 복호화 장치
121 : 제 2 통신부
122 : 제 2 연산부
123 : 제 2 생성부
124 : 복호화부
125 : 추출부
Claims (13)
- 입력 데이터의 길이가 1개의 블록 크기인 n의 배수인지를 판단하는 판단부;
상기 입력 데이터의 길이가 n의 배수가 아니면, 마지막 블록 중 유효 데이터를 제외한 열에 난수 및 유효 데이터의 크기 값을 삽입하여 패딩(padding)하는 패딩부;
암호화 키(key) 및 제 1 초기 벡터(initial vector)를 이용하여 상기 패딩된 입력 데이터를 암호화하는 암호화부;
상기 난수에 기초하여 해쉬(hash) 값을 연산하는 제 1 연산부; 및
상기 연산된 해쉬 값을 이용하여 제 2 초기 벡터(initial vector)를 생성하는 제 1 생성부; 를 더 포함하고,
상기 암호화부는,
상기 제 1 초기 벡터를 이용하여 상기 마지막 블록을 암호화하고, 상기 제 2 초기 벡터를 이용하여 상기 마지막 블록을 제외한 나머지 블록을 암호화하는, 블록 암호 방식에서 패딩을 수행하는 암호화 장치.
- 제 1 항에 있어서,
상기 패딩부는,
마지막 블록 중 유효 데이터의 크기가 n-1보다 크거나 같은 경우, 1개의 블록을 더 생성하고, 상기 마지막 블록 중 유효 데이터를 제외한 열 및, 새롭게 생성된 블록의 열에 난수 및 유효 데이터의 크기 값을 삽입하는, 블록 암호 방식에서 패딩을 수행하는 암호화 장치.
- 제 1 항에 있어서,
상기 패딩부는,
상기 유효 데이터의 크기 값을 상기 마지막 블록의 맨 마지막 열에 삽입하는, 블록 암호 방식에서 패딩을 수행하는 암호화 장치.
- 삭제
- 암호화 키(key) 및 제 1 초기 벡터(initial vector)를 이용하여, 난수 및 유효 데이터의 크기 값을 포함하는 입력 데이터를 복호화하는 복호화부;
복호화된 데이터로부터 유효 데이터를 추출하는 추출부;
상기 복호화 된 데이터 유효 데이터의 크기 값에 기초하여 난수를 추출하고, 추출 된 난수에 기초하여 해쉬(hash)값을 연산하는 제 2 연산부; 및
상기 연산 된 해쉬 값을 이용하여 제 2 초기 벡터(initial vector)를 생성하는 제 2 생성부;를 더 포함하고,
상기 복호화부는,
입력 데이터 중 마지막 블록을 상기 암호화 키(key) 및 제 1 초기 벡터 (initial vector)를 이용하여 복호화하며, 상기 제 2 초기 벡터를 이용하여 상기 마지막 블록을 제외한 나머지 블록을 복호화하는, 블록 암호 방식에서 패딩을 수행하는 복호화 장치.
- 삭제
- 삭제
- 입력 데이터의 길이가 1개의 블록 크기인 n의 배수인지를 판단하는 판단부와, 상기 입력 데이터의 길이가 n의 배수가 아니면, 마지막 블록 중 유효 데이터를 제외한 열에 난수 및 유효 데이터의 크기 값을 삽입하여 패딩(padding)하는 패딩부와, 암호화 키(key) 및 제 1 초기 벡터(initial vector)를 이용하여 상기 패딩된 입력 데이터를 암호화하는 암호화부와 상기 난수에 기초하여 해쉬(hash) 값을 연산하는 제 1 연산부와 상기 연산된 해쉬 값을 이용하여 제 2 초기 벡터(initial vector)를 생성하는 제 1 생성부를 구비하는 블록 암호 방식에서 패딩을 수행하는 암호화 장치; 및
상기 암호화 키(key) 및 상기 제 1 초기 벡터(initial vector)를 이용하여, 난수 및 유효 데이터의 크기 값을 포함하는 입력 데이터를 복호화하는 복호화부와, 복호화된 데이터 중 유효 데이터의 크기 값에 기초하여, 복호화된 데이터로부터 유효 데이터를 추출하는 추출부를 구비하는 블록 암호 방식에서 패딩을 수행하는 복호화 장치를 포함하며,
상기 암호화부는,
상기 제 1 초기 벡터를 이용하여 상기 마지막 블록을 암호화하고, 상기 제 2 초기 벡터를 이용하여 상기 마지막 블록을 제외한 나머지 블록을 암호화하는, 블록 암호 방식에서 패딩을 수행하는 암복호화 시스템.
- 제 8 항에 있어서,
상기 패딩부는,
마지막 블록 중 유효 데이터의 크기가 n-1보다 크거나 같은 경우, 1개의 블록을 더 생성하고, 상기 마지막 블록 중 유효 데이터를 제외한 열 및, 새롭게 생성된 블록의 열에 난수 및 유효 데이터의 크기 값을 삽입하는, 블록 암호 방식에서 패딩을 수행하는 암복호화 시스템.
- 제 8 항에 있어서,
상기 패딩부는,
상기 유효 데이터의 크기 값을 상기 마지막 블록의 맨 마지막 열에 삽입하는, 블록 암호 방식에서 패딩을 수행하는 암복호화 시스템.
- 삭제
- 제 8 항에 있어서,
상기 복호화부는,
입력 데이터 중 마지막 블록을 상기 암호화 키(key) 및 제 1 초기 벡터(initial vector)를 이용하여 복호화하는, 블록 암호 방식에서 패딩을 수행하는 암복호화 시스템.
- 제 12 항에 있어서,
상기 복호화 장치는,
복호화된 데이터로부터 난수를 추출하고, 추출된 난수에 기초하여 해쉬(hash) 값을 연산하는 제 2 연산부; 및
상기 연산된 해쉬 값을 이용하여 제 2 초기 벡터(initial vector)를 생성하는 제 2 생성부;를 더 포함하고,
상기 복호화부는,
상기 제 2 초기 벡터를 이용하여 상기 마지막 블록을 제외한 나머지 블록을 복호화하는, 블록 암호 방식에서 패딩을 수행하는 암복호화 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150006673A KR101663274B1 (ko) | 2015-01-14 | 2015-01-14 | 블록 암호 방식에서 패딩을 수행하는 암호화 장치, 복호화 장치 및 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150006673A KR101663274B1 (ko) | 2015-01-14 | 2015-01-14 | 블록 암호 방식에서 패딩을 수행하는 암호화 장치, 복호화 장치 및 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160087561A KR20160087561A (ko) | 2016-07-22 |
KR101663274B1 true KR101663274B1 (ko) | 2016-10-07 |
Family
ID=56681208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150006673A KR101663274B1 (ko) | 2015-01-14 | 2015-01-14 | 블록 암호 방식에서 패딩을 수행하는 암호화 장치, 복호화 장치 및 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101663274B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210266175A1 (en) * | 2018-06-18 | 2021-08-26 | Koninklijke Philips N.V. | Device for data encryption and integrity |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101978684B1 (ko) * | 2017-08-31 | 2019-05-15 | 동국대학교 산학협력단 | 재생 공격 방지가 가능한 부호 기반 암호화 장치 및 방법 |
KR102117758B1 (ko) * | 2018-07-19 | 2020-06-01 | 부산대학교 산학협력단 | 전력 플랫폼 서버 환경상에서의 경량 암호 고속화 연산 처리 방법 |
CN112187732B (zh) * | 2020-09-09 | 2021-08-03 | 北京幻想纵横网络技术有限公司 | 一种数据加密、加载方法以及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002023624A (ja) * | 2000-07-07 | 2002-01-23 | Murata Mach Ltd | ブロック暗号通信方法とその装置、及びブロック暗号通信プログラムを記録した記録媒体 |
JP2004158981A (ja) * | 2002-11-05 | 2004-06-03 | Toshiba Corp | 通信装置及び通信方法 |
JP2011091494A (ja) | 2009-10-20 | 2011-05-06 | Nippon Hoso Kyokai <Nhk> | データ配信装置、データ受信装置、データ配信プログラム、及び、データ受信プログラム |
-
2015
- 2015-01-14 KR KR1020150006673A patent/KR101663274B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002023624A (ja) * | 2000-07-07 | 2002-01-23 | Murata Mach Ltd | ブロック暗号通信方法とその装置、及びブロック暗号通信プログラムを記録した記録媒体 |
JP2004158981A (ja) * | 2002-11-05 | 2004-06-03 | Toshiba Corp | 通信装置及び通信方法 |
JP2011091494A (ja) | 2009-10-20 | 2011-05-06 | Nippon Hoso Kyokai <Nhk> | データ配信装置、データ受信装置、データ配信プログラム、及び、データ受信プログラム |
Non-Patent Citations (1)
Title |
---|
A. Menezes 외 2명, Handbook of Applied Cryptography, Chapter.9, CRC Press (1996.)* |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210266175A1 (en) * | 2018-06-18 | 2021-08-26 | Koninklijke Philips N.V. | Device for data encryption and integrity |
Also Published As
Publication number | Publication date |
---|---|
KR20160087561A (ko) | 2016-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mahajan et al. | A study of encryption algorithms AES, DES and RSA for security | |
KR101516574B1 (ko) | 형태보존 암호화를 위한 가변길이 블록암호 장치 및 방법 | |
CN103457718B (zh) | 使用可变长度分段和固定分组加密的部分密文更新 | |
KR101744748B1 (ko) | 화이트박스 암호 테이블을 이용한 콘텐츠 보호 장치, 콘텐츠 암호화 및 복호화 장치 | |
CN106656475B (zh) | 一种用于高速加密的新型对称型密钥加密方法 | |
US10009170B2 (en) | Apparatus and method for providing Feistel-based variable length block cipher | |
KR101632658B1 (ko) | 명령어 레벨의 소프트웨어 암호화를 위한 방법 및 디바이스 | |
KR101847492B1 (ko) | 데이터 암호화 장치 및 방법, 데이터 복호화 장치 및 방법 | |
US10623176B2 (en) | Authentication encryption method, authentication decryption method, and information-processing device | |
US7321659B2 (en) | Simple universal hash for plaintext aware encryption | |
CN105871550B (zh) | 一种实现数字信号加密传输的*** | |
KR101663274B1 (ko) | 블록 암호 방식에서 패딩을 수행하는 암호화 장치, 복호화 장치 및 시스템 | |
JP2015062064A (ja) | データ保護装置及びその方法 | |
CN102063598A (zh) | 一种数据加密、解密方法及装置 | |
JP7362676B2 (ja) | データの暗号化および完全性のためのデバイス | |
EP2904731B1 (en) | Method and device for digital data blocks encryption and decryption | |
CN103501220B (zh) | 加密方法和装置 | |
JP2016075765A (ja) | 認証暗号化装置および認証復号装置、ならびに、それらのプログラム | |
KR101347124B1 (ko) | 일회용 공개 정보 기반 전자 처방전 처리 방법 및 이를 이용한 장치 | |
US7773753B2 (en) | Efficient remotely-keyed symmetric cryptography for digital rights management | |
KR101934899B1 (ko) | 인증 암호 장치 및 방법 | |
CN111314053B (zh) | 一种数据加密和解密方法 | |
CN111314052B (zh) | 一种数据加密和解密方法 | |
JP4287397B2 (ja) | 暗号文生成装置、暗号文復号装置、暗号文生成プログラム及び暗号文復号プログラム | |
KR101583285B1 (ko) | 확장 키를 이용한 블록 암호화 방법 및 그 방법에 따른 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
N231 | Notification of change of applicant | ||
E701 | Decision to grant or registration of patent right | ||
FPAY | Annual fee payment |
Payment date: 20190930 Year of fee payment: 4 |
|
R401 | Registration of restoration |