KR20230083836A - Sha-3 처리를 위한 그래픽 처리 장치 및 방법 - Google Patents

Sha-3 처리를 위한 그래픽 처리 장치 및 방법 Download PDF

Info

Publication number
KR20230083836A
KR20230083836A KR1020210172208A KR20210172208A KR20230083836A KR 20230083836 A KR20230083836 A KR 20230083836A KR 1020210172208 A KR1020210172208 A KR 1020210172208A KR 20210172208 A KR20210172208 A KR 20210172208A KR 20230083836 A KR20230083836 A KR 20230083836A
Authority
KR
South Korea
Prior art keywords
processing
sha
lane
rotation
value
Prior art date
Application number
KR1020210172208A
Other languages
English (en)
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 KR1020210172208A priority Critical patent/KR20230083836A/ko
Publication of KR20230083836A publication Critical patent/KR20230083836A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 SHA-3 처리를 위한 그래픽 처리 장치 및 방법에 관한 것으로, θ 과정, ρ 과정, π 과정, χ 과정, ι 과정으로 구성된 F 함수를 통해 구현된 SHA-3 처리를 위한 그래픽 처리 장치에 있어서, 상기 F 함수의 처리 과정에서 상기 θ 과정 및 상기 ρ 과정을 동시에 진행하고, 상기 θ 과정에서 상기 ð 과정을 내재적으로 처리하는 F 함수 제어부; 상기 ρ 과정에서 레인의 회전을 수행할 때 사용되는 ρ 테이블 없이 직접 인덱싱 기반의 회전 값을 할당하여 상기 레인의 회전을 수행하는 ρ 과정 처리부; 및 상기 ρ 과정의 진행 중에 상기 회전의 전후에 상기 레인의 위치를 변경할 때 위치 값을 직접 할당하여 상기 레인의 위치를 변경하는 π 과정 처리부;를 포함한다.

Description

SHA-3 처리를 위한 그래픽 처리 장치 및 방법{GRAPHICS PROCESSING APPARATUS AND METHOD FOR SHA-3 PROCESSING}
본 발명은 그래픽 처리 장치에 관한 것으로, 보다 상세하게는 국제 표준 해시 함수 Secure Hash Algorithm-3로 선정된 Keccak 알고리즘에 대한 내부 연산 메모리 접근 최적화 기술에 관한 것이다.
Graphics Processing Unit (GPU) 장비는 Central Processing Unit (CPU) 장비보다 많은 스레드를 보유하고 있어 대량의 데이터를 병렬 처리하는 작업에 효과적일 수 있다. GPU 장비는 이러한 특징을 바탕으로 많은 데이터를 병렬적으로 처리할 수 있는 환경에서 주목받기 시작하였다. 특히, 많은 사용자의 데이터를 처리하거나 대용량의 데이터를 관리 및 처리하는 환경인 서버 환경에서 GPU 사용이 주목받고 있다. 서버는 사용자가 접근을 요청할 때, 해당 접근이 사용자 본인임을 확인하는 인증 과정을 거치며, 서버에 속하는 많은 데이터의 무결성 검증이 필수적 요소일 수 있다. 이러한 환경에서 많은 사용자의 인증 과정과 데이터 무결성 검증을 위해 암호학적 해시함수가 사용될 수 있다.
해시함수는 메시지의 무결성을 검증해주는 알고리즘이며 기존의 암호학적 해시함수는 SHA-1, SHA-2를 주로 사용해왔다. 하지만, SHA-1은 내부 설계 구조로 충돌 저항성의 많은 공격 방법이 제시되었고, 2017년 서로 다른 2개의 PDF 파일이 같은 SHA-1 해시값을 가지는 충돌쌍이 발표되었다. 그뿐만 아니라 SHA-1의 내부 블록 연산 구조와 유사한 연산 구조를 가지는 SHA-2 알고리즘도 SHA-1의 충돌 쌍 공격 방법과 유사한 충돌 쌍 공격 방법이 제안되었다.
2015년, NIST는 기존의 표준 해시함수의 충돌 쌍 취약점에 대응, Keccak Algorithm을 SHA-3 표준 해시함수로 선정하였으며, SHA-3는 양자 내성 암호 공모전에 제출된 많은 암호알고리즘 내부 함수로 사용되고 있다. 하지만 소프트웨어 환경에서 SHA-3는 기존의 해시함수보다 느린 성능을 제공하며, PQC 암호알고리즘은 비교적 느린 연산 속도를 보여주고 있다. 따라서, SHA-3 내부 성능 최적화 연구는 필수적 요소로 대두되고 있다.
한국등록특허 제10-1957855호 (2019.03.07)
본 발명의 일 실시예는 국제 표준 해시 함수 Secure Hash Algorithm-3로 선정된 Keccak 알고리즘에 대한 내부 연산 메모리 접근 최적화 기술을 구현하는 SHA-3 처리를 위한 그래픽 처리 장치 및 방법을 제공하고자 한다.
실시예들 중에서, SHA-3 처리를 위한 그래픽 처리 장치는 θ 과정, ρ 과정, π 과정, χ 과정 및 ι 과정으로 구성된 F 함수를 통해 구현된 SHA-3 처리를 위한 그래픽 처리 장치에 있어서, 상기 F 함수의 처리 과정에서 상기 θ 과정 및 상기 ρ 과정을 동시에 진행하고, 상기 θ 과정에서 상기 π 과정을 내재적으로 처리하는 F 함수 제어부; 상기 ρ 과정에서 레인의 회전을 수행할 때 사용되는 ρ 테이블 없이 직접 인덱싱 기반의 회전 값을 할당하여 상기 레인의 회전을 수행하는 ρ 과정 처리부; 및 상기 ρ 과정의 진행 중에 상기 회전의 전후에 상기 레인의 위치를 변경할 때 위치 값을 직접 할당하여 상기 레인의 위치를 변경하는 π 과정 처리부;를 포함한다.
상기 F 함수 제어부는 상기 θ 과정 및 상기 ρ 과정을 동시에 진행한 후 상기 χ 과정 및 ι 과정을 순차적으로 진행할 수 있다.
상기 F 함수 제어부는 Keccak 알고리즘에 상기 θ 과정 및 상기 ρ 과정의 동시 진행을 적용할 수 있다.
상기 ρ 과정 처리부는 상기 ρ 과정의 직접 인덱싱을 위해 PTX (Parallel Thread eXecution) 인라인 어셈블리를 통해 상기 회전 값을 할당할 수 있다.
상기 ρ 과정 처리부는 상기 회전 값의 할당을 통해 상기 ρ 테이블의 메모리 참조를 제거하여 메모리 접근을 줄일 수 있다.
상기 π 과정 처리부는 상기 ρ 과정의 진행 과정에서 내재적으로 처리되고 PTX (Parallel Thread eXecution) 인라인 어셈블리를 통해 상기 위치 값을 직접 할당할 수 있다.
상기 π 과정 처리부는 상기 위치 값의 할당을 통해 π 테이블의 메모리 참조를 제거하여 메모리 접근을 줄일 수 있다.
일 실시예에서, SHA-3 처리를 위한 그래픽 처리 방법은 θ 과정, ρ 과정, π 과정, χ 과정 및 ι 과정으로 구성된 F 함수를 통해 구현된 SHA-3 처리를 위한 그래픽 처리 방법에 있어서, 상기 F 함수의 처리 과정에서 상기 θ 과정 및 상기 ρ 과정을 동시에 진행하고, 상기 θ 과정에서 상기 π 과정을 내재적으로 처리하는 F 함수 제어단계; 상기 ρ 과정에서 레인의 회전을 수행할 때 사용되는 ρ 테이블 없이 직접 인덱싱 기반의 회전 값을 할당하여 상기 레인의 회전을 수행하는 ρ 과정 처리단계; 및 상기 ρ 과정의 진행 중에 상기 회전의 전후에 상기 레인의 위치를 변경할 때 위치 값을 직접 할당하여 상기 레인의 위치를 변경하는 π 과정 처리단계;를 포함한다.
상기 F 함수 제어단계는 상기 θ 과정 및 상기 ρ 과정을 동시에 진행한 후 상기 χ 과정 및 ι 과정을 순차적으로 진행하는 단계를 포함할 수 있다.
상기 F 함수 제어단계는 Keccak 알고리즘에 상기 θ 과정 및 상기 ρ 과정의 동시 진행을 적용하는 단계를 포함할 수 있다.
상기 ρ 과정 처리단계는 상기 ρ 과정의 직접 인덱싱을 위해 PTX (Parallel Thread eXecution) 인라인 어셈블리를 통해 상기 회전 값을 할당하는 단계를 포함할 수 있다.
상기 ρ 과정 처리단계는 상기 회전 값의 할당을 통해 상기 ρ 테이블의 메모리 참조를 제거하여 메모리 접근을 줄이는 단계를 포함할 수 있다.
상기 π 과정 처리단계는 상기 ρ 과정의 진행 과정에서 내재적으로 처리되고 PTX (Parallel Thread eXecution) 인라인 어셈블리를 통해 상기 위치 값을 직접 할당하는 단계를 포함할 수 있다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
본 발명의 일 실시예에 따른 SHA-3 처리를 위한 그래픽 처리 장치 및 방법은 국제 표준 해시 함수 Secure Hash Algorithm-3로 선정된 Keccak 알고리즘에 대한 내부 함수 순서를 변경하여 메모리 접근 횟수 및 메모리 저장량을 최적화할 수 있고, 이에 따라 메모리 접근이 많은 GPU 장비 등에서 효과적인 방안을 제공할 수 있다.
본 발명의 일 실시예에 따른 SHA-3 처리를 위한 그래픽 처리 장치 및 방법은 GPU 환경에서 SHA-3 최적의 병렬 구현 방법으로서 SHA-3 형식을 사용하는 알고리즘, 인증 프로세서 및 해시함수 기반 암호화 과정에 적용되어 성능 향상을 제공할 수 있다.
도 1은 본 발명에 따른 그래픽 처리 시스템을 설명하는 도면이다.
도 2는 도 1의 그래픽 처리 장치의 시스템 구성을 설명하는 도면이다.
도 3은 도 1의 그래픽 처리 장치의 기능적 구성을 설명하는 도면이다.
도 4는 본 발명에 따른 SHA-3 처리를 위한 그래픽 처리 방법을 설명하는 순서도이다.
도 5는 SHA-3 Keccak 알고리즘 스펀지 구조를 설명하는 도면이다.
도 6은 SHA-3 Keccak 알고리즘 내부 상태를 설명하는 도면이다.
도 7은 SHA-3 Keccak 알고리즘 내부 변수를 설명하는 도면이다.
도 8은 SHA-3 Keccak 알고리즘 내부 함수 구조를 설명하는 도면이다.
도 9는 SHA-3 Keccak 알고리즘 내부 구성 알고리즘을 설명하는 도면이다.
도 10a 내지 10d는 SHA-3 Keccak 알고리즘의 θ과정을 설명하는 도면이다.
도 11은 본 발명에 따른 GPU 장비의 전체적인 개념을 설명하는 도면이다.
도 12a 내지 12c는 본 발명에 따른 GPU 환경에서의 SHA-3 최적화의 개념을 설명하는 도면이다.
도 13은 본 발명에 관한 성능 비교 실험 결과를 설명하는 도면이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
해시 함수는 메시지의 무결성을 검증해주는 알고리즘에 해당할 수 있다. 메시지의 무결성이란, 네트워크 통신, 파일 저장 등 컴퓨팅 환경에서의 파일 관리 시 데이터가 변조되지 않았음을 의미할 수 있다. 실제로 네트워크 통신 환경에서 데이터 전송 간 데이터가 손실되어 원본 데이터가 변하거나 의도적인 공격자가 파일을 변경하는 경우 암호학적 해시 함수를 통해 메시지의 위조, 변조 여부를 확인할 수 있다. 암호학적 해시 함수는 임의의 길이를 갖는 메시지를 입력으로 하여 고정된 길이의 해시값을 계산 및 출력하는 함수에 해당할 수 있다.
해시 함수는 기본적으로, 1) 임의의 길이를 가진 메시지로부터 고정된 길이의 해시값을 계산할 수 있고, 메시지의 길이가 짧거나 길더라도 고정된 길이의 해시값을 출력하게 설계되어 있으며, 2) 해시값을 고속으로 계산 가능하고, 3) 단일 방향성을 가질 수 있다. 여기에서, 단일 방향성이란 해시값을 보고 입력된 메시지를 역산할 수 없는 성질에 해당할 수 있다.
안전한 소프트웨어에서 사용하기 위해서는 검증된 해시 함수를 사용할 필요가 있으며, 이를 위해 암호학적으로 검증된 해시 함수를 암호학적 해시 함수로 분류할 수 있다. 또한, 해시 함수는 다음과 같은 보안 요구 사항을 만족할 수 있다.
1) 역상 저항성: 해시 함수를 Hash로 정의하는 경우, 공격자가 출력 값을(output) 보고 output=Hash(x)를 만족하는 x를 발견하는 것이 어려워야 함
2) 제2 역상 저항성: 해시 함수를 Hash로 정의하는 경우, 공격자가 x, H(x)에 대해 H(y)=H(x)를 만족하는 y를 발견하는 것이 어려워야 함
3) 충돌 저항성: 해시 함수를 Hash로 정의하는 경우, 공격자가 H(x)=H(y)를 만족하는 (x,y)쌍을 발견하는 것이 어려워야 함
NIST는 국제 표준 해시 함수로 SHA-1을 발표하고 SHA-1과 유사한 구조를 가지는 SHA-2 Family를 발표하였으나, 2005년 SHA-1의 충돌 저항성 공격 방안이 제안되었다. 충돌 저항성 공격이 성공하는 경우, 다른 입력 메시지가 같은 입력 해시값을 가질 수 있으며, 이는 무결성 검증 방안에 큰 위협이 될 수 있다. 2017년 SHA-1의 실제 해시 충돌 값이 발표되었고, 많은 인터넷 브라우저가 SHA-1의 지원을 중단하였다. 이러한 SHA-1의 공격 방법에 발표에 따라 SHA-1과 유사한 구조를 가지는 SHA-2 Family의 안전성 문제가 대두되었다. 실제로 2008년 SHA-2 Family의 공격 방안이 제안되었으며, 안전 보안 수준이 감소하였다.
이러한 안전성 문제를 바탕으로 NIST는 SHA-3 해시 함수에 대한 공모전을 진행하였고, Keccak 팀이 제안한 알고리즘이 SHA-3 표준 해시 함수 알고리즘으로 선정되었다. 이에 따라, NIST는 2015년 Keccak 알고리즘을 공식적으로 SHA-3 해시 함수 알고리즘으로 발표하였다.
1994년 Shor는 양자 컴퓨터 환경에서의 효과적인 인수분해 알고리즘을 제안하였다. 해당 시기에는 양자 컴퓨터 환경의 개발 속도가 지연됨에 따라 알고리즘의 실현 가능성이 낮았으나, 최근 양자 컴퓨터 환경의 개발 속도가 가속화됨에 따라 Shor의 효과적인 인수분해 알고리즘의 실현 가능성이 높아지고 있다. 이러한 효과적인 인수분해 알고리즘의 실현 가능성은 기존 공개 키 암호 시스템에 큰 위협이 될 수 있다. 현재 공개 키 암호 시스템은 인수분해의 어려움을 가지는 수학적 난제로 설계되어 있으며, 양자 컴퓨터의 상용화 속도에 따라 기존 공개 키 암호 시스템의 재구축이 필요한 상황이다.
이러한 상황에서 NIST는 양자 컴퓨터 알고리즘의 내성을 가지는 암호 알고리즘 공모전을 시작하였으며, 해당 공모전에는 3라운드를 거쳐 최종 7개의 암호 알고리즘 후보군이 존재한다. 현재 존재하는 암호 알고리즘 대다수가 SHA-3 해시 함수를 통해 내부 변수 및 상수값을 생성함에 따라 SHA-3 사용 빈도가 점차 증가할 것으로 예상되고 있다.
NIST SHA-3 공모전 당시, 제출된 최종 후보군 알고리즘에서 성능 측정이 진행된 연구 사례가 존재하며, 소프트웨어 환경에서 측정된 SHA-3는 SHA-2 Family 대비 약 2배 이상의 성능 저하 연구 결과가 존재한다. 하지만, 소프트웨어 환경에서의 SHA-3 최적화 구현 방안은 활발하게 진행되고 있지 않으며, SHA-3의 사용 빈도가 점차 증가함에 따라 소프트웨어 환경에서의 SHA-3 성능 최적화도 진행될 필요가 있다.
이하, 도 1 내지 13을 통해 본 발명에 따른 SHA-3 처리를 위한 그래픽 처리 장치 및 방법을 구체적으로 설명한다.
도 1은 본 발명에 따른 그래픽 처리 시스템을 설명하는 도면이다.
도 1을 참조하면, 그래픽 처리 시스템(100)은 사용자 단말(110), 그래픽 처리 장치(130) 및 데이터베이스(150)를 포함할 수 있다.
사용자 단말(110)은 그래픽 처리 장치(130)와 연동하여 그래픽 처리에 관한 동작을 이용할 수 있는 컴퓨팅 장치에 해당할 수 있고, 스마트폰, 노트북 또는 컴퓨터로 구현될 수 있으며, 반드시 이에 한정되지 않고, 태블릿 PC 등 다양한 디바이스로도 구현될 수 있다. 사용자 단말(110)은 그래픽 처리 장치(130)와 네트워크를 통해 연결될 수 있고, 복수의 사용자 단말(110)들은 그래픽 처리 장치(130)와 동시에 연결될 수 있다. 또한, 사용자 단말(110)은 그래픽 처리 장치(130)와 연동하기 위한 전용 프로그램 또는 애플리케이션을 설치하여 실행시킬 수 있다.
그래픽 처리 장치(130)는 본 발명에 따른 SHA-3 최적화 구현 방안을 적용하여 동작하는 컴퓨팅 장치 또는 이에 해당하는 서버로 구현될 수 있다. 예를 들어, 그래픽 처리 장치(130)는 그래픽 처리 유닛(GPU)을 포함할 수 있다. 그래픽 처리 장치(130)는 사용자 단말(110)과 네트워크를 통해 연결될 수 있고 관련 데이터를 주고받을 수 있다. 또한, 그래픽 처리 장치(130)는 적어도 하나의 외부 시스템과 연동하여 동작할 수 있다. 예를 들어, 외부 시스템은 클라우드 시스템, 인공지능 서버 등을 포함할 수 있으며, 그래픽 처리 장치(130)는 외부 시스템과의 연동을 통해 본 발명에 따른 SHA-3 최적화 구현 방안을 다양한 분야에 적용할 수 있다.
데이터베이스(150)는 그래픽 처리 장치(130)의 동작 과정에서 필요한 다양한 정보들을 저장하는 저장장치에 해당할 수 있다. 데이터베이스(150)는 그래픽 처리 장치(130)에 포함되어 내부 저장공간을 제공할 수 있으며, 그래픽 처리 장치(130)와 독립적으로 구현되어 외부 저장공간을 제공할 수도 있다.
도 2는 도 1의 그래픽 처리 장치의 시스템 구성을 설명하는 도면이다.
도 2를 참조하면, 그래픽 처리 장치(130)는 프로세서(210), 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)를 포함하여 구현될 수 있다.
프로세서(210)는 그래픽 처리 장치(130)가 동작하는 과정에서의 각 단계들을 처리하는 프로시저를 실행할 수 있고, 그 과정 전반에서 읽혀지거나 작성되는 메모리(230)를 관리할 수 있으며, 메모리(230)에 있는 휘발성 메모리와 비휘발성 메모리 간의 동기화 시간을 스케줄할 수 있다. 프로세서(210)는 그래픽 처리 장치(130)의 동작 전반을 제어할 수 있고, 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)와 전기적으로 연결되어 이들 간의 데이터 흐름을 제어할 수 있다. 프로세서(210)는 그래픽 처리 장치(130)의 CPU(Central Processing Unit)로 구현될 수 있다.
메모리(230)는 SSD(Solid State Drive) 또는 HDD(Hard Disk Drive)와 같은 비휘발성 메모리로 구현되어 그래픽 처리 장치(130)에 필요한 데이터 전반을 저장하는데 사용되는 보조기억장치를 포함할 수 있고, RAM(Random Access Memory)과 같은 휘발성 메모리로 구현된 주기억장치를 포함할 수 있다.
사용자 입출력부(250)는 사용자 입력을 수신하기 위한 환경 및 사용자에게 특정 정보를 출력하기 위한 환경을 포함할 수 있다. 예를 들어, 사용자 입출력부(250)는 터치 패드, 터치 스크린, 화상 키보드 또는 포인팅 장치와 같은 어댑터를 포함하는 입력장치 및 모니터 또는 터치스크린과 같은 어댑터를 포함하는 출력장치를 포함할 수 있다. 일 실시예에서, 사용자 입출력부(250)는 원격 접속을 통해 접속되는 컴퓨팅 장치에 해당할 수 있고, 그러한 경우, 그래픽 처리 장치(130)는 서버로서 수행될 수 있다.
네트워크 입출력부(270)은 네트워크를 통해 외부 장치 또는 시스템과 연결하기 위한 환경을 포함하고, 예를 들어, LAN(Local Area Network), MAN(Metropolitan Area Network), WAN(Wide Area Network) 및 VAN(Value Added Network) 등의 통신을 위한 어댑터를 포함할 수 있다.
도 3은 도 1의 그래픽 처리 장치의 기능적 구성을 설명하는 도면이다.
도 3을 참조하면, 그래픽 처리 장치(130)는 SHA-3로 선정된 Keccak 알고리즘에 대한 내부 연산 과정의 메모리 접근 최적화 기술을 구현할 수 있으며, F 함수 제어부(310), ρ 과정 처리부(330), π 과정 처리부(350) 및 제어부(370)를 포함할 수 있다.
먼저 Keccak 알고리즘은 기존 표준 해시 함수와 다른 스펀지 구조(Sponge Structure)로 설계될 수 있다. 도 5는 스펀지 구조(Sponge Structure)를 도시하고 있으며, 스펀지 구조는 흡수(Absorbing) 과정과 압축(Squeezing) 과정으로 분리될 수 있다. 흡수 과정은 내부 상태(internal state)와 평문 데이터(plain text data) 정보가 eXclusive OR(XOR) 연산을 통해 합쳐지는 과정에 해당하고, 압축 과정은 요구된 길이만큼 해시값을 출력하는 과정에 해당할 수 있다. 내부 상태 갱신은 Keccak F 함수를 통해 갱신될 수 있다.
또한, Keccak 알고리즘은 3차원 좌표계로 내부 상태를 구성할 수 있다. 도 6은 내부 상태에 대한 요약을 도시하고 있다. x,y 좌표는 최댓값이 5로 고정되어 있으며 z좌표의 최댓값에 따라 내부 상태의 크기가 결정될 수 있다. 도 7은 z값에 따른 내부 상태 크기 및 F 함수 반복 횟수를 나타낼 수 있다.
보다 구체적으로, F 함수 제어부(310)는 F 함수의 처리 과정에서 θ 과정 및 ρ 과정을 동시에 진행하고, θ 과정에서 π 과정을 내재적으로 처리할 수 있다. 먼저, SHA-3 스펀지 구조(Sponge Structure)에서 사용하는 F 함수는 총 5가지(ρ, θ, π, χ 및 ι) 과정으로 구성될 수 있다. 도 8은 스펀지 구조 F 함수 4개의 과정에 대한 요약을 도시하고 있으며, 도 9는 F함수의 유사 코드(pseudo code)에 해당할 수 있다.
θ 과정은 lanes(레인들)의 값을 변경하는 작업에 해당할 수 있다. θ 연산에서 변경될 lanes은 양쪽의 sheet값을 통해 갱신될 수 있다. sheet(시트)에 속한 5개의 lanes는 XOR 연산을 통해 하나의 lane(레인)으로 결합될 수 있다. 연산이 완료되면 XOR 연산을 통해 3개의 lane이 하나의 lane으로 결합될 수 있으며, 도 10a의 알고리즘(Algorithm 1)은 Keccak 알고리즘 θ 과정에 해당할 수 있다.
도 10a에서, 연산하려는 레인(lane)의 x좌표를 기준으로 연산을 진행한다고 가정하면, (x-1)에 존재하는 시트(sheet)에는 5개의 레인이 존재할 수 있다. (x-1)에 존재하는 하나의 시트 안에 구성된 5개의 레인을
Figure pat00001
(XOR) 연산으로 하나의 레인으로 통합할 수 있다. 마찬가지로 (x+1)에 존재하는 시트 안에 구성된 5개의 레인을 하나의 레인으로 통합할 수 있다. 추가로 (x+1)에서 합쳐진 레인은 왼쪽 회전(Left rotation) 연산으로 1-bit를 움직일 수 있다. 즉, 한 비트씩 왼쪽으로 움직일 수 있으며, 초과된 비트는 오른쪽으로 순환될 수 있다.
예를 들어, 8-bit 01001011 값을 1-bit 만큼 Rotation Left Shift를 하는 경우, 10010111와 같이 연산될 수 있다. (x+1)에서 합쳐진 레인과 (x-1)에서 합쳐진 레인 및 x에 존재하는 레인을 모두
Figure pat00002
연산을 통해 하나의 레인으로 갱신할 수 있다. 결과적으로, 해당 과정을 25개의 레인 모두에 실행할 수 있다.
또한, ρ 과정은 lane의 Rotation Left Shift (ROTL)을 계산하는 작업에 해당할 수 있다. 각 lane에는 ROTL의 다른 오프셋 값이 포함될 수 있다. 예를 들어, 도 10b에서, ρ 과정은 25개의 레인이 사전에 정해진 값만큼 Left rotation을 하는 과정에 해당할 수 있다. ρ 과정에서 사용하는 값은 SHA-3 표준 문서에서 제시될 수 있다. Left rotation 연산은 θ 과정에서 서술한 연산과 같이 이동할 수 있다. 해당 과정에서 SHA-3 기존 구현은 상수값 메모리 테이블을 일반적으로 사용할 수 있다. 그뿐만 아니라 일반적인 SHA-3 구현 및 표준 SHA-3 구현에서 π 과정과 ρ 과정을 합쳐 구현할 수 있다.
또한, π 과정은 lane의 위치를 변경하는 작업에 해당할 수 있다. 예를 들어, 도 10c에서, π 과정은 25개의 레인을 사전에 정해진 값을 이용하여 위치를 변경하는 과정에 해당할 수 있다. 이동되는 위치는 SHA-3 표준 문서에서 제시될 수 있다. 해당 과정에서 SHA-3 기존 구현은 상수값 메모리 테이블을 일반적으로 사용할 수 있다.
또한, χ 과정은 같은 plane(평면)에 속한 lane들 간의 NOT, OR 연산을 통해 값을 갱신하는 작업에 해당할 수 있다. 예를 들어, 도 10d에서, χ 과정은 인접한 레인과 비트 연산을 통해 처리하는 과정에 해당할 수 있다. x에 위치한 레인이 χ 과정에서 처리되는 연산 방안은 (x+1)에 위치한 레인과 (x+2)에 위치한 레인 2개를 곱한 뒤, x에 위치한 레인과
Figure pat00003
연산을 통해 통합할 수 있다. 해당 χ 과정은 같은 평면(plane)에 속한 5개의 레인 단위로 구성되며 5개의 평면이 각각 해당 연산을 마무리하면 χ 과정이 종료될 수 있다.
마지막으로, ι 과정은 x = 0 및 y = 0에 해당하는 lane에 설정된 Round Constant(RC) 값과 XOR하는 과정에 해당할 수 있다. 즉, ι 과정은 x=0, y=0에 위치한 레인에 정해진 상수값을 더해주는 과정에 해당할 수 있다. 정해진 상수값은 SHA-3 표준 문서에 명시되어 있으며, 해당 과정은 상수값 테이블을 사용할 수 있다. 결과적으로, 내부 상태는 상기의 5개의 프로세스를 통해 업데이트되고, 설정된 라운드 수 동안 5개의 프로세스가 반복적으로 수행될 수 있다.
일 실시예에서, F 함수 제어부(310)는 θ 과정 및 ρ 과정을 동시에 진행한 후 χ 과정 및 ι 과정을 순차적으로 진행할 수 있다. SHA-3의 F 함수는 기본적으로
Figure pat00004
, ρ & π, χ 및 ι의 순서에 따라 진행하도록 구성될 수 있다. F 함수 제어부(310)는 F 함수의 구성을 변경하여 θ & ρ, χ 및 ι의 순서에 따라 진행하도록 구성할 수 있다. 이때, F 함수 제어부(310)는 π 과정에 대해 인덱싱을 통해 처리할 수 있으며, 이를 통해 메모리 접근 횟수를 최소화할 수 있다. 또한, F 함수 제어부(310)는 θ 과정 연산 값을 저장하기 전에 ρ 과정을 진행하여 값을 저장하는 방법을 적용하여 해당 과정을 수행할 수 있다. 즉, F 함수 제어부(310)는 π 과정을 인덱싱을 통해 처리할 수 있으며, θ 및 ρ 과정을 결합하여 메모리 접근을 줄일 수 있다.
일 실시예에서, F 함수 제어부(310)는 Keccak 알고리즘에 θ 과정 및 ρ 과정의 동시 진행을 적용할 수 있다. 즉, F 함수 제어부(310)는 Keccak 알고리즘에도 동일하게 θ 과정 및 ρ 과정의 결합을 통해 메모리 접근 횟수를 줄임으로써 Keccak 알고리즘을 보다 효율적으로 처리할 수 있다.
ρ 과정 처리부(330)는 ρ 과정에서 레인의 회전을 수행할 때 사용되는 ρ 테이블 없이 직접 인덱싱 기반의 회전 값을 할당하여 레인의 회전을 수행할 수 있다. 즉, ρ 과정 처리부(330)는 레인의 Rotation Left Shift(ROTL)을 계산함으로써 레인의 회전을 수행할 수 있다. SHA-3 구현은 ρ 과정의 오프셋(offset) 값 테이블, π-offset 값 테이블 및 ι-offset 값 테이블을 사용할 수 있으며, 해당 상수값을 테이블 형식으로 메모리에 저장함으로써 연산이 호출될 때마다 해당 값이 저장된 메모리에 접근하는 구조를 가질 수 있다. ρ 과정의 오프셋은 각 레인의 (x,y)값에 따라 고정될 수 있으며, ρ 과정 처리부(330)는 ρ-offset 값을 테이블로 저장하지 않고 직접 인덱싱을 통해 처리할 수 있다. 즉, ρ 과정 처리부(330)는 회전을 수행할 때 사용되는 ρ 테이블(즉, ρ-offset 값 테이블) 없이 직접 인덱싱 기반의 회전 값을 할당하여 레인의 회전을 수행할 수 있다.
일 실시예에서, ρ 과정 처리부(330)는 ρ 과정의 직접 인덱싱을 위해 PTX (Parallel Thread eXecution) 인라인 어셈블리를 통해 회전 값을 할당할 수 있다. 여기에서, Parallel Thread eXecution(PTX)는 CUDA C에서 사용할 수 있는 인라인 어셈블리 언어에 해당할 수 있다. 또한, 어셈블리 언어는 기계어와 매핑을 하는 저수준 컴퓨터 프로그래밍 언어에 해당할 수 있으며, 특정 유형의 프로세서를 위한 어셈블리 언어를 포함할 수 있다. 또한, 어셈블리 언어는 명령어를 통해 기계어에 직접 대응할 수 있고 기계(아키텍처)와 직접 통신할 수 있다는 장점을 가질 수 있다. 즉, 프로그래밍 언어 중 명령어 실행 속도가 가장 빠르며 PTX는 CUDA C에서 제공하는 GPU 어셈블리 언어로서 효과적인 명령어 실행 속도 처리를 위해 CUDA C를 활용한 GPU 아키텍처에서의 SHA-3 구현은 PTX assembly를 활용하여 처리될 수 있다. 특히, ρ 과정 처리부(330)는 SHA-3 F 함수 내부의 ρ 과정 연산을 PTX 어셈블리로 구현하여 회전 값 할당에 관한 동작을 처리할 수 있다.
일 실시예에서, ρ 과정 처리부(330)는 회전 값의 할당을 통해 ρ 테이블의 메모리 참조를 제거하여 메모리 접근을 줄일 수 있다. 즉, ρ 과정 처리부(330)는 레인의 Rotation Left Shift (ROTL)을 계산하는 과정에서 ρ-offset 값을 직접 인덱싱하여 메모리 접근을 제거할 수 있다.
π 과정 처리부(350)는 ρ 과정의 진행 중에 회전의 전후에 레인의 위치를 변경할 때 위치 값을 직접 할당하여 레인의 위치를 변경할 수 있다. 즉, π 과정 처리부(350)는 ρ 과정에서 레인의 위치 변경을 위한 레인의 위치 값을 계산할 수 있으며, 해당 동작을 인덱싱으로 처리함으로써 π-offset 값 테이블을 메모리에 별도로 저장하지 않을 수 있다.
일 실시예에서, π 과정 처리부(350)는 ρ 과정의 진행 과정에서 내재적으로 처리되고 PTX (Parallel Thread eXecution) 인라인 어셈블리를 통해 위치 값을 직접 할당할 수 있다. 즉, π 과정 처리부(350)는 SHA-3 F 함수 내부의 π 과정 연산을 PTX 어셈블리로 구현하여 위치 값 할당에 관한 동작을 처리할 수 있다.
일 실시예에서, π 과정 처리부(350)는 위치 값의 할당을 통해 π 테이블의 메모리 참조를 제거하여 메모리 접근을 줄일 수 있다. 즉, π 과정 처리부(350)는 ρ 과정의 진행 중에 레인의 위치 변경을 위한 위치 값의 할당 과정에서 π-offset 값을 직접 인덱싱하여 메모리 접근을 제거할 수 있다.
제어부(370)는 그래픽 처리 장치(130)의 전체적인 동작을 제어하고, F 함수 제어부(310), ρ 과정 처리부(330) 및 π 과정 처리부(350) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.
도 4는 본 발명에 따른 SHA-3 처리를 위한 그래픽 처리 방법을 설명하는 순서도이다.
도 4를 참조하면, 그래픽 처리 장치(130)는 F 함수 제어부(310)를 통해 F 함수의 처리 과정에서 θ 과정 및 ρ 과정을 동시에 진행하고, θ 과정에서 π 과정을 내재적으로 처리할 수 있다(단계 S410). 그래픽 처리 장치(130)는 ρ 과정 처리부(330)를 통해 ρ 과정에서 레인의 회전을 수행할 때 사용되는 ρ 테이블 없이 직접 인덱싱 기반의 회전 값을 할당하여 레인의 회전을 수행할 수 있다(단계 S430). 그래픽 처리 장치(130)는 π 과정 처리부(350)를 통해 ρ 과정의 진행 중에 회전의 전후에 레인의 위치를 변경할 때 위치 값을 직접 할당하여 레인의 위치를 변경할 수 있다(단계 S450).
도 11은 본 발명에 따른 GPU 장비의 전체적인 개념을 설명하는 도면이다.
도 11을 참조하면, 그래픽 처리 유닛(Graphics Processing Unit, GPU)은 컴퓨터 그래픽 요소를 처리하기 위해 만들어진 장비에 해당할 수 있다. GPU는 CPU와 다르게 그래픽 처리, 특정 연산 등을 빠른 속도로 처리하기 위해 설계되었으며, 수백 개의 코어를 통해 연산의 병렬성을 높인 장비로 구현될 수 있다.
또한, GPU는 개발된 이후 개발 목적에 따라 컴퓨터 그래픽 처리에 주로 사용되어 왔으며, GPU 장비의 발전으로 병렬 연산의 효과적인 처리 연산 속도가 증가함에 따라 CPU에서 처리하는 범용 컴퓨팅 연산을 GPU에서 처리하는 General Purpose computing on GPU(GPGPU) 기술이 대두되었다.
CUDA(Computed Unified Device Architecture)는 2006년 NVIDIA에 의해 발표된 GPGPU 기술로서, GPU에서 실행할 수 있는 그래픽 처리 알고리즘을 C, Python 등 컴퓨터 언어로 쉽게 구현할 수 있는 기술에 해당할 수 있다. 개발자는 CUDA 기술을 통해 GPU의 명령어 세트와 메모리에 접근할 수 있다.
GPU 아키텍처는 여러 SM(Streaming Multiprocessor)으로 구성될 수 있다. SM은 수백 개의 스레드를 동시에 실행할 수 있도록 설계될 수 있다. 즉, 각 GPU 아키텍처에 대해 여러 개의 SM이 있어 수천 개의 스레드를 동시에 실행할 수 있다. Warp는 SM에서 실행되는 기본 단위로 32개의 스레드를 관리할 수 있다. Warp에 속한 모든 스레드는 동일한 명령을 실행할 수 있다. 커널 기능이 시작되면 그리드의 스레드 블록이 SM으로 나뉠 수 있다. 각 블록의 스레드는 워프로 나누어지며, 하나의 워프는 32개의 스레드로 구성될 수 있다.
CUDA를 사용하여 GPU 환경에서 개발된 프로그램은 많은 데이터를 병렬로 효과적으로 처리할 수 있다. 특히, 서버에서는 GPU 아키텍처를 사용하여 많은 사용자의 인증 및 메시지 무결성을 보다 효율적으로 처리할 수 있다. 그뿐만 아니라 GPU는 많은 스레드를 사용하여 계산을 병렬 처리할 수 있다(예를 들어, 대량 데이터의 암호화/복호화 병렬 처리 또는 데이터 무결성을 확인하기 위한 해시 연산의 병렬 처리 등).
도 12는 본 발명에 따른 GPU 환경에서의 SHA-3 최적화의 개념을 설명하는 도면이다.
도 12를 참조하면, 그래픽 처리 장치(130)는 표준 SHA-3 구현에 있어 메모리 접근 횟수를 최소화하는 방식을 적용하여 메모리 접근을 최적화할 수 있다. 특히, GPU 아키텍처에는 전역, 공유 및 상수의 3가지 메모리 영역이 존재하며, 각 메모리 접근이 많을수록 이를 처리하는데 소요되는 시간 역시 증가할 수 있다.
보다 구체적으로, 그래픽 처리 장치(130)는 기존 F 함수의 내부 구조 순서의 변경 방안을 통해 메모리 접근을 최적화할 수 있다. SHA-3 표준 구현에서 F 함수의 5가지 내부 과정은 θ, ρ & π, χ 및 ι의 순서로 구성될 수 있다. 그래픽 처리 장치(130)는 SHA-3 내부 과정을 θ & ρ, χ 및 ι 과정으로 처리할 수 있다. 즉, 그래픽 처리 장치(130)는 π 과정을 인덱싱으로 처리하여 메모리 접근 횟수를 최소화할 수 있다. 그래픽 처리 장치(130)는 π 과정을 인덱싱을 통해 처리함으로써
Figure pat00005
및 ρ 과정들을 결합하여 메모리 접근 횟수를 최소화할 수 있다.
또한, 그래픽 처리 장치(130)는 F 함수의 동작 과정에서 사용되는 메모리 테이블을 제거하는 방안을 통해 메모리 접근을 최적화할 수 있다. ρ 과정의 offset은 각 레인의 (x,y)값에 따라 고정될 수 있으며, 이에 따라 ρ-offset 값을 테이블로 저장하지 않고 직접 인덱싱을 통해 해결할 수 있다. 또한, 그래픽 처리 장치(130)는 π 과정을 인덱싱으로 처리하여 기존 π 값 테이블을 저장하지 않을 수 있다. 따라서, 그래픽 처리 장치(130)는 ρ 및 π값의 테이블을 저장하지 않고, 직접 인덱싱을 통해 동작 과정에서 메모리 접근 횟수를 50 * 25번 제거할 수 있다. 추가로 그래픽 처리 장치(130)는 ι 연산 방안에서도 직접 인덱싱을 통해 처리할 수 있다. ι 과정은 고정된 내부 상태 위치에 고정된 값을 XOR 하는 연산으로, 해당 값 또한 테이블 제거 및 메모리 접근 과정을 제거할 수 있다. 결과적으로, 그래픽 처리 장치(130)는 ρ, π 및 ι 연산 테이블을 모두 제거함으로써 표준 구현 대비 75 * 25번의 메모리 접근 횟수를 제거할 수 있다.
또한, 그래픽 처리 장치(130)는 F 함수에 대한 인라인 어셈블리 구현 방안을 통해 메모리 접근을 최적화할 수 있다(도 12의 그림 (c) 참조). 예를 들어, 그래픽 처리 장치(130)는 CUDA C를 활용하여 GPU 아키텍처에서의 SHA-3 구현을 PTX 어셈블리를 통해 구현할 수 있다. 특히, 그래픽 처리 장치(130)는 SHA-3 F 함수의 내부 과정 연산을 PTX 어셈블리 구현을 통해 처리할 수 있다.
도 13은 본 발명에 관한 성능 비교 실험 결과를 설명하는 도면이다.
도 13을 참조하면, 그래픽 처리 장치(130)는 SHA-3 Keccak 알고리즘의 내부 함수 순서를 변경하여 메모리 접근 횟수 및 메모리 저장량 최적화 방안을 제공할 수 있다. 특히, 해당 방안은 메모리 접근에 많은 시간이 소모되는 GPU 장치에 효과적일 수 있다. 도 13의 경우, 본 발명에 따른 그래픽 처리 방법의 실험 결과에 해당할 수 있다.
본 발명을 적용한 결과, 현재 존재하는 SHA-3 Keccak(512-bit) 구현 중 Dat et al. 이 제안한 최적화 방안(T. N. Dat, K. Iwai, and T. Kurokawa, “Implementation of high speed hash function keccak using CUDA on GTX 1080,” in Fifth International Symposium on Computing and Networking, CANDAR 2017, Aomori, Japan, November 19-22, 2017, pp. 475-481, IEEE Computer Society, 2017.)보다 최대 49.73%의 성능 개선이 존재한다.
그뿐만 아니라 Dat et al.의 실험은 GTX 1080 장비에서의 실험 측정 결과이며, 본 발명의 결과 실험은 GTX 1070 장비에서의 실험이다. GTX 1070과 GTX 1080 장비에서의 하드웨어적 성능 차이가 존재하며, GTX 1070 장비에서의 하드웨어적 성능이 비교적 낮다. 하지만, 본 발명 방안을 적용하는 경우 하드웨어적 성능 차이를 극복할 뿐만 아니라 더 높은 성능 수치를 보임으로써 해당 방안이 GPU 장비에서 효과적인 SHA-3 메모리 접근 최적화 방안임을 증명할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 그래픽 처리 시스템
110: 사용자 단말 130: 그래픽 처리 장치
150: 데이터베이스
210: 프로세서 230: 메모리
250: 사용자 입출력부 270: 네트워크 입출력부
310: F 함수 제어부 330: ρ 과정 처리부
350: π 과정 처리부 370: 제어부

Claims (13)

  1. θ 과정, ρ 과정, π 과정, χ 과정 및 ι 과정으로 구성된 F 함수를 통해 구현된 SHA-3 처리를 위한 그래픽 처리 장치에 있어서,
    상기 F 함수의 처리 과정에서 상기 θ 과정 및 상기 ρ 과정을 동시에 진행하고, 상기 θ 과정에서 상기 π 과정을 내재적으로 처리하는 F 함수 제어부;
    상기 ρ 과정에서 레인의 회전을 수행할 때 사용되는 ρ 테이블 없이 직접 인덱싱 기반의 회전 값을 할당하여 상기 레인의 회전을 수행하는 ρ 과정 처리부; 및
    상기 ρ 과정의 진행 중에 상기 회전의 전후에 상기 레인의 위치를 변경할 때 위치 값을 직접 할당하여 상기 레인의 위치를 변경하는 π 과정 처리부;를 포함하는 SHA-3 처리를 위한 그래픽 처리 장치.
  2. 제1항에 있어서, 상기 F 함수 제어부는
    상기 θ 과정 및 상기 ρ 과정을 동시에 진행한 후 상기 χ 과정 및 ι 과정을 순차적으로 진행하는 것을 특징으로 하는 SHA-3 처리를 위한 그래픽 처리 장치.
  3. 제2항에 있어서, 상기 F 함수 제어부는
    Keccak 알고리즘에 상기 θ 과정 및 상기 ρ 과정의 동시 진행을 적용하는 것을 특징으로 하는 SHA-3 처리를 위한 그래픽 처리 장치.
  4. 제1항에 있어서, 상기 ρ 과정 처리부는
    상기 ρ 과정의 직접 인덱싱을 위해 PTX (Parallel Thread eXecution) 인라인 어셈블리를 통해 상기 회전 값을 할당하는 것을 특징으로 하는 SHA-3 처리를 위한 그래픽 처리 장치.
  5. 제4항에 있어서, 상기 ρ 과정 처리부는
    상기 회전 값의 할당을 통해 상기 ρ 테이블의 메모리 참조를 제거하여 메모리 접근을 줄이는 것을 특징으로 하는 SHA-3 처리를 위한 그래픽 처리 장치.
  6. 제1항에 있어서, 상기 π 과정 처리부는
    상기 ρ 과정의 진행 과정에서 내재적으로 처리되고 PTX (Parallel Thread eXecution) 인라인 어셈블리를 통해 상기 위치 값을 직접 할당하는 것을 특징으로 하는 SHA-3 처리를 위한 그래픽 처리 장치.
  7. 제6항에 있어서, 상기 π 과정 처리부는
    상기 위치 값의 할당을 통해 π 테이블의 메모리 참조를 제거하여 메모리 접근을 줄이는 것을 특징으로 하는 SHA-3 처리를 위한 그래픽 처리 장치.
  8. θ 과정, ρ 과정, π 과정, χ 과정 및 ι 과정으로 구성된 F 함수를 통해 구현된 SHA-3 처리를 위한 그래픽 처리 방법에 있어서,
    상기 F 함수의 처리 과정에서 상기 θ 과정 및 상기 ρ 과정을 동시에 진행하고, 상기 θ 과정에서 상기 π 과정을 내재적으로 처리하는 F 함수 제어단계;
    상기 ρ 과정에서 레인의 회전을 수행할 때 사용되는 ρ 테이블 없이 직접 인덱싱 기반의 회전 값을 할당하여 상기 레인의 회전을 수행하는 ρ 과정 처리단계; 및
    상기 ρ 과정의 진행 중에 상기 회전의 전후에 상기 레인의 위치를 변경할 때 위치 값을 직접 할당하여 상기 레인의 위치를 변경하는 π 과정 처리단계;를 포함하는 SHA-3 처리를 위한 그래픽 처리 방법.
  9. 제8항에 있어서, 상기 F 함수 제어단계는
    상기 θ 과정 및 상기 ρ 과정을 동시에 진행한 후 상기 χ 과정 및 ι 과정을 순차적으로 진행하는 단계를 포함하는 것을 특징으로 하는 SHA-3 처리를 위한 그래픽 처리 방법.
  10. 제9항에 있어서, 상기 F 함수 제어단계는
    Keccak 알고리즘에 상기 θ 과정 및 상기 ρ 과정의 동시 진행을 적용하는 단계를 포함하는 것을 특징으로 하는 SHA-3 처리를 위한 그래픽 처리 방법.
  11. 제8항에 있어서, 상기 ρ 과정 처리단계는
    상기 ρ 과정의 직접 인덱싱을 위해 PTX (Parallel Thread eXecution) 인라인 어셈블리를 통해 상기 회전 값을 할당하는 단계를 포함하는 것을 특징으로 하는 SHA-3 처리를 위한 그래픽 처리 방법.
  12. 제11항에 있어서, 상기 ρ 과정 처리단계는
    상기 회전 값의 할당을 통해 상기 ρ 테이블의 메모리 참조를 제거하여 메모리 접근을 줄이는 단계를 포함하는 것을 특징으로 하는 SHA-3 처리를 위한 그래픽 처리 방법.
  13. 제8항에 있어서, 상기 π 과정 처리단계는
    상기 ρ 과정의 진행 과정에서 내재적으로 처리되고 PTX (Parallel Thread eXecution) 인라인 어셈블리를 통해 상기 위치 값을 직접 할당하는 단계를 포함하는 것을 특징으로 하는 SHA-3 처리를 위한 그래픽 처리 방법.
KR1020210172208A 2021-12-03 2021-12-03 Sha-3 처리를 위한 그래픽 처리 장치 및 방법 KR20230083836A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210172208A KR20230083836A (ko) 2021-12-03 2021-12-03 Sha-3 처리를 위한 그래픽 처리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210172208A KR20230083836A (ko) 2021-12-03 2021-12-03 Sha-3 처리를 위한 그래픽 처리 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20230083836A true KR20230083836A (ko) 2023-06-12

Family

ID=86770265

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210172208A KR20230083836A (ko) 2021-12-03 2021-12-03 Sha-3 처리를 위한 그래픽 처리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20230083836A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101957855B1 (ko) 2016-11-24 2019-03-13 성균관대학교 산학협력단 스크래치패드에 데이터 프리페치를 통해 gpu 메모리 접근 최적화를 위한 메모리 제어 장치 및 그 메모리 제어 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101957855B1 (ko) 2016-11-24 2019-03-13 성균관대학교 산학협력단 스크래치패드에 데이터 프리페치를 통해 gpu 메모리 접근 최적화를 위한 메모리 제어 장치 및 그 메모리 제어 방법

Similar Documents

Publication Publication Date Title
US11516008B2 (en) Efficient post-quantum secure software updates tailored to resource-constrained devices
US11424907B2 (en) Countermeasures for side-channel attacks on protected sign and key exchange operations
US20220014363A1 (en) Combined post-quantum security utilizing redefined polynomial calculation
US20200218787A1 (en) Avoiding data exchange in gate operation for quantum computing gates on a chip
CN110968554A (zh) 一种基于文件链分块的区块链存储方法、存储系统及存储介质
US11995184B2 (en) Low-latency digital signature processing with side-channel security
CN110266484B (zh) 一种数据加密方法、装置、设备及介质
US20220413807A1 (en) Secure random number generation system, secure computation apparatus, secure random number generation method, and program
US11625225B2 (en) Applications of and techniques for quickly computing a modulo operation by a Mersenne or a Fermat number
KR20230083836A (ko) Sha-3 처리를 위한 그래픽 처리 장치 및 방법
Eduardo et al. Speculative Encryption on {GPU} Applied to Cryptographic File Systems
Chang et al. Vectorized big integer operations for cryptosystems on the intel mic architecture
JP5953808B2 (ja) 乱数処理装置、乱数処理方法、及びプログラム
EP3758288A1 (en) Digital signature verification engine for reconfigurable circuit devices
US20220083651A1 (en) Protection of authentication tag computation against power and electromagnetic side-channel attacks
Cao et al. Generalized attack on ECDSA: known bits in arbitrary positions
CN111931202A (zh) 用于分布式系统的加密存储方法、终端设备和存储介质
JP6097154B2 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
Earanky et al. GPU-acceleration of blowfish cryptographic algorithm
US11442633B2 (en) Method, electronic device and computer program product for storage management
US9183211B1 (en) Cooperative storage of shared files in a parallel computing system with dynamic block size
US11792004B2 (en) Polynomial multiplication for side-channel protection in cryptography
Lowden et al. Design and performance analysis of efficient KECCAK tree hashing on GPU architectures
Pirahandeh et al. High performance GPU‐based parity computing scheduler in storage applications
US20240192870A1 (en) Data transform acceleration

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E902 Notification of reason for refusal
E601 Decision to refuse application