KR100840944B1 - 역믹스컬럼블록 장치 및 이를 이용한 곱셈연산방법 - Google Patents
역믹스컬럼블록 장치 및 이를 이용한 곱셈연산방법 Download PDFInfo
- Publication number
- KR100840944B1 KR100840944B1 KR1020060122860A KR20060122860A KR100840944B1 KR 100840944 B1 KR100840944 B1 KR 100840944B1 KR 1020060122860 A KR1020060122860 A KR 1020060122860A KR 20060122860 A KR20060122860 A KR 20060122860A KR 100840944 B1 KR100840944 B1 KR 100840944B1
- Authority
- KR
- South Korea
- Prior art keywords
- multiplication
- block
- result
- byte
- input
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
-
- 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
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Error Detection And Correction (AREA)
- Storage Device Security (AREA)
Abstract
Description
반복 라운드 처리부(120)는 대치 연산이 수행된 암호문을 복귀시키기 위한 쉬프트된 행을 다시 원래대로 복귀시키기 위한 역쉬프트로우(InvShiftRows)블록(121), 역서브바이트(InvSubBytes)블록(122), 라운드키처리(AddRoundKey)블록(123) 및 추가 선형 변환을 역수행하기 위한 역믹스컬럼(InvMixColums)블록(124)으로 구성된다.
그리고, 마지막 라운드 처리부(130)는 역쉬프트로우(InvShiftRows)블록(121), 역서브바이트(InvSubBytes)블록(122) 및 라운드키처리(AddRoundKey)블록(123)으로 구성된다.
Claims (12)
- AES(Advanced Encryption Standard) 블록 복호의 라운드 연산을 수행하는 역믹스컬럼(MixColums)블록 장치에 있어서,비트 단위의 입력 데이터를 바이트 단위로 저장하고 저장된 입력 바이트를 출력하는 저장부;상기 저장부로부터 입력받은 상기 입력 바이트에 대한 16진수 값인 {01}, {02}, {04} 및 {08} 곱셈연산을 수행하여 출력하는 제1 곱셈연산 블록부;상기 제1 곱셈연산 블록부로부터 입력받은 상기 {01}, {02}, {04} 및 {08} 곱셈연산을 수행한 결과를 이용하여 16진수 값인 {09}, {0b}, {0d} 및 {0e} 곱셈연산을 수행하여 출력하는 제2 곱셈연산 블록부; 및상기 제2 곱셈연산 블록부로부터 입력받은 상기 {09}, {0b}, {0d} 및 {0e} 곱셈연산을 수행한 결과에 대한 배타적 논리합 연산을 수행하여 상기 입력 바이트에 대한 출력 바이트를 출력하는 배타적 논리합 연산부를 포함하는 역믹스컬럼블록 장치.
- 제1항에 있어서,상기 제1 곱셈연산 블록부는,상기 저장부로부터 상기 입력 바이트를 입력받아 출력하는 {01} 곱셈연산 블록;상기 {01} 곱셈연산 블록이 출력한 값을 입력받아 {02} 곱셈연산을 수행한 결과를 출력하는 {02} 곱셈연산 블록;상기 {02} 곱셈연산 블록이 출력한 값을 입력받아 {04} 곱셈연산을 수행한 결과를 출력하는 {04} 곱셈연산 블록; 및상기 {04} 곱셈연산 블록이 출력한 값을 입력받아 {08} 곱셈연산을 수행한 결과를 출력하는 {08} 곱셈연산 블록을 포함하는 것을 특징으로 하는 역믹스컬럼블록 장치.
- 제2항에 있어서,상기 {02} 곱셈연산 블록 또는 상기 {04} 곱셈연산 블록 또는 상기 {08} 곱셈연산 블록은,바이트 단위의 입력 값을 저장하는 제1 저장 레지스터;상기 제1 저장 레지스터로부터 입력 바이트를 입력받아 이를 좌측으로 1 비트 쉬프트시켜 출력하는 쉬프트 레지스터;16진수 값 {1D}를 저장하는 제2 저장 레지스터;상기 쉬프트 레지스터로부터 출력된 값과 상기 제2 저장 레지스터에 저장된 값을 입력받고, 입력받은 값들에 대한 배타적 논리합 연산을 수행하여 출력하는 배타적 논리합 연산기; 및상기 제1 저장 레지스터로부터 입력받은 상기 입력 바이트의 최상위 비트를 제어 비트로 하고 상기 쉬프트 레지스터로부터 출력된 값 및 상기 배타적 논리합 연산기로부터 출력된 값을 입력받아 상기 입력받은 값들 중에서 출력할 값을 선별하는 먹스를 포함하는 것을 특징으로 하는 역믹스컬럼블록 장치.
- 제3항에 있어서,상기 제1 곱셈연산 블록부는,상기 {01} 곱셈연산 블록, {02} 곱셈연산 블록, {04} 곱셈연산 블록 및 {08} 곱셈연산 블록으로 구성되고, 상기 저장부로부터 입력된 복수개의 입력 바이트에 대한 {01}, {02}, {04} 및 {08} 곱셈연산을 수행하는 곱셈연산 모듈을 복수개 포함하는 것을 특징으로 하는 역믹스컬럼블록 장치.
- 제1항 내지 제4항 중 어느 한 항에 있어서,상기 제2 곱셈연산 블록부는,상기 {01} 곱셈연산 블록 및 상기 {08} 곱셈연산 블록으로부터 출력된 값을 입력받아 이들에 대한 배타적 논리합 연산을 수행하여 {09} 곱셈연산 결과를 출력하는 {09} 곱셈연산 블록;상기 {01} 곱셈연산 블록, {02} 곱셈연산 블록 및 상기 {08} 곱셈연산 블록으로부터 출력된 값을 입력받아 이들에 대한 배타적 논리합 연산을 수행하여 {0b} 곱셈연산 결과를 출력하는 {0b} 곱셈연산 블록;상기 {01} 곱셈연산 블록, {04} 곱셈연산 블록 및 상기 {08} 곱셈연산 블록 으로부터 출력된 값을 입력받아 이들에 대한 배타적 논리합 연산을 수행하여 {0d} 곱셈연산 결과를 출력하는 {0d} 곱셈연산 블록;{02} 곱셈연산 블록, {04} 곱셈연산 블록 및 {08} 곱셈연산 블록으로부터 출력된 값을 입력받아 이들에 대한 배타적 논리합 연산을 수행하여 {0e} 곱셈연산 결과를 출력하는 {0e} 곱셈연산 블록을 포함하는 것을 특징으로 하는 역믹스컬럼블록 장치.
- 제3항에 있어서,상기 제2 곱셈연산 블록부는,상기 {09} 곱셈연산 블록, {0b} 곱셈연산 블록, {0d} 곱셈연산 블록 및 {0e} 곱셈연산 블록으로 구성되고, 상기 저장부로부터 입력된 복수개의 입력 바이트에 대한 {09}, {0b}, {0d} 및 {0e} 곱셈연산을 수행하는 곱셈연산 모듈을 복수개 포함하는 것을 특징으로 하는 역믹스컬럼블록 장치.
- 제6항에 있어서,상기 배타적 논리합 연산부는,32 비트 단위로 입력된 데이터를 바이트 단위로 구분한 입력 바이트에 대한 출력 바이트를 연산하고,첫번째 입력 바이트에 대한 {0e} 곱셈연산 결과, 두번째 입력 바이트에 대한 {0b} 곱셈연산 결과, 세번째 입력 바이트에 대한 {0d} 곱셈연산 결과 및 네번째 입 력 바이트에 대한 {09} 곱셈연산 결과를 입력받아 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 첫번째 입력 바이트에 대한 출력 바이트로 연산하는 제1 출력부;첫번째 입력 바이트에 대한 {09} 곱셈연산 결과, 두번째 입력 바이트에 대한{0e} 곱셈연산 결과, 세번째 입력 바이트에 대한 {0b} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {0d} 곱셉연산 결과를 입력받아 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 두번째 입력 바이트에 대한 출력 바이트로 연산하는 제2 출력부;첫번째 입력 바이트에 대한 {0d} 곱셈연산 결과, 두번째 입력 바이트에 대한 {09} 곱셈연산 결과, 세번째 입력 바이트에 대한 {0e} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {0b} 곱셈연산 결과를 입력받아 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 세번째 입력 바이트에 대한 출력 바이트로 연산하는 제3 출력부; 및첫번째 입력 바이트에 대한 {0b} 곱셈연산 결과, 두번째 입력 바이트에 대한 {0d} 곱셈연산 결과, 세번째 입력 바이트에 대한 {09} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {0e} 곱셈연산 결과를 입력받이 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 네번째 입력 바이트에 대한 출력 바이트로 연산하는 제4 출력부를 포함하는 것을 특징으로 하는 역믹스컬럼블록 장치.
- AES 블록 암호의 라운드 연산을 수행하는 역믹스컬럼블록의 곱셈연산방법에 있어서,입력 바이트에 대한 16진수 값인 {01}, {02}, {04} 및 {08} 곱셈연산을 수행하는 단계;상기 {01}, {02}, {04} 및 {08} 곱셈연산을 수행한 결과를 이용하여 16진수 값인 {09}, {0b}, {0d} 및 {0e} 곱셈연산을 수행하는 단계;상기 {09}, {0b}, {0d} 및 {0e} 곱셈연산을 수행한 결과에 대한 배타적 논리합 연산을 수행하는 단계; 및상기 배타적 논리합 연산을 수행한 결과를 상기 입력 바이트에 대한 출력 바이트를 출력하는 단계를 포함하는 역믹스컬럼블록의 곱셈연산방법.
- 제8항에 있어서,상기 {01}, {02}, {04} 및 {08} 곱셈연산을 수행하는 단계는,상기 입력 바이트를 입력받아 출력하는 {01} 곱셈연산 단계;상기 {01} 곱셈연산 결과를 이용하여 {02} 곱셈연산을 수행하는 {02} 곱셈연산 단계;상기 {02} 곱셈연산 결과를 이용하여 {04} 곱셈연산을 수행하는 {04} 곱셈연산 단계; 및상기 {04} 곱셈연산 결과를 이용하여 {08} 곱셈연산을 수행하는 {08} 곱셈연 산 단계를 포함하는 것을 특징으로 하는 역믹스컬럼블록의 곱셈연산방법.
- 제9항에 있어서,상기 {02} 곱셈연산 단계 또는 상기 {04} 곱셈연산 단계 또는 상기 {08} 곱셈연산 단계는,상기 입력 바이트를 좌측으로 1 비트 쉬프트시켜 출력하는 단계;상기 쉬프트시켜 출력한 값과 16진수 값 {1D}에 대한 배타적 논리합 연산을 수행하여 출력하는 단계; 및상기 입력 바이트의 최상위 비트를 이용하여 상기 쉬프트시켜 출력한 값과 상기 배타적 논리합 연산을 수행하여 출력한 값 중에서 출력할 값을 선별하는 단계를 포함하는 것을 특징으로 하는 역믹스컬럼블록의 곱셈연산방법.
- 제10항에 있어서,상기 {09}, {0b}, {0d} 및 {0e} 곱셈연산을 수행하는 단계는,상기 {01} 곱셈연산 결과 및 상기 {08} 곱셈연산 결과들을 이용한 배타적 논리합 연산을 수행하는 {09} 곱셈연산 단계;상기 {01} 곱셈연산 결과, {02} 곱셈연산 결과 및 상기 {08} 곱셈연산 결과들을 이용한 배타적 논리합 연산을 수행하는 {0b} 곱셈연산 단계;상기 {01} 곱셈연산 결과, {04} 곱셈연산 결과 및 상기 {08} 곱셈연산 결과 들을 이용한 배타적 논리합 연산을 수행하는 {0d} 곱셈연산 단계; 및상기 {02} 곱셈연산 결과, {04} 곱셈연산 결과 및 {08} 곱셈연산 결과들을 이용한 배타적 논리합 연산을 수행하는 {0e} 곱셈연산 단계를 포함하는 것을 특징으로 하는 역믹스컬럼블록의 곱셈연산방법.
- 제11항에 있어서,상기 배타적 논리합 연산을 수행하는 단계는,32 비트 단위로 입력된 데이터를 바이트 단위로 구분한 입력 바이트에 대한 출력 바이트를 연산하고,첫번째 입력 바이트에 대한 {0e} 곱셈연산 결과, 두번째 입력 바이트에 대한 {0b} 곱셈연산 결과, 세번째 입력 바이트에 대한 {0d} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {09} 곱셈연산 결과를 입력받아 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 첫번째 입력 바이트에 대한 출력 바이트로 연산하는 단계;첫번째 입력 바이트에 대한 {09} 곱셈연산 결과, 두번째 입력 바이트에 대한{0e} 곱셈연산 결과, 세번째 입력 바이트에 대한 {0b} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {0d} 곱셉연산 결과를 입력받아 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 두번째 입력 바이트에 대한 출력 바이트로 연산하는 단계;첫번째 입력 바이트에 대한 {0d} 곱셈연산 결과, 두번째 입력 바이트에 대한 {09} 곱셈연산 결과, 세번째 입력 바이트에 대한 {0e} 곱셈연산 결과 및 네번째 입 력 바이트에 대한 {0b} 곱셈연산 결과를 입력받아 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 세번째 입력 바이트에 대한 출력 바이트로 연산하는 단계; 및첫번째 입력 바이트에 대한 {0b} 곱셈연산 결과, 두번째 입력 바이트에 대한 {0d} 곱셈연산 결과, 세번째 입력 바이트에 대한 {09} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {0e} 곱셈연산 결과를 입력받이 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 네번째 입력 바이트에 대한 출력 바이트로 연산하는 단계를 포함하는 역믹스컬럼블록의 곱셈연산방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060122860A KR100840944B1 (ko) | 2006-12-06 | 2006-12-06 | 역믹스컬럼블록 장치 및 이를 이용한 곱셈연산방법 |
PCT/KR2007/003054 WO2008069388A2 (en) | 2006-12-06 | 2007-06-25 | Inverse mixcolumn block device and method of performing multiplication calculation using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060122860A KR100840944B1 (ko) | 2006-12-06 | 2006-12-06 | 역믹스컬럼블록 장치 및 이를 이용한 곱셈연산방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080051537A KR20080051537A (ko) | 2008-06-11 |
KR100840944B1 true KR100840944B1 (ko) | 2008-06-24 |
Family
ID=39492740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060122860A KR100840944B1 (ko) | 2006-12-06 | 2006-12-06 | 역믹스컬럼블록 장치 및 이를 이용한 곱셈연산방법 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR100840944B1 (ko) |
WO (1) | WO2008069388A2 (ko) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060198524A1 (en) | 2003-05-14 | 2006-09-07 | Sexton Bonnie C | Hardware implementation of the mixcolumn/invmiscolumn functions |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW527783B (en) * | 2001-10-04 | 2003-04-11 | Ind Tech Res Inst | Encryption/deciphering device capable of supporting advanced encryption standard |
-
2006
- 2006-12-06 KR KR1020060122860A patent/KR100840944B1/ko active IP Right Grant
-
2007
- 2007-06-25 WO PCT/KR2007/003054 patent/WO2008069388A2/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060198524A1 (en) | 2003-05-14 | 2006-09-07 | Sexton Bonnie C | Hardware implementation of the mixcolumn/invmiscolumn functions |
Also Published As
Publication number | Publication date |
---|---|
WO2008069388A2 (en) | 2008-06-12 |
WO2008069388A3 (en) | 2009-07-30 |
KR20080051537A (ko) | 2008-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8340280B2 (en) | Using a single instruction multiple data (SIMD) instruction to speed up galois counter mode (GCM) computations | |
Hutter et al. | NaCl on 8-bit AVR microcontrollers | |
US7991152B2 (en) | Speeding up Galois Counter Mode (GCM) computations | |
US9503256B2 (en) | SMS4 acceleration hardware | |
Hutter et al. | NaCl’s crypto_box in hardware | |
JP6044738B2 (ja) | 情報処理装置、プログラム及び記憶媒体 | |
JP2002040933A (ja) | データ暗号化標準アルゴリズムを利用した暗号化装置 | |
KR20050078271A (ko) | 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법 | |
JP2002229445A (ja) | べき乗剰余演算器 | |
KR100922728B1 (ko) | Aes 암복호화 장치 및 암복호화 방법 | |
Kaur et al. | Efficient implementation of AES algorithm in FPGA device | |
KR100840944B1 (ko) | 역믹스컬럼블록 장치 및 이를 이용한 곱셈연산방법 | |
Hammad | Efficient hardware implementations for the advanced encryption standard algorithm | |
CN110071927B (zh) | 一种信息加密方法、系统及相关组件 | |
KR100788902B1 (ko) | 믹스컬럼블록 장치 및 이를 이용한 곱셈연산방법 | |
Babu et al. | Aes algorithm implementation using arm processor | |
Sireesha et al. | A novel approach of area optimized and pipelined FPGA implementation of AES encryption and decryption | |
KR20020087331A (ko) | 부분 라운드간 파이프라인 기법을 이용한 AES Rijndael암호 및 복호 회로 | |
JP5605197B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
KR100498754B1 (ko) | 소수체를 기반으로 하는 공개키 암호장치 | |
JP5354914B2 (ja) | 暗号処理装置及び復号処理装置及びプログラム | |
JP4692022B2 (ja) | 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム | |
JP5822757B2 (ja) | ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム | |
JP4990843B2 (ja) | 暗号演算装置、その方法、及びプログラム | |
JP2006502437A (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: 20130530 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20140529 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20150528 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20160530 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20170529 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20180530 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20190530 Year of fee payment: 12 |