KR20070086509A - 암호 작성 프로세싱의 스피드를 증가시키는 방법 및 장치 - Google Patents
암호 작성 프로세싱의 스피드를 증가시키는 방법 및 장치 Download PDFInfo
- Publication number
- KR20070086509A KR20070086509A KR1020077014110A KR20077014110A KR20070086509A KR 20070086509 A KR20070086509 A KR 20070086509A KR 1020077014110 A KR1020077014110 A KR 1020077014110A KR 20077014110 A KR20077014110 A KR 20077014110A KR 20070086509 A KR20070086509 A KR 20070086509A
- Authority
- KR
- South Korea
- Prior art keywords
- encryption
- algorithm
- encryption algorithm
- applying
- shared secret
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 71
- 238000012545 processing Methods 0.000 title description 30
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 114
- 241000270295 Serpentes Species 0.000 claims description 23
- 230000006870 function Effects 0.000 description 19
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000015654 memory Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005291 magnetic effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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
-
- 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/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
- H04L9/0668—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Nonlinear Science (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
캐스케이디드 블록 암호 시스템(cascaded block cipher system)에서 데이터를 암호화하는 것은, 제1 및 제2 파티들 사이에 공유된 비밀을 키로 이용하여 비밀 내부 키를 발생시키도록 제1 암호화 알고리즘을 적용하는 단계; 비밀 내부 키를 이용하여 복수의 평문 데이터 블록으로부터 복수의 암호문 데이터 블록을 발생시키도록 사전결정된 라운드 수만큼 제2 암호화 알고리즘을 적용하는 단계; 및 제1 암호화 알고리즘을 적용하는 단계와 제2 암호화 알고리즘을 적용하는 단계를 반복하는 단계에 의해 달성될 수 있다.
데이터 암호화(data encryption), 세션 키(session key), 비밀 내부 키(secret inner key), 암호문(ciphertext), 공유 비밀 상태(shared secret state)
Description
본 명세서의 일부는 저작권 보호를 받는 자료를 포함한다. 누군가의 특허 문서 또는 특허 공개에 의한 팩스 복사에 대해 저작권자가 이를 금지하지는 않지만, 다른 경우에는 저작권이 적용된다.
본 발명은 일반적으로 암호 작성(cryptography)에 관한 것으로, 특히, 암호화(encryption) 및 암호 해독(decryption) 프로세싱에 관한 것이다.
평문(plaintext) 데이터의 내용을 인증되지 않은 액세스로부터 보호하기 위해 암호화 알고리즘이 평문 데이터를 암호문 데이터(ciphertext data)로 암호화하는데 사용된다. 이러한 프로세싱을 위한 다양한 암호화 알고리즘이 해당 기술분야에서 알려져 있다. 암호화는 하드웨어 또는 소프트웨어에서 구현될 수 있다. 소프트웨어에서 구현되는 경우, 일부 암호화 알고리즘은 많은 프로세싱 자원들(processing resources)을 소비할 수 있다. 예를 들어, 평문이 압축되지 않은 고선명 비디오 내용(high definition video content)을 표현하는 경우, 소프트웨어 기반 암호화는 일부 애플리케이션에 대하여 너무 느릴 수 있다. 그러므로, 충분한 보안을 그대로 제공하면서 암호화 프로세싱의 속도를 올리는 기술이 필요하다. 또 한, 암호 해독 프로세싱 속도를 올리는 대응 기술도 필요하다.
본 발명은 캐스케이디드 블록 암호 시스템(cascaded block cipher system)에서 데이터를 암호화하는 것이다. 본 발명은, 제1 및 제2 파티들 사이에 공유된 비밀을 키로 이용하여 비밀 내부 키를 발생시키도록 제1 암호화 알고리즘을 적용하는 단계; 비밀 내부 키를 이용하여 복수의 평문 데이터 블록으로부터 복수의 암호문 데이터 블록을 발생시키도록 사전결정된 라운드 수만큼 제2 암호화 알고리즘을 적용하는 단계; 및 제1 암호화 알고리즘을 적용하는 단계와 제2 암호화 알고리즘을 적용하는 단계를 반복하는 단계로 구성된다.
본 발명의 특징 및 장점들은 다음의 본 발명의 상세한 설명으로부터 명확해 질 것이다.
도 1은 본 발명의 일 실시예에 따른 암호화 유닛(encryption unit)의 다이어그램.
도 2는 본 발명의 일 실시예에 따라 암호화 프로세싱을 도시한 흐름도.
도 3은 본 발명의 일 실시예에 따른 암호화 시스템의 다어어그램.
도 4는 본 발명의 추가적인 실시예에 따라 암호화 프로세싱을 도시한 흐름도.
도 5는 본 발명의 실시예에 따라 경량 업데이트 함수(lightweight update function)를 위해 워드(word) 집합을 그리드 패턴으로 맵핑하는 다어어그램.
도 6은 본 발명의 일 실시예에 따른 경량 업데이트 함수의 흐름도.
도 7은 본 발명의 추가적인 실시예에 따른 암호화 시스템의 다어어그램.
본 발명의 실시예들은 빠르고 안전한 방법으로 암호 작성 알고리즘을 수행하기 위한 방법 및 장치를 포함한다. 본 발명의 실시예는 강력 보안(strong security)을 유지하면서 더 빠른 속도의 암호화를 달성하기 위해 감소된 라운드 암호화 알고리즘(reduced round encryption algorithm)과 함께 강력 카운터 모드 암호화 알고리즘(strong counter mode encryption algorithm)을 이용한다. 실시예들은 카운터 모드의 강력 외부 암호를 이용하여 키잉 재료(keying material)(내부 키) 및 빠르고, 각 생성된 내부 키와 함께 제한된 수의 암호화만큼만 동작하는 상대적으로 약한 내부 암호(weak inner cipher)를 제작하는 캐스케이딩 블록 암호 시스템(cascading block cipher system)을 포함한다. 적이 내부 암호를 해독하기 위한 충분한 평문/암호문 쌍을 얻지 못하도록 내부 키는 자주 변경된다. 또한, 적이 하나의 내부 키를 계산할 수 있더라도, 이 사실은 적이 다른 내부 키를 계산하는데 도움을 주지 않는다. 일부 실시예에서, 공유 비밀 상태는 카운터 모드의 대칭 암호화 알고리즘으로부터 발생되어 전반적인 암호화 프로세싱의 보안을 향상시킨다. 추가적으로, 대응 기술들은 암호 해독 프로세싱에 사용될 수 있다.
본 명세서에서 본 발명의 "일 실시예"에 관한 언급은 실시예에 관하여 설명된 특정 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서에 여러 곳에 있는 "일 실시예" 문구의 표시는 반드시 동일한 실시예를 언급하는 것은 아니다.
도 1은 본 발명의 일 실시예에 따라 암호화 유닛을 도시한다. 암호화 유닛(100)은 k개의 평문 데이터 블록 P(0,..,k-1)(102)을 암호문 데이터 C(0,..,k-1)(104)로 변환하는 암호화 프로세싱을 수행한다. 일부 실시예에 따르면, 암호화 유닛(100)는 아래에서 더 설명되는 암호화 동작들을 수행하는데 있어서 공유 비밀(106) 및 공유 비밀 상태(108) 값을 사용한다. 암호화 유닛(100)는 하드웨어 또는 소프트웨어에서 구현될 수 있다. 암호 해독을 수행하기 위해, 암호 해독 유닛(도시되지 않음)은 대응하는 암호 해독 동작들을 이용하여 암호문 블록들을 평문으로 변환한다.
도 2는 본 발명의 일 실시예에 따라 암호화 유닛(100)에 의해 수행되는 암호화 프로세싱을 도시하는 흐름도(200)이다. 보호된 방법으로 데이터를 교환하려고 하는 두 파티(party)가 있다고 하자. 제1 파티 및 제2 파티는 단계(202)에서 공지의 키 교환 절차를 수행하여 공유 비밀(106)을 정의한다. 일 실시예에서, 공지의 디피 헬만(Diffie-Hellman) 키 교환 절차가 사용될 수 있다. 일 실시예에서, 공유 비밀은 세션 키(session key)를 포함하고, 이 세션 키는 공유 비밀의 적어도 일 부분이 된다. 세션 키는 대칭 암호작성 프로세스(symmetric cryptographic processes)에 사용되는 암호작성 키(cryptographic key)가 될 수 있다. 다른 실시예에서, 공유 비밀은 임의 길이의 비트 스트링(예컨대 1024 비트, 2048 비트 등)을 포함하고, 세션 키는 공유 비밀을 입력 파라미터로 사용하는 계산에 의해 공유 비밀로부터 얻어질 수 있다.
단계(204)에서, 내부 키 카운터 j가 초기화될 수 있다. 단계(206)에서, 평문 데이터를 암호화하려고 하는 파티는 j번째 내부 키를 발생시키고, 각 내부 키(j=0,.. , 내부 키의 개수-1)는 세션 키를 키로 이용하는 카운터 j의 대칭 암호화와 동일하다. 일 실시예에서, 대칭 암호화 동작은 내부 키 스트림을 발생시키기 위해 고급 암호화 표준(Advanced Encryption Standard: AES) 카운터(CTR) 모드의 공지의 AES 알고리즘 애플리케이션(미국 국립 표준 기술 연구소(NIST) 특별 출판물 800-38A, 2001판에서 설명됨)을 포함한다. AES의 카운터 모드의 전형적인 사용에서, 카운터 j의 암호화가 평문 블록 P(i)를 암호문 블록으로 암호화하는데 직접 사용되는데, 예컨대, C(i)=P(i) XOR AES(j)이고, 여기서 AES(j)는 세션 키를 AES 키로 사용하는 카운터 j의 AES 암호화를 나타낸다. 그러나, 본 발명의 실시예에서, 내부 키는 본 명세서에서 설명된 바와 다른 방식 및 새로운 방식으로 사용될 수 있다. InnerKey(j)=AES(j)가 j번째 내부 키를 표시한다고 하자. 단계(208)에서, 암호화 파티는 InnerKey(j) 및 공지의 선택된 "경량(lightweight)" 암호화(LWE) 알고리즘을 이용하여 k개의 평문 P(j*k+0), P(j*k+1),.., P(j*k+k-1) 블록을 암호화하여 암호문 블록 C(j*k+0), C(j*k+1),..., C(j*k+k-1)을 형성한다.
일 실시예에서, 단계(208)의 암호화는 아래와 같이 수행된다.
i=j*k+0,...,j*k+k-1에 대하여, "경량(lightweight)" 암호화 알고리즘(LWE)을 이용하여, C(i)=InnerKey(j)에 의해 암호화된 P(i) 라 두자.
다음으로, 단계(210)에서, 내부 키 카운터(j)가 증가될 수 있다. 단계(212)에서, 평문 데이터의 모든 블록이 암호화되면, 프로세싱은 종료된다. 그렇지 않으 면, 평문 데이터의 더 많은 블록이 암호화되어야 하고, 따라서 카운터 j의 증가된 값을 이용하여 단계(206)에서 k개의 블록들의 다음 세트에 대해 프로세싱이 계속된다.
일 실시예에서, "경량(lightweight)" 암호화(LWE) 알고리즘은 공지의 표준 암호작성 알고리즘을 포함하지만, 더 적은 라운드를 이용하여 암호화가 표준 구현보다 훨씬 빨라진다. 예를 들어, 공지의 라인달 알고리즘(Rijndael algorithm)은 10회 대신에 2회 또는 3회 라운드만이 사용될 수 있다. 이와 달리, 공지의 서펜트 알고리즘(Serpent algorithm)은 32회 라운드 대신에 3내지 4회 라운드만이 사용될 수 있다. 더 적은 라운드를 이용함에도 불구하고, 암호화 결과는 본 발명에 따라 충분한 보안을 제공한다. 라이달 및 서펜트 알고리즘에 대한 자세한 내용은 앞서의 1998년 8월 20~22일의 "제1회 AES 지원자 회의(The First AES Candidate Conference)", NIST에서 찾아볼 수 있다. 다른 실시예에서, 이 알고리즘의 다른 회수의 라운드가 사용되거나, 다른 암호화 알고리즘이 사용될 수 있다.
이 실시예에서, 강력 카운터 모드 암호화 알고리즘(예컨대, AES)이 더 빠른 고리즘(예컨대, 적은 라운드 회수의 라인달 또는 서펜트)과 함께 사용될 수 있다.
본 발명의 일 실시예의 의사 코드(pseudo-code)가 표 1에 나타나 있다.
ⓒ 2004 Intel Corporation LWE를 예컨대 2 라운드 라인달 또는 3 라운드 서펜트와 같은 경량 암호화 프로세스라고 하자. i = 0 /* 데이터 블록의 수를 카운트 */ j = 0 /* 내부 키를 카운트 */ 모든 평문이 암호화 될 때까지 반복 {lnnerKey(j)<-j encrypted by Session Key using AES in Counter mode Repeat k times, /* k는 블록 크기 */ { C(i) <- P(i) encrypted by lnnerKey(j) using LWE i <- i + 1 } j ← j+1 } |
도 3은 본 발명의 일 실시예에 따라 암호화 시스템의 다이어그램이다. 도 3의 캐스케이드된 블록 암호에서, 카운터 값(304)은 세션 키(302)와 같은 공유 비밀 및 카운터 모드의 AES(306)와 같은 대칭 암호화 알고리즘을 이용하여 암호화되어 내부 키를 생성한다(308). 내부 키(308)는 경량 암호화(LWE) 유닛과 함께 사용되어 평문 블록(102)을 암호문(104)으로 암호화한다. 일 실시예에서, LWE 유닛은 공지의 라인달 알고리즘의 2 또는 3 라운드의 구현을 포함한다. 이와 달리, LWE 유닛은 공지의 서펜트 알고리즘의 3 또는 4 라운드를 구현할 수 있다. 내부 키(308)는, 카운터 값(304)을 수정하고 이 수정된 카운터 값 및 카운터 모드의 AES 알고리즘을 이용하여 새로운 내부 키를 발생시킴으로써 빈번히 변경될 수 있다. 일 실시예에서, 카운터 값은 매 선택된 k개의 평문 데이터 블록들마다 증가될 수 있다. 내부 키를 빈번히 변경함으로써, 암호문 결과의 보안은 개선될 수 있다.
도 4는 본 발명의 추가적인 실시예에 따라 암호화 유닛(100)에 의해 수행되는 암호화 프로세싱을 도시한 흐름도이다. 이 실시예에서, 카운터 모드의 AES와 같은 암호화 알고리즘은 외부 암호(outer cipher)로 사용되어 내부 키 및 공유 상태(shared state)를 제공할 수 있고, 약하고 빠른 암호화 알고리즘은 내부 암호(inner cipher)로 사용되어 암호화 마스크(encryption mask)를 발생시킬 수 있다. 암호화 마스크는 평문 데이터와 XOR 연산되어 암호문 데이터를 제작할 수 있다.
캐스케이드된 암호 구조는 외부 및 내부 암호를 포함한다. 외부 암호는 키 스트림 발생기(key stream generator)로 사용되어 내부 암호에 사용되는 키들을 제작한다. 외부 암호는 또한 암호화 마스크의 생성에 있어 내부 암호에 의해 사용되는 공유 비밀 상태를 위한 상태 발생기(state generator)로 사용될 수 있다. 내부 암호는 감소된 라운드 수로 암호의 속도를 높이고 많은 양의 데이터를 다루는데 필요한 프로세싱 전력량을 감소시키는데 사용될 수 있다. 내부 암호는 상태를 암호화하여 평문 데이터와 XOR 연산된 비트 스트림을 제작하는데 사용될 수 있다. 공유 비밀 상태 모두가 암호화된 후에, 업데이트 함수가 공유 비밀 상태를 수정하는데 가해질 수 있다. 그 후 새로운 고유 비밀 상태는 비트 스트림을 연장하도록 암호화될 수 있다. 이 프로세스는 반복될 수 있다. 내부 암호의 감소된 강도(strength) 때문에, 내부 암호가 사용되도록 허가되는 블록의 개수는 작게 유지된다. 블록 한계(block limit)에 달하는 경우, 외부 암호가 새로운 내부 암호 키 및 공유 비밀 상태를 제작하도록 다시 사용된다.
보호된 방법으로 데이터를 교환하려는 두 파티가 있다고 가정하자. 제1 파티 및 제2 파티는 단계(600)에서 공지의 키 교환 절차를 수행하여 공유 비밀(106)을 정의한다. 일 실시예에서, 공유 비밀은 세션 키를 포함하고, 이 세션 키는 공유 비밀의 일부가 된다. 세션 키는 대칭 암호작성 프로세스에 사용되는 암호작성 키가 될 수 있다. 다른 실시예에서, 공유 비밀은 임의 길이의 비트 스트링을 포함한다. 공유 비밀은 공유 비밀 상태 R(108)로 알려진 복수의 암호작성 파라미터들을 만드는데 사용될 수 있다. 단계(602)에서, 각 파티는 공유 비밀에 기초하여 공유 비밀 상태 R의 자신의 고유의 복사본(copy)을 만든다. 공유 비밀 상태 R의 암호작성 파라미터들을 만드는 한가지 방법은 공지의 암호작성 해시 함수(cryptographic hash function)를 적용하는 것이다. 각 다른 암호작성 파라미터에 대하여, 파라미터 이름 및 공유 비밀은 암호작성 파라미터를 형성하도록 해시 함수를 적용하여 함께 해싱될 수 있다. 공유 비밀 상태 R의 암호작성 파라미터들을 만드는 또 다른 방법은 (예컨대, AES와 같은) 공지의 암호화 함수(encryption function)를 적용하는 것이다. 각 다른 암호작성 파라미터에 대해, 파라미터 이름은 공유 비밀(106)과 암호화되어 암호작성 파라미터를 형성한다. 다른 실시예에서, 다른 방법이 사용될 수 있다. 따라서, 두 파티는 공유 비밀(106)을 가지기 때문에, 이들은 다른 공유 비밀(108)을 형성할 수 있다. 단계(603)에서, 내부 키 카운터 j가 초기화될 수 있다.
단계(604)에서, 평문 데이터를 암호화하려고 하는 파티는 j번째 내부 키를 발생시키고, 여기서 각 내부 키(j=0,..., 내부 키 수-1)는 공유 비밀을 키로 이용하는 카운터 j의 대칭 암호화와 동일하다. 일 실시예에서, 사용된 공유 비밀은 세션 키를 포함한다. 일 실시예에서, 대칭 암호화 동작은 내부 키 스트림을 발생시키기 위해 고급 암호 표준(Advanced Encryption Standard: AES) 카운터(CTR) 모드의 공지의 AES 알고리즘 애플리케이션(미국 국립 표준 기술 연구소(NIST) 특별 출판물 800-38A, 2001판에서 설명됨)을 포함한다. AES의 카운터 모드의 전형적인 사용에서, 키 j의 암호화가 평문 블록 P(i)를 암호문 블록 C(i)=P(i) XOR 키 AES(j)으로 암호화하는데 직접 사용되는데, 여기서 AES(j)는 세션 키를 AES 키로 사용하는 카운터 j의 AES 암호화를 나타낸다. 그러나, 본 발명의 실시예에서, 내부 키는 본 명세서에서 설명된 바와 다른 방식 및 새로운 방식으로 사용될 수 있다.
일 실시예에서, R0, R1,..., Rk -1이 공유 비밀 상태 R을 표시하고, 여기서 k는 단계(602)에서 만들어진 암호작성 파라미터의 개수라고 하자. 단계(606)에서, 암호화 파티(encrypting party)는 단계(604)에서 발생한 내부 키 및 공유 비밀 상태 R을 이용하여 평문 P(0), P(1),..., P(k-1)의 k개 블록을 암호화하여 암호문 블록 C(0), C(1), ... , C(k-1)을 형성시킨다.
일 실시예에서, 단계(606)의 암호화는 다음과 같이 수행된다.
i=0,..., k-1에 대하여, T(i)="경량" 암호화 알고리즘(LWE)을 이용하여 내부 키(j)에 의해 암호화된 R(i) 로 두고, 여기서 T가 암호화 유닛 내의 임시 저장소라고 하면, C(i)=P(i) XOR T(i)로 된다.
다음으로, 단계(608)에서, 공유 비밀 상태 R은 "경량" 방법으로 업데이트될 수 있다. 일 실시예에서, 경량 업데이트는 내부 암호로서 2 라운드 AES 암호에 의해 수행될 수 있다. 또 다른 실시예에서, 경량 업데이트는 내부 암호로서 3 라운드 서펜트 암호에 의해 수행될 수 있다. 이들은 키 팽창 함수를 닮고, R(i) 값들의 혼합(mixing), 비선형성(non-linearity)을 제공하며, LWE 알고리즘보다 더 나은 성능을 제공한다.
공유 비밀 상태의 경량 업데이트(lightweight updating: LWUD)를 위한 AES 실시예에서, LWUD 및 AES 키 스케줄 사이의 차이는 LWUD가 마지막 블록 값을 이용하여 R(i) 값들 사이의 혼합(mixing)을 제공하는 점에 있다. 내부 암호로서 AES와 함께 사용되는 LWUD 함수는 키 스케쥴 같은 프로세스를 이용한다. LWUD 함수는 상태 데이터 내의 단일 R(i) 값에 대해 동작한다. 각 R(i) 값은 FIPS 197에 설명된 바와 같이 다루어지고 계속적으로 업데이트되는 네 개의 32비트 값들로 다루어진다. 제1 32 비트 값, Ri , 0는, 이전 블록, Ri -1,3의 마지막 워드로부터의 입력을 포함하는 S-박스 룩업(S-box lookup)을 이용한다. 만약 인덱스 i가 제로이면, RRCOUNT -1,3 값(랩 어라운드(wrap around))이 사용될 수 있다. 동작의 다음 순서는 Ri ,0을 업데이트하는데 사용될 수 있다.
1. 만약 i가 제로이면 temp를 Ri -1,3으로 설정하고 아니면 temp를 RRCOUNT -1, 3 로 설정
2. temp에 표준 AES RotWord() 변환을 적용; 리틀-엔디안(little-endian) 프로세서에서, 이것은 32 값의 24 비트 왼쪽 회전(left rotation)과 동일
3. temp에 표준 AES SubBytes() 변환을 적용하여 temp의 각 바이트가 자신의 표준 AES S-박스 값으로 교체되도록 함
4. Ri ,0을 temp XOR Ri , 0로 설정
나머지 값들, Ri ,1에서 Ri ,3은 이들을 이들과 블록 내의 이전 워드와의 XOR 값으로 설정하여 업데이트될 수 있다. 예를 들어, Ri ,2는 Ri ,2 XOR Ri ,1로 설정된다. 일 실시예에서, 추가적인 열 시프트(row shift)가 이 포인트에 더해질 수 있고, 따라서 열 2는 왼쪽으로 1 바이트 순환 시프트되고(cyclically shifted), 열 3은 왼쪽으로 2 바이트 순환 시프트되며, 열 4는 왼쪽으로 3 바이트 순환 시프트된다. 또 다른 실시예에서, temp와 Ri ,0의 XOR 값은 단계 3 후가 아닌 단계 3 전에 발생할 수 있다.
Ri -1,3 에 대한 랩 어라운드 참조(wrap around reference)를 다루기 위한 최적화(optimization)는 아래와 같다. 새로운 상태 데이터가 발생된 후, temp를 RRCOUNT -1,3으로 설정한다. 이것은 제1 시간 상태 블록 R0가 업데이트되는 랩 어라운드 케이스를 다룬다. 추가적으로, 블록이 업데이트될 때마다, temp를 Ri ,3으로 설정한다. 이는 내부 키가 변경될 때까지 랩 어라운드 케이스를 포함하는, 모든 블록 업데이트에 대한 모든 케이스들을 자동으로 다룬다.
서펜트 실시예에서, 다른 LWUD 함수가 사용될 수 있다. 서펜트 암호와 함께 사용하기 위한 업데이트 함수는 각각 128 비트로 된 4개의 표준 서펜트 블록들의 시퀀스(sequence)에 대해 동작한다. 각 4 블록 집합은 32 비트 리틀 엔디안(little-endian) 워드의 4×4(four-by-four) 그리드로 다루어진다. 도 5는 각 16 워드 세트를 업데이트된 함수에 의해 사용되는 그리드 패턴으로 매핑하는 것을 도시한다. 워드들은 메모리 순서로 나타난다. 상기 추천된 파라미터들을 이용하여, 상태 데이터 내의 8개의 128 비트 서펜트 블록은 두 세트의 그리드 데이터로 조직된다.
도 6은 이 실시예에 대한 전반적인 상태 업데이트 함수 흐름을 도시한다. 프로세스는 업데이트 단계들 사이에서 데이터를 전달(propagate)하는데 사용되는 임시의 4×4 "업데이트 그리드(update grid)"(도시되지 않음)를 이용한다. 도면의 왼쪽에서 오른쪽에 걸쳐 추천된 파라미터로 상태 업데이트를 완성하도록 수행되는 동작들이 나타나 있다. 업데이트 함수는 다음의 단계들을 이용한다.
1. 상태 데이터 내의 마지막 그리드를 업데이트 그리드로 복사
2. 데이터 회전 프로세스를 업데이트 그리드에 적용
3. 상태 내의 각 그리드에 대해, 아래를 실시
4. S-박스 교체(S-box substitution)를 업데이트 그리드에 적용
5. 업데이트 그리드의 각 워드를 자신과 현재 상태 그리드 내의 대응 워드의 XOR 값으로 교체
6. 현재 상태 그리드의 내용을 업데이트 그리드의 내용으로 덮어씀
회전 스테이지(rotate stage)는 상태 업데이트 함수의 시작에서 한번만 수행된다(상기 단계 2). 이는 상태 데이터 내의 모든 비트들 사이에서 대량의 상호작용(heavy interaction)을 유발한다. 이것은 프로세싱의 부분이 다른 업데이트 동작들에 비해 "느리기" 때문에 상태 데이터 내의 각 그리드의 프로세싱에서 수행되지 않는다.
도 4로 돌아와서, 단계(610)에서, 블록들을 암호화하고 업데이트하는 것(606 및 608)은 현재 InnerKey(j)를 이용하여 선택된 시간 횟수(본 명세서에서 g로 표기)만큼 반복될 수 있다. 새로운 내부 키는 단계(612)에서 발생될 수 있고 단계(606, 608, 및 610)는 k*g개의 평문 데이터 P 블록만큼 반복될 수 있다. 단계(614)에서, 매 선택된 반복 횟수 f 마다 새로운 공유 비밀 상태 R이 생성될 수 있다. 일 실시예에서, 새로운 공유 비밀 상태의 생성은 AES 암호화 알고리즘의 애플리케이션을 포함하여, "강력 업데이트(strong update)" 방법으로 새로운 내부 키를 이용하여 공유 비밀 상태의 각 파라미터를 암호화한다. 또 다른 실시예에서, 새로운 공유 비밀 상태 R의 생성은 카운터 j를 증가시키고, R0, R1, ..., Rk -1 값들에 대한 카운터의 다음 k 값의 암호화를 이용하여 달성될 수 있다. 평문 데이터의 모든 블록이 암호문 데이터로 처리되었을 때, 프로세싱은 끝난다.
일 실시예에서, k, g 및 f 파라미터는 f*k*g가 256 이하가 되도록 선택될 수 있다. 일 실시예에서, 공유 비밀 상태 R의 구성요소들은 공유 비밀로서 128 비트 키들을 이용하여 암호화될 수 있다.
본 발명의 일 실시예는 아래의 의사 코드 표 2에서 보다 형식적으로 정의된다.
ⓒ 2004 Intel Corporation 파라미터 k, g, 및 f를 선택 LWE를 예컨대 2나 3 라운드 라인달 또는 3이나 4 라운드 서펜트와 같은 경량 암호화 프로세스라고 하자. LWUD(Lightweight Update)를, 공유 비밀 상태 및 내부 키(j)를 입력으로 하고 새로운 공유 비밀 상태를 출력하는 함수라고 하자. LWUD는 빨라야 하고 암호작성 스크램블링(cryptographic scrambling) 동작을 수반해야 한다. SUD(Strong Update)를, 공유 비밀 상태 및 내부 키(j)를 입력으로 하고 새로운 공유 비밀 상태를 출력하는 함수라고 하자. SUD는 암호적으로 매우 강해야 하고 AES 암호와의 시간과 유사한 시간내에 수행되어야 한다. SUD의 예 Shared Secret State = R(O), R(1), ... , R(k-1) For i = 0 .. k-1, R(i) <- R(i) encrypted by InnerKey(j) using AES. i = 0 /* i는 전체 데이터 블록을 카운트 */ j = 0 /* j는 내부 키를 카운트 */ R(O), R(1),..., R(k-1 )를 공유 비밀 상태라고 하자 모든 평문이 암호화될 때까지 반복: {Repeat f times: /* 매 f 마다 공유 비밀 상태를 변경 */ {lnnerKey(j) <- j encrypted by Session Key using AES in Counter mode Repeat g times: {For ik = O to k - 1, {T(ik) <- R(ik) encrypted by lnnerKey(j) using LWE C(i) <- P(i) XOR T(ik) i <- i + 1 } Shared Secret State <- LWUD (Shared Secret State) } j <- j + 1 } Shared Secret State <- SUD (Shared Secret State) } |
본 발명의 실시예의 효율성은 공지된 AES 알고리즘의 구현과 비교된다. 만약 LWE 알고리즘이 2 라운드의 공지된 라인달 알고리즘 또는 3 라운드의 공지된 서펜트 알고리즘이라면, LWE 프로세싱 시간은 AES 프로세싱 시간의 약 1/5이다. f*g*k 평문 블록을 암호화하는 AES 암호화 수를 세어보자. LWUD 및 SUD 방법이 예전에 주어진 예라고 가정하자. f 마스크를 계산하기 위한 f AES 암호화가 있다. mask(j)를 이용하는 LWE를 설정하기 위한 f 키 확장 동작이 또한 있다. 이것을 AES 암호화와 동일한 양의 시간으로 근사시키자. SUD를 계산하기 위한 k+1 AES 암호화가 있다. LWUD를 계산하기 위한 g*f LWE 암호화가 있고, T(ik)'s를 계산하기 위한 f*g*k LWE 암호화가 있다. 따라서 전체 프로세싱 시간은 대략 2f + k+1 + g*f/5 + f*g*k/5 AES 암호화이다. 만약 매 평문 블록당 상환된 계산량(amortized amount of computation)을 얻기 위해 이것을 f*g*k로 나누면, 2/(gk) + 1/(fg) + 1/(fgk) + 1/(5k) + 1/5를 얻는다. 만약 f=g=k=16으로 두면, 4 초과의 계획된 스피드 향상(projected speed improvement)에 대해, 이 합은 AES 암호화의 대략 23%이다. 일부 실시예에서, 3 라운드의 라인달 또는 4 라운드의 서펜트가 바람직할 수 있지만, 스피드 향상은 줄어들 것이다.
도 7은 본 발명의 추가적인 실시예에 따른 암호화 시스템의 다어어그램이다. 도 7의 캐스케이디드 블록 암호에서, 카운터 값(704)은 세션 키(702)와 같은 공유 비밀, 및 예컨대 카운터 모드의 AES(706)와 같은, 대칭 암호화 알고리즘을 이용하여 암호화되어 내부 키(708)를 제작한다. 일 실시예에서, AES는 공유 비밀 상태(712)를 발생시키는데 사용될 수 있다. 내부 키(708)는 경량 암호화(LWE) 유닛(710)과 함께 사용되어 암호화 마스크 T(711)를 발생시키고, 이 마스크는 XOR 함수(714)로의 입력이 되어 평문 블록(102)을 암호문(104)으로 암호화한다. 경량 업데이트 유닛(713)은 공유 비밀 상태(712)를 업데이트하는데 사용될 수 있다. 일 실시예에서, LWE 유닛은 공지된 라인달 알고리즘의 2 라운드 구현을 포함한다. 이와 달리, LWE 유닛은 3 라운드의 공지된 서펜트 알고리즘을 구현할 수 있다. 이와 달리, 3 라운드의 라인달 또는 4 라운드의 서펜트가 사용될 수 있다. 내부 키(708)는 카운터 값(704)을 수정하고 이 수정된 카운터 값 및 카운터 모드의 AES 알고리즘을 이용하여 새로운 내부 키를 발생시킴으로써 자주 변경될 수 있다. 일 실시예에서, 카운터 값은 매 선택된 k 블록의 평문 데이터에 대해 증가될 수 있다. 내부 키를 자주 변경함으로써, 만들어진 암호문의 보안이 향상될 수 있다. 주기적으로, 공유 비밀 상태(712)는 강력 업데이트 유닛(716)에 의해 다시 발생될 수 있다.
암호화 프로세싱이 본 명세서에서 다양한 실시예로 상세히 설명되어 있지만, 암호 해독 프로세싱의 수행은 본 발명에 기초하여 평문 데이터를 얻기 위해 암호문에 적절한 역 동작을 취하면 된다는 것을 당업자라면 알 수 있다.
본 명세서에 개시된 동작들은 일련의 프로세스로 설명되어 있지만, 일부 동작들은 사실 병렬로 또는 동시에 수행될 수 있다. 또한, 일부 실시예에서 동작들의 순서는 본 발명의 범위를 넘지 않는 한도 내에서 재조정될 수 있다.
본 명세서에 설명된 기술들은 임의의 특정 하드웨어 또는 소프트웨어 구성에 한정되지 않는다. 이 기술들은 임의의 연산 또는 프로세싱 환경에 적용될 수 있다. 기술들은 하드웨어, 소프트웨어, 또는 이들의 조합에서 구현될 수 있다. 기술들은, 프로세서, 프로세서에 의해 판독가능한 저장 매체(휘발성 및 비휘발성 메모리 및/또는 저장 요소를 포함), 적어도 하나의 입력 장치, 및 하나 이상의 출력 장치를 각각 포함하는, 모바일 또는 정지 컴퓨터(stationary computer), 개인용 디지털 보조기, 셋톱 박스, 셀룰라 텔레폰 및 페이저(pagers), 및 다른 전자 장치들과 같은 프로그램가능 기계(programmable machine) 상에서 실행되는 프로그램에서 구현될 수 있다. 입력 장치를 이용하여 입력된 데이터에 프로그램 코드가 적용되어 설명된 기능들을 수행하고 출력 정보를 발생시킨다. 출력 정보는 하나 이상의 출력 장치에 가해질 수 있다. 당업자라면 본 발명이 멀티프로세서 시스템, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다양한 컴퓨터 시스템 구성들에 적용될 수 있다는 것을 알 수 있다. 본 발명은 또한 통신 네트워크를 통해 링크된 원격 프로세싱 장치들에 의해 작업이 수행될 수 있는 분산 연산 환경(distributed computing environments)에 또한 적용될 수 있다.
각 프로그램은 프로세싱 시스템과 통신하도록 하이 레벨 절차형 또는 객체 지향 프로그래밍 언어로 구현될 수 있다. 그러나, 원하는 경우 프로그램은 어셈블리어나 기계어로 구현될 수 있다. 어떤 경우에서도, 언어는 컴파일되거나 해석될 수 있다.
프로그램 인스트럭션(program instructions)은 이 인스트럭션으로 프로그램된 범용 또는 전용 프로세싱 시스템으로 하여금 본 명세서에 설명된 동작들을 수행하도록 하는데 사용될 수 있다. 이와 달리, 동작들은 이 동작들을 수행하기 위한 배선에 의해 접속된 로직(hardwired logic)을 포함하는 특정 하드웨어 구성요소들에 의해 또는 프로그램된 컴퓨터 구성요소들 및 커스텀 하드웨어 구성요소들에 의해 수행될 수 있다. 본 명세서에 설명된 방법들은 컴퓨터 프로그램 제품으로 제공될 수 있는데, 이 제품은 이 방법들을 수행하기 위해 프로세싱 시스템 또는 다른 전자 장치를 프로그램하는데 사용될 수 있는 인스트럭션을 저장한 기계 판독가능 매체를 포함할 수 있다. 본 명세서에서 사용된 "기계 판독가능 매체(machine readable medium)" 용어는 기계(machine)에 의해 수행되는 일련의 인스트럭션을 저장하거나 인코딩할 수 있고 기계로 하여금 본 명세서에 설명된 임의의 한 방법을 수행하도록 하는 임의의 매체를 포함한다. "기계 판독가능 매체(machine readable medium)" 용어는 따라서 반도체 메모리(solid-state memories), 광학 및 마그네틱 디스크, 및 데이터 신호를 인코딩하는 캐리어 웨이브(carrier wave) 등을 포함할 수 있다. 또한, 어떠한 조치를 취하거나 결과를 가져오는 점에서 소프트웨어를 여러가지 형태로(예컨대, 프로그램, 절차, 프로세스, 애플리케이션, 모듈, 장치, 로직 등) 말하는 것이 일반적이다. 이러한 표현들은 단지 프로세싱 시스템에 의한 소프트웨어의 실행이 프로세서로 하여금 결과를 가져오기 위한 액션을 수행하도록 하는 것을 속기 방식으로 기술한 것에 불과한다.
본 발명이 예시적인 실시예에 관하여 설명되어 있지만, 본 명세서는 제한적인 의미로 해석되어서는 안 된다. 본 발명에 관한 당업자에게 자명한 본 발명의 예시적인 실시예 및 다른 실시예들의 수정은 본 발명의 범위 및 사상 내에 있는 것으로 간주된다.
Claims (42)
- 데이터를 암호화하는 방법으로서,제1 및 제2 파티들 사이에 공유된 비밀(secret)을 키(key)로 이용하여 비밀 내부 키(secret inner key)를 발생시키도록 제1 암호화 알고리즘(encryption algorithm)을 적용하는 단계;상기 비밀 내부 키를 이용하여 복수의 평문 데이터(plaintext data) 블록으로부터 복수의 암호문 데이터(ciphertext data) 블록을 발생시키도록 사전결정된 라운드 수(predetermined number of rounds)만큼 제2 암호화 알고리즘을 적용하는 단계; 및상기 제1 암호화 알고리즘을 적용하는 단계 및 상기 제2 암호화 알고리즘을 적용하는 단계를 반복하는 단계를 포함하는 데이터 암호화 방법.
- 제1항에 있어서,상기 제2 암호화 알고리즘의 계산(computation)은 상기 제1 암호화 알고리즘의 계산보다 적고(less), 상기 제2 암호화 알고리즘은 상기 제1 암호화 알고리즘보다 약한(weaker) 데이터 암호화 방법.
- 제1항에 있어서,상기 제1 암호화 알고리즘은 카운터 모드(counter mode: CTR)로 동작하는 고급 암호화 표준(Advanced Encryption Standard: AES) 암호화 알고리즘을 포함하는 데이터 암호화 방법.
- 제1항에 있어서,상기 제2 암호화 알고리즘은 라인달 알고리즘(Rijndael algorithm)을 포함하는 데이터 암호화 방법.
- 제4항에 있어서,상기 사전결정된 라운드 수는 2 또는 3인 데이터 암호화 방법.
- 제1항에 있어서,상기 제2 암호화 알고리즘은 서펜트 알고리즘(Serpent algorithm)을 포함하는 데이터 암호화 방법.
- 제6항에 있어서,상기 사전결정된 라운드 수는 3 또는 4인 데이터 암호화 방법.
- 제1항에 있어서,상기 공유 비밀(shared secret)은 세션 키(session key)를 포함하는 데이터 암호화 방법.
- 제1항에 있어서,상기 제1 및 제2 파티들은 이 파티들 사이의 상기 공유 비밀을 교환하도록 키 교환 절차를 수행하는 데이터 암호화 방법.
- 제1항에 있어서,모든 평문 데이터 블록이 암호문 데이터로 암호화될 때까지 상기 제1 암호화 알고리즘을 적용하는 단계, 상기 제2 암호화 알고리즘을 적용하는 단계, 및 반복하는 단계를 반복하는 단계를 더 포함하는 데이터 암호화 방법.
- 복수의 기계 판독가능 인스트럭션들(machine readable instructions)을 갖는 저장 매체(storage medium)를 포함하는 물품으로서,상기 인스트럭션이 프로세서에 의해 실행되는 경우, 상기 인스트럭션은 평문 데이터에서 암호문 데이터로의 암호화를 제공하고, 상기 인스트럭션들은제1 및 제2 파티들 사이에 공유된 비밀을 키(key)로 이용하여 비밀 내부 키(secret inner key)를 발생시키도록 제1 암호화 알고리즘(encryption algorithm)을 적용하는 단계;상기 비밀 내부 키를 이용하여 복수의 평문 데이터(plaintext data) 블록으 로부터 복수의 암호문 데이터(ciphertext data) 블록을 발생시키도록 사전결정된 라운드 수만큼 제2 암호화 알고리즘을 적용하는 단계; 및상기 제1 암호화 알고리즘을 적용하는 단계 및 상기 제2 암호화 알고리즘을 적용하는 단계를 반복하는 단계를 포함하는 물품.
- 제11항에 있어서,상기 제1 암호화 알고리즘은 카운터 모드(CTR)로 동작하는 고급 암호화 표준(AES) 암호화 알고리즘을 포함하는 물품.
- 제11항에 있어서,상기 제2 암호화 알고리즘은 라인달 알고리즘 및 서펜트 알고리즘 중 적어도 하나를 포함하고, 상기 사전결정된 라운드 수는 2, 3 및 4 중 적어도 하나를 포함하는 물품.
- 제1 및 제2 파티들 사이의 공유된 비밀을 이용하여 비밀 내부 키를 발생시키는 제1 암호화 유닛(encryption unit); 및상기 비밀 내부 키를 이용하여 복수의 평문 데이터 블록으로부터 복수의 암호문 데이터 블록을 발생시키도록 사전결정된 라운드 수만큼 동작하는 제2 암호화 유닛을 포함하는 캐스케이딩 블록 암호 시스템(cascading block cipher system).
- 제14항에 있어서,상기 공유 비밀은 세션 키를 포함하는 캐스케이딩 블록 암호 시스템.
- 제14항에 있어서,상기 제1 암호화 유닛은 카운터 모드(CTR)로 동작하는 고급 암호화 표준(AES) 암호화 알고리즘을 구현하는 캐스케이딩 블록 암호 시스템.
- 제14항에 있어서,상기 제2 암호화 유닛은 라인달 알고리즘 및 서펜트 알고리즘 중 적어도 하나를 포함하고, 상기 사전결정된 라운드 수는 2, 3 및 4 중 적어도 하나를 포함하는 캐스케이딩 블록 암호 시스템.
- 데이터를 암호 해독하는 방법으로서,제1 및 제2 파티들 사이에 공유된 비밀을 키로 이용하여 비밀 내부 키를 발생시키도록 제1 암호화 알고리즘을 적용하는 단계;상기 비밀 내부 키를 이용하여 복수의 암호문 데이터 블록으로부터 복수의 평문 데이터 블록을 발생시키도록 사전결정된 라운드 수만큼 암호 해독 알고리즘(decryption algorithm)을 적용하는 단계; 및상기 제1 암호화 알고리즘을 적용하는 단계 및 상기 암호 해독 알고리즘을 적용하는 단계를 반복하는 단계를 포함하는 암호 해독 방법.
- 제18항에 있어서,상기 제1 암호화 알고리즘은 카운터 모드(CTR)로 동작하는 고급 암호화 표준(AES) 암호화 알고리즘을 포함하는 암호 해독 방법.
- 제18항에 있어서,상기 암호 해독 알고리즘은 라인달 알고리즘 및 서펜트 알고리즘 중 적어도 하나를 포함하고, 상기 사전결정된 라운드 수는 2, 3 및 4 라운드 중 적어도 하나를 포함하는 암호 해독 방법.
- 데이터를 암호화하는 방법으로서,제1 파티 및 제2 파티 사이에 공유된 비밀을 이용하여 공유 비밀 상태(shared secret state)를 만드는 단계;제1 및 제2 파티들 사이의 상기 공유된 비밀을 이용하여 카운터를 암호화하여 비밀 내부 키를 발생시키도록 카운터 모드의 제1 암호화 알고리즘을 적용하는 단계;상기 비밀 내부 키 및 상기 공유 비밀 상태를 이용하여 복수의 평문 데이터 블록으로부터 복수의 암호문 데이터 블록을 발생시키도록 사전결정된 라운드 수만큼 제2 암호화 알고리즘을 적용하는 단계;각 라운드 사이에 상기 공유 비밀 상태를 업데이트하는 단계; 및상기 카운터를 수정하고 상기 제1 암호화 알고리즘을 적용하는 단계, 상기 제2 암호화 알고리즘을 적용하는 단계, 및 상기 업데이트 하는 단계를 반복하는 단계를 포함하는 데이터 암호화 방법.
- 제21항에 있어서,제2 사전결정된 라운드 수 후에 새로운 공유 비밀 상태를 만드는 단계를 더 포함하는 데이터 암호화 방법.
- 제21항에 있어서,상기 제1 암호화 알고리즘은 카운터 모드(CTR)로 동작하는 고급 암호화 표준(AES) 암호화 알고리즘을 포함하는 데이터 암호화 방법.
- 제21항에 있어서,상기 제2 암호화 알고리즘은 라인달 알고리즘을 포함하는 데이터 암호화 방법.
- 제24항에 있어서,상기 사전결정된 라운드 수는 2 또는 3인 데이터 암호화 방법.
- 제21항에 있어서,상기 제2 암호화 알고리즘은 서펜트 알고리즘을 포함하는 데이터 암호화 방법.
- 제26항에 있어서,상기 사전결정된 라운드 수는 3 또는 4인 데이터 암호화 방법.
- 제21항에 있어서,상기 공유 비밀은 세션 키를 포함하는 데이터 암호화 방법.
- 제21항에 있어서,상기 제1 및 제2 파티들은 이 파티들 사이의 상기 공유 비밀을 교환하도록 키 교환 절차를 수행하는 데이터 암호화 방법.
- 제21항에 있어서,모든 평문 데이터 블록이 암호문 데이터로 암호화될 때까지 상기 제1 암호화 알고리즘을 적용하는 단계, 상기 제2 암호화 알고리즘을 적용하는 단계, 및 반복하 는 단계를 반복하는 단계를 더 포함하는 데이터 암호화 방법.
- 복수의 기계 판독가능 인스트럭션들을 갖는 저장 매체를 포함하는 물품으로서,상기 인스트럭션이 프로세서에 의해 실행되는 경우, 상기 인스트럭션은 평문 데이터를 암호문 데이터로 암호화하는 것을 제공하고, 상기 인스트럭션들은제1 파티 및 제2 파티 사이의 공유된 비밀을 이용하여 공유 비밀 상태(shared secret state)를 만드는 단계;제1 및 제2 파티들 사이의 상기 공유된 비밀을 이용하여 카운터를 암호화하여 비밀 내부 키를 발생시키도록 카운터 모드의 제1 암호화 알고리즘을 적용하는 단계;상기 비밀 내부 키 및 상기 공유 비밀 상태를 이용하여 복수의 평문 데이터 블록으로부터 복수의 암호문 데이터 블록을 발생시키도록 사전결정된 라운드 수만큼 제2 암호화 알고리즘을 적용하는 단계;각 라운드 사이에 상기 공유 비밀 상태를 업데이트하는 단계; 및상기 카운터를 수정하고 상기 제1 암호화 알고리즘을 적용하는 단계, 상기 제2 암호화 알고리즘을 적용하는 단계, 및 상기 업데이트 하는 단계를 반복하는 단계를 포함하는 물품.
- 제31항에 있어서,제2 사전결정된 라운드 수 후에 새로운 공유 비밀 상태를 만들기 위한 인스트럭션들을 더 포함하는 물품.
- 제31항에 있어서,상기 제1 암호화 알고리즘은 카운터 모드(CTR)로 동작하는 고급 암호화 표준(AES) 암호화 알고리즘을 포함하는 물품.
- 제31항에 있어서,상기 제2 암호화 알고리즘은 라인달 알고리즘 및 서펜트 알고리즘 중 적어도 하나를 포함하고, 상기 사전결정된 라운드 수는 2, 3 및 4 중 적어도 하나를 포함하는 물품.
- 캐스케이딩 블록 암호 시스템(cascading block cipher system)으로서,제1 파티 및 제2 파티에 알려진 공유 비밀 상태;상기 제1 및 제2 파티들 사이의 공유 비밀을 키로 사용하여 카운터를 암호화하여 비밀 내부 키를 발생시키도록 카운터 모드로 동작하는 제1 암호화 유닛;상기 비밀 내부 키 및 상기 공유 비밀 상태를 이용하여 암호화 마스크(encryption mask)를 발생시키도록 사전결정된 라운드 수만큼 동작하는 제2 암호 화 유닛;복수의 평문 데이터 블록 및 상기 암호화 마스크로부터 복수의 암호문 데이터 블록을 발생시키는 배타적 논리합(XOR) 로직; 및라운드 사이에 상기 공유 비밀 상태를 수정하는 제1 업데이트 유닛을 포함하는 캐스케이딩 블록 암호 시스템.
- 제35항에 있어서,제2 사전결정된 라운드 수 후에 새로운 공유 비밀 상태를 만드는 제2 업데이트 유닛을 더 포함하는 캐스케이딩 블록 암호 시스템.
- 제35항에 있어서,상기 공유 비밀은 세션 키를 포함하는 캐스케이딩 블록 암호 시스템.
- 제35항에 있어서,상기 제1 암호화 유닛은 카운터 모드(CTR)로 동작하는 고급 암호화 표준(AES) 암호화 알고리즘을 구현하는 캐스케이딩 블록 암호 시스템.
- 제35항에 있어서,상기 제2 암호화 유닛은 라인달 알고리즘 및 서펜트 알고리즘 중 적어도 하나를 구현하고, 상기 사전결정된 라운드 수는 2, 3 및 4 중 적어도 하나를 포함하 는 캐스케이딩 블록 암호 시스템.
- 제1 파티 및 제2 파티 사이의 공유된 비밀을 이용하여 공유 비밀 상태를 만드는 단계;제1 및 제2 파티들 사이의 상기 공유된 비밀을 이용하여 카운터를 암호화해서 비밀 내부 키를 발생시키도록 제1 암호화 알고리즘을 적용하는 단계;상기 비밀 내부 키 및 상기 공유 비밀 상태를 이용하여 복수의 암호문 데이터 블록으로부터 복수의 평문 데이터 블록을 발생시키도록 사전결정된 라운드 수만큼 암호 해독 알고리즘을 적용하는 단계;각 라운드 사이에 상기 공유 비밀 상태를 업데이트하는 단계; 및상기 카운터를 수정하고 상기 제1 암호화 알고리즘을 적용하는 단계, 상기 암호 해독 알고리즘을 적용하는 단계, 및 상기 업데이트 하는 단계를 반복하는 단계를 포함하는 데이터 암호 해독 방법.
- 제40항에 있어서,상기 제1 암호화 알고리즘은 카운터 모드(CTR)로 동작하는 고급 암호화 표준(AES) 암호화 알고리즘을 포함하는 데이터 암호 해독 방법.
- 제40항에 있어서,상기 암호 해독 알고리즘은 라인달 알고리즘 및 서펜트 알고리즘 중 적어도 하나를 구현하고, 상기 사전결정된 라운드 수는 2, 3 및 4 라운드 중 적어도 하나를 포함하는 암호 해독 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/008,904 | 2004-12-09 | ||
US11/008,904 US8155306B2 (en) | 2004-12-09 | 2004-12-09 | Method and apparatus for increasing the speed of cryptographic processing |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070086509A true KR20070086509A (ko) | 2007-08-27 |
KR100917073B1 KR100917073B1 (ko) | 2009-09-15 |
Family
ID=35898866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020077014110A KR100917073B1 (ko) | 2004-12-09 | 2005-12-09 | 암호 작성 프로세싱의 스피드를 증가시키는 방법 및 장치 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8155306B2 (ko) |
EP (1) | EP1829276B1 (ko) |
JP (1) | JP2008523728A (ko) |
KR (1) | KR100917073B1 (ko) |
CN (1) | CN101073220B (ko) |
WO (1) | WO2006063275A1 (ko) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100864092B1 (ko) * | 2006-11-23 | 2008-10-16 | 한국전자통신연구원 | 블록암호의 블록 체이닝 모드를 사용한 패킷 암호화 방법,이를 이용한 패킷 암/복호화 서비스 제공 방법 |
KR101005276B1 (ko) * | 2008-01-07 | 2011-01-04 | 고려대학교 산학협력단 | 데이터 의존 연산을 사용하는 암호화 방법 |
KR101150289B1 (ko) * | 2010-06-24 | 2012-05-24 | 충북대학교 산학협력단 | 복합 암호 시스템과 이를 이용한 복합 암호 알고리즘 구성 방법 |
KR20190060179A (ko) * | 2017-11-24 | 2019-06-03 | (주)잉카엔트웍스 | 공통 중간 언어를 위한 보안 제공 장치와 방법, 및 보안 실행 장치와 방법 |
US10411880B2 (en) | 2015-10-29 | 2019-09-10 | Samsung Sds Co., Ltd. | Apparatus and method for encryption |
CN112242970A (zh) * | 2019-07-16 | 2021-01-19 | 丁爱民 | 一种数据分割加密安全加固方法及装置 |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2594385C (en) * | 2005-01-11 | 2012-11-27 | Samsung Electronics Co., Ltd. | Apparatus and method for ciphering/deciphering a signal in a communication system |
JP4596256B2 (ja) * | 2005-08-02 | 2010-12-08 | ソニー株式会社 | 送受信システムおよび方法、送信装置および方法、受信装置および方法、並びにプログラム |
EP1793606A1 (en) * | 2005-12-05 | 2007-06-06 | Microsoft Corporation | Distribution of keys for encryption/decryption |
US8139768B2 (en) * | 2006-01-19 | 2012-03-20 | Microsoft Corporation | Encrypting content in a tuner device and analyzing content protection policy |
US8209548B2 (en) * | 2006-02-06 | 2012-06-26 | International Business Machines Corporation | Secure caching technique for shared distributed caches |
DE102006027639B4 (de) * | 2006-06-13 | 2008-06-19 | Nec Europe Ltd. | Verfahren zur Etablierung eines geheimen Schlüssels |
WO2008061395A1 (fr) * | 2006-11-23 | 2008-05-29 | Tsinghua University | Circuit de cryptage aes d'un flot de données exécuté lors d'un déséquencement |
US8036377B1 (en) * | 2006-12-12 | 2011-10-11 | Marvell International Ltd. | Method and apparatus of high speed encryption and decryption |
US8000467B2 (en) * | 2007-03-19 | 2011-08-16 | Stmicroelectronics Sa | Data parallelized encryption and integrity checking method and device |
US7925009B2 (en) * | 2007-05-25 | 2011-04-12 | Red Hat, Inc. | Hybrid data encryption |
US8265272B2 (en) * | 2007-08-29 | 2012-09-11 | Red Hat, Inc. | Method and an apparatus to generate pseudo random bits for a cryptographic key |
US8781117B2 (en) * | 2007-08-29 | 2014-07-15 | Red Hat, Inc. | Generating pseudo random bits from polynomials |
US8416947B2 (en) * | 2008-02-21 | 2013-04-09 | Red Hat, Inc. | Block cipher using multiplication over a finite field of even characteristic |
US7945049B2 (en) * | 2008-02-28 | 2011-05-17 | Red Hat, Inc. | Stream cipher using multiplication over a finite field of even characteristic |
US8560587B2 (en) * | 2008-05-22 | 2013-10-15 | Red Hat, Inc. | Non-linear mixing of pseudo-random number generator output |
US8588412B2 (en) | 2008-05-23 | 2013-11-19 | Red Hat, Inc. | Mechanism for generating pseudorandom number sequences |
US8358781B2 (en) * | 2008-11-30 | 2013-01-22 | Red Hat, Inc. | Nonlinear feedback mode for block ciphers |
US9240927B2 (en) | 2009-02-26 | 2016-01-19 | Qualcomm Incorporated | Methods and apparatus for enhanced overlay state maintenance |
US8971530B2 (en) * | 2009-06-24 | 2015-03-03 | Intel Corporation | Cryptographic key generation using a stored input value and a stored count value |
US9026803B2 (en) * | 2009-11-30 | 2015-05-05 | Hewlett-Packard Development Company, L.P. | Computing entities, platforms and methods operable to perform operations selectively using different cryptographic algorithms |
US8515059B2 (en) * | 2010-03-30 | 2013-08-20 | Daniel W. Engels | Cryptographic processor with dynamic update of encryption state |
JP5167374B2 (ja) * | 2011-01-21 | 2013-03-21 | シャープ株式会社 | データ暗号化装置、及び、メモリカード |
US8498410B2 (en) * | 2011-03-14 | 2013-07-30 | Motorola Solutions, Inc. | Methods for customizing a Rijndael block cipher |
US9369274B2 (en) * | 2012-07-06 | 2016-06-14 | International Business Machines Corporation | Cipher text translation |
US8983069B2 (en) * | 2013-03-14 | 2015-03-17 | Robert Bosch Gmbh | System and method for counter mode encrypted communication with reduced bandwidth |
JP6178142B2 (ja) * | 2013-07-12 | 2017-08-09 | 株式会社東芝 | 生成装置、方法およびプログラム |
US20150033016A1 (en) * | 2013-07-23 | 2015-01-29 | Battelle Memorial Institute | Systems and methods for securing real-time messages |
US9800517B1 (en) * | 2013-10-31 | 2017-10-24 | Neil Anderson | Secure distributed computing using containers |
US9405919B2 (en) * | 2014-03-11 | 2016-08-02 | Qualcomm Incorporated | Dynamic encryption keys for use with XTS encryption systems employing reduced-round ciphers |
US10873454B2 (en) | 2014-04-04 | 2020-12-22 | Zettaset, Inc. | Cloud storage encryption with variable block sizes |
US10298555B2 (en) | 2014-04-04 | 2019-05-21 | Zettaset, Inc. | Securing files under the semi-trusted user threat model using per-file key encryption |
US9363247B2 (en) * | 2014-04-04 | 2016-06-07 | Zettaset, Inc. | Method of securing files under the semi-trusted user threat model using symmetric keys and per-block key encryption |
US10043029B2 (en) | 2014-04-04 | 2018-08-07 | Zettaset, Inc. | Cloud storage encryption |
CN104253684B (zh) * | 2014-09-23 | 2018-02-02 | 深圳市汇顶科技股份有限公司 | 加密方法和加密装置 |
US9436847B2 (en) * | 2014-09-26 | 2016-09-06 | Intel Corporation | Cryptographic pointer address encoding |
KR102376506B1 (ko) | 2014-10-20 | 2022-03-18 | 삼성전자주식회사 | 암복호화기, 암복호화기를 포함하는 전자 장치 및 암복호화기의 동작 방법 |
CN104333446B (zh) * | 2014-11-10 | 2016-01-13 | 衡阳师范学院 | 一种新型超轻量级qtl分组密码实现方法 |
US10108820B2 (en) * | 2015-01-20 | 2018-10-23 | Mediatek Inc. | Snapshot data and hibernation data processing methods and devices |
US9773432B2 (en) * | 2015-06-27 | 2017-09-26 | Intel Corporation | Lightweight cryptographic engine |
CN108141353B (zh) * | 2015-07-09 | 2020-06-26 | 华为技术有限公司 | 密码算法升级的方法及设备 |
CN105049204A (zh) * | 2015-07-30 | 2015-11-11 | 苏州中科启慧软件技术有限公司 | 基于ctr模式和分组密码vh的轻量级流密码技术vhc |
US9729310B2 (en) * | 2015-10-08 | 2017-08-08 | The Boeing Company | Scrambled counter mode for differential power analysis resistant encryption |
US10360820B2 (en) | 2016-09-04 | 2019-07-23 | Shahriar Pourazin | Instrumentation privacy apparatus and method |
KR101924067B1 (ko) | 2016-10-28 | 2019-02-22 | 삼성에스디에스 주식회사 | 암호화 장치 및 방법 |
US11463236B2 (en) * | 2016-12-09 | 2022-10-04 | Cryptography Research, Inc. | Programmable block cipher with masked inputs |
RU173234U1 (ru) * | 2017-03-06 | 2017-08-17 | Общество с ограниченной ответственностью "КАСКАД" | Устройство раунда шифрования данных по алгоритму "магма" и стандарту гост р 34.12-2015 |
RU2654078C1 (ru) * | 2017-03-06 | 2018-05-16 | Общество с ограниченной ответственностью "КАСКАД" | Устройство раунда шифрования данных по алгоритму "магма" и стандарту гост р 34.12-2015 |
CN106911711A (zh) * | 2017-03-30 | 2017-06-30 | 林星森 | 一种武器瞄准系统的安全加密方法 |
US10733318B2 (en) | 2017-11-21 | 2020-08-04 | International Business Machines Corporation | Processing analytical queries over encrypted data using dynamical decryption |
CN109379180B (zh) * | 2018-12-20 | 2022-04-19 | 湖南国科微电子股份有限公司 | Aes算法实现方法、装置及固态硬盘 |
JP7383985B2 (ja) * | 2019-10-30 | 2023-11-21 | 富士電機株式会社 | 情報処理装置、情報処理方法及びプログラム |
US11102005B2 (en) * | 2020-01-23 | 2021-08-24 | Bank Of America Corporation | Intelligent decryption based on user and data profiling |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3591857B2 (ja) * | 1993-12-27 | 2004-11-24 | キヤノン株式会社 | 擬似乱数生成方法及び装置、通信方法及び装置 |
US5454039A (en) * | 1993-12-06 | 1995-09-26 | International Business Machines Corporation | Software-efficient pseudorandom function and the use thereof for encryption |
AU728942B2 (en) * | 1995-06-30 | 2001-01-18 | Canon Kabushiki Kaisha | A communication apparatus and a communication system |
JPH09233066A (ja) * | 1996-02-23 | 1997-09-05 | Sony Corp | 暗号化/解読化方法および装置 |
AUPO799197A0 (en) * | 1997-07-15 | 1997-08-07 | Silverbrook Research Pty Ltd | Image processing method and apparatus (ART01) |
EP1161811B1 (en) * | 1999-03-22 | 2007-08-29 | Agency for Science, Technology and Research | Method and apparatus for encrypting and decrypting data |
WO2001058079A2 (de) | 2000-02-04 | 2001-08-09 | Christian Kossak | Chiffriermethode |
AU2001249511A1 (en) * | 2000-03-31 | 2001-10-15 | Vdg Inc. | Authentication method and schemes for data integrity protection |
US20020178360A1 (en) * | 2001-02-25 | 2002-11-28 | Storymail, Inc. | System and method for communicating a secure unidirectional response message |
US20020199001A1 (en) * | 2001-02-25 | 2002-12-26 | Storymail, Inc. | System and method for conducting a secure response communication session |
US6862354B1 (en) * | 2000-09-29 | 2005-03-01 | Cisco Technology, Inc. | Stream cipher encryption method and apparatus that can efficiently seek to arbitrary locations in a key stream |
CA2327911A1 (en) * | 2000-12-08 | 2002-06-08 | Cloakware Corporation | Obscuring functions in computer software |
US7987510B2 (en) * | 2001-03-28 | 2011-07-26 | Rovi Solutions Corporation | Self-protecting digital content |
GB2374260B (en) * | 2001-10-12 | 2003-08-13 | F Secure Oyj | Data encryption |
US20030165242A1 (en) * | 2001-11-19 | 2003-09-04 | Adrian Walker | Confusion encryption |
US7242766B1 (en) * | 2001-11-21 | 2007-07-10 | Silicon Image, Inc. | Method and system for encrypting and decrypting data using an external agent |
US7580972B2 (en) * | 2001-12-12 | 2009-08-25 | Valve Corporation | Method and system for controlling bandwidth on client and server |
US7236592B2 (en) * | 2002-02-01 | 2007-06-26 | International Business Machines Corporation | Efficient stream cipher system and method |
JP4491706B2 (ja) * | 2002-04-19 | 2010-06-30 | ソニー株式会社 | 暗号化復号化装置およびデータ受信装置 |
US7392384B2 (en) * | 2002-06-28 | 2008-06-24 | Hewlett-Packard Development Company, L.P. | Method and system for secure storage, transmission and control of cryptographic keys |
US7336783B2 (en) * | 2003-01-24 | 2008-02-26 | Samsung Electronics, C., Ltd. | Cryptographic systems and methods supporting multiple modes |
US7406176B2 (en) * | 2003-04-01 | 2008-07-29 | Microsoft Corporation | Fully scalable encryption for scalable multimedia |
US7472285B2 (en) * | 2003-06-25 | 2008-12-30 | Intel Corporation | Apparatus and method for memory encryption with reduced decryption latency |
KR101081729B1 (ko) * | 2003-07-07 | 2011-11-08 | 로비 솔루션스 코포레이션 | 저작권 침해를 제어하고 쌍방향 컨텐츠를 인에이블시키기 위한 재프로그램가능한 보안 |
-
2004
- 2004-12-09 US US11/008,904 patent/US8155306B2/en not_active Expired - Fee Related
-
2005
- 2005-12-09 JP JP2007545683A patent/JP2008523728A/ja active Pending
- 2005-12-09 WO PCT/US2005/044702 patent/WO2006063275A1/en active Application Filing
- 2005-12-09 KR KR1020077014110A patent/KR100917073B1/ko not_active IP Right Cessation
- 2005-12-09 EP EP05853584A patent/EP1829276B1/en not_active Not-in-force
- 2005-12-09 CN CN2005800421423A patent/CN101073220B/zh not_active Expired - Fee Related
-
2012
- 2012-04-05 US US13/440,624 patent/US20120189119A1/en not_active Abandoned
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100864092B1 (ko) * | 2006-11-23 | 2008-10-16 | 한국전자통신연구원 | 블록암호의 블록 체이닝 모드를 사용한 패킷 암호화 방법,이를 이용한 패킷 암/복호화 서비스 제공 방법 |
KR101005276B1 (ko) * | 2008-01-07 | 2011-01-04 | 고려대학교 산학협력단 | 데이터 의존 연산을 사용하는 암호화 방법 |
KR101150289B1 (ko) * | 2010-06-24 | 2012-05-24 | 충북대학교 산학협력단 | 복합 암호 시스템과 이를 이용한 복합 암호 알고리즘 구성 방법 |
US10411880B2 (en) | 2015-10-29 | 2019-09-10 | Samsung Sds Co., Ltd. | Apparatus and method for encryption |
KR20190060179A (ko) * | 2017-11-24 | 2019-06-03 | (주)잉카엔트웍스 | 공통 중간 언어를 위한 보안 제공 장치와 방법, 및 보안 실행 장치와 방법 |
CN112242970A (zh) * | 2019-07-16 | 2021-01-19 | 丁爱民 | 一种数据分割加密安全加固方法及装置 |
CN112242970B (zh) * | 2019-07-16 | 2022-09-02 | 丁爱民 | 一种数据分割加密安全加固方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101073220B (zh) | 2013-03-27 |
US20120189119A1 (en) | 2012-07-26 |
CN101073220A (zh) | 2007-11-14 |
WO2006063275A1 (en) | 2006-06-15 |
KR100917073B1 (ko) | 2009-09-15 |
EP1829276A1 (en) | 2007-09-05 |
US20060126843A1 (en) | 2006-06-15 |
EP1829276B1 (en) | 2013-03-20 |
US8155306B2 (en) | 2012-04-10 |
JP2008523728A (ja) | 2008-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100917073B1 (ko) | 암호 작성 프로세싱의 스피드를 증가시키는 방법 및 장치 | |
US9031228B2 (en) | Systems and methods for implementing block cipher algorithms on attacker-controlled systems | |
US8705731B2 (en) | Selection of a lookup table with data masked with a combination of an additive and multiplicative mask | |
US20060023875A1 (en) | Enhanced stream cipher combining function | |
US8094816B2 (en) | System and method for stream/block cipher with internal random states | |
US8966279B2 (en) | Securing the implementation of a cryptographic process using key expansion | |
US8504845B2 (en) | Protecting states of a cryptographic process using group automorphisms | |
US8718280B2 (en) | Securing keys of a cipher using properties of the cipher process | |
JP7031580B2 (ja) | 暗号化装置、暗号化方法、復号化装置、及び復号化方法 | |
US8699702B2 (en) | Securing cryptographic process keys using internal structures | |
Asaad et al. | Advanced Encryption Standard Enhancement with Output Feedback Block Mode Operation | |
US20020101985A1 (en) | Single-cycle hardware implementation of crypto-function for high throughput crypto-processing | |
KR20190020988A (ko) | 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법 및 장치 | |
US8687803B2 (en) | Operational mode for block ciphers | |
Blaze et al. | The MacGuffin block cipher algorithm | |
US20240097880A1 (en) | High-speed circuit combining aes and sm4 encryption and decryption | |
KR100259836B1 (ko) | N-라운드 라운드 출력문 귀환 블록 암호화/복호화 방법 | |
US20230403134A1 (en) | Method for processing encrypted data | |
JP2018514816A (ja) | 変形鍵を用いる高速aes | |
Pitale et al. | Cryptographic algorithm development and application for encryption and decryption | |
CN113343276B (zh) | 基于广义二维猫映射的轻量级分组密码算法gcm的加密方法 | |
Al-Kareem et al. | Modify Twofish Algorithm to Lightweight using Present Techniques for Data Protection | |
Shrivas et al. | Added Advanced Encryption Standard (A-Aes): With 512 Bits Data Block And 512, 768 And 1024 Bits Encryption Key | |
Hattab et al. | Developing the Complexity and Security of the Twofish Algorithm Through a New Key Scheduling Design | |
ElShafee | A 64 BITS ROTOR ENHANCED BLOCK CIPHER (REBC3) |
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: 20120904 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20130902 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20140829 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20150827 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20160830 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |