KR20220014315A - 데이터 프로세싱 시스템 및 방법 - Google Patents

데이터 프로세싱 시스템 및 방법 Download PDF

Info

Publication number
KR20220014315A
KR20220014315A KR1020210098316A KR20210098316A KR20220014315A KR 20220014315 A KR20220014315 A KR 20220014315A KR 1020210098316 A KR1020210098316 A KR 1020210098316A KR 20210098316 A KR20210098316 A KR 20210098316A KR 20220014315 A KR20220014315 A KR 20220014315A
Authority
KR
South Korea
Prior art keywords
data
output data
key
version
neural network
Prior art date
Application number
KR1020210098316A
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 에이알엠 리미티드
Publication of KR20220014315A publication Critical patent/KR20220014315A/ko

Links

Images

Classifications

    • G06N3/0454
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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 involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Neurology (AREA)
  • Storage Device Security (AREA)

Abstract

저장소를 포함하는 데이터 프로세싱 시스템. 데이터 프로세싱 시스템은 또한 제1 신경망 층의 적어도 일부분을 사용하여 출력 데이터를 생성하고 제1 신경망 층의 적어도 일부분과 연관된 키를 생성하는 적어도 하나의 프로세서를 포함한다. 적어도 하나의 프로세서는 저장소로부터 키를 획득하고 제2 신경망 층에 입력하기 위한 출력 데이터의 버전을 획득하도록 추가로 동작가능하다. 키를 사용하여, 적어도 하나의 프로세서는, 출력 데이터의 버전이 출력 데이터와 상이한지를 여부를 결정하도록 추가로 동작가능하다.

Description

데이터 프로세싱 시스템 및 방법{DATA PROCESSING SYSTEM AND METHOD}
본 발명은 데이터 프로세싱 시스템 및 방법에 관한 것이다.
신경망 계산들은 신경 프로세싱 유닛(neural processing unit, NPU)들, 중앙 처리 유닛(central processing unit, CPU)들 및 그래픽 프로세싱 유닛(graphics processing unit, GPU)들과 같은 마이크로프로세서들을 포함하는 데이터 프로세싱 시스템들에서 수행될 수 있다. 신경망 계산들의 보안을 개선하는 것이 바람직하다.
본 발명의 제1 태양에 따르면, 저장소; 및 적어도 하나의 프로세서를 포함하는 데이터 프로세싱 시스템이 제공되고, 적어도 하나의 프로세서는, 제1 신경망 층의 적어도 일부분을 사용하여 출력 데이터를 생성하고; 제1 신경망 층의 적어도 일부분과 연관된 키를 생성하고; 저장소로부터 키를 획득하고; 제2 신경망 층에 입력하기 위한 출력 데이터의 버전을 획득하고; 키를 사용하여, 출력 데이터의 버전이 출력 데이터와 상이한지 여부를 결정한다.
본 발명의 제2 태양에 따르면, 제1 신경망 층의 적어도 일부분을 사용하여 출력 데이터를 생성하는 단계; 제1 신경망 층의 적어도 일부분과 연관된 키를 생성하는 단계; 키를 저장소에 저장하는 단계; 저장소로부터 키를 획득하는 단계; 제2 신경망 층에 입력하기 위한 출력 데이터의 버전을 획득하는 단계; 및, 키를 사용하여, 출력 데이터의 버전이 출력 데이터와 상이한지 여부를 결정하는 단계를 포함하는 방법이 제공된다.
추가 특징들은 첨부된 도면들을 참조하면서 단지 예로서 주어지는 하기의 설명으로부터 명백해질 것이다.
도 1은 예들에 따라 제1 신경망 층에 의해 생성된 출력 데이터가 제2 신경망 층에 입력하기 위한 출력 데이터의 버전과 상이한지 여부를 결정하는 방법을 도시하는 개략도이다.
도 2는 추가 예들에 따라 제1 신경망 층에 의해 생성된 출력 데이터가 제2 신경망 층에 입력하기 위한 출력 데이터의 버전과 상이한지 여부를 결정하는 방법을 도시하는 개략도이다.
도 3은 추가 예들에 따라 제1 신경망 층에 의해 생성된 출력 데이터가 제2 신경망 층에 입력하기 위한 출력 데이터의 버전과 상이한지 여부를 결정하는 방법을 도시하는 개략도이다.
도 4는 예들에 따른 이미지 프로세싱 시스템의 개략도이다.
도 5는 도 4의 이미지 프로세싱 시스템을 포함하는 예시적인 컴퓨팅 시스템의 내부 컴포넌트들의 개략도이다.
도 6은 예들에 따른 데이터 프로세싱 시스템으로 키를 전송하는 방법을 도시하는 흐름도이다.
도 7은 도 4의 이미지 프로세싱 시스템을 포함하는 추가의 예시적인 컴퓨팅 시스템의 내부 컴포넌트들의 개략도이다.
도 8은 예들에 따라 제1 신경망 층에 입력하기 위한 입력 데이터가 제1 신경망 층에 입력하기 위한 입력 데이터의 버전과 상이한지 여부를 결정하는 방법을 도시하는 흐름도이다.
도 9는 예들에 따른 망을 포함하는 시스템의 개략도이다.
도 10은 예들에 따른 이미지 프로세싱 시스템을 사용하여 프로세싱될 이미지의 개략도이다.
예들에 따른 시스템들 및 방법들의 세부사항들은 도면들을 참조하여 하기의 설명으로부터 명백해질 것이다. 본 설명에서, 설명의 목적으로, 소정 예들의 다수의 특정 세부사항들이 제시된다. 본 명세서에서 "예" 또는 유사한 언어로 언급된 것은 그 예와 관련하여 설명된 특정 특징, 구조 또는 특성이 적어도 하나의 예에 포함되지만, 다른 예에도 반드시 포함되는 것은 아니라는 것을 의미한다. 소정 예들은 설명의 용이함과 예들의 기초가 되는 개념들의 이해를 위해 소정 특징들이 생략되고/되거나 반드시 단순화되어 개략적으로 설명된다는 점을 추가로 주목해야 한다.
본 명세서의 예들에서, 출력 데이터는 제1 신경망 층의 적어도 일부분을 사용하여 생성된다. 제1 신경망 층의 적어도 일부분과 연관된 키가 또한 생성되고 저장소에 저장된다. 키는 저장소로부터 획득되고, 제2 신경망 층으로 입력하기 위한 출력 데이터의 버전이 획득된다. 키를 사용하여, 출력 데이터의 버전이 제1 신경망 층을 사용하여 생성된 출력 데이터와 상이한지 여부가 결정될 수 있다. 예를 들어, 이러한 접근법은, 예를 들어, 신경망에서 사용가능한 정보, 예컨대 기밀 또는 기타 민감 정보를 노출시키려고 하는 악성 당사자에 의해 출력 데이터가 탬퍼링(tampering)되었는지 여부를 검출할 수 있게 한다. 이러한 방식으로, 제1 신경망 층을 포함하는 신경망의 보안이 개선될 수 있다. 예를 들어, 이러한 접근법은 또한, 예를 들어, 저장된 데이터(예컨대, 출력 데이터)가 예컨대 메모리 손상으로 인해 의도하지 않은 방식으로 변경되게 하는 오류(예컨대, 컴포넌트의 고장)인, 예를 들어, 소프트 오류로 인해 출력 데이터가 손상되었는지 여부를 검출할 수 있게 한다. 소프트 오류는 예를 들어 저장소에서 발생할 수 있거나 본 명세서에 기술된 예들에 따른 방법들을 수행하도록 구성된 프로세서의 로직 회로에서 발생할 수 있다. 소프트 오류는 예를 들어 상기 프로세서와 충돌하는 우주선(cosmic ray)들에 의해 야기될 수 있다.
도 1은 신경망(102)의 제1 신경망 층(104)에 의해 생성된 출력 데이터(101)가 신경망(102)의 제2 신경망 층(106)에 입력하기 위한 출력 데이터(103)의 버전과 상이한지 여부를 결정하는 방법(100)을 도시하는 개략도이다. 방법(100)은 도 4를 참조하여 더 상세히 설명되는 바와 같은, 신경 프로세싱 유닛(NPU)의 프로세서와 같은 적어도 하나의 프로세서를 사용하여 수행될 수 있다.
도 1의 신경망(102)과 같은 본 명세서의 방법들과 함께 사용하기 위한 신경망은 컨볼루션 신경망(convolutional neural network, CNN)들, 순환 신경망(recurrent neural network, RNN)들 등과 같은 다양한 유형의 것일 수 있다. 대체적으로, 신경망은 전형적으로 (신경들에 대응하는) 정점들 또는 (접속들에 대응하는) 에지들이 각각 가중치들 및/또는 바이어스들과 연관되는 지시된 가중 그래프(directed, weighted graph)를 형성하는 몇몇 상호접속 신경들을 포함한다. 가중치들 및/또는 바이어스들은 특정 목적을 위해 신경망의 훈련 전체에 걸쳐 조정되어, 개별 신경들의 출력을 그리고 그에 따라 신경망 전체를 변경시킬 수 있다. 신경들은 층들에 배열될 수 있어, 정보가 신경망의 하나의 층의 주어진 신경으로부터 다른 층의 하나 이상의 신경들로 흐를 수 있다. 이러한 방식으로, 주어진 층의 출력은 다음 층에 대한 입력으로서 작용할 수 있고, 이는 신경망의 후속 층들에 대해 계속될 수 있다. CNN들과 같은 신경망들은 다양한 층 유형, 예컨대 컨볼루션 층(들), 풀링 층(pooling layer)(들), 활성화 층(들) 및 완전히 접속된 층(들)을 포함할 수 있다. 층들이 융합(조합)되어 융합된 층으로서 다루어질 수 있다. 다른 층 유형들이 또한 잘 알려져 있으며, 다양한 하위범주가 존재한다. 일반적으로, 특정 신경망은 그의 특정 배열 및 층 유형들의 조합에 의해 정의된다.
방법(100)에서, 출력 데이터(101)는 제1 신경망 층(104)을 사용하여 생성된다. 예를 들어, 출력 데이터(101)는 제1 신경망 층(104)과 연관된 가중치들을 사용하여 제1 신경망 층(104)에 입력되는 입력 데이터(105)에 동작을 적용함으로써 생성될 수 있다. 입력 데이터(105)는 신경망(102)에 의해 프로세싱될 데이터, 예컨대 이미지 데이터, 사운드 데이터 또는 텍스트 데이터이다. 제1 신경망 층(104)에 의해 적용되는 동작은, 예를 들어, 입력 데이터(105) 및 가중치들의 컨볼루션일 수 있고, 일부 경우들에서, 바이어스의 추가일 수 있다. 일부 예들에서, 그러한 동작으로부터 생성되는 데이터는, 예를 들어 활성화 기능을 적용하고/하거나 동작의 출력을 풀링함으로써 추가로 프로세싱될 수 있다. 이러한 방식으로, 제1 신경망 층(104)은 다양한 유형의 층들, 예컨대 컨볼루션 층(들), 풀링 층(들), 활성화 층(들) 및/또는 완전히 접속된 층(들)의 융합일 수 있다. 일부 예들에서, 입력 데이터(105)는 일부분들로 분할될 수 있으므로, 입력 데이터(105)가 일부분별 단위로(portion-by-portion basis), 예컨대 타일별 단위로 제1 신경망 층(104)을 사용하여 프로세싱된다. 동일한 원리들이 또한 제2 신경망 층(106)에 적용될 수 있다.
신경망(102)을 구현하도록 구성된 데이터 프로세싱 시스템(107)의 내부 저장소(112)는 신경망(102)의 사용과 연관된 모든 데이터, 예컨대 입력 데이터(105), 출력 데이터(101), 및 신경망(102)의 각각의 층과 연관된 가중치들을 나타내는 가중치 데이터를 저장하기에 충분한 저장소 용량을 갖지 않을 수 있다. 따라서, 도 1의 방법(100)에서, 제1 신경망 층(104)을 사용하여 생성된 출력 데이터(101)는, 이러한 예에서 데이터 프로세싱 시스템(107) 외부에 있는 외부 저장소(108)에 저장된다. 도 1의 데이터 프로세싱 시스템(107)으로서 사용가능한 데이터 프로세싱 시스템의 예가 도 4를 참조하여 더욱 상세히 설명된다. 일 예에서, 제1 신경망 층(104)을 사용하여 생성된 출력 데이터(101)는 압축될 수 있다. 이는 출력 데이터(101)의 데이터 크기를 감소시켜 저장소 용량의 더욱 효율적인 사용을 가능하게 할 수 있다. 예를 들어, 출력 데이터(101)는 외부 저장소(108)에 저장하기 전에 압축될 수 있다. 이는 더 낮은 용량의 외부 저장소(108)가 출력 데이터(101)를 저장하는 데 사용될 수 있음을 의미할 수 있다. 출력 데이터(101)는 손실 또는 무손실 압축을 사용하여 압축될 수 있다. 임의의 적합한 손실 또는 무손실 압축 알고리즘이 출력 데이터(101)를 압축하는 데 사용될 수 있다. 그러나, 다른 예들에서, 출력 데이터(101)는 외부 저장소(108)로 전송될 필요가 없다. 대신에, 출력 데이터(101)는 (예컨대, 내부 저장소(112)가 충분한 저장소 용량을 갖는 경우) 데이터 프로세싱 시스템, 예컨대 도 1의 데이터 프로세싱 시스템(107)의 내부 저장소(112)에 저장될 수 있다.
도 1의 방법(100)에서, 키 생성기(110)는 제1 신경망 층(104)과 연관된 키(109)를 생성한다. 키(109)와 제1 신경망 층(104) 사이의 연관은 도 1의 이중-헤드 화살표(119)로 도시된다. 일부 경우들에서, 정보는 제1 신경망 층(104)으로부터 키 생성기(110)로 전송될 수 있다. 예를 들어, 키(109)를 생성할 것을 키 생성기(110)에게 지시하는 명령어가 제1 신경망 층(104)으로부터 전송될 수 있고/있거나 출력 데이터(101)가 키 생성기(110)로 전송되어 키(109)를 생성하는 데 사용될 수 있다. 다른 예들에서, 데이터 프로세싱 시스템(107)은, 그럼에도 불구하고, 제1 신경망 층(104)을 사용한 입력 데이터(105)의 프로세싱에 응답하여, 예컨대, 프로세싱 이후에 키 생성기(110)가 키(109)를 생성하게 하기 위한 상이한 방식으로 구성될 수 있다. 본 명세서에 기술된 예들에서, 키는, 예를 들어 난수 생성기 또는 의사랜덤 수 생성기에 의해 생성된 문자들의 랜덤 시퀀스의 형태일 수 있는 암호화 키이다. 다른 예들에서, 키는, 키를 도출하기 위해 패스워드 또는 패스프레이즈(passphrase)를 사용할 수 있는 키 도출 함수를 사용하여 결정론적으로 도출될 수 있다. 키는 층 단위로 생성될 수 있다. 이러한 방식으로, 제1 신경망 층(104)과 연관된 키(109)는 제2 신경망 층(106)과 연관된 키와 상이할 것이다. 일부 예들에서, 키(109)는 제1 신경망 층(104)에 고유하다. 이는 악성 당사자들에 대한 키(109)의 예측가능성을 감소시킨다. 제1 신경망 층(104)의 각각의 실행에 대해 새로운 키가 생성될 수 있다. 예를 들어, 각각의 시간 출력 데이터(101)는 제1 신경망 층(104)을 사용하여 생성되고, 키 생성기(110)는 제1 신경망 층(104)과 연관된 새로운 키(109)를 생성할 수 있다. 이러한 방식으로, 상이한 시간들에서의 제1 신경망 층(104)의 다수의 실행들은 각각의 실행 시 상이한 키들이 생성되게 할 것이다. 층 단위로 그리고 실행 단위로 생성된 키에 변동성을 도입하는 것은 키가 결정되는 위험을 감소시키고, 또한 유출되는 정보의 양을 제한한다. 무손실 압축이 출력 데이터(101)에 적용되는 예에서, 키 생성기(110)는 압축 전 또는 후에 키(109)를 생성할 수 있다. 그러나, 손실 압축이 출력 데이터(101)에 적용되는 예에서, 키 생성기(110)는 손실 압축 후에 키(109)를 생성할 수 있다. 도 1의 방법(100)에서, 키 생성기(110)에 의해 생성된 키(109)는 데이터 프로세싱 시스템(107)의 내부 저장소(112)에 저장된다. 다른 예들에서, 키 생성기(110)는 층 마다 다수의 키들을 생성할 수 있다. 이는, 악성 당사자가 데이터의 주어진 일부분과 연관된 키를 결정하는 것을 더욱 곤란하게 함으로써 데이터 프로세싱 시스템(107)의 보안을 추가로 개선할 수 있다. 예를 들어, 출력 데이터(101)는 일부분들로 분할될 수 있으므로, 제1 신경망 층(104)을 사용하여 생성된 출력 데이터(101)의 각각의 일부분에 대해 키 생성기(110)가 키를 생성한다.
도 1의 방법(100)에서, 데이터 분석기(114)는 내부 저장소(112)로부터 키(109)를 획득한다. 이러한 예에서, 데이터 분석기(114)는 또한 제2 신경망 층(106)에 입력하기 위해 외부 저장소(108)로부터 출력 데이터(103)의 버전을 획득한다.
도 1의 예에서, 신경망(102)의 신경들이 층들로 배열되어, 주어진 층의 출력이 다음 층에 대한 입력으로 작용할 수 있다. 예를 들어, 방법(100)이 이미지를 나타내는 데이터를 프로세싱하는 데 사용되는 경우, 제1 신경망 층(104) 및 제2 신경망 층(106)은 컨볼루션 신경망의 각각의 층들일 수 있다. 이러한 예에서, 출력 데이터(101)는 출력 특징 맵일 수 있으며, 이는 제2 신경망 층(106)에 입력하기 위한 입력 특징 맵으로서 사용가능하다. 그러한 경우들에서, 도 1의 방법(100)은 이미지 프로세싱 시스템 내의 프로세서에 의해 수행될 수 있다.
제2 신경망 층(106)에 입력하기 위한 출력 데이터(103)의 버전은, 출력 데이터(102)의 버전이 변경되지 않았다면, 제1 신경망 층(104)을 사용하여 생성된 출력 데이터(101)와 동일해야 한다. 그러나, 제2 신경망 층(106)에 입력하기 위한 출력 데이터(103)의 버전은, 예컨대 악성 당사자가 출력 데이터(103)의 버전을 수정한 경우, 제1 신경망 층(104)을 사용하여 생성된 출력 데이터(101)와 상이할 수 있다. 예를 들어, 제2 신경망 층(106)을 사용하여 출력 데이터(103)의 버전을 프로세싱하기 전에, 출력 데이터(103)의 버전 및 일부 경우들에서는 제2 신경망 층(106)과 연관된 가중치들이 외부 저장소(108)로부터 획득될 수 있다. 출력 데이터(101)가 압축되는 예들에서, 출력 데이터(103)의 버전은 (예컨대, 제2 신경망 층(106)을 사용한) 출력 데이터(103)의 버전의 추가 프로세싱 전에 압축해제될 수 있다. 악성 당사자는 외부 저장소(108)에 인가되지 않은 액세스를 얻을 수 있고, 제1 신경망 층(104)에 의해 생성되고 외부 저장소(108)에 저장된 출력 데이터(101)를 변경하여 외부 저장소(108)에 원래 저장된 출력 데이터(101)와 상이한 제2 신경망 층(106)에 입력하기 위한 출력 데이터(103)의 버전을 생성할 수 있다. 악성 당사자는 제2 신경망 층(106)의 특징을 나타내는 정보를 추출하기 위해 출력 데이터(101)를 변경할 수 있다. 예를 들어, 출력 데이터(101)는, 제2 신경망 층(106)에 입력하기 위한, 지시 데이터(directed data), 예를 들어 임펄스 응답 함수를 출력 데이터(103)의 버전으로서 제공하도록 교체되거나 수정될 수 있다. 이는, 제2 신경망 층(106)을 사용하여 (예를 들어, 컨볼루션 층의 경우에 제2 신경망 층(106)과 연관된 가중치들을 지시 데이터와 컨볼빙(convolving)함으로써) 지시 데이터를 프로세싱하는 것이 제2 신경망 층(106)의 가중치들 자체를 출력하는 것일 수 있다. 이는 악성 당사자가 제2 신경망 층(106)의 가중치들을 결정할 수 있게 하여, 가중치들이 조작 또는 인가되지 않은 사용에 노출되게 한다. 제1 신경망 층(104)을 사용하여 생성된 출력 데이터(101)가 출력 데이터(103)의 버전이 제2 신경망 층(106)에 입력되기 전에 탬퍼링되었거나 손상되었는지 여부를 결정함으로써, 신경망(102)의 보안이 개선된다.
예를 들어, 얼굴 인식과 같은 신경망들의 많은 애플리케이션들은 신경망과 관련된 가중치들이 안전하고 임의의 다른 애플리케이션에 노출되지 않았을 것을 요구한다. 특정 사용자가 소지한 스마트폰을 잠금해제하기 위해 얼굴 인식을 사용하는 예에서, 가중치들의 노출은 이들 가중치들을 아는 제3자로 하여금, 가중치들에 의해 동작될 때 특정 사용자를 잘못 검출하여 스마트폰을 잠금해제하는 특정의 미리결정된 데이터를 입력하게 할 수 있다. 본 발명의 방법들을 사용하는 것은 출력 데이터(101)의 인가되지 않은 수정이 식별될 수 있게 한다. 따라서, 민감 데이터, 예컨대 신경망 가중치들이 노출되는 위험을 감소시키기 위해 적절한 완화 동작이 취해질 수 있다.
키(109)를 사용하여, 데이터 분석기(114)는, 출력 데이터(103)의 버전이 제1 신경망 층(104)을 사용하여 생성된 출력 데이터(101)와 상이한지 여부를 결정한다. 이러한 방식으로, 데이터 분석기(114)는, 출력 데이터(101)가 생성된 이후 그리고 제2 신경망 층(106)에 입력되기 전에 상이한 데이터에 의해 수정되었거나 교체되었는지 여부를 결정할 수 있다. 키 생성기(110)가 층마다 다수의 키들을 생성하는 예에서, 이러한 결정이 수행되는 출력 데이터(103)의 버전은 데이터의 더 작은 일부분을 나타낼 수 있는데, 이는, 이러한 경우에, 키 생성기(110)가 출력 데이터(101)의 각각의 일부분에 대한 키를 생성하도록, 제1 신경망 층(104)을 사용하여 생성된 출력 데이터(101)가 일부분들로 분할될 수 있기 때문이다. 이는 이러한 결정을 수행하는 데 요구되는 프로세싱 전력을 감소시킬 수 있다.
데이터 분석기(114)는, 제2 신경망 층(106)에 입력하기 위한 출력 데이터(103)의 버전이 제1 신경망 층(104)을 사용하여 생성된 출력 데이터(101)와 상이한지 여부의 결정에 응답하여 소정 방식으로 응답할 수 있다. 예를 들어, 데이터 분석기(114)는 출력 데이터(103)의 버전이 출력 데이터(101)와 동일하고, 따라서 출력 데이터(101)가 제1 신경망 층(104)을 사용하여 먼저 생성된 이후로 출력 데이터(101)가 수정되거나 교체되지 않았음을 결정할 수 있다. 이어서, 제2 신경망 층(106)의 가중치들 및 바이어스들이 노출될 위험 없이, 출력 데이터(103)의 버전이 제2 신경망 층(106)에 의해 프로세싱될 수 있다. 따라서, 도 1의 예에서의 데이터 분석기(114)는 그러한 결정에 응답하여 프로세싱을 위해 출력 데이터(103)의 버전을 제2 신경망 층(106)으로 전송한다.
이 예에서, 출력 데이터(103)의 버전이 출력 데이터(101)와 상이하다고 결정하는 것에 응답하여, 데이터 분석기(114)는 출력 데이터(103)의 버전이 출력 데이터(101)와 상이하다는 것을 나타내는 데이터를 생성한다. 데이터 분석기(114)에 의해 생성된 데이터는, 예를 들어 출력 데이터(101)가 제1 신경망 층(104)을 사용하여 먼저 생성된 이후로 출력 데이터(101)가 수정되거나 교체되었음을 나타낸다. 이는, 예를 들어, 악성 당사자가 악성 데이터, 예컨대 지시된 데이터를 제2 신경망 층(106)에 입력하려고 시도하고 있을 수 있음을 나타낸다. 이러한 예에서, 출력 데이터(103)의 버전이 출력 데이터(101)와 상이함을 나타내는 데이터가, 제2 신경망 층(106)을 사용한 출력 데이터(103)의 버전의 프로세싱을 방지하는데 사용되어, 제2 신경망 층(106)과 연관된 가중치들이 노출되는 위험을 감소시킬 수 있다. 출력 데이터(103)의 버전이 출력 데이터(101)와 상이함을 나타내는 데이터는, 예를 들어 임의의 적절한 포맷, 예컨대 출력 데이터(103)가 상이한지 아닌지 여부를 나타내는 이진 플래그일 수 있는 그러한 차이의 표시를 나타낼 수 있다. 그러한 표시는 제2 신경망 층(106)에 의해 프로세싱되어 출력 데이터(103)의 버전을 프로세싱하는 것을 진행할지 여부를 결정할 수 있다. 다른 경우들에서, 데이터 분석기(114)는 대신에 또는 추가적으로, 출력 데이터(103)의 버전을 프로세싱하지 않을 것을 제2 신경망 층(106)에 지시하기 위한, 제2 신경망 층(106)으로 전송할 적절한 제어 명령어들을 생성할 수 있다. 이러한 방식으로, 출력 데이터(101)로 탬퍼링함으로써 악성 당사자가 제2 신경망 층(106)과 연관된 가중치들을 성공적으로 추출할 위험이 감소된다. 도 1의 방법(100)이 후속 신경망 층들에 대해 반복되어, 후속 신경망 층들과 연관된 가중치들이 노출될 위험을 감소시킬 수 있다는 것이 인식될 것이다.
출력 데이터(103)의 버전이 출력 데이터(101)와 상이하다는 것을 결정한 후, 다양한 동작들이 취해질 수 있다. 예를 들어, 제2 신경망 층(106)은, 예컨대 출력 데이터(103)의 버전이 출력 데이터(101)와 상이하다는 것을 나타내는 데이터를 사용하여, 출력 데이터(103)의 버전의 프로세싱을 생략하고/하거나 신경망(102)의 나머지 층들에 의해 수행되는 프로세싱을 추가로 중지하도록 제어될 수 있다. 예컨대, 데이터 프로세싱 시스템(107)의 적어도 하나의 프로세서가 중앙 처리 유닛(CPU)에 의해 제어되고 구성되는 다른 예에서, 출력 데이터(103)의 버전이 출력 데이터(101)와 상이하다는 결정에 대한 응답으로 인터럽트 커맨드(interrupt command)가 CPU로 전송될 수 있다. 추가의 예에서, 데이터 프로세싱 시스템(107)(예컨대, NPU일 수 있음)의 적어도 하나의 프로세서는 데이터의 프로세싱을 중단하여 악성 데이터를 프로세싱하는 위험을 감소시킬 수 있다. 일부 예들에서, 적어도 하나의 프로세서(예컨대, NPU)가 리셋될 수 있다.
출력 데이터의 버전이 출력 데이터와 상이한지 여부의 결정은 다양한 방식들로 수행될 수 있다. 도 2는 이러한 결정이 어떻게 수행되는지의 방법(200)을 도시하는 개략도이다. 도 1의 대응하는 특징부들과 유사한 도 2의 특징부들은 동일한 도면 부호로 라벨링되지만, 100만큼 증분되어 있으며; 대응하는 설명들이 적용될 것이다.
도 2의 방법(200)에서, 제1 시그니처 계산기(116)는 신경망(202)의 제1 신경망 층(204)을 사용하여 입력 데이터(205)를 프로세싱함으로써 생성된 출력 데이터(201) 및 키 생성기(210)에 의해 생성된 키(209)에 기초하여 제1 시그니처(111)를 계산한다.
본 명세서에 기술된 예들에서, 시그니처는 데이터가 생성된 후에 수정되거나 교체되지 않았음을 검증하는 데 사용될 수 있는, 키 및 데이터로부터 계산된 값일 수 있다. 일례에서, 시그니처는 키에 의해 결정된 값에 의한 데이터의 다항식 제산의 나머지에 기초하는 순환 중복 검사(cyclic redundancy check, CRC)일 수 있다. 제1 시그너처(111)가 CRC인 경우에, 이는 제1 신경망 층(204)과 연관된 키(209)에 의한 제1 신경망 층(204)에 의해 생성된 출력 데이터(201)의 다항식 제산의 나머지에 기초하여 계산될 수 있다. CRC가 본 명세서에서 예로서 주어지지만, 임의의 유형의 시그니처(예컨대, 해시 기반 시그니처)가, 데이터가 생성된 후에 수정되거나 교체되지 않았음을 검증하는 데 사용될 수 있다는 것을 이해해야 한다. 키는 전술된 바와 같이 층 단위 및/또는 실행 단위로 생성될 수 있기 때문에, 시그니처는 상이한 신경망 층들의 출력들에 대해 및/또는 상이한 시간들에서의 동일한 신경망 층의 출력들에 대해 상이할 수 있다는 것을 이해해야 한다. 층 단위 및 실행 단위로 계산된 시그니처의 변동성은 시그니처가 결정될 위험을 감소시킨다. 도 2의 방법(200)에서, 제1 시그니처 계산기(116)에 의해 계산된 제1 시그너처(111)는 데이터 프로세싱 시스템(207)의 내부 저장소(212)에 저장된다.
도 2에 도시된 예에서, 데이터 분석기(214)는 내부 저장소(212)로부터 획득된 키(209) 및 신경망(204)의 제2 신경망 층(206)에 입력하기 위한 출력 데이터(203)의 버전에 기초하여 제2 시그너처(113)를 계산하는 제2 시그니처 계산기(118)를 포함한다. 출력 데이터(203)의 버전은 데이터 프로세싱 시스템(207) 외부에 있는 외부 저장소(208)로부터 획득된다. 제2 시그너처(113)는 제1 시그니처(111)를 계산하는데 사용된 것과 동일한 방법을 사용하여 계산될 수 있지만, 대신에 (키(209) 및 출력 데이터(201)가 아니라) 키(209) 및 출력 데이터(203)의 버전에 기초한다. 예를 들어, 제1 시그너처(111)가 CRC인 경우, 제2 시그니처(113)는 또한 대신 제1 신경망 층(204)과 연관된 키(209)에 의한 (제1 시그니처(111)의 경우, 제1 신경망 층(204)에 의해 생성된 출력 데이터(201)와는 대조적으로) 출력 데이터(203)의 버전의 다항식 제산의 나머지에 기초하여 계산되는 CRC일 수 있다. 이 경우, 출력 데이터(203)의 버전이 출력 데이터(201)와 상이한지 여부를 결정하기 위해, 데이터 분석기(214)는 시그니처 비교기(120)를 포함한다. 시그니처 비교기(120)는 제2 시그니처(113)가 내부 저장소(212)로부터 획득된 제1 시그너처(111)와 동일한지 여부를 결정한다. 이러한 방식으로, 제2 시그니처(113)가 제1 시그너처(111)와 동일하지 않음을 결정하는 것은 제1 신경망 층(204)을 사용하여 생성된 출력 데이터(201)가 잠재적으로 악성 데이터에 의해 수정되었거나 교체되었음을 나타낼 수 있다. 따라서, 출력 데이터(203)의 버전이 제2 신경망 층(206)을 사용하여 프로세싱되기 전에, 예를 들어 제2 신경망 층(206)과 연관된 가중치들이 노출 위험에 있는지 여부를 검사하는 검사가 이루어질 수 있다. 일 예에서, 출력 데이터(203)의 버전은, 단지 시그니처 비교기(120)가 제2 시그니처(113)가 제1 시그너처(111)와 동일하다고 결정한 것에 응답하여, 제2 신경망 층(206)을 사용해 프로세싱될 수 있다. 제2 시그너처(113)가 제1 시그너처(111)와 동일한 것은 제1 신경망 층(204)을 사용하여 생성된 출력 데이터(201)가 지시된 데이터와 같은 악성 데이터로 교체되었거나 수정되지 않았음을 나타낼 수 있다. 이러한 방식으로, 제2 신경망 층(206)과 연관된 가중치들이 노출되는 위험이 감소된다.
도 3은 추가 예들에 따라 출력 데이터(303)의 버전이 출력 데이터(301)와 상이한지 여부를 결정하는 방법(300)을 도시하는 개략도이다. 도 1의 대응하는 특징부와 유사한 도 3의 특징부는 동일한 도면 부호로 라벨링되지만, 200만큼 증분되어 있다. 대응하는 설명들이 적용될 것이다. 도 3의 방법(300)은 신경망(302)의 제1 신경망 층(304)을 사용하여 생성된 출력 데이터(301)가 출력 데이터(303)의 버전(이 경우 신경망(302)을 구현하기 위한 데이터 프로세싱 시스템(307) 외부에 있는 외부 저장소(308)로부터 획득됨)과 상이한지 여부를 결정하기 위해 그 자체로 또는 도 2의 방법(200)과 조합하여 적용될 수 있다는 것을 이해한다.
도 3의 방법(300)에서, 암호화 엔진(122)은 제1 신경망 층(304)을 사용하여 입력 데이터(305)를 프로세싱함으로써 생성된 출력 데이터(301)를 암호화한다. 암호화 엔진(122)은 키 생성기(310)에 의해 생성된 키(309)를 사용하여 출력 데이터(301)를 암호화한다. 암호화 엔진은, 예를 들어 데이터를 암호화하기 위해 암호화 방식을 구현하도록 구성되는 적어도 하나의 프로세서를 포함하거나 사용한다. 이 적어도 하나의 프로세서는 도 4를 참조하여 더욱 상세히 기술되는 바와 같은 NPU의 프로세서일 수 있다. 예를 들어, 암호화 엔진(122)이 암호화 방식을 구현하므로, 암호화된 출력 데이터(115)를 생성하기 위해 출력 데이터(301)가 암호화되며, 이는 외부 저장소(308)에 저장된다. 암호화 엔진은 특정 암호화 알고리즘을 사용하여 출력 데이터(301)를 암호화하도록 구성될 수 있다. 암호화 엔진에 의해 구현되는 암호화 알고리즘은 상이한 신경망 층들의 출력들에 대해 상이할 수 있다. 즉, 암호화 엔진(122)은 상이한 각자의 암호화 알고리즘들을 사용하여 상이한 각자의 신경망 층들로부터 수신된 데이터를 암호화할 수 있다. 더욱이, 전술된 바와 같이, 키(309)는 층 단위 및/또는 실행 단위로 생성될 수 있다. 키(309) 및/또는 암호화 알고리즘에서의 그러한 변동성은 악성 당사자가 암호화된 출력 데이터(115)를 성공적으로 암호해제할 수 있게 되는 위험을 감소시킨다. 키(309)는 이러한 예에서 내부 저장소(312)에 저장되며, 이는 전형적으로 외부 저장소(308)보다 더 안전하다.
출력 데이터(301) 대신에 암호화된 출력 데이터(115)를 외부 저장소(308)(이는 전형적으로 내부 저장소(312)보다 인가되지 않은 액세스에 대해 더 취약함)에 저장하는 것은, 악성 당사자가 출력 데이터(301)의 사용가능한 버전을 획득할 위험을 감소시킨다. 예를 들어, 악성 당사자가 암호화된 출력 데이터(115)를 외부 저장소(308)로부터 획득하더라도, 그들은 여전히 사용 전에 암호화된 출력 데이터(115)를 암호해제해야 하는데, 이는 키(309) 없이는 불가능한 것은 아니더라도 대체로 어렵다. 이는 초고해상도 신경망들과 같은 민감 입력 데이터(305)의 프로세싱을 수반하는 소정의 사용 경우들에 있어서 유익할 수 있다. 초고해상도 신경망은, 고해상도 이미지를 그의 저해상도 대응물로부터 생성하기 위해 사용될 수 있고, 신경망(302)과 연관된 입력들 및 출력들(예컨대, 주어진 신경망 층과 연관된 입력들 및 출력들)이 안전하고 어떠한 다른 애플리케이션들에도 노출되지 않을 것을 요구할 수 있다. 초고해상도 망을 사용하여 가입자 페이월(paywall) 뒤에 숨겨진 비디오 콘텐츠를 업스케일링하는 일례에서, 입력들(예를 들어, 저해상도 이미지) 또는 출력들(예를 들어, 고해상도 이미지)의 노출은 제3자가 요구되는 구독료를 지불하지 않고도 비디오 콘텐츠에 액세스하게 할 수 있다. 그러나, 본 발명의 방법들은 인가되지 않은 당사자들에 대한 사적 콘텐츠의 노출 위험을 감소시키기 위해 사용될 수 있다. 일부 예들에서, 악성 당사자는 입력 데이터(305)를 교체하거나 수정하여 제1 신경망 층(304)에 입력하기 위한 지시 데이터, 예를 들어 임펄스 응답 함수를 제공할 수 있다. 이는, 제1 신경망 층(304)을 사용하여 입력 데이터(305)를 프로세싱하는 것이 제1 신경망 층(304)의 가중치들 및/또는 바이어스들을 출력하게 하는 것일 수 있다. 그러나, 출력 데이터(301)가 암호화되는 경우, 악성 당사자는, 그들이 내부 저장소(312)에 안전하게 저장되는 키(309)에 대한 액세스를 얻지 않는 한, 암호화된 출력 데이터(115)를 암호해제할 수 없을 것이다(그리고 그에 따라 가중치들 및/또는 바이어스들에 액세스할 수 없을 것이다). 이는 제1 신경망 층(304)의 가중치들 및/또는 바이어스들의 노출 위험을 감소시킨다.
도 3의 방법(300)에서, 암호해제 엔진(124)은 내부 저장소(312)로부터 획득된 키(309)를 사용하여 외부 저장소(308)로부터 획득된 출력 데이터(303)의 버전을 암호해제한다. 이러한 방식으로, 암호해제 엔진(124)은 출력 데이터(117)의 암호해제된 버전을 생성한다. 암호해제 엔진(124)은, 예를 들어 데이터를 암호해제하기 위해 암호해제 기법을 구현하도록 구성되는 적어도 하나의 프로세서를 포함하거나 사용한다. 이 적어도 하나의 프로세서는 도 4를 참조하여 더욱 상세히 기술되는 바와 같은 NPU의 프로세서일 수 있다. 암호해제 엔진(214)은 암호화 엔진(212)에 의해 이전에 암호화되었던 출력 데이터(303)의 버전을 암호해제하기 위해 적절한 암호해제 알고리즘을 구현하도록 구성된다. 도 3의 예에서, 동일한 키(309)가 출력 데이터(301)를 암호화하고 출력 데이터(303)의 버전을 암호해제하는 데 사용되는 대칭 키 암호화 알고리즘이 사용된다. 그러나, 이는 단지 예일 뿐이며, 다른 경우들에서는 비대칭 키 암호화 알고리즘이 대신 사용될 수 있다. 출력 데이터(303)의 버전은 제2 신경망 층(306)에 입력되기 전에 암호해제 엔진(214)에 의해 암호해제된다.
이 예에서, 데이터 분석기(314)는 출력 데이터(117)의 암호해제된 버전에 기초하여 출력 데이터(303)의 버전이 출력 데이터(301)와 상이한지 여부를 결정한다. 예를 들어, 출력 데이터(303)의 버전이 예컨대 악성 당사자에 의해 수정된 경우, 출력 데이터(303)의 버전을 암호해제하는 것은 전형적으로, 제2 신경망 층(306)에 대한 입력으로서 사용할 수 없는 출력 데이터(117)의 암호해제된 버전으로 이어질 것이다. 추가로, 악성 당사자가 외부 저장소(308)에 저장된 암호화된 출력 데이터(115)를 예컨대 출력 데이터(303)의 버전으로 사용할 지시 데이터로 교체한 경우, 암호해제된 지시 데이터는, 악의적 당사자가 전술된 바와 같이 제2 신경망 층(306)의 가중치들을 노출시킬 목적으로 제2 신경망 층(306)을 사용하여 프로세싱하도록 의도한 지시 데이터와는 상이할 것이다. 따라서, 제2 신경망 층(306)을 사용하여 암호해제된 지시 데이터를 프로세싱하는 것은 원래 입력된 지시 데이터를 프로세싱하는 방식으로 제2 신경망 층(306)과 연관된 가중치들을 출력하지 않을 것이다. 다른 예들에서, 데이터 분석기(314)는 출력 데이터(303)의 버전이 출력 데이터(301)와 상이한지 여부를 결정하기 위해 (통계로 지칭될 수 있는) 출력 데이터(117)의 암호해제된 버전의 특징들을 평가할 수 있다. 예를 들어, 데이터 분석기(314)는 출력 데이터(117) 또는 출력 데이터(117)의 일부분의 암호해제된 버전의 평균 또는 분산을 평가할 수 있다. 출력 데이터(303)의 버전이 예컨대 악성 당사자에 의해 수정되었다면, 출력 데이터(117)의 암호해제된 버전의 특징들은, 예컨대 출력 데이터(301)에 기초한 예상된 특징들과는 상당히 상이할 수 있다. 데이터 분석기(314)가 출력 데이터(117)의 암호해제된 버전의 특징들이 예상된 특징들과 상이하다고 결정하는 것에 대한 응답으로, 데이터 분석기(314)는 출력 데이터(303)의 버전이 도 1의 데이터 분석기(114)를 참조하여 전술된 바와 같이 출력 데이터(301)와 상이함을 나타내는 데이터를 생성할 수 있다. 이는, 데이터 분석기(314)가 출력 데이터(303)의 암호해제된 버전의 추가 프로세싱을 방지하게 할 수 있는데, 예컨대 제2 신경망 층(306)과 연관된 가중치들이 노출되는 위험을 감소시킨다. 예를 들어, 데이터 분석기(314)는, 출력 데이터(117)의 암호해제된 버전의 평균 및/또는 분산이 미리결정된 범위 밖에 있는지 여부를 결정하고, 평균 및/또는 분산이 미리결정된 범위 밖에 있음에 대한 응답으로 출력 데이터(303)의 버전이 출력 데이터와 상이함을 나타내는 데이터를 생성할 수 있다.
도 4는 예들에 따른 데이터 프로세싱 시스템의 개략도이다. 이 예에서, 데이터 프로세싱 시스템은 이미지를 입력으로서 수신하고 이미지를 프로세싱하도록 배열된 이미지 프로세싱 시스템(126)이다. 그러나, 이는 단지 예일 뿐이다. 도 4의 이미지 프로세싱 시스템(126)과 유사한 컴포넌트들 또는 동일한 컴포넌트들을 포함하는 데이터 프로세싱 시스템이, 예컨대 텍스트 데이터 또는 사운드 데이터와 같은 다른 유형들의 데이터를 프로세싱하기 위해 본 명세서의 방법들 중 임의의 것을 구현하는 데 사용될 수 있다는 것이 인식되어야 한다. 이미지 프로세싱 시스템(126)은, 예를 들어 하드웨어(예컨대, 적합한 프로그래밍된 회로부일 수 있거나 이를 포함할 수 있는 시스템-온-칩(SoC)의 형태), 또는 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다.
이미지 프로세싱 시스템(126)은 신경 프로세싱 유닛(NPU)(128)을 포함한다. NPU(128)는 도 1, 도 2 및/또는 도 3의 방법들(100, 200 및/또는 300)과 같은 본 명세서에 기술된 방법들 중 임의의 것을 수행하도록 동작가능하거나 다른 식으로 구성된다. 다른 예들에서, 이미지 프로세싱 시스템(126)은 대신에, 신경망을 구현하고 따라서 전술한 방법들 중 임의의 것을 수행하도록 구성될 수 있는 임의의 프로세서 또는 프로세서들의 그룹을 포함할 수 있다. 예를 들어, 본 명세서의 예들의 것들과 같은 신경망들은 신경 프로세싱 유닛(NPU), 중앙 처리 유닛(CPU), 그래픽 프로세싱 유닛(GPU), 디지털 신호 프로세서(DSP), 및/또는 코프로세서 중 적어도 하나를 사용하여 구현될 수 있다. 이것의 예는 신경망을 제어하거나 또는 구성하도록 구성된 소프트웨어와 NPU(128) 사이에 인터페이스를 제공하는 드라이버를 포함하는 CPU이다.
이미지 프로세싱 시스템(126)은 또한 일부 예들에서, 위의 예들에 기술된 바와 같은 제1 시그니처 및 키를 저장하기 위한 저장소(130)를 포함한다. 저장소(130)는 정적 랜덤 액세스 메모리(SRAM)일 수 있다. 대안으로, 저장소(130)는 복수의 단일-비트 저장 디바이스들일 수 있거나 이를 포함할 수 있다. 전형적으로, 단일-비트 저장 디바이스는 2개의 안정된 상태들을 갖는 전자 컴포넌트이며, 예를 들어 그 중 하나는 0의 값을 나타내고, 그 중 다른 하나는 1의 값을 나타낸다. 플립-플롭 및 래치는 각각 단일-비트 저장 디바이스들의 예들이다. 복수의 단일-비트 저장 디바이스들은 키의 데이터 크기가 상대적으로 작은 경우에 키를 저장하기 위해 사용될 수 있다. 저장소(130)는 이미지 프로세싱 시스템(126)의 온-칩 또는 로컬 저장소일 수 있다. 이 경우에, 저장소(130)는 도 1 내지 도 3에 도시된 내부 저장소(112, 212, 312)에 대응할 수 있다. 키를 로컬 저장소에 저장하는 것은 키에 대한 더 빠른 액세스 및 키의 더 안전한 저장을 가능하게 한다. 일부 경우들에서, 저장소(130)는 복수의 별개의 저장 영역들을 포함할 수 있다.
이미지 프로세싱 시스템(126)은 이미지 프로세싱 시스템(126) 내의 데이터 흐름을 제어하기 위한 직접 메모리 액세스(direct memory access, DMA) 엔진(132)을 포함한다. 이 예에서, DMA 엔진(132)은, NPU(128)가, 예를 들어 이미지 프로세싱 시스템(126)의 내부 및 외부 둘 모두의 다른 컴포넌트들과는 독립적으로 저장소(130)에 직접 액세스하게 하도록 구성된다. DMA 엔진(132)은, 다른 컴포넌트들, 예컨대 이미지 프로세싱 시스템(126)의 임의의 다른 내부 컴포넌트들 및/또는 이미지 프로세싱 시스템(126) 외부의 임의의 컴포넌트들에는 키를 전달하지 않고, 이미지 프로세싱 시스템(126)의 저장소(130)와 NPU(128) 사이에서만 키를 전달하도록 구성될 수 있다. 예를 들어, 저장소(130)에 저장된 키는 데이터 흐름의 제어를 담당하는 이미지 프로세싱 시스템(126) 내의 유닛, 즉 키가 제공되는 다른 컴포넌트들을 차례로 제어할 수 있는 DMA 엔진(132)에만 액세스될 수 있다. 예를 들어, DMA 엔진(132)은 키를 NPU(128)로 전송하지만 이미지 프로세싱 시스템(126)의 다른 컴포넌트들에는 전송하지 않도록 구성될 수 있다. 이는, 이미지 프로세싱 시스템(126) 내의 제한된 수의 컴포넌트들이 키에 액세스하기 때문에 악성 당사자가 키를 획득할 기회를 감소시킨다. 저장소(130)가 복수의 플립-플롭들과 같은 복수의 단일-비트 저장 디바이스들을 포함하는 예에서, NPU(128)가 저장소(130)에 액세스하는 데 DMA 엔진(132)이 요구되지 않을 수 있다. 대체적으로, 일부 예들에서, 이미지 프로세싱 시스템(126)은, 저장소(130)가 이미지 프로세싱 시스템(126)의 NPU(128)에 의해서만 액세스가능하도록 구성된다는 것이 인식될 것이다.
이미지 프로세싱 시스템(126)이 도 2의 방법(200)을 구현하도록 구성되는 경우, 저장소(130)는 또한 제1 시그니처 계산기, 예컨대 도 2의 제1 시그니처 계산기(116)에 의해 계산된 제1 시그니처를 저장할 수 있다. 키에 대해 전술되었던 것과 동일한 방식으로, 저장소(130)에 저장된 제1 시그너처는 또한 데이터 흐름의 제어를 담당하는 이미지 프로세싱 시스템(126) 내의 유닛, 즉 제1 시그니처가 제공되는 다른 컴포넌트들을 차례로 제어할 수 있는 DMA 엔진(132)에 의해서만 액세스될 수 있다. 예를 들어, DMA 엔진(132)은 제1 시그니처를 NPU(128)로 전송하지만 이미지 프로세싱 시스템(126) 내부의 다른 컴포넌트들 및/또는 외부에는 전송하지 않도록 구성될 수 있다. 따라서, 제1 시그니처는 키와 유사한 액세스 제한들을 가질 수 있다. 이는 유사하게 제1 시그니처가 악성 당사자에 의해 획득될 기회를 감소시킨다.
이미지 프로세싱 시스템(126)은 인터페이스(134)를 포함하며, 이를 통해 NPU(128)가 DMA 엔진(132)에 의해 제어되는 방식으로 외부 저장소(136)와 통신한다. 외부 저장소(136)는 이미지 프로세싱 시스템(126) 외부에 있고, 2배속 동기식 동적 램(double data rate synchronous dynamic random access memory, DDR-SDRAM)과 같은 랜덤 액세스 메모리(RAM)일 수 있다. 다른 예들에서, 외부 저장소(136)는 플래시 메모리와 같은 판독 전용 메모리(Read Only Memory, ROM) 또는 솔리드 스테이트 드라이브(solid state drive, SSD)와 같은 비휘발성 메모리이거나 이를 포함할 수 있다. 예들에서의 외부 저장소(136)는 추가의 저장 디바이스들, 예를 들어 자기, 광학 또는 테이프 매체, 콤팩트 디스크(compact disc, CD), 디지털 다용도 디스크(digital versatile disc, DVD) 또는 다른 데이터 저장 매체를 포함할 수 있다. 예를 들어, 외부 저장소(136)는 입력 이미지 데이터를 프로세싱하기 위해 이미지 프로세싱 시스템(126)을 사용하도록 배열된 컴퓨팅 시스템 또는 디바이스의 저장소(예컨대, 메인 메모리 또는 시스템 메모리)일 수 있거나 이를 포함할 수 있다. 그러한 컴퓨팅 디바이스는 개인용 컴퓨터, 스마트폰, 태블릿, 이미지 캡처 디바이스(예컨대, 카메라 또는 비디오 카메라) 또는 차량과 같은 운송수단(vehicle)에 결합되거나 그 내부에 장착될 수 있는 온보드(on-board) 컴퓨터 디바이스일 수 있지만, 이는 제한하고자 하는 것은 아니다.
전술된 바와 같이, 신경망들을 구현할 때, 예를 들어 입력 데이터, 출력 데이터, 및 이미지 프로세싱 시스템(126) 내부의 저장소(130) 내에 저장될 가중치들 및/또는 바이어스들과 같은 신경망에서 수반되는 동작들에 대응하는 데이터를 포함하는 모든 데이터가 가능하지 않을 수 있다. 데이터의 적어도 일부는 휘발성 및/또는 비휘발성 저장소를 포함할 수 있는 외부 저장소(136)에 저장될 수 있다. NPU(128)는 인터페이스(134)를 통해 신경망을 실행할 때 외부 저장소(136)에 액세스할 수 있다. 이러한 예에서, NPU(128)는 이미지 프로세싱 시스템(126) 외부에 있는 외부 저장소(136)로 출력 데이터를 전송하도록 구성된다. 이러한 경우에, NPU(128)는 또한 외부 저장소(136)로부터의 출력 데이터의 버전을 획득하도록 구성되며, 출력 데이터의 버전은 상기 예들에 기술된 바와 같이 제2 신경망 층에 입력하기 위한 것이다. 이미지 프로세싱 시스템(126)의 저장소(130)와 함께 외부 저장소(136)를 사용하면 이미지 프로세싱 시스템(128)의 저장소(130)만을 사용하는 것에 비해 NPU(128)에 의해 프로세싱된 신경망과 연관된 더 많은 양의 데이터가 저장될 수 있다.
도 5는 도 4의 이미지 프로세싱 시스템(126)을 포함하는 예시적인 컴퓨팅 시스템(140)의 내부 컴포넌트들의 개략도이다. 컴퓨팅 시스템(140)은 디스플레이 프로세서(144)를 포함하는데, 디스플레이 프로세서는 이러한 예에서 디스플레이할 이미지를 생성하기 위해 이미지 프로세싱 시스템(126)에 의해 출력되는 이미지 데이터를 프로세싱하도록 구성된다. 예를 들어, 이미지 프로세싱 시스템(126)은 초고해상도 신경망을 구현하도록 구성될 수 있고, 디스플레이 프로세서(144)는 고해상도 이미지를 나타내는 이미지 프로세싱 시스템(126)에 의해 출력되는 이미지 데이터를 프로세싱하여 디스플레이할 고해상도 이미지를 생성하도록 구성될 수 있다.
이 예에서, 이미지 프로세싱 시스템(126)은 도 1을 참조하여 기술된 방법들을 수행하여, 제1 신경망 층에 의해 생성된 출력 데이터(이 예에서 제1 출력 데이터로 지칭될 수 있음)가, 제1 신경망 층과 연관된 키(이 예에서 제1 키로 지칭될 수 있음)를 사용하여 출력 데이터의 버전과 상이한지 여부를 결정하도록 배열된다. 키를 도 4 및 도 5의 이미지 프로세싱 시스템(126)과 같은 데이터 프로세싱 시스템으로 전송하는 방법(152)이 도 6에 도시된다.
도 6에서, 방법(152)의 항목(154)은 제2 신경망 층을 사용하여 출력 데이터의 버전을 프로세싱하여 제2 출력 데이터를 생성하는 단계를 포함한다. 도 1을 참조하여 위에서 논의된 바와 같이, 제1 출력 데이터의 버전은, 이미지 프로세싱 시스템(126)(예컨대, 이미지 프로세싱 시스템(126)의 NPU)이, 제1 출력 데이터의 버전이 제1 신경망 층을 사용하여 생성된 제1 출력 데이터와 동일하다고 결정하는 것에 대한 응답으로 제2 신경망 층을 사용하여 프로세싱될 수 있다. 일부 예들에서, 이러한 경우에 제2 신경망 층이 신경망의 최종 신경망 층을 나타내어서, 제2 출력 데이터가 신경망의 출력을 나타낼 수 있게 된다. 다른 예들에서, 제2 신경망 층이 신경망의 다른 신경망 층일 수 있어서, 제2 출력 데이터가 신경망의 최종 신경망 층이 아닌 신경망 층의 출력을 나타내게 된다.
방법(152)의 항목(156)은 제2 키를 생성하는 단계를 포함한다. 이러한 경우에, 제2 키는 제2 신경망 층과 연관된다. 예를 들어, 제2 키는 제2 신경망 층에 고유할 수 있다. 제1 키와 유사하게, 제2 키는 또한 실행 단위로 생성될 수 있어서, 상이한 시간들에의 제2 신경망 층의 다수의 실행들은 각각의 실행 시에 상이한 키들이 생성되게 할 것이다. 제1 신경망 층을 참조하여 전술된 예들과 유사한 다른 예들에서, 제2 신경망 층과 연관되는 다수의 키들이 생성될 수 있다.
방법(152)의 항목(158)은 제2 출력 데이터를 제2 데이터 프로세싱 시스템으로 전송하는 단계를 포함한다. (도 5의 컴퓨팅 시스템(140)을 사용하여 방법(152)이 구현되는) 이러한 예에서, 이미지 프로세싱 시스템(126)은 제1 데이터 프로세싱 시스템인 것으로 간주될 수 있고, 디스플레이 프로세서(144)는 제2 데이터 프로세싱 시스템인 것으로 간주될 수 있다. 그러나, 이들은 제1 및 제2 데이터 프로세싱 시스템들의 비제한적인 예들일 뿐이고, 도 6의 방법(152)은 이들 이외의 다른 데이터 프로세싱 시스템(들)을 이용하여 수행될 수 있다는 것이 인식될 것이다.
방법(152)의 아이템(160)은, 제2 키를 이러한 예에서 디스플레이 프로세서(144)인 제2 데이터 프로세싱 시스템으로 전송하는 단계를 포함한다. 제2 출력 데이터 및 제2 키는 예컨대 동일한 통신으로 제2 데이터 프로세싱 시스템에 함께 전송될 수 있거나, 예컨대 상이한 각자의 시간에 개별적으로 전송될 수 있다. 도 5를 다시 참조하면, 도 5의 컴퓨팅 시스템(140)은 이미지 프로세싱 시스템(126) 및 디스플레이 프로세서(144)를 위한 저장소(148)에 대한 액세스를 제어하는 데 사용될 수 있는 동적 메모리 제어기(dynamic memory controller, DMC)(146)를 포함한다. 이 예에서, 제2 키는 DMC(146)를 통해 이미지 프로세싱 시스템(126) 및 디스플레이 프로세서(144) 둘 모두에 액세스가능한 공유 저장소(148)를 사용하여 디스플레이 프로세서(144)로 전송된다. 이는 제2 키를 디스플레이 프로세서(144)로 안전하게 전달하는 것을 보장하기 위해 행해져서, 악성 당사자가 제2 키를 획득하는 위험이 감소된다. 도 5에 도시된 바와 같이, 제2 키가 공유 저장소(148)에 저장되어 있는 경우, 제2 키는 데이터 흐름 제어를 담당하는 컴퓨팅 시스템(140)의 유닛, 즉 이러한 예에서 DMC(146)에 의해서만 액세스가능할 수 있다(그러나, 이는 다른 예에서 그럴 필요가 없다). 제2 키가 저장되는 저장소(148)는, 도 4에 도시되는 외부 저장소(136)와 같은, 제1 출력 데이터 및/또는 제2 출력 데이터가 저장되어 있는 것과 동일한 외부 저장소(이미지 프로세싱 시스템(126) 외부에 있음)일 수 있다. 그러나, 다른 경우들에서, 제2 키를 저장하기 위한 저장소(148)는 제1 및/또는 제2 출력 데이터와 같은 신경망과 연관된 데이터를 저장하기 위한 저장소와 상이할 수 있다. 예를 들어, 도 5의 컴퓨팅 시스템(140)은 그 자체가, 예컨대 SoC로서 하드웨어에서 구현될 수 있다. 이 예에서, 저장소(148)는 컴퓨팅 시스템(140)의 내부 저장소일 수 있고, 신경망과 연관된 데이터를 저장하기 위한 저장소는 컴퓨팅 시스템(140) 외부에 있을 수 있다.
제2 키를 디스플레이 프로세서(144)로 전달하는 것은, 컴퓨팅 시스템(140)의 컴포넌트가 소정 데이터에 대해 또는 제2 키를 저장하는 저장소(148)와 같은 다른 컴포넌트들에 대해 얼마나 많이 액세스하는지를 결정하기 위해 각각의 컴포넌트에 신뢰 레벨들을 할당함으로써 안전하게 수행될 수 있다. 예를 들어, 보안 환경("또는 보안 도메인") 내의 컴포넌트들은 컴퓨팅 시스템(140) 내에서 신뢰될 수 있고, 따라서 예를 들어 컴퓨팅 시스템(140) 내의 보안-민감 데이터에 대한 액세스가 가능하게 될 수 있다. 그러나, 보안 환경 외부의 컴포넌트들(예컨대, 덜 안전한 환경에 있거나 또는 "비보안 도메인")은 저장소(148)에 저장된 제2 키와 같은 그러한 보안-민감 데이터에 대한 액세스가 가능하지 않을 수 있다. 이러한 방식으로, 보안 환경 내의 컴포넌트들은 보안 환경 외부의 컴포넌트들 및 시스템들에 액세스가능하지 않은 소정 저장소(예컨대, 보안 또는 "보호" 메모리 영역들)에 대해 액세스할 수 있다. 이 예에서, 이미지 프로세싱 시스템(126) 및 디스플레이 프로세서(144) 둘 모두에는, 이미지 프로세싱 시스템(126) 및 디스플레이 프로세서(144)가, 그들이 저장소(148)에 대한 액세스를 가능하게 하는 보안 도메인 내에 있음을 나타내는 신뢰 레벨들이 할당될 수 있다. 따라서, 이는 이미지 프로세싱 시스템(126) 및 디스플레이 프로세서(144) 둘 모두에 액세스가능한 공유 저장소(148)를 사용하여 제2 키가 디스플레이 프로세서(144)로 안전하게 전송될 수 있게 할 수 있다. 이 경우, 공유 저장소(148)에는 또한 공유 저장소(148)가 보안 도메인 내에 있다는 것을 나타내는 신뢰 레벨이 할당되었을 수 있어서, 공유 저장소(148)가 제2 키와 같은 보안-민감 데이터를 저장하게 할 수 있다. 이들 액세스 제어들은 Arm®의 TrustZone®과 같은 임베디드 하드웨어 기술을 사용하여 구현될 수 있다. 이러한 방식으로, 제2 키는 특정 보안 요건들을 충족시키는 컴퓨팅 시스템(140)의 컴포넌트들과만 공유될 수 있고, 이에 의해 제2 키가 인가되지 않은 자들에 의해 획득되는 위험을 감소시킨다.
도 4의 컴퓨팅 시스템(140)은 시스템 버스(150)를 사용한다. 이는 데이터가 다양한 컴포넌트들 사이에서 전달되게 하여, 공유 저장소(148)가 DMC(146)를 통해 이미지 프로세싱 시스템(126) 및 디스플레이 프로세서(144) 둘 모두에 대해 액세스할 수 있다. 버스(150)는 임의의 적절한 인터페이스 또는 버스일 수 있거나 이를 포함할 수 있다. 예를 들어, ARM® AMBA®(Advanced Microcontroller Bus Architecture) 인터페이스, 예컨대 AXI(Advanced eXtensible Interface)가 사용될 수 있다.
제2 출력 데이터는, 예를 들어 도 3을 참조하여 전술된 암호화 엔진(122)과 같은 암호화 엔진을 사용하여 디스플레이 프로세서(144)로 전송되기 전에 암호화될 수 있다. 제2 출력 데이터는, 예컨대 도 3의 출력 데이터(301)를 암호화하는 것과 유사한 방식으로, 제2 키를 사용하여 암호화 알고리즘을 적용함으로써 암호화될 수 있다.
제2 키는, 이미지 프로세싱 시스템(126)으로부터 디스플레이 프로세서(144)에 의해 획득된 제2 출력 데이터의 버전이 이미지 프로세싱 시스템(126)의 제2 신경망 층을 사용하여 생성된 제2 출력 데이터와 상이한지 여부를 결정하기 위해 디스플레이 프로세서(144)에 의해 사용될 수 있다. 이러한 결정은 출력 데이터의 버전이 출력 데이터와 상이한지 여부를 결정하기 위해 도 2 및 도 3을 참조하여 기술된 것과 유사한 방법들을 사용하여 수행될 수 있다. 제1 및 제2 시그니처가 계산되는 예에서, 제1 시그니처는, 제2 키 및 제2 출력 데이터에 기초하여 이미지 프로세싱 시스템(126)에 의해, 예컨대 이미지 프로세싱 시스템(126)의 NPU에 의해 계산될 것이다. 이어서, 제1 시그니처는 제2 키가 디스플레이 프로세서(144)로 전송되는 방법과 유사하게 디스플레이 프로세서(144)로 전송될 수 있는데, 이는 위에서 논의된 바와 같이, 시그니처들 및 키들이 동일한 접근가능성 요건들을 가질 수 있기 때문이다. 디스플레이 프로세서(144)는 제2 출력 데이터의 획득된 버전 및 제2 키에 기초하여 제2 시그니처를 계산하도록 구성될 수 있어서, 제2 시그니처가 제1 시그니처와 동일한지 여부가 결정될 수 있게 된다. 이는 디스플레이 프로세서(144)가, 제2 출력 데이터가 이미지 프로세싱 시스템(126)의 제2 신경망 층을 사용하여 생성된 이후에 탬퍼링되었거나 또는 손상되었는지 여부를 식별할 수 있게 한다.
이어서, 디스플레이 프로세서(144)는 제2 출력 데이터의 버전이 제2 출력 데이터와 상이한지 여부를 결정하는 것에 기초하여 제2 출력 데이터를 프로세싱할지 여부를 결정할 수 있다. 예를 들어, 디스플레이 프로세서(144)는 오직 제2 출력 데이터의 버전이 제2 출력 데이터와 동일하다는 결정에 대한 응답으로 제2 출력 데이터의 버전을 프로세싱할 수 있다. 이는 민감한 정보를 악성 당사자에게 노출시키는 위험을 감소시킬 수 있다.
예컨대 이미지 프로세싱 시스템(126) 및 디스플레이 프로세서(144)가 도 9를 참조하여 후술될 바와 같이 상이한 컴퓨팅 시스템들 내에 있는 다른 예들에서, 제2 키가 이미지 프로세싱 시스템(126) 및 디스플레이 프로세서(144) 둘 모두에 대해 액세스가능한 공유 저장소를 사용하여 디스플레이 프로세서(144)로 전송되는 것이 불가능할 수 있다. 이들 예들에서, 제2 키는 제2 출력 데이터가 디스플레이 프로세서(144)로 전송되는 제2 데이터 채널과는 상이한 제1 데이터 채널을 통해 제2 키를 디스플레이 프로세서(144)로 전송함으로써 디스플레이 프로세서(144)로 안전하게 전달될 수 있다. 이 예에서, 데이터 채널은 2개의 컴포넌트들, 예컨대 이미지 프로세싱 시스템(126) 및 디스플레이 프로세서(144) 사이에서 택하여지는 정보 루트를 나타낸다. 이와 같이, 별개의 데이터 채널들은 그들의 대역폭, 통신 프로토콜들, 정보가 통과하여 라우팅되는 디바이스들 및/또는 다양한 다른 인자들에 따라 달라질 수 있다. 예를 들어, 제2 키가 디스플레이 프로세서(144)로 전송되는 제1 데이터 채널은 NPU와 디스플레이 프로세서(144) 사이에서 제2 키를 안전하게 교환하기 위해 Diffie-Hellman 키 교환 프로토콜과 같은 암호화 통신 프로토콜을 사용할 수 있다. 별개의 보안 데이터 채널을 통해 디스플레이 프로세서(144)로 제2 키를 전송하는 것은 제2 키가 악성 당사자에 의해 획득되는 위험을 감소시킬 수 있다.
도 7은, 또 다른 추가 예들에 따른, 도 4의 이미지 프로세싱 시스템(126)을 포함하는 컴퓨팅 시스템(162)의 내부 컴포넌트들의 개략도이다. 컴퓨팅 시스템(162)은 이미지 신호 프로세서(image signal processor, ISP)(166)를 포함하며, 이는 예를 들어 디지털 카메라의 이미지 센서에 의해 캡처된 원시 데이터를 프로세싱하여, 이어서 추가 프로세싱을 위해 이미지 프로세싱 시스템(126)으로 전송되는 이미지 데이터를 생성하는 디지털 카메라의 ISP일 수 있다. 예를 들어, 이미지 데이터는 이미지 프로세싱 시스템(126)에 의해 구현되는 제1 신경망 층으로 입력될 수 있다.
이 예에서, 이미지 프로세싱 시스템(126)은 도 1을 참조하여 기술된 방법들을 수행하여, 제1 신경망 층에 의해 생성된 출력 데이터(이 예에서 제1 출력 데이터로 지칭될 수 있음)가, 제1 신경망 층과 연관된 키(이 예에서 제1 키로 지칭될 수 있음)를 사용하여 출력 데이터의 버전과 상이한지 여부를 결정하도록 배열된다. 예컨대, 제1 신경망 층에 입력하기 위한 입력 데이터가 이미지 프로세싱 시스템(126)에 의해 구현되는 바와 같은, 신경망의 제1 신경망 층에 입력하기 위한 입력 데이터의 버전과는 상이한지 여부를 결정하는 방법(174)이 도 8에 도시된다.
도 8의 방법(174)은, 신경망의 보안을 향상시키기 위해, 이미지 프로세싱 시스템(126)에 의해, 예컨대 이미지 프로세싱 시스템(126)의 NPU에 의해 구현된 신경망의 제1 신경망 층에 입력하기 위한 입력 데이터가 탬퍼링되었는지 여부를 결정하는 방법을 제공한다. 전술된 바와 같이, 제1 신경망 층에 입력하기 위한 데이터가 지시 데이터와 같은 악성 데이터로 교체되었거나 수정되었다면, 이러한 악성 데이터에 대한 제1 신경망 층의 동작은 제1 신경망 층의 가중치들을 노출시킬 수 있다.
방법(174)의 항목(176)은, 이러한 예에서 ISP(166)인 제3 데이터 프로세싱 시스템으로부터 제3 키를 획득하는 단계를 포함한다. 도 7의 이미지 프로세싱 시스템(126)은 제1 데이터 프로세싱 시스템에 대응하는 것으로 간주될 수 있다. 도 8의 방법(174)은 제2 데이터 프로세싱 시스템, 예컨대 디스플레이 프로세서와 같은 적어도 하나의 추가 데이터 프로세싱 시스템을 포함하는 컴퓨팅 시스템에서 구현될 수 있지만, 이는 그럴 필요가 없다. 이들은 제1, 제2 및 제3 데이터 프로세싱 시스템들의 비제한적인 예들일 뿐이고, 도 8의 방법(174)은 이들 이외의 다른 데이터 프로세싱 시스템(들)을 이용하여 수행될 수 있다는 것이 인식될 것이다.
방법(174)의 항목(176)에서 획득된 제3 키는 이미지 프로세싱 시스템(126)을 사용하여 (예컨대, 이미지 프로세싱 시스템(126)의 NPU에 의해) 프로세싱될 제1 신경망 층에 입력하기 위한 입력 데이터와 연관된다. 이러한 입력 데이터는 ISP(166)에 의해 생성된 이미지 데이터일 수 있어서, 제3 키는 이미지 데이터와 연관된다. 제3 키는 전술된 보안 메커니즘들 중 임의의 것을 사용하여 ISP(166)와 이미지 프로세싱 시스템(126) 사이에서 전달될 수 있다. 예를 들어, 도 7에 도시된 바와 같이, 컴퓨팅 시스템(162)은 이미지 프로세싱 시스템(126) 및 ISP(166)를 위한 저장소(170)에 대한 액세스를 제어하는 데 사용될 수 있는 동적 메모리 제어기(DMC)(168)를 포함한다. 이 경우, 제3 키는 DMC(168)를 통해 이미지 프로세싱 시스템(126) 및 ISP(166) 둘 모두에 액세스가능한 공유 저장소(170)를 사용하여 ISP(166)로부터 이미지 프로세싱 시스템(126)으로 전송될 수 있다. 이는 도 5를 참조하여 기술된 바와 같이 제2 키가 디스플레이 프로세서(144)로 전달되는 방법과 유사한 방식일 수 있다.
방법(174)의 항목(178)은 제1 신경망 층에 입력하기 위한 입력 데이터의 버전을 획득하는 단계를 포함한다. 입력 데이터의 버전은 예를 들어 ISP(166)로부터 이미지 프로세싱 시스템(126)에 의해 획득된다. 입력 데이터의 버전은 ISP(166)로부터 직접 이미지 프로세싱 시스템(126)에 의해 수신될 수 있거나, 저장소(컴퓨팅 시스템(162)의 저장소(170)와 동일하거나 상이할 수 있음)에 저장되고, 후속하여 이미지 프로세싱 시스템(126)에 의해 획득될 수 있다.
방법(174)의 항목(180)은 제3 키를 사용하여 입력 데이터의 버전이 입력 데이터와 상이한지 여부를 결정하는 단계를 포함한다. 이와 같이, 이미지 프로세싱 시스템(126)이 제1 신경망 층을 사용하여 입력 데이터의 버전을 프로세싱해야하는 경우 제1 신경망 층과 연관된 가중치들의 노출 위험이 있는지가 결정될 수 있다. 이 결정은 전술된 것들과 유사한 방법들을 사용하여 수행될 수 있다. 제1 및 제2 시그니처가 계산되는 예에서, 제1 시그니처는 제3 키 및 입력 데이터에 기초하여 ISP(166)에 의해 계산될 수 있다. 이어서, 제1 시그니처는 보안 방식으로, 예컨대 제3 키가 이미지 프로세싱 시스템(126)으로 전송되는 것과 동일한 보안 방식으로 이미지 프로세싱 시스템(126)으로 전송될 수 있다. 이어서, 이미지 프로세싱 시스템(126)은 제3 키 및 입력 데이터의 획득된 버전에 기초하여 제2 시그니처를 계산할 수 있어서, 제2 시그니처가 제1 시그니처와 동일한지 여부와, 따라서 입력 데이터가 ISP(166)와 이미지 프로세싱 시스템(126) 사이의 송신 동안 탬퍼링되었는지 여부가 결정될 수 있게 된다.
이미지 프로세싱 시스템(126)은 입력 데이터의 버전이 입력 데이터와 동일하다고 결정한 것에 대한 응답으로 제1 신경망 층을 사용하여 입력 데이터의 버전을 프로세싱할 수 있다. 입력 데이터의 버전이 입력 데이터와 상이하다고 결정하는 것에 응답하여, 이미지 프로세싱 시스템(126)은 입력 데이터의 버전이 입력 데이터와 상이하다는 표시를 나타내는 데이터를 생성하도록 구성될 수 있고/있거나 이미지 프로세싱 시스템(126)은 제1 신경망 층을 사용한 입력 데이터의 버전의 프로세싱을 생략할 수 있다. 이는, 제1 신경망 층이, 예컨대 제1 신경망 층과 연관된 가중치들을 노출시킬 수 있는 악성 데이터를 포함하는 입력 데이터를 프로세싱하는 데 사용되는 위험을 감소시킨다.
일부 예들에서, 이미지 프로세싱 시스템(126)으로의 송신을 위한 암호화된 입력 데이터를 생성하기 위해 제3 키를 사용하여 입력 데이터가 암호화된다. 이들 예에서, 이미지 프로세싱 시스템(126)(예컨대, 이미지 프로세싱 시스템(126)의 NPU)은 제3 키를 사용하여 제1 신경망에 입력하기 위한 입력 데이터의 버전을 암호해제하도록 구성된 암호해제 엔진을 포함할 수 있다. 암호해제 엔진은 예를 들어 도 3을 참조하여 전술된 암호해제 엔진(124)과 동일하거나 유사할 수 있다. 이러한 방식으로 입력 데이터를 암호화하는 것은 입력 데이터의 보안을 개선한다. 이 예에서, 이미지 프로세싱 시스템(126)은 입력 데이터의 암호해제된 버전에 기초하여 입력 데이터의 버전이 입력 데이터와 상이한지 여부를 결정할 수 있다.
도 7의 컴퓨팅 시스템이 ISP(166)를 포함하지만, 도 7의 컴퓨팅 시스템(162)과 유사하지 않게 컴퓨팅 시스템이, 하나 이상의 센서들을 포함하는 입력 디바이스와 같은 이미지 센서와는 상이한 입력 디바이스의 데이터 프로세싱 시스템과 같은 상이한 데이터 프로세싱 시스템을 대신 포함할 수 있다는 것이 이해될 것이다. 그러한 경우들에서, 하나 이상의 센서들은 센서 데이터를 획득하고 프로세싱을 위해 센서 데이터를 이미지 프로세싱 시스템(126)으로 전송하도록 구성될 수 있다. 이미지 프로세싱 시스템(126)에 의해 구현되는 복수의 신경망 층들은, 예를 들어 이미지 프로세싱 시스템(126)에 입력하기 위한 데이터가 이미지 데이터를 포함하는 경우에 얼굴 인식과 같은 입력 디바이스로부터 획득된 입력 데이터에 대해 태스크를 수행하는 데 사용될 수 있다. 추가적으로 또는 대안으로, 입력 디바이스는 디코딩된 데이터를 이미지 프로세싱 시스템(126)에 출력하도록 구성된 디코더를 포함할 수 있다. 예를 들어, 디코더는 비디오를 디코딩하고 디코딩된 비디오를 이미지 프로세싱 시스템(126)에 출력하여 신경망에 의해 프로세싱되게 하는 비디오 디코더일 수 있다. 이미지 프로세싱 시스템(126)에 입력하기 위해 입력 디바이스로부터 전송된 데이터는 입력 디바이스에 의해 생성될 수 있거나, 예컨대 다른 시스템 또는 디바이스로부터의 입력 디바이스에 의해 획득될 수 있다는 것이 인식될 것이다. 예를 들어, 이미지 프로세싱 시스템(126)에 입력하기 위한 데이터는 그래픽 프로세싱 유닛(GPU)에 의해 생성된 이미지 데이터일 수 있다.
따라서, 본 명세서에 기술된 방법들은, 신경망 층에 입력하기 위한 데이터가 먼저 생성된 이후에 그 데이터가 변경되었는지 여부를 결정하는 것을 가능하게 한다는 것을 알 수 있다. 게다가, 본 명세서에 기술된 방법들은 입력 데이터, 출력 데이터, 및/또는 신경망에서 수반되는 동작들에 대응하는 데이터(예컨대, 가중치들 및/또는 바이어스들)가 악성 당사자에게 노출되는 위험을 감소시킬 수 있다. 여기서 입력 및 출력 데이터의 보안은 전체 신경망의 입력들 및 출력들로 제한되지 않고, 개별 신경망 층들의 입력들 및 출력들에도 적용된다.
도 5 및 도 7의 컴퓨팅 시스템들(140, 162)은 (예컨대, 단일 디바이스에 대응하는) 단일 시스템으로 도시되어 있지만, 도 5 및 도 7의 컴퓨팅 시스템들(140, 162)과는 유사하지 않게 컴퓨팅 시스템들이 분산 시스템들로 구현될 수 있다는 것이 인식될 것이다. 예를 들어, 도 5의 이미지 프로세싱 시스템(126) 및 디스플레이 프로세서(144)는 상이한 컴퓨팅 시스템들 내에 있을 수 있다. 유사하게, 도 7의 이미지 프로세싱 시스템(126) 및 ISP(166)는 상이한 컴퓨팅 시스템들 내에 있을 수 있다. 본 명세서의 방법들과 함께 사용하기 위한 분산 시스템의 예가 도 9에 도시되어 있는데, 이는 데이터 통신망(188)을 통해 서로 통신하는 제1 컴퓨팅 시스템(184) 및 제2 컴퓨팅 시스템(186)을 포함하는 시스템(182)의 개략도이다. 예를 들어, 도 7의 ISP(166)와 같은 하나의 데이터 프로세싱 시스템이 제1 컴퓨팅 시스템(184)에 포함될 수 있으며, 이는 이러한 예에서 디지털 카메라일 수 있다. 이미지 프로세싱 시스템(126)과 같은 다른 데이터 프로세싱 시스템이 제2 컴퓨팅 시스템(186)에 포함될 수 있으며, 이는 이러한 예에서 랩톱 컴퓨터일 수 있다(그러나 이는 단지 예이다). 이 경우에, 랩톱 컴퓨터 내의 이미지 프로세싱 시스템(126)은 이미지 데이터로서 제1 컴퓨팅 시스템(184)의 디지털 카메라의 ISP로부터 수신된 이미지를 업스케일링하기 위해 초고해상도 신경망을 구현하도록 구성될 수 있다. 데이터 통신망(188)은 사설망 링크들 및/또는 공중망 링크들을 포함할 수 있고, 복수의 상호접속된 망들을 포함할 수 있다. 제1 및 제2 컴퓨팅 시스템들(184, 186)은 통합형 또는 외부 결합형 유선 네트워킹 능력들을 가질 수 있다. 대안으로 또는 추가적으로, 제1 및 제2 컴퓨팅 시스템들(184, 186)은 LTE(Long-Term Evolution) 표준들을 사용하는 것들과 같은 무선 통신 시스템들을 사용하여, 통합형 또는 외부 결합형 무선 네트워킹 능력들을 가질 수 있다. 제1 및 제2 컴퓨팅 시스템들(184, 186) 중 하나 또는 둘 모두는 인터넷 프로토콜(Internet Protocol, IP)을 사용하여 통신하는 서버들, 라우터들 및 다른 네트워킹 장비를 포함하는 하나 이상의 망들에 접속될 수 있다. 이 예에서, 제3 키는 제1 컴퓨팅 시스템(184)의 디지털 카메라의 ISP로부터, 카메라에 의해 획득된 이미지 데이터가 랩톱 컴퓨터로 전송되는 제2 데이터 채널과는 상이한 제1 데이터 채널을 통해 제2 컴퓨팅 시스템(186)의 랩톱 컴퓨터의 데이터 프로세싱 시스템으로 안전하게 전송될 수 있다. 예를 들어, 제3 키는 별개의 보안 데이터 채널을 통해 전송될 수 있다. 이는 제3 키가 악성 당사자에 의해 획득되는 위험을 감소시킬 수 있다. 상기 예들과 관련하여 설명된 바와 같이, 이는 따라서, 랩톱 컴퓨터의 이미지 프로세싱 시스템(126)에 의해 구현되는 신경망의 가중치들 및/또는 입력 데이터가 노출되는 위험을 감소시킬 수 있다.
추가의 예들이 고려된다. 전술된 것들과 같은 신경망의 주어진 신경망 층의 경우, 신경망 층을 사용하여 한 번에 모든 입력 데이터를 프로세싱하는 것은 불가능할 수 있다. 예를 들어, 전체 입력 이미지 또는 입력 이미지에 대한 하나 이상의 신경망 층들의 동작으로 인해 생성되는 입력 특징 맵은 단일 인스턴스의 신경망 층을 사용하여 프로세싱하기에는 크기가 너무 클 수 있다. 따라서, 일부 예들에서, 신경망 층에 입력하기 위한 데이터는, 신경망 층을 사용하여 예컨대, 차례로 또는 병렬로 프로세싱될 일부분들로 분할될 수 있다.
이 원리를 도 4의 이미지 프로세싱 시스템(126)에 적용하면, 제1 신경망 층을 사용하여 생성된 출력 데이터가 일부분들은 외부 저장소(130)로 전송될 수 있고, 출력 데이터의 버전은 일부분들은 외부 저장소(130)로부터 획득될 수 있다. 출력 데이터의 일부분들이 전송되고 출력 데이터의 버전의 일부분들이 획득되는 순서는 DMA 엔진(132)에 의해 제어될 수 있다. 일부 예들에서, 출력 데이터의 일부분들이 외부 저장소(130)로 전송되는 순서는 출력 데이터의 버전의 대응하는 일부분들이 외부 저장소(130)로부터 획득되는 것과 동일한 순서일 수 있다. 다른 예들에서는 그러나, 출력 데이터의 일부분들이 외부 저장소(130)로 전송되는 순서는 출력 데이터의 버전의 대응하는 일부분들이 외부 저장소(130)로부터 획득되는 것과 동일한 순서가 아닐 수 있다. 이미지 프로세싱 시스템(126), 예컨대 이미지 프로세싱 시스템(126)의 NPU(128)는 출력 데이터의 버전의 일부분이 위치 식별자에 기초하여 출력 데이터의 대응하는 일부분과 상이한지 여부를 결정하도록 구성될 수 있다. 이 경우, 위치 식별자는 출력 데이터 내의 출력 데이터의 대응하는 일부분을 식별한다. 따라서, 출력 데이터가 탬퍼링되었는지 여부의 결정은 이러한 결정이 수행되고 있는 출력 데이터의 일부분을 식별하는 데 위치 식별자가 사용될 수 있는 일부분별 단위로 수행될 수 있다. 이 예에서, 이미지 프로세싱 시스템(126), 예컨대 NPU(128)는 위치 식별자에 기초하여 키를 수정하고 수정된 키를 사용하여 출력 데이터의 버전의 일부분이 출력 데이터의 대응하는 일부분과 상이한지 여부를 결정하도록 추가로 구성될 수 있다. 이러한 방식으로, 결정에 사용되는 키는 출력 데이터의 각각의 일부분에 대해 상이하여, 악성 당사자가 출력 데이터의 각각의 일부분과 연관된 각각의 키를 획득하는 것에 대해 추가적인 곤란성을 제공할 수 있다. 이것의 예가 도 10을 참조하여 이하에 논의된다.
도 10은 (전술된) 도 4의 이미지 프로세싱 시스템(126)과 같은, 본 명세서의 예들에 따른 이미지 프로세싱 시스템을 사용하여 프로세싱될 이미지(190)의 개략도이다. 일부 예들에서, 이미지(190)는 하나 이상의 신경망 층들을 사용하여 데이터를 프로세싱함으로써 생성되는 특징 맵일 수 있다. 그러나, 다른 경우들에서, 이미지(190)는 이미지로 나타내어지는 장면의 대응하는 일부분의 속성(예컨대, 세기 및/또는 색상)을 나타내는 각자의 픽셀 값들을 갖는 픽셀들의 어레이를 포함할 수 있다. 이 예에서, 이미지(190)는 4개의 타일들: 상부-좌측 타일(192), 상부-우측 타일(194), 하부-좌측 타일(196), 하부-우측 타일(198)을 포함한다. 도 10에 도시되지 않았지만, 4개의 타일들로 나타내어지는 이미지(190)의 영역들은 부분적으로 중첩될 수 있다. 이미지(190)는 4개의 일부분들로 분할될 수 있는 이미지 데이터로 나타내어질 수 있으며, 이미지 데이터의 각각의 일부분은 이미지(190)의 4개의 타일들 중 하나를 나타낸다. 이 예에서, 일부분별 프로세싱을 설명하기 위해서, 이미지(190)를 나타내는 이미지 데이터는 제1 신경망 층을 사용하여 생성된 출력 데이터이고 출력 데이터의 버전은 전술된 바와 같이 제2 신경망 층에 입력하기 위한 이미지 데이터의 버전을 나타낸다.
이 예에서, 위치 식별자는 이미지(190) 내의 타일들 각각을 식별하는 고유 식별자일 수 있다. 이미지(190)가 4개의 타일들로 분할되는 단순한 예에서, 위치 식별자는 2-비트 이진 수일 수 있다. 예를 들어, 상부-좌측 타일(192)을 나타내는 이미지 데이터의 일부분은 00의 값을 갖는 위치 식별자를 가질 수 있다. 상부-우측 타일(194)을 나타내는 이미지 데이터의 일부분은 01의 값을 갖는 위치 식별자를 가질 수 있다. 하부-좌측 타일(196)을 나타내는 이미지 데이터의 일부분은 값 10을 갖는 위치 식별자를 가질 수 있고, 하부-우측 타일(198)을 나타내는 이미지 데이터의 일부분은 11의 값을 갖는 위치 식별자를 가질 수 있다. 이러한 방식으로, 위치 식별자는 이미지 데이터 내의 이미지 데이터의 대응하는 일부분을 식별한다.
이 예에서, 제1 신경망 층과 연관된 키는 위치 식별자에 기초하여 수정된다. 예를 들어, 이미지(190)의 각각의 타일에 대한 수정된 키를 생성하기 위해 위치 식별자 값이 키의 값에 첨부될 수 있다. 이러한 방식으로, 주어진 타일의 경우, 그 주어진 타일과 연관된 수정된 키는 이미지 데이터의 버전의 일부분이 이미지 데이터의 대응하는 일부분과 상이한지 여부를 결정하는 데 사용될 것이다. 이 예에서, 이미지 프로세싱 시스템(126)의 저장소(130)는 여전히 키를 저장할 수 있는데, 여기서 어떠한 위치 식별자도 첨부되지 않은 상태로, 4개의 상이한 키들과는 대조적으로 하나의 키가 저장되어, 저장소(130)의 용량 요건들을 감소시킨다. 이 경우에서, 주어진 타일에 대한 위치 식별자는 주어진 타일에 대한 수정된 키가 요구될 때 단일 키에 첨부된다.
이 원리를 이해하기 위해서, 이러한 예는 이미지 데이터의 버전의 일부분이 이미지 데이터의 대응하는 일부분과 상이한지 여부의 시그니처 기반 결정을 고려한다. 그러나, 이러한 결정이 이미지 데이터의 버전의 암호해제된 일부분에 기초할 때 동일한 원칙이 적용될 수 있음을 이해해야 한다.
이 예에서, 이미지 데이터의 일부분의 경우, 이미지 데이터의 이러한 일부분과 주어진 타일(예를 들어, 상부-좌측 타일(192))에 대한 위치 식별자를 제1 신경망 층과 연관된 키에 첨부함으로써 생성된 수정된 키에 기초하여 제1 시그니처가 계산된다. 이어서, 저장소(130)는 수정되지 않은 키 및 제1 시그니처를 저장할 수 있다. 이미지 데이터의 일부분은 인터페이스(134)를 통해 외부 저장소(136)로 전송될 수 있다. 이는 DMA 엔진(132)에 의해 제어될 수 있다. 이미지의 버전의 주어진 타일(예를 들어, 이미지의 버전의 상부-좌측 타일)을 나타내는 이미지 데이터의 버전의 대응하는 일부분이 DMA 엔진(132)을 사용하여 외부 저장소(136)로부터 획득될 때, 수정된 키를 재생성하기 위해서 저장소(130)로부터 획득된 키에, 매칭되는 위치 식별자가 첨부될 수 있다. 이미지 프로세싱 시스템(126)의 NPU(128)는 이미지 데이터의 버전의 일부분 및 재생성된 수정된 키에 기초하여 제2 시그너처를 계산하도록 구성되므로, NPU(128)는 제2 시그너처가 제1 시그너처와 동일한지 여부를 결정할 수 있다. 이러한 방식으로, 본 명세서에 기술된 예들은 일부분별 단위로 적용될 수 있다. 대안적인 실시예에서, 이미지(190)의 각각의 타일에 대해 별개의 키(및 일부 예들에서, 별개의 시그니처)가 생성되어, 각각의 타일에 대해 생성된 키들의 변동성을 제공한다.
추가의 예들이 고려된다. 예를 들어, 본원에 설명된 예들에서 제1 및 제2 신경망 층들이 단수로 언급되었지만, 제1 및 제2 신경망 층들 중 하나 또는 둘 모두가 복수의 신경망 층의 융합일 수 있으므로, 전술한 바와 같이 신경망 층을 프로세싱하는 것은 실제로 다수의 층들의 프로세싱을 수반할 수 있다는 것이 이해될 것이다. 예를 들어, 도 4의 이미지 프로세싱 시스템(126)의 NPU(128)가 제1 신경망 층 전에 적어도 하나의 추가 신경망 층을 사용하여 입력 데이터를 프로세싱함으로써 출력 데이터를 생성하도록 구성되어서, 출력 데이터는 다수의 층들의 프로세싱의 출력일 수 있다. 이는 후속 신경망 층에 입력되기 전에 신경망 층에 의해 생성된 데이터가 탬퍼링되었는지 여부를 결정하는 것이 모든 각각의 층 사이에서 수행되지 않고 대신 층들의 그룹들 사이에서 스테이지들 별로 적용될 수 있음을 의미할 수 있다. 다른 비제한적인 예에서, 제1 및 제2 신경망 층들 중 어느 하나 또는 둘 모두가 층의 서브-유닛일 수 있다는 것이 이해될 것이다. 이는 데이터 프로세싱 시스템의 적어도 하나의 프로세서가 주어진 시간에 전체 계층을 구현할 능력을 갖지 않을 수 있는 특히 대형의 신경망 층들에 대한 경우일 수 있다.
위의 예들에서, 출력 데이터가 제1 신경망 층을 사용하여 생성되고 제1 신경망과 연관된 키가 생성된다. 그러나, 일부 경우들에서, 예컨대 모든 신경망 층보다 적은, 신경망 층의 적어도 일부분을 사용하여 출력 데이터가 생성될 수 있다는 것이 인식될 것이다. 그러한 경우들에서, 키는 신경망 층의 적어도 일부분과 연관될 수 있다. 예를 들어, 도 1의 출력 데이터(101)는 제1 신경망 층(104)의 일부분을 사용하여 생성될 수 있고, 제1 신경망 층(104)의 일부분과 연관되는 키가 생성될 수 있다. 그러한 경우들은, 신경망 층, 예컨대 제1 신경망 층의 상이한 각자의 일부분과 각각 연관되는 복수의 출력 데이터 세트들을 생성하는 것을 수반할 수 있다. 복수의 키 세트들이 차례로 생성될 수 있으며, 각각은 신경망 층의 상이한 각자의 일부분과 연관된다.
임의의 하나의 예와 관련하여 설명된 임의의 특징은 단독으로 또는 설명된 다른 특징들과 조합하여 사용될 수 있으며, 또한 임의의 다른 예들의 하나 이상의 특징들과 또는 임의의 다른 예들의 임의의 조합과 조합하여 사용될 수 있다는 것이 이해될 것이다. 게다가, 전술되지 않은 등가물들 및 수정들은 또한 첨부된 청구범위들의 범주를 벗어나지 않고 채용될 수 있다.

Claims (20)

  1. 데이터 프로세싱 시스템으로서,
    저장소; 및
    적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는,
    제1 신경망 층의 적어도 일부분을 사용하여 출력 데이터를 생성하고;
    상기 제1 신경망 층의 적어도 일부분과 연관된 키를 생성하고;
    상기 저장소로부터 상기 키를 획득하고;
    제2 신경망 층으로 입력하기 위한 상기 출력 데이터의 버전을 획득하고;
    상기 키를 사용하여, 상기 출력 데이터의 버전이 상기 출력 데이터와 상이한지 여부를 결정하는, 데이터 프로세싱 시스템.
  2. 제1항에 있어서, 상기 저장소는 상기 데이터 프로세싱 시스템의 로컬 저장소이고, 상기 적어도 하나의 프로세서는,
    상기 출력 데이터를, 저장하기 위해, 상기 데이터 프로세싱 시스템 외부에 있는 외부 저장소로 전송하도록; 그리고
    상기 외부 저장소로부터 상기 출력 데이터의 버전을 획득하도록 동작가능한, 데이터 프로세싱 시스템.
  3. 제1항에 있어서, 상기 저장소는 상기 데이터 프로세싱 시스템의 적어도 하나의 프로세서에 의해서만 액세스가능한, 데이터 프로세싱 시스템.
  4. 제1항에 있어서, 상기 적어도 하나의 프로세서는,
    상기 키 및 상기 출력 데이터에 기초하여 제1 시그니처를 계산하도록;
    상기 제1 시그니처를 상기 저장소에 저장하도록;
    상기 저장소로부터 상기 제1 시그니처를 획득하도록; 그리고
    상기 키 및 상기 출력 데이터의 버전에 기초하여 제2 시그니처를 계산하도록 동작가능하고, 상기 출력 데이터의 버전이 상기 출력 데이터와 상이한지 여부를 결정하기 위해, 상기 적어도 하나의 프로세서는 상기 제2 시그니처가 상기 제1 시그니처와 동일한지 여부를 결정하도록 동작가능한, 데이터 프로세싱 시스템.
  5. 제1항에 있어서,
    상기 키를 사용하여 상기 출력 데이터를 암호화하기 위한 암호화 엔진; 및
    상기 키를 사용하여 상기 출력 데이터의 버전을 암호해제하여 상기 출력 데이터의 암호해제된 버전을 생성하는 암호해제 엔진을 포함하고, 상기 적어도 하나의 프로세서는 상기 출력 데이터의 암호해제된 버전에 기초하여 상기 출력 데이터의 버전이 상기 출력 데이터와 상이한지 여부를 결정하도록 동작가능한, 데이터 프로세싱 시스템.
  6. 제1항에 있어서, 상기 출력 데이터의 버전이 상기 출력 데이터와 상이하다고 결정하는 것에 대한 응답으로, 상기 적어도 하나의 프로세서는 상기 출력 데이터의 버전이 상기 출력 데이터와 상이하다는 표시를 나타내는 데이터를 생성하도록 동작가능한, 데이터 프로세싱 시스템.
  7. 제1항에 있어서, 상기 출력 데이터의 버전이 상기 출력 데이터와 동일하다고 결정하는 것에 대한 응답으로, 상기 적어도 하나의 프로세서는 상기 제2 신경망 층을 사용하여 상기 출력 데이터의 버전을 프로세싱하도록 동작가능한, 데이터 프로세싱 시스템.
  8. 제7항에 있어서, 상기 데이터 프로세싱 시스템은 제1 데이터 프로세싱 시스템이고, 상기 출력 데이터는 제1 출력 데이터이고, 상기 키는 제1 키이고, 상기 적어도 하나의 프로세서는,
    상기 제2 신경망 층을 사용하여 상기 출력 데이터의 버전을 프로세싱하여 제2 출력 데이터를 생성하도록;
    제2 키를 생성하도록 - 상기 제2 키는 상기 제2 신경망 층과 연관됨 -;
    상기 제2 출력 데이터를 제2 데이터 프로세싱 시스템으로 전송하도록; 그리고
    상기 제2 키를 상기 제2 데이터 프로세싱 시스템으로 전송하도록 동작가능한, 데이터 프로세싱 시스템.
  9. 제8항에 있어서, 상기 제2 출력 데이터를 상기 제2 데이터 프로세싱 시스템으로 전송하기 전에 상기 제2 키를 사용하여 상기 제2 출력 데이터를 암호화하기 위한 암호화 엔진을 포함하는, 데이터 프로세싱 시스템.
  10. 제8항에 있어서,
    상기 제2 키는, 상기 제2 출력 데이터가 상기 제2 데이터 프로세싱 시스템으로 전송되는 제2 데이터 채널과는 상이한 제1 데이터 채널을 통해 상기 제2 데이터 프로세싱 시스템으로 전송되거나; 또는
    상기 제2 키는, 상기 제1 데이터 프로세싱 시스템 및 상기 제2 데이터 프로세싱 시스템 둘 모두에 액세스가능한 공유 저장소를 사용하여 상기 제2 데이터 프로세싱 시스템으로 전송되는, 데이터 프로세싱 시스템.
  11. 제1항에 있어서, 상기 데이터 프로세싱 시스템은 제1 데이터 프로세싱 시스템이고, 상기 키는 제1 키이고, 상기 적어도 하나의 프로세서는,
    제3 데이터 프로세싱 시스템으로부터 제3 키를 획득하도록 - 상기 제3 키는 상기 제1 신경망 층의 적어도 일부분에 입력하기 위한 입력 데이터와 연관됨 -;
    상기 제1 신경망 층의 적어도 일부분에 입력하기 위한 상기 입력 데이터의 버전을 획득하도록; 그리고
    상기 제3 키를 사용하여, 상기 입력 데이터의 버전이 상기 입력 데이터와 상이한지 여부를 결정하도록 동작가능한, 데이터 프로세싱 시스템.
  12. 제11항에 있어서, 상기 제3 키를 사용하여 상기 입력 데이터의 버전을 암호해제하여 상기 입력 데이터의 암호해제된 버전을 생성하기 위한 암호해제 엔진을 포함하고, 상기 적어도 하나의 프로세서는 상기 입력 데이터의 암호해제된 버전에 기초하여 상기 입력 데이터의 버전이 상기 입력 데이터와 상이한지 여부를 결정하도록 동작가능한, 데이터 프로세싱 시스템.
  13. 제11항에 있어서,
    상기 입력 데이터의 버전이 상기 입력 데이터와 동일하다고 결정하는 것에 대한 응답으로, 상기 적어도 하나의 프로세서는 상기 제1 신경망 층의 적어도 일부분을 사용하여 상기 입력 데이터의 버전을 프로세싱하도록 동작가능하거나; 또는
    상기 입력 데이터의 버전이 상기 입력 데이터와 상이하다고 결정하는 것에 대한 응답으로, 상기 적어도 하나의 프로세서는 상기 입력 데이터의 버전이 상기 입력 데이터와 상이하다는 표시를 나타내는 데이터를 생성하도록 동작가능한, 데이터 프로세싱 시스템.
  14. 제1항에 있어서, 상기 적어도 하나의 프로세서는 위치 식별자에 기초하여 상기 출력 데이터의 버전의 일부분이 상기 출력 데이터의 대응하는 일부분과 상이한지 여부를 결정하도록 동작가능하고, 상기 위치 식별자는 상기 출력 데이터 내의 상기 출력 데이터의 대응하는 일부분을 식별하는, 데이터 프로세싱 시스템.
  15. 제14항에 있어서, 상기 적어도 하나의 프로세서는,
    상기 위치 식별자에 기초하여 상기 키를 수정하도록; 그리고
    상기 수정된 키를 사용하여, 상기 출력 데이터의 버전의 일부분이 상기 출력 데이터의 대응하는 일부분과 상이한지 여부를 결정하도록 동작가능한, 데이터 프로세싱 시스템.
  16. 제1항에 있어서, 상기 데이터 프로세싱 시스템은 이미지 프로세싱 시스템이고, 상기 제1 신경망 층 및 상기 제2 신경망 층은 컨볼루션 신경망(convolutional neural network)의 각자의 층들이고, 상기 컨볼루션 신경망으로 입력된 데이터는 이미지를 나타내고, 상기 출력 데이터는 출력 특징 맵이고 상기 출력 데이터의 버전은 입력 특징 맵인, 데이터 프로세싱 시스템.
  17. 제1항에 있어서, 상기 적어도 하나의 프로세서는,
    상기 출력 데이터에 무손실 압축을 적용하는 것; 또는
    상기 출력 데이터에 손실 압축을 적용하는 것 중 적어도 하나를 하도록 동작가능하고, 상기 키는 상기 출력 데이터의 손실 압축 후에 생성되는, 데이터 프로세싱 시스템.
  18. 방법으로서,
    제1 신경망 층의 적어도 일부분을 사용하여 출력 데이터를 생성하는 단계;
    상기 제1 신경망 층의 적어도 일부분과 연관된 키를 생성하는 단계;
    상기 키를 저장소에 저장하는 단계;
    상기 저장소로부터 상기 키를 획득하는 단계;
    제2 신경망 층에 입력하기 위한 상기 출력 데이터의 버전을 획득하는 단계; 및
    상기 키를 사용하여, 상기 출력 데이터의 버전이 상기 출력 데이터와 상이한지 여부를 결정하는 단계를 포함하는, 방법.
  19. 제18항에 있어서, 상기 방법은,
    상기 키 및 상기 출력 데이터에 기초하여 제1 시그니처를 계산하는 단계;
    상기 제1 시그니처를 상기 저장소에 저장하는 단계;
    상기 저장소로부터 상기 제1 시그니처를 획득하는 단계; 및
    상기 키 및 상기 출력 데이터의 버전에 기초하여 제2 시그니처를 계산하는 단계 중 적어도 하나를 포함하고, 상기 출력 데이터의 버전이 상기 출력 데이터와 상이한지 여부를 결정하는 단계는 상기 제2 시그니처가 상기 제1 시그니처와 동일한지 여부를 결정하는 것; 또는
    상기 키를 사용하여 상기 출력 데이터를 암호화하는 것; 및
    상기 키를 사용하여 상기 출력 데이터의 버전을 암호해제하는 것을 포함하며, 상기 출력 데이터의 암호해제된 버전에 기초하여 상기 출력 데이터의 버전이 상기 출력 데이터와 상이한지 여부가 결정되는, 방법.
  20. 제18항에 있어서, 상기 방법은 제1 데이터 프로세싱 시스템에 의해 구현되고, 상기 키는 제1 키이고, 상기 방법은,
    제2 데이터 프로세싱 시스템으로부터 제2 키를 획득하는 단계 - 상기 제2 키는 상기 제1 신경망 층의 적어도 일부분에 입력하기 위한 입력 데이터와 연관됨 -;
    상기 제1 신경망 층의 적어도 일부분에 입력하기 위한 상기 입력 데이터의 버전을 획득하는 단계; 및
    상기 제2 키를 사용하여, 상기 입력 데이터의 버전이 상기 입력 데이터와 상이한지 여부를 결정하는 단계를 포함하고,
    상기 제2 데이터 프로세싱 시스템은 입력 디바이스의 데이터 프로세싱 시스템이고, 상기 입력 디바이스는,
    센서 데이터를 획득하고 상기 센서 데이터를 상기 제1 데이터 프로세싱 시스템에 전송하기 위한 하나 이상의 센서들; 및
    디코딩된 데이터를 상기 제1 데이터 프로세싱 시스템에 출력하기 위한 디코더 중 적어도 하나를 포함하는, 방법.
KR1020210098316A 2020-07-28 2021-07-27 데이터 프로세싱 시스템 및 방법 KR20220014315A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/940,770 2020-07-28
US16/940,770 US11824977B2 (en) 2020-07-28 2020-07-28 Data processing system and method

Publications (1)

Publication Number Publication Date
KR20220014315A true KR20220014315A (ko) 2022-02-04

Family

ID=79921005

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210098316A KR20220014315A (ko) 2020-07-28 2021-07-27 데이터 프로세싱 시스템 및 방법

Country Status (3)

Country Link
US (1) US11824977B2 (ko)
KR (1) KR20220014315A (ko)
CN (1) CN114004345A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11874900B2 (en) * 2020-09-29 2024-01-16 Hailo Technologies Ltd. Cluster interlayer safety mechanism in an artificial neural network processor
CN115277144B (zh) * 2022-07-20 2024-02-20 南京南瑞信息通信科技有限公司 一种链路聚合数据传输方法、系统、装置及存储介质

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7561747B2 (en) * 2005-12-23 2009-07-14 Xerox Corporation Image data processing system and method
US10878320B2 (en) * 2015-07-22 2020-12-29 Qualcomm Incorporated Transfer learning in neural networks
US10460340B2 (en) * 2015-07-31 2019-10-29 Wideorbit Inc. Verifying ad requests
US10706349B2 (en) * 2017-05-25 2020-07-07 Texas Instruments Incorporated Secure convolutional neural networks (CNN) accelerator
KR20190055610A (ko) * 2017-11-15 2019-05-23 삼성전자주식회사 뉴럴 네트워크 모델들의 공용 연산 그룹을 단일 처리하는 뉴럴 네트워크 시스템, 이를 포함하는 애플리케이션 프로세서 및 뉴럴 네트워크 시스템의 동작방법
US10545559B2 (en) 2018-02-20 2020-01-28 Apical Limited Data processing system and method
US20190273510A1 (en) * 2018-03-01 2019-09-05 Crowdstrike, Inc. Classification of source data by neural network processing
US20190273509A1 (en) * 2018-03-01 2019-09-05 Crowdstrike, Inc. Classification of source data by neural network processing
US11475306B2 (en) * 2018-03-22 2022-10-18 Amazon Technologies, Inc. Processing for multiple input data sets
US11461631B2 (en) * 2018-03-22 2022-10-04 Amazon Technologies, Inc. Scheduling neural network computations based on memory capacity
US10944776B2 (en) * 2018-07-13 2021-03-09 Ribbon Communications Operating Company, Inc. Key performance indicator anomaly detection in telephony networks
US10720151B2 (en) * 2018-07-27 2020-07-21 Deepgram, Inc. End-to-end neural networks for speech recognition and classification
US10956584B1 (en) * 2018-09-25 2021-03-23 Amazon Technologies, Inc. Secure data processing
US11544411B2 (en) * 2019-01-17 2023-01-03 Koninklijke Philips N.V. Machine learning model validation and authentication
US11275846B2 (en) * 2019-02-16 2022-03-15 Intel Corporation Method and system of computer graphics processing system validation for processing of encrypted image content
CN111709883B (zh) * 2019-03-01 2023-06-13 阿里巴巴集团控股有限公司 一种图像检测方法、装置及设备
US11609792B2 (en) * 2019-03-19 2023-03-21 Alibaba Group Holding Limited Maximizing resource utilization of neural network computing system
US11388416B2 (en) * 2019-03-21 2022-07-12 Qualcomm Incorporated Video compression using deep generative models
US11477060B2 (en) * 2019-04-16 2022-10-18 Motorola Solutions, Inc. Systems and methods for modulation classification of baseband signals using attention-based learned filters
WO2021040419A1 (en) * 2019-08-30 2021-03-04 Samsung Electronics Co., Ltd. Electronic apparatus for applying personalized artificial intelligence model to another model
US20210073393A1 (en) * 2019-09-09 2021-03-11 Kazuhm, Inc. Encryption for machine learning model inputs
US11494898B2 (en) * 2019-10-31 2022-11-08 Optum Services (Ireland) Limited Predictive data analysis using image representations of categorical and scalar feature data
US11373751B2 (en) * 2019-10-31 2022-06-28 Optum Services (Ireland) Limited Predictive data analysis using image representations of categorical and scalar feature data
US11295136B2 (en) * 2019-10-31 2022-04-05 Optum Services (Ireland) Limited Predictive data analysis using image representations of categorical and scalar feature data
US11264126B2 (en) * 2019-10-31 2022-03-01 Optum Services (Ireland) Limited Predictive data analysis using image representations of categorical and scalar feature data
KR20210066623A (ko) * 2019-11-28 2021-06-07 삼성전자주식회사 서버 및 이의 제어 방법
WO2021118173A1 (en) * 2019-12-09 2021-06-17 Samsung Electronics Co., Ltd. Electronic device and controlling method of electronic device
US20210182660A1 (en) * 2019-12-16 2021-06-17 Soundhound, Inc. Distributed training of neural network models
KR20210076691A (ko) * 2019-12-16 2021-06-24 삼성전자주식회사 프레임워크 간 뉴럴 네트워크의 학습을 검증하는 방법 및 장치
US11551083B2 (en) * 2019-12-17 2023-01-10 Soundhound, Inc. Neural network training from private data
US11663107B2 (en) * 2020-02-21 2023-05-30 Arm Limited Data processing system performance monitoring
US11620503B2 (en) * 2020-03-18 2023-04-04 Arm Limited Neural network processing
US11625578B2 (en) * 2020-03-30 2023-04-11 Arm Limited Neural network processing
US11948347B2 (en) * 2020-04-10 2024-04-02 Samsung Display Co., Ltd. Fusion model training using distance metrics
US20220101063A1 (en) * 2020-09-29 2022-03-31 Samsung Electronics Co., Ltd. Method and apparatus for analyzing neural network performance

Also Published As

Publication number Publication date
US11824977B2 (en) 2023-11-21
CN114004345A (zh) 2022-02-01
US20220038270A1 (en) 2022-02-03

Similar Documents

Publication Publication Date Title
US10579793B2 (en) Managed securitized containers and container communications
TWI740409B (zh) 使用密鑰之身份驗證
US20190229924A1 (en) Key rotating trees with split counters for efficient hardware replay protection
Nguyen et al. Cloud-based secure logger for medical devices
FR2980285A1 (fr) Systemes et procedes de gestion de cles cryptographiques dans un microcontroleur securise
US20140325681A1 (en) Single-Chip Virtualizing and Obfuscating Storage System for Portable Computing Devices
KR20220014315A (ko) 데이터 프로세싱 시스템 및 방법
US11711213B2 (en) Master key escrow process
JP7256862B2 (ja) 保護されたコンテナ間のセキュア通信方法およびそのシステム
US11714912B2 (en) Enclave fork support
US20220286272A1 (en) Method and apparatus for neural network model encryption and decryption
CN115048657A (zh) 用于保护密码密钥的系统、方法和计算机可读介质
CA3065058A1 (en) Apparatus and method for encrypting data in a data storage system
US20180123789A1 (en) Apparatus and method for generating a key in a programmable hardware module
US10642786B2 (en) Security via data concealment using integrated circuits
WO2023020150A1 (en) Authorized secure data movement
KR20210143846A (ko) 암호화 시스템들
WO2020205984A1 (en) Security via data concealment using integrated circuits
US9390280B2 (en) System and method for obtaining keys to access protected information
CN113591098B (zh) 一种基于sgx的远程安全异构计算方法和系统
US20210409196A1 (en) Secure Key Storage Systems Methods And Devices
Thakur et al. Data Security: Vital Demand in Cloud Computing
Budzik et al. Encryption-based Security in Wearable Devices
Latha et al. BLOCK CHAIN BASED SECURED DATA SHARING SYSTEM FOR CLOUD ENVIRONMENT
BRPI0205818B1 (pt) Método, meio e dispositivo para criptograficamente proteger conteúdo de segurança