KR102365263B1 - 하드웨어 기반의 gpu 메모리 보호를 위한 효율적인 암호화 방법 및 장치 - Google Patents
하드웨어 기반의 gpu 메모리 보호를 위한 효율적인 암호화 방법 및 장치 Download PDFInfo
- Publication number
- KR102365263B1 KR102365263B1 KR1020200158103A KR20200158103A KR102365263B1 KR 102365263 B1 KR102365263 B1 KR 102365263B1 KR 1020200158103 A KR1020200158103 A KR 1020200158103A KR 20200158103 A KR20200158103 A KR 20200158103A KR 102365263 B1 KR102365263 B1 KR 102365263B1
- Authority
- KR
- South Korea
- Prior art keywords
- counter
- memory
- gpu
- common
- encryption
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 237
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000008569 process Effects 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 claims description 21
- 238000012546 transfer Methods 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 22
- 230000015556 catabolic process Effects 0.000 description 10
- 238000006731 degradation reaction Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 9
- 230000006872 improvement Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000001010 compromised effect Effects 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 235000009499 Vanilla fragrans Nutrition 0.000 description 2
- 244000263375 Vanilla tahitensis Species 0.000 description 2
- 235000012036 Vanilla tahitensis Nutrition 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005201 scrubbing Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
Abstract
Description
도 2는 일반적인 카운터 모드 암호화를 설명하기 위한 도면이다.
도 3은 일반적인 재생 공격 보호를 위한 무결성 트리 구조를 나타내는 도면이다.
도 4는 일반적인 기준 비보안 GPU에 비해 SC 128 지원 GPU의 성능 저하를 나타내는 도면이다.
도 5는 기존의 카운터 캐시 누락률을 비교하여 나타내는 도면이다.
도 6은 일 실시예에 따른 GPU 벤치마크를 분석 결과를 나타내는 도면이다.
도 7은 일 실시예에 따른 전체 실행 후 균일하게 업데이트된 청크에 대한 구별되는 카운터 값의 수를 나타내는 도면이다.
도 8은 일 실시예에 따른 실제 GPU 애플리케이션에 대해 균일하게 업데이트 된 데이터 청크의 비율을 나타내는 도면이다.
도 9는 일 실시예에 따른 메모리 보안 GPU 구조를 나타내는 도면이다.
도 10은 일 실시예에 따른 공통 카운터 보호 방식의 실행 흐름을 나타내는 도면이다.
도 11은 일 실시예에 따른 LLC 누락 처리 흐름을 나타내는 도면이다.
Claims (15)
- 컴퓨터 장치를 통해 수행되는 하드웨어 기반의 GPU 메모리 보호를 위한 암호화 방법에 있어서,
GPU가 사용하는 GPU 메모리의 쓰기 패턴에 따라 암호화 과정에서 사용하는 카운터를 공통 카운터를 기반으로 사용하는 단계
를 포함하고,
상기 공통 카운터는 다수 개의 메모리 청크가 공유하는 공통 카운터 값에 메모리 주소를 매핑하는 것을 특징으로 하는, 암호화 방법. - 제1항에 있어서,
상기 공통 카운터를 통해 카운터 캐시 누락으로 인해 발생하는 성능 오버헤드를 제거하는 것
을 특징으로 하는, 암호화 방법. - 제1항에 있어서,
상기 GPU는 각 컨텍스트에 대해 공통 카운터 세트를 사용하는 것
을 특징으로 하는, 암호화 방법. - 제1항에 있어서,
LLC(Last-Level Cache) 누락 시, 요청된 주소가 상기 공통 카운터 중 하나인 메모리 청크에 대한 주소인 경우 암호화 엔진은 누락 처리 요청에 대한 공통 카운터 값 중 하나를 사용함에 따라 요청된 카운터가 상기 공통 카운터에 제공되는 경우에는 카운터 캐시에 접속하지 않는 것
을 특징으로 하는, 암호화 방법. - 제1항에 있어서,
상기 카운터를 공통 카운터를 기반으로 사용하는 단계는,
각 컨텍스트에 별도의 메모리 암호화 키가 제공되는 단계
를 포함하고,
상기 각 컨텍스트에 별도의 메모리 암호화 키가 제공되는 단계는,
상기 GPU가 컨텍스트를 생성하면, 새로운 컨텍스트에 대한 메모리 암호화 키가 생성되고, 메모리 암호화 엔진은 요청된 데이터의 주소의 컨텍스트에 따라 메모리 암호화 키를 변경하는 것
을 특징으로 하는, 암호화 방법. - 제1항에 있어서,
상기 카운터를 공통 카운터를 기반으로 사용하는 단계는,
상기 GPU는 요청된 주소가 공통 카운터에 의해 제공될 수 있는지 여부를 암호화 엔진에 알려주는 공통 카운터 상태 맵(Common Counter Status Map, CCSM)이라는 상태 표를 유지하는 것
을 특징으로 하는, 암호화 방법. - 제1항에 있어서,
상기 카운터를 공통 카운터를 기반으로 사용하는 단계는,
상기 GPU가 컨텍스트를 실행할 때, 빠른 액세스를 위해 공통 카운터 세트를 온칩 스토리지에 저장하는 것
을 특징으로 하는, 암호화 방법. - 제1항에 있어서,
상기 카운터를 공통 카운터를 기반으로 사용하는 단계는,
호스트 메모리에서 새 데이터를 복사하면 CPU 애플리케이션과 상기 GPU 사이의 공유 키로 암호화된 암호문서로 상기 GPU에 도착하고, 상기 GPU는 암호화된 데이터를 해독하고 상기 GPU 메모리는 새 데이터로 업데이트되는 단계; 및
데이터 전송 후, 상기 공통 카운터는 업데이트된 메모리 청크의 실제 카운터 값을 스캔하여 식별하는 단계
를 포함하는, 암호화 방법. - 제1항에 있어서,
상기 카운터를 공통 카운터를 기반으로 사용하는 단계는,
커널 실행이 완료되면 커널에 의해 업데이트된 메모리 페이지의 모든 카운터 값을 체크하고, 카운터를 스캔하면 카운터가 같은 메모리 청크가 식별되며, 업데이트된 메모리에 액세스하는 다음 커널 실행에 대한 공통 카운트 상태 맵(CCSM)이 업데이트되는 것
을 특징으로 하는, 암호화 방법. - 하드웨어 기반의 GPU 메모리 보호를 위한 암호화 장치에 있어서,
GPU가 사용하는 GPU 메모리의 쓰기 패턴에 따라 암호화 과정에서 사용하는 카운터를 공통 카운터를 기반으로 사용하는 공통 카운터 기반 암호화부
를 포함하고,
상기 공통 카운터는 다수 개의 메모리 청크가 공유하는 공통 카운터 값에 메모리 주소를 매핑하는 것을 특징으로 하는, 암호화 장치. - 제10항에 있어서,
상기 공통 카운터를 통해 카운터 캐시 누락으로 인해 발생하는 성능 오버헤드를 제거하는 것
을 특징으로 하는, 암호화 장치. - 제10항에 있어서,
상기 GPU는 각 컨텍스트에 대해 공통 카운터 세트를 사용하는 것
을 특징으로 하는, 암호화 장치. - 제10항에 있어서,
LLC(Last-Level Cache) 누락 시, 요청된 주소가 상기 공통 카운터 중 하나인 메모리 청크에 대한 주소인 경우 암호화 엔진은 누락 처리 요청에 대한 공통 카운터 값 중 하나를 사용함에 따라 요청된 카운터가 상기 공통 카운터에 제공되는 경우에는 카운터 캐시에 접속하지 않는 것
을 특징으로 하는, 암호화 장치. - 제10항에 있어서,
상기 공통 카운터 기반 암호화부는,
각 컨텍스트에 별도의 메모리 암호화 키가 제공되고, 상기 GPU가 컨텍스트를 생성하면, 새로운 컨텍스트에 대한 메모리 암호화 키가 생성되고, 메모리 암호화 엔진은 요청된 데이터의 주소의 컨텍스트에 따라 메모리 암호화 키를 변경하는 것
을 특징으로 하는, 암호화 장치. - 제10항에 있어서,
상기 공통 카운터 기반 암호화부는,
상기 GPU는 요청된 주소가 공통 카운터에 의해 제공될 수 있는지 여부를 암호화 엔진에 알려주는 공통 카운터 상태 맵(Common Counter Status Map, CCSM)이라는 상태 표를 유지하는 것
을 특징으로 하는, 암호화 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200158103A KR102365263B1 (ko) | 2020-11-23 | 2020-11-23 | 하드웨어 기반의 gpu 메모리 보호를 위한 효율적인 암호화 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200158103A KR102365263B1 (ko) | 2020-11-23 | 2020-11-23 | 하드웨어 기반의 gpu 메모리 보호를 위한 효율적인 암호화 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102365263B1 true KR102365263B1 (ko) | 2022-02-21 |
Family
ID=80475010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200158103A Active KR102365263B1 (ko) | 2020-11-23 | 2020-11-23 | 하드웨어 기반의 gpu 메모리 보호를 위한 효율적인 암호화 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102365263B1 (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116611124A (zh) * | 2023-05-25 | 2023-08-18 | 南京恒木兴信息科技有限公司 | 一种gpu可信执行环境构建方法、系统及数据传输方法 |
KR20230162197A (ko) * | 2022-05-20 | 2023-11-28 | 고려대학교 산학협력단 | 하드웨어 기반 격리 실행을 제공하는 마이크로 아키텍쳐 |
CN117521167A (zh) * | 2023-11-15 | 2024-02-06 | 上海交通大学 | 高性能异构安全内存 |
US12045337B2 (en) | 2021-05-21 | 2024-07-23 | Samsung Electronics Co., Ltd. | Apparatus and method for providing secure execution environment for NPU |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180071514A (ko) * | 2016-12-20 | 2018-06-28 | 에스케이하이닉스 주식회사 | 패킷을 부호화하는 장치 및 이를 포함하는 메모리 네트워크에서의 라우팅 방법 |
KR20190142910A (ko) * | 2018-06-19 | 2019-12-30 | 한국과학기술원 | 하드웨어 보안 기술 기반 gpu 컴퓨팅 보호 기법 |
-
2020
- 2020-11-23 KR KR1020200158103A patent/KR102365263B1/ko active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180071514A (ko) * | 2016-12-20 | 2018-06-28 | 에스케이하이닉스 주식회사 | 패킷을 부호화하는 장치 및 이를 포함하는 메모리 네트워크에서의 라우팅 방법 |
KR20190142910A (ko) * | 2018-06-19 | 2019-12-30 | 한국과학기술원 | 하드웨어 보안 기술 기반 gpu 컴퓨팅 보호 기법 |
Non-Patent Citations (8)
Title |
---|
B. Rogers, S. Chhabra, M. Prvulovic, and Y. Solihin, "Using Address Independent Seed Encryption and Bonsai Merkle Trees to Make Secure Processors OS- and Performance-Friendly," in International Symposium on Microarchitecture (MICRO), 2007. |
C. Yan, D. Englender, M. Prvulovic, B. Rogers, and Y. Solihin, "Improving Cost, Performance, and Security of Memory Encryption and Authentication," in International Symposium on Computer Architecture (ISCA), 2006. |
G. Saileshwar, P. J. Nair, P. Ramrakhyani, W. Elsasser, and M. K. Qureshi, "Synergy: Rethinking secure-memory design for errorcorrecting memories," in International Symposium on High Performance Computer Architecture (HPCA), 2018. |
G. Saileshwar, P. J. Nair, P. Ramrakhyani, W. Elsasser, J. A. Joao, and M. K. Qureshi, "Morphable Counters: Enabling Compact Integrity Trees For Low-Overhead Secure Memories," in International Symposium on Microarchitecture (MICRO), 2018. |
Kazi Abu Zubair 외 1인, ‘Ultra-Low Overhead and Recovery Time for Secure Non-Volatile Memories’, 2019 ACM/IEEE 46th Annual International Symposium on Computer Architecture(ISCA), 2019.06.26. * |
O. Villa, M. Stephenson, D. Nellans, and S. W. Keckler, "NVBit: A Dynamic Binary Instrumentation Framework for NVIDIA GPUs," in International Symposium on Microarchitecture (MICRO), 2019. |
R. C. Moerkle, "Protocols for Public Key Cryptosystems," in IEEE Symposium on Security and privacy (S&P), 1980. |
S. Volos, K. Vaswani, and R. Bruno, "Graviton: Trusted Execution Environments on GPUs," in Operating Systems Design and Implementation (OSDI), 2018. |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12045337B2 (en) | 2021-05-21 | 2024-07-23 | Samsung Electronics Co., Ltd. | Apparatus and method for providing secure execution environment for NPU |
KR20230162197A (ko) * | 2022-05-20 | 2023-11-28 | 고려대학교 산학협력단 | 하드웨어 기반 격리 실행을 제공하는 마이크로 아키텍쳐 |
KR102698638B1 (ko) | 2022-05-20 | 2024-08-26 | 고려대학교 산학협력단 | 하드웨어 기반 격리 실행을 제공하는 마이크로 아키텍쳐 |
CN116611124A (zh) * | 2023-05-25 | 2023-08-18 | 南京恒木兴信息科技有限公司 | 一种gpu可信执行环境构建方法、系统及数据传输方法 |
CN116611124B (zh) * | 2023-05-25 | 2024-04-05 | 南京恒木兴信息科技有限公司 | 一种gpu可信执行环境构建方法、系统及数据传输方法 |
CN117521167A (zh) * | 2023-11-15 | 2024-02-06 | 上海交通大学 | 高性能异构安全内存 |
CN117521167B (zh) * | 2023-11-15 | 2025-03-25 | 上海交通大学 | 高性能异构安全内存 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11088846B2 (en) | Key rotating trees with split counters for efficient hardware replay protection | |
KR102365263B1 (ko) | 하드웨어 기반의 gpu 메모리 보호를 위한 효율적인 암호화 방법 및 장치 | |
US11651085B2 (en) | Cryptographic memory ownership table for secure public cloud | |
US11520611B2 (en) | Secure public cloud using extended paging and memory integrity | |
Taassori et al. | VAULT: Reducing paging overheads in SGX with efficient integrity verification structures | |
KR101880075B1 (ko) | 중복 제거 기반 데이터 보안 | |
Ren et al. | Design space exploration and optimization of path oblivious ram in secure processors | |
US11775177B2 (en) | Integrity tree for memory integrity checking | |
EP3274848B1 (en) | Providing enhanced replay protection for a memory | |
EP3355232B1 (en) | Input/output data encryption | |
KR101224322B1 (ko) | 마이크로제어기 내의 데이터 보안 처리를 위한 방법, 장치 및 집적 회로 | |
US9135450B2 (en) | Systems and methods for protecting symmetric encryption keys | |
JP4876053B2 (ja) | トラステッド・デバイス集積回路 | |
CN110945509B (zh) | 用于控制对受保护存储器区域中数据的访问的设备和方法 | |
US20180011802A1 (en) | Selective memory encryption | |
US20180095899A1 (en) | Multi-crypto-color-group vm/enclave memory integrity method and apparatus | |
KR102105760B1 (ko) | 하드웨어 보안 기술 기반 gpu 컴퓨팅 보호 기법 | |
Na et al. | Common counters: Compressed encryption counters for secure GPU memory | |
US11755753B2 (en) | Mechanism to enable secure memory sharing between enclaves and I/O adapters | |
CN107526974B (zh) | 一种信息密码保护装置和方法 | |
CN107430555B (zh) | 用于存储器保护的高速缓存和数据组织 | |
Yuan et al. | Pssm: Achieving secure memory for gpus with partitioned and sectored security metadata | |
Götzfried et al. | HyperCrypt: Hypervisor-based encryption of kernel and user space | |
Han et al. | A novel covert channel attack using memory encryption engine cache | |
Heo et al. | Hardware-assisted trusted memory disaggregation for secure far memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20201123 |
|
PA0201 | Request for examination | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20211129 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20220214 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20220216 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20220216 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration |