KR20180071514A - 패킷을 부호화하는 장치 및 이를 포함하는 메모리 네트워크에서의 라우팅 방법 - Google Patents
패킷을 부호화하는 장치 및 이를 포함하는 메모리 네트워크에서의 라우팅 방법 Download PDFInfo
- Publication number
- KR20180071514A KR20180071514A KR1020160174225A KR20160174225A KR20180071514A KR 20180071514 A KR20180071514 A KR 20180071514A KR 1020160174225 A KR1020160174225 A KR 1020160174225A KR 20160174225 A KR20160174225 A KR 20160174225A KR 20180071514 A KR20180071514 A KR 20180071514A
- Authority
- KR
- South Korea
- Prior art keywords
- node
- packet
- secret key
- unit
- path
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims 1
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 12
- 230000004044 response Effects 0.000 description 12
- 230000015556 catabolic process Effects 0.000 description 4
- 238000006731 degradation reaction Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 229920006395 saturated elastomer Polymers 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000009499 grossing Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/067—Network architectures or network communication protocols for network security for supporting key management in a packet data network using one-time keys
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
- H04L9/3228—One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Storage Device Security (AREA)
Abstract
본 기술에 의한 장치는 각각 패킷을 송신 또는 수신하는 노드로서 기능하며 서로 네트워크로 연결된 프로세서와 메모리 장치 중 어느 하나의 장치로서, 목표 노드와의 사이에 공유하는 일회용 비밀키를 저장하는 키 저장부; 일회용 비밀키에 따라 목표 노드에 송신할 패킷을 암호화하는 암호화부; 및 일회용 비밀키를 이용하여 장치에 수신된 패킷을 복호화하는 복호화부를 포함한다.
Description
본 발명은 보안을 위해 패킷을 암호화하는 장치와 이를 포함하는 메모리 네트워크에서 패킷을 라우팅하는 방법에 관한 것이다.
메모리 장치와 호스트(메모리 컨트롤러 또는 중앙 처리 장치(CPU)) 사이의 채널에 물리적으로 접근하여 호스트와 메모리 장치 사이에 송수신되는 데이터를 가로채는 방식으로 보안을 위협받을 수 있다.
도 1은 종래의 호스트와 메모리 장치 사이에 전달되는 데이터 구조이다.
도 1A는 명령과 주소는 평문으로 하고 데이터만 암호화하는 방식이다.
이 경우 데이터 자체는 보호할 수 있으나 주소가 평문이어서 메모리 장치에 대한 접근 패턴이 모두 노출되는 위험이 있다.
도 1B는 종래의 패킷 인터페이스를 채용하는 메모리 장치와 호스트 사이에 송수신되는 패킷 구조이다.
도 1B의 경우 경로 정보를 포함하는 목표 노드(dest)를 포함하여, 요청 종류(req), 주소와 데이터를 포함하는 페이로드 및 기타 필드(etc)를 포함한 패킷 전체를 암호화하는 방식이다.
이 경우 패킷을 수신한 메모리 장치의 경우 패킷의 목적 노드를 식별하기 위하여 수신한 패킷을 다시 복호화해야 한다.
아울러 복호화한 패킷의 목적지가 현재 노드가 아니면 다른 노드로 다시 라우팅하기 전에 이를 다시 암호화해야 한다.
이때 암호화 및 복호화는 디피-헬만 알고리즘과 같은 부호화 알고리즘을 처음부터 새로 적용하는 것을 의미한다.
도 1B의 경우 모든 패킷에 대해서 암호화 및 복호화를 수행해야 하므로 메모리 장치의 읽기/쓰기 성능의 저하가 커진다.
이에 따라 메모리 장치의 읽기/쓰기 성능이 저하되는 것을 최소화할 수 있는 패킷 호화 기술과 함께 패킷 데이터에 대한 보안뿐만 아니라 메모리 장치에 대한 접근 패턴을 보호하기 위한 기술이 요구되고 있다.
본 기술은 경로 정보를 포함한 패킷을 효율적으로 부호화할 수 있는 장치와 이를 포함하는 메모리 네트워크에서의 라우팅 방법을 제공한다.
본 기술은 미리 생성된 일회용 비밀키를 이용하여 패킷을 암호화 및 복호화함으로써 암호화 및 복호화 시간으로 인한 성능 저하를 최소화한다.
본 기술은 메모리 네트워크에서 목표 노드를 숨길 수 있는 라우팅 방법을 제공한다.
본 기술은 메모리 네트워크에서 전달되는 패킷의 내용이 유출되지 않도록 하는 패킷 구조를 제공한다.
본 발명의 일 실시예에 의한 장치는 각각 패킷을 송신 또는 수신하는 노드로서 기능하며 서로 네트워크로 연결된 프로세서와 메모리 장치 중 어느 하나의 장치로서, 목표 노드와의 사이에 공유하는 일회용 비밀키를 저장하는 키 저장부; 일회용 비밀키에 따라 목표 노드에 송신할 패킷을 암호화하는 암호화부; 및 일회용 비밀키를 이용하여 장치에 수신된 패킷을 복호화하는 복호화부를 포함한다.
본 발명의 일 실시예에 의한 라우팅 방법은 프로세서와 메모리 장치가 네트워크로 연결되어 각각 읽기 또는 쓰기 요청을 포함하는 요청 패킷을 송신 또는 수신하는 노드로 동작하는 경우 요청 패킷을 생성하는 시작 노드에서 요청 패킷의 전달 경로를 설정하는 라우팅 방법으로서, 시작 노드와 요청이 수행될 목표 노드가 아닌 제 1 노드를 선택하는 단계; 목표 노드와 제 1 노드 중 먼저 경유할 경유 노드와 최종 도착할 최종 노드를 선택하는 단계; 시작 노드에서 경유 노드까지의 제 1 경로를 설정하는 단계; 경유 노드에서 최종 노드까지의 제 2 경로를 설정하는 단계; 및 제 1 경로와 제 2 경로를 포함하는 요청 패킷의 전달 경로를 생성하는 단계를 포함한다.
본 기술을 통해 패킷의 부호화를 효율적으로 수행하여 부호화로 인한 장치의 성능 저하를 최소화할 수 있다. 본 기술을 통해 목표 노드를 알 수 없는 라우팅 방법을 제공하여 보안 성능을 향상시킨다.
도 1은 종래의 메모리 네트워크에서 사용하는 패킷의 데이터 구조.
도 2는 본 발명의 일 실시예에 의한 메모리 네트워크와 라우팅 방법을 설명하는 설명도.
도 3 내지 도 5는 본 발명의 일 실시예에 의한 장치에 제공되는 패킷의 데이터 구조.
도 6은 본 발명의 일 실시예에 의한 메모리 장치의 상세 블록도.
도 7은 본 발명의 일 실시예에 의한 CPU의 상세 블록도.
도 8은 도 6의 키 저장부의 상세 블록도.
도 9는 도 6의 암호화부의 상세 블록도.
도 10은 도 6의 복호화부의 상세 블록도.
도 11은 본 발명의 일 실시예에 의한 경로 정보 생성 방법을 설명하는 순서도.
도 12는 본 발명의 일 실시예에 의한 메모리 장치의 읽기 또는 쓰기 동작을 설명하는 순서도.
도 13은 본 발명의 일 실시예에 의한 메모리 장치의 읽기 응답 동작을 설명하는 순서도.
도 14는 본 발명의 일 실시예에 의한 메모리 장치의 암호화 동작을 설명하는 순서도.
도 2는 본 발명의 일 실시예에 의한 메모리 네트워크와 라우팅 방법을 설명하는 설명도.
도 3 내지 도 5는 본 발명의 일 실시예에 의한 장치에 제공되는 패킷의 데이터 구조.
도 6은 본 발명의 일 실시예에 의한 메모리 장치의 상세 블록도.
도 7은 본 발명의 일 실시예에 의한 CPU의 상세 블록도.
도 8은 도 6의 키 저장부의 상세 블록도.
도 9는 도 6의 암호화부의 상세 블록도.
도 10은 도 6의 복호화부의 상세 블록도.
도 11은 본 발명의 일 실시예에 의한 경로 정보 생성 방법을 설명하는 순서도.
도 12는 본 발명의 일 실시예에 의한 메모리 장치의 읽기 또는 쓰기 동작을 설명하는 순서도.
도 13은 본 발명의 일 실시예에 의한 메모리 장치의 읽기 응답 동작을 설명하는 순서도.
도 14는 본 발명의 일 실시예에 의한 메모리 장치의 암호화 동작을 설명하는 순서도.
이하에서는 첨부한 도면을 참조하여 발명의 실시예를 개시한다.
도 2는 본 발명의 일 실시예에 의한 메모리 네트워크와 라우팅 방법을 설명하는 설명도이다.
본 실시예에서 CPU(200)는 메모리 네트워크에 패킷을 송신하며 송신된 패킷은 메모리 네트워크 내에 연결된 다수의 메모리 장치(100, R0 - R15) 사이에 연결된 경로를 따라 목표 메모리 장치에 도달하여 읽기 또는 쓰기 요청을 처리하게 된다.
CPU(200)는 프로세서의 일 예로서 CPU 대신에 GPU가 위치할 수도 있다.
이하에서는 메모리 네트워크 내의 각 메모리 장치와 CPU를 노드라는 용어를 이용하여 지칭할 수도 있다.
본 실시예에서는 도 2에 도시된 바와 같이 다수의 메모리 장치(100)들이 격자형으로 배치되고 각 메모리 장치(100)는 인접한 메모리 장치와의 사이에 패킷 전달을 위한 링크를 가지며, 다수의 CPU(200)는 각각 메모리 네트워크 내의 어느 하나의 메모리 장치(100)와의 사이에 링크를 가지는 것으로 가정한다.
CPU(200)와 메모리 장치(100) 사이의 링크의 연결 구조 및 메모리 네트워크 내에서 메모리 장치(100)들 사이의 링크의 연결 구조에 대해서는 본 발명의 발명자의 다른 발명인 대한민국 공개특허 10-2015-0028520호를 포함하여 다양한 선행기술이 존재한다.
본 발명이 적용될 수 있는 메모리 네트워크의 구조는 특정한 구조에 한정되는 것은 아니다.
본 발명의 일 실시예에서 라우팅 경로를 설정하는 구체적인 방법에 대해서는 아래의 도 11을 참조하여 다시 구체적으로 설명한다.
도 3은 도 2의 메모리 네트워크에서 전달되는 패킷의 데이터 구조이다.
패킷은 CPU(200)에서 메모리 장치(100) 방향(이하, 제 1 방향으로 지칭할 수 있다.)으로 이동할 수도 있고, 그 반대 방향(이하, 제 2 방향으로 지칭할 수 있다.)으로 이동할 수도 있다.
예를 들어 CPU(200)가 메모리 장치(100)에 요청을 전달하는 경우가 전자에 해당한다. 이하에서는 이러한 종류의 패킷을 제 1 패킷으로 지칭할 수 있다.
도 3A는 제 1 패킷의 데이터 구조를 나타낸 것이다.
반대로 메모리 장치(100)에서 CPU(200)로 전달되는 패킷을 제 2 패킷으로 지칭할 수 있다. 예를 들어 메모리 장치(100)에서 읽은 데이터를 CPU(200)로 전달하는 경우가 이에 해당한다.
도 3B는 제 2 패킷의 데이터 구조를 나타낸다.
먼저 도 3A를 참조하여 제 1 패킷의 데이터 구조를 개시한다.
본 실시예에서 패킷은 헤더(10)와 페이로드(20)를 포함한다.
페이로드(20)는 주소 또는 데이터를 포함하며 암호화된다. 이에 따라 패킷이 유출되어도 정확한 주소 및 데이터 정보는 알 수 없다.
읽기 요청의 경우에는 페이로드(20)에 주소가 포함되고 쓰기 요청의 경우에는 페이로드(20)에 주소와 데이터가 모두 포함된다.
헤더(10)는 경로 필드(11), 인덱스 필드(12), 목표 필드(13), 요청 필드(14)를 포함할 수 있다.
본 실시예에서 경로 필드(11)는 암호화되지 않은 평문으로 구성된다.
경로 필드(11)는 시작 노드에서 목표 노드까지의 경로에 포함된 노드들의 정보, 즉 경로 정보를 저장한다.
본 실시예에서 제 1 방향의 라우팅 시에는 시작 노드 즉 CPU(200)에서 전체 라우팅 경로를 포함하는 경로 정보를 생성할 수 있다.
만일 읽기 요청에 대한 제 1 방향의 라우팅 경로라 생성된 경우, 최종 노드는 이 경로의 정반대 경로를 제 2 방향의 라우팅 경로로 사용할 수 있다.
본 실시예에서 경로 필드(11)는 시작 노드에서 최종 노드까지의 경로에 포함된 노드들의 정보를 순차적으로 저장할 수 있다.
실시예에 따라서는 패킷이 노드들을 이동할 때 경로 정보 중에서 이미 지나온 경로에 대한 정보를 삭제할 수도 있다.
인덱스 필드(12)는 암호화 및 복호화에 사용할 일회용 비밀키(OTP 키)를 선택하기 위한 인덱스 정보를 저장한다.
인덱스를 이용한 암호화 및 복호화 동작에 대해서는 아래에서 구체적으로 설명한다.
인덱스 필드(12)는 암호화되지 않은 평문 형태로 저장된다.
헤더(10) 중에서 목표 필드(13), 요청 필드(14)는 암호화된다.
목표 필드(13)는 읽기 또는 쓰기 요청을 처리하는 메모리 장치(100)에 대한 식별 정보를 포함한다.
본 실시예에서 목표 노드는 라우팅 경로 도중의 임의의 노드로 설정될 수 있다. 예를 들어 노드를 방문 순서대로 나열하는 경우 목표 노드는 최종 노드 전에 있는 임의의 위치에 있을 수 있다.
목표 필드(13)는 암호화되므로 패킷이 외부에 유출되어도 목표 노드의 정보를 알 수 없다.
아울러 평문으로 포함된 경로 정보가 유출되더라도 목표 노드를 확정할 수 없으므로 메모리 장치에 대한 접근 패턴을 외부에서 확인하기 곤란하다.
요청 필드(14)는 페이로드를 이용하여 처리할 요청의 종류로서 읽기 또는 쓰기 요청을 포함할 수 있다.
요청 필드(14) 역시 암호화되므로 패킷이 외부로 유출되어도 읽기 또는 쓰기 요청 패턴에 대한 정보를 알 수 없다.
헤더(10)는 사용자가 내용을 지정할 수 있는 기타 필드(15)를 더 포함할 수 있다.
전술한 바와 같이 일반적으로 읽기 요청의 경우 패킷에 데이터가 포함되지 않고, 쓰기 요청의 경우 패킷에 데이터가 포함되어야 한다.
이에 따라 쓰기 요청을 위한 패킷의 길이는 읽기 요청을 위한 패킷의 길이보다 더 길다. 이 경우 패킷의 길이를 분석하면 CPU(200)에서 메모리 네트워크에 전달되는 요청 패턴이 유출될 수 있다.
본 실시예에서는 읽기 또는 쓰기 요청의 길이에 관계없이 패킷의 길이를 동일하게 조절하여 패킷의 길이를 분석하여 요청 패턴이 외부로 유출되는 것을 방지할 수 있다.
이에 대해서는 도 4와 5를 참조하여 설명한다.
도 3B는 제 2 패킷의 데이터 구조를 나타낸다.
제 2 패킷 역시 헤더(10)와 페이로드(20)를 포함할 수 있다.
제 2 패킷이 읽기 요청에 대한 응답인 경우 페이로드(20)는 읽기 요청에 대응하는 데이터가 암호화되어 저장된다.
경로 필드(11)는 시작 노드에서 최종 노드까지의 경로 정보를 저장한다.
제 2 패킷이 읽기 요청에 대한 응답인 경우 최종 노드는 읽기 요청을 지시한 CPU(200)가 된다.
본 실시예에서 제 2 패킷의 경로 정보는 읽기 요청 시 생성되는 제 1 패킷의 경로 정보와 순서가 반대가 된다.
인덱스 필드(12)는 암호화 및 복호화에 사용할 일회용 비밀키를 선택하기 위한 인덱스 정보를 저장한다.
인덱스를 이용한 암호화 및 복호화 동작에 대해서는 아래에서 구체적으로 설명한다.
경로 필드(11)와 인덱스 필드(12)는 암호화되지 않은 평문 형태로 저장된다.
목표 필드(13)는 패킷을 수신할 노드의 정보를 저장한다.
본 실시예에서는 경로 상에서 다음 위치의 노드의 정보를 목표 필드에 저장한다.
요청 필드(14)는 요청의 종류를 나타내며 제 2 패킷이 읽기 요청에 대한 응답인 경우 RR(Read Response)과 같이 읽기 또는 쓰기와 구별되는 값으로 설정된다.
제 2 패킷에서 기타 필드(15)는 제 2 목표 노드의 정보를 포함하는데 제 2 목표 노드는 읽기 요청에 의해 읽기 동작을 수행한 노드에 대응한다.
도 4는 본 발명의 일 실시예에서 길이가 동일하게 설정된 패킷 데이터 구조의 일 예이다.
도 4는 길이가 긴 쓰기 요청 패킷을 기준으로 읽기 요청 패킷의 길이를 더 길게 만드는 방법을 나타낸다.
도 4B는 주소 X와 주소 X에 기록할 데이터(data1, data2)를 포함하는 쓰기 요청을 위한 패킷 데이터를 나타낸다.
읽기 요청 패킷의 길이를 더 길게 하기 위하여 길이 차이만큼 패딩을 추가하는 방법이 있다.
그러나 패킷의 길이 차이가 충분히 큰 경우 패딩을 추가하기 전에 하나의 읽기 요청 패킷에 여러 개의 읽기 요청이 포함되도록 할 수도 있다.
하나의 패킷에 포함될 읽기 요청의 개수는 실시예에 따라 미리 규정될 수 있다.
도 4A는 주소 X에 대한 읽기 요청과 주소 Y에 대한 읽기 요청을 포함하는 패킷 데이터 구조이다.
도 4A의 경우 경로 필드(11)는 목표 노드에 대한 정보(dest1, dest2)가 시작 노드와 최종 노드 사이에 포함될 수 있다.
본 실시예에서는 목표 노드가 동일한 읽기 요청들을 모아서 도 4A와 같이 하나의 패킷으로 조합하는 것을 가정한다.
이 경우 시작 노드와 최종 노드 사이에 목표 노드가 하나만 포함되므로 패킷의 라우팅을 제어하는데 용이하다.
도 5는 본 발명의 일 실시예에서 길이가 동일하게 설정된 패킷 데이터 구조의 다른 예이다.
도 5에서는 길이가 짧은 읽기 요청 패킷을 기준으로 쓰기 요청 패킷을 조절한다.
도 5A와 같이 읽기 요청 패킷은 하나의 읽기 요청을 포함하며, 도 5B와 같이 하나의 쓰기 요청은 다수의 패킷에 분산된다.
도 5B에서 기타 필드(15)는 시퀀스(151)와 요청 아이디(152)를 포함한다.
하나의 쓰기 요청이 여러 패킷으로 분산되어 전송되므로 패킷을 수신하는 노드에서는 여러 패킷을 하나로 모아서 정보를 완성해야 한다.
요청 아이디(152)는 쓰기 요청을 식별하기 위해서 쓰기 요청마다 다른 번호가 부여된다.
시퀀스(151)는 동일한 쓰기 요청을 구성하는 다수의 패킷의 순서를 나타낸다.
도 6은 도 2의 메모리 장치(100)의 상세 블록도이다.
메모리 장치(100)는 HMC(Hybrid Memory Cube)를 이용하여 구현될 수 있으나 반드시 이에 한정되는 것은 아니다.
본 실시예에서 메모리 장치(100)는 셀 어레이(110), 셀 제어 회로(120), 패킷 제어 회로(300)를 포함한다.
셀 어레이(110)는 적층된 다수의 셀 다이(111)를 포함할 수 있다.
셀 제어 회로(120)는 셀 어레이(110)에 대한 읽기 및 쓰기 동작을 제어한다.
패킷 제어 회로(300)는 패킷의 송수신 동작 등을 제어한다.
셀 제어 회로(120)와 패킷 제어 회로(300)는 하나의 로직 다이에 형성될 수 있다.
이때 다수의 셀 다이(111)와 로직 다이는 수직으로 적층될 수 있으며 이들은 TSV(Thru Silicon Via)를 통해 신호를 송수신할 수 있다.
본 실시예에서 패킷 제어 회로(300)는 키 저장부(310), 암호화부(320), 복호화부(330), 라우팅부(340), 입출력 회로(350)를 포함한다.
키 저장부(310)는 암호화 및 복호화를 위해 사용하는 일회용 비밀키(OTP 키)를 저장한다.
암호화부(320)는 키 저장부(310)의 일회용 비밀키를 이용하여 패킷에서 암호화할 필드들을 암호화하고, 복호화부(330)는 키 저장부(310)의 일회용 비밀키를 이용하여 패킷의 암호화된 필드를 복호화한다.
라우팅부(340)는 CPU(200) 또는 다른 메모리 장치(100)와의 사이에서 패킷을 송수신하는 동작을 제어한다. 라우팅부(340)는 경로 정보를 생성할 수도 있다.
입출력 회로(350)는 패킷의 송수신을 수행하는 물리 인터페이스 회로를 포함한다.
도 7은 도 2의 CPU(200)의 상세 블록도이다.
CPU(200)는 코어 회로(210), 패킷 제어 회로(300')를 포함한다.
코어 회로(210)는 메모리 장치(100)에 전송할 요청을 생성하고 요청에 대한 응답을 수신한다.
패킷 제어 회로(300')는 메모리 장치(100)에 포함된 패킷 제어 회로(300)에 대응하며 실질적으로 동일한 구성을 가질 수 있다.
도 8은 키 저장부(310)의 상세 블록도이다.
CPU와 메모리 장치들의 전체 개수가 n(n은 2 이상의 자연수)이라고 하였을 때, 도 8은 현재 노드가 i번째 노드(i는 0에서 n-1중 어느 하나)인 것으로 가정한다.
키 저장부(310)는 비밀키 저장부(311), 시드 생성부(312), 제 1 연산부(313), 일회용 비밀키 저장부(314)를 포함한다.
비밀키 저장부(311)는 비밀키를 저장한다.
비밀키는 i 번째 노드의 개인키와 j 번째 노드(j는 i를 제외하고 0에서 n-1중 어느 하나)의 공개키를 디피-헬만 알고리즘을 통해 연산하여 생성한 키이다.
이에 따라 비밀키 저장부(311)는 총 n-1개의 비밀키를 저장한다.
디피-헬만 알고리즘은 잘 알려진 것이므로 구체적인 설명은 생략한다.
본 실시예에서 i 번째 노드는 시작 노드에 대응하고, j 번째 노드는 목표 노드에 대응할 수 있다.
시드 생성부(312)는 j 번째 노드와 공유하는 랜덤 번호를 저장하는 랜덤 번호 저장부와 카운터 값을 출력하는 카운터를 포함할 수 있다.
시드는 랜덤 번호와 카운터 값을 조합하여 생성한다. 예를 들어 랜덤 번호 뒤에 카운터 값을 연이어 배치함으로써 시드를 생성할 수도 있다.
랜덤 번호와 카운터 값 중 어느 하나가 다른 경우 시드는 서로 다른 값을 가진다.
카운터 값은 일회용 비밀키를 새로 생성할 때마다 증가한다. 만일 카운터 값의 최대값에 도달하면 두 노드 사이에 공유되는 랜덤 번호를 변경하고 카운터 값을 초기화한다.
시드 생성부(312) 역시 n-1개의 서로 다른 시드를 출력한다.
제 1 연산부(313)는 j 번째 비밀키와 j번째 시드를 연산하여 일회용 비밀키를 생성한다.
본 실시예에서 제 1 연산부(313)는 인증키와 시드를 AES 알고리즘에 의해 연산하여 생성한다.
제 1 연산부(313)의 연산 동작에는 많은 시간이 소모된다. 이에 따라 본 실시예에서는 일회용 비밀키를 미리 생성하여 저장해둔다.
일회용 비밀키 저장부(314)는 미리 연산된 다수의 일회용 비밀키를 저장한다.
도 8에서 일회용 비밀키는 상대방 노드에 따라 각각 다수 개가 저장된다.
예를 들어 i 번째 노드의 일회용 비밀키 저장부(314)는 j 번째 노드와의 사이에서 사용할 수 있는 다수의 일회용 비밀키를 저장하고 j 번째 노드의 일회용 비밀키 저장부는 i 번째 노드와의 사이에서 사용할 수 있는 동일한 다수의 일회용 비밀키를 저장한다.
이때 다수의 일회용 비밀키는 인덱스에 의해 선택되는데 i 번째 노드에 포함된 j 번째 노드에 대한 일회용 비밀키 저장부와 j 번째 노드에 포함된 i 번째 노드에 포함된 일회용 비밀키 저장부는 동일한 일회용 비밀키에 대해서 동일한 인덱스를 사용한다.
일회용 비밀키 저장부(314)는 미리 정해진 규칙에 의해 인덱스를 순차적으로 사용할 수 있으며 마지막에 사용한 인덱스를 표시할 수 있다.
일회용 비밀키 저장부(314)는 일회용 비밀키의 사용 여부를 표시하는 필드를 더 포함할 수 있다.
이 경우 마지막에 사용한 인덱스가 마지막 인덱스이면 처음 인덱스로 돌아갈 수 있다.
본 실시예에서 이미 사용된 일회용 비밀키는 재사용이 불가능하다.
이에 따라 이미 사용된 일회용 비밀키를 대신할 새로운 일회용 비밀키를 생성한다.
일회용 비밀키 생성은 일회용 비밀키가 사용된 직후에 수행될 수도 있고 일정 시간 경과 후에 수행될 수도 있다.
본 실시예에서는 암호화 및 복호화 시간을 줄이기 위하여 일회용 비밀키 저장부(314)에서 사용할 수 있는 일회용 비밀키가 고갈되기 전에 새로운 일회용 비밀키를 생성하는 것이 바람직하다.
그럼에도 불구하고 암호화 동작을 수행할 때 일회용 비밀키가 고갈된 상태라면 암호화 동작에 앞서 일회용 비밀키를 새로 생성해야 한다. 이러한 경우가 발생하는 빈도가 매우 낮도록 하여 성능 저하에 미치는 영향을 줄이는 것이 바람직하다.
새로운 일회용 비밀키를 생성하는 경우 카운터 값을 증가시켜서 새로운 시드를 생성하고 새로운 시드와 비밀키를 AES 연산한 결과를 새로운 일회용 비밀키로 저장할 수 있다.
만일 현재 카운터 값이 최대라면 랜덤 넘버를 새로 생성하고 카운터 값을 초기화하여 새로운 시드를 생성하며 이를 이용하여 새로운 일회용 비밀키를 생성한다.
i 번째 노드에서 j 번째 노드에 대해서 사용할 새로운 일회용 비밀키를 생성했다면 이에 대한 정보는 j 번째 노드에도 공유되어야 한다.
이에 따라 랜덤 넘버, 카운터 값에 변화가 있거나 갱신된 일회용 비밀키의 인덱스 및 갱신된 일회용 비밀키에 대한 정보는 i 번째 노드와 j 번째 노드 사이에서 교환되어야 한다.
이러한 정보의 교환은 별도의 버스를 이용하여 진행될 수 있다.
도 9는 도 6의 암호화부의 상세 블록도이다.
암호화부(320)는 목표 노드 정보에 따라 다수의 일회용 비밀키 중 하나를 선택하는 키 선택부(321)와 선택된 일회용 비밀키와 암호화 대상이 되는 정보(예를 들어 목표 노드, 요청, 주소, 데이터)를 연산하는 제 2 연산부(322)를 포함한다.
예를 들어 목표 노드가 j 번째 노드인 경우 j 번째 노드에 대응하는 일회용 비밀키 저장부(314)에서 마지막에 사용된 인덱스의 다음 인덱스에 해당하는 일회용 비밀키를 선택할 수 있다.
본 실시예에서 제 2 연산부(322)는 XOR 연산을 수행한다.
암호화부(320)는 미리 생성된 일회용 비밀키를 선택하여 XOR 연산만을 수행하므로 암호화 동작을 수행하는데 걸리는 시간이 매우 짧다.
도 10은 도 6의 복호화부의 상세 블록도이다.
복호화부(330)는 수신된 패킷에 포함된 인덱스 정보를 참조하여 일회용 비밀키 저장부(314)에서 n-1개의 일회용 비밀키를 얻는다.
복호화부(330)는 n-1개의 일회용 비밀키 각각과 수신한 패킷의 암호화된 정보(예를 들어, 목표 노드, 주소, 데이터)를 연산하는 제 3 연산부(331)를 포함한다.
본 실시예에서 제 3 연산부(331)는 XOR 연산을 수행한다.
복호화부(330)는 제 3 연산부(331)에서 복호화한 목표 노드 정보와 현재 노드의 정보(i)를 비교하는 목표 판정부(332)를 포함한다.
목표 판정부(332)의 판정 결과 현재 노드가 목표 노드인 경우 복호화된 정보(예를 들어 요청, 주소, 데이터)를 셀 제어 회로(120)에 제공하여 읽기 쓰기 동작을 제어한다.
목표 판정부(332)의 판정 결과 현재 노드가 목표 노드가 아닌 경우, 수신된 패킷이 다음 노드로 라우팅 되도록 라우팅부(340)를 제어한다.
도 11은 본 발명의 일 실시예에 의한 경로 설정 방법을 설명하는 순서도이다.
본 실시예에서는 경로 정보가 유출되어도 목표 노드의 위치를 정확히 알지 못하도록 한다.
이를 위해 목표 노드가 라우팅 경로 중 임의의 위치에 위치하도록 한다. 예를 들어 목표 노드는 라우팅 경로 중 최종 노드의 자리에 위치할 수도 있고, 시작 노드와 최종 노드 사이에 위치할 수도 있다.
읽기 또는 쓰기 요청을 위한 경로 정보는 CPU에서 생성할 수 있으며 이 경우 도 10은 CPU의 라우팅부(340')의 동작 순서를 나타내는 것으로 이해할 수 있다.
이때 시작 노드는 CPU가 된다.
먼저 시작 노드와 목표 노드가 아닌 제 1 노드를 선택한다(S100). 이때 제 1 노드는 임의로 선택할 수 있다.
이후 목표 노드와 제 1 노드 중 먼저 경유할 경유 노드와 최종 도착할 최종 노드를 임의로 선택한다(S110). 이에 따라 어떤 경우에는 목표 노드가 최종 노드가 될 수 있고 어떤 경우에는 목표 노드가 경유 노드가 될 수 있다.
이후 시작 노드에서 경유 노드까지의 제 1 경로를 결정한다(S120).
다음으로 경유 노드에서 최종 노드까지의 제 2 경로를 결정한다(S130).
이후 제 1 경로와 제 2 경로를 연결하는 경로 정보를 생성한다(S140).
도 2는 시작 노드가 CPU0, 목표 노드(경유 노드)가 R15, 최종 노드가 R6인 경로 정보의 예를 나타낸다.
도 12는 본 발명의 일 실시예에 의한 메모리 장치의 읽기 또는 쓰기 동작을 설명하는 순서도이다.
메모리 장치는 수신한 암호화 패킷을 복호화한다(S200).
메모리 장치는 목표 노드 정보를 참조하여 현재 노드가 목표 노드인지 판단한다(S210).
현재 노드가 목표 노드이면 복호화한 명령, 주소, 데이터를 셀 제어 회로에 전송한다.
이후 수신된 암호화 패킷을 다음 노드로 전송한다(S240). 이는 도 10에서 제 2 경로를 이용하여 추가적인 라우팅을 수행하는 것에 대응한다.
단계(S210)에서 현재 노드가 목표 노드가 아닌 경우 현재 노드가 최종 노드인지 판단한다(S250).
현재 노드가 최종 노드가 아니면 수신된 암호화 패킷을 다음 노드로 전송한다(S260).
현재 노드가 최종 노드면 요청의 종류가 읽기 또는 쓰기인지 판단한다(S270).
쓰기인 경우에는 그대로 종료하고, 읽기인 경우에는 읽기 응답 패킷을 생성하여 추가 라우팅을 개시한다(S280).
이때 읽기 응답 패킷은 전술한 제 2 패킷에 대응한다.
본 실시예에서 읽기 응답 패킷의 경로 정보는 읽기를 위한 경로 정보와 반대 순서를 가진다.
제 2 방향으로 전송되는 읽기 응답 패킷의 경우 목표 노드(도 3B의 13)는 항상 다음 노드가 되도록 설정되고, 인덱스 역시 암호화 및 복호화를 위하여 노드가 변경될 때마다 다음 노드와 공유하는 인덱스로 변경된다.
읽기 응답 패킷은 읽기 요청을 수행했던 노드(제 2 목표 노드)에 관한 정보(도 3B의 15)를 더 저장한다.
이는 읽기 동작 결과 출력된 데이터를 페이로드에 추가하기 위하여 사용된다.
도 13은 본 발명의 일 실시예에 의한 메모리 장치의 읽기 응답 동작을 설명하는 순서도이다.
먼저 수신된 암호화 패킷을 복호화한다(S300). 이 경우 패킷을 수신하는 노드는 항상 목표 노드가 되므로 복호화에 의해 원하는 정보가 정상적으로 출력된다.
이후 현재 노드가 최종 노드인지 판단한다(S310). 이때 최종 노드는 읽기 요청을 지시한 CPU의 식별 정보에 대응한다.
현재 노드가 최종 노드이면 복호화된 데이터를 코어 회로에 출력하고(S320) 종료한다.
현재 노드가 최종 노드가 아니면 현재 노드가 제 2 목표 노드인지 판단한다(S330).
현재 노드가 제 2 목표 노드이면 현재 노드에서 출력된 읽기 데이터를 페이 로드에 첨부한다(S340).
이후 목표 노드를 다음 노드로 설정하고 이에 따라 새로운 인덱스를 선택한다(S350).
단계(S330)에서 현재 노드가 제 2 목표 노드가 아니면 바로 단계(S350)로 진행한다.
이후 새로운 암호화 패킷을 생성하고(S360), 새로운 암호화 패킷을 다음 노드로 전송하고(S370) 종료한다.
도 14는 본 발명의 일 실시예에 의한 메모리 장치의 암호화 동작을 설명하는 순서도이다.
먼저 사용 가능한 일회용 비밀키가 존재하는지 판단한다(S400).
사용 가능한 일회용 비밀키가 존재하는 경우 일회용 비밀키와 패킷을 암호화한다(S410).
사용 가능한 일회용 비밀키가 존재하지 않는 경우 카운터가 포화되었는지 판단한다(S420).
카운터가 포화된 경우 새로운 랜덤 넘버를 생성하고(S430) 카운터 값을 초기화한다(S440). 이후 단계(S470)로 진행한다.
카운터가 포화되지 않은 경우 현재 랜덤 넘버를 확인하고(S450), 카운터 값을 증가시킨다(S460).
이후 랜덤 넘버와 카운터 값으로부터 시드를 생성하고(S470), 비밀키와 시드를 연산하여 새로운 일회용 비밀키를 생성한다(S480).
전술한 바와 같이 본 실시예에서는 일회용 비밀키가 암호화 동작을 시작하기 전에 미리 준비되는 것이 바람직하다.
또한 랜덤 넘버를 새로 생성하거나 카운터 값을 변경하거나 새로운 일회용 비밀키가 생성되는 경우 이에 대응하는 인덱스 정보는 시작 노드와 목표 노드 사이에서 공유되어야 한다.
이상의 개시는 발명의 상세한 설명을 위한 것으로서 발명의 권리범위가 이상의 개시로 한정되는 것은 아니다. 본 발명의 권리범위는 특허청구범위에 문언적으로 기재된 범위와 그 균등범위로 정해질 수 있다.
100: 메모리 장치
110: 셀 어레이
120: 셀 제어 회로
200: CPU
210: 코어 회로
300: 패킷 제어 회로
310: 키 저장부
311: 비밀키 저장부
312: 시드 생성부
313: 제 1 연산부
314: 일회용 비밀키 저장부
321: 키 선택부
322: 제 2 연산부
331: 제 3 연산부
332: 목표 판정부
320: 암호화부
330: 복호화부
340: 라우팅부
350: 입출력 제어 회로
10: 헤더
20: 페이로드
110: 셀 어레이
120: 셀 제어 회로
200: CPU
210: 코어 회로
300: 패킷 제어 회로
310: 키 저장부
311: 비밀키 저장부
312: 시드 생성부
313: 제 1 연산부
314: 일회용 비밀키 저장부
321: 키 선택부
322: 제 2 연산부
331: 제 3 연산부
332: 목표 판정부
320: 암호화부
330: 복호화부
340: 라우팅부
350: 입출력 제어 회로
10: 헤더
20: 페이로드
Claims (23)
- 각각 패킷을 송신 또는 수신하는 노드로서 기능하며 서로 네트워크로 연결된 프로세서와 메모리 장치 중 어느 하나의 장치로서, 상기 장치는
목표 노드와의 사이에 공유하는 일회용 비밀키를 저장하는 키 저장부;
상기 일회용 비밀키에 따라 상기 목표 노드에 송신할 패킷을 암호화하는 암호화부; 및
상기 일회용 비밀키를 이용하여 상기 장치에 수신된 패킷을 복호화하는 복호화부;
를 포함하는 장치. - 청구항 1에 있어서, 상기 키 저장부는
상기 장치와 상기 목표 노드 사이에서 사용하는 비밀키를 저장하는 비밀키 저장부;
시드를 생성하는 시드 생성부;
상기 비밀키 저장부의 출력과 시드 생성부의 출력을 연산하여 일회용 비밀키를 생성하는 제 1 연산부; 및
상기 제 1 연산부에서 생성된 일회용 비밀키를 다수 개 저장하는 일회용 비밀키 저장부;
를 포함하는 장치. - 청구항 2에 있어서, 상기 비밀키는 상기 장치 고유의 개인키와 상기 목표 노드의 공개키를 연산하여 생성되는 장치.
- 청구항 2에 있어서, 상기 시드 생성부는 상기 장치와 상기 목표 노드 사이에 공유하는 랜덤 번호를 저장하는 랜덤 번호 저장부와 카운터 값을 출력하는 카운터를 포함하되, 상기 시드는 상기 랜덤 번호와 상기 카운터 값의 조합인 장치.
- 청구항 2에 있어서 상기 제 1 연산부는 AES 연산을 수행하는 장치.
- 청구항 2에 있어서, 상기 일회용 비밀키 저장부에 저장되는 다수의 일회용 비밀키 각각은 서로 다른 인덱스로 식별되며 상기 장치와 상기 목표 노드는 동일한 인덱스에 의해 동일한 일회용 비밀키를 식별하는 장치.
- 청구항 1에 있어서, 상기 암호화부는 상기 목표 노드에 대응하는 일회용 비밀키와 입력 정보를 연산하여 암호화 정보를 생성하는 제 2 연산부를 포함하는 장치.
- 청구항 7에 있어서, 상기 암호화부는 상기 키 저장부에서 상기 목표 노드에 대응하는 일회용 비밀키를 선택하는 키 선택부를 더 포함하는 장치.
- 청구항 1에 있어서, 상기 복호화부는 상기 수신된 패킷과 상기 키 저장부에서 출력된 다수의 일회용 비밀키를 각각 연산하여 상기 수신된 패킷을 복호화하는 제 3 연산부를 포함하는 장치.
- 청구항 9에 있어서, 상기 수신된 패킷은 인덱스 정보를 포함하고, 상기 다수의 일회용 비밀키는 상기 인덱스 정보에 의해 상기 키 저장부로부터 선택되는 장치.
- 청구항 9에 있어서, 상기 복호화부는 상기 제 3 연산부의 연산 결과 중 상기 장치의 식별 번호에 대응하는 정보가 있는지 판단하는 목표 탐지부를 더 포함하는 장치.
- 청구항 1에 있어서, 상기 패킷은 시작 노드에서 최종 노드까지의 경로 정보를 포함하는 경로 필드를 포함하되, 상기 목표 노드는 상기 경로 정보 중의 임의의 자리에 위치하는 장치.
- 청구항 12에 있어서, 상기 패킷은 상기 목표 노드에 전송할 인덱스 정보를 저장하는 인덱스 필드를 더 포함하는 장치.
- 청구항 13에 있어서, 상기 경로 필드와 상기 인덱스 필드는 암호화되지 않는 장치.
- 청구항 14에 있어서, 상기 패킷은 암호화 필드를 더 포함하되, 상기 암호화 필드는 상기 목표 노드의 정보를 포함하는 장치.
- 청구항 15에 있어서, 상기 암호화 필드는 요청의 종류, 상기 요청을 처리할 주소 및 데이터 중 적어도 하나를 포함하는 장치.
- 청구항 1에 있어서, 상기 장치는 메모리 장치이고, 상기 장치는
셀 어레이와 상기 셀 어레이를 제어하는 셀 제어 회로를 더 포함하되,
상기 셀 제어 회로는 상기 장치를 목표 노드로 하여 상기 장치에 수신된 패킷을 복호한 결과에서 도출되는 요청의 종류 및 주소에 따라 상기 셀 어레이를 제어하는 장치. - 청구항 17에 있어서, 상기 장치는 상기 장치가 목표가 아닌 수신 패킷을 경로 상의 다음 노드로 전송할 라우팅부를 더 포함하는 장치.
- 청구항 1에 있어서, 상기 장치는 프로세서이고, 상기 장치는 상기 메모리 장치에 전달할 읽기 요청 또는 쓰기 요청을 생성하는 코어 회로를 포함하는 장치.
- 청구항 19에 있어서, 상기 장치는 상기 읽기 요청 또는 상기 쓰기 요청을 포함하는 패킷이 이동할 경로를 설정하는 라우팅부를 더 포함하는 장치.
- 프로세서와 메모리 장치가 네트워크로 연결되어 각각 읽기 또는 쓰기 요청을 포함하는 요청 패킷을 송신 또는 수신하는 노드로 동작하는 경우 상기 요청 패킷을 생성하는 시작 노드에서 상기 요청 패킷의 전달 경로를 설정하는 라우팅 방법으로서,
상기 시작 노드와 상기 요청이 수행될 목표 노드가 아닌 제 1 노드를 선택하는 단계;
상기 목표 노드와 상기 제 1 노드 중 먼저 경유할 경유 노드와 최종 도착할 최종 노드를 선택하는 단계;
상기 시작 노드에서 상기 경유 노드까지의 제 1 경로를 설정하는 단계;
상기 경유 노드에서 상기 최종 노드까지의 제 2 경로를 설정하는 단계; 및
상기 제 1 경로와 제 2 경로를 포함하는 상기 요청 패킷의 전달 경로를 생성하는 단계
를 포함하는 라우팅 방법. - 청구항 21에 있어서, 상기 시작 노드는 상기 프로세서에 대응하고 상기 목표 노드는 상기 메모리 장치에 대응하는 라우팅 방법.
- 청구항 21에 있어서, 상기 최종 노드는 상기 메모리 장치에 대응하는 라우팅 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160174225A KR102665997B1 (ko) | 2016-12-20 | 2016-12-20 | 패킷을 부호화하는 장치 및 이를 포함하는 메모리 네트워크에서의 라우팅 방법 |
US15/704,601 US10862876B2 (en) | 2016-12-20 | 2017-09-14 | Device for encrypting and/or decrypting packets and method for routing packets in memory network including the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160174225A KR102665997B1 (ko) | 2016-12-20 | 2016-12-20 | 패킷을 부호화하는 장치 및 이를 포함하는 메모리 네트워크에서의 라우팅 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180071514A true KR20180071514A (ko) | 2018-06-28 |
KR102665997B1 KR102665997B1 (ko) | 2024-05-13 |
Family
ID=62556439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160174225A KR102665997B1 (ko) | 2016-12-20 | 2016-12-20 | 패킷을 부호화하는 장치 및 이를 포함하는 메모리 네트워크에서의 라우팅 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10862876B2 (ko) |
KR (1) | KR102665997B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022031010A1 (ko) * | 2020-08-07 | 2022-02-10 | 삼성전자 주식회사 | 전자 장치의 위치 확인 서비스를 위한 패킷 전송 방법 및 그 장치 |
KR102365263B1 (ko) * | 2020-11-23 | 2022-02-21 | 한국과학기술원 | 하드웨어 기반의 gpu 메모리 보호를 위한 효율적인 암호화 방법 및 장치 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020047106A1 (en) * | 2018-08-28 | 2020-03-05 | Eris Digital Holdings, Llc | Blockchain-enabled electronic futures trading system with optional computerized delivery of cryptocurrency |
US12081651B2 (en) | 2018-12-06 | 2024-09-03 | Schneider Electric Systems Usa, Inc. | One-time pad encryption for industrial wireless instruments |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070130472A1 (en) * | 2005-09-21 | 2007-06-07 | Broadcom Corporation | System and method for securely provisioning and generating one-time-passwords in a remote device |
US20080095360A1 (en) * | 2006-10-19 | 2008-04-24 | Camille Vuillaume | Signature System and Signature Method |
US20100238944A1 (en) * | 2009-03-18 | 2010-09-23 | Fujitsu Limited | System having a plurality of nodes connected in multi-dimensional matrix, method of controlling system and apparatus |
US20130151757A1 (en) * | 2011-12-08 | 2013-06-13 | Pyeon Hong Beom | Independent write and read control in serially-connected devices |
US20140181458A1 (en) | 2012-12-23 | 2014-06-26 | Advanced Micro Devices, Inc. | Die-stacked memory device providing data translation |
KR101630583B1 (ko) | 2012-10-30 | 2016-06-14 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 스마트 메모리 버퍼 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8194858B2 (en) * | 2009-02-19 | 2012-06-05 | Physical Optics Corporation | Chaotic cipher system and method for secure communication |
US8549092B2 (en) | 2009-02-19 | 2013-10-01 | Micron Technology, Inc. | Memory network methods, apparatus, and systems |
KR20140126787A (ko) * | 2013-04-22 | 2014-11-03 | (주) 아이씨티케이 | PUF 기반 하드웨어 OTP 제공 장치 및 이를 이용한 2-Factor 인증 방법 |
KR102057246B1 (ko) | 2013-09-06 | 2019-12-18 | 에스케이하이닉스 주식회사 | 메모리 중심 시스템 인터커넥트 구조 |
-
2016
- 2016-12-20 KR KR1020160174225A patent/KR102665997B1/ko active IP Right Grant
-
2017
- 2017-09-14 US US15/704,601 patent/US10862876B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070130472A1 (en) * | 2005-09-21 | 2007-06-07 | Broadcom Corporation | System and method for securely provisioning and generating one-time-passwords in a remote device |
US20080095360A1 (en) * | 2006-10-19 | 2008-04-24 | Camille Vuillaume | Signature System and Signature Method |
US20100238944A1 (en) * | 2009-03-18 | 2010-09-23 | Fujitsu Limited | System having a plurality of nodes connected in multi-dimensional matrix, method of controlling system and apparatus |
US20130151757A1 (en) * | 2011-12-08 | 2013-06-13 | Pyeon Hong Beom | Independent write and read control in serially-connected devices |
KR101630583B1 (ko) | 2012-10-30 | 2016-06-14 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 스마트 메모리 버퍼 |
US20140181458A1 (en) | 2012-12-23 | 2014-06-26 | Advanced Micro Devices, Inc. | Die-stacked memory device providing data translation |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022031010A1 (ko) * | 2020-08-07 | 2022-02-10 | 삼성전자 주식회사 | 전자 장치의 위치 확인 서비스를 위한 패킷 전송 방법 및 그 장치 |
KR102365263B1 (ko) * | 2020-11-23 | 2022-02-21 | 한국과학기술원 | 하드웨어 기반의 gpu 메모리 보호를 위한 효율적인 암호화 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR102665997B1 (ko) | 2024-05-13 |
US10862876B2 (en) | 2020-12-08 |
US20180176202A1 (en) | 2018-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2817916B1 (en) | Cryptographic transmission system using key encryption key | |
US9344278B2 (en) | Secure data transfer using random ordering and random block sizing | |
KR102665997B1 (ko) | 패킷을 부호화하는 장치 및 이를 포함하는 메모리 네트워크에서의 라우팅 방법 | |
JP6363032B2 (ja) | 鍵付替え方向制御システムおよび鍵付替え方向制御方法 | |
CN108809652A (zh) | 一种基于秘密共享的区块链加密账本 | |
TW200830327A (en) | System and method for encrypting data | |
US20170302445A1 (en) | Key exchange method and key exchange system | |
US9313184B2 (en) | Communication apparatus, communication system, and computer program product | |
CN112765652B (zh) | 叶节点分类权值的确定方法、装置、及设备 | |
CN113051590A (zh) | 一种数据处理方法和相关设备 | |
US20200252208A1 (en) | Key exchange method and key exchange system | |
US7657034B2 (en) | Data encryption in a symmetric multiprocessor electronic apparatus | |
JP2024512110A (ja) | データ伝送方法、装置、電子機器及び記憶媒体 | |
JP6023853B1 (ja) | 認証装置、認証システム、認証方法、およびプログラム | |
CN114629652B (zh) | 基于物理不可复制函数的密钥管理系统及其操作方法 | |
JP2018196056A (ja) | 通信装置および通信方法 | |
CN116032470A (zh) | 基于不经意传输协议的数据传输系统、方法及装置 | |
CN116248359A (zh) | 一种基于不经意传输协议的数据传输系统、方法及装置 | |
KR102066487B1 (ko) | 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치 | |
Das et al. | Modified VHDL implementation of 128-bit rijndael AES algorithm by asymmetric keys | |
Divya et al. | An Efficient Data Storage and Forwarding Mechanism Using Fragmentation-Replication and DADR Protocol for Enhancing the Security in Cloud | |
JP5822083B2 (ja) | 暗号通信システムおよび暗号通信方法 | |
CN116938454B (zh) | 一种密钥处理方法、设备、介质及系统 | |
CN114679257B (zh) | 多路径密钥中继方法、发送装置、接收装置及相关设备 | |
US20230148242A1 (en) | Quantum cryptography storage system, distribution control device, and computer program product |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |