KR20140069195A - 난수 생성기를 위한 자기―저항 엘리먼트를 갖는 엔트로피 소스 - Google Patents

난수 생성기를 위한 자기―저항 엘리먼트를 갖는 엔트로피 소스 Download PDF

Info

Publication number
KR20140069195A
KR20140069195A KR1020147010432A KR20147010432A KR20140069195A KR 20140069195 A KR20140069195 A KR 20140069195A KR 1020147010432 A KR1020147010432 A KR 1020147010432A KR 20147010432 A KR20147010432 A KR 20147010432A KR 20140069195 A KR20140069195 A KR 20140069195A
Authority
KR
South Korea
Prior art keywords
random values
entropy
random
values
coupled
Prior art date
Application number
KR1020147010432A
Other languages
English (en)
Other versions
KR101617832B1 (ko
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 KR20140069195A publication Critical patent/KR20140069195A/ko
Application granted granted Critical
Publication of KR101617832B1 publication Critical patent/KR101617832B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1659Cell access
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1673Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1695Protection circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1697Power supply circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/58Indexing scheme relating to groups G06F7/58 - G06F7/588
    • G06F2207/581Generating an LFSR sequence, e.g. an m-sequence; sequence may be generated without LFSR, e.g. using Galois Field arithmetic

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Hall/Mr Elements (AREA)
  • Measuring Magnetic Variables (AREA)

Abstract

엔트로피 소스 및 난수(RN) 생성기가 개시된다. 일 양상에서, 저-에너지 엔트로피 소스는 자기-저항(MR) 엘리먼트 및 감지 회로를 포함한다. MR 엘리먼트에는 정전류가 인가되고, MR 엘리먼트의 자화에 기초하여 결정되는 가변 저항을 갖는다. 감지 회로는 MR 엘리먼트의 저항을 감지하고 MR 엘리먼트의 감지된 저항에 기초하여 랜덤 값들을 제공한다. 다른 양상에서, RN 생성기는 엔트로피 소스와 후-프로세싱 모듈을 포함한다. 엔트로피 소스는 적어도 하나의 MR 엘리먼트를 포함하고, 적어도 하나의 MR 엘리먼트에 기초하여 제 1 랜덤 값들을 제공한다. 후-프로세싱 모듈은 제 1 랜덤 값을 수신 및 (예를 들어, 암호 해시 함수, 에러 검출 코드, 스트림 암호 알고리즘 등에 기초하여) 프로세싱하고, 개선된 무작위성 특성들을 갖는 제 2 랜덤 값들을 제공한다.

Description

난수 생성기를 위한 자기―저항 엘리먼트를 갖는 엔트로피 소스{ENTROPY SOURCE WITH MAGNETO-RESISTIVE ELEMENT FOR RANDOM NUMBER GENERATOR}
본 출원은 2011년 9월 20일자에 출원된 "ENTROPY SOURCE WITH STT-MTJ SEMICONDUCTOR DEVICE FOR RANDOM NUMBER GENERATOR"란 명칭의 미국 가출원 제 61/536,769 호를 우선권으로 청구하며, 그의 전체 내용이 인용에 의해 본원에 통합된다.
본 발명은 일반적으로는 전자 회로들에 관한 것이고, 더 구체적으로는 랜덤 값들을 생성하기 위한 기술들에 관한 것이다.
난수(RN) 생성기들은 다양한 응용들을 위해 랜덤 값들을 생성하는데 널리 사용된다. 예를 들어, 암호 보안 알고리즘을 구현하는 컴퓨터형 디바이스는 일반적으로 랜덤 값들(일반적으로 랜덤 2진 비트들)의 소스를 필요로 한다. RN 생성기는 암호 보안 알고리즘을 위한 컴퓨터형 디바이스에 랜덤 값들을 제공하는데 사용될 수 있다. RN 생성기는 또한 통상적으로 RNG 또는 랜덤 비트 생성기(RBG)로서 지칭된다.
RN 생성기는 랜덤 비트들의 시퀀스를 제공할 수 있는 엔트로피 소스로 구현될 수 있다. 엔트로피 소스는 간단한 1차 마르코프 프로세스에 의해 최대한 모델링될 수 있는 상태 전이들을 갖는 물리적 디바이스로 구현될 수 있어서, 엔트로피 질 및 관련 보안 강도가 보다 쉽게 정량화되어 충분한 보안 강도를 보증할 수 있다. 랜덤 비트들은 물리적 디바이스의 상태 전이들의 시퀀스로부터 유도될 수 있다. 그러나, 엔트로피 소스에 사용될 수 있는 대부분의 물리적 디바이스들은 고가이고, 고전력을 요구하며, 데이터를 느리게 생성한다. 더욱이, 이러한 물리적 디바이스들의 상태 전이들을 간단한 마르코프 프로세스로 모델링하는 것이 어렵거나 비현실적일 수 있으며 이는 물리적 디바이스들의 성능을 정량화하는 것을 더욱 어렵게 만들 수 있다.
하나 이상의 자기-저항(MR) 엘리먼트들에 기초하여 랜덤 값들을 생성할 수 있는 엔트로피 소스 및 RN 생성기가 본원에 기술된다. 일 양상에서, 저-에너지 엔트로피 소스는 MR 엘리먼트 및 감지 회로를 포함할 수 있다. MR 엘리먼트는 정전류가 (및 전류 펄스들 없이) 인가될 수 있고, MR 엘리먼트의 자화에 기초하여 결정되는 가변 저항을 가질 수 있다. 정전류는 일정한 진폭과 극성을 갖는 전류이며, 예를 들어, 전류 펄스들이 없다. MR 엘리먼트는 자발적이고 랜덤하게 다른 자화 상태들 사이에서 전이할 수 있고, 이러한 전이들은 MR 엘리먼트의 저항에 영향을 줄 수 있다. 감지 회로는 MR 엘리먼트의 저항을 감지하고 MR 엘리먼트의 감지된 저항에 기초하여 랜덤 값들을 제공할 수 있다.
다른 양상에서, RN 생성기는 엔트로피 소스 및 후-프로세싱 모듈을 포함할 수 있다. 엔트로피 소스는 적어도 하나의 MR 엘리먼트를 포함할 수 있고 적어도 하나의 MR 엘리먼트에 기초하여 제 1 랜덤 값들을 제공할 수 있다. 후-프로세싱 모듈은 제1 랜덤 값들을 수신하고 (예를 들어, 암호 해시 함수, 에러 검출 코드, 스트림 암호 알고리즘 등에 기초하여) 프로세싱하며 개선된 무작위성 특성들을 갖는 제 2 랜덤 값들을 제공할 수 있다.
또 다른 양상에서, 엔트로피 소스는 MR 셀들의 어레이와 감지 회로를 포함할 수 있다. MR 셀들의 어레이는 복수의 행들과 복수의 열들로 배열될 수 있다. 각 MR 셀은 적어도 하나의 MR 엘리먼트를 포함할 수 있다. 복수의 워드 라인들은 MR 셀들의 복수의 행들에 커플링될 수 있다. 복수의 선택 라인들은 MR 셀들의 복수의 열들에 커플링될 수 있다. 복수의 비트 라인들은 또한 MR 셀들의 복수의 열들에 커플링될 수 있다. 감지 회로는 복수의 선택 라인들에 커플링될 수 있고 어레이의 MR 셀들의 저항을 감지할 수 있다. 어레이의 MR 셀들은 (예를 들어, 인터리빙된 방법으로) 선택되고 제 1 레이트로 감지되어 제 2 레이트로 랜덤 값을 생성할 수 있으며, 제 2 레이트는 제 1 레이트보다 높을 수 있다.
또 다른 양상에서, 탬퍼 검출 모듈이 엔트로피 소스 및 검출 모듈을 포함할 수 있다. 엔트로피 소스는 적어도 하나의 MR 엘리먼트를 포함할 수 있고 적어도 하나의 MR 엘리먼트에 기초하여 제 1 값들을 제공할 수 있다. 검출 모듈은 제 1 값들을 수신하고 프로세싱하고, 엔트로피 소스의 탬퍼링의 표시를 제공할 수 있다. 검출 모듈은, 제 1 값들에서의 0들의 퍼센티지와 1들의 퍼센티지, 또는 제 1 값에서의 0들의 연속들(runns)과 1들의 연속들, 또는 제 1 값들에서의 0들과 1들의 미리 결정된 패턴들의 발생 횟수, 또는 제 1 값들의 출력 압축률 등과 같은 다양한 기준들에 기초하여, 엔트로피 소스를 탬퍼링하는 것을 검출할 수 있다.
본 발명의 다양한 양상들 및 특징들은 이하에서 보다 상세하게 기재된다.
도 1은 RN 생성기의 블록 다이어그램을 도시한다.
도 2a 및 도 2b는 저-에너지 엔트로피 소스의 두 가지 설계들을 도시한다.
도 3은 고-에너지 엔트로피 소스의 설계를 도시한다.
도 4는 도 3의 제어 회로에 의해 수행되는 프로세스를 도시한다.
도 5는 MR 셀들의 어레이를 갖는 엔트로피 소스의 설계를 도시한다.
도 6a, 도 6b 및 도 6c는 MR 셀의 세 가지 설계를 도시한다.
도 7a 내지 도 12는 RN 생성기의 다양한 설계들을 도시한다.
도 13은 탬퍼 검출 회로를 도시한다.
도 14는 랜덤 값들을 생성하기 위한 프로세스를 도시한다.
도 15는 무선 디바이스의 블록 다이어그램을 도시한다.
하나 이상의 MR 엘리먼트들에 기초하여 랜덤 값들을 생성할 수 있는 엔트로피 소스 및 RN 생성기가 본원에 개시된다. MR 엘리먼트는 자신의 자화에 따라 변화하는 저항을 갖는 엘리먼트이다. MR 엘리먼트는 자기 터널 접합(MTJ: magnetic tunnel junction) 반도체 디바이스, 스핀 토크 트랜스퍼 자기 터널 접합(STT-MTJ: spin torque transfer magnetic tunnel junctin) 반도체 디바이스, 또는 자화에 따라 가변하는 저항을 갖는 몇몇의 다른 디바이스일 수 있다. STT-MTJ 디바이스는 (다른 MTJ 디바이스들과 같이 자기장으로 프로그래밍되는 대신에) 전류를 그 디바이스에 통과시킴으로써 프로그래밍되는/기록되는 MTJ 디바이스이다. 엔트로피 소스를 위한 MR 엘리먼트(예를 들어, STT-MTJ 디바이스)의 사용은 제작의 용이성, 낮은 비용, 양호한 성능, 및 엔트로피 및 보안 강도를 정량화할 수 있는 능력과 같은 특정 이점들을 제공할 수 있다.
엔트로피 소스 및 RN 생성기는 무선 디바이스들, 셀룰러 폰들, 스마트 폰들, 태블릿들, PDA들(personal digital assistants), 랩탑 컴퓨터들, 데스크탑 컴퓨터들, 넷북들, 스마트북들 등과 같은 다양한 전자 디바이스들에 사용될 수 있다. 엔트로피 소스 및 RN 생성기는 암호법, 노이즈 소스(예를 들어, 테스트 장비), 확률 로직(probabilistic logic)을 위한 시퀀스 생성(예를 들어, 확률 변수를 나타내는 시퀀스들), 몬테-카를로(Monte-Carlo) 시뮬레이션들, 최적화 문제들, 유전 알고리즘들 등과 같은 다양한 응용들에서 또한 사용될 수 있다.
도 1은 RN 생성기(100)의 설계의 블록 다이어그램을 도시한다. 이 설계에서, RN 생성기(100)는 엔트로피 소스(110) 및 후-프로세싱 모듈(120)을 포함한다. 엔트로피 소스(110)는 하나 이상의 MR 엘리먼트들(예를 들어, 하나 이상의 STT-MTJ 디바이스들)을 포함하고, 제 1 랜덤 값들을 생성하고, 이는 '1' 또는 '0'의 랜덤 비트들일 수 있다. "랜덤" 및 "예측할 수 없는" 용어들은 상호 교환 가능하게 사용될 수 있다. 도 1에 도시된 일 설계에서, 후-프로세싱 모듈(120)은 엔트로피 소스(110)로부터 제 1 랜덤 값들을 수신하고 진정한 랜덤 소스로부터의 랜덤 값들에 (통계적으로) 보다 근접하게 매칭하는 제 2 랜덤 값들을 생성한다. 모듈(120)에 의한 후-프로세싱은 무작위성 특성을 개선할 수 있다. 제 2 랜덤 값들은 2진(binary) 값들 또는 비-2진(non-binary) 값들일 수 있다. 도 1에 도시되지 않은 다른 설계에서는, 제 1 랜덤 값들은 어떠한 후-프로세싱 없이 제 2 랜덤 값들로서 직접 제공될 수 있다. 이 설계에서, RN 생성기는 엔트로피 소스(110)만을 포함할 것이다.
일 양상에서, 저-에너지 엔트로피 소스는 정전류(예를 들어, 낮은 DC 전류)에 기초하여 동작하는 하나 이상의 MR 엘리먼트들을 포함할 수 있다. 정전류는 또한 감지 전류로서 지칭될 수 있고 MR 엘리먼트의 상태를 스위칭하는데 통상적으로 필요한 전류의 양보다 낮을 수 있다. 전류 펄스들이 저항에서의 변화들을 유도하기 위해 하나 이상의 MR 엘리먼트들에 인가되지 않는다. 오히려, 열 노이즈 및/또는 다른 현상에 기인하는 MR 엘리먼트(들)의 저항 변화들이 검출되고 랜덤 값들을 생성하는데 사용된다. MR 엘리먼트(들)에 대해 정전류를 사용하는 것은 낮은 전력 소비, 간단화된 회로 설계 등과 같은 다양한 이점들을 제공할 수 있다. 저-에너지 엔트로피 소스는 엔트로피를 생성하기 위해 저-에너지 현상들(예를 들어, 열 노이즈)을 사용하고, 반면에, 고-에너지 엔트로피 소스는 엔트로피를 생성하기 위해 보다 높은 에너지 자극들(예를 들어, 전류 펄스들)을 사용한다. 저-에너지 엔트로피 소스는 적합한 양과 질의 엔트로피를 생성할 수 있으며, 이는 고-에너지 엔트로피 소스로부터의 엔트로피와 비슷할 수 있다.
도 2a는 도 1의 엔트로피 소스(110)의 일 설계인 저-에너지 엔트로피 소스(110x)의 간략도를 도시한다. 엔트로피 소스(110x)는 저항기(210), MR 엘리먼트(220) 및 감지 회로(230)를 포함한다. 저항기(210)는 제 1 기준 전압(VREF1)에 커플링된 일단 및 노드 X에 커플링된 제 2 단을 갖는다. 저항기(210)는 VREF1 전압 대신에 전력 공급 전압(VDD)에 또한 커플링될 수 있다. MR 엘리먼트(220)는 노드 X에 커플링된 일단과 회로 접지에 커플링된 타단을 갖는다. 감지 회로(230)는 감지 증폭기(240, 예를 들어, 비교기) 및 D 플립-플롭(250)을 포함한다. 감지 증폭기(240)는 노드 X에 커플링된 자신의 비-반전 입력, 제 2 기준 전압(VREF2)을 수신하는 자신의 반전 입력, 및 플립-플롭(250)의 D 입력에 커플링된 자신의 출력을 갖는다. 플립-플롭(250)은 또한 자신의 클록 입력에서 클록을 수신하고 자신의 Q 출력에서 제 1 랜덤 값들(예를 들어, 랜덤 비트들)을 제공한다. 플립-플롭(250)을 사용하는 이점은 플립-플롭의 출력의 모든 전이들이 클록과 동기화된다는 점이다.
MR 엘리먼트(220)는 STT-MTJ 디바이스 또는 몇몇의 다른 타입의 MR 엘리먼트를 포함한다. STT-MTJ 디바이스는 그 중간에 자기 터널링 레이어를 갖는 자기 물질의 두 레이어들의 샌드위치에 의해 형성된다. 두 전기 전도체들이 자기 물질의 두 레이어들에 연결된다. STT-MTJ 디바이스의 저항은 가변이며 그 두 레이어들의 상대적 자화에 의존한다. 자기 물질의 두 레이어들 중 하나는 통상적으로 고정된 자화(스핀 편극)을 갖고 고정 레이어로 지칭될 수 있다. 자기 물질의 두 레이어들 중 다른 하나는 스위칭될 수 있고 자유 레이어로서 지칭될 수 있다. 두 레이어들의 상대적인 자화는 어떠한 구동 전류도 인가되지 않는 때조차 (예를 들어, 열 노이즈/에너지에 기인하여) 자발적으로 스위칭할 수 있다. STT-MTJ 디바이스의 저항은 그 두 레이어들의 상대적 자화에 의존한다.
도 2a에 도시된 설계에서, 저항성 분압기가 MR 엘리먼트(220)의 저항을 감지하는데 사용된다. 특히, 노드 X에서의 전압(VX)은 저항기(210)의 고정 저항 R1, MR 엘리먼트(220)의 가변 저항 R2, 및 저항성 분압기에 인가된 전압 VREF1에 의존한다. 전압 VX는 다음과 같이 표현될 수 있다:
Figure pct00001
수학식 1에 나타난 바와 같이, MR 엘리먼트(220)의 저항 R2가 자기 물질의 두 레이어들의 상대적 자화의 자발적 스위칭에 따라 변할 때, 전압 VX 또한 이에 대응하여 변한다. 감지 증폭기(240)는 전압 VREF2에 대해 전압 VX을 비교하고, 전압 VX가 전압 VREF2보다 높으면 높은 출력 전압을 제공하고, 그렇지 않으면 낮은 출력 전압을 제공한다. MR 엘리먼트(220)의 저항이 목표 값에 있을 때, 전압 VX가 전압 VREF2에 가깝도록 저항기(210)의 저항 R1, 전압 VREF1, 및/또는 전압 VREF2가 선택될 수 있다.
감지 증폭기(240)는 MR 엘리먼트(220)의 저항을 감지하고 감지된 저항에 기초하여 2진 출력 값들을 제공할 수 있다. 제 1 랜덤 값들을 획득하기 위해 감지 증폭기(240)로부터의 2진 출력 값들이 클록에 기초하여 플립-플롭(250)에 의해 샘플링된다. 감지 증폭기(240)로부터의 출력 값들을 플립-플롭(250)으로 샘플링하는 것은 후속하는 디지털 회로들의 셋업 시간들 및 홀드 시간들과의 일치를 보증할 수 있다.
도 2a에서의 설계는 저-에너지 현상들에 기초한 MR 엘리먼트(220)의 저항의 변화들을 검출한다. 특히, MR 엘리먼트(220)의 저항은 어떠한 구동 전류 없이 자유 진동으로 인해 변화한다. 이 설계는 엔트로피 소스(110x)를 위한 상대적으로 간단한 회로가 될 수 있다. 이 설계는 또한 마모를 완화하고 MR 엘리먼트(220)의 신뢰성을 개선할 수 있다. MR 엘리먼트는 또한 MR 엘리먼트가 열 노이즈 및/또는 다른 에너지 소스들로부터의 동요(agitation) 하에서 보다 쉽게 자발적 상태 스위칭을 겪을 수 있도록 설계되고 제작될 수 있다. 예를 들어, STT-MTJ 디바이스는 STT-MTJ 디바이스가 자발적 상태 스위치를 겪을 수 있도록 약한 리텐션(retention)으로 및/또는 안정된 축(axis) 없이 구현될 수 있다.
도 2b는 도 1의 엔트로피 소스(110)의 다른 설계인 저-에너지 엔트로피 소스(110y)의 간략도를 도시한다. 엔트로피 소스(110y)는 저항기(210), MR 엘리먼트(220), 및 감지 회로(230)를 포함하고, 이들은 도 2a에 대해 전술한 바와 같이 커플링되며, 다만, 저항기(210)는 전압 VREF1 대신에 전압 VDD에 커플링된다. 엔트로피 소스(110y)는 저항기들(212 및 214)에 의해 형성된 분압기를 더 포함한다. 저항기(212)는 전압 VDD 와 노드 Y 사이에 커플링된다. 저항기(214)는 노드 Y 와 회로 접지 사이에 커플링된다. 감지 증폭기(240)는 노드 X에 커플링된 자신의 비-반전 입력과 노드 Y에 커플링된 자신의 반전 입력, 및 플립-플롭(250)의 입력 D에 커플링된 자신의 출력을 갖는다. 플립-플롭(250)은 또한 자신의 클록 입력에서 클록을 수신하고 자신의 출력 Q에서 제 1 랜덤 값들(예를 들어, 랜덤 비트들)을 제공한다.
도 2b는 MR 엘리먼트(220)의 저항을 측정하기 위해 브리지 회로를 사용한다. 브리지 회로는 감지 증폭기(240)가 노드 X에서의 전압을 노드 Y에서의 전압에 비교하도록 허용한다. 따라서, MR 엘리먼트(220)의 임피던스를 감지하기 위해 VREF1 및 VREF2 기준 전압들이 필요하지 않으며, 이는 회로 설계를 간단하게 할 수 있다.
도 2a 및 도 2b는 저항성 분압기를 사용하여 MR 엘리먼트(220)의 가변 저항을 감지하는 두 가지 설계들을 도시한다. MR 엘리먼트(220)의 가변 저항은 또한 다른 방법들로도 감지될 수 있다. 다른 설계에서, 전류 소스가 MR 엘리먼트(220)(예를 들어, 저항기(210)가 생략됨)에 정전류를 인가할 수 있다. 이어서, 노드 X의 전압 VX는 (알려진) 정전류 및 (측정되고 있는) MR 엘리먼트(220)의 저항에 의존할 것이다. 또 다른 설계에서, 다른 저항기가 MR 엘리먼트(220)와 직렬로 연결될 수 있고, 전압이 그 직렬 결합에 인가될 수 있다. 엘리먼트들 중 하나(MR 엘리먼트 또는 저항기)에 걸친 전압이 감지될 수 있다. 또 다른 설계에서, MR 엘리먼트(220)는 "브리지" 회로에 배치될 수 있고, 이는 당업자에게 알려진 브리지 회로들 중 임의의 것일 수 있다. 브리지 회로는 기준 전압(예를 들어, 도 2a의 전압 VREF2)에 대한 필요성을 회피할 수 있다.
또 다른 설계에서, 제 2 MR 엘리먼트가 감지 증폭기(240)의 반전 입력에 커플링될 수 있고, 기준 전압을 생성하는데 사용될 수 있다. 저항기가 제 2 MR 엘리먼트와 공급 전압 사이에 커플링될 수 있거나, 또는 전류 소스가 제 2 MR 엘리먼트에 정전류를 제공할 수 있다. 기준 전압에 대한 양호한 매칭과 보다 양호한 추적을 제공하기 위해 비-반전 입력에 커플링된 MR 엘리먼트(220) 및 감지 증폭기(240)의 반전 입력에 커플링된 제 2 MR 엘리먼트는 상이한 설계들, 상이한 형태들, 상이한 크기들, 상이한 두께들, 및/또는 상이한 다른 특성들을 가질 수 있다.
일반적으로, (ⅰ) MR 엘리먼트에 전류를 통과시키고 그 전압을 감지하거나, (ⅱ) MR 엘리먼트에 전압을 인가하고 그 전류를 감지함으로써 MR 엘리먼트(220)의 저항이 측정될 수 있다. 옵션 (ⅰ)의 경우, 적은 양의 전류가 MR 엘리먼트(220)의 임피던스(및 이에 따른 상태)를 감지하는데 사용될 수 있다. 이 적은 양의 전류는 MR 엘리먼트(220)의 자화를 확률론적으로 뒤집기 위해 필요한 양보다 상당히 낮을 수 있다. MR 엘리먼트(220)의 총 자기 모멘트가 또한 측정될 수 있다.
도 2a 및 도 2b는 단일의 MR 엘리먼트(220)를 갖는 저-에너지 엔트로피 소스의 두 가지 설계를 도시한다. 일반적으로, 저-에너지 엔트로피 소스는 임의의 수의 MR 엘리먼트들을 포함할 수 있고, 이는 임의의 방법으로 커플링될 수 있다. 일 설계에서, 다수의 MR 엘리먼트들은 직렬로 커플링될 수 있다. 다른 설계에서, 다수의 MR 엘리먼트들은 병렬로 커플링될 수 있다. MR 엘리먼트들의 직렬 또는 병렬 결합은 노드 X와 회로 접지 사이에 커플링될 수 있다. 다수의 MR 엘리먼트의 사용은 (ⅰ) 보다 많은 MR 엘리먼트들로부터의 엔트로피의 수집을 개선하고, (ⅱ) 임의의 주어진 MR 엘리먼트에서의 수율(yield)이 100% 보다 낮을 것이므로 중복된 MR 엘리먼트들을 통해 집적 회로(IC) 수율을 개선하며, (ⅲ) MR 엘리먼트들이 일반적으로 크기가 작으므로 비용 및 회로/다이 면적을 최소한으로 증가시킬 수 있다.
엔트로피 소스는 기록 펄스들(예를 들어, 전류 펄스들)을 인가함으로써 변화될 수 있는 저항을 갖는 하나 이상의 MR 엘리먼트들을 포함할 수 있다. 이 경우, MR 엘리먼트(들)의 저항의 변화들은 고-에너지 현상들에 기초하여 검출될 수 있다. 고-에너지 현상들에 기초하여 MR 엘리먼트(들)를 동작시키는 것은 엔트로피 소스에 대한 보다 강인한 동작을 발생시킬 수 있지만 MR 엘리먼트(들)의 보다 빠른 마모를 유발할 수 있다.
도 3은 도 1의 엔트로피 소스(110)의 다른 설계인 고-에너지 엔트로피 소스(110z)의 간략도를 도시한다. 엔트로피 소스(110z) 내에서, 저항기들(310, 312 및 314)은 노드 E에 커플링된 일단과 제어 회로(340)의 세 포트들에 커플링된 타단을 갖는다. MR 엘리먼트(320)는 노드 E에 커플링된 일단과 회로 접지에 커플링된 타단을 갖는다. 감지 증폭기(330, 예를 들어, 비교기)는 노드 E에 커플링된 자신의 비-반전 입력, 기준 전압(VREF)을 수신하는 자신의 반전 입력, 및 제어 회로(340)의 입력에 커플링된 자신의 출력을 갖는다. 제어 회로(340)는 또한 자신의 클록 입력에서 클록을 수신하고 자신의 출력에서 제 1 랜덤 값들을 제공한다. 다른 설계에서, 감지 증폭기(330)는 제1 랜덤 값들을 직접 제공할 수 있다.
제어 회로(340)는 MR 엘리먼트(320)의 상태를 변경하기 위한 기록 펄스들을 생성할 수 있다. MR 엘리먼트(320)는 임의의 주어진 순간에 상태 '0' 또는 '1' 중 어느 하나일 수 있다. 상태 '0'은 목표 값보다 작은 MR 엘리먼트(320)의 저항에 대응할 수 있고, 상태 '1'은 목표 값보다 큰 MR 엘리먼트(320)의 저항에 대응할 수 있다.
일반적으로, 펄스는 전류 펄스 또는 전압 펄스일 수 있고, 양 또는 음 극성 중 어느 하나일 수 있다. 일 설계에서, 제어 회로(340)는 (ⅰ) 제 1 스위치를 통해 저항기(312)에 커플링된 양 펄스 생성기 및 (ⅱ) 제 2 스위치를 통해 저항기(314)에 커플링된 음 펄스 생성기를 포함할 수 있다. 양 전류 펄스는 MR 엘리먼트(320)의 상태를 '0'에서 '1'로 뒤집기 위해 저항기(312)를 통해 MR 엘리먼트(320)에 인가될 수 있다. 음 전류 펄스는 MR 엘리먼트(320)의 상태를 '1'에서 '0'으로 뒤집기 위해 저항기(314)를 통해 MR 엘리먼트(320)에 인가될 수 있다. 양 펄스는 제 2 스위치를 개방하고, 양 펄스 생성기를 인에이블하고, 제 1 스위치를 폐쇄함으로써 저항기(312)를 통해 MR 엘리먼트(320)로 인가될 수 있다. 음 펄스는 제 1 스위치를 개방하고, 음 펄스 생성기를 인에이블하고, 제 2 스위치를 폐쇄함으로써 저항기(314)를 통해 MR 엘리먼트(320)로 인가될 수 있다. 저항기들(312 및 314)은 또한 두 전류 경로들로 대체될 수 있다. 각 펄스 생성기는 적합한 진폭의 전압 또는 전류 펄스들, 예를 들어, 100 마이크로암페어(㎂) 또는 몇몇의 다른 값의 전류 펄스들을 생성할 수 있다. 펄스들은 MR 엘리먼트(320)의 자기 물질의 두 레이어들의 상대적 자화가 어떤 확률로 변화하게 할 수 있다. 상대적 자화에서의 변화는 MR 엘리먼트(320)의 저항이 변하게 할 수 있다.
다른 설계에서, 제어 회로(340)는 단일의 펄스 생성기를 포함할 수 있다. 펄스 생성기가 (ⅰ) 저항기(312)를 통해 MR 엘리먼트(320)에 대한 양 펄스 또는 (ⅱ) 저항기(314)를 통해 MR 엘리먼트(320)에 대한 음 펄스를 생성할 수 있도록, 제 1 세트의 스위치들이 이 펄스 생성기를 연결할 수 있다. 또 다른 설계에서, 하나 이상의 펄스 생성기들은 저항기들(312 및 314)과 전력 공급 소스들 사이에 커플링된 스위치들을 제어함으로써 형성될 수 있다. 펄스들의 폭은 스위치 폐쇄 지속 시간에 의해 결정될 수 있다.
일 설계에서, 기록 펄스가 MR 엘리먼트(320)에 인가될 수 있고, 기록 펄스를 인가한 후에 MR 엘리먼트(320)의 저항이 감지될 수 있다. 다른 설계에서, MR 엘리먼트(320)의 저항이 감지될 수 있고, 이어서, 그의 상태를 변경하기 위한 기록 펄스가 MR 엘리먼트(320)에 인가될 수 있다. 또 다른 설계에서, 기록 펄스가 MR 엘리먼트(320)에 인가되는 동안에 MR 엘리먼트(320)의 임피던스가 감지될 수 있다.
도 4는 도 3의 제어 회로(340)에 의해 수행되는 프로세스(400)의 설계의 흐름도를 도시한다. 처음에, 감지/판독 전류가 도 3의 저항기(310)를 통해 턴온될 수 있고, MR 엘리먼트(320)의 상태가 감지 증폭기(330)에 의해 감지될 수 있다(블록(412)). MR 엘리먼트(320)의 감지된 상태가 '0' 또는 '1'인지에 관한 결정이 이루어진다(블록(414)). 블록(414)에서 상태 '0'이 감지되면, 로직 '0'이 엔트로피 누산기에 제공될 수 있다(블록(416)). 저항기(310)를 통한 감지 전류가 턴오프될 수 있고, MR 엘리먼트(320)의 자화를 상태 '1'로 뒤집는 경향이 있는 기록 펄스(예를 들어, 양 전류 펄스)가 인가될 수 있다(블록(418)). 그렇지 않고, 블록(414)에서 상태 '1'이 감지되면, 로직 '1'이 엔트로피 누산기에 제공될 수 있다(블록(420)). 저항기(310)를 통한 감지 전류가 턴오프될 수 있고, MR 엘리먼트(320)의 자화를 상태 '0'로 뒤집는 경향이 있는 기록 펄스(예를 들어, 음 전류 펄스)가 인가될 수 있다(블록(422)). 프로세스는 블록(418 또는 422) 다음에 블록(412)으로 돌아간다.
도 3의 제어 회로(340)는 다양한 방법들로 구현될 수 있다. 일 설계에서, 전술한 바와 같이, 제어 회로(340)는 저항기(312)에 커플링된 양 펄스 생성기, 저항기(314)에 커플링된 음 펄스 생성기, 및 스위치들을 포함할 수 있다. 스위치들은 임의의 주어진 순간에 양 펄스 생성기 또는 음 펄스 생성기를 인에이블하고 이들을 MR 엘리먼트(320)에 연결시킬 수 있다. 다른 설계에서, 제어 회로(340)는 단일의 펄스 생성기를 포함할 수 있고, 그의 출력은 스위치들을 통해 양 또는 음의 방식으로 MR 엘리먼트(320)의 두 단자들을 가로질러 배치될 수 있다. 이 설계에서, MR 엘리먼트(320)의 두 단자들은 펄스 생성기를 가로질러 배치될 수 있고, 저항기들(312 및 314)이 펄스 생성기를 포함하는 블록에 흡수될 수 있다. 또 다른 설계에서, 회로가 MR 엘리먼트(320)의 일 단자를 전력 공급원에 (예를 들어, 저항기(310)를 통해) 연결시킬 수 있고, MR 엘리먼트(320)의 타 단자를 회로 접지에 연결시킬 수 있다. 전력 공급원 또는 회로 접지로의 연결 간의 스위칭은 MR 엘리먼트(320)를 '0' 또는 '1' 상태로 뒤집는 것이 바람직한지에 기초하여 선택될 수 있다.
일 설계에서, MR 엘리먼트(320)에 대한 제어 회로(340)에 의해 생성된 각각의 기록 펄스들이 MR 엘리먼트(320)의 상태를 스위칭하는데 대략 50%의 확률을 갖도록 엔트로피 소스(110z)가 동작할 수 있다. 제어 회로(340)는 상태를 스위칭하는데 대략 50%의 확률을 획득하기 위해 기록 펄스들의 진폭 및/또는 지속 시간 및/또는 기록 펄스들 간의 시간 양을 제어하기 위한 회로를 포함할 수 있다. 예를 들어, 제어 회로(340) 내의 (상태 머신과 같은) 피드백 회로는 충분히 긴 시간에 걸쳐 감지 증폭기(330)에 의해 제공된 '0' 및 '1' 값들의 수를 평균화할 수 있고, MR 엘리먼트(320)의 50% 확률 스위칭 포인트로 향하도록 기록 펄스들을 조정(예를 들어, 전압, 전류 및/또는 기록 펄스들의 지속 시간을 조정)하여 감지 증폭기(330)로부터 보다 치우치지 않은 출력을 획득할 수 있다.
다른 설계에서, 제어 회로(340)는 MR 엘리먼트(320)가 상태를 전환할 때까지 MR 엘리먼트(320)에 일련의 기록 펄스들을 인가할 수 있다. MR 엘리먼트(320)의 상태를 전환하기 위해 인가되는 기록 펄스들의 수가 제 1 랜덤 값들로서 제공될 수 있다. MR 엘리먼트(320)는 일련의 기록 펄스들이 인가되기 전에 초기 상태로 리셋될 수 있다.
저항성 분압기는 도 2a와 도 2b의 저항기(210) 및 MR 엘리먼트(220)와 유사한 방식으로 고정 저항을 갖는 저항기(310)와 가변 저항을 갖는 MR 엘리먼트(320)에 의해 형성된다. MR 엘리먼트(320)의 저항은 감지 증폭기(330)에 의해 노드 E에서의 전압(VE)을 전압 VREF에 대해 비교함으로써 감지될 수 있다. MR 엘리먼트(320)의 저항은 다른 방식들로 또한 감지될 수 있다. 어떤 경우든, 감지 증폭기(330)는 MR 엘리먼트(320)의 감지된 저항에 기초하여 2진 출력 값들을 제공할 수 있다. 감지 증폭기(330)로부터의 2진 출력 값들은 제 1 랜덤 값들을 획득하기 위해 제어 회로(34)에 의해 클록에 기초하여 샘플링될 수 있다.
도 3은 기록 펄스들로 MR 엘리먼트(320)의 저항을 변경하고 저항성 분압기로 MR 엘리먼트(320)의 저항을 감지하는 설계를 도시한다. MR 엘리먼트(320)의 저항은 다른 방식들로 또한 변경될 수 있다. 예를 들어, MR 엘리먼트(320)의 저항은 강한 외부 자기장에 의해 변경될 수 있다.
도 3은 단일의 MR 엘리먼트(320)를 갖는 엔트로피 소스의 설계를 도시한다. 일반적으로, 엔트로피 소스는 직렬, 병렬 또는 몇몇의 다른 방식으로 커플링될 수 있는 임의의 수의 MR 엘리먼트들을 포함할 수 있다. 다수의 MR 엘리먼트들의 사용은 IC 수율(yield) 뿐만 아니라 엔트로피 수집을 개선할 수 있다.
도 5는 도 1의 엔트로피 소스(110)의 또 다른 설계인 엔트로피 소스(110w)의 간략도를 도시한다. 엔트로피 소스(110w)는 MR 셀들(520)의 M 행들과 N 열들을 갖는 M×N 어레이(510)를 포함하고, 여기서 일반적으로 M>1 및/또는 N>1이다. 각 MR 셀(520)은 후술하는 바와 같이, 다양한 설계들에 기초하여 구현될 수 있다. 각 열은 M개의 MR 셀들(520aj 내지 520mj), 스위치들(522j 내지 528j), 및 프로그래밍("Prog.") 소스들(532j 및 534j)을 포함하고, 여기서 j는 열 인덱스이고 j∈{a, ..., n}이다. 각 열 j 내의 M개의 MR 셀들(520aj 내지 520mj)은 그 열에 대한 비트 라인(BL, 542j) 및 선택 라인(SL, 544j)에 연결된다. 각 열 j 내의 M개의 MR 셀들(520aj 내지 520mj)은 또한 M개의 워드 라인들(WL, 546a 내지 546m)에 각각 연결된다. 각 열 j에 대해, 스위치(522j)가 프로그래밍 소스(532j)와 비트 라인(542j)의 제 1 단 사이에 커플링되고, 스위치(524j)가 프로그래밍 소스(534j)와 선택 라인(544j)의 제 1 단 사이에 커플링된다. 각 열 j에 대해, 스위치(526j)가 비트 라인(542j)의 제 2 단과 회로 접지 사이에 커플링되고, 스위치(528j)가 선택 라인(544j)과 회로 접지 사이에 커플링된다. 각 열 j에 대해, 비트 라인(542j)의 제 2 단과 선택 라인(544j)의 제 2 단이 감지 회로(550)에 제공된다. 감지 회로(550)는 연관된 워드 라인 및 비트 라인에 의해 선택된 각 MR 셀의 저항을 감지할 수 있다. 감지 회로(550)는 선택된 MR 셀들의 감지된 저항에 기초하여 제 1 랜덤 값들을 제공한다.
각 열 j에 대해, 프로그래밍 소스(532j)가 열 j 내의 MR 셀들(520aj 내지 520mj)의 상태를 '0'에서 '1'로 변경하는데 사용될 수 있다. 프로그래밍 소스(534j)가 MR 셀들(520aj 내지 520mj)의 상태를 '1'에서 '0'로 변경하는데 사용될 수 있다. 따라서, 프로그래밍 소스들(532j 및 534j)은 MR 셀들(520aj 내지 520mj)을 기록하는데 사용될 수 있다. 일 설계에서, 동일한 프로그래밍 소스들(532j 및 534j)이 (ⅰ) MR 엘리먼트들(520aj 내지 520mj)의 상태를 변경하는데 사용되는 기록 회로 및 (ⅱ) MR 엘리먼트들(520aj 내지 520mj)의 상태를 감지하는데 사용되는 판독 회로 모두에 사용될 수 있다.
일 설계에서, 프로그래밍 소스들(532 및 534)은, 예를 들어, 도 6b에 도시된 바와 같이 직렬로 커플링된 MR 엘리먼트들을 포함하는 MR 셀들(520)에 대한 전류 소스들일 수 있다. 다른 설계에서, 프로그래밍 소스들(532 및 534)은, 예를 들어, 도 6c에 도시된 바와 같이, 병렬로 커플링된 MR 엘리먼트들을 포함하는 MR 셀들(520)에 대한 전압 소스들일 수 있다.
일 설계에서, 프로그래밍 소스들(532 및 534)은 고정된 진폭/크기 및 폭의 전류 또는 전압 펄스들을 제공하는 고정전류 또는 전압 소스들일 수 있다. 다른 설계에서, 프로그래밍 소스들(532 및 534)은 조절 가능한 진폭 및/또는 폭의 전류 또는 전압 펄스들을 제공하는 구성 가능한 전류 또는 전압 소스들일 수 있다. MR 셀은 임의의 주어진 순간에 상태 P 또는 상태 AP 중 어느 하나에 있을 수 있다. 상태 P는 MR 엘리먼트의 로직 "0"에 대응할 수 있고, 상태 AP는 MR 엘리먼트의 로직 "1"에 대응할 수 있다. 일 설계에서, 프로그래밍 소스들(532 및 534)은 두 방향들로 - 상태 P에서 상태 AP로의 제 1 방향 및 상태 AP에서 상태 P로의 제 2 방향 - MR 셀들의 원하는 프로그래밍을 제공하도록 독립적으로 구성될 수 있다.
주어진 MR 셀의 상태를 스위칭하는 확률은 MR 셀에 인가되는 프로그래밍 펄스(예를 들어, 전류 펄스 또는 전압 펄스)의 진폭에 의존할 수 있다. 제 1 방향으로 상태를 스위칭하는 원하는/목표 확률은 프로그래밍 소스들(532)로부터의 프로그래밍 펄스들의 진폭을 조정함으로써 획득될 수 있다. 제 2 방향으로 상태를 스위칭하는 원하는/목표 확률은 프로그래밍 소스들(534)로부터의 프로그래밍 펄스들의 진폭을 조정함으로써 획득될 수 있다. 예를 들어, 프로그래밍 소스(532)로부터의 펄스는 제 1 MR 셀로 인가되어 이 MR 셀이 대략 50%의 확률로 AP 상태로 스위칭하게 할 수 있다. 프로그래밍 소스(534)로부터의 펄스는 제 2 MR 셀로 인가되어 이 MR 셀이 대략 50%의 확률로 P 상태로 스위칭하게 할 수 있다. 일반적으로, 제 1 또는 제 2 방향으로 상태를 스위칭하는 원하는/목표 확률은 프로그래밍 펄스들의 진폭 및/또는 프로그래밍 펄스들의 지속 시간을 조정함으로써 획득될 수 있다.
프로그래밍 소스(532 또는 534)는 (ⅰ) (예를 들어, 20% 내지 80%의 확률로) MR 셀의 상태를 확률론적으로 스위칭하거나 (ⅱ) (예를 들어, 90%를 넘는 높은 확률로) MR 셀의 상태를 결정론적으로 스위칭할 수 있는 적합한 진폭의 프로그래밍 펄스들을 제공하도록 구성될 수 있다. 예를 들어, 프로그래밍 소스(532 및 534)는 (ⅰ) 20%의 확률론적 스위칭을 위한 제 1 진폭(예를 들어, 80㎂)의 프로그래밍 펄스들 또는 (ⅱ) 99%의 결정론적 스위칭을 위한 제 2 진폭(예를 들어, 150㎂)의 프로그래밍 펄스들을 제공할 수 있다. 프로그래밍 소스들(532 및 534)은 상태 P에서 상태 AP로 및 또한 상태 AP에서 상태 P로의 양 방향들에서 MR 셀들의 원하는/최적의 확률론적 프로그래밍을 허용할 수 있다.
MR 셀은, 예를 들어, 하나의 프로그래밍 소스(532 또는 534)로부터의 단일의 프로그래밍 펄스로, 단일의 동작에서 제 1 또는 제 2 방향 중 어느 하나로 확률론적으로 프로그래밍될 수 있다. MR 셀은 또한 MR 셀로부터의 엔트로피의 품질 또는 양을 개선하기 위해 다수의 동작들에서 확률론적으로 프로그래밍될 수 있다. 예를 들어, MR 셀은 제 1 동작에서 제 1 스위칭 확률로, 이어서 제 2 동작에서 제 2 스위칭 확률로 확률론적으로 프로그래밍될 수 있다. 제 1 및 제 2 스위칭 확률들은 선호되는 50%의 스위칭 확률에 근접할 수 있거나 근접하지 않을 수 있다.
일 설계에서, MR 셀은 다음과 같이 프로그래밍될 수 있다. 프로그래밍 카운트는 0으로 초기화될 수 있다. MR 셀이 자신 현재 상태를 결정하기 위해 판독될 수 있다. 이어서 MR 셀은 특정 확률로 반대 상태로 스위칭하도록 프로그래밍될 수 있고, 특정 확률은 선호되는 50%의 스위칭 확률에 근접할 수 있거나, 근접하지 않을 수 있다. 이어서, 프로그래밍 카운트가 증분될 수 있다. 프로그래밍 카운트가 총 카운트(예를 들어, 16)보다 작으면, 전술한 단계들을 반복함으로써 MR 셀이 한번 더 프로그래밍될 수 있다. 일반적으로, 스위칭 확률이 선호되는 50%의 스위칭 확률로부터 멀리 벗어날 때조차, 점진적으로 더 큰 총 카운트와 점진적으로 더 많은 프로그래밍 동작들에 대해 MR 셀로부터의 엔트로피의 품질이 개선된다.
일 설계에서, 엔트로피 소스(110w)로부터의 제 1 랜덤 값들은 제 2 랜덤 값들로서 직접 사용될 수 있다. 다른 설계에서, 엔트로피 소스(110w)로부터의 제 1 랜덤 값들은 보다 양호한 무작위성 특성들을 갖는 제 2 랜덤 값들을 생성하기 위해 후-프로세싱 모듈(120)에 의해 더 프로세싱될 수 있다. 이 설계에서, 엔트로피 생성을 위해 엔트로피 소스(110w)가 사용될 수 있고, 총 카운트를 조정함으로써 원하는 품질과 양의 엔트로피가 획득될 수 있다.
엔트로피 소스(110w)는 상태들 간의 광범위한 스위칭 확률들(예를 들어, 1%에서 99%까지)에 대해 원하는 품질과 양의 엔트로피를 생성할 수 있다. 예를 들어, 스위칭 확률들이 선호되는 50%의 스위칭 확률에 근접하지 않을 때조차, 그리고 스위칭 확률들이 0 또는 100%가 아닌 한 스위칭 확률이 알려지지 않을 때조차, 엔트로피 소스(110w)는 대략 50%의 "0"일 확률과 대략 50%의 "1"일 확률을 갖는 각 랜덤 비트를 생성할 수 있다. 총 카운트는 원하는 품질과 양의 엔트로피를 제공하도록 선택될 수 있다. 엔트로피 소스(110w)는 대략 50%의 스위칭 확률을 획득하기 위해 프로그래밍 소스들(532 및 534)로부터의 프로그래밍 펄스들의 진폭 및/또는 폭을 조정할 필요 없이 원하는 품질과 양의 엔트로피를 생성할 수 있다. IC 프로세스, 전압, 및 온도(PVT)의 변동들에 걸쳐 50%의 스위칭 확률을 획득하는 것이 어렵거나 비현실적일 수 있기 때문에, 광범위한 스위칭 확률들로 "0" 또는 "1"일 대략 동일한 확률을 갖는 랜덤 비트들을 생성하는 능력은 매우 바람직할 수 있다.
도 5의 스위치들(522 내지 528)은 N-채널 금속 산화물 반도체(NMOS) 트랜지스터들, P-채널 금속 산화물 반도체(PMOS) 트랜지스터들, 및/또는 다른 타입들의 트랜지스터들로 구현될 수 있다. 각 열 j에 대해, 스위치들(524j 및 526j)은 열 j에 대한 제 1 제어 신호(Uj)에 의해 제어되고, 스위치들(522j 및 528j)은 열 j에 대한 제 2 제어 신호(Vj)에 의해 제어된다.
도 6a는 도 5의 MR 셀들(520) 각각에 사용될 수 있는 MR 셀(520a)의 설계를 도시한다. 이 설계에서, MR 셀(520a)은 단일의 MR 엘리먼트(620, 예를 들어, STT-MTJ 디바이스) 및 NMOS 트랜지스터(622)를 포함한다. NMOS 트랜지스터(622)는 선택 라인(SL)에 커플링된 자신의 드레인, 워드 라인(WL)에 커플링된 자신의 게이트, 및 MR 엘리먼트(620)의 일 단자에 커플링된 자신의 소스를 갖는다. MR 엘리먼트(620)의 다른 단자는 비트 라인(BL)에 커플링된다. NMOS 트랜지스터(622)는 (ⅰ) 소스 라인과 비트 라인 사이에 MR 엘리먼트(620)를 연결하기 위해 턴온되거나 (ⅱ) 소스라인과 비트 라인으로부터 MR 엘리먼트(620)를 연결 해제하기 위해 턴오프될 수 있다.
도 6b는 또한 도 5의 MR 셀들(520)의 각각에 사용될 수 있는 MR 셀(520b)의 설계를 도시한다. 이 설계에서, MR 셀(520b)은 직렬로 커플링된 다수의(K) MR 엘리먼트들(620a 내지 620k) 및 NMOS 트랜지스터(622)를 포함한다. NMOS 트랜지스터(622)는 선택 라인(SL)에 커플링된 자신의 드레인, 워드 라인(WL)에 커플링된 자신의 게이트, 및 최상위 MR 엘리먼트(620a)의 자유 레이어에 대한 단자에 커플링된 자신의 소스를 갖는다. MR 엘리먼트들(620)은 STT-MTJ 디바이스들일 수 있으며, 이들 STT-MTJ 디바이스들은 하나의 STT-MTJ 디바이스(예를 들어, STT-MTJ 디바이스(620a))의 고정 레이어가 다음 STT-MTJ 디바이스(예를 들어, STT-MTJ 디바이스(620b))의 자유 레이어에 커플링되도록 커플링될 수 있다. 최하위 MR 엘리먼트(620k)의 고정 레이어에 대한 단자가 비트 라인(BL)에 커플링된다. NMOS 트랜지스터(622)는 (ⅰ) 소스 라인과 비트 라인 사이에 MR 엘리먼트들(620a 내지 620k)을 연결시키기 위해 턴온되거나 (ⅱ) 소스 라인과 비트 라인으로부터 MR 엘리먼트들(620a 내지 620k)을 연결 해제하기 위해 턴오프될 수 있다.
도 6c는 또한 도 5의 MR 셀들(520)의 각각에 사용될 수 있는 MR 셀(520c)의 설계를 도시한다. 이 설계에서, MR 셀(520c)은 병렬로 커플링된 다수의(K) MR 엘리먼트들(620a 내지 620k) 및 NMOS 트랜지스터(622)를 포함한다. NMOS 트랜지스터(622)는 선택 라인(SL)에 커플링된 자신의 드레인, 워드 라인(WL)에 커플링된 자신의 게이트, 및 K 개의 MR 엘리먼트들(620a 내지 620k)의 자유 레이어에 대한 단자들에 커플링된 자신의 소스를 갖는다. MR 엘리먼트들(620)은 STT-MTJ 디바이스들일 수 있으며, 이들 STT-MTJ 디바이스들은 모든 STT-MTJ 디바이스들의 자유 레이어들이 함께 커플링되고 모든 STT-MTJ 디바이스들의 고정 레이어들이 또한 함께 커플링되도록 커플링될 수 있다. K 개의 MR 엘리먼트들(620a 내지 620k)의 고정 레이어에 대한 단자들이 비트 라인(BL)에 커플링된다. NMOS 트랜지스터(622)는 (ⅰ) 소스 라인과 비트 라인 사이에 MR 엘리먼트들(620a 내지 620k)을 연결시키기 위해 턴온되거나 (ⅱ) 소스 라인과 비트 라인으로부터 MR 엘리먼트들(620a 내지 620k)을 연결 해제하기 위해 턴오프될 수 있다.
다시 도 5를 참조하면, MR 셀들(520)이 도 6b의 직렬로 커플링된 MR 셀들(520b)로 구현되는 경우, 프로그래밍 소스들(532 및 534)은 전류 소스들일 수 있다. MR 셀들(520)이 도 6c의 병렬로 커플링된 MR 셀들(520c)로 구현되는 경우, 프로그래밍 소스들(532 및 534)은 전압 소스들일 수 있다.
도 5의 엔트로피 소스(110w)는 다음과 같이 동작할 수 있다. (ⅰ) MR 셀(520ij)에 대한 NMOS 트랜지스터(622)를 턴온하기 위해 행 i에 대한 워드 라인(WLi)을 활성화하고, (ⅱ) 열 j에 대한 스위치들(522j 내지 528j)을 개방하고, (ⅲ) BLj 와 SLj 라인들 사이의 저항을 감지함으로써 행 i와 열 j 내의 주어진 MR 셀(520ij)의 상태가 감지될 수 있다. (ⅰ) 행 i에 대한 워드 라인(WLi)을 활성화하고, (ⅱ) 열 j에 대한 프로그래밍 소스(532j)를 MR 셀(520ij)에 인가하고, (ⅲ) 열 j에 대한 스위치들(522i 및 528i)을 폐쇄하고, (ⅳ) 열 j에 대한 스위치들(524j 및 526j)을 개방함으로써, MR 셀(520ij)의 상태가 '0'에서 '1'로 변경될 수 있다. (ⅰ) 행 i에 대한 워드 라인(WLi)을 활성화하고, (ⅱ) 열 j에 대한 프로그래밍 소스(534j)를 MR 셀(520ij)에 인가하고, (ⅲ) 열 j에 대한 스위치들(524i 및 526i)을 폐쇄하고, (ⅳ) 열 j에 대한 스위치들(522j 및 528j)을 개방함으로써, MR 셀(520ij)의 상태가 '1'에서 '0'로 변경될 수 있다. 주어진 열 내의 다수의 MR 엘리먼트들은 이들 MR 엘리먼트들에 대한 워드 라인들을 활성화함으로써 동시에 감지될 수 있다. 다른 MR 셀들(520)은 이들 MR 셀들에 대한 제어 라인들을 적절히 활성화함으로써 다른 클록 사이클들에서 감지될 수 있다.
일 설계에서, 어레이(510) 내의 MR 엘리먼트들(520)의 저항 및 상태를 감지하는데 기준 어레이가 사용될 수 있다. 일 설계에서, 기준 어레이는 MR 어레이(510)와 유사할(예를 들어, 동일할) 수 있다. 다른 설계에서, 기준 어레이는 MR 어레이(510)와 상이할 수 있다. 예를 들어, 어레이(510) 내의 MR 엘리먼트들은, 예를 들어, 상이한 설계들, 상이한 형태들, 크기들, 두께 등으로 인해, 기준 어레이 내의 MR 엘리먼트들과 상이할 수 있다. 기준 어레이는 또한 MR 엘리먼트들 대신에 폴리 저항기들로 구현될 수 있다.
엔트로피 소스는 전술한 이점들을 얻기 위해 (예를 들어, 도 5에 도시된 바와 같이) 다수의 MR 엘리먼트들 또는 셀들을 포함할 수 있다. 그러한 엔트로피 소스는 엔트로피 생성의 성능을 개선하기 위해 다양한 방식들로 동작될 수 있다.
일 설계에서, 엔트로피 생성 레이트는 다수의 MR 엘리먼트들(예를 들어, 수백 또는 수천 개의 MR 엘리먼트들)의 출력들을 인터리빙하거나 멀티플렉싱함으로써 증가될 수 있다. 예를 들어, 단일의 MR 엘리먼트는 10㎒의 레이트로 감지될 수 있고, 10㎒의 엔트로피 생성 레이트를 지원할 수 있다. 1000개의 MR 엘리먼트들을 연속하여 감지하고 이들 MR 엘리먼트들의 출력들을 인터리빙함으로써 10㎓의 훨씬 높은 엔트로피 생성 레이트가 달성될 수 있다.
다른 설계에서, 전력 소모 및 스위칭 전류는 다수의 MR 엘리먼트들의 출력들을 멀티플렉싱함으로써 감소될 수 있다. 예를 들어, 하나의 MR 엘리먼트는 10㎒의 엔트로피 생성 레이트를 획득하기 위해 100㎱ 이하의 스위칭 펄스들로 10㎒의 레이트에서 감지될 수 있다. 동일한 10㎒의 엔트로피 생성 레이트는 1㎲ 이하의 스위칭 펄스들로 10개의 MR 엘리먼트들을 순차적으로 감지하고 이들 MR 엘리먼트들의 출력들을 인터리빙함으로써 달성될 수 있다. 더 긴 스위칭 펄스들은 전력 소모를 감소시킬 수 있다.
다른 양상에서, RN 생성기는, 예를 들어 도 1에 도시된 바와 같이, 엔트로피 소스 및 후-프로세싱 모듈을 포함할 수 있다. 엔트로피 소스는 하나 이상의 MR 엘리먼트들에 기초하여 제 1 랜덤 값들을 생성할 수 있다. 후-프로세싱 모듈은 엔트로피 소스로부터 제 1 랜덤 값들을 수신할 수 있고, 더 양호한 무작위성 특성들을 갖는 제 2 랜덤 값들을 생성할 수 있다. 후-프로세싱 모듈은 다양한 방식들로 구현될 수 있으며, 후-프로세싱 모듈의 몇몇 예시적인 설계들이 이하에 기술된다.
도 7a는 도 1의 RN 생성기(100)의 일 설계인 RN 생성기(100a)의 블록 다이어그램을 도시한다. 이 설계에서, RN 생성기(100a)는 엔트로피 소스(110)와 암호 해시 모듈(120a)을 포함하고, 이는 도 1의 후-프로세싱 모듈(120)의 일 설계이다. 해시 모듈(120a)은 엔트로피 소스(110)로부터 제 1 랜덤 값들(예를 들어, 랜덤 비트들)을 수신하고, 제 2 랜덤 값들을 생성한다. 일 설계에서, 해시 모듈(120a)은 엔트로피 소스(110)로부터 L 개의 랜덤 비트들의 각 블록을 종합하여 L-비트 랜덤 값을 형성하며, 여기서 L은 임의의 적합한 정수일 수 있다. 이어서, 해시 모듈(120a)은 암호/보안 해시 알고리즘에 기초하여 다수의 L-비트 랜덤 값들을 해싱하고 N-비트 해시 값을 제공하며, 여기서 N은 임의의 적합한 정수이다. N-비트 해시 값은 또한 일반적으로 해시 다이제스트(digest)로 지칭되고 제 2 랜덤 값으로 제공된다. 해시 모듈(120a)은 SHA-1(Secure Hash Algorithm), SHA-2(SHA-224, SHA-256, SHA-384 및 SHA-512를 포함함), MD-4(Message Digest), MD-5, 또는 당분야에 공지된 몇몇의 다른 보안 해시 알고리즘을 구현할 수 있다. 보안 해시 알고리즘은, 입력 메시지와 그 다이제스트 사이의 함수가 비가역적이고 두 입력 메시지들이 동일한 다이제스트로 매핑될 확률이 매우 작게 하는 암호 특성을 갖는다. 보안 해시 알고리즘은 임의의 길이의 입력 메시지를 수신할 수 있고, 고정된 길이의 해시 다이제스트를 제공할 수 있다.
도 7b는 도 1의 RN 생성기(100)의 다른 설계인 RN 생성기(100b)의 블록 다이어그램을 도시한다. 이 설계에서, RN 생성기(100b)는 K 개의 엔트로피 소스들(110a 내지 110k) 및 암호 해시 모듈(120b)을 포함하고, 이는 도 1의 후-프로세싱 모듈(120)의 다른 설계이다. 일반적으로, K는 1 보다 큰 임의의 정수일 수 있다. 다수의 엔트로피 소스들의 사용은 무작위성을 개선할 수 있다. K 개의 엔트로피 소스들(110a 내지 110k) 각각은 도 2a의 엔트로피 소스(110x), 도 2b의 엔트로피 소스(110y), 도 3의 엔트로피 소스(110z), 도 5의 엔트로피 소스(110w), 또는 몇몇의 다른 엔트로피 소스로 구현될 수 있다. 도 7b의 각 엔트로피 소스(110)는 하나 이상의 MR 엘리먼트들에 기초하여 제 1 랜덤 값들(예를 들어, 랜덤 비트들)의 시퀀스를 생성할 수 있다.
해시 모듈(120b) 내에서, K 개의 시프트 레지스터들(720a 내지 720k)이 K 개의 엔트로피 소스들(110a 내지 110k)로부터 각각 제 1 랜덤 값들을 수신할 수 있다. 각 시프트 레지스터(720)는 연관된 엔트로피 소스(110)로부터 Q 개의 랜덤 비트들의 각 블록을 합하여 Q-비트 랜덤 값을 형성할 수 있고, 여기서 Q는 1 보다 큰 임의의 정수일 수 있다. 해시 모듈(120b)은 시프트 레지스터들(720a 내지 720k)로부터 Q-비트 랜덤 값들을 수신할 수 있고, 이들 Q-비트 랜덤 값들을 결합하여 L-비트 랜덤 값들을 형성할 수 있다. 일 설계에서, 해시 모듈(120b)은 시프트 레지스터들(720a 내지 720k)로부터의 K 개의 Q-비트 랜덤 값들의 각 세트를 종합하여, L-비트 랜덤 값을 획득할 수 있으며, 여기서, K*Q=L 이다. 다른 설계에서, 해시 모듈(120b)은 배타적-OR(XOR) 함수로 시프트 레지스터들(720a 내지 720k)로부터의 K 개의 Q-비트 랜덤 값들의 각 세트를 결합하여 L-비트 랜덤 값을 획득할 수 있으며, 여기서, Q=L 이다. 해시 모듈(120b)은 또한 다른 방식들로 시프트 레지스터들(720a 내지 720k)로부터의 K 개의 Q-비트 랜덤 값들의 각 세트를 결합할 수 있다. 어떤 경우든, 해시 함수(730)는 암호/보안 해시 알고리즘에 기초하여 다수의 L-비트 랜덤 값들을 해싱하고, N-비트 해시 값을 제공할 수 있으며, 여기서 N은 임의의 적합한 정수일 수 있다.
일 설계에서, 해시 함수(730)는 L 비트의 넓은 입력 폭을 가질 수 있으며, 여기서, L은 해시 함수의 블록 크기일 수 있고, 이는 SHA-256의 경우 256 비트들일 수 있다. 다른 설계에서, 해시 함수(730)는 정수의 바이트, 예를 들어, 1, 2, 4, 또는 8 바이트들의 입력 폭을 가질 수 있다. 시프트 레지스터들(720)은, 도 7B에 도시된 바와 같이, 엔트로피 소스들(110a 내지 110k)로부터의 제 1 랜덤 값들(예를 들어, 랜덤 비트들)을 누적하는데 사용될 수 있다. 또 다른 설계에서, 해시 함수(730)는 엔트로피 소스들(110a 내지 110k)로부터의 제 1 랜덤 값들을 직접 수신할 수 있고, 시프트 레지스터들(720)이 생략될 수 있다.
도 8a는 도 1의 RN 생성기(100)의 또 다른 설계인 RN 생성기(100c)의 블록 다이어그램을 도시한다. 일 설계에서 RN 생성기(100c)는 엔트로피 소스(110) 및 사이클릭 리던던시 체크(CRC) 모듈(120c)을 포함하고, 이는 도 1의 후-프로세싱 모듈(120)의 다른 설계이다. CRC 모듈(120c)은 엔트로피 소스(110)로부터 제 1 랜덤 값들(예를 들어, 랜덤 비트들)을 수신하고 제 2 랜덤 값들을 생성한다. CRC 모듈(120c)은 R 개의 레지스터들로 이루어진 선형 피드백 시프트 레지스터(LFSR)로 구현될 수 있으며, 여기서 R은 임의의 정수일 수 있다. R 개의 레지스터들은 양호한 통계적 특성들을 갖는 출력을 제공할 수 있는 생성기 다항식(generator polynomial)에 기초하여 연결될 수 있다. 일 설계에서, 제 1 랜덤 값들은 CRC 모듈에 제공되는 데이터 패킷과 유사한 방식으로 CRC 모듈(120c)에 제공될 수 있다. CRC 모듈(120c)은, 예를 들어 CRC가 전체 데이터 패킷이 그 CRC 모듈에 제공된 후에 생성되는 것과 유사한 방식으로, 특정 개수의 제 1 랜덤 값들이 CRC 모듈에 제공된 후에 N-비트의 제 2 랜덤 값을 제공할 수 있으며, 여기서, N≤R 이다. 엔트로피 소스(110)로부터의 랜덤 비트들은 또한 결정론적 의사-랜덤 비트 생성기, 또는 에러 검출 코드에 기초하여 비트들을 생성하는 모듈, 또는 몇몇의 다른 비트 생성기를 씨드(seed)하는데 사용될 수 있다.
도 8B는 도 1의 RN 생성기(100)의 또 다른 설계인 RN 생성기(100d)의 블록 다이어그램을 도시한다. 이 설계에서, RN 생성기(100d)는 다수의 (K 개의) 엔트로피 소스들(110a 내지 110k) 및 CRC 모듈(120d)을 포함하고, 이는 도 1의 후-프로세싱 모듈(120)의 또 다른 설계이다. 각 엔트로피 소스(110)는 하나 이상의 MR 엘리먼트들에 기초하여 제 1 랜덤 값들(예를 들어, 랜덤 비트들)의 시퀀스를 생성할 수 있다.
도 8b에 도시된 설계에서, CRC 모듈(120d)은 K 개의 XOR 게이트들(820a 내지 820k)과 LFSR(830)을 포함한다. LFSR(830)은 직렬로 커플링된 R 개의 레지스터들을 포함할 수 있다. R 개의 레지스터들의 출력들은 각 클록 사이클에서 K 비트만큼 왼쪽으로 시프팅될 수 있다. XOR 게이트들(820a 내지 820k)은 K 개의 엔트로피 소스들(110a 내지 110k)로부터 제 1 랜덤 값들을 각각 수신할 수 있다. 각 XOR 게이트(820)는 또한 LFSR(830)의 하나 이상의 비트들을 수신할 수 있고, 그 하나 이상의 비트들은 CRC 모듈(120d)에 의해 구현되는 생성기 다항식에 기초하여 결정된다. 각 XOR 게이트(820)는 모든 입력 비트들의 modulo-2 합산을 수행하고 각 클록 사이클에서 1-비트 출력을 제공할 수 있다. K 개의 XOR 게이트들(820a 내지 820k)은 그들의 출력들을 LFSR(830)의 첫 번째 K 개의 레지스터들에 제공할 수 있다. 일 설계에서, CRC 모듈(120d)은 엔트로피 소스들(110a 내지 110k)로부터 제 1 랜덤 값들을 수신할 수 있고, 특정 개수의 제 1 랜덤 값들이 CRC 모듈에 제공된 후에 N-비트의 제 2 랜덤 값을 제공할 수 있으며, 여기서, N≤R 이다.
예시적인 일 설계에서, K는 4와 같을 수 있고, R은 34와 같을 수 있고, N은 32와 같을 수 있다. 4 개의 엔트로피 소스들(110)은 그들의 랜덤 비트들을 CRC 모듈(120d) 내의 4 개의 XOR 게이트들(820)에 제공할 수 있다. CRC 모듈(120d)은 또한 34-비트 LFSR(830)을 포함할 수 있고, 다음 생성기 다항식을 구현할 수 있다:
Figure pct00002
예시적인 설계에서, 제 1 XOR 게이트(820a)는 제 1 엔트로피 소스(110a)로부터의 랜덤 비트들 및 또한 LFSR(830)의 비트들 10 및 33을 수신할 수 있다. 제 2 XOR 게이트(820b)는 제 2 엔트로피 소스(110b)로부터의 랜덤 비트들 및 또한 LFSR(830)의 비트들 9 및 32를 수신할 수 있다. 제 3 XOR 게이트는 제 3 엔트로피 소스로부터의 랜덤 비트들 및 또한 LFSR(830)의 비트들 8 및 31을 수신할 수 있다. 제 4 XOR 게이트는 제 4 엔트로피 소스로부터의 랜덤 비트들 및 또한 LFSR(830)의 비트들 7 및 30을 수신할 수 있다. 제 1 내지 제 4 XOR 게이트들은 그들의 출력들을 LFSR(830)의 레지스터들 3, 2, 1 및 0 에 각각 제공할 수 있다. LFSR(830)은 각 클록 사이클에서 4 비트만큼 왼쪽으로 시프팅될 수 있다. 32-비트 제 2 랜덤 값은 16 또는 더 많은 클록 사이클마다(예를 들어, 4 개의 엔트로피 소스들로부터의 64 개 또는 더 많은 랜덤 비트들이 LFSR(830)에 제공된 이후에) LFSR(830)의 32 개 레지스터들(예를 들어, 레지스터들 2-33)에 의해 제공될 수 있다.
도 9는 도 1의 RN 생성기(100)의 또 다른 설계인 RN 생성기(100e)의 블록 다이어그램을 도시한다. 이 설계에서, RN 생성기(100e)는 엔트로피 소스(110) 및 후-프로세싱 모듈(120e)을 포함한다. 후-프로세싱 모듈(120e)은 엔트로피 누산기(122) 및 암호 모듈(124)을 포함한다. 엔트로피 누산기(122)는 엔트로피 소스(110)로부터 제 1 랜덤 값들을 수신하고 누산하며, 매개(intermediate) 랜덤 값들을 제공할 수 있다. 엔트로피 누산기(122)는 다항식 생성기, 코드 등에 기초하여 엔트로피 누산을 수행할 수 있다. 암호 모듈(124)은 매개 랜덤 값들을 수신하고 제 2 랜덤 값들을 제공할 수 있다. 암호 모듈(124)은, 공개적으로 이용 가능한 연방 정보 프로세싱 표준(FIPS: Federal Information Processing Standards)의 Special Publication 800-90 또는 FIPS 140에 의해 허용된 다른 것들 및 그들의 부록들에 리스팅된 알고리즘과 같은 임의의 암호 알고리즘을 구현할 수 있다. 암호 모듈(124)은 당업자에게 공지된 몇몇의 다른 암호 알고리즘을 또한 구현할 수 있다.
도 10은 도 1의 RN 생성기(100)의 또 다른 설계인 RN 생성기(100f)의 블록 다이어그램을 도시한다. 이 설계에서, RN 생성기(100f)는 K 개의 엔트로피 소스들(110a 내지 110k) 및 결합기(120f)를 포함하고, 이는 도 1의 후-프로세싱 모듈(120)의 또 다른 설계이다. K 개의 엔트로피 소스들(110a 내지 110k)은 제 1 랜덤 값들(예를 들어, 랜덤 비트들)의 K 개의 시퀀스들을 생성할 수 있다. 결합기(120f)는 K 개의 엔트로피 소스들(110a 내지 110k)로부터 제 1 랜덤 값들의 K 개의 시퀀스들을 수신할 수 있고, 제 2 랜덤 값들을 생성할 수 있다. 도 10에 도시된 일 설계에서, 결합기(120f)는 제 1 랜덤 값들의 K 개의 시퀀스들을 수신하는 K 개의 입력들을 갖는 XOR 게이트(126)로 구현될 수 있다. 도 10에 도시되지 않은 다른 설계에서, 결합기 모듈(120f)은 modulo-M 합산기를 구현할 수 있고, 여기서 M은 임의의 적합한 값일 수 있다.
RN 생성기(100f)는 다양한 방식들로 N-비트의 제 2 랜덤 값들을 생성할 수 있다. 일 설계에서, 각 클록 사이클에서, 그 클록 사이클에 대한 N-비트의 제 2 랜덤 값을 얻기 위해 K 개의 시퀀스들 내의 K 개의 제 1 랜덤 값들이 modulo-2N으로 합산될 수 있다. 예를 들어, N=2 이고 K≥4 이면, 각 클록 사이클에서, 그 클록 사이클에 대한 2-비트의 제 2 랜덤 값을 얻기 위해 K 개의 엔트로피 소스들(110a 내지 110k)로부터의 K 개의 제 1 랜덤 비트들이 modulo-4로 합산될 수 있다. 다른 설계에서, 각 클록 사이클에서, 그 클록 사이클에 대한 1-비트의 결합된 값을 얻기 위해 K 개의 시퀀스들 내의 K 개의 제 1 랜덤 값들이 modulo-2로 합산될 수 있다. N-비트의 제 2 랜덤 값은 N 클록 사이클들에서 결합기(120f)에 의해 제공된 N 개의 결합된 값들로 형성될 수 있다. 결합기(120f)는 또한 다른 회로들로 구현될 수 있다.
도 11은 도 1의 RN 생성기(100)의 또 다른 설계인 RN 생성기(100g)의 블록 다이어그램을 도시한다. 이 설계에서, RN 생성기(100g)는 두 개의 엔트로피 소스들(110a 및 110b)과 스트림 암호 모듈(120g)을 포함하고, 이는 도 1의 후-프로세싱 모듈(120)의 다른 설계이다. 각 엔트로피 소스(110)는 하나 이상의 MR 엘리먼트들에 기초하여 랜덤 비트들의 시퀀스를 생성한다.
스트림 암호 모듈(120g)은 두 LFSR들(1120 및 1130)과 비선형 함수(1140)를 포함하고, 이들은 변형된 K2 스트림 암호 알고리즘을 집합적으로 구현한다. LFSR(1120)은 제 1 생성기 다항식을 구현하고, 직렬로 커플링된 5 개의 Q-비트 레지스터들(1122a 내지 1122e)을 포함하고, 여기서 Q는 1 보다 큰 임의의 정수일 수 있으며, 예를 들어, Q=8, 16, 32 등이다. 곱셈기(1124)는 마지막 레지스터(1122e)로부터 Q-비트 값을 수신하고, 이 Q-비트 값을 계수 α0와 곱셈한다. 합산기(1126)는 곱셈기(1124) 및 레지스터(1122b)로부터 Q-비트 값들을 수신하고, 유한 필드 합산에 기초하여 두 Q-비트 값들을 합산하고, Q-비트 결과를 레지스터(1122a)에 제공한다. 두 Q-비트 값들의 유한 필드 합산은 두 Q-비트 값들의 bit-wise XOR을 수행함으로써 달성될 수 있다. LFSR(1130)은 제 2 생성기 다항식을 구현하고 직렬로 커플링된 11 개의 Q-비트 레지스터들(1132a 내지 1132k)을 포함한다. 곱셈기(1134a)는 레지스터(1132c)로부터 Q-비트 값을 수신하고 이 Q-비트 값과 계수 1 또는 α3 중 어느 하나를 곱셈하며, 이는 엔트로피 소스(110a)로부터의 랜덤 비트에 기초하여 선택된다. 곱셈기(1134b)는 레지스터(1132k)로부터 Q-비트 값을 수신하고, 이 Q-비트 값과 계수 α1 또는 α2 를 곱셈하며, 이는 엔트로피 소스(110b)로부터의 랜덤 비트에 기초하여 선택된다. 합산기(1136a)는 곱셈기(1134b) 및 레지스터(1122j)로부터 Q-비트 값들을 수신하고 합산한다. 합산기(1136b)는 합산기(1136a) 및 레지스터(1132e)로부터 Q-비트 값들을 수신하고 합산한다. 합산기(1136c)는 곱셈기(1134a) 및 합산기(1136b)로부터 Q-비트 값들을 수신하고 합산한다. 각 합산기(1136)는 유한 필드 합산에 기초하여 자신의 두 Q-비트 값들을 합산하고 Q-비트 결과를 제공한다.
비선형 함수(1140)는 LFSR(1130)의 레지스터들(1132a, 1132b, 1132g 및 1132k)로부터 Q-비트 값들을 수신할 뿐만 아니라 LFSR(1120)의 레지스터들(1122a 및 1122e)로부터도 Q-비트 값들을 수신한다. 비선형 함수(1140)는 비선형 함수에 기초하여 수신된 Q-비트 값들을 프로세싱하고 N-비트의 제 2 랜덤 값들을 제공한다. 제 2 랜덤 값들은 암호화, 암호 해독, 및/또는 다른 암호 및 비-암호 함수들을 위한 암호 키로 사용될 수 있다. 비선형 함수 및 K2 스트림 암호 알고리즘은 Kiyomoto 등의 "A Word-Oriented Stream Cipher Using Clock Control"란 명칭의 논문에 상세히 설명되어 있으며, 이는 공개적으로 이용 가능하다.
도 11에 도시된 설계에서, 하나의 엔트로피 소스(110a)는 곱셈기(1134a)에 대한 계수를 동적으로 선택하는데 사용되고, 다른 엔트로피 소스(110b)는 곱셈기(1134b)에 대한 계수를 동적으로 선택하는데 사용된다. 이 설계에서, LFSR(1130)을 위한 피드백 다항식은 엔트로피 소스들(110a 및 110b)로부터의 랜덤 값들에 의존하는 4 개의 가능한 값들을 갖는다. 다른 설계에서, 단일의 엔트로피 소스가 곱셈기(1134a)만을 위한 계수, 곱셈기(1134b)만을 위한 계수, 또는 곱셈기들(1134a 및 1134b) 모두를 위한 계수들을 선택하는데 사용될 수 있다. 예를 들어, 엔트로피 소스로부터의 짝수 인덱스들의 랜덤 비트들은 곱셈기(1134a)를 위한 계수를 선택할 수 있고, 엔트로피 소스로부터의 홀수 인덱스들의 랜덤 비트들은 곱셈기(1134b)를 위한 계수를 선택할 수 있다. 또 다른 설계에서, 다수의 엔트로피 소스들이 결합되어(예를 들어, XOR 연산되어) 곱셈기(1134a)를 위한 계수를 선택하는데 사용될 수 있다. 대안적으로 또는 추가적으로, 다수의 엔트로피 소스들이 결합되어 곱셈기(1134b)를 위한 계수를 선택하는데 사용될 수 있다. 곱셈기(1134a 및/또는 1134b)를 위한 계수를 선택하기 위한 복수의 엔트로피 소스들의 사용은 개별 MR 엘리먼트 고장들에 대한 저항력을 개선할 수 있고, 또한 각 상태 '0' 또는 '1'의 확률을 50%에 보다 근접하게 할 수 있다. 하나 이상의 엔트로피 소스들은 또한 다른 방식들로 LFSR(1130)의 하나 이상의 곱셈기들을 위한 계수들을 동적으로 선택하는데 사용될 수 있다.
하나 이상의 엔트로피 소스들로부터의 랜덤 값들은 또한 다른 방식들로 LFSR(1130)의 동작 및/또는 상태를 바꿀 수 있다. 일 설계에서, 랜덤 값들은 LFSR에서 선택된 비트들과 결합될(예를 들어, XOR 연산될) 수 있다. 다른 설계에서, 랜덤 값들은 LFSR 내의 다른 탭들을 선택할 수 있다. 또 다른 설계에서, 레지스터(예를 들어, 시프트 레지스터)는 Q 개의 엔트로피 소스들로부터 많은 비트들을 수용할 수 있다. 레지스터가 가득 찰 때, LFSR로부터의 비트들의 세트 내의 각 비트는 레지스터의 선택된 비트와 XOR 연산 프로세싱된 자신의 이전 값으로 대체될 수 있다.
도 12는 도 1의 RN 생성기(100)의 또 다른 설계인 RN 생성기(100h)의 블록 다이어그램을 도시한다. 이 설계에서, RN 생성기(100h)는 Q 개의 엔트로피 소스들(110a 내지 110q)과 스트림 암호 모듈(120h)을 포함하고, 이는 도 1의 후-프로세싱 모듈(120)의 다른 설계이며, 여기서 Q는 1 보다 큰 임의의 정수일 수 있다. 엔트로피 소스들(110a 내지 110q)은 랜덤 비트들의 Q 개의 시퀀스들을 생성한다. 도 12에 도시된 설계에서, 직렬-병렬(S/P) 변환기(1210)는 랜덤 비트들의 Q 개의 시퀀스들을 수신하고, Q-비트의 랜덤 값들의 시퀀스를 제공한다. 각 Q-비트 랜덤 값은 랜덤 비트들의 Q 개의 시퀀스들 각각으로부터의 하나의 비트를 포함할 수 있다. S/P 변환기(1210)는 스트레이트 쓰루 와이어들(straight through wires)로 구현될 수 있다. 도 12에 도시되지 않은 다른 설계에서, S/P 변환기(1210)는 단일의 엔트로피 소스(110)로부터 랜덤 비트들의 단일의 시퀀스를 수신하고, Q-비트 랜덤 값들의 시퀀스를 제공한다. 각 Q-비트 랜덤 값은 랜덤 비트들의 단일의 시퀀스 내의 Q 개의 비트들에 기초하여 형성될 수 있다. 일반적으로, S/P 변환기(1210)는 하나 이상의 엔트로피 소스들로부터 랜덤 비트들의 하나 이상의 시퀀스를 수신할 수 있고, Q-비트 랜덤 값들의 시퀀스를 제공할 수 있다.
스트림 암호 모듈(120h)은 수정된 SNOW 3G 스트림 암호 알고리즘을 구현하고 LFSR(1220), 유한 상태 머신(FSM, 1230), 및 합산기들(1240 및 1242)을 포함한다. LFSR(1220)은 직렬로 커플링된 16 개의 Q-비트 레지스터들(1222a 내지 1222p)을 포함하고, 생성기 다항식 α·x15+ x13-1·x4+1=0을 구현한다. 유한 필드 곱셈기(1224a)는 마지막 레지스터(1222p)로부터 Q-비트 값을 수신하고, 이 Q-비트 값과 계수 α0을 곱셈한다. 유한 필드 곱셈기(1224b)는 레지스터(1222e)로부터 Q-비트 값을 수신하고, 이 Q-비트 값과 계수 α-1을 곱셈한다. 합산기(1226a)는 곱셈기(1224a) 및 FSM(1230)으로부터 Q-비트 값들을 수신하여 합산한다. 합산기(1226b)는 합산기(1226a) 및 레지스터(1222n)로부터 Q-비트 값들을 수신하여 합산한다. 합산기(1226c)는 합산기(1226b) 및 곱셈기(1224b)로부터 Q-비트 값들을 수신하여 합산한다. 각 합산기(1226)는 유한 필드 합산에 기초하여 그의 두 Q-비트 값들을 합산하고, Q-비트 결과를 제공한다.
FSM(1230)은 세 Q-비트 레지스터들(1232a 내지 1232c)과 두 치환 박스들(S-박스들, 1234a 및 1234b)을 포함한다. 정수 합산기(1236a)는 modulo-2Q 합산에 기초하여 레지스터들(1222a 및 1232a)로부터 Q-비트 값들을 수신하여 합산한다. 합산기(1238a)는 합산기(1236a) 및 레지스터(1232b)로부터 Q-비트 값들을 수신하여 합산하고, 그 Q-비트 출력을 FSM(1230)의 출력으로서 제공한다. 합산기(1242)는 레지스터(1222k) 및 S/P 변환기(1210)로부터 Q-비트 값들을 수신하여 합산한다. 합산기(1238b)는 합산기(1242) 및 레지스터(1232c)로부터 Q-비트 값들을 수신하여 합산한다. 합산기들(1238 및 1242) 각각은 유한 필드 합산에 기초하여 그의 두 Q-비트 값들을 합산하여 Q-비트 결과를 제공한다. 정수 합산기(1236b)는 modulo-2Q 합산에 기초하여 합산기(1238b) 및 레지스터(1232b)로부터 Q-비트 값들을 수신하여 합산하고, 그 Q-비트 출력을 레지스터(1232a)에 제공한다. 합산기(1240)는 레지스터(1222p) 및 FSM(1230)으로부터의 Q-비트 값들을 합산하고, N-비트의 제 2 랜덤 값들을 제공하며, 여기서 N≤Q이다. S-박스(1234a)는 레지스터(1232a)의 출력을 수신하고 레지스터(1232b)에 입력을 제공한다. S-박스(1234b)는 레지스터(1232b)의 출력을 수신하고 레지스터(1232c)에 입력을 제공한다. 각 S-박스(1234)는 미리 정의된 함수에 기초하여 Q-비트 입력을 Q-비트 출력으로 매핑한다.
일 설계에서, FSM(1230) 및 합산기(1242)는 LFSR(1220)을 초기화하기 위해 다수의 클록 사이클들 동안 동작될 수 있다. 이어서, LFSR, FSM(1230), 및 합산기(1240)가 제 2 랜덤 값들을 생성하도록 동작될 수 있다. RN 생성기(100h)는 또한 다른 방식들로 동작될 수 있다.
일 설계에서, 엔트로피 소스들(110)과 S/P 변환기(1210)는 LFSR(1220) 및 FSM(1230)에 사용되는 동일한 클록에 기초하여 동작할 수 있다. 다른 설계에서, LFSR(1220) 및 FSM(1230)은 제 1 클록에 기초하여 동작할 수 있고, 엔트로피 소스들(110) 및 S/P 변환기(1210)는 제 1 클록보다 빠른 제 2 클록에 기초하여 동작할 수 있다. 이 설계는 각 클록 사이클이 LFSR(1220) 및 FSM(1230)을 한 번 스태핑하는 경우에 특히 적용 가능할 수 있다.
도 11 및 도 12는 엔트로피를 RN 생성기로 연속적으로 투입하는 두 예들을 도시한다. 도 11에서, RN 생성기(100g)는 두 랜덤 비트들을 수용하고, 32 개의 랜덤 비트들을 제공한다. 따라서, RN 생성기(100g)는 NIST 정의에 따라 비-결정론적 랜덤 비트 생성기(NRBG)로서 자격을 얻지 않는다. 도 12에서, RN 생성기(100h)는 출력의 레이트와 대략 동일한 MR 디바이스들로부터 엔트로피를 수용한다. 따라서, RN 생성기(100h)는 NIST 정의에 따라 NRBG로서 자격을 얻을 수 있다.
도 11 및 도 12는 하나 이상의 엔트로피 소스들에 기초하여 두 예시적인 암호 함수들(예를 들어, 스트림 암호 알고리즘들)의 내부 상태를 수정하는 두 설계들을 도시하고, 여기서 각 엔트로피 소스는 하나 이상의 MR 엘리먼트들을 포함할 수 있다. 암호 함수들의 동작은 또한 도 11 및 도 12에 주어진 특정 예들 이외의 다른 방식들로 하나 이상의 엔트로피 소스들에 기초하여 수정될 수 있다. 엔트로피 소스들은 또한 다른 암호 함수들의 내부 상태 및/또는 동작을 수정하는데 사용될 수 있다.
후-프로세싱 모듈(120)의 다양한 예시적 설계들이 전술되었다. 일반적으로, 후-프로세싱 회로(120)는 제 1 랜덤 값들을 (예를 들어, 도 7a, 도 8a, 또는 도 9에 도시된 바와 같이) 단일의 엔트로피 소스로부터 직렬로 또는 (예를 들어, 도 7b, 도 8b, 도 10, 도 11 또는 도 12에 도시된 바와 같이) 다수의 엔트로피 소스들로부터 병렬로 수신할 수 있다. 후-프로세싱 모듈(120)은 제 1 랜덤 값들을 통계적으로 또는 계산적으로 결합할 수 있는 엔트로피 추출기일 수 있다. 통계적 엔트로피 추출기는 모델의 가정들(예를 들어, 특정 이벤트들의 인스턴스들이 독립적이고 동일하게 분포한다는 가정)에 기초하여 동작할 수 있고, 편중되지 않고 상관되지 않으며 진정한 랜덤 소스와 통계적으로 구별되지 않는 랜덤 값들을 생성할 수 있다. 계산적 엔트로피 추출기는 제 1 랜덤 값들을 해시 함수와 같은 함수에 제공할 수 있고, 랜덤 비트들의 블록으로서 출력을 제공할 수 있다. 선택된 해시 함수가 이상적 해시 함수에 가깝게 근접하면, 계산적 엔트로피 추출기는 하나 이상의 MR 엘리먼트들로부터 유도된 제 1 랜덤 값들에 기초하는 진정한 랜덤 소스와 구별 불가한 제 2 랜덤 값들을 생성할 수 있어야 한다.
다른 양상에서, 검출 회로는 하나 이상의 MR 엘리먼트들을 포함하는 엔트로피 소스를 탬퍼링하는 것을 검출하는데 사용될 수 있다. MR 엘리먼트는 자기장에 기초하여 변화하는 가변 저항을 갖는다. 예를 들어, 전술한 바와 같이, STT-MTJ 디바이스의 저항은 자기 물질의 두 레이어들의 상대적 자화에 기초하여 변할 수 있다. MR 엘리먼트는, 예를 들어, MR 엘리먼트에 근접하게 배치된 자석의 탬퍼링을 겪을 수 있다. MR 엘리먼트의 탬퍼링은 후술하는 바와 같이 검출될 수 있다.
도 13은 MR 엘리먼트(1320)의 탬퍼링을 검출하는데 사용될 수 있는 아날로그 탬퍼 검출 회로(1300)의 간략도를 도시한다. 탬퍼 검출 회로(1300)는 엔트로피 소스(1310) 및 검출 모듈(1330)을 포함한다. 엔트로피 소스(1310) 내에서, 저항기(1312)는 제 1 기준 전압(VREF1)에 커플링된 일단과 노드 A에 커플링된 타단을 갖는다. MR 엘리먼트(1320)는 노드 A에 커플링된 일단과 회로 접지에 커플링된 타단을 갖는다.
검출 모듈(1330) 내에서, 감지 증폭기(1332)는 노드 A에 커플링된 자신의 입력과 저항기(1334)의 일단에 커플링된 자신의 출력을 갖는다. 감지 증폭기(1332)는 또한, 간략화를 위해 도 13에 도시되지 않지만, 도 2a 또는 도 2b에 도시된 바와 같이, 기준 전압을 수신할 수 있다. 저항기(1334)의 타단은 노드 B에 커플링된다. 커패시터(1336)는 노드 B와 회로 접지 사이에 커플링된다. 제 1 비교기(1340a)는 노드 B에 커플링된 자신의 비-반전 입력, 제 2 기준 전압(VREF2)을 수신하는 자신의 반전 입력, 및 OR 게이트(1350)의 제 1 입력에 커플링되는 자신의 출력을 갖는다. 제 2 비교기(1340b)는 노드 B에 커플링된 자신의 반전 입력, 제 3 기준 전압(VREF3)을 수신하는 자신의 비-반전 입력, 및 OR 게이트(1350)의 제 2 입력에 커플링된 자신의 출력을 갖는다. OR 게이트(1350)는 에러 신호를 제공한다. VREF2 전압은 VREF3 전압보다 높다. VREF2 및 VREF3 전압들은 정상 동작 하에서 MR 엘리먼트(1320)에 대한 저항 값들의 목표 범위를 정의한다. 탬퍼 검출기(1360)는 OR 게이트(1350)로부터 에러 신호를 수신하고, MR 엘리먼트(1320)가 후술하는 바와 같이 탬퍼링되었는지를 결정하고, 탬퍼 표시를 제공한다.
감지 증폭기(1332)는 노드 A에서의 전압(VA)을 감지하며, 이는 MR 엘리먼트(1320)의 저항에 의존한다. 감지된 전압은 저항기(1334) 및 커패시터(1336)로 이루어진 저역통과 필터에 의해 필터링된다. 노드 B의 필터링된 전압(VB)은 비교기(1340a)에 의해 VREF2 전압에 비교되고, 비교기(1340b)에 의해 VREF3 전압에 또한 비교된다. 에러 신호는 어느 하나의 비교기(1340a 또는 1340b)의 출력이 높을 때 로직 하이(logic high)이다.
MR 엘리먼트(1320)는, 예를 들어, 강한 자기장 또는 온도의 경우에, MR 엘리먼트의 동작을 조작하려는 외부 시도들을 검출하기 위한 센서로서 사용된다. 일 설계에서, MR 엘리먼트(1320)는 엔트로피 소스에 사용되는 MR 엘리먼트와 상이할 수 있다. 다른 설계에서, 엔트로피 소스에 사용되는 MR 엘리먼트는 또한 탬퍼 검출 회로(1300)의 MR 엘리먼트(1320)로서 사용될 수 있다. 어떤 경우든, VB 전압은 감지 증폭기(1332)의 출력의 듀티 사이클에 선형적으로 연관되고, 그 듀티 사이클은 "1"인 출력 비트들 부분에 의존한다. 비교기(1340a)는 듀티 사이클이 VREF2 전압에 의해 결정된 고 임계치를 초과하는지를 검출한다. 비교기(1340b)는 듀티 사이클이 VREF3 전압에 의해 결정된 저 임계치 미만인지를 검출한다. 에러 신호는 듀티 사이클이 고 및 저 임계치들 내에 있지 않을 때 로직 하이이다. 도 13에 도시되지는 않았지만, OR 게이트(1350)의 출력이 플립-플롭에 제공될 수 있고, 이는 에러 신호를 제공한다. 어떤 경우든, 에러 신호는 검출된 듀티 사이클에 기초하여 결정된 0들과 1들의 시퀀스들을 포함할 수 있고, 이는 MR 엘리먼트(1320)의 감지된 저항에 의존한다.
모듈(1360)은 다양한 방식들로 에러 신호에 기초하여 MR 엘리먼트(1320)를 탬퍼링하는 것을 검출할 수 있다. 일 설계에서, 모듈(1360)은 미리 결정된 시간 간격에 걸쳐 에러 신호에서 0들의 연속 및 1들의 연속을 카운트할 수 있다. 모듈(1360)은 1들의 연속들의 카운트 또는 0들의 연속들의 카운트가 너무 작거나 너무 크면 탬퍼링을 선언할 수 있다. 다른 설계에서, 모듈(1360)은 미리 결정된 시간 간격에 걸쳐 미리 결정된 패턴들(예를 들어, '11, '10, '01', 및 '11'의 패턴들)의 발생들의 횟수를 카운트할 수 있다. 모듈(1360)은 임의의 패턴의 카운트가 너무 작거나 너무 크면 탬퍼링을 선언할 수 있다. 또 다른 설계에서, 모듈(1360)은 에러 신호 내의 1들 및 0들의 시퀀스를 압축 알고리즘에 제공할 수 있다. 모듈(1360)은 압축 알고리즘의 출력 레이트가 너무 작으면 탬퍼링을 선언할 수 있다. 모듈(1360)은 또한 다른 방식들로 에러 신호에 기초하여 MR 엘리먼트(1320)를 탬퍼링하는 것을 검출할 수 있다.
다른 설계에서, 감지 증폭기(1332)의 출력은, 예를 들어, 감지 증폭기(1332)의 출력에 연결된 플립-플롭으로 디지털화될 수 있다. 감지 증폭기(1332)의 디지털화된 출력은 아날로그 저역통과 필터로 필터링될 수 있고, 이는 저항기(1334) 및 커패시터(1336)로 형성될 수 있다. 저역통과 필터는 디지털화된 출력의 평균화를 수행할 수 있다. 비교기들(1340a 및 1340b)은 필터링된 신호를 고 및 저 임계치들에 비교할 수 있다. 필터링된 신호가 고 임계치를 초과하거나 저 임계치 미만인 경우, OR 게이트(1350)로부터의 에러 신호가 로직 하이로 설정될 수 있고, 이는 탬퍼링을 나타낸다.
(피드백 회로를 갖거나 갖지 않는) 도 3의 엔트로피 소스(110c)는 또한 탬퍼링을 검출하는데 사용될 수 있다. 예를 들어, 감지 증폭기(330)에 의해 제공된 '0' 값들 대 '1' 값들의 비율이 결정되고 저 임계치 및 고 임계치에 대해 비교될 수 있다. 고 및 저 임계치들은 그 비율에 대해 허용된 값들의 윈도우에 기초하여 정의될 수 있고, 이는 50% 근처에 중심을 두어야 한다. 탬퍼링은 그 비율이 고 임계치를 초과하거나 저 임계치 미만일 때 검출될 수 있다.
일 설계에서, 장치(예를 들어, IC, 무선 디바이스, 전자 모듈 등)는, 예를 들면, 도 2a 또는 도 2b에 도시된 바와 같이, MR 엘리먼트 및 감지 회로를 포함할 수 있다. MR 엘리먼트(예를 들어, MR 엘리먼트(210))는 정전류가 인가될 수 있고, MR 엘리먼트의 자화에 기초하여 결정된 가변 저항을 가질 수 있다. MR 엘리먼트는 STT-MTJ 디바이스 또는 자화에 따른 가변 저항을 갖는 몇몇의 다른 타입의 디바이스를 포함할 수 있다. 감지 회로는 MR 엘리먼트의 저항을 감지하고 MR 엘리먼트의 감지된 저항에 기초하여 랜덤 값들을 제공할 수 있다.
일 설계에서, 감지 회로는 MR 엘리먼트에 커플링된 제 1 입력, 기준 전압을 수신하는 제 2 입력, 및 제 1 랜덤 값들을 생성하는데 사용되는 감지된 값들을 제공하는 출력을 갖는 감지 증폭기(예를 들어, 도 2a의 감지 증폭기(240))를 포함할 수 있다. 감지 회로는 MR 엘리먼트에 직렬로 커플링된 저항기(예를 들어, 저항기(210))를 더 포함할 수 있고, 저항기 및 MR 엘리먼트의 결합은 저항성 분압기를 형성한다. 일 설계에서, 기준 전압(예를 들어, 도 2a의 VREF2 전압)은 기준 전압 생성기에 의해 생성될 수 있다. 다른 설계에서, 기준 전압(예를 들어, 도 2b의 VY 전압)은 저항성 분압기에 기초하여 생성될 수 있고, 이는 MR 엘리먼트를 갖는 브리지 회로를 형성할 수 있고 (예를 들어, 도 2b에 도시된 바와 같은) MR 엘리먼트의 저항을 측정하는데 사용될 수 있다. 또 다른 설계에서, 제 2 MR 엘리먼트는 감지 증폭기의 제 2 입력에 커플링될 수 있고 기준 전압을 생성하는데 사용될 수 있다.
일 설계에서, 저항기(예를 들어, 저항기(210))는 MR 엘리먼트와 전압 사이에 커플링될 수 있고 (예를 들어, 도 2a 및 도 2b에 도시된 바와 같은) MR 엘리먼트에 대한 정전류를 제공할 수 있다. 다른 설계에서, 전류 소스가 MR 엘리먼트에 커플링될 수 있고, MR 엘리먼트에 대한 정전류를 제공할 수 있다.
일 설계에서 감지 회로는 감지 증폭기에 커플링된 플립-플롭(예를 들어, 플립-플롭(250))을 더 포함할 수 있다. 플립-플롭은 감지 증폭기로부터 감지된 값을 수신하고, 랜덤 값들을 제공할 수 있다. 감지된 값들을 플립-플롭으로 래칭하는 것은, 랜덤 값들이 랜덤 값들을 수신하는 디지털 회로들의 셋업 시간들과 홀드 시간들을 충족할 수 있음을 보증할 수 있다.
일 설계에서, 적어도 하나의 추가적인 MR 엘리먼트가 (예를 들어, 도 6b에 도시된 바와 같이) 직렬로 또는 (예를 들어, 도 6c에 도시된 바와 같이) 병렬로 MR 엘리먼트에 커플링될 수 있다. 다수의 MR 엘리먼트들의 사용은 신뢰성 및 엔트로피 생성을 개선할 수 있다.
다른 설계에서, 장치(예를 들어, IC, 무선 디바이스, 전자 모듈 등)는, 예를 들어, 도 1에 도시된 바와 같이, 엔트로피 소스 및 후-프로세싱 모듈을 포함할 수 있다. 엔트로피 소스는 적어도 하나의 MR 엘리먼트를 포함할 수 있고, 적어도 하나의 MR 엘리먼트에 기초하여 제 1 랜덤 값들을 제공할 수 있다. 후-프로세싱 모듈은 제 1 랜덤 값들을 수신하고 프로세싱하여, 제 2 랜덤 값들을 제공할 수 있다.
일 설계에서, 후-프로세싱 모듈은 단일의 엔트로피 소스로부터 제 1 랜덤 값들의 단일의 시퀀스를 수신할 수 있고, 제 1 랜덤 값들의 이러한 단일의 시퀀스에 기초하여 제 2 랜덤 값들을 생성할 수 있다. 다른 설계에서, 후-프로세싱 모듈은 복수의 엔트로피 소스들로부터 제 1 랜덤 값들의 복수의 시퀀스들을 수신할 수 있고, 제 1 랜덤 값들의 복수의 시퀀스들에 기초하여 제 2 랜덤 값들을 생성할 수 있다.
일 설계에서, 후-프로세싱 모듈은 (예를 들어, 도 7a에 도시된 바와 같은 암호 해시 함수에 기초하여) 제 1 랜덤 값들을 해싱하고, 제 2 랜덤 값들을 제공할 수 있다. 다른 설계에서, 후-프로세싱 모듈은, 예를 들어, 도 7b에 도시된 바와 같이, 복수의 시프트 레지스터들 및 해시 모듈을 포함할 수 있다. 복수의 시프트 레지스터들은 엔트로피 소스를 포함하는 복수의 엔트로피 소스들로부터 제 1 랜덤 값들의 복수의 시퀀스들을 수신할 수 있다. 해시 모듈은 복수의 시프트 레지스터들로부터 매개 값들의 복수의 시퀀스들을 수신하고, 매개 값들을 해싱하고, 제 2 랜덤 값들을 제공할 수 있다. 각각의 제 1 랜덤 값은 1-비트 값을 포함할 수 있고, 각 매개 값은 Q-비트 값을 포함할 수 있고, 그리고, 각 제 2 랜덤 값은 N-비트 값을 포함할 수 있으며, 여기서 Q 및 N은 1 보다 클 수 있다. 일 설계에서, 입력 비트들의 전체 수가 출력 비트들의 총수보다 크도록, 각 제 2 랜덤 값의 비트들의 총수는 제 2 랜덤 값을 생성하는데 사용된 모든 제 1 랜덤 값들의 비트들의 총수보다 작을 수 있다.
또 다른 설계에서, 후-프로세싱 모듈은 제 1 랜덤 값들 및 에러 검출 코드, 예를 들어, 도 8a에 도시된 바와 같은 CRC에 기초하여 제 2 랜덤 값들을 생성할 수 있다. 후-프로세싱 모듈은 생성기 다항식을 구현하는 LFSR을 포함할 수 있다. LFSR은 제 1 랜덤 값들을 수신하고 제 2 랜덤 값들을 제공할 수 있다.
또 다른 설계에서, 후-프로세싱 모듈은 직렬로 커플링된 복수의 저항기들(예를 들어, 도 8b의 저항기들(830)) 및 적어도 두 개의 결합기들을 포함할 수 있다. 각 결합기는 (예를 들어, 도 8b에 도시된 바와 같은) XOR 게이트, modulo-2 합산기 등일 수 있다. 적어도 두 결합기들은 복수의 레지스터들의 적어도 두 레지스터들에 커플링될 수 있고, 적어도 두 엔트로피 소스들로부터 제 1 랜덤 값들의 적어도 두 시퀀스들을 수신할 수 있다. 복수의 레지스터들 및 적어도 두 결합기들은 적어도 두 피드백 비트들을 갖는 생성기 다항식을 구현할 수 있다.
또 다른 설계에서, 후-프로세싱 모듈은, 도 9에 도시된 바와 같이, 엔트로피 누산기 및 암호 모듈을 포함할 수 있다. 엔트로피 누산기는 제 1 랜덤 값들을 수신하고 매개 랜덤 값들을 제공할 수 있다. 암호 모듈은 매개 랜덤 값들을 수신하고 제 2 랜덤 값들을 제공할 수 있다. 암호 모듈은 암호 해시 함수, 스트림 암호 알고리즘 등에 기초하여 제 2 랜덤 값들을 생성할 수 있다.
또 다른 설계에서, 후-프로세싱 모듈은 결합기를 포함할 수 있다. 결합기는 도 10에 도시된 바와 같은 XOR 게이트, 또는 modulo-M 합산기 ― 여기서 M이 1 보다 큰 정수임 ―, 또는 몇몇의 다른 회로를 포함할 수 있다. 결합기는 복수의 엔트로피 소스들로부터 제 1 랜덤 값들의 복수의 시퀀스들을 수신하고 프로세싱하며 제 2 랜덤 값들을 제공할 수 있다. 결합기는 제 1 랜덤 값들의 복수의 시퀀스들 내의 복수의 제 1 랜덤 값들의 modulo-M 합산을 수행하여, 대응하는 제 2 랜덤 값을 획득할 수 있다.
또 다른 설계에서, 후-프로세싱 모듈은, 예를 들어, 도 11 또는 도 12에 도시된 바와 같이 스트림 암호 생성기를 포함할 수 있다. 스트림 암호 생성기는 제 2 랜덤 값들을 생성할 수 있다. 제 1 랜덤 값들은 스트림 암호 생성기의 동작 및/또는 내부 상태를 변경할 수 있다. 일 설계에서, 스트림 암호 생성기는, 예를 들면, 도 11에 도시된 바와 같이, K2 스트림 암호 알고리즘에 기초하여 제 2 랜덤 값들을 생성할 수 있다. 제 1 랜덤 값들은 K2 스트림 암호 알고리즘의 계수들을 선택할 수 있다. 다른 설계에서, 스트림 암호 생성기는, 예를 들어, 도 12에 도시된 바와 같이, SNOW 3G 스트림 암호 알고리즘에 기초하여 제 2 랜덤 값들을 생성할 수 있다. 제 1 랜덤 값들은 SNOW 3G 스트림 암호 알고리즘의 내부 상태를 변경할 수 있다.
일 설계에서, 엔트로피 소스는, 저-에너지 엔트로피 소스일 수 있고, 예를 들면, 도 2a 또는 도 2b에 도시된 바와 같이 바이어싱 회로 및 감지 회로를 포함할 수 있다. 바이어싱 회로(예를 들어, 저항기(210))는 적어도 하나의 MR 엘리먼트에 대한 정전류를 제공할 수 있다. 감지 회로(예를 들어, 감지 회로(230))는 적어도 하나의 MR 엘리먼트의 저항을 감지하고, 감지된 저항에 기초하여 제 1 랜덤 값들을 제공할 수 있다. 다른 설계에서, 엔트로피 소스는 고-에너지 엔트로피 소스일 수 있고, 예를 들면, 도 3에 도시된 바와 같이 제어 회로 및 감지 회로를 포함할 수 있다. 제어 회로는 적어도 하나의 MR 엘리먼트의 상태를 변경하기 위한 전류 또는 전압 펄스들을 생성할 수 있다. 감지 회로는 적어도 하나의 MR 엘리먼트의 저항을 감지하고, 감지된 저항에 기초하여 랜덤 값들을 제공할 수 있다.
일 설계에서, 제 1 랜덤 값들은 1-비트 값들을 포함할 수 있고, 제 2 랜덤 값들은 멀티-비트 값들을 포함할 수 있다. 일반적으로, 제 1 및 제 2 랜덤 값들은 임의의 수의 비트들의 값을 각각 포함할 수 있다.
엔트로피 소스는, 예를 들면, IC, 전자 모듈 등에서 하드웨어로 구현될 수 있다. 후술하는 바와 같이, 후-프로세싱 모듈은 하드웨어, 소프트웨어, 및/또는 펌웨어로 다양한 방식으로 구현될 수 있다.
또 다른 설계에서, 장치(예를 들어, IC, 무선 디바이스, 전자 모듈 등)는, 예를 들어, 도 5에 도시된 바와 같이, MR 셀들의 어레이, 감지 회로, 및 복수의 프로그래밍 소스들을 포함할 수 있다. MR 셀들의 어레이(예를 들어, MR 어레이(510))는 복수의 행들과 복수의 열들로 배열될 수 있다. 복수의 워드 라인들은 MR 셀들의 복수의 행들에 커플링될 수 있다. 복수의 선택 라인들은 MR 셀들의 복수의 열들에 커플링될 수 있다. 복수의 비트 라인들은 또한 MR 셀들의 복수의 열들에 커플링될 수 있다. 감지 회로(예를 들어, 감지 회로(550))는 복수의 선택 라인들에 커플링될 수 있고, 어레이 내의 선택된 MR 셀의 저항을 감지하고, 랜덤 값들을 제공할 수 있다. 복수의 프로그래밍 소스들(예를 들어, 프로그래밍 소스들(532 및 534))은 복수의 선택 라인들에 커플링될 수 있고, 어레이 내의 MR 셀들의 상태를 변경하기 위한 펄스들을 제공할 수 있다. 복수의 프로그래밍 소스들은 (ⅰ) 선택된 MR 셀이 제 1 방향으로 스위칭될 때 선택된 MR 셀에 커플링되는 제 1 프로그래밍 소스(예를 들어, 프로그래밍 소스(532a)) 및 (ⅱ) 선택된 MR 셀이 제 2 방향으로 스위칭될 때 선택된 MR 셀에 커플링되는 제 2 프로그래밍 소스(예를 들어, 프로그래밍 소스(534a))를 포함할 수 있다.
각 MR 셀은 적어도 하나의 MR 엘리먼트를 포함할 수 있다. 일 설계에서, 각 MR 셀은, 예를 들면, 도 6a에 도시된 바와 같이, 단일의 MR 엘리먼트를 포함할 수 있다. 다른 설계에서, 각 MR 셀은 (예를 들어, 도 6b에 도시된 바와 같이) 직렬로 또는 (도 6c에 도시된 바와 같이) 병렬로 커플링된 복수의 MR 엘리먼트들을 포함할 수 있다. 일 설계에서, 어레이의 MR 셀들은 동일한 MR 엘리먼트들을 포함할 수 있다. 다른 설계에서, 어레이의 MR 셀들은 IC 수율을 개선하기 위해 상이한 설계들, 형태들, 크기들, 두께 등의 MR 엘리먼트들을 포함할 수 있다.
일 설계에서, 선택된 MR 셀은 단일의 동작에서 프로그래밍될 수 있고, 단일의 동작에서 제 1 또는 제 2 프로그래밍 소스로부터의 전류 펄스 또는 전압 펄스가 인가될 수 있다. 다른 설계에서, 선택된 MR 셀은 복수의 동작들에서 프로그래밍될 수 있고, 각 동작에서 제 1 또는 제 2 프로그래밍 소스로부터의 전류 펄스 또는 전압 펄스가 인가될 수 있다. 일 설계에서, 적어도 하나의 MR 셀은 감지 회로를 위한 기준 전압을 제공하는데 사용될 수 있다.
복수의 프로그래밍 소스들은 어레이 내의 MR 셀들의 상태를 변경하기 위한 전류 펄스들 또는 전압 소스들을 제공할 수 있다. 일 설계에서, 제 1 또는 제 2 프로그래밍 소스들 중 적어도 하나는 선택된 MR 셀의 목표 스위칭 확률에 기초하여 결정된 가변 진폭의 펄스들을 제공할 수 있다. 다른 설계에서, 제 1 및 제 2 프로그래밍 소스들 중 적어도 하나는 목표 스위칭 확률에 기초하여 결정된 가변 지속 시간의 펄스들을 제공할 수 있다. 또 다른 설계에서, 제 1 및 제 2 프로그래밍 소스들의 적어도 하나는 목표 스위칭 확률에 기초하여 결정된 가변 진폭 및 가변 지속 시간의 펄스들을 제공할 수 있다. 일 설계에서, 복수의 프로그래밍 소스들은 개별적으로 구성되는 펄스 진폭 및/또는 펄스 지속 시간을 가질 수 있다.
일 설계에서, 어레이 내의 MR 셀들은 제 1 레이트로 선택되고 감지되어 제 2 레이트로 랜덤 값들을 생성할 수 있고, 제 2 레이트는 제 1 레이트보다 높을 수 있다. MR 셀들은 보다 높은 레이트로 랜덤 값들을 획득하기 위해 인터레이스될 수 있다.
또 다른 설계에서, 장치(예를 들어, IC, 무선 디바이스, 전자 모듈 등)는, 예를 들면, 도 13에 도시된 바와 같이, 엔트로피 소스 및 검출 모듈을 포함할 수 있다. 엔트로피 소스는 적어도 하나의 MR 엘리먼트(예를 들어, 적어도 하나의 STT-MTJ 디바이스)를 포함할 수 있고, 적어도 하나의 MR 엘리먼트에 기초하여 제 1 값들을 제공할 수 있다. 검출 모듈은 제 1 값들을 수신하고 프로세싱할 수 있으며, 엔트로피 소스의 탬퍼링의 표시를 제공할 수 있다.
검출 모듈은 다양한 방식들로 탬퍼링을 검출할 수 있다. 일 설계에서, 검출 모듈은 제 1 값들 내의 0들과 1들의 퍼센티지에 기초하여 엔트로피 소스를 탬퍼링하는 것을 검출할 수 있다. 다른 설계에서, 검출 모듈은 제 1 값들 내의 0들의 연속들과 1들의 연속들에 기초하여 엔트로피 소스를 탬퍼링하는 것을 검출할 수 있다. 또 다른 설계에서, 검출 모듈은 O들과 1들의 미리 결정된 패턴들의 발생들의 횟수에 기초하여 엔트로피 소스를 탬퍼링하는 것을 검출할 수 있다. 또 다른 설계에서, 검출 모듈은 제 1 값들의 압축을 수행할 수 있고, 압축의 출력 레이트에 기초하여 엔트로피 소스를 탬퍼링하는 것을 검출할 수 있다. 검출 모듈은 또한 다른 방식들로 탬퍼링을 검출할 수 있다.
도 14는 랜덤 값들을 생성하기 위한 프로세스(1400)의 설계를 도시한다. MR 엘리먼트의 자화에 기초하여 결정되는 가변 저항을 갖는 MR 엘리먼트에 정전류가 인가될 수 있다(블록(1412)). MR 엘리먼트에 인가된 정전류로 MR 엘리먼트의 저항이 감지될 수 있다(블록(1414)). 제 1 랜덤 값들이 MR 엘리먼트의 감지된 저항에 기초하여 생성될 수 있다(블록(1416)). 블록들(1414 및 1416)의 일 설계에서, MR 엘리먼트의 저항은 감지된 값들을 얻기 위해 기준 값에 비교될 수 있다. 이어서, 감지된 값들이 제 1 랜덤 값들을 얻기 위해 래칭될 수 있다.
제 1 랜덤 값들은 랜덤 값들을 요구하는 애플리케이션에 의해 직접 사용될 수 있다. 대안적으로, 제 2 랜덤 값들을 얻기 위해 제 1 랜덤 값들이 프로세싱될 수 있다(블록(1418)). 예를 들어, 제 1 랜덤 값들은 암호 해시 함수, 에러 검출 코드, 스트림 암호 알고리즘 등에 기초하여 프로세싱될 수 있다.
일 설계에서, 제 1 랜덤 값들의 복수의 시퀀스들은 MR 엘리먼트를 포함하는 복수의 MR 엘리먼트들의 저항을 감지함으로써 생성될 수 있다. 제 2 랜덤 값들을 얻기 위해, 제 1 랜덤 값들의 복수의 시퀀스들이 (예를 들어, 도 7b에 도시된 해시 함수, 도 8b에 도시된 에러 검출 코드, 또는 도 10에 도시된 결합기로) 프로세싱될 수 있다.
적어도 하나의 MR 엘리먼트를 포함하는 엔트로피 소스로부터의 제 1 랜덤 값들은 다음의 특성들 중 하나 이상을 가질 수 있다:
- 제한 없는 계산 능력의 경우에조차, 상당한 예측불가능성,
- 상대방에 알려지지 않음,
- 상대방에 의해 영향을 받지 않음,
- 반드시 편중되지 않거나 상관되지 않는 것은 아님, 그리고
- 엔트로피가 출력 비트 레이트보다 낮을 수 있음.
엔트로피 소스 및 후-프로세싱 모듈을 포함하는 RN 생성기로부터의 제 2 랜덤 값들은 다음의 특성들 중 하나 이상을 가질 수 있다.
- 제한 없는 계산 능력의 경우에조차, 상당한 예측불가능성,
- 상대방에 알려지지 않음,
- 상대방에 의해 영향을 받지 않음,
- 무시할 수 있는 편중 및 상관, 그리고
- 출력 비트 레이트와 동일하거나 매우 근사한 엔트로피.
RN 생성기를 위한 제 1 랜덤 값들을 생성하는데 적어도 하나의 MR 엘리먼트를 사용하는 것은 다양한 이점들을 제공할 수 있다. 첫째로, MR 엘리먼트는 엔트로피의 다른 소스들보다 양호한 특성들을 가질 수 있고, 양호한 엔트로피 소스를 구축하는데 사용될 수 있다. MR 엘리먼트의 저항에서의 변화들은 확률론적인 프로세스를 형성한다. MR 엘리먼트는 MR 엘리먼트의 물리학에 기초하여 입증 가능한 간단한 모델에 의해 특징지어질 수 있다. 모델의 파라미터들이 MR 엘리먼트의 측정값들에 기초하여 추정될 수 있다. MR 엘리먼트가 측정값들, 컴퓨터 시뮬레이션 등에 기초하여 모델을 따르도록 검증될 수 있다. 엔트로피 소스는 (저항을 감지하기 위한 감지 증폭기를 제외하고) 고-이득 디바이스들의 사용 없이 MR 엘리먼트로 구축될 수 있다. 엔트로피 소스는 낮은 비용과 낮은 전력일 수 있고, 작은 회로 영역을 차지할 수 있고, 반도체 디바이스 상에 쉽게 제작될 수 있다. 엔트로피 소스는 빠른 생성 레이트를 가질 수 있고 높은 레이트에서, 가능하게는 ㎓ 범위에서, 제 1 랜덤 값들을 제공할 수 있을 수 있다. 엔트로피 소스로부터의 제 1 랜덤 값들은 무작위성을 개선하기 위해 컨디셔닝되고 후-프로세싱될 수 있다.
적어도 하나의 MR 엘리먼트를 포함하는 엔트로피 소스 및 RN 생성기는 전술한 바와 같이 다양한 전자 디바이스들에 사용될 수 있다. 무선 디바이스에서의 엔트로피 소스 및 RN 생성기의 사용이 이하에 기술된다.
도 15는 하나 이상의 엔트로피 소스들 및/또는 하나 이상의 RN 생성기들을 포함할 수 있는 무선 디바이스(1500)의 블록 다이어그램을 도시한다. 무선 디바이스(1500)는 셀룰러 폰, 스마트 폰, 태블릿, PDA, 랩탑 컴퓨터, 넷북, 스마트북, 단말기, 핸드셋 등일 수 있다. 무선 디바이스(1500)는 하나 이상의 무선 통신 네트워크들을 통해 통신을 지원할 수 있고, 이는 코드 분할 다중 접속(CDMA) 네트워크, GSM(Global System for Mobile Communications) 네트워크, 롱 텀 에벌루션(LTE) 네트워크, 무선 로컬 영역 네트워크(WLAN) 등을 포함할 수 있다.
무선 디바이스(1500)는 수신 경로 및 송신 경로를 통해 양방향 통신을 지원할 수 있다. 수신 경로에서, 기지국들 및/또는 다른 디바이스들에 의해 전송되는 신호들이 안테나(1512)에 의해 수신되고 수신기(RCVR, 1514)에 제공될 수 있다. 수신기(1514)는 수신된 신호를 컨디셔닝하고 디지털화하고, 추가 프로세싱을 위해 디지털 섹션(1520)에 입력 샘플들을 제공할 수 있다. 송신 경로에서, 송신기(TMTR, 1516)는 디지털 섹션(1520)으로부터 전송될 데이터를 수신할 수 있다. 송신기(1516)는 데이터를 프로세싱하고 컨디셔닝하여 변조된 신호를 생성할 수 있고, 그 신호는 안테나(1512)를 통해 기지국들 및/또는 다른 디바이스들로 전송될 수 있다.
디지털 섹션(1520)은, 예를 들어, 모뎀 프로세서(1522), CPU(central processing unit)/RISC(reduced instruction set computer)(1524), 주 제어기(1526), SRAM(static random access memory)(1528), 보안 모듈(1530), ROM(read-only memory)(1532), NAND 플래시 제어기(1534), 및 SDRAM(synchronous dynamic RAM) 제어기(1536)와 같은 다양한 프로세싱, 인터페이스 및 메모리 모듈들을 포함할 수 있고, 이들 모두는 하나 이상의 버스들(1560)을 통해 서로 통신할 수 있다. 모뎀 프로세서(1522)는, 데이터 송신 및 수신을 위한 프로세싱, 예를 들어, 인코딩, 변조, 복조, 디코딩 등을 수행할 수 있다. CPU/RISC(1524)는, 예를 들어, 음성 통화, 웹 브라우징, 멀티-미디어, 게임들, 사용자 인터페이스, 포지셔닝 등과 같은 다양한 애플리케이션들을 위한 범용 프로세싱을 수행할 수 있다. 주 제어기(1526)는 디지털 섹션(1520) 내의 다양한 유닛들의 동작들을 지시할 수 있다. SRAM(1528)은 데이터 섹션(1520) 내의 제어기들 및 프로세서들에 의해 사용되는 프로그램 코드들 및 데이터를 저장할 수 있다. ROM(1532)은 부트 코드 및/또는 다른 코드 및 무선 디바이스(1500)를 위한 데이터를 저장할 수 있다. NAND 플래시 제어기(1534)는 NAND 플래시(1544)와 디지털 섹션(1520) 사이의 데이터 전달을 용이하게 할 수 있다. SDRAM 제어기(1536)는 SDRAM(1546) 및 디지털 섹션(1520) 사이의 데이터의 전달을 용이하게 할 수 있다.
보안 모듈(1530)은 민감한 정보(예를 들어, 개인 정보, 비즈니스 정보, 패스워드들 등) 및/또는 무선 디바이스(1500)를 위한 다른 정보를 안전하게 저장할 수 있다. 보안 모듈(1530)은 랜덤 값들을 생성하기 위한 엔트로피 소스 및/또는 RN 생성기(1540)를 포함할 수 있다. RN 생성기(1540)는 엔트로피 소스(1540)로부터 제 1 랜덤 값들을 수신하고 제 2 랜덤 값들을 생성하기 위한 후-프로세싱 회로를 포함할 수 있다. 보안 모듈(1530)은 엔트로피 소스 및/또는 RN 생성기(1540)에 의해 생성되는 랜덤 값들을 사용할 수 있는 암호 알고리즘들을 구현할 수 있다. 보안 모듈(1530)은 또한 무선 디바이스(1500) 내의 다른 모듈들에 랜덤 값들을 제공할 수 있다. 무선 디바이스(1500) 내의 다른 모듈들 및 프로세서들은 또한 랜덤 값들을 생성하기 위한 엔트로피 소스들 및/또는 RN 생성기들을 포함할 수 있다. 프로세서(1524)와 같은 프로세서들은 또한 (예를 들면, 사용할 프로세서 상에서 실행되는 소프트웨어를 위해) RN 생성기를 포함할 수 있다.
일반적으로, 디지털 섹션(1520)은 임의의 수의 프로세싱, 인터페이스, 및 메모리 모듈들을 포함할 수 있다. 디지털 섹션(1520)은 또한 하나 이상의 DSP들(digital signal processors), 마이크로-프로세서들, RISC 프로세서들 등으로 구현될 수 있다. 디지털 섹션(1520)은 하나 이상의 ASIC들(application specific integrated circuits) 및/또는 임의의 다른 타입의 IC들(integrated circuits) 상에 제작될 수 있다.
당업자들은 정보 및 신호들이 다양한 상이한 기술들 및 기법들 중 임의의 것을 사용하여 표현될 수 있음을 이해할 것이다. 예를 들어, 상기 설명 전반에 걸쳐 참조될 수 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심벌들, 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 자기 입자들, 광 필드들 또는 광 입자들, 또는 이들의 임의의 조합으로 표현될 수 있다.
당업자들은 본원의 발명과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 조합으로서 구현될 수 있음을 또한 인지할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 교환 가능성을 명확히 예시하기 위해, 상기에서는 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 이들의 기능과 관련하여 일반적으로 앞서 설명되었다. 이러한 기능이 하드웨어로 구현되는지 또는 소프트웨어로 구현되는지는 특정 애플리케이션 및 전체 시스템에 대해 부과된 설계 제한들에 좌우된다. 당업자들은 설명한 기능들을 각각의 특정 애플리케이션에 대해 다양한 방식들로 구현할 수 있지만, 이러한 구현 결정들은 본 발명의 범위를 벗어나는 것으로 해석되지 않아야 한다.
본원의 발명과 관련하여 설명한 다양한 예시적인 논리 블록들, 모듈들 및 회로들은 범용 프로세서, DSP, ASIC, 필드 프로그래밍 가능 게이트 어레이 신호(FPGA) 또는 다른 프로그래밍 가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본원에 설명된 기능들을 수행하도록 설계된 이들의 임의의 조합을 포함할 수 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안적으로 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기 또는 상태 머신일 수도 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들어 DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 공조하는 하나 이상의 마이크로프로세서들, 또는 임의의 다른 구성으로서 구현될 수 있다.
본 발명과 관련하여 설명된 방법 또는 알고리즘의 단계들은 직접 하드웨어, 프로세서에 의해 실행되는 소프트웨어 모듈, 또는 이 둘의 조합으로 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 제거 가능 디스크, CD-ROM, 또는 당분야에 공지된 임의의 다른 형태의 저장 매체에 상주할 수 있다. 예시적인 저장 매체는 프로세서가 저장 매체로부터 정보를 읽고 저장 매체에 정보를 기록할 수 있도록 프로세서에 커플링된다. 대안적으로, 저장 매체는 프로세서에 통합될 수 있다. 프로세서 및 저장 매체는 ASIC에 상주할 수 있다. ASIC는 사용자 단말에 상주할 수 있다. 대안으로, 프로세서 및 저장 매체는 사용자 단말 내의 이산 컴포넌트들로서 상주할 수 있다.
하나 이상의 예시적인 설계들에서, 설명한 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현된다면, 이 기능들은 컴퓨터 판독 가능 매체 상에 하나 이상의 명령들 또는 코드로서 저장될 수도 있고 이들을 통해 전송될 수도 있다. 컴퓨터 판독 가능 매체들은 한 장소에서 다른 장소로 컴퓨터 프로그램의 전달을 용이하게 하는 임의의 매체를 포함하는 통신 매체들 및 컴퓨터 저장 매체들을 모두 포함한다. 저장 매체들은 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능 매체들일 수 있다. 한정이 아닌 예시로, 이러한 컴퓨터 판독 가능 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드 수단을 운반 또는 저장하는데 사용될 수 있으며 범용 또는 특수 목적 컴퓨터, 또는 범용 또는 특수 목적 프로세서에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속 수단이 컴퓨터 판독 가능 매체로 적절히 지칭된다. 예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 꼬임 쌍선, 디지털 가입자 회선(DSL: digital subscriber line), 또는 적외선, 라디오 및 마이크로웨이브와 같은 무선 기술들을 이용하여 웹사이트, 서버 또는 다른 원격 소스로부터 전송된다면, 동축 케이블, 광섬유 케이블, 꼬임 쌍선, DSL, 또는 적외선, 라디오 및 마이크로웨이브와 같은 무선 기술들이 전송 매체의 정의에 포함된다. 본원에서 사용되는 바와 같은 디스크(disk) 및 디스크(disc)는 컴팩트 디스크(disc)(CD), 레이저 디스크(disc) , 광 디스크(disc), 디지털 다목적 디스크(disc)(DVD), 플로피 디스크(disk), 및 블루-레이 디스크(disc)를 포함하며, 여기서 디스크들(disks)은 일반적으로 데이터를 자기적으로 재생하지만, 디스크들(discs)은 일반적으로 레이저들을 통해 광학적으로 데이터를 재생한다. 위의 것들의 조합들은 또한 컴퓨터-판독 가능한 매체들의 범위 내에 포함되어야 한다.
본 발명의 이전 설명은 당업자가 본 발명을 제작 또는 사용하게 하도록 제공된다. 본 발명에 대한 다양한 수정들이 당업자들에게 용이하게 명백할 것이며, 본원에 정의되는 포괄적인 원리들은 본 발명의 사상 및 범위를 벗어나지 않고 다른 변형예들에 적용될 수 있다. 따라서, 본 발명은 본원에 설명되는 예들 및 설계들에 제한되는 것으로 의도되는 것이 아니라, 본원에 개시된 원리들 및 신규한 특징들에 부합하는 최 광의의 범위에 따른다.

Claims (56)

  1. 정전류가 인가되고 자기-저항(MR) 엘리먼트의 자화(magnetization)에 기초하여 결정되는 가변 저항을 갖는 상기 MR 엘리먼트; 및
    상기 MR 엘리먼트의 상기 저항을 감지하고, 상기 MR 엘리먼트의 감지된 저항에 기초하여 랜덤 값들을 제공하도록 구성되는 감지 회로를 포함하는,
    장치.
  2. 제 1 항에 있어서,
    상기 MR 엘리먼트는 STT(spin torque transfer)-MTJ(magnetic tunnel junction) 디바이스를 포함하는,
    장치.
  3. 제 1 항에 있어서,
    상기 감지 회로는,
    상기 MR 엘리먼트에 커플링되는 제 1 입력, 기준 전압을 수신하는 제 2 입력, 및 제 1 랜덤 값들을 생성하는데 사용되는 감지된 값들을 제공하는 출력을 갖는 감지 증폭기를 포함하는,
    장치.
  4. 제 3 항에 있어서,
    상기 장치는 상기 MR 엘리먼트에 직렬로 커플링되는 저항기를 더 포함하고,
    상기 저항기 및 상기 MR 엘리먼트는 저항성 분압기(resistive voltage divider)를 형성하는,
    장치.
  5. 제 3 항에 있어서,
    상기 감지 증폭기의 상기 제 2 입력에 커플링되는 제 2 MR 엘리먼트를 더 포함하는,
    장치.
  6. 제 5 항에 있어서,
    상기 MR 엘리먼트 및 상기 제 2 MR 엘리먼트는 상이한 형태들, 또는 상이한 크기들, 또는 상이한 두께, 또는 이들의 조합을 갖는,
    장치.
  7. 제 3 항에 있어서,
    상기 MR 엘리먼트에 커플링되고, 상기 MR 엘리먼트의 저항을 측정하는데 사용되는 상기 정전류를 제공하도록 구성되는 전류 소스를 더 포함하는,
    장치.
  8. 제 3 항에 있어서,
    상기 감지 회로는,
    상기 감지 증폭기에 커플링되고, 감지된 값들을 수신하고 상기 랜덤 값들을 제공하도록 구성되는 플립-플롭을 더 포함하는,
    장치.
  9. 제 1 항에 있어서,
    상기 MR 엘리먼트에 직렬로 또는 병렬로 커플링되는 적어도 하나의 추가적인 MR 엘리먼트를 더 포함하는,
    장치.
  10. 적어도 하나의 자기-저항(MR) 엘리먼트를 포함하고, 상기 적어도 하나의 MR 엘리먼트에 기초하여 제 1 랜덤 값들을 제공하도록 구성되는 엔트로피 소소; 및
    상기 제 1 랜덤 값들을 수신 및 프로세싱하고, 제 2 랜덤 값들을 제공하도록 구성되는 후-프로세싱 모듈을 포함하는,
    장치.
  11. 제 10 항에 있어서,
    상기 후-프로세싱 모듈은 상기 제 1 랜덤 값들을 해싱하고, 상기 제 2 랜덤 값들을 제공하도록 구성되는,
    장치
  12. 제 11 항에 있어서,
    상기 후-프로세싱 모듈은 암호 해시 함수에 기초하여 상기 제 1 랜덤 값들을 해싱하도록 구성되는,
    장치.
  13. 제 10 항에 있어서,
    각각의 제 2 랜덤 값의 비트들의 총수는 상기 제 2 랜덤 값을 생성하는데 사용되는 모든 제 1 랜덤 값들의 비트들의 총수보다 큰,
    장치.
  14. 제 10 항에 있어서,
    상기 후-프로세싱 모듈은,
    상기 엔트로피 소스를 포함하는 복수의 엔트로피 소스들로부터 제 1 랜덤 값들의 복수의 시퀀스들을 수신하도록 구성되는 복수의 시프트 레지스터들; 및
    상기 복수의 시프트 레지스터들로부터 매개(intermediate) 값들의 복수의 시퀀스들을 수신하고, 상기 매개 값들을 해싱하고, 상기 제 2 랜덤 값들을 제공하도록 구성되는 해시 모듈을 포함하는,
    장치.
  15. 제 14 항에 있어서,
    각각의 제 1 랜덤 값은 1-비트 값을 포함하고, 각각의 매개 값은 Q-비트 값을 포함하고, 각각의 제 2 랜덤 값은 N-비트 값을 포함하며, Q 및 N은 각각 1 보다 큰,
    장치.
  16. 제 10 항에 있어서,
    상기 후-프로세싱 모듈은 상기 제 1 랜덤 값들 및 에러 검출 코드에 기초하여 상기 제 2 랜덤 값들을 생성하도록 구성되는,
    장치.
  17. 제 16 항에 있어서,
    상기 에러 검출 코드는 CRC(cyclic redundancy check)를 포함하는,
    장치.
  18. 제 10 항에 있어서,
    상기 후-프로세싱 모듈은,
    생성기 다항식(generator polynomial)을 구현하고 상기 제 1 랜덤 값들을 수신하고 상기 제 2 랜덤 값들을 제공하도록 구성되는 선형 피드백 시프트 레지스터(LFSR)를 포함하는,
    장치.
  19. 제 10 항에 있어서,
    상기 후-프로세싱 모듈은,
    직렬로 커플링된 복수의 레지스터들; 및
    상기 복수의 레지스터들 중 적어도 두 레지스터들에 커플링되고, 적어도 두 엔트로피 소스들로부터 제 1 랜덤 값들의 적어도 두 시퀀스들을 수신하도록 구성되는 적어도 두 결합기들을 포함하고,
    상기 복수의 레지스터들 및 상기 적어도 두 결합기들은 적어도 두 피드백 비트들을 갖는 생성기 다항식을 구현하고, 상기 적어도 두 엔트로피 소스들은 상기 엔트로피 소스를 포함하는,
    장치.
  20. 제 10 항에 있어서,
    상기 후-프로세싱 모듈은,
    상기 제 1 랜덤 값들을 수신하고 매개 랜덤 값들을 제공하도록 구성되는 엔트로피 누산기; 및
    상기 매개 랜덤 값들을 수신하고 제 2 랜덤 값들을 제공하도록 구성되는 암호 모듈을 포함하는,
    장치.
  21. 제 10 항에 있어서,
    상기 후-프로세싱 모듈은,
    복수의 엔트로피 소스들로부터 제 1 랜덤 값들의 복수의 시퀀스들을 수신 및 프로세싱하고, 상기 제 2 랜덤 값들을 제공하도록 구성되는 결합기를 포함하고,
    상기 복수의 엔트로피 소스들은 상기 엔트로피 소스를 포함하는,
    장치.
  22. 제 21 항에 있어서,
    상기 결합기는 배타적 OR(XOR) 회로를 포함하는,
    장치.
  23. 제 21 항에 있어서,
    상기 결합기는 대응하는 제 2 랜덤 값을 얻기 위해 상기 제 1 랜덤 값들의 복수의 시퀀스들 내의 복수의 제 1 랜덤 값들의 modulo-M 합산을 수행하도록 구성되고, M은 1 보다 큰 정수인,
    장치.
  24. 제 10 항에 있어서,
    상기 후-프로세싱 모듈은,
    상기 제 2 랜덤 값들을 생성하도록 구성되는 스트림 암호 생성기를 포함하고,
    상기 제 1 랜덤 값들이 상기 스트림 암호 생성기의 동작 또는 내부 상태를 변경하는,
    장치.
  25. 제 24 항에 있어서,
    상기 스트림 암호 생성기는 스트림 암호 알고리즘에 기초하여 상기 제 2 랜덤 값들을 생성하도록 구성되고,
    상기 제 1 랜덤 값들이 상기 스트림 암호 알고리즘의 계수들을 선택하는,
    장치.
  26. 제 24 항에 있어서,
    상기 스트림 암호 생성기는 스트림 암호 알고리즘에 기초하여 상기 제 2 랜덤 값들을 생성하도록 구성되고, 상기 제 1 랜덤 값들이 상기 스트림 암호 생성기의 내부 상태를 변경하는,
    장치.
  27. 제 10 항에 있어서,
    상기 제 1 랜덤 값들은 1-비트 랜덤 값들을 포함하고, 상기 제 2 랜덤 값들은 멀티-비트 랜덤 값들을 포함하는,
    장치.
  28. 제 10 항에 있어서,
    상기 엔트로피 소스는,
    상기 적어도 하나의 MR 엘리먼트에 정전류를 제공하도록 구성되는 바이어싱 회로; 및
    상기 적어도 하나의 MR 엘리먼트의 저항을 감지하고, 감지된 저항에 기초하여 랜덤 값들을 제공하도록 구성되는 감지 회로를 포함하는,
    장치.
  29. 제 10 항에 있어서,
    상기 엔트로피 소스는,
    상기 적어도 하나의 MR 엘리먼트의 상태를 변경하기 위한 전류 또는 전압 펄스들을 생성하도록 구성된 회로; 및
    상기 적어도 하나의 MR 엘리먼트의 저항을 감지하고, 감지된 저항에 기초하여 랜덤 값들을 제공하도록 구성되는 감지 회로를 포함하는,
    장치.
  30. 복수의 행들 및 복수의 열들로 배열된 자기-저항(MR) 셀들의 어레이 ― 각각의 MR 셀은 적어도 하나의 MR 엘리먼트를 포함함 ― ;
    MR 셀들의 상기 복수의 행들에 커플링된 복수의 워드 라인들;
    MR 셀들의 상기 복수의 열들에 커플링된 복수의 선택 라인들;
    상기 복수의 선택 라인들에 커플링되고, 상기 어레이 내의 선택된 MR 셀의 저항을 감지하고 랜덤 값들을 제공하도록 구성되는 감지 회로; 및
    상기 복수의 선택 라인들에 커플링되고, 상기 어레이 내의 상기 MR 셀들의 상태를 변경하기 위한 펄스들을 제공하도록 구성되는 복수의 프로그래밍 소스들을 포함하고, 상기 복수의 프로그래밍 소스들은,
    상기 선택된 MR 셀이 제 1 방향으로 스위칭될 때, 상기 선택된 MR 셀에 커플링되는 제 1 프로그래밍 소스, 및
    상기 선택된 MR 셀이 제 2 방향으로 스위칭될 때, 상기 선택된 MR 셀에 커플링되는 제 2 프로그래밍 소스를 포함하는,
    장치.
  31. 제 30 항에 있어서,
    상기 복수의 프로그래밍 소스들은 상기 어레이 내의 상기 MR 셀들의 상기 상태를 변경하기 위한 전류 펄스들 또는 전압 펄스들을 제공하도록 구성되는,
    장치.
  32. 제 30 항에 있어서,
    상기 제 1 프로그래밍 소스 및 제 2 프로그래밍 소스 중 적어도 하나는 상기 선택된 MR 셀의 목표 스위칭 확률에 기초하여 결정되는 가변 진폭, 또는 가변 펄스 지속 시간, 또는 가변 진폭과 가변 펄스 지속 시간 양자의 펄스들을 제공하도록 구성되는,
    장치.
  33. 제 30 항에 있어서,
    상기 복수의 프로그래밍 소스들은 펄스 진폭, 또는 펄스 지속 시간, 또는 펄스 진폭과 펄스 지속 시간 양자를 개별적으로 구성하는,
    장치.
  34. 제 30 항에 있어서,
    상기 선택된 MR 셀은 단일의 동작에서 프로그래밍되고, 상기 단일의 동작에서 상기 제 1 프로그래밍 소스 또는 제 2 프로그래밍 소스로부터의 전류 펄스 또는 전압 펄스가 인가되는,
    장치.
  35. 제 30 항에 있어서,
    상기 선택된 MR 셀은 복수의 동작들에서 프로그래밍되고, 상기 복수의 동작들 각각에서 상기 제 1 프로그래밍 소스 또는 제 2 프로그래밍 소스로부터 전류 펄스 또는 전압 펄스가 인가되는,
    장치.
  36. 제 30 항에 있어서,
    상기 어레이 내의 MR 셀들은 제 1 레이트로 선택 및 감지되어, 상기 제 1 레이트보다 높은 제 2 레이트로 랜덤 값들을 생성하는,
    장치.
  37. 제 30 항에 있어서,
    각각의 MR 셀은 직렬로 커플링된 복수의 MR 엘리먼트들을 포함하는,
    장치.
  38. 제 30 항에 있어서,
    각각의 MR 셀은 병렬로 커플링된 복수의 MR 엘리먼트들을 포함하는,
    장치.
  39. 제 38 항에 있어서,
    각각의 MR 셀 내의 상기 복수의 MR 엘리먼트들은 함께 커플링된 자유 레이어들 및 또한 함께 커플링된 고정 레이어들을 갖는,
    장치.
  40. 제 30 항에 있어서,
    상기 감지 회로에 대한 기준 전압을 제공하는데 사용되는 적어도 하나의 MR 셀을 더 포함하는,
    장치.
  41. 제 30 항에 있어서,
    상기 어레이 내의 상기 MR 셀들은 상이한 형태들, 또는 상이한 크기들, 또는 상이한 두께, 또는 이들의 조합의 MR 엘리먼트들을 포함하는,
    장치.
  42. 적어도 하나의 자기-저항(MR) 엘리먼트를 포함하고, 상기 적어도 하나의 MR 엘리먼트에 기초하여 제 1 값들을 제공하도록 구성되는 엔트로피 소스; 및
    상기 제 1 값들을 수신 및 프로세싱하고, 상기 엔트로피 소스의 탬퍼링의 표시를 제공하도록 구성되는 검출 모듈을 포함하는,
    장치.
  43. 제 42 항에 있어서,
    상기 검출 모듈은 상기 제 1 값들 내의 0들의 퍼센티지 및 1들의 퍼센티지에 기초하여 상기 엔트로피 소스의 탬퍼링을 검출하도록 구성되는,
    장치.
  44. 제 42 항에 있어서,
    상기 검출 모듈은 상기 제 1 값들 내의 0들의 연속들(runs) 및 1들의 연속들에 기초하여 상기 엔트로피 소스의 탬퍼링을 검출하도록 구성되는,
    장치.
  45. 제 42 항에 있어서,
    상기 검출 모듈은 0들과 1들의 미리 결정된 패턴들의 발생들의 횟수에 기초하여 상기 엔트로피 소스의 탬퍼링을 검출하도록 구성되는,
    장치.
  46. 제 42 항에 있어서,
    상기 검출 모듈은 상기 제 1 값들의 압축을 수행하고, 상기 압축의 출력 레이트에 기초하여 상기 엔트로피 소스의 탬퍼링을 검출하도록 구성되는,
    장치.
  47. 랜덤 값들을 생성하는 방법으로서,
    자기-저항(MR) 엘리먼트의 자화에 기초하여 결정되는 가변 저항을 갖는 상기 MR 엘리먼트에 정전류를 인가하는 단계;
    상기 MR 엘리먼트에 인가된 상기 정전류로 상기 MR 엘리먼트의 저항을 감지하는 단계; 및
    상기 MR 엘리먼트의 감지된 저항에 기초하여 제 1 랜덤 값들을 생성하는 단계를 포함하는,
    랜덤 값들을 생성하는 방법.
  48. 제 47 항에 있어서,
    상기 MR 엘리먼트의 저항을 감지하는 단계는 감지된 값들을 얻기 위해 기준 전압에 대해 상기 MR 엘리먼트의 저항을 비교하는 단계를 포함하고,
    상기 제 1 랜덤 값들을 생성하는 단계는 상기 제 1 랜덤 값들을 얻기 위해 감지된 값들을 래칭하는 단계를 포함하는,
    랜덤 값들을 생성하는 방법.
  49. 제 47 항에 있어서,
    제 2 랜덤 값들을 얻기 위해 상기 제 1 랜덤 값들을 프로세싱하는 단계를 더 포함하는,
    랜덤 값들을 생성하는 방법.
  50. 제 49 항에 있어서,
    상기 제 1 랜덤 값들을 프로세싱하는 단계는 암호 해시 함수, 에러 검출 코드, 또는 스트림 암호 알고리즘 중 적어도 하나에 기초하여 상기 제 1 랜덤 값들을 프로세싱하는 단계를 포함하는,
    랜덤 값들을 생성하는 방법.
  51. 제 47 항에 있어서,
    상기 MR 엘리먼트를 포함하는 복수의 MR 엘리먼트들의 저항을 감지함으로써 제 1 랜덤 값들의 복수의 시퀀스들을 생성하는 단계; 및
    제 2 랜덤 값들을 얻기 위해 상기 제 1 랜덤 값들의 복수의 시퀀스들을 프로세싱하는 단계를 더 포함하는,
    랜덤 값들을 생성하는 방법.
  52. 제 47 항에 있어서,
    상기 MR 엘리먼트의 탬퍼링을 검출하는 단계를 더 포함하는,
    랜덤 값들을 생성하는 방법.
  53. 자기-저항(MR) 엘리먼트의 자화에 기초하여 결정되는 가변 저항을 갖는 상기 MR 엘리먼트에 정전류를 인가하기 위한 수단;
    상기 MR 엘리먼트에 인가된 상기 정전류로 상기 MR 엘리먼트의 저항을 감지하기 위한 수단; 및
    상기 MR 엘리먼트의 감지된 저항에 기초하여 제 1 랜덤 값들을 생성하기 위한 수단을 포함하는,
    장치.
  54. 제 53 항에 있어서,
    제 2 랜덤 값들을 얻기 위해 상기 제 1 랜덤 값들을 프로세싱하기 위한 수단을 더 포함하는,
    장치.
  55. 제 53 항에 있어서,
    상기 MR 엘리먼트를 포함하는 복수의 MR 엘리먼트들의 저항을 감지함으로써 제 1 랜덤 값들의 복수의 시퀀스들을 생성하기 위한 수단; 및
    제 2 랜덤 값들을 얻기 위해 상기 제 1 랜덤 값들의 복수의 시퀀스들을 프로세싱하기 위한 수단을 더 포함하는,
    장치.
  56. 컴퓨터-판독 가능 매체를 포함하는 컴퓨터 프로그램 물건으로서,
    상기 컴퓨터-판독 가능 매체는,
    적어도 하나의 프로세서로 하여금, 자기-저항(MR) 엘리먼트의 자화에 기초하여 결정되는 가변 저항을 갖는 상기 MR 엘리먼트에 정전류의 인가를 지시하게 하기 위한 코드;
    상기 적어도 하나의 프로세서로 하여금, 상기 MR 엘리먼트에 인가된 상기 정전류로 상기 MR 엘리먼트의 상기 저항의 감지를 지시하게 하기 위한 코드; 및
    상기 적어도 하나의 프로세서로 하여금, 상기 MR 엘리먼트의 상기 감지된 저항에 기초하여 제 1 랜덤 값들의 생성을 지시하게 하기 위한 코드를 포함하는,
    컴퓨터-판독 가능 매체를 포함하는 컴퓨터 프로그램 물건.
KR1020147010432A 2011-09-20 2012-09-17 난수 생성기를 위한 자기―저항 엘리먼트를 갖는 엔트로피 소스 KR101617832B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161536769P 2011-09-20 2011-09-20
US61/536,769 2011-09-20
US13/367,322 2012-02-06
US13/367,322 US9189201B2 (en) 2011-09-20 2012-02-06 Entropy source with magneto-resistive element for random number generator
PCT/US2012/055785 WO2013043543A2 (en) 2011-09-20 2012-09-17 Entropy source with magneto-resistive element for random number generator

Publications (2)

Publication Number Publication Date
KR20140069195A true KR20140069195A (ko) 2014-06-09
KR101617832B1 KR101617832B1 (ko) 2016-05-03

Family

ID=47881665

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147010432A KR101617832B1 (ko) 2011-09-20 2012-09-17 난수 생성기를 위한 자기―저항 엘리먼트를 갖는 엔트로피 소스

Country Status (8)

Country Link
US (2) US9189201B2 (ko)
EP (1) EP2758865B1 (ko)
JP (1) JP5826400B2 (ko)
KR (1) KR101617832B1 (ko)
CN (1) CN103890712B (ko)
IN (1) IN2014CN02071A (ko)
TW (1) TW201319930A (ko)
WO (1) WO2013043543A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180102068A (ko) * 2014-04-28 2018-09-14 아이디 퀀티크 에스.에이. 광학 기반 양자 난수 생성을 위한 방법 및 디바이스
KR20220073126A (ko) * 2020-11-26 2022-06-03 한국과학기술연구원 확률론적 자기터널접합구조를 이용한 랜덤 넘버 발생기

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8464141B2 (en) * 2008-08-13 2013-06-11 Infineon Technologies Ag Programmable error correction capability for BCH codes
US9053071B2 (en) * 2012-03-15 2015-06-09 Qualcomm, Incorporated Spin torque transfer magnetic tunnel junction intelligent sensing
GB2504457A (en) * 2012-06-06 2014-02-05 Univ Bruxelles Message authentication via distributed secret keys
US9110746B2 (en) * 2012-09-04 2015-08-18 Qualcomm Incorporated Magnetic tunnel junction based random number generator
US20140108478A1 (en) * 2012-10-15 2014-04-17 Qualcomm Incorporated Magnetic tunnel junction based random number generator
US9311051B2 (en) * 2013-01-10 2016-04-12 Advanced Micro Devices, Inc. Hardware random number generator
US9214214B2 (en) * 2013-09-09 2015-12-15 Qualcomm Incorporated Physically unclonable function based on the random logical state of magnetoresistive random-access memory
EP3050132A4 (en) * 2013-09-27 2017-05-24 Intel Corporation Voltage controlled nano-magnetic random number generator
US9417845B2 (en) * 2013-10-02 2016-08-16 Qualcomm Incorporated Method and apparatus for producing programmable probability distribution function of pseudo-random numbers
TWI545580B (zh) 2014-01-07 2016-08-11 群聯電子股份有限公司 隨機數產生方法、記憶體儲存裝置及控制電路
US9459835B2 (en) * 2014-01-15 2016-10-04 HGST Netherlands B.V. Random number generator by superparamagnetism
US9270455B1 (en) * 2014-02-14 2016-02-23 Google Inc. CPU assisted seeding of a random number generator in an externally provable fashion
EP3114690B1 (en) * 2014-03-07 2020-02-12 Intel Corporation Physically unclonable function circuit using resistive memory device
US9529570B2 (en) 2014-03-19 2016-12-27 Seagate Technology Llc Random number generation using pulsed programming parameters
JP6380804B2 (ja) * 2014-04-16 2018-08-29 パナソニックIpマネジメント株式会社 乱数処理装置および乱数処理方法
KR102368507B1 (ko) 2014-05-09 2022-02-25 퀀텀 넘버스 코포레이션 난수 생성 방법 및 난수 생성기
WO2015172352A1 (en) 2014-05-15 2015-11-19 Seagate Technology Llc Storage device tampering detection
US10317480B2 (en) * 2014-10-15 2019-06-11 Infineon Technologies Ag Magneto resistive device
US9846569B1 (en) 2014-11-17 2017-12-19 Seagate Technology Llc Random values based on a random components of noise
US9489999B2 (en) 2014-11-26 2016-11-08 Qualcomm Incorporated Magnetic tunnel junction resistance comparison based physical unclonable function
JP6423270B2 (ja) * 2014-12-26 2018-11-14 株式会社メガチップス 乱数生成装置及び乱数生成方法
DE102015102363A1 (de) * 2015-02-19 2016-08-25 Infineon Technologies Ag Anordnung und verfahren zum überprüfen der entropie einer zufallszahlenfolge
EP3062215B1 (en) * 2015-02-24 2018-04-04 Crocus Technology S.A. Mram-based programmable magnetic device for generating random numbers
KR102416979B1 (ko) * 2015-06-17 2022-07-05 인텔 코포레이션 난수 발생기
JP6617924B2 (ja) * 2015-06-18 2019-12-11 パナソニックIpマネジメント株式会社 耐タンパ性を有する不揮発性メモリ装置および集積回路カード、不揮発性メモリ装置の認証方法、個体識別情報生成方法
JP6587188B2 (ja) * 2015-06-18 2019-10-09 パナソニックIpマネジメント株式会社 乱数処理装置、集積回路カード、および乱数処理方法
US9813049B2 (en) * 2015-08-12 2017-11-07 Qualcomm Incorporated Comparator including a magnetic tunnel junction (MTJ) device and a transistor
US10521618B1 (en) * 2015-10-20 2019-12-31 Marvell International Ltd. Methods and apparatus for secure root key provisioning
EP3182638B1 (en) * 2015-12-18 2019-12-25 ID Quantique S.A. Apparatus and method for adding an entropy source to quantum key distribution systems
DE102016207451A1 (de) * 2016-04-29 2017-11-02 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Erzeugen von Zufallsbits
CN106168896B (zh) * 2016-07-05 2018-10-09 北京大学深圳研究生院 一种真随机数发生器
US10217498B2 (en) * 2016-09-12 2019-02-26 Qualcomm Incorporated Techniques for preventing tampering with PROM settings
CN108399328B (zh) * 2017-02-08 2021-04-27 新唐科技股份有限公司 系统存储器内容认证设备及方法
US10536266B2 (en) 2017-05-02 2020-01-14 Seagate Technology Llc Cryptographically securing entropy for later use
TWI634478B (zh) * 2017-07-18 2018-09-01 展達通訊股份有限公司 真亂數產生系統及其真亂數產生之方法
US10965456B2 (en) 2017-09-25 2021-03-30 The Boeing Company Systems and methods for facilitating data encryption and decryption and erasing of associated information
US10924263B2 (en) 2017-09-25 2021-02-16 The Boeing Company Systems and methods for facilitating iterative key generation and data encryption and decryption
US10860403B2 (en) * 2017-09-25 2020-12-08 The Boeing Company Systems and methods for facilitating truly random bit generation
US11036472B2 (en) 2017-11-08 2021-06-15 Samsung Electronics Co., Ltd. Random number generator generating random number by using at least two algorithms, and security device comprising the random number generator
US11082432B2 (en) * 2017-12-05 2021-08-03 Intel Corporation Methods and apparatus to support reliable digital communications without integrity metadata
US10878897B2 (en) * 2018-01-04 2020-12-29 Silicon Storage Technology, Inc. System and method for storing and retrieving multibit data in non-volatile memory using current multipliers
US10168996B1 (en) 2018-01-15 2019-01-01 Quantum Numbers Corp. Method and system for generating a random bit sample
US10698658B2 (en) * 2018-02-12 2020-06-30 Seagate Technology Llc Random number generation from spin torque oscillator noise
CN108345446B (zh) * 2018-03-08 2021-08-10 太原理工大学 一种高速随机数产生方法及装置
EP3544014B1 (en) 2018-03-20 2020-07-15 Crocus Technology S.A. Mlu-based magnetic device having an authentication and physical unclonable function and authentication method using said mlu device
US10311930B1 (en) * 2018-04-05 2019-06-04 Qualcomm Incorporated One-time programming (OTP) magneto-resistive random access memory (MRAM) bit cells in a physically unclonable function (PUF) memory in breakdown to a memory state from a previous read operation to provide PUF operations
CN108509180B (zh) * 2018-04-13 2021-04-06 太原理工大学 一种基于二输入异或门低功耗随机数产生装置
US10732933B2 (en) * 2018-05-10 2020-08-04 Sandisk Technologies Llc Generating random bitstreams with magnetic tunnel junctions
KR102483374B1 (ko) 2018-05-11 2022-12-30 한국전자통신연구원 양자 난수 생성 장치 및 방법
US10515697B1 (en) * 2018-06-29 2019-12-24 Intel Corporation Apparatuses and methods to control operations performed on resistive memory cells
US11416416B2 (en) * 2019-01-13 2022-08-16 Ememory Technology Inc. Random code generator with non-volatile memory
KR102182232B1 (ko) * 2019-01-17 2020-11-24 한양대학교 산학협력단 자기터널접합구조체 기반 연산 소자
US11023209B2 (en) * 2019-01-25 2021-06-01 International Business Machines Corporation On-chip hardware random number generator
KR102191305B1 (ko) * 2019-07-09 2020-12-15 국민대학교산학협력단 경량 엔트로피 관리 장치 및 방법
US11521664B2 (en) * 2019-08-30 2022-12-06 Taiwan Semiconductor Manufacturing Company, Ltd. Memory device with tunable probabilistic state
DE102020119273A1 (de) 2019-08-30 2021-03-04 Taiwan Semiconductor Manufacturing Co. Ltd. Speichervorrichtung mit abstimmbarem probabilistischem Zustand
JP7553293B2 (ja) 2019-10-18 2024-09-18 国立大学法人東北大学 乱数生成器
US11573768B2 (en) * 2020-02-11 2023-02-07 Taiwan Semiconductor Manufacturing Company, Ltd. Memory device and method for generating random bit stream with configurable ratio of bit values
KR102495632B1 (ko) * 2020-11-26 2023-02-06 포항공과대학교 산학협력단 아날로그 신호를 확률 신호로 변환하는 역치 변환 소자 기반의 아날로그-확률 변환 장치
CN112835556B (zh) * 2021-01-28 2024-01-16 广东省大湾区集成电路与系统应用研究院 一种基于mtj的真随机数发生器
US20220343030A1 (en) * 2021-04-26 2022-10-27 Everspin Technologies, Inc. Cryptographic mram and methods thereof
KR102690367B1 (ko) * 2021-08-19 2024-07-31 한성대학교 산학협력단 의사 난수 생성기를 학습시키는 방법, IoT 디바이스에 난수를 제공하는 방법 및 의사 난수 생성기를 구비하는 전자장치
CN114461178A (zh) * 2022-02-15 2022-05-10 清华大学 随机数生成器、电子装置和操作方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6246970B1 (en) * 1998-07-10 2001-06-12 Silverbrook Research Pty Ltd Method for making a chip tamper-resistant
US6480072B1 (en) 2000-04-18 2002-11-12 Advanced Micro Devices, Inc. Method and apparatus for generating random numbers
US7571199B1 (en) 2000-11-15 2009-08-04 Microsoft Corporation Method and apparatus for generating random numbers
US8166296B2 (en) 2004-10-20 2012-04-24 Broadcom Corporation User authentication system
EP1686458B1 (en) 2005-01-28 2008-07-23 Infineon Technologies AG Oscillator-based random number generator
USRE44097E1 (en) 2005-07-22 2013-03-19 Psigenics Corporation Device and method for responding to influences of mind
DE102006030888B4 (de) * 2006-07-04 2009-06-25 Infineon Technologies Ag Verfahren und Vorrichtung zum Erzeugen eines Startwertes für einen Pseudo-Zufallszahlengenerator
TWI393415B (zh) 2006-10-12 2013-04-11 Interdigital Tech Corp 使用廣播的隨機雜訊來增強無線裝置的加密能力的方法和系統
US7728622B2 (en) 2007-03-29 2010-06-01 Qualcomm Incorporated Software programmable logic using spin transfer torque magnetoresistive random access memory
JP4625936B2 (ja) 2007-06-12 2011-02-02 独立行政法人産業技術総合研究所 乱数発生器
US8495118B2 (en) 2008-10-30 2013-07-23 Seagate Technology Llc Tunable random bit generator with magnetic tunnel junction
US20100174766A1 (en) 2009-01-06 2010-07-08 Seagate Technology Llc Magnetic Precession Based True Random Number Generator
US8886692B2 (en) * 2009-02-09 2014-11-11 Samsung Electronics Co., Ltd. Apparatus for generating random number
JP5100677B2 (ja) 2009-02-09 2012-12-19 株式会社東芝 乱数発生器および乱数発生方法
US8526252B2 (en) 2009-03-17 2013-09-03 Seagate Technology Llc Quiescent testing of non-volatile memory array
JP2011013901A (ja) 2009-07-01 2011-01-20 Sony Corp 乱数発生装置
CN101620523B (zh) * 2009-07-29 2011-04-13 深圳国微技术有限公司 一种随机数发生器电路
JP2011113136A (ja) 2009-11-24 2011-06-09 Sony Corp 乱数発生装置、乱数発生方法及びセキュリティチップ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180102068A (ko) * 2014-04-28 2018-09-14 아이디 퀀티크 에스.에이. 광학 기반 양자 난수 생성을 위한 방법 및 디바이스
KR20220073126A (ko) * 2020-11-26 2022-06-03 한국과학기술연구원 확률론적 자기터널접합구조를 이용한 랜덤 넘버 발생기

Also Published As

Publication number Publication date
CN103890712A (zh) 2014-06-25
TW201319930A (zh) 2013-05-16
JP5826400B2 (ja) 2015-12-02
KR101617832B1 (ko) 2016-05-03
US20170010864A1 (en) 2017-01-12
WO2013043543A2 (en) 2013-03-28
EP2758865B1 (en) 2017-10-18
JP2014531669A (ja) 2014-11-27
US20130073598A1 (en) 2013-03-21
WO2013043543A3 (en) 2013-06-06
EP2758865A2 (en) 2014-07-30
CN103890712B (zh) 2017-02-15
US9189201B2 (en) 2015-11-17
IN2014CN02071A (ko) 2015-05-29

Similar Documents

Publication Publication Date Title
KR101617832B1 (ko) 난수 생성기를 위한 자기―저항 엘리먼트를 갖는 엔트로피 소스
Zhang et al. Highly reliable memory-based physical unclonable function using spin-transfer torque MRAM
US11856116B2 (en) Method and apparatus for protecting embedded software
Rührmair et al. PUFs at a glance
EP2933720B1 (en) Random number processing apparatus
US8782396B2 (en) Authentication with physical unclonable functions
Singh et al. Energy efficient and side-channel secure cryptographic hardware for IoT-edge nodes
US20220318436A1 (en) Integrated circuit for security of a physically unclonable function and a device including the same
Gao et al. Concealable physically unclonable function chip with a memristor array
US10579339B2 (en) Random number generator that includes physically unclonable circuits
Zhao et al. A 108 F 2/Bit fully reconfigurable RRAM PUF based on truly random dynamic entropy of jitter noise
Wu et al. Flam-puf: A response–feedback-based lightweight anti-machine-learning-attack puf
Mahmoodi et al. Experimental demonstrations of security primitives with nonvolatile memories
Zalivaka et al. FPGA implementation of modeling attack resistant arbiter PUF with enhanced reliability
Tseng et al. ReRAM-based pseudo-true random number generator With high throughput and unpredictability characteristics
Yang et al. The applications of NVM technology in hardware security
Carboni et al. Applications of resistive switching memory as hardware security primitive
Du et al. Intrinsic MRAM Properties Enable Security Circuits
Lee et al. Full memory encryption with magnetoelectric in-memory computing
Huan et al. Intrinsically secure non-volatile memory using ReRAM devices
Ma et al. A new distinguishing attack on Grain-v1 with 111 initialization rounds
Rios Design and Implementation of Memory Physically Unclonable Functions on Low-Power Devices
Jain et al. Enhancing True Random Number Generation in MRAM Devices Through Response Adjustment
Uddin A PUF based Lightweight Hardware Security Architecture for IoT
Moka A Physical-Unclonable-Function Circuit based on Cells Composed of Diode-Connected Transistors

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee