KR20230076077A - 이미지 센서, 그것을 갖는 이미지 처리 시스템 및 그것의 동작 방법 - Google Patents
이미지 센서, 그것을 갖는 이미지 처리 시스템 및 그것의 동작 방법 Download PDFInfo
- Publication number
- KR20230076077A KR20230076077A KR1020220054063A KR20220054063A KR20230076077A KR 20230076077 A KR20230076077 A KR 20230076077A KR 1020220054063 A KR1020220054063 A KR 1020220054063A KR 20220054063 A KR20220054063 A KR 20220054063A KR 20230076077 A KR20230076077 A KR 20230076077A
- Authority
- KR
- South Korea
- Prior art keywords
- image sensor
- random number
- image
- ciphertext
- control unit
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims description 64
- 238000011017 operating method Methods 0.000 title claims description 10
- 230000007123 defense Effects 0.000 claims abstract description 34
- 238000004458 analytical method Methods 0.000 claims abstract description 14
- 238000000034 method Methods 0.000 claims description 52
- 238000004891 communication Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 47
- 239000010410 layer Substances 0.000 description 35
- 230000015654 memory Effects 0.000 description 19
- VIEYMVWPECAOCY-UHFFFAOYSA-N 7-amino-4-(chloromethyl)chromen-2-one Chemical compound ClCC1=CC(=O)OC2=CC(N)=CC=C21 VIEYMVWPECAOCY-UHFFFAOYSA-N 0.000 description 16
- 230000008569 process Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 11
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000000873 masking effect Effects 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000001228 spectrum Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000013478 data encryption standard Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000007789 sealing Methods 0.000 description 2
- 230000003595 spectral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000036039 immunity Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000011241 protective layer Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
-
- 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/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N25/00—Circuitry of solid-state image sensors [SSIS]; Control thereof
- H04N25/70—SSIS architectures; Circuits associated therewith
- H04N25/76—Addressed sensors, e.g. MOS or CMOS sensors
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Storage Device Security (AREA)
Abstract
본 발명에 따른 이미지 센서는, 이미지 데이터를 획득하는 이미지 센싱 유닛, 및 상기 이미지 데이터의 무결성을 위한 태그를 발생하는 보안 회로를 포함하고, 상기 보안 회로는, 제어 유닛으로부터 공개키로 암호화된 암호문을 수신하고, 개인키를 이용하여 암호 알고리즘에 의거하여 상기 암호문을 복호화하는 암호 모듈; 및 상기 암호문의 전체 혹은 일부에 대응하는 랜덤 값을 이용하여 상기 암호 모듈의 연산에 대한 DPA(Differential Power Analysis) 방어하는 DPA 방어 모듈을 포함할 수 있다.
Description
본 발명은 이미지 센서, 그것을 갖는 이미지 처리 시스템 및 그것의 동작 방법에 관한 것이다.
운전자 또는 승객의 조작 없이 자동차 스스로 운행이 가능한 자율주행이 자동차 미래 산업의 핵심 기술로 떠오르고 있다. 자율주행을 가능하게 하는 기본 기술로는 라이더나 CIS(CMOS Image Sensor) 등을 이용하여 차선 인식, 앞/옆/뒤 차 인식하여 차간 거리 파악, 보행자 인식, 도로 환경 인식 등의 기술 해결이 선행 되어야한다. 이를 위해 자동차는 현재 주행중인 도로 상황 및 주행 상황에 대해 자동차내 센서를 이용하여 센싱 후 자동차내의 메인 컨트롤러에게 관련 정보를 전송하게 된다. 그런데 이 사이에 제 3자가 해킹하여 잘못된 정보를 메인 컨트롤러에 보낼 경우 메인 컨트롤러는 잘못된 정보 유입으로 인해 잘못된 판단을 내릴 수 있다. 이는 빠른 속도로 주행중인 차량에 직접적으로, 실시간으로 연동되는 상황이라 승객의 목숨도 관련된 중요한 사항이다. 예를 들어, 카메라 센서를 통해 도로 상 차선이 곧바로 일직선으로 되어 있는 상황에서 센서가 이 이미지 정보를 자동차의 메인 컨트롤러에 보내는 상황에 제 3자 해커가 센서와 메인 컨트롤러 사이에 개입하여 이미지를 조작하여 도로의 차선이 우회전 도로 상의 차선인 것처럼 조작하여 컨트롤러에 보낸다면, 메인 컨트롤러는 직직 차선인 상황인데도 잘못된 차선 정보를 바탕으로 우회전하게 되어 큰 사고를 유발하게 된다. 이 때문에 센서와 컨트롤러 사이에 제 3자의 개입 여부 즉 센서 정보의 무결성(integrity)을 보장해 주는 기술이 필요하다.
본 발명의 목적은 DPA(Differential Power Analysis) 공격을 방지하는 이미지 센서, 그것을 포함하는 이미지 처리 시스템 및 그것의 동작 방법을 제공하는 데 있다.
본 발명의 목적은 면적을 줄이는 이미지 센서, 그것을 포함하는 이미지 처리 시스템 및 그것의 동작 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 이미지 센서는, 이미지 데이터를 획득하는 이미지 센싱 유닛; 및 상기 이미지 데이터의 무결성을 위한 태그를 발생하는 보안 회로를 포함하고, 상기 보안 회로는, 제어 유닛으로부터 공개키로 암호화된 암호문을 수신하고, 개인키를 이용하여 암호 알고리즘에 의거하여 상기 암호문을 복호화하는 암호 모듈; 및 상기 암호문의 전체 혹은 일부에 대응하는 랜덤 값을 이용하여 상기 암호 모듈의 연산에 대한 DPA(Differential Power Analysis) 방어하는 DPA 방어 모듈을 포함할 수 있다.
본 발명의 실시 예에 따른 이미지 센서의 동작 방법은, 제어 유닛으로 암호문을 수신하는 단계; 상기 암호문을 이용하여 난수를 발생하는 단계; 및 상기 난수를 이용하여 DPA(Differential Power Analysis) 방어 모듈을 실행하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 이미지 처리 시스템은, 이미지 데이터를 획득하는 이미지 센서; 및 상기 이미지 센서로부터 이미지 데이터를 수신하는 제어 유닛을 포함하고, 상기 이미지 센서는, 상기 이미지 데이터를 감지하는 이미지 센싱 유닛; 및 상기 제어 유닛과 인증 동작을 수행하고, 상기 제어 유닛으로부터 암호문을 수신하고, 비밀키를 이용하여 상기 수신된 암호문을 복호화하는 보안 회로를 포함하고, 상기 보안 회로는 상기 암호문의 전체 혹은 일부를 이용하여 난수를 발생하고, 상기 난수를 이용하여 상기 암호문의 복호화 동작에서 비밀키에 대한 DPA(Differential Power Analysis) 공격을 방지하는 것을 특징으로 한다.
본 발명의 다른 실시 예에 따른 이미지 센서는, 복수의 로우 라인들과 복수의 컬럼 라인들에 연결된 복수의 픽셀들을 갖는 픽셀 어레이와 상기 픽셀 어레이 주변에 배치되는 제 1 패드들을 포함하는 제 1 레이어; 및 상기 제 1 레이어 하부에 배치되고, 상기 제 1 패드들에 비아들을 통하여 연결되는 제 2 패드들과 상기 복수의 픽셀들을 구동하는 제어 로직을 포함하는 제 2 레이어를 포함하고, 상기 제어 로직은 제어 유닛과 보안 동작을 수행하는 보안 회로를 포함하고, 상기 보안 회로는 상기 제어 유닛으로부터 수신된 암호문의 전체 혹은 일부를 이용하여 난수를 발생하고, 상기 난수를 이용하여 개인키에 대한 DPA(Differential Power Analysis) 공격을 방지하도록 상기 보안 동작을 수행하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 제어 유닛의 동작 방법은, 이미지 센서로 전원을 공급하는 단계; 상기 이미지 센서로부터 공개키를 수신하는 단계; 상기 수신된 공개키를 이용하여 인증 동작에 필요한 키 정보를 암호화하는 단계; 상기 암호화된 키 정보를 상기 이미지 센서로 전송하는 단계; 및 상기 이미지 센서로부터 이미지 데이터 및 상기 이미지 데이터의 무결성을 위한 태그를 수신하는 단계를 포함하고, 상기 암호화된 키 정보는 상기 이미지 센서의 암호 연산에 대한 DPA(Differential Power Analysis) 방어 모듈을 실행하는데 필요한 랜덤 값으로 이용되는 것을 특징으로 한다.
본 발명의 실시 예에 따른 이미지 센서, 그것을 갖는 이미지 처리 시스템 및 그것의 동작 방법은, 암호문의 임의성을 이용하여 난수를 생성함으로써 DPA 공격을 방지할 수 있다.
본 발명의 실시 예에 따른 이미지 센서, 그것을 갖는 이미지 처리 시스템 및 그것의 동작 방법은, 수신된 암호문의 임의성을 이용하여 난수를 발생함으로써, 난수 발생에 필요한 면적을 최소화 시킬 수 있다.
이하에 첨부되는 도면들은 본 실시 예에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 실시 예들을 제공한다.
도 1은 본 발명의 실시 예에 따른 이미지 처리 시스템을 예시적으로 보여주는 도면이다.
도 2a는 본 발명의 실시 예에 따른 이미지 센싱 유닛을 예시적으로 보여주는 도면이고, 도 2b는 본 발명의 실시 예에 따른 신호 처리 유닛을 예시적으로 보여주는 도면이다.
도 3a 및 도 3b는 본 발명의 실시 예에 따른 암호 모듈을 예시적으로 보여주는 도면들이다.
도 4a, 도 4b, 및 도 4c는 본 발명의 실시 예에 따른 보안 회로의 DPA 방어대책 동작을 수행하는데 필요한 난수 발생 방법을 예시적으로 보여주는 도면들이다.
도 5a 및 도 5b는 본 발명의 실시 예에 따른 엔트로피 확산기를 이용하여 암호문(CT)으로부터 난수를 발생하는 과정을 예시적으로 보여주는 도면이다.
도 6a, 도 6b, 및 도 6c는 본 발명의 실시 예에 따른 엔트로피 확산기를 예시적으로 보여주는 도면들이다.
도 7a, 도 7b, 및 도 7c는 본 발명의 실시 예에 따른 엔트로피 확산기를 이용한 암호문에서 난수 선택 과정을 예시적으로 보여주는 도면들이다.
도 8a 및 도 8b는 본 발명의 실시 예에 따른 DPA 방어모듈에 이용하는 개인키 전달 과정을 예시적으로 보여주는 도면들이다.
도 9a 및 도 9b는 본 발명의 실시 예에 따른 DPA 방어대책에 이용하는 개인키의 사용 과정을 설명하는 도면들이다.
도 10a는 본 발명의 실시 예에 따른 자가 반복 인코더를 예시적으로 보여주는 도면이고, 도 10b는 본 발명의 실시 예에 따른 자가 반복 디코더를 예시적으로 보여주는 도면이다.
도 11은 본 발명의 다른 실시 예에 따른 DPA 방어대책에 이용하는 개인키의 전달 과정을 예시적으로 보여주는 도면이다.
도 12a 및 도 12b은 본 발명의 실시 예에 따른 이미지 센서와 제어 유닛 사이의 채널을 예시적으로 보여주는 도면들이다.
도 13은 본 발명의 실시 예에 따른 이미지 센서(CIS)의 부팅 동작을 예시적으로 보여주는 타이밍도들이다.
도 14은 본 발명의 실시 예에 따른 이미지 센서(CIS)의 데이터 수신 과정을 보여주는 도면이다.
도 15는 본 발명의 실시 예에 따른 이미지 센서의 동작 방법을 예시적으로 보여주는 흐름도이다.
도 16는 본 발명의 실시 예에 따른 이미지 센서의 동작 방법을 예시적으로 보여주는 흐름도이다.
도 17는 본 발명의 실시 예에 따른 제어 유닛의 동작 방법을 예시적으로 보여주는 흐름도이다.
도 18은 본 발명의 실시 예에 따른 이미지 처리 시스템의 동작을 예시적으로 보여주는 래더 다이어그램이다.
도 19은 본 발명의 실시 예에 따른 이미지 처리 시스템의 이미지 데이터 전송 과정을 예시적으로 보여주는 래더 다이어그램이다.
도 20는 본 발명의 다른 실시 예에 따른 이미지 처리 시스템을 예시적으로 보여주는 도면이다.
도 21a, 도 21b 및 도 21c는 본 발명의 실시 예에 따른 이미지 센서를 예시적으로 보여주는 도면들이다.
도 22은 본 발명의 실시 예에 따른 자율 주행 차량을 예시적으로 보여주는 도면이다.
도 23는 본 발명의 실시 예에 따른 자율 주행 시스템을 예시적으로 보여주는 도면이다.
도 1은 본 발명의 실시 예에 따른 이미지 처리 시스템을 예시적으로 보여주는 도면이다.
도 2a는 본 발명의 실시 예에 따른 이미지 센싱 유닛을 예시적으로 보여주는 도면이고, 도 2b는 본 발명의 실시 예에 따른 신호 처리 유닛을 예시적으로 보여주는 도면이다.
도 3a 및 도 3b는 본 발명의 실시 예에 따른 암호 모듈을 예시적으로 보여주는 도면들이다.
도 4a, 도 4b, 및 도 4c는 본 발명의 실시 예에 따른 보안 회로의 DPA 방어대책 동작을 수행하는데 필요한 난수 발생 방법을 예시적으로 보여주는 도면들이다.
도 5a 및 도 5b는 본 발명의 실시 예에 따른 엔트로피 확산기를 이용하여 암호문(CT)으로부터 난수를 발생하는 과정을 예시적으로 보여주는 도면이다.
도 6a, 도 6b, 및 도 6c는 본 발명의 실시 예에 따른 엔트로피 확산기를 예시적으로 보여주는 도면들이다.
도 7a, 도 7b, 및 도 7c는 본 발명의 실시 예에 따른 엔트로피 확산기를 이용한 암호문에서 난수 선택 과정을 예시적으로 보여주는 도면들이다.
도 8a 및 도 8b는 본 발명의 실시 예에 따른 DPA 방어모듈에 이용하는 개인키 전달 과정을 예시적으로 보여주는 도면들이다.
도 9a 및 도 9b는 본 발명의 실시 예에 따른 DPA 방어대책에 이용하는 개인키의 사용 과정을 설명하는 도면들이다.
도 10a는 본 발명의 실시 예에 따른 자가 반복 인코더를 예시적으로 보여주는 도면이고, 도 10b는 본 발명의 실시 예에 따른 자가 반복 디코더를 예시적으로 보여주는 도면이다.
도 11은 본 발명의 다른 실시 예에 따른 DPA 방어대책에 이용하는 개인키의 전달 과정을 예시적으로 보여주는 도면이다.
도 12a 및 도 12b은 본 발명의 실시 예에 따른 이미지 센서와 제어 유닛 사이의 채널을 예시적으로 보여주는 도면들이다.
도 13은 본 발명의 실시 예에 따른 이미지 센서(CIS)의 부팅 동작을 예시적으로 보여주는 타이밍도들이다.
도 14은 본 발명의 실시 예에 따른 이미지 센서(CIS)의 데이터 수신 과정을 보여주는 도면이다.
도 15는 본 발명의 실시 예에 따른 이미지 센서의 동작 방법을 예시적으로 보여주는 흐름도이다.
도 16는 본 발명의 실시 예에 따른 이미지 센서의 동작 방법을 예시적으로 보여주는 흐름도이다.
도 17는 본 발명의 실시 예에 따른 제어 유닛의 동작 방법을 예시적으로 보여주는 흐름도이다.
도 18은 본 발명의 실시 예에 따른 이미지 처리 시스템의 동작을 예시적으로 보여주는 래더 다이어그램이다.
도 19은 본 발명의 실시 예에 따른 이미지 처리 시스템의 이미지 데이터 전송 과정을 예시적으로 보여주는 래더 다이어그램이다.
도 20는 본 발명의 다른 실시 예에 따른 이미지 처리 시스템을 예시적으로 보여주는 도면이다.
도 21a, 도 21b 및 도 21c는 본 발명의 실시 예에 따른 이미지 센서를 예시적으로 보여주는 도면들이다.
도 22은 본 발명의 실시 예에 따른 자율 주행 차량을 예시적으로 보여주는 도면이다.
도 23는 본 발명의 실시 예에 따른 자율 주행 시스템을 예시적으로 보여주는 도면이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
본 발명의 실시 예에 따른 이미지 센서, 그것을 포함하는 이미지 처리 시스템 및 그것의 동작 방법은, CIS(CMOS Image Sensor)의 NVM(Non-Volatile Memory)에 저장된 개인키를 이용하는 DPA(Differential Power Analysis; 차분전력분석) 방어 모듈을 구비함으로써, 개인키(혹은 비밀키)의 DPA 공격을 방지하거나, 무력화할 수 있다. 또한, 본 발명의 실시 예에 따른 이미지 센서, 그것을 포함하는 이미지 처리 시스템 및 그것의 동작 방법은, 변형된 개인키를 비휘발성 메모리(예를 들어, NVM)에 저장하고, 복호화 동작시 변형된 개인키를 비휘발성 메모리로부터 로딩하고, 변형된 개인키로부터 개인키를 복원하여 사용함으로써, 개인키 로딩 시점의 DPA 공격을 원천적으로 차단할 수 있다. 이로써, 본 발명의 실시 예에 따른 이미지 센서, 그것을 포함하는 이미지 처리 시스템, 및 그것의 동작 방법은, DPA 공격에 따른 개인키의 유출 가능성을 없애고, 사이버 보안 시스템의 신뢰성을 향상시킬 수 있다.
도 1은 본 발명의 실시 예에 따른 이미지 처리 시스템(10)을 예시적으로 보여주는 도면이다. 도 1을 참조하면, 이미지 처리 시스템(10)은 이미지 센서(100) 및 제어 유닛(200; ECU)를 포함할 수 있다. 여기서 이미지 센서(100; CIS)는 카메라 렌즈를 이용해 촬상 동작을 수행하는 카메라 장치일 수 있다. 이미지 처리 시스템(10)은 다양한 종류의 시스템에 적용될 수 있다. 예를 들어, 이미지 처리 시스템(10)은 자율 운행 시스템에 적용될 수 있다.
한편, 도 1에서 이미지 센서(100)를 제어하는 장치가 제어 유닛(200)은 ECU라고 도시되고 있지만, 본 발명의 제어 유닛은 여기에 제한되지 않는다고 이해되어야 할 것이다. 본 발명의 제어 유닛(200)은 ECU 외에도 ISP(Image Signal Processor), AP(Application Processor), Host 일 수 있다. 아래에서는 설명의 편의를 위하여 제어 유닛(200)이 ECU라고 하겠다.
이미지 센서(100; CIS)는 차량 주변으로부터 이미지를 획득하도록 구현될 수 있다. 또한, 이미지 센서(100)는 획득된 이미지의 신뢰성을 보장하는 보안 이미지(secured image)로 변환하고, 변환된 보안 이미지를 제어 유닛(200)로 전송하도록 구현될 수 있다. 실시 예에 있어서, 보안 이미지는 오리지널 이미지 데이터(IMG) 및 오리지널 이미지 데이터(IMG)의 신뢰성을 검증하기 위한 태그(CMAC)를 포함할 수 있다. 다른 실시 예에 있어서, 보안 이미지는 암호 알고리즘에 의거하여 암호화된 이미지를 포함할 수 있다.
이미지 센서(100)는 이미지 센싱 유닛(110), 신호 처리 유닛(120), 보안 회로(130), NVM(160) 및 인터페이스 회로(170, MIPI)를 포함할 수 있다. 실시 예에 있어서, 이미지 센서(100)는 차량용 이미지 센서, 예를 들어, ISOCELL Auto 4AC로 구현될 수 있다.
이미지 센싱 유닛(110)은 복수의 픽셀들을 이용하여 이미지를 획득하도록 구현될 수 있다. 이미지 센싱 유닛(100)는 NMOS(N-type Metal-Oxide-Semiconductor) 이미지 센서, CMOS(Complementary Metal-Oxide-Semiconductor) 이미지 센서, 혹은 CCD(Charge Coupled Device) 이미지 센서 중 어느 하나로 구현되는 픽셀 어레이를 포함할 수 있다.
신호 처리 유닛(120)은 이미지 센싱 유닛(110)으로부터 획득된 이미지 신호를 적어도 하나의 처리 방식에 따라 처리함으로써 이미지 데이터(IMG)를 출력하도록 구현될 수 있다.
보안 회로(130)는 획득된 이미지 데이터(IMG)를 보안 이미지로 변환하는데 필요한 일련의 보안 기능(예를 들어, 인증 동작, 키교환 동작, 암복호 동작 등)을 수행하도록 구현될 수 있다. 여기서, 보안 회로(130)는 소프트웨어적, 하드웨어적, 혹은 펌웨어적으로 구현될 수 있다.
보안 회로(130)는 제어 유닛(200)와 인증 동작을 수행하도록 구현될 수 있다. 여기서 인증 동작은 다양한 알고리즘에 의거하여 수행될 수 있다. 실시 예에 있어서, RSA(Rivest Shamir Adleman), ECC(Elliptic Curve Cryptography), Diffie-Hellman 등의 비대칭키 알고리즘에 기반하여 인증 절차가 수행될 수 있다. 다른 실시 예에 있어서, AES(Advanced Encryption Standard), DES(Data Encryption Standard) 등의 대칭키 알고리즘에 기반하여 인증 절차가 수행될 수 있다. 실시 예에 있어서, 인증 동작은 이미지 센서(100)의 설정 동작 이후에 개시될 수 있다. 특히, 인증 동작을 수행하면서 동시에, 이미지 센서(100)로부터 획득된 이미지 데이터(IMG) 및 태그(CMAC)는 제어 유닛(200)로 전송될 수 있다. 이때, 인증 동작과 동시에 전송되는 이미지는 신뢰성 검증을 위한 태그를 포함하지 않을 수 있다.
또한, 보안 회로(130)는 제어 유닛(200)에서 전송하는 이미지 위변조 여부를 확인하도록 이미지 데이터(IMG)에 대해 보안 처리 동작을 수행하도록 구현될 수 있다. 여기서, 보안 처리 동작은 획득된 이미지 데이터(IMG)에 대한 태그(CMAC)를 발생할 수 있다.
실시 예에 있어서, 보안 회로(130)는 이미지 데이터(IMG) 및 키 정보(공유 키 정보)를 이용하여 태그(CMAC)를 발생할 수 있다. 여기서 태그(CMAC)는, 예를 들어, 이미지 데이터(IMG)의 전체 혹은 일부에 대한 MAC(Message Authentication Code)일 수 있다.
또한, 보안 회로(130)는 암호 모듈(131), DPA 방어모듈(132), 개인키 발생기(133)을 포함할 수 있다. 암호 모듈(131)은 암호 알고리즘에 의거하여 암호화 동작을 수행하거나, 복호화 동작을 수행하도록 구현될 수 있다. 실시 예에 있어서, 암호 모듈(131)은 제어 유닛(200)로부터 암호문(cipher text; CT)를 수신하고, 이미지 센서(100)의 개인키(private key; PrivK)와 암호 알고리즘(공개키 기반 알고리즘, 예를 들어 RSA 암호 알고리즘)을 이용하여 암호문(CT)를 복호화 할 수 있다. 여기서 암호문(CT)는 제어 유닛(200)에서 이미지 센서(100)의 공개키(public key: PubK)와 암호 알고리즘에 의해 암호화될 수 있다.
DPA 방어모듈(132)은 이미지 센서(100)에 대한 DPA 공격을 방어하도록 구현될 수 있다. 일반적으로 DPA 공격은 암호 알고리즘이 수행될 때 소비 전력 분석함으로써 개인키(비밀키)를 획득한다. 이러한 DPA 공격 방어대책은, 난수를 이용하여 암호 알고리즘 자체를 수정하는 방식과, 듀얼-레일(dual-rail) 로직을 이용하여 암호 연산 중에 누출되는 소비 전력 정보와 중간 값 사이의 연관을 없게 하는 방식을 갖는다. 여기서 듀얼-레일 로직 방식은 랜덤 시간을 삽입하거나 랜덤 클록을 이용한다. 이러한 방어대책들은 모두 난수(random number)를 필요로 한다. DPA 방어모듈(132)은 난수를 이용하여 차분 전력 공격을 방어할 수 있다.
실시 예에 있어서, 난수는 참난수(true random number) 발생기로부터 발생될 수 있다. 다른 실시 예에 있어서, 난수는 의사난수(pseudo random number) 발생기로부터 발생될 수 있다. 예를 들어, 난수는 제어 유닛(200)로부터 전송된 암호문(CT)를 이용하여 DPA 방어 동작에 필요한 난수를 발생할 수 있다. 여기서 암호문(CT)는 사용한 암호 알고리즘의 임의성(randomness, 혹은 엔트로피(entropy))을 갖는다. 이는 예를 들어, RSA 암호 알고리즘의 경우 랜덤 패딩(random padding) 기법을 이용하여 암호문(CT)이 발생되기 때문이다.
일반적으로 RSA 암호 알고리즘은 2개의 키를 필요로 한다. 하나는 공개키 이고 하나는 개인키이다. 메시지(m)는 공개키를 통해 암호화 되고, 암호문은 개인키를 통해 복호화 될 수 있다. RSA 알고리즘을 통한 키 생성은 다음과 같다. 먼저, 무작위로 큰 두 소수 p 와 q 가 선택된다. 이 때, 를 통해 n 값이 계산된다. 또한, n 이하의 n 과 서로소인 수들의 개수인 가 계산된다. 1 < e < φ(n)이고, e 와 φ(n) 가 서로소인 e가 선택된다. 이후에 를 만족하는 d가 계산된다. 즉, 임의의 정수 k 에 대해서, de = 1 + kφ(n)가 만족할 것이다. 이 때 (n, e)는 공개키 이고, d는 개인키이다. 이때, 송신자는 수신자에게 전송한다. 수신자는 송신자로부터 c 를 수신하고, c 로부터 자신의 개인키(d)를 이용하여 복호화함으로써, 를 계산한다. 왜냐하면, 이기 때문이다. RSA 암호 알고리즘은 임의의 소수를 이용하여 합성수를 만드는 것은 쉽지만, 합성수를 소인수분해 하여 소수로 만드는 것은 어렵다는 원리를 이용하고 있다. 여기서 RSA 암호 알고리즘은 기본적으로 임의성을 갖는다. 따라서, 동일한 메시지(m)에 대하여 암호 알고리즘을 이용하여 암호화할 때마다, 서로 다른 값이 암호문으로 출력된다.
정리하면, DPA 방어모듈(132)은 보안 회로(130)에서 보안 처리 동작(인증 동작, 복호화 동작, 키 발생 동작, MAC 연산 동작 등)을 수행할 때, 난수를 이용하여 개인키의 직접적인 노출을 줄이도록 구현될 수 있다.
개인키 발생기(133)는 NVM(160)으로부터 인코딩된 개인키를 읽고, 이미지 센서(100)의 개인키를 복원하도록 구현될 수 있다. 실시 예에 있어서, 개인키 발생기(133)는 이미지 센서(100)의 부팅 때마다 메시지 복호화를 위하여 NVM(160)으로부터 인코딩된 개인키를 읽고, 읽혀진 인코딩된 개인키를 사전에 결정된 방식에 따라 디코딩함으로써 개인키를 발생할 수 있다.
NVM(160)는 공개키 및 인코딩된(혹은 변형된) 개인키를 저장하도록 구현될 수 있다. 실시 예에 있어서, 공개키 및 인코딩된 개인키는 이미지 센서(100)의 제조 단계에서 NVM(160)에 저장될 수 있다. 실시 예에 있어서, NVM(160)는 OTP(One Time Programming) 메모리로 구현될 수 있다. 다른 실시 예에 있어서, NVM(160)은 낸드 플래시 메모리(NAND flash memory), 수직형 낸드 플래시 메모리, 노아 플래시 메모리(NOR flash memory), 저항성 램(resistive random access memory; RRAM), 상변화 메모리(phase-change memory; PRAM), 자기저항 메모리(magnetoresistive random access memory; MRAM), 강유전체 메모리(ferroelectric random access memory; FRAM), 스핀주입 자화반전 메모리(spin transfer torque random access memory; STT-RAM) 등 으로 구현될 수 있다.
인터페이스 회로(170, MIPI)는 획득된 이미지 데이터(IMG) 및 그것의 태그(CMAC)를 덧붙인 보안 이미지를 사전에 결정된 인터페이스 규격에 따라 제어 유닛(200)으로 전송할 수 있다. 실시 예에 있어서, 인터페이스 규격은 MIPI(Mobile Industry Processor Interface), MASS(MIPI Automotive SerDes Solution), DisplayPort 등일 수 있다.
제어 유닛(200, ECU)은 이미지 센서(100)와 인증 동작을 수행하도록 구현될 수 있다. 제어 유닛(200)은 이미지 센서(100)의 공개키로 암호화된 암호문(CT)를 이미지 센서(100)로 전송할 수 있다. 여기서 암호문(CT)는 I2C(Inter Integrated Circuit), SPI(Serial Peripheral Interface), UART(Universal Asynchronous Receiver/Transmitter) 등의 인터페이스 규격을 통하여 전송될 수 있다.
또한, 제어 유닛(200, ECU)은 이미지 센서(100)로부터 전송되는 보안 이미지 데이터(IMG, CMAC)를 수신하고, 이에 대한 이미지 데이터의 무결성을 확인한 후, 이미지 데이터의 처리 동작을 수행하도록 구현될 수 있다. 예를 들어, 제어 유닛(200)은 이미지 센서(100)와 별개로 구현되는 반도체 칩으로 구현될 수 있다. 실시 예에 있어서, 이러한 반도체 칩은 적어도 하나의 프로세서 및 이미지 처리 모듈이 집적된 SoC(System On Chip)일 수 있다. 예를 들어, 제어 유닛(200)은 ADAS(Advanced Driver Assistance System) SOC일 수 있다. 실시 예에 있어서, 제어 유닛(200)은 수신된 이미지 데이터(IMG)와 이미지 센서(100)와 공유된 세션 키 정보를 이용하여 MAC 값을 계산하고, 이를 이미지 센서(100)로부터 전송된 MAC 값(CMAC)과 비교를 통해 이미지 센서(100)로부터 전송된 이미지 데이터(IMG)의 무결성을 검증할 수 있다.
또한, 제어 유닛(200)은 외부의 제어 유닛과 CAN(Controller Area Network), MOST(Media Oriented System Transport), LIN(Local Interconnected Network), FlexRay, Ethernet 등 다양한 통신 방식으로 통신을 수행할 수 있다.
한편, 도 1에 도시된 바와 같이, 이미지 처리 시스템(10)은 하나의 제어 유닛(200)과 하나의 이미지 센서(100)가 도시되고 있다. 하지만, 본 발명의 이미지 처리 시스템(10)은 이외에도 다양한 형태로 구현될 수 있다. 본 발명의 이미지 처리 시스템은 제어 유닛의 개수 혹은 이미지 센서의 개수를 다양하게 조합하여 구현될 수 있다.
제어 유닛(200)은 각 카메라 센서로부터 전달받은 많은 양의 이미지를 분석하여, 이를 바탕으로 현재의 교통 상황 및 장애물을 해석하고, 이후 동작을 위한 장치 제어를 실시간으로 실행할 수 있다. 동시에, 제어 유닛(200)은 정당한 카메라 장치로부터 이미지가 전달되었는 지와, 이미지의 전달 과정에서 위변조가 발생하지 않았는지를 확인하기 위한 보안 처리 동작을 수행할 수 있다.
제어 유닛(200)은 상술된 보안 기능을 수행하는 보안 모듈(201, HSM(Hardware Security Module)을 포함할 수 있다. 여기서, 보안 모듈(201)은 소프트웨어적, 하드웨어적, 혹은 펌웨어적으로 구현될 수 있다. 일반적으로, 보안 모듈(HSM)은 암호화 키의 수명 주기 보호를 위해 특별히 설계된 암호화 프로세서를 의미한다. HSM은 강화된 위조 방지 장치 내에서 암호화 처리, 키 보호 및 키 관리를 수행한다.
일반적으로, 차량 제어기 도메인에서 사용되는 HSM은 키를 안전하게 저장할 수 있는 보안 메모리(Secure Memory)를 구비한다. 예를 들어, 보안 메모리는 호스트 시스템과 별개로 보안성이 높은 HSM 전용 RAM(Random Access Memory)이나 ROM(Read Only Memory)을 포함한다. HSM은 전용의 CPU(Central Processing Unit)를 통해 일련의 동작을 수행하여 잠재적 공격자의 공격으로부터 상대적으로 안전하게 기능을 수행할 수 있다.
일반적인 차량용 이미지 처리 시스템은, 이미지 센서에 보안 기능을 탑재한 하드웨어 블록을 구비하고 있다. 이러한 하드웨어 블록은 보안 동작을 위해 호스트로부터 암호화된 메시지를 수신하고, 암호화된 메시지를 복호화하고 있다. 이러한 복호화 동작시, 이미지 센서 내부의 비휘발성 메모리(예: NVM)에 저장된 개인키(혹은 비밀키)를 복호화 모듈로 로딩할 필요가 있다. 이때 공격자에 의해 DPA(Differential Power Analysis) 공격이 수행될 수 있다. 개인키를 로우 값(raw value) 형태로 비휘발성 메모리에 저장 시, 개인키가 DPA 공격에 의해 외부에 유출될 가능성이 있다.
반면에, 본 발명의 실시 예에 따른 이미지 처리 시스템(10)은, NVM(160)으로부터 DPA 공격에 면역성을 가진 변형된 개인키를 이미지 센서(100)의 보안 회로(130)에 로딩 시킴으로써, 외부로부터 DPA 공격을 받더라도 개인키에 대한 DPA 공격을 무력화시킬 수 있다. 예를 들어, 본 발명의 이미지 센서(100)는 변형된 개인키를 효율적으로 복원 가능하게 NVM 저장시킴으로써, 개인키 로딩 시점에서 DPA 공격 이슈를 차단하면서 동시에 상대적으로 빠른 보안 처리 동작을 수행할 수 있다.
도 2a는 본 발명의 실시 예에 따른 이미지 센싱 유닛(110)을 예시적으로 보여주는 도면이다. 도 2a를 참조하면, 이미지 센싱 유닛(110)은, 픽셀 어레이(111), 로우 드라이버(112), 아날로그 디지털 변환회로(113), 램프 전압 발생기(116), 타이밍 제어기(117), 및 출력 버퍼(118)를 포함할 수 있다.
픽셀 어레이(111)는 각각이 복수의 로우 라인들 및 복수의 컬럼 라인들과 연결된 매트릭스 형태로 배치된 복수의 픽셀들을 포함할 수 있다. 복수의 픽셀들의 각각은 광 감지 소자를 포함할 수 있다. 예를 들어, 광 감지 소자는 포토 다이오드, 포토 트랜지스터, 포트 게이트 혹은 핀드 포토 다이오드(pinned photodiode) 등을 포함할 수 있다.
복수의 픽셀들의 각각은 적어도 하나의 광 감지 소자를 포함할 수 있다. 실시 예에 있어서, 복수의 픽셀들의 각각은 복수의 광 감지 소자들을 포함할 수 있다. 복수의 광 감지 소자들의 각각은 서로 적층 될 수 있다. 복수의 픽셀들의 각각은 광 감지 소자를 이용하여 빛을 감지하고, 이를 전기적 신호인 픽셀 신호로 변환할 수 있다. 복수의 픽셀들의 각각은 특정 스펙트럼 영역의 빛을 감지할 수 있다. 예를 들어, 복수의 픽셀들은 레드(red) 스펙트럼 영역의 빛을 전기 신호로 변환하는 레드 픽셀, 그린(green) 스펙트럼 영역의 빛을 전기 신호로 변환하기 위한 그린 픽셀, 및 블루(blue) 스펙트럼 영역의 빛을 전기 신호로 변환하기 위한 블루 픽셀을 포함할 수 있다. 복수의 픽셀들의 각각의 상부에 특정 스펙트럼 영역의 빛을 투과시키는 컬러 필터가 배치될 수 있다.
실시 예에 있어서, 복수의 픽셀들의 각각은, 로우 라인들과 컬럼 라인들이 교차한 곳에 다양한 컬러 패턴을 갖는 하나의 픽셀 그룹을 포함할 수 있다. 여기서, 픽셀 그룹은 2 x 2 베이어(Bayer) 패턴, 4 x 4 테트라(Tetra), 혹은 8 x 8 Q-cell 패턴으로 구현되거나, 적외선(Infrared) 서브 픽셀을 갖도록 구현될 수 있다. 실시 예에 있어서, 픽셀 어레이(111)는 다이나믹 비전 센서(dynamic vision sensor)에 적합한 픽셀들로 구현될 수 있다.
로우 드라이버(112)는 픽셀 어레이(111)를 로우 단위로 구동하도록 구현될 수 있다. 로우 드라이버(112)는 타이밍 제어기(117)에서 발생된 로우 제어신호(예를 들어, 어드레스 신호)를 디코딩하고, 디코딩된 행 제어신호에 응답하여 픽셀 어레이(111)를 구성하는 로우 라인들 중에서 적어도 어느 하나의 로우 라인을 선택할 수 있다. 예를 들어, 로우 드라이버(112)는 로우 선택 신호를 발생할 수 있다. 그리고, 픽셀 어레이(111)는 로우 드라이버(112)로부터 제공된 로우 선택 신호에 의해 선택되는 로우로부터 픽셀 신호를 출력한다. 픽셀 신호는 리셋 신호와 이미지 신호를 포함할 수 있다.
아날로그 디지털 변환회로(113)는 픽셀 어레이(111)로부터 입력되는 아날로그 픽셀 신호를 디지털 데이터로 변환하도록 구현될 수 있다. 아날로그 디지털 변환회로(113)는 비교 회로 및 카운터 회로를 포함할 수 있다. 비교 회로는 픽셀 어레이(111)를 구성하는 컬럼 라인들 중에서 어느 하나의 컬럼 라인에 접속된 단위 픽셀로부터 출력되는 픽셀 신호를 램프 전압과 비교하도록 구현될 수 있다. 비교 회로는 각각의 컬럼에 대응하여 구비되는 복수의 비교기들을 포함할 수 있다, 각각의 비교기는 픽셀 어레이(111) 및 램프 전압 발생기(116)와 연결될 수 있다. 비교기는 픽셀 신호와 램프 전압 발생기(116)로부터 발생된 램프 전압(RAMP)를 입력 받아 비교하고, 비교 결과 신호를 출력단으로 출력하도록 구현될 수 있다.
카운터 회로는 복수의 카운터들을 포함할 수 있다. 복수의 카운터들의 각각은 비교기들의 출력단에 연결되고, 각 비교기의 출력에 기초하여 카운트하도록 구현될 수 있다. 카운터 제어 신호는 카운터 활성화 신호, 카운터 클록 신호, 각각의 카운터의 리셋 동작을 제어하는 카운터 리셋 신호, 및 복수의 카운터들의 각각의 내부 비트를 반전시키는 반전 신호 등을 포함할 수 있다. 카운터 회로는 카운터 클록 신호에 따라 비교 결과 신호를 카운팅 함으로써 디지털 데이터로 출력할 수 있다. 카운터는 업/다운 카운터(up/down counter) 혹은 비트-와이즈 카운터(bit-wise counter)를 포함할 수 있다. 이때, 비트-와이즈 카운터는 업/다운 카운터와 비슷한 동작을 수행할 수 있다. 예를 들어, 비트-와이즈 카운터는 업 카운트만 수행하는 기능 및 특정 신호가 들어오면 카운터 내부의 모든 비트를 반전하여 1의 보수(1's complement)로 만드는 기능을 수행할 수 있다. 비트-와이즈 카운터는 리셋 카운트(reset count)를 수행한 후, 이를 반전하여 1의 보수, 즉, 음수 값으로 변환할 수 있다.
램프 전압 발생기(116)는 램프 신호(RAMP)를 발생하도록 구현될 수 있다. 램프 전압 발생기(116)는 타이밍 제어기(117)로부터 제공되는 램프 제어 신호에 기초해 동작할 수 있다. 램프 제어 신호는 램프 인에이블 신호, 모드 신호 등을 포함할 수 있다. 램프 전압 발생기(116)는 램프 인에이블 신호가 활성화되면, 모드 신호에 기초하여 설정되는 기울기를 가지는 램프 신호(RAMP)를 발생할 수 있다.
타이밍 제어기(117)는 로우 드라이버(112), 아날로그 디지털 변환회로(113), 및 램프 전압 발생기(116) 각각에 제어 신호 혹은 클록 신호를 출력함으로써, 로우 드라이버(112), 아날로그 디지털 변환회로(113), 및 램프 전압 발생기(116)의 동작 혹은 타이밍을 제어하도록 구현될 수 있다. 또한, 타이밍 제어기(117)는 컬럼 라인 그룹에 따라 디시젼 속도를 서로 다르게 하도록 비교 회로(114)에 제공되는 스위칭 제어 신호들을 발생할 수 있다.
출력 버퍼(118)는 아날로그 디지털 변환회로(113)로부터 출력된 디지털 데이터를 임시 저장하고, 증폭하여 출력하도록 구현될 수 있다. 출력 버퍼(118)는 컬럼 메모리 블록 및 감지 증폭 회로를 포함할 수 있다. 컬럼 메모리 블록은 복수의 메모리들을 포함할 수 있다. 복수의 메모리들 각각은 복수의 카운터들의 각각에서 출력되는 디지털 데이터를 임시 저장한 후 감지 증폭 회로로 출력할 수 있다. 감지 증폭 회로는 복수의 메모리들로부터 출력되는 디지털 데이터들을 감지 및 증폭하도록 구현될 수 있다. 감지 증폭 회로는 증폭된 디지털 데이터(IDATA)를 이미지 데이터로써 신호 처리 유닛(120, 도 1 참조)로 출력할 수 있다.
도 2b는 본 발명의 실시 예에 따른 신호 처리 유닛(120)을 예시적으로 보여주는 도면이다. 도 2b를 참조하면, 신호 처리 유닛(120)은 제 1 이미지 처리 유닛(121) 및 제 2 이미지 처리 유닛(122)을 포함할 수 있다.
신호 처리 유닛(120)은 이미지 센싱 유닛(110)로부터 획득된 이미지 신호(IDATA)를 수신하고, 이미지 신호(IDATA)에 대한 적어도 하나의 이미지 처리 동작을 수행하고, 처리된 이미지 데이터(IMG)를 외부로 출력하도록 구현될 수 있다.
제 1 이미지 처리 유닛(121) 및 제 2 이미지 처리 유닛(122) 중에서 적어도 하나는, 깊이 지도(depth map) 발생, 3차원 모델링, 파노라마 발생, 특징점 추출, 이미지 합성, 혹은 이미지 보상(예: 노이즈 감소, 해상도 조정, 밝기 조정, 블러링(blurring), 샤프닝(sharpening), 혹은 소프트닝(softening)을 포함할 수 있다. 또한, 디지털 처리 장치(190)는 노출 시간 제어, 혹은 리드 아웃 타이밍 제어 등을 관련된 동작을 수행할 수 있다.
또한, 신호 처리 유닛(120)로부터 출력된 이미지 데이터(IMG)는 보안 회로(130) 및 인터페이스 회로(170)로 전송될 수 있다. 보안 회로(130)는 이미지 데이터(IMG)을 수신하고, 이미지 데이터(IMG)의 무결성을 위한 태그, 즉, 이미지 데이터(IMG)의 전체 혹은 일부에 대한 MAC값(CMAC)을 발생할 수 있다. 인터페이스 회로(170)는 신호 처리 유닛(120)로부터 이미지 데이터(IMG)을 수신하고, 보안 회로(130)로부터 태그(CMAC)를 수신하고, 인터페이스 규격에 적합한 보안 이미지를 발생하고, 발생된 보안 이미지를 외부 장치(즉, ECU)로 전송할 수 있다.
도 3a 및 도 3b는 본 발명의 실시 예에 따른 암호 모듈을 예시적으로 보여주는 도면들이다.
도 3a을 참조하면, 보안 회로(130)는 키 발생기(131-1) 및 태그 발생기(131-2)을 포함할 수 있다. 키 발생기(131-1)는 암호화된 키를 수신하고, n-비트의 세션 키(session key)를 발생하도록 구현될 수 있다. 여기서 암호화된 키(CT)는 제어 유닛(ECU(200), 도 1 참조)로부터 전송될 수 있다. 실시 예에 있어서, 암호화된 키는 도 1에 도시된 암호문(CT)에 포함될 수 있다. 암호화된 키는 이미지 센서(100)의 개인키에 의해 복호화 될 수 있다. 여기서 개인키는 복호화 동작시 이미지 센서(100)의 내부의 NVM(160)로부터 로딩될 수 있다. 또한, 키 발생기(131-1)는 난수(RN)를 이용하여 내부의 개인키 혹은 세션 키의 노출을 방지하는 DPA 처리 유닛(132-1)을 포함할 수 있다.
태그 발생기(131-2)는 이미지 데이터(IMG) 및 세션 키를 수신하고, 이미지 데이터(IMG)에 대응하는 태그(CMAC)를 발생하도록 구현될 수 있다. 여기서 이미지 데이터(IMG)는 신호 처리 유닛(120, 도 1 참조)으로부터 수신될 수 있다. 세션 키는 키 발생기(131-1)로부터 수신될 수 있다. 또한, 태그 발생기(131-2)는 난수(RN)를 이용하여 태그 발생 동작 중에 세션 키의 노출을 방지하는 DPA 처리 유닛(132-2)을 포함할 수 있다.
한편, 본 발명의 실시 예에 따른 보안 회로는, DPA 공격을 방지하도록 변형된 개인키를 NVM로부터 로딩하고, 로딩된 변형된 개인키를 복원하여 암호문(CT)의 복호 동작에 이용할 수 있다.
도 3b를 참조하면, 보안 회로(130b)는 키 발생기(131-1), 태그 발생기(131-2), 및 개인키 발생기(133)를 포함할 수 있다. 개인키 발생기(133)는 복호 동작시 NVM(160)로부터 변형된 개인키를 로딩하고, 로딩된 변형된 개인키를 복원하여 개인키를 생성하도록 구현될 수 있다.
도 4a, 도 4b, 및 도 4c는 본 발명의 실시 예에 따른 보안 회로의 DPA 방어대책 동작을 수행하는데 필요한 난수 발생 방법을 예시적으로 보여주는 도면들이다.
도 4a를 참조하면, 난수 발생기(140)는 암호문(CT)의 복호화 동작시, 개인키를 DPA 공격으로부터 보호하기 위한 난수(RN)를 발생하고, 난수(RN)를 보안 회로(130)에 제공하도록 구현될 수 있다. 실시 예에 있어서, 난수 발생기(140)는 참난수(true random number) 발생기로 구현될 수 있다. 참난수 발생기는 주기성 및 규칙성이 없는 난수를 발생한다. 다른 실시 예에 있어서, 난수 발생기(140)는 의사난수(pseudo random number) 발생기로 구현될 수 있다.
일반적으로, 암호문(cipher text)는 제어 유닛(ECU)에서 평문(plain text)를 다양한 보안 알고리즘(security algorithm)을 적용한 데이터이다. 따라서, 암호문은 자체로써 임의성이 보장된다. 특히, RSAES(RAS Encryption Scheme)-OAEP(Optimal Asymmetric Encryption Padding)이나, ECC(Elliptic Curve Cryptography)와 같이 특정 보안 알고리즘의 경우, 암호화 중에 SHA 함수가 이용되는데, 동일한 평문을 암호화하더라도 발생되는 암호문은 모두 다르다. 즉, 암호문이 발생되는 시점에 이미 임의성(randomness)가 포함되어 있다.
일반적으로, 암호문(cipher text)은 호스트에서 평문(plain text, 원본 데이터)를 보안 알고리즘(예를 들어, RSA, ECC)등을 통하여 암호화시킴으로써 발생된다. 암호화 동작시, 키가 유출되지 않는 한 제 3 자는 암호문로부터 평문을 추출해 낼 수 없다. 호스트에서 암호화 동작 시에 암호문에는 랜덤성이 부여된다. 특히, 동일한 평문을 반복하여 암호화 동작을 수행하더라도, 암호화 동작의 실행 시점마다 랜덤성이 부여되고 있다. 이에 동일 평문에서 매 발생되는 암호문은 서로 다른 값이다. 예를 들어, 평문 "0x01234567"을 키(A)로 제 1 시점에서 암호화 할 경우, 암호문은 "0x373a8897"이다. 그런데, 동일한 "0x01234567"을 키(A)로 제 2 시점에서 암호화 할 경우, 암호문은"0x0a7c674d"이다.
한편, 보안 회로(130)는 암호문(CT)의 임의성을 추출하기 위한 인덱스를 발생하는 엔트로피 확산기(entropy spreader)를 포함할 수 있다.
도 4b를 참조하면, 의사 난수 발생기(140a)는 암호문(CT)의 임의성을 이용하여 난수(RN)를 발생하도록 구현될 수 있다.
도 4c를 참조하면, 의사 난수 발생기(140b)는 암호문(CT) 중에서 일부를 인덱스(IND)에 값에 따라 선택함으로써 난수(RN)를 발생하도록 구현될 수 있다. 여기서 인덱스(IND)는 엔트로피 확산기(150)에 의해 발생될 수 있다. 여기서 엔트로피 확산기(150)는 시스템 내부의 암호문으로부터 난수를 추출하기 위한 인덱스(IND)을 발생하는 회로를 포함할 수 있다. 엔트로피 확산기(150)는 암호문(CT)를 수신하고, 암호문(CT)의 임의성을 추출하기 위한 인덱스(IND)를 발생하도록 구현될 수 있다.
도 5a 및 도 5b는 본 발명의 실시 예에 따른 엔트로피 확산기를 이용하여 암호문(CT)으로부터 난수를 발생하는 과정을 예시적으로 보여주는 도면이다. 도 5a에 도시된 바와 같이, 암호문(CT)은 복수의 분할 데이터(CT_1, CT_2, CT_3, CT_4, ??, CT_n, n은 2 이상의 정수)을 포함할 수 있다. 실시 예에 있어서, 분할 데이터(CT_1, ??, CT_n)의 크기는 동일하거나 서로 다를 수도 있다. 또한, 분할 데이터(CT_1, ?? , CT_n)에서 적어도 2개는 일부 비트들을 공유할 수 있다. 도 5b에 도시된 바와 같이, 엔트로피 확산기(150)는 인덱스(ING)를 발생하도록 구현될 수 있다. 의사 난수 발생기(140b)는 인덱스(IND)에 따라 분할 데이터(CT_1, ??, CT_n) 중에서 어느 하나를 난수(RN)으로 선택하는 멀티플렉서(141)를 포함할 수 있다.
한편, 본 발명의 실시 예에 따른 엔트로피 확산기는 다양한 방식으로 구현될 수 있다.
도 6a, 도 6b, 및 도 6c는 본 발명의 실시 예에 따른 엔트로피 확산기를 예시적으로 보여주는 도면들이다.
도 6a를 참조하면, 엔트로피 확산기(150)는 온도 센서(151)를 이용하여 구현될 수 있다. 온도 센서(151)는 복수의 비트들을 갖는 인덱스(IND)을 출력할 수 있다. 실시 예에 있어서, 온도 센서(151)는 이미지 센싱 유닛(101, 도 1 참조)의 내부 혹은 이미지 센싱 유닛(110)의 외부에 배치될 수 있다. 엔트로피 확산기(150)는 온도 센서(151)로부터 감지된 온도 정보를 인덱스(IND)로 직접 이용할 수 있다.
한편, 도 6a에 도시된 바와 같이 엔트로피 확산기(150)는 온도 정보를 그대로 인덱스(IND)로 이용하고 있다. 하지만, 본 발명이 여기에 제한되지 않는다고 이해되어야 할 것이다. 본 발명의 엔트로피 확산기는 검출된 온도 정보를 변경하여 인덱스(IND)로 이용할 수도 있다.
도 6b를 참조하면, 엔트로피 확산기(150a)는 온도 센서(151) 및 인덱스 인코더(152)를 포함할 수 있다. 인덱스 인코더(152)는 온도 센서(151)의 온도 정보를 수신하고, 온도 정보에 대응하는 복수의 비트들을 갖는 인덱스(IND)를 출력하도록 구현될 수 있다.
한편, 본 발명의 엔트로피 확산기는 의사 난수 발생기(PRNG)를 이용하여 구현될 수도 있다. 여기서 의사 난수 발생기(PRNG)는 다양한 방식으로 구현될 수 있다.
도 6c를 참조하면, 엔트로피 확산기(150b)는 블록암호기반 의사 난수 발생기(block cipher based pseudo random number generator; BPRNG)를 이용하여 구현 될 수 있다. 엔트로피 확산기(150b)는 초기 벡터(IV)를 이미지 센서(100, 도 1 참조)의 자신의 키(ki, ki*)를 이용하여 사전에 결정된 횟수만큼 블록 암호 동작(E1, E2)을 수행함으로써 인덱스(IND)를 출력할 수 있다. 여기서 초기 벡터(IV)는 암호문(CT)일 수 있다.
실시 예에 있어서, 블록암호기반 의사 난수 발생기는 보안 회로(130, 도 1 참조)의 내부의 블록 암호 알고리즘을 이용하여 구현될 수 있다. 즉, 블록암호기반 의사 난수 발생기는 소프트웨어 혹은 펌웨어적으로 구현될 수 있다. 다른 실시 예에 있어서, 엔트로피 확산기는 해쉬 알고리즘을 이용하여 인덱스를 발생할 수도 있다. 본 발명의 실시 예에 따른 엔트로피 확산기는 암호문 및 암호 알고리즘을 이용하여 인덱스를 발생할 수 있다.
도 7a, 도 7b, 및 도 7c는 본 발명의 실시 예에 따른 엔트로피 확산기를 이용한 암호문에서 난수 선택 과정을 예시적으로 보여주는 도면들이다.
도 7a을 참조하면, 엔트로피 확산기(150a)는 온도 센서(151)를 이용하여 구현될 수 있다. 엔트로피 확산기(150a)는 온도 센서(151)의 출력 값(예를 들어, "00000010"은 정해진 순서에 따라 내부 비트들을 XOR 연산함으로써 인덱스(IND)을 발생할 수 있다. 인덱스(IND)에 따라 암호문 중에서 일부가 난수(예를 들어, BC ?? BAE8)이 난수(RN)로 선택될 수 있다. 한편, 온도 센서(151)를 이용하는 인덱스(IND) 출력 방식은 온도 특성으로 인해 제한된 난수를 발생할 수 있다.
도 7b를 참조하면, 엔트로피 확산기(150b)는 블록암호기반 의사 난수 발생기(BPRNG, 153)을 이용하여 구현될 수 있다. 블록암호기반 의사 난수 발생기(153)는 블록 의사 난수를 이용하여 스태틱 난수(static random value)을 발생할 수 있다.
한편, 도 7a 및 도 7b에 도시된 엔트로피 확산기들은 시스템 내의 특정 블록에서 나오는 출력을 그 값 그대로 이용하여 난수의 씨드(seed, 혹은 인덱스)로 이용한다. 하지만, 본 발명이 여기에 제한될 필요는 없다. 본 발명의 엔트로피 확산기는 암호문을 이용하여 난수를 추출할 수도 있다.
도 7c를 참조하면, 엔트로피 확산기(150c)는 제어 유닛(200, 도 1 참조)로부터 수신된 암호문으로부터 인덱스(IND)를 추출할 수 있다. 이때, 추출된 인덱스(IND)는 암호문을 이용하기 때문에 퓨어 난수(pure random number)이다.
도 8a 및 도 8b는 본 발명의 실시 예에 따른 DPA 방어모듈에 이용하는 개인키 전달 과정을 예시적으로 보여주는 도면들이다.
도 8a를 참조하면, NVM(160)는 이미지 센서(100)의 공개키 및 인코딩된 개인키를 저장할 수 있다. ECU(200)의 인증 요청에 따라 이미지 센서(100)의 공개키는 NVM(160)으로부터 ECU(200)로 전송될 수 있다. 또한, 암호문(CT)의 복호화를 위하여, 이미지 센서(100)의 인코딩된 개인키는 NVM(160)로부터 보안 회로(130)로 로딩될 수 있다. 보안 회로(130)는 DPA 방어모듈(132) 및 개인키 발생기(133)를 포함할 수 있다. 개인키 발생기(133)는 이미지 센서(100)의 부팅할 때마다 NVM(160)로부터 인코딩된 개인키를 읽고, 읽혀진 인코딩된 개인키를 사전에 결정된 방식에 따라 디코딩함으로써 개인키를 발생할 수 있다. 보안 회로(130)는 개인키 발생기(133)에 의해 복원된 개인키를 이용하여 암호문(CT)의 복호화 동작을 수행할 수 있다.
또한, 보안 회로(130)는 개인키를 이용한 복호화 동작시 DPA 방어모듈(132)을 이용하여 개인키에 대한 DPA 공격을 방지할 수 있다. 예를 들어, DPA 방어 모듈(132)은 난수를 이용한 마스킹 기법으로 개인키를 보호할 수 있다. 일반적으로, 마스킹 기법은 암호 연산 전에 마스킹 동작(masking operation)을 수행함으로써 암호 연산에 이용되는 입력을 랜덤화시키고, 마스킹 동작을 상쇄하기 위해 암호 연산 후에 언마스킹 동작(unmasking operation)을 추가적으로 수행함으로써 결과적으로 등가의 연산 결과를 도출한다.
한편, 본 발명의 실시 예에 따른 NVM은 인코딩된 개인키가 아니라 개인키를 저장할 수도 있다. 도 8b을 참조하면, NVM(160a)는 공개키와 개인키를 저장할 수 있다. 보안 회로(130a)는 이미지 센서(100)의 부팅 때마다 NVM(160a)에 저장된 개인키를 읽고, 개인키를 이용하여 DPA 보안 모듈(132)를 실행할 수 있다.
도 9a 및 도 9b는 본 발명의 실시 예에 따른 DPA 방어대책에 이용하는 개인키의 사용 과정을 설명하는 도면들이다.
도 9a를 참조하면, 공장 HSM(Hardware Security Module)는 이미지 센서(100)에 대응하는 개인키를 발생할 수 있다. 자가 반복 인코더(300)는 공장 HSM에서 발생된 개인키의 사전에 결정된 단위의 데이터로 구분하고, 구분된 데이터 중에서 어느 하나(예를 들어, 첫번째 데이터 "10010010")를 씨드값으로 NVM(160)에 저장하도록 구현될 수 있다. 여기서 사전에 결정된 단위는 바이트 혹은 워드 단위일 수 있다. 또한, 자가 반복 인코더(300)는 씨드값 이후부터 사전에 결정된 단위의 데이터와 난수 발생기의 출력값을 XOR 연산하고, 연산된 값을 NVM(160)에 저장하도록 구현될 수 있다. 여기서 난수 발생기는 블록암호기반 의사난수 발생기(BPRNG)를 이용할 수 있다.
도 9a에 도시된 바와 같이, 보안 회로(130)는 암호 모듈(131) 및 자가 반복 디코더(133a)를 포함할 수 있다. 여기서 자가 반복 디코더(133a)는 도 1에 도시된 개인키 발생기(133)에 포함될 수 있다. 자가 반복 디코더(133a)는 NVM(160)로부터 개인키의 씨드값(예를 들어, "1001010")을 읽어 암호 모듈(131)로 전송할 수 있다. 또한, 자기 반복 디코더(133a)는 NVM(160)에 연산된 값들을 차례로 읽고, 읽혀진 값과 난수 발생기의 출력값을 XOR 연산하고, 연산된 값들을 암호 모듈(131)에 전송할 수 있다. 이로써, 개인키는 이미지 센서(100)의 제조 단계에서 변형되어 NVM(160)에 저장되고, 이미지 센서(100)의 부팅 단계에서 복구되어 암호 모듈(131)로 전송될 수 있다. 한편, 본 발명의 실시 예에 따른 개인키는 다양한 방식으로 변형 및 복원 가능하다.
한편, 개인키는 변형되지 않고 NVM에 저장될 수도 있다. 도 9b를 참조하면, 보안 회로(130a)는 보안 동작시 NVM(160a)로부터 사전에 결정된 단위의 개인키를 순차적으로 로딩할 수 있다. 보안 회로(130a)는 NVM(160a)에 저장된 개인키를 읽어와 보안 동작을 수행할 수 있다. 여기서 보안 동작은 암호문에 대한 복호화 동작일 수 있다.
도 10a는 본 발명의 실시 예에 따른 자가 반복 인코더를 예시적으로 보여주는 도면이고, 도 10b는 본 발명의 실시 예에 따른 자가 반복 디코더를 예시적으로 보여주는 도면이다.
도 10a는 본 발명의 실시 예에 따른 자가 반복 인코더(300)를 예시적으로 보여주는 도면이다. 도 10a을 참조하면, 자가 반복 인코더(300)는 블록암호기반 의사 난수 발생기(310) 및 XOR 연산기(320)를 포함할 수 있다.
블록암호기반 의사 난수 발생기(310)는 개인키의 첫번째 데이터(예를 들어, "10011010")를 씨드값으로 수신할 수 있다. 첫번째 바이트 데이터 중에서 하위 비트값들("1010")을 인덱스(index)로 이용하여 블록암호기반 의사 난수 발생기(310)에 의해 제 1 난수들이 발생될 수 있다. 제 1 난수들 중에서 첫번째 난수를 발생하기 위한 블록암호기반 의사 난수 발생기(310)의 구동 횟수가 인덱스에 따라 결정될 수 있다. 예를 들어, 인덱스가 "1010"일 때, 블록암호기반 의사 난수 발생기(310)가 10번 반복 구동됨으로써, 제 10 의사 난수"11110100" 출력될 수 있다. 이어서 블록암호기반 의사 난수 발생기(310)가 11번 반복 구동됨으로써, 제 11 의사 난수"10011010"출력될 수 있다.
한편, 인덱스는 씨드값의 하위 비트 값(m 비트 값)을 이용하지 않고 씨드값의 상위 비트값을 이용하여 결정될 수도 있다. 본 발명의 인덱스는 씨드값의 적어도 하나의 비트에 대응하는 값이다.
씨드값을 제외한 개인키는 바이트 단위로 XOR 연산기(320)에 의해 블록 암호기반 의사 난수 발생기(310)의 출력값과 XOR 연산 될 수 있다. 예를 들어, 개인키의 씨드값 다음의 데이터 "11011000"와 블록암호기반 의사 난수 발생기(310)의 제 10 의사난수 "11110100"이 XOR 연산된 값 "00111100"이 출력될 수 있다. 그 다음 데이터 "10100011"와 제 11 의사난수 "10011010"이 XOR 연산된 값 "00111001"이 출력될 수 있다. 상술된 바와 같이 개인키의 구분된 데이터와 제 1 난수들이 순차적으로 XOR 연산 될 수 있다. 실시 예에 있어서, XOR 연산기(320)의 출력값들과 개인키의 씨드값은 NVM(160)에 저장될 수 있다.
도 10b는 본 발명의 실시 예에 따른 자가 반복 디코더(133a)를 예시적으로 보여주는 도면이다. 도 10b는 참조하면, 자가 반복 디코더(133a)는 블록암호기반 의사 난수 발생기(133-1) 및 XOR 연산기(133-2)를 포함할 수 있다.
블록암호기반 의사 난수 발생기(133-1)는 NVM(160)로부터 개인키의 씨드값(예를 들어, "10010010") 읽고, 씨드값을 인덱스로 이용하여 블록암호기반 의사 난수 발생기(133-1)에 의해 제 2 난수들이 발생될 수 있다. 제 2 난수들 중에서 첫번째 난수를 발생하기 위한 블록암호기반 의사 난수 발생기(133-1)의 구동 횟수가 인덱스에 따라 결정될 수 있다. 예를 들어, 인덱스가 "1010"일 때, 블록암호기반 의사 난수 발생기(133-1)가 10번 반복 구동됨으로써, 제 10 의사 난수"11100100" 출력될 수 있다. 이어서 블록암호기반 의사 난수 발생기(133-1)가 11번 반복 구동됨으로써, 제 11 의사 난수"10011010"출력될 수 있다. 상술된 바와 같이 블록암호기반 의사 난수 발생기(133-1)에서 제 2 난수들이 출력될 수 있다.
씨드값을 제외한 변형된 개인키에 대응하는 데이터는 XOR 연산기(133-2)에 의해 블록암호기반 의사 난수 발생기(133-1)의 출력값과 XOR 연산 될 수 있다. 예를 들어, 변형된 개인키의 데이터 "00101100"와 블록암호기반 의사 난수 발생기(133-1)의 제 10 의사난수 "11100100"이 XOR 연산된 값 "11011000"이 출력될 수 있다. 변형된 개인키의 그 다음 데이터 "00111001"와 제 11 의사난수 "10011010"이 XOR 연산된 값 "10100011"이 출력될 수 있다. 상술된 바와 같이 변형된 개인키의 구분된 데이터와 제 2 난수들이 순차적으로 XOR 연산 될 수 있다. 실시 예에 있어서, 개인키의 씨드값과 XOR 연산기(133-2)의 출력값들로 개인키가 복원될 수 있다. 복원된 개인키는 암호 모듈(131)에 전송 될 수 있다.
한편, 본 발명의 개인키는 다양하게 변형 가능하다고 이해되어야 할 것이다. 예를 들어, 본 발명의 개인키는 난수 발생기를 이용하지 않고 XOR 연산으로 변형 가능할 수 있다.
도 11은 본 발명의 다른 실시 예에 따른 DPA 방어대책에 이용하는 개인키의 전달 과정을 예시적으로 보여주는 도면이다. 도 11을 참조하면, 공장 HSM에서 이미지 센서(100b)의 개인키를 발생할 수 있다. 발생된 개인키는 복수의 블록 데이터로 구분되고, 각 블록 데이터는 사전에 결정된 키값으로 XOR 연산기(410)에 연산될 수 있다. XOR 연산된 블록 데이터 및 키값은 이미지 센서(100b)의 제조 단계에서 NVM(160b)에 저장될 수 있다. 이미지 센서(100b)의 부팅 동작에서 암호 동작에 필요한 개인키를 복원하기 위하여 NVM(160b)에 저장된 키값과 연산된 블록 데이터는 XOR 연산기(133b)에 의해 순차적으로 연산 될 수 있다. 이로써 이미지 센서(100b)의 개인키가 복원될 수 있다. 보안 회로(131b)는 복원된 개인키를 이용하여 복호화 동작을 수행할 수 있다.
도 12a은 본 발명의 실시 예에 따른 이미지 센서(100a)와 ISP/AP/ECU/Host 와 같은 제어 유닛(200a) 사이의 채널을 예시적으로 보여주는 도면이다. 도 12a을 참조하면, 이미지 센서(100a)로부터 획득된 이미지 데이터는 CSI(Camera Serial Interface) 채널(제 1 채널)을 통하여 제어 유닛(200a)으로 전송될 수 있다. 실시 예에 있어서, CSI 채널은 MIPI CSI-2 채널일 수 있다. 또한, 이미지 센서(100a)의 보안 회로(130a)와 제어 유닛(200a)의 보안 모듈(201a, HSM)은 사이드 채널(제 2 채널)을 통하여 보안 동작에 필요한 데이터를 통신할 수 있다. 여기서 사이드 채널은 I2C 인터페이스, SPI 인터페이스 등으로 구현될 수 있다.
도 12b는 본 발명의 다른 실시 예에 따른 이미지 센서(100b)과 제어 유닛(200b) 사이의 채널을 예시적으로 보여주는 도면이다. 이미지 센서(100b) 및 제어 유닛(200b)은 LVDS(Low Voltage Differential Signal) 채널을 통하여 통신할 수 있다. 이미지 센서(100b)의 물리 계층 모듈(PHY)은 이미지 센싱 유닛(110b)로부터 이미지 데이터를 CSI 방식으로 수신하거나, 보안 회로(130b)로부터 사이드 채널 방식으로 보안 관련 데이터를 수신하고, 수신된 데이터를 LVDS 방식에 적합한 직렬 데이터로 변환할 수 있다. 또한, 물리 계층 모듈(PHY)은 제어 유닛(200b)로부터 LVDS 방식으로 데이터를 수신하고, 수신된 데이터를 CSI 방식 혹은 사이드 채널 방식으로 변환할 수 있다. 제어 유닛(200b)은 LVDA 방식으로 이미지 센서(100b)와 인증 동작을 수행하거나, 암복호 동작을 수행하는 보안 모듈(201b, HSM)을 포함할 수 있다.
도 13은 본 발명의 실시 예에 따른 이미지 센서(CIS)의 부팅 동작을 예시적으로 보여주는 타이밍도들이다. 아래서는 설명의 편의를 위하여 제어 유닛이 ECU라고 하겠다.
도 13를 참조하면, CIS 리셋 신호가 하이 레벨 상태에서 부팅 동작은 수행될 수 있다. I2C 채널을 통하여 ECU는 CIS에 이미지를 ECU에 전송하기 위한 초기화 동작에 관련된 정보를 쓸 수 있다. 이때 CIS 내의 보안 회로는 초기화 되지 않은 상태이며, 동작 대기 상태이다. 이미지 전송을 설정함으로써, CIS 설정 동작이 수행될 수 있다. 이후에 이미지는 ECU에 전송되면서, ECU는 I2C 채널을 통하여 기기 인증을 위하여 CIS로부터 공개키와 디바이스 인증에 필요한 데이터(PubK, CERT_camera) 등을 읽어올 수 있다. 이후에, ECU는 I2C 채널을 통하여 RSA 암호 코드(예를 들어, 도 1의 암호문(CT))를 CIS로 쓸 수 있다.
CIS는 CIS 설정 동작을 수행하기 전에 하드웨어 스탠바이 상태이거나, 아이들 상태(IDLE)에 있을 수 있다. CIS 설정 동작 구간에서, CIS는 이미지 센싱 동작을 수행하기 위한 레지스터 설정을 수행할 수 있다. 이러한 레지스터 설정에 따른 CIS 정보는 ECU로 전달될 수 있다. 이러한 레지스터 설정이 완료되면, CIS는 이미지를 센싱할 수 있다. CIS는 획득된 제 1 이미지 스트림을 ECU로 곧바로 출력할 수 있다. 도 10a에 도시된 바와 같이, 이러한 제 1 이미지 스트림을 전송하면서, 기기 인증 동작이 수행될 수 있다. CIS는 개인키(PrivK)를 얻기 위하여 NVM에 대한 리드 동작을 수행할 수 있다. 이후에, CIS는 개인키(PrivK)를 보안 회로의 키 버퍼(Key Buffer)에 전송할 수 있다. 이후에, ECU는 DPA 방어모듈에서 처리된 개인키(PrivK)를 복원하고, 보안 회로의 키 버퍼에 전송하고, 복원된 개인키를 이용하여 메시지를 복호화할 수 있다. 이후에, ECU는 CIS로 암호문을 전송할 수 있다. 여기서 암호문은 CIS의 공개키(PubK, CERT_camera)로 암호화된 키 값을 포함한다. CIS는 개인키(PrivK)를 이용하여 암호 코드를 복호화 할 수 있다. 이로써, CIS는 ECU와 인증 동작을 통하여 키 값을 공유할 수 있다. 이러한 메시지 복호화(message decryption)을 수행하기 위해 CIS는 ECU로부터 보안 알고리즘(예를 들어, RSA, ECC,…)등으로 암호화된 암호문을 I2C 혹은 SPI등과 같은 커맨드 채널을 통해 수신할 수 있다.이 암호문을 받은 후 CIS는 복호화 과정을 통해 원본 메시지를 복원할 수 있다. 이 복원된 데이터는 CMAC을 위한 키 데이터 혹은 CMAC 처리를 위한 부가 정보 등이 포함될 수 있다.
이후에, CIS는 복호화된 값 중에 포함되어 있는 CMAC 키 값을 이용하여 획득된 이미지에 대한 태그(혹은 MAC 값)을 발생할 수 있다. 도 13a에 도시된 바와 같이, CIS 레지스터 설정 이후에 CIS에서 이미지 스트리밍을 진행하면서, 동시에 ECU의 디바이스 인증 동작(ECU: Dev. Auth)이 수행될 수 있다. 이로써, CIS 부팅 시간을 단축시킬 수 있다.
도 14은 본 발명의 실시 예에 따른 이미지 센서(CIS)의 데이터 수신 과정을 보여주는 도면이다. 도 14을 참조하면, 이미지 센서(CIS, 도 1의 100)의 암호 모듈은 리셋 신호가 하이 레벨 상태에서 키교환(PKE)을 위하여 RSA 암호 알고리즘에 따른 공개키 및 개인키를 로드시킬 수 있다. 이미지 센서(CIS)의 암호 모듈은 자신의 공개키를 제어 유닛(ECU, 도 1의 200)으로 전송하고, 제어 유닛(CIS)은 I2C 채널로 암호문(cipher text)을 전송할 수 있다. 여기서 암호문은 이미지 센서(CIS)의 공개키를 이용하여 암호화된다. 이미지 센서(CIS)의 암호 모듈은 커맨드 셋을 복호화할 수 있다. 이때, 이미지 센서(CIS)는 암호문을 이용하여 난수(혹은 랜덤 데이터)를 발생할 수 있다. 여기서 난수는 암호문을 엔트로피 확산기에 의해 암호문의 일부 데이터를 이용하여 발생될 수 있다. 이미지 센서(CIS)의 암호 모듈은 개인키를 이용하여 암호문을 복호화할 수 있다. 이때 복호화 과정에서 개인키의 DPA 공격을 방지하기 위하여 난수 연산에 이용될 것이다. 이미지 센서(CIS)는 복호화된 평문(plain text)를 이용할 수 있다.
도 15는 본 발명의 실시 예에 따른 이미지 센서의 동작 방법을 예시적으로 보여주는 흐름도이다. 도 15를 참조하면, 이미지 센서는 다음과 같이 동작할 수 있다. 이미지 센서(100)는 제어 유닛(200, ECU)로부터 암호문을 수신할 수 있다(S110). 이미지 센서(100)는 암호문을 이용하여 난수(random number)를 발생할 수 있다(S120). 이미지 센서(100)는 난수를 이용하여 DPA 방어대책을 실행할 수 있다(S130).
도 16은 본 발명의 실시 예에 따른 이미지 센서의 동작 방법을 예시적으로 보여주는 흐름도이다. 도 16을 참조하면, 이미지 센서는 다음과 같이 동작할 수 있다. 이미지 센서(100)는 제어 유닛(ECU, 200)로부터 암호문을 수신할 수 있다(S210). 이미지 센서(100)의 보안 회로(130)는 암호문을 복호화하기 위하여 NVM로부터 인코딩된 개인키를 읽을 수 있다(S220). 보안 회로(130a)는 인코딩된 개인키를 디코딩할 수 있다(S230). 예를 들어, 보안 회로(130a)는 난수들을 이용하여 개인키를 복원하기 위하여 읽혀진 개인키를 디코딩할 수 있다. 이후에, 보안 회로(130a)는 디코딩된 개인키를 이용하여 암호문을 복호화 할 수 있다(S240).
실시 예에 있어서, 난수들은 블록암호기반 의사 난수일 수 있다. 실시 예에 있어서, 블록암호기반 의사 난수 발생기는 개인키의 일부 정보를 이용하여 난수들을 발생할 수 있다. 실시 예에 있어서, 개인키를 사전에 결정된 단위의 데이터로 구분되고, 구분된 데이터 중에서 첫번째 데이터에 대응하는 인덱스가 설정되고, 첫번째 데이터를 씨드값으로 이용하여 블록암호기반 의사 난수 발생기를 인덱스만큼 반복 구동함으로써 난수들 중에서 첫번째 난수가 발생될 수 있다. 실시 예에 있어서, 구분된 데이터 중에서 첫번째 데이터를 제외한 나머지 데이터의 각각과 난수들이 순차적으로 XOR 연산 될 수 있다. 실시 예에 있어서, NVM는 개인키를 사전에 결정된 단위의 데이터로 구분한 데이터 중에서 첫번째 데이터, 및 첫번째 데이터를 제외한 나머지 데이터를 난수들에 의해 인코딩된 데이터를 저장할 수 있다. 실시 예에 있어서, 인코딩된 데이터의 각각과 난수들을 순차적으로 XOR 연산 될 수 있다.
도 17은 본 발명의 실시 예에 따른 제어 유닛의 동작 방법을 예시적으로 보여주는 흐름도이다. 도 17을 참조하면, 제어 유닛은 다음과 같이 동작할 수 있다. 제어 유닛(200)은 이미지 센서(100)로부터 공개키를 수신할 수 있다(S310). 제어 유닛(200)는 공개키를 이용하여 세션 키를 암호화 할 수 있다(S320). 제어 유닛(200)는 암호화된 세션키를 이미지 센서(100)로 전송할 수 있다(S330).
도 18은 본 발명의 실시 예에 따른 이미지 처리 시스템의 동작을 예시적으로 보여주는 래더 다이어그램이다. 도 1 내지 도 18을 참조하면, 이미지 처리 시스템(10)의 동작은 다음과 같이 진행될 수 있다.
이미지 센서(CIS)는 공개키를 제어 유닛(ECU)에 전송할 수 있다(S10). 제어 유닛(ECU)은 수신된 공개키를 이용하여 평문을 암호화할 수 있다(S11). 제어 유닛(ECU)은 암호문을 이미지 센서(CIS)에 전송할 수 있다(S12). 이미지 센서(CIS)는 암호문을 이용하여 난수를 발생할 수 있다(S13). 이미지 센서(CIS)는 난수와 개인키를 이용하여 암호문을 복호화할 수 있다(S14).
도 19는 본 발명의 실시 예에 따른 이미지 처리 시스템(10)의 이미지 데이터 전송 과정을 예시적으로 보여주는 래더 다이어그램이다. 도 1 내지 도 19을 참조하면, 이미지 처리 시스템(10)은 다음과 같이 이미지 데이터를 전송할 수 있다.
이미지 센서(CIS)는 제어 유닛(ECU)으로부터 파워-온 커맨드를 수신할 수 있다(S20). 이미지 센서(CIS)는 파워-온 커맨드에 응답하여 리셋 동작을 수행할 수 있다(S21). 이후, 이미지 센서(CIS)는 자신의 공개키를 제어 유닛(ECU)으로 전송할 수 있다(S22). 제어 유닛(ECU)은 수신된 이미지 센서(CIS)의 공개키와 RSA 알고리즘을 이용하여 코드를 암호화할 수 있다(S23). 한편, 본 발명은 RSA 알고리즘에 제한되지 않는다고 이해되어야 할 것이다. 본 발명은 비대칭키 방식의 암호 알고리즘을 이용할 수 있다. 제어 유닛(ECU)는 RAS 암호 코드(혹은, 도 1의 암호문(CT))를 이미지 센서(CIS)로 전송할 수 있다(S24).
이미지 센서(CIS)는 RSA 암호 코드를 이용하여 난수를 발생할 수 있다(S26). 이미지 센서(CIS)는 RAS 암호 코드로부터 난수를 추출하고, DPA 블록에 난수를 입력할 수 있다(S27). 여기서 복호화된 코드는 이미지의 무결성을 검증하는데 이용되는 키 정보일 수 있다.
이미지 센서(CIS)는 태그를 위한 암호 코드로부터 평문을 획득할 수 있다(S28). 이미지 센서(CIS)는 이미지 센싱 유닛(110)으로부터 이미지(IDATA)를 획득할 수 있다(S28-1). 이미지 센서(CIS)는 복호화된 코드, 즉 키 정보 및 획득된 이미지(IDATA)를 이용하여 태그(CMAC) 및 태그 키를 계산할 수 있다(S29). 이미지 센서(CIS)는 획득된 이미지 데이터(IDATA) 및 태그(CMAC)를 제어 유닛(ECU)로 전송할 수 있다.
한편, 본 발명의 DPA 방어 모듈은 옵션적으로 활성화 될 수 있다.
도 20은 본 발명의 다른 실시 예에 따른 이미지 처리 시스템(20)을 예시적으로 보여주는 도면이다. 도 20를 참조하면, 이미지 처리 시스템(20)은 이미지 센서(100b) 및 제어 유닛(200b)을 포함할 수 있다. 이미지 센서(100b)는 도 1의 이미지 센서(100)와 비교하여 DPA 모드 레지스터(193)를 더 포함한다. DPA 모드 레지스터(193)는 DPA 모드를 저장하도록 구현될 수 있다. DPA 모드는 제어 유닛(200b)의 보안 모듈(201b)에서 DPA 방어 모듈(192)의 활성화가 필요할 때 발생될 수 있다.
도 21a, 도 21b 및 도 21c는 본 발명의 실시 예에 따른 이미지 센서를 예시적으로 보여주는 도면들이다.
도 21a를 참조하면, 본 발명의 실시 예에 따른 이미지 센서(1000)는 제 1 레이어(1100), 및 제 1 레이어(1100)의 하부에 마련되는 제 2 레이어(1200)를 포함할 수 있다. 실시 예에 있어서, 제 1 레이어(1100)와 제 2 레이어(1200)는 서로 수직하는 방향에서 적층 될 수 있다. 실시 예에 있어서, 제 1 레이어(1100)와 제 2 레이어(1200)는 웨이퍼 레벨에서 서로 적층 될 수 있다.
제 1 레이어(1100)는 복수의 픽셀들(PX)이 마련되는 센싱 영역(SA)과, 센싱 영역(SA) 주변에 마련되는 제 1 패드 영역(PA1)을 포함할 수 있다. 제 1 패드 영역(PA1)에는 복수의 상부 패드들(PAD)이 포함되며, 복수의 상부 패드들(PAD)은 비아(VIA) 등을 통해 제 2 레이어(1200)의 제 2 패드 영역(PA2)에 마련된 패드들 및 제어 로직(LC)과 연결될 수 있다. 복수의 픽셀들(PX) 각각은 빛을 받아들여 전하를 발생하는 포토다이오드와, 포토다이오드가 발생한 전하를 처리하는 픽셀 회로 등을 포함할 수 있다. 픽셀 회로는 포토다이오드가 발생한 전하에 대응하는 전압을 출력하기 위한 복수의 트랜지스터들을 포함할 수 있다.
제 2 레이어(1200)는 제어 로직(LC)을 제공하는 복수의 소자들을 포함할 수 있다. 제어 로직(LC)에 포함되는 복수의 소자들은, 제 1 레이어(1100)에 마련된 픽셀 회로를 구동하기 위한 회로들, 예를 들어 로우 드라이버, 칼럼 드라이버, 및 타이밍 제어기 등을 제공할 수 있다. 제어 로직(LC)에 포함되는 복수의 소자들은 제 1 및 제 2 패드 영역들(PA1, PA2)을 통해 픽셀 회로와 연결될 수 있다. 제어 로직(LC)은 복수의 픽셀들(PX)로부터 리셋 전압 및 픽셀 전압을 획득하여 픽셀 신호를 발생할 수 있다. 제어 로직(LC)은 도 1 내지 도 18에서 설명된 보안 기능을 수행하는 보안 회로(CS)를 포함할 수 있다.
실시 예에 있어서, 복수의 픽셀들(PX) 중 적어도 하나는 동일한 레벨에 배치되는 복수의 포토다이오드들을 포함할 수 있다. 복수의 포토 다이오드들 각각의 전하로부터 발생된 픽셀 신호들은 서로 위상차를 가질 수 있으며, 제어 로직(LC)은 하나의 픽셀(PX)에 포함된 복수의 포토 다이오드들로부터 발생한 픽셀 신호들의 위상차에 기초하여 자동 초점 기능을 제공할 수 있다.
도 21b를 참조하면, 이미지 센서(1000a)는 도 21b에 도시된 이미지 센서(1000)와 비교하여 제 2 레이어(1200)의 하부에 마련되는 제 3 레이어(1300)를 더 포함할 수 있다. 실시 예에 있어서, 제 1 레이어(1100), 제 2 레이어(1200) 및 제 3 레이어(1300)는 서로 수직하는 방향에서 적층 될 수 있다. 실시 예에 있어서, 제 1 레이어(1100)와 제 2 레이어(1200)는 웨이퍼 레벨에서 서로 적층되고, 제 3 레이어(1300)는 칩 레벨에서 제 2 레이어(1200)의 하부에 부착될 수 있다. 실시 예에 있어서, 제 1 내지 제 3 레이어들(1100-1300)은 하나의 반도체 패키지로 제공될 수 있다.
제 2 레이어(1200)의 하부에 마련되는 제 3 레이어(1300)는 메모리 칩(MC)과 더미 칩(DC), 및 메모리 칩(MC)과 더미 칩(DC)을 밀봉하는 보호층(EN)을 포함할 수 있다. 메모리 칩(MC)은 동적 랜덤 액세스 메모리(DRAM) 혹은 정적 랜덤 액세스 메모리(SRAM)일 수 있으며, 더미 칩(DC)은 데이터를 실제로 저장하는 기능은 갖지 않을 수 있다. 메모리 칩(MC)은 범프에 의해 제 2 레이어(1200)의 제어 로직(LC)에 포함된 소자들 중 적어도 일부와 전기적으로 연결될 수 있으며, 자동 초점 기능을 제공하는 데에 필요한 정보를 저장할 수 있다. 실시 예에 있어서 범프는 마이크로 범프일 수 있다.
도 21c를 참조하면, 이미지 센서(1200)는 제 1 레이어(2100)와 제 2 레이어(2200)를 포함할 수 있다. 제 1 레이어(2100)는 복수의 픽셀들(PX)이 마련되는 센싱 영역(SA)과, 복수의 픽셀들(PX)을 구동하기 위한 소자들이 마련되는 제어 로직(LC), 및 센싱 영역(SA)과 제어 로직(LC)의 주변에 마련되는 제 1 패드 영역(PA1)을 포함할 수 있다. 제어 로직(LC)은 도 1 내지 도 18에서 설명된 바와 같이 개인키에 대한 DPA 공격을 방지하는 DPA 방어모듈을 갖는 보안 회로(SC)를 포함할 수 있다.
제 1 패드 영역(PA1)은 복수의 상부 패드들(PAD)을 포함할 수 있다. 실시 예에 있어서, 복수의 상부 패드들(PAD)은 비아(VIA) 등을 통해 제 2 레이어(2200)에 마련된 메모리 칩(MC)과 연결될 수 있다. 제 2 레이어(2200)는 메모리 칩(MC)과 더미 칩(DC), 및 메모리 칩(MC)과 더미 칩(DC)을 밀봉하는 보호층(EN)을 포함할 수 있다.
도 22은 본 발명의 실시 예에 따른 자율 주행 차량(3000)을 예시적으로 보여주는 도면이다. 도 22을 참조하면, 프론트 뷰 카메라(3100), 리어 뷰 카메라(3200), 서라운드 뷰 카메라들(3300, 3400)는 도 1 내지 도 21b에 설명된 이미지 센서로 구현될 수 있다. 또한, 사이드 센싱 카메라, 드라이버 모니터링 카메라, 전자 미러 중 적어도 하나는 도 1 내지 도 21c에 설명된 이미지 센서로 구현될 수 있다.
한편, 본 발명은 자율 주행에 이용 가능하다.
도 23는 본 발명의 실시 예에 따른 자율 주행 시스템(4000)을 예시적으로 보여주는 도면이다. 도 23를 참조하면, ECU(4100), 적어도 하나의 카메라(4200), 라이다/레이다(4300), 적어도 하나의 센서(4400), 저장 장치(4500), 및 디스플레이 장치(4600)를 포함할 수 있다.
ECU(4100)는 적어도 하나의 카메라(4200) 및 라이다/레이다(4300)에 CSI-2 인터페이스를 통하여 연결될 수 있다. 여기서 카메라(4200) 및 라이다/레이다(4300)는 도 1 내지 도 21c에서 설명된 바와 같이, ECU(4100)와 보안 통신을 수행하고, 개인키에 대한 DPA 공격을 무력화하도록 구현될 수 있다.
ECU(4100)는 적어도 하나의 센서(4400)에 I2C 인터페이스를 통하여 연결될 수 있다. ECU(4100)는 UFS(Universal Flash Storage) 인터페이스를 통하여 저장 장치(4500)에 연결될 수 있다. ECU(4100)는 HDMI(High Definition Multimedia Interface), DSI(Display Serial Interface), eDP(Embedded Display Port) 등과 같은 디스플레이 인터페이스를 통하여 디스플레이 장치(4600)에 연결될 수 있다. ECU(4100)는 MIPI(Mobile Industry Processor Interface) A-PHY 인터페이스를 통하여 다른 EUC에 연결될 수 있다. 한편, 본 발명이 MIPI A-PHY 인터페이스에 제한되지 않는다고 이해되어야 할 것이다. ECU(4100)는 MIPI C-PHY/D-PHY/M-PHY 인터페이스를 통해 다른 ECU에 연결될 수도 있다. ECU(4100)는 차량 내의 다른 도메인에 이더넷(Ethernet) 인터페이스를 통하여 연결될 수 있다. 한편, 본 발명이 이더넷 인터페이스에 제한되지 않는다고 이해되어야 할 것이다. ECU(4100)는 다양한 차량 통신용 인터페이스(CAN, CAN-FD, LIN, FlexRay 등)를 통하여 다른 도메인에 연결될 수 있다.
일반적으로, 이미지 센서는 리셋 동작을 수행한 후, 호스트로부터 암호화된 암호문(cipher text)를 받고, 복호화 동작을 수행할 수 있다. 이러한 복호화 동작 중에 외부 DPA 공격의 방어대책 기능을 위해 랜덤 데이터가 필요하다. 본 발명의 실시 예에 따른 이미지 센서는 이러한 랜덤 데이터를 효율적으로 획득할 수 있다.
종래의 시스템은 랜덤 데이터를 획득하기 위해서 참난수 발생기(TRNG) 등 특정 IP를 사용하고 있다. 본 발명의 이미지 센서는 DPA 방어대책으로 사용되는 랜덤 데이터를 호스트에서 받는 암호화된 데이터에서 획득할 수 있다. 본 발명의 차량용 이미지 세서는 참난수 발생기(TRNG) IP 사용하지 않기 때문에, 그 만큼 시스템 면적의 감소를 기대할 수 있다. 또한, 난수 발생기의 누출 가능성을 줄일 수 있다. 본 발명의 이미지 센서는 참난수 발생기를 사용하지 않고도 랜덤 데이터를 효율적으로 획득할 수 있다. 한편, 본 발명이 이미지 센서에 제한되지 않는다고 이해되어야 할 것이다. 본 발명은 호스트에 연결되어 보안 통신을 수행하는데 난수를 이용하는 어떠한 종류의 전자 장치에 적용 가능하다. 즉, 본 발명의 실시 예에 따른 전자 장치는 호스트의 암호문의 임의성을 이용하여 난수를 발생하도록 구현될 수 있다.
또한, 종래의 시스템은, 개인키를 CIS내 NVM에 raw data 형태로 저장하여 DPA attack에 취약한 구조였다. 반면에, 본 발명의 실시 예에 따른 이미지 처리 시스템은 이미지 센서를 DPA attack에도 강하도록 구현됨으로써, Private key가 외부에 유출될 가능성을 없게 할 수 있다. 본 발명의 실시 예에 따른 이미지 센서는 개인키에 대한 DPA 공격을 무력화시킬 수 있다. 이로써, 본 발명은 자율주행 차량의 사이버 보안 시스템의 신뢰성을 향상시킬 수 있다.
한편, 상술된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체 뿐 아니라, 장차 기술로 활용 할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함 할 것이다.
10: 이미지 처리 시스템
100: 이미지 센서
110: 이미지 센싱 유닛
120: 신호 처리 유닛
130: 보안 회로
131: 암호 모듈
132: DPA 방어모듈
160: NVM
200: 제어 유닛
201: 보안 모듈
100: 이미지 센서
110: 이미지 센싱 유닛
120: 신호 처리 유닛
130: 보안 회로
131: 암호 모듈
132: DPA 방어모듈
160: NVM
200: 제어 유닛
201: 보안 모듈
Claims (20)
- 이미지 데이터를 획득하는 이미지 센싱 유닛; 및
상기 이미지 데이터의 무결성을 위한 태그를 발생하는 보안 회로를 포함하고,
상기 보안 회로는,
제어 유닛으로부터 공개키로 암호화된 암호문을 수신하고, 개인키를 이용하여 암호 알고리즘에 의거하여 상기 암호문을 복호화하는 암호 모듈; 및
상기 암호문의 전체 혹은 일부에 대응하는 랜덤 값을 이용하여 상기 암호 모듈의 연산에 대한 DPA(Differential Power Analysis) 방어하는 DPA 방어 모듈을 포함하는 이미지 센서. - 제 1 항에 있어서,
상기 보안 회로는 상기 제어 유닛과 인증 동작을 수행하는 것을 특징으로 하는 이미지 센서. - 제 1 항에 있어서,
상기 보안 회로는, 상기 랜덤 값을 이용하여 난수를 발생하는 난수 발생기 및 상기 암호문의 임의성을 증가시킨 상기 랜덤 값에 대응하는 인덱스를 출력하는 엔트로피 확산기를 더 포함하는 이미지 센서. - 제 3 항에 있어서,
상기 암호문을 복수의 분할 데이터를 구분되고,
상기 난수 발생기는 상기 인덱스에 따라 상기 복수의 분할 데이터 중에서 어느 하나를 상기 난수로 결정하는 것을 특징으로 하는 이미지 센서. - 제 4 항에 있어서,
상기 난수 발생기는,
상기 인덱스에 따라 상기 복수의 분할 데이터 중에서 어느 하나를 선택하는 멀티 플렉서를 포함하는 이미지 센서. - 제 5 항에 있어서,
상기 인덱스는 온도 센서의 온도 정보에 대응하는 값인 것을 특징으로 하는 이미지 센서. - 제 5 항에 있어서,
상기 엔트로피 확산기는,
상기 이미지 센싱 유닛의 온도를 감지하는 온도 센서; 및
상기 온도 센서의 온도 정보를 이용하여 상기 인덱스를 출력하는 인덱스 인코더를 포함하는 이미지 센서. - 제 5 항에 있어서,
상기 엔트로피 확산기는 블록 암호 기반 의사 난수 발생기(Block Cipher based Pseudo Random Number Generator; BPRNG)로 구현되는 것을 특징으로 하는 이미지 센서. - 제 5 항에 있어서,
상기 엔트로피 확신기는 상기 암호문 및 상기 암호 알고리즘을 이용하여 상기 인덱스를 생성하는 것을 특징으로 하는 이미지 센서. - 제 1 항에 있어서,
상기 암호 알고리즘은 비대칭 키 암호 알고리즘인 것을 특징으로 하는 이미지 센서. - 이미지 센서의 동작 방법에 있어서,
제어 유닛으로 암호문을 수신하는 단계;
상기 암호문을 이용하여 난수를 발생하는 단계; 및
상기 난수를 이용하여 DPA(Differential Power Analysis) 방어 모듈을 실행하는 단계를 포함하는 방법. - 제 11 항에 있어서,
상기 암호문은 상기 이미지 센서의 공개키로 암호화된 것을 특징으로 하는 방법. - 제 12 항에 있어서,
상기 공개키를 상기 제어 유닛으로 전송하는 단계를 더 포함하는 방법. - 제 11 항에 있어서,
상기 난수를 발생하는 단계는,
상기 암호문을 복수의 분할 데이터로 분할하는 단계; 및
인덱스에 따라 상기 복수의 분할 데이터 중에서 어느 하나를 상기 난수로 선택하는 단계를 포함하는 방법. - 제 14 항에 있어서,
상기 난수를 발생하는 단계는,
의사 난수 발생기(pseudo random number generator)를 이용하여 상기 인덱스를 발생하는 단계를 더 포함하는 방법. - 이미지 데이터를 획득하는 이미지 센서; 및
상기 이미지 센서로부터 이미지 데이터를 수신하는 제어 유닛을 포함하고,
상기 이미지 센서는,
상기 이미지 데이터를 감지하는 이미지 센싱 유닛; 및
상기 제어 유닛과 인증 동작을 수행하고, 상기 제어 유닛으로부터 암호문을 수신하고, 비밀키를 이용하여 상기 수신된 암호문을 복호화하는 보안 회로를 포함하고,
상기 보안 회로는 상기 암호문의 전체 혹은 일부를 이용하여 난수를 발생하고, 상기 난수를 이용하여 상기 암호문의 복호화 동작에서 비밀키에 대한 DPA(Differential Power Analysis) 공격을 방지하는 것을 특징으로 하는 이미지 처리 시스템. - 제 16 항에 있어서,
상기 보안 회로는 상기 이미지 데이터에 대응하는 태그를 발생하고,
상기 이미지 센서는 상기 이미지 데이터와 상기 태그를 제 1 통신 채널을 통하여 상기 제어 유닛으로 전송하고, 상기 암호문을 제 2 통신 채널을 통하여 수신하는 것을 특징으로 하는 이미지 처리 시스템. - 제 17 항에 있어서,
상기 제 1 통신 채널은 CSI(Camera Serial Interface) 방식으로 통신하고,
상기 제 2 통신 채널은 I2C(Inter-Integrated Circuit) 방식으로 통신하는 것을 특징으로 하는 이미지 처리 시스템. - 제 16 항에 있어서,
상기 보안 회로는 상기 암호문을 수신하고, 상기 암호문을 이용하여 상기 난수를 발생하는 난수 발생기를 포함하는 이미지 처리 시스템. - 제 19 항에 있어서,
상기 보안 회로는 상기 이미지 센서의 내부 정보를 이용하여 상기 암호문의 임의성을 증가시키기 위한 랜덤 값을 출력하는 엔트로피 확산기를 더 포함하는 이미지 처리 시스템.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/883,917 US20230163943A1 (en) | 2021-11-23 | 2022-08-09 | Image sensor, image processing system having the same and operating method of the same |
TW111131695A TW202322617A (zh) | 2021-11-23 | 2022-08-23 | 影像感測器、具有其的影像處理系統及其操作方法 |
EP22200925.0A EP4187414B1 (en) | 2021-11-23 | 2022-10-11 | Image sensor, image processing system having the same, and operating method of the same |
JP2022178825A JP2023076809A (ja) | 2021-11-23 | 2022-11-08 | イメージセンサとそれを有するイメージ処理システム及びその動作方法 |
CN202211457816.8A CN116156341A (zh) | 2021-11-23 | 2022-11-21 | 图像传感器、具有其的图像处理系统及其操作方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20210162168 | 2021-11-23 | ||
KR1020210162168 | 2021-11-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230076077A true KR20230076077A (ko) | 2023-05-31 |
Family
ID=86544036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220054063A KR20230076077A (ko) | 2021-11-23 | 2022-05-02 | 이미지 센서, 그것을 갖는 이미지 처리 시스템 및 그것의 동작 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230076077A (ko) |
-
2022
- 2022-05-02 KR KR1020220054063A patent/KR20230076077A/ko unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10552588B2 (en) | Enabling a software application to be executed on a hardware device | |
US10439821B2 (en) | Anonymous image/video digital signature insertion and authentication | |
KR101669157B1 (ko) | 데이터 보호장치 및 그 방법 | |
CN102725737B (zh) | 可验证防泄漏的加密和解密 | |
US20160255065A1 (en) | Communication system and communication device | |
US9648026B2 (en) | Cryptographic method for securely exchanging messages and device and system for implementing this method | |
CN105009507A (zh) | 借助于物理不可克隆函数创建从加密密钥中推导的密钥 | |
US9338003B2 (en) | Secure modules using unique identification elements | |
US20190012472A1 (en) | Hierarchical bus encryption system | |
JP2019536127A (ja) | ユーザ機器を認証する装置及び方法 | |
CN112134703B (zh) | 使用改良式键熵汇流排保护的电子装置 | |
US20220271926A1 (en) | Secure sensor communication | |
US9003197B2 (en) | Methods, apparatus and system for authenticating a programmable hardware device and for authenticating commands received in the programmable hardware device from a secure processor | |
JP2007329688A (ja) | データ処理装置およびその方法 | |
US10951411B2 (en) | Methods and apparatus for a password-protected integrated circuit | |
CN114004345A (zh) | 数据处理系统和方法 | |
CN112703500A (zh) | 在低功率模式期间保护存储在IoT装置的存储器中的数据 | |
EP4187414B1 (en) | Image sensor, image processing system having the same, and operating method of the same | |
US20230406326A1 (en) | Controller for processing image data, image processing system including controller, and method of operating controller | |
KR20230076077A (ko) | 이미지 센서, 그것을 갖는 이미지 처리 시스템 및 그것의 동작 방법 | |
KR20230082533A (ko) | 이미지 센서, 그것을 갖는 이미지 처리 시스템 및 그것의 동작 방법 | |
CN115348024A (zh) | 车辆图像传感器、包括其的图像处理系统和其操作方法 | |
KR20220155548A (ko) | 차량용 이미지 센서, 그것을 갖는 이미지 처리 시스템 및 그것의 동작 방법 | |
TW202023223A (zh) | 加解密系統、加密裝置、解密裝置和加解密方法 | |
KR20230171840A (ko) | 이미지 데이터를 처리하는 제어기, 및 그것을 포함하는 이미지 처리 시스템 및 그것의 동작 방법 |