KR20070121642A - Secure memory card with life cycle phases - Google Patents

Secure memory card with life cycle phases Download PDF

Info

Publication number
KR20070121642A
KR20070121642A KR1020077018143A KR20077018143A KR20070121642A KR 20070121642 A KR20070121642 A KR 20070121642A KR 1020077018143 A KR1020077018143 A KR 1020077018143A KR 20077018143 A KR20077018143 A KR 20077018143A KR 20070121642 A KR20070121642 A KR 20070121642A
Authority
KR
South Korea
Prior art keywords
card
state
key
memory
memory card
Prior art date
Application number
KR1020077018143A
Other languages
Korean (ko)
Other versions
KR100972540B1 (en
Inventor
마이클 홀트즈만
바루츠 보리스 코헨
론 바질라이
하가이 바르-엘
다비드 데쳐
Original Assignee
쌘디스크 코포레이션
디스크레틱스 테크놀로지스 엘티디.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/317,862 external-priority patent/US8321686B2/en
Priority claimed from US11/317,390 external-priority patent/US8108691B2/en
Application filed by 쌘디스크 코포레이션, 디스크레틱스 테크놀로지스 엘티디. filed Critical 쌘디스크 코포레이션
Publication of KR20070121642A publication Critical patent/KR20070121642A/en
Application granted granted Critical
Publication of KR100972540B1 publication Critical patent/KR100972540B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Storage Device Security (AREA)
  • Credit Cards Or The Like (AREA)

Abstract

A secure memory card with encryption capabilities comprises various life cycle states that allow for testing of the hardware and software of the card in certain of the states. The testing mechanisms are disabled in certain other of the states thus closing potential back doors to secure data and cryptographic keys. Controlled availability and generation of the keys required for encryption and decryption of data is such that even if back doors are accessed that previously encrypted data is impossible to decrypt and thus worthless even if a back door is found and maliciously pried open.

Description

라이프 사이클 단계들을 가진 보안 메모리 카드{SECURE MEMORY CARD WITH LIFE CYCLE PHASES}SECURE MEMORY CARD WITH LIFE CYCLE PHASES

본 발명은 일반적으로 메모리 카드들 및 인크립션(encryption)에 관한 것이고, 특히 카드의 검사 메카니즘들을 통하여 보안 데이터 및 키들에 대한 액세스를 제거하는 것에 관한 것이다.The present invention relates generally to memory cards and encryption, and in particular to removing access to secure data and keys through the card's inspection mechanisms.

예전에 일반적으로 스마트 카드라 불리는 지능형 메모리 카드는 개발되었고 신분확인 및 지불 수단의 형태로서 시장에서 수용되었다. 스마트 카드는 사용자의 신분 데이터를 저장하고 계약 관련 데이터를 저장하기 위한 작은 양의 메모리를 포함한다. 스마트 카드는 또한 종종 칩 카드라 하고 국민 신분증 같은 다양한 것들을 위하여 일본에서 사용되고 신용 카드 또는 데빗 카드(debit card)의 형태로서 다양한 장소들에서 사용된다. 신분 도용 및 다른 금융 사기를 방지하기 위하여, 다양한 칩 설계들 및 인크립션 방법들은 카드들 및 상기 카드들을 이용하는 시스템들에서 사용되었다.In the past, intelligent memory cards, commonly referred to as smart cards, were developed and accepted in the market as forms of identification and payment. The smart card includes a small amount of memory for storing user identity data and for storing contract related data. Smart cards are also often referred to as chip cards and used in Japan for various things such as national ID cards and in various places in the form of credit cards or debit cards. In order to prevent identity theft and other financial fraud, various chip designs and encryption methods have been used in cards and systems using the cards.

임의의 타입의 보안 메모리 카드를 설계 및 제조시, 두 개의 맞서는 관심사가 있다. 하나의 관심사는 카드의 보안을 최대화하고, 다른 관심사는 카드의 신뢰성을 최대화하는 것이다. 카드의 신뢰성을 최대화하기 위하여, 제조소에서 선적되 기 전에 다양한 제조 스테이지들에서 및 몇몇 경우들에서 심지어 결함 분석을 수행하기 위하여 제조소에서 떠난 후 카드의 소프트웨어 및 하드웨어를 검사할 수 있는 것은 중요하다. 검사는 카드의 하드웨어 및 소프트웨어 모두를 검사하기 위하여 칩상의 검사 또는 접촉 패드들을 통하여 신호들의 입력 및 출력을 포함할 수 있다. 이들 검사 루틴들 및 검사 패드들은 품질 제어를 보장하기 위하여 필요하지만 카드의 보안 데이터, 알고리듬들, 및 키들에 대한 잠재적인 약점 또는 "백도어"가 발생한다. 따라서, 신뢰성을 최대화하는 것과 및 보안성을 최대화하는 것 사이(필요한 검사)의 어느 정도의 타협이 항상 존재한다. 다른 방법들은 검사가 완료된 후 "백도어"를 차단하기 위하여 제안되었다. 그러나, 다양한 이유들로 인해 데이터에 대한 이전 해결책들은 경제적 및 기술적 단점들을 각각 가진다.When designing and manufacturing any type of secure memory card, there are two opposing concerns. One concern is to maximize the security of the card and the other concern is to maximize the reliability of the card. In order to maximize the reliability of the card, it is important to be able to inspect the card's software and hardware at various manufacturing stages and in some cases even after leaving the factory to perform defect analysis before it is shipped from the factory. The inspection may include input and output of signals via inspection or contact pads on a chip to inspect both the hardware and software of the card. These inspection routines and inspection pads are necessary to ensure quality control, but a potential weakness or “backdoor” for the card's security data, algorithms, and keys arises. Thus, there is always some compromise between maximizing reliability and maximizing security (the necessary checks). Other methods have been proposed to block the "backdoor" after the test is complete. However, for various reasons, previous solutions to data each have economic and technical disadvantages.

상기된 스마트 카드의 생성시 사용되는 것으로 믿어지는 하나의 방법에서, 카드의 다이는 웨이퍼로부터 메모리 다이의 개별화 전에 검사된다. 특정 다이에 대한 검사 패드들은 웨이퍼의 인접한 다이상에 배치되고, 개별화 처리는 검사 후 인접한 다이의 모든 회로로부터 검사 패드들을 절단한다. 그러므로, 개별화된 다이상에 있는 임의의 검사 패드들은 완전히 분리되고 최종 메모리 카드의 보안 데이터에 대한 잠재적 백 도어로서 차단된다. 그러나, 검사 패드들을 완전하게 제거하는 것이 항상 실제적이거나 바람직하지는 않다. 예를들어, 쓸모있는 검사 패드들의 부족은 예를들어 잠재적인 결함 분석 방법들을 제한하는 메모리 검사를 바탕으로 하는 어느 정도의 추후 하드웨어를 배제시킨다. In one method believed to be used in the generation of the smart card described above, the die of the card is inspected prior to individualization of the memory die from the wafer. Inspection pads for a particular die are placed on adjacent die of the wafer, and the individualization process cuts the inspection pads from all circuitry of the adjacent die after inspection. Therefore, any test pads on an individualized die are completely separated and blocked as a potential back door to secure data of the final memory card. However, it is not always practical or desirable to completely remove the test pads. For example, the lack of useful test pads precludes some later hardware, for example based on memory testing, which limits potential defect analysis methods.

이 방법이 통상적으로 신분 확인 및 재정 데이터를 홀딩하기 위하여 필요한 작은 양의 메모리만을 가지는 스마트 카드에 대해서는 바람직할 수 있지만, 사진들 및 음악 같은 다수의 큰 파이들을 저장하기 위하여 사용되는 대용량 메모리 카드에 사용되는 복잡한 보안 루틴들 및 비교적 대용량의 메모리를 검사하는데는 불충분하다. 이들 대용량 메모리 카드들의 몇몇 예들은 컴팩트 플래시 카드, MMC 카드, 및 SD 카드이다. 디지털 콘텐트 및 연관된 저작권 문제들의 확산은 보안의 중요성을 상승시키고, 동시에 카드의 검사 및 신뢰성은 가장 중요하게 남는다. 보안 대용량 메모리 카드들을 제조, 검사 및 동작시키기 위한 보다 포괄적이고 적응성 있는 시스템은 요구되고 이하에 기술될 본 발명에 의해 제공된다.Although this method may be desirable for smart cards that typically have only a small amount of memory needed to hold identification and financial data, it is used for large memory cards used to store many large pies such as photos and music. Insufficient for checking complex security routines and relatively large amounts of memory. Some examples of these mass memory cards are compact flash cards, MMC cards, and SD cards. The proliferation of digital content and associated copyright issues raises the importance of security, while at the same time inspection and reliability of cards remain the most important. A more comprehensive and adaptive system for manufacturing, inspecting and operating secure mass memory cards is required and provided by the present invention which will be described below.

다른 중요한 측면은 비용이다. 비휘발성 메모리, 논리, 및 휘발성 메모리 같은 몇몇 다른 기술들은 단일 집적 회로 다이(칩)상에 제조될 수 있다. 그러나, 하나의 다이상에 다른 기술들을 혼합하는 것은 생산 비용을 크게 증가시킨다. 비용이 가장 큰 추진력인 경쟁 환경에서, 하나의 다이상에 제공되는 다른 기술들의 양을 제한하는 것은 매우 요구된다. 그러나, 다수의 다이를 사용하는 것은 민감한 정보가 최종 제품에서 하나의 다이로부터 다른 다이로 통과하여야 하는 것을 의미한다. 이것은 만약 적당한 예방책들이 사용되지 않으면 해커가 이용할 수 있는 다른 잠재적 약점이다. Another important aspect is cost. Some other techniques, such as nonvolatile memory, logic, and volatile memory, can be fabricated on a single integrated circuit die (chip). However, mixing different technologies on one die greatly increases production costs. In a competitive environment where cost is the most driving force, it is highly desirable to limit the amount of other technologies provided on one die. However, using multiple dies means that sensitive information must pass from one die to another in the final product. This is another potential weakness that hackers can exploit if proper precautions are not used.

특히, 비휘발성 메모리 비트들은 동일한 다이내에서 논리와 혼합하기 위하여 비용이 많이 든다. 스마트 카드는 보안을 최대화하는 방식인 스마트 카드에서 운용하는 논리와 동일한 다이에 데이터 저장을 위하여 비휘발성 메모리를 사용한다. 그러나, 지금 본 발명에서 바람직한 메모리 카드는 매우 큰 음악, 사진, 영화 및 다른 사용자 파일들을 저장하여야 한다. 따라서, 대량의 정보(2005년에 몇 기가바이트 정도 및 그 이상)를 저장할 수 있는 단일 집적 회로 다이 메모리 카드를 제조하는 것은 매우 비싸고, 다중 다이를 사용하는 보안 시스템을 개발하는 것이 필요하다. 특히, 제어기 다이로부터 분리되고, 어셈블리 전후 완전히 검사될 수 있고, 검사 메카니즘들을 통한 공격들에 견딜 수 있는 하나 또는 그 이상의 이산(경제적) 플래시 메모리 다이를 사용하는 보안 시스템(인크립션 및 디크립션 이용)을 생성하는 것은 매우 바람직하다.In particular, nonvolatile memory bits are expensive to mix with logic within the same die. Smart cards use nonvolatile memory to store data on the same die as the logic that smart cards operate in, which maximizes security. However, a memory card now preferred in the present invention must store very large music, photos, movies and other user files. Therefore, it is very expensive to manufacture a single integrated circuit die memory card that can store a large amount of information (a few gigabytes and more in 2005), and it is necessary to develop a security system using multiple dies. In particular, a security system (using encryption and decryption) that uses one or more discrete (economical) flash memory die that can be separated from the controller die, fully inspected before and after assembly, and can withstand attacks through inspection mechanisms. It is very desirable to produce.

오늘날의 디지털 장치들에 의해 요구되는 제어기 기능 및 대용량의 저장 능력 모두를 가지는 단일 칩을 사용하는 것이 과도하게 비싸고 비례축소 문제들을 제공하기 때문에, 다른 시스템은 개발되었다. 단일 칩 솔루션에서 보안은 검사 메카니즘들, 인크립션 키들 및 인크립트된 콘텐트에 액세스하기 어렵게 하는 유일한 칩 설계로 달성될 수 있다. 그러나, 콘텐트가 독립된 메모리 칩으로부터 인크립션이 발생하는 제어기 칩으로 통과하는 다중 칩 설계에서, 인크립션 키들 및 인크립트된 콘텐트에 대한 액세스를 보호하는데 특정한 주의가 요구된다. 게다가, 어셈블리된 시스템의 검사를 허용하기 위하여 최종 어셈블리에 검사 패드들을 가지는 시스템에서, 인크립트된 키들 및 콘텐트에 대한 인증되지 않은 액세스를 위한 백 도어로서 사용할 수 있는 소프트웨어 및 하드웨어의 임의의 메카니즘들에 대한 특정한 주의가 요구되어야 한다. Other systems have been developed because using a single chip with both the controller function and the high capacity storage capability required by today's digital devices presents excessively expensive and scaling problems. Security in a single chip solution can be achieved with a unique chip design that makes it difficult to access inspection mechanisms, encryption keys and encrypted content. However, in a multi-chip design where content passes from an independent memory chip to a controller chip where encryption occurs, particular care is required to protect access to the encryption keys and the encrypted content. In addition, any system of software and hardware that can be used as a back door for unauthorized access to encrypted keys and content, in a system with inspection pads in the final assembly to allow inspection of the assembled system. Particular attention should be paid to

본 발명은 카드의 라이프 동안 진입되고 통과되는 다수의 라이프 사이클 단계들을 가진다. 상기 단계에 따라, 인크립션 엔진을 인에이블하거나 디스에이블하는 카드의 논리는 하드웨어(웨이퍼 개별화 및 카드 어셈블리 전 및 후) 및 소프트웨어 검사 메카니즘들에 대한 액세스를 제어하고, 키 생성을 제어한다. 이들 단계들은 제조 전후(검사 패드들이 제거된 스마트 카드와 달리) 카드의 하드웨어 및 소프트웨어 양쪽이 완전히 검사되게 할뿐 아니라, 카드가 보안 단계에 있을 때, 즉 사용자에게 선적될 때에 카드가 위치하는 동작 단계에 있을 때 인크립트된 키 및 인크립트된 콘텐트에 액세스하는 것을 실제로 불가능하게 한다. 그러므로, 본 발명은 검사될 수 있는 메모리 카드를 제공하지만 카드내에 보호된 데이터에 대한 인증되지 않은 액세스에 저항한다.The present invention has a number of life cycle steps that are entered and passed during the life of the card. In accordance with the above steps, the logic of the card that enables or disables the encryption engine controls access to hardware (before and after wafer personalization and card assembly) and software inspection mechanisms, and controls key generation. These steps not only allow both the hardware and software of the card to be fully inspected before and after manufacturing (unlike smart cards with the test pads removed), but also when the card is in the secure phase, ie when shipped to the user. It actually makes it impossible to access the encrypted key and the encrypted content when in. Therefore, the present invention provides a memory card that can be inspected but resists unauthorized access to protected data within the card.

게다가, 보안 대용량 저장 메모리 카드들을 제조, 검사 및 동작시키기 위한 보다 포괄적이고 융통성 있는 시스템은 요구되고 이후에 기술될 본 발명에 의해 제공된다.In addition, a more comprehensive and flexible system for manufacturing, inspecting and operating secure mass storage memory cards is required and provided by the present invention which will be described later.

본 발명의 부가적인 측면들, 장점들 및 특징들은 예시적인 실시예의 다음 설명에 포함되고, 상기 설명은 첨부 도면들과 관련하여 취해지고, 유사 번호들은 도면들을 통하여 동일한 특징부를 기술하기 위하여 사용된다. 모든 특허들, 특허 출원들, 논설들 및 여기에 참조된 다른 공개물들은 모든 목적을 위하여 전체적으로 참조에 의해 여기에 통합된다.Additional aspects, advantages, and features of the invention are included in the following description of exemplary embodiments, the description being taken in conjunction with the accompanying drawings, wherein like numbers are used to describe the same features throughout the drawings. All patents, patent applications, articles and other publications referenced herein are hereby incorporated by reference in their entirety for all purposes.

도 1a는 본 발명의 일실시예에 따른 시스템(10)의 개략도이다.1A is a schematic diagram of a system 10 in accordance with one embodiment of the present invention.

도 1b는 시스템(10)의 다른 실시예의 개략도이다.1B is a schematic diagram of another embodiment of a system 10.

도 2a는 본 발명의 일실시예에서 다양한 라이프 사이클 단계들을 도시하는 흐름도이다.2A is a flow diagram illustrating various life cycle steps in one embodiment of the invention.

도 2b는 다양한 라이프 사이클 단계들의 표이다.2B is a table of the various life cycle stages.

도 3은 부트 업(boot up) 처리 및 라이프 사이클 단계들을 도시하는 흐름도이다.3 is a flow chart illustrating boot up processing and life cycle steps.

메모리 시스템 아키텍쳐Memory system architecture

본 발명의 다양한 측면들이 실행되는 예시적인 메모리 시스템은 도 1a의 블록도로 도시된다. 도 1a에 도시된 바와 같이, 메모리 시스템(10)은 중앙 처리 유니트(CPU) 또는 제어기(12), 버퍼 관리 유니트(BMU)(14), 호스트 인터페이스 모듈(HIM)(16), 플래시 인터페이스 모듈(FIM)(18), 플래시 메모리(20) 및 주변 액세스 모듈(22)을 포함한다. 메모리 시스템(10)은 호스트 인터페이스 버스(26) 및 포트(26a)를 통하여 호스트 장치(24)와 통신한다. NAND 타입일 수 있는 플래시 메모리(20)는 호스트 장치(24)용 데이터 저장소를 제공한다. CPU(12)용 소프트웨어 코드는 또한 플래시 메모리(20)에 저장될 수 있다. FIM(18)은 플래시 인터페이스 버스(28) 및 몇몇 예들에서 만약 플래시 메모리(20)가 탈착 가능한 부품이면 포트(도시되지 않음)를 통하여 플래시 메모리(20)에 접속한다. HIM(16)은 디지털 카메라, 퍼스널 컴퓨터, 퍼스널 디지털 어시스탄트(PDA) 및 MP-3 플레이어들, 셀룰러 전화 또는 다른 디지털 장치들 같은 호스트 시스템에 접속하기에 적당하다. 주변 액세스 모듈(22)은 CPU(12)와 통신하기 위한 FIM, HIM 및 BMU 같은 적당한 제어기 모듈 을 선택한다. 일실시예에서, 점선 박스내의 시스템(10)의 모든 부품들은 메모리 카드 같은 단일 유니트에 밀봉되고 바람직하게 카드에 밀봉될 수 있다.An exemplary memory system in which the various aspects of the invention are implemented is shown in the block diagram of FIG. 1A. As shown in FIG. 1A, the memory system 10 includes a central processing unit (CPU) or controller 12, a buffer management unit (BMU) 14, a host interface module (HIM) 16, and a flash interface module ( FIM) 18, flash memory 20, and peripheral access module 22. The memory system 10 communicates with a host device 24 via a host interface bus 26 and a port 26a. Flash memory 20, which may be of NAND type, provides data storage for host device 24. Software code for the CPU 12 may also be stored in the flash memory 20. FIM 18 connects to flash memory 20 through a port (not shown) in flash interface bus 28 and in some examples if flash memory 20 is a removable component. The HIM 16 is suitable for connecting to a host system such as digital cameras, personal computers, personal digital assistants (PDAs) and MP-3 players, cellular telephones or other digital devices. Peripheral access module 22 selects appropriate controller modules, such as FIM, HIM, and BMU, to communicate with CPU 12. In one embodiment, all the components of the system 10 in the dashed box can be sealed in a single unit such as a memory card and preferably sealed in the card.

버퍼 관리 유니트(14)는 호스트 다이렉트 메모리 액세스 유니트(HDMA)(32), 플래시 다이렉트 메모리 액세스 유니트(FDMA)(34), 조정자(36), CPU 버스 조정자(35), 레지스터들(33), 버퍼 랜덤 액세스 메모리(BRAM)(38), 및 인크립션 엔진(40)이라 불리는 크립토 엔진(40)을 포함한다. 조정자(36)는 단지 하나의 마스터 또는 개시기(HDMA 32, FDMA 34 또는 CPU 12일 수 있음) 만이 언제든 활성화될 수 있도록 공유된 버스 조정자이고 슬레이브 또는 타켓은 BRAM(38)이다. 조정자는 적당한 개시자 요구자를 BRAM(38)에 채널링하기 위하여 응답한다. HDMA(32) 및 FDMA(34)는 HIM(16), FIM(18) 및 BRAM(38) 또는 RAM(11) 사이에 전달되는 데이터에 응답할 수 있다. CPU 버스 조정자(35)는 크립토 엔진을 바이패스하는 것이 목표될 때 같은 특정 상황들에 사용되는 시스템 버스(15)를 통하여 클립토 엔진(40) 및 플래시 DMA(34)로부터 RAM(11)으로 직접적인 데이터 전달을 허용한다. HDMA(32) 및 FDMA(34)의 동작은 일반적이고 여기에 상세히 기술될 필요가 없다. BRAM(38)은 호스트 장치(24) 및 플래시 메모리(20) 사이에서 통과되는 데이터를 저장하기 위하여 사용된다. HDMA(32) 및 FDMA(34)는 HIM(16)/FIM(18) 및 BRAM(38) 또는 CPU RAM(12a) 사이에서 데이터를 전달하고 섹터 완료를 나타내기 위하여 응답할 수 있다.The buffer management unit 14 includes a host direct memory access unit (HDMA) 32, a flash direct memory access unit (FDMA) 34, a coordinator 36, a CPU bus coordinator 35, registers 33, a buffer A random access memory (BRAM) 38, and a crypto engine 40 called an encryption engine 40. The coordinator 36 is a shared bus coordinator and the slave or target is the BRAM 38 so that only one master or initiator (which may be HDMA 32, FDMA 34 or CPU 12) can be activated at any time. The coordinator responds to channel the appropriate initiator requester to the BRAM 38. HDMA 32 and FDMA 34 may respond to data transferred between HIM 16, FIM 18 and BRAM 38 or RAM 11. The CPU bus coordinator 35 directly from the clipto engine 40 and the flash DMA 34 to the RAM 11 via the system bus 15 used in certain situations such as when bypassing the crypto engine is desired. Allow data transfer. The operation of HDMA 32 and FDMA 34 is generic and need not be described in detail herein. The BRAM 38 is used to store data passed between the host device 24 and the flash memory 20. HDMA 32 and FDMA 34 may transfer data between HIM 16 / FIM 18 and BRAM 38 or CPU RAM 12a and respond to indicate sector completion.

플래시 메모리(20)로부터의 데이터가 호스트 장치(24)에 의해 판독될 때, 메모리(20)내 인크립트된 데이터는 버스(28), FIM(18), FDMA(34) 및 크립토 엔진(40) 을 통하여 인출되고, 여기서 인크립트된 데이터는 디크립트되고 BRAM(38)에 저장된다. 그 다음 디크립트된 데이터는 HDMA(32), HIM(16), 버스(26)를 통하여 BRAM(38)으로부터 호스트 장치(24)로 보내진다. BRAM(38)으로부터 인출된 데이터는 호스트 장치(24)에 보내진 데이터가 비교하여 다른 키 및/또는 알고리듬에 의해 인크립트되어 메모리(20)에 저장된 데이터가 인크립트되도록 HDMA(32)에 통과되기 전에 크립토 엔진(40)에 의해 다시 인크립트된다. 선택적으로, 데이터가 인증되지 않은 액세스에 공격받을 수 있게 되는 상기된 처리에서 BRAM(38)에 디크립트된 데이터를 저장하기 보다, 메모리(20)로부터의 데이터는 디크립트되고 BRAM(38)에 전송되기 전에 크립토 엔진(40)에 의해 다시 인크립트된다. BRAM(38)에서 인크립트된 데이터는 이전과 같이 호스트 장치(24)로 보내진다. 이것은 판독 처리 동안 데이터 스트림을 도시한다.When data from the flash memory 20 is read by the host device 24, the encrypted data in the memory 20 is transferred to the bus 28, the FIM 18, the FDMA 34, and the crypto engine 40. Is fetched through and the encrypted data is decrypted and stored in the BRAM 38. Decrypted data is then sent from the BRAM 38 to the host device 24 via the HDMA 32, HIM 16, and bus 26. The data retrieved from the BRAM 38 is compared before the data sent to the host device 24 is encrypted by different keys and / or algorithms and passed to the HDMA 32 so that the data stored in the memory 20 is encrypted. It is encrypted again by the crypto engine 40. Optionally, rather than storing the decrypted data in the BRAM 38 in the above process where the data may be attacked by unauthorized access, the data from the memory 20 is decrypted and sent to the BRAM 38. It is encrypted again by the crypto engine 40 before it is. The data encrypted in the BRAM 38 is sent to the host device 24 as before. This shows the data stream during the read process.

데이터가 호스트 장치(24)에 의해 메모리(20)에 기입될 대, 데이터 스트림의 방향은 역전된다. 예를들어 만약 인크립트되지 않은 데이터가 호스트 장치에 의해 버스(26), HIM(16), HDMA(32)를 통하여 크립토 엔진(40)에 전송되면, 상기 데이터는 BRAM(38)에 저장되기 전에 엔진(40)에 의해 인크립트될 수 있다. 선택적으로, 인크립트되지 않은 데이터는 BRAM(38)에 저장될 수 있다. 그 다음 데이터는 메모리(20)에 그 길을 따라 FDMA(34)에 전송되기 전에 인크립트된다.When data is written to the memory 20 by the host device 24, the direction of the data stream is reversed. For example, if unencrypted data is transmitted by the host device to the crypto engine 40 via the bus 26, HIM 16, HDMA 32, the data is not stored in the BRAM 38 before being stored. It can be encrypted by the engine 40. Optionally, unencrypted data may be stored in the BRAM 38. The data is then encrypted in memory 20 before being sent to FDMA 34 along its way.

라이프 사이클 단계들Life cycle stages

상기된 것과 같은 메모리 카드에서 실행될 때 특히 유용한 보안 시스템 또는 보안 동작 시스템은 예를들어 다른 단계들 또는 상태들을 가진다. 이들 단계들은 바람직하게 순차적으로 진입되어, 하나의 단계에서 다음 단계로 진행 후, 이전 단계는 다시 진입될 수 없다. 그러므로, 상기 단계들은 라이프 사이클 단계들이라 생각될 수 있다.Security systems or security operating systems that are particularly useful when executed on a memory card such as those described above have other steps or states, for example. These steps are preferably entered sequentially so that after proceeding from one step to the next, the previous step cannot be entered again. Therefore, the above steps can be thought of as life cycle steps.

상기 단계들을 상세히 기술하기 전에, 다른 시스템 레벨 다이어그램은 짧게 논의될 것이다. 도 1b는 시스템(10)의 다른 실시예를 도시한다. 시스템(10)의 특정 부품들만이 간략화 및 명확화를 위하여 도면에 도시된다. 메모리 시스템(10)은 하드웨어 검사 입력/출력(I/O)(54)이라 불리는 검사 패드들을 포함한다. 하드웨어 버스(HW 버스)(56)는 바람직하게 검사 패드들(54)에 접속된다. 이들 검사 패드들 및 HW 버스(56)는 시스템의 다양한 하드웨어 및 회로(도시되지 않음)에 접속되고 시스템(10)의 하드웨어 및 회로를 검사하기 위하여 사용된다. JTAG 버스(62)는 시스템 버스(15)(도 1A에 도시됨)에 접속되고 시스템(10) 외측으로부터의 제어기 펌웨어 및 드라이브 하드웨어 블록들을 대체하기 위하여 사용될 수 있다. 이것은 레지스터 판독/기입 동작들을 요구하는 하드웨어 검사에 사용된다. JTAG 버스(62)가 RAM 및 ROM에 액세스하기 때문에, 상기 버스는 시스템(10)의 펌웨어를 검사하기 위하여 사용된다. 호스트 버스(26)는 진단 명령들을 시스템(10)에 전송하기 위하여 사용되고 시스템의 펌웨어를 검사하기 위하여 사용된다. Before describing the steps in detail, other system level diagrams will be discussed briefly. 1B shows another embodiment of a system 10. Only certain components of system 10 are shown in the figures for simplicity and clarity. Memory system 10 includes test pads called hardware test input / output (I / O) 54. The hardware bus (HW bus) 56 is preferably connected to the test pads 54. These test pads and the HW bus 56 are connected to various hardware and circuits (not shown) of the system and used to inspect the hardware and circuitry of the system 10. JTAG bus 62 may be connected to system bus 15 (shown in FIG. 1A) and used to replace controller firmware and drive hardware blocks from outside of system 10. This is used for hardware checks that require register read / write operations. Since the JTAG bus 62 accesses RAM and ROM, the bus is used to check the firmware of the system 10. The host bus 26 is used to send diagnostic commands to the system 10 and to check the firmware of the system.

인크립션 엔진(40)의 NVM(50)은 또한 도시된다. NVM(50)내에는 라이프 사이클 상태(77) 및 비밀 키(99)에 대한 값이 저장된다. NVM 검사 포트(58)는 인크립션 엔진(40) 내에서 NVM을 검사하기 위하여 사용된다.The NVM 50 of the encryption engine 40 is also shown. In the NVM 50, values for the life cycle state 77 and the secret key 99 are stored. NVM inspection port 58 is used to inspect the NVM within the encryption engine 40.

상태 표시기 퓨즈(66)는 제품이 NVM 콘텐트에 의존하기 보다 NVM 상태 (110)(하기에 기술됨)에 있다는 것을 가리키기 위하여 사용된다. 그 이유는 제조 단계 동안 NVM에 저장된 초기 값의 신뢰성이 보장될 수 없기 때문이다. 그러므로, 표시기 같은 다른 보다 신뢰적인 표시기는 사용된다. 시스템은 퓨즈가 설정되면 상태(110) 내에 있는지를 결정할 것이다. 만약 시스템(10)이 리셋되면, 상태를 결정하기 위하여 NVM 라이프 사이클 상태(77)를 찾을 것이다. Status indicator fuse 66 is used to indicate that the product is in NVM state 110 (described below) rather than depending on the NVM content. This is because the reliability of the initial values stored in the NVM during the manufacturing phase cannot be guaranteed. Therefore, other more reliable indicators such as indicators are used. The system will determine if the fuse is in state 110. If system 10 is reset, it will look for NVM life cycle state 77 to determine the state.

도 2a는 다양한 상태들 및 상태들 사이의 전이 순서를 도시한다. 각각의 상태는 도 2b로서 재생되는 다음 테이블에 도시된 바와 같이 카드가 제조되기 전 및 후에 카드(또는 실행되는 다른 시스템)의 다른 행동 및 능력들을 정의한다.2A shows the various states and the order of transitions between them. Each state defines different behaviors and capabilities of the card (or other system executed) before and after the card is manufactured, as shown in the following table played back as FIG. 2B.

상태condition 키 생성Key generation NVM 검사 NVM inspection HW 검사HW inspection FW 검사FW inspection 크립토 엔진Crypto Engine 110110 재생된 모든 전력 상승All regenerated power rises EE EE EE DD 120120 일정한 배선Constant wiring DD EE EE EE 130130 한번 생성Once created DD EE EE EE 140140 한번 생성Once created DD DD DD EE 150150 -- DD DD DD EE 160160 재생된 모든 전력 상승All regenerated power rises DD EE EE EE 170170 -- DD EE EE DD

상태는 바람직하게 인크립션 엔진의 비휘발성 메모리내 32 비트 값으로서 저장된다. 상태들(120-170)을 나타내기 위하여 사용되는 다수의(≒109) 결합들중에 6개의 사전 할당된 값들이 있다. 다른 모든 값들은 상태(110)를 가리킨다. 이것은 정의된 값이 제조 동안 신뢰적으로 저장될 수 있는 것이 보장될 수 없고 그 후 제조, 어셈블리, 검사, 및 선적 동안 다양한 처리 동작들이 메모리에 임의로 저장된 값을 변경할 수 있기 때문이다. The state is preferably stored as a 32-bit value in non-volatile memory of the encryption engine. There are six pre-assigned values among the multiple (# 10 9 ) combinations used to represent states 120-170. All other values indicate state 110. This is because it can not be guaranteed that the defined values can be stored reliably during manufacturing and then various processing operations during the manufacturing, assembly, inspection, and shipping can change the values stored arbitrarily in memory.

키 값은 인크립션 엔진의 비휘발성 메모리에서 128 비트 필드로서 바람직하 게 저장된다. 키 값은 씨드(seeded)된 알고리듬에 의해 정상적으로 임의적으로 생성된다. 키의 재생은 키의 값을 잘 변화시킬 수 있지만, 이것은 (의사) 랜덤 수의 발생기가 실제로 연속적으로 동일한 값을 생성할 수 있기 때문에 보장될 수 없다. 그러나, 키를 변화시킨다는 용어는 비록 키의 값이 재생 동안 변화할 수 없다는 것이 이해될지라도 이런 애플리케이션에서 키의 재생과 상호교환적으로 사용된다. 말할 필요없이, 정보를 인크립트하기 위하여 사용된 키의 값은 중요하다. 동일한 키 값은 인크립션 및 디크립션 양쪽에 사용되어야 한다. 따라서, 만약 키 값이 시스템의 모든 전력 상승시 재생되면, 전력 상승 전에 인크립트된 데이터는 새로운 키로 디크립트될 수 없기 때문에 실제로 가치가 없다. 비록 데이터가 카드의 메모리에 물리적으로 제공되지만, 데이터는 그것을 언로크(unlock)하기 위한 적당한 키없이는 사용될 수 없다. 따라서, 만약 여하튼 카드가 하나의 상태로 돌아가게 해커가 관리하면, 다른 보안 상태(15)와는 달리, 해커는 임의의 우수한 정보를 얻지 못할 것이다. 상태들(110 및 160)에서, 새로운 키는 모든 전력 상승시 생성될 것이고 상태(150)에서 이전에 정보를 저장하기 위하여 사용된 키는 정보를 디크립트하기 위하여 사용될 수 없을 것이다. 상태들(170 및 110)에서 인크립션 엔진은 키 값에도 불구하고 간단하게 이용 가능하지 않다.The key value is preferably stored as a 128-bit field in the non-volatile memory of the encryption engine. Key values are normally randomly generated by a seeded algorithm. The reproduction of the key can change the value of the key well, but this cannot be guaranteed because a (pseudo) random number of generators can actually produce the same value continuously. However, the term changing keys is used interchangeably with the playback of keys in such applications even though it is understood that the value of the keys cannot change during playback. Needless to say, the value of the key used to encrypt the information is important. The same key value should be used for both encryption and decryption. Thus, if the key value is reproduced at every power up of the system, the data encrypted before the power up is not really valuable because it cannot be decrypted with the new key. Although the data is physically provided to the memory of the card, the data cannot be used without the proper key to unlock it. Thus, if the hacker manages to return the card to one state anyway, unlike the other security state 15, the hacker will not get any good information. In states 110 and 160, a new key will be generated at every power up and the key previously used to store information in state 150 may not be used to decrypt the information. In states 170 and 110, the encryption engine is simply not available despite the key value.

다른 보안 방법은 펌웨어 및 하드웨어 검사 메카니즘의 활용을 제한하는 것이다. 시스템은 메카니즘들을 인에이블 또는 디스에이블할 논리를 포함한다. 이전에 기술된 호스트 버스는 카드의 펌웨어를 검사하기 위하여 사용된 메카니즘들중 하나이다. 호스트는 펌웨어를 검사하기 위하여 호스트 버스상에 진단 명령들을 내 릴 수 있다. 하드웨어는 이들 명령들이 실행될 때 검사될 수 있다. 하드웨어는 하드웨어 버스뿐 아니라 JTAG 포트상에서 직접적으로 검사되고, 이것은 시스템의 다양한 메모리들에 대한 직접적인 액세스를 제공한다. 상태들(140 및 150)에서 NVM 검사 메카니즘들, HW 검사 메카니즘들, 및 FW 검사 메카니즘들은 모두 디스에이블된다.Another security measure is to limit the use of firmware and hardware inspection mechanisms. The system includes logic to enable or disable the mechanisms. The previously described host bus is one of the mechanisms used to check the card's firmware. The host can issue diagnostic commands on the host bus to check the firmware. The hardware can be checked when these instructions are executed. The hardware is checked directly on the JTAG port as well as on the hardware bus, which provides direct access to the various memories of the system. NVM inspection mechanisms, HW inspection mechanisms, and FW inspection mechanisms in states 140 and 150 are all disabled.

상태들 및 도 2a에 도시된 상태들 사이의 통과는 지금 추가로 상세히 기술될 것이다.The passage between states and the states shown in FIG. 2A will now be described in further detail.

상태(110)는 제어기 비휘발성 메모리(NVM) 검사라 한다. 이 상태는 메모리 다이의 제조 후 초기 상태이고, 다이가 패키지되고 메모리 카드에 설치되기 전에 제어기 다이의 비휘발성 메모리를 검사하기 위하여 사용된 상태이다. 이런 상태에서 발생하는 검사는 다이들이 웨이퍼 포맷에 일체형인 동안 개별화 전에 수행될 수 있거나, 선택적으로 개별화 후 개별 다이상에서 수행될 수 있다. 일단 NVM이 검사되면, 콘텐트(NVM 검사기를 사용함)는 상태(120)를 가리키기 위하여 시작되고, 퓨즈(66)는 블로우(blown)된다. 이 상태에서 인크립션 엔진(40)은 디스에이블된다. 이 상태는 카드의 라이프 사이클에서 한번만 진입되도록 설계되고 이 상태로 리턴하기 위한 시스템내의 방법은 없다. 그러나, 이전에 논의된 바와 같이, 이 상태는 라이프 사이클 상태를 정의하기 위하여 사용된 32 비트 값의 많은 가능한 결합들중 6 개의 사전 할당된 값들과 다른 임의의 것으로 표시된다. 만약 불법의 값이 검출되고 퓨즈가 블로우되면(NVM 상태 110가 진입되지 않음) 크립토 엔진은 결코 준비되지 않고 시스템은 부트되지 않거나, 도 2에 관련하여 하기에 기술된 단계(302)를 넘어서 진행한다. 그러므로, 카드에 전력이 인가되고 이런 상태에 있는 각각의 시간에, 새로운 키는 임의로 생성되고, 이전에 인크립트된 데이터는 디크립트되지 않는다. 비록 디크립션 엔진이 이런 모드에서 인에이블되지 않지만, 상기 모드는 웨이퍼가 제조 동안 여전히 본래대로 있는 동안 사용되도록 설계되기 때문에, 키는 몇몇 우연한 방식으로 이런 상태를 진입할 수 있고 다양한 검사 포트들 및 메카니즘들을 통하여 카드의 보안 데이터를 검사하고자 하는 해커에 대하여 보호하기 위하여 모든 전력 상승시 재생된다. 그렇지 않으면, 설계에 의해 종래 상태(110) 이후, NVM 검사 메카니즘들은 더 이상 이용할 수 없다.State 110 is referred to as a controller nonvolatile memory (NVM) check. This state is the initial state after fabrication of the memory die and is used to inspect the nonvolatile memory of the controller die before the die is packaged and installed in the memory card. Inspections occurring in this condition may be performed before individualization while the dies are integral to the wafer format, or may optionally be performed on individual die after individualization. Once the NVM is inspected, the content (using the NVM inspector) begins to indicate state 120, and fuse 66 is blown. In this state, the encryption engine 40 is disabled. This state is designed to be entered only once in the card's life cycle and there is no way in the system to return to this state. However, as discussed previously, this state is indicated as any other than six pre-allocated values of the many possible combinations of 32-bit values used to define the life cycle state. If an illegal value is detected and the fuse blows (NVM state 110 is not entered), the Crypto Engine is never ready and the system does not boot or proceeds beyond step 302 described below with respect to FIG. . Therefore, each time the card is powered up and in this state, a new key is randomly generated, and the previously encrypted data is not decrypted. Although the decryption engine is not enabled in this mode, since the mode is designed to be used while the wafer is still intact during manufacturing, the key may enter this state in some accidental manner and with various inspection ports and Mechanisms are replayed at every power up to protect hackers who wish to inspect the card's security data. Otherwise, after the conventional state 110 by design, the NVM inspection mechanisms are no longer available.

상태(120)는 일정한 인에이블 상태라 한다. 이 상태에서 인크립션 엔진(40)은 인에이블된다. 인크립션 엔진이 사용할 키는 랜덤 수의 생성기에 의해 생성되고, 메모리에 저장되는 것이 아니고, 이 단계 동안 몇몇 외부 소스 및 상수에 배선된다. 하드웨어 및 소프트웨어 검사 메카니즘들은 이런 상태에서 이용할 수 있다. 이 상태는 하드웨어 검사기에 의해 진입된다. State 120 is referred to as a constant enable state. In this state, the encryption engine 40 is enabled. The keys that the encryption engine will use are generated by a random number of generators, not stored in memory, but wired to some external sources and constants during this step. Hardware and software inspection mechanisms can be used in this state. This state is entered by a hardware checker.

상태(130)는 랜덤 인에이블 상태라 한다. 이 상태는 상태(120)와 유사하지만, 보안 키는 상태(130)가 상수 및 배선 대신 진입될 때 랜덤하게 생성(한번)된다. 이것은 메모리 카드의 최종 검사, 특성화 및 조건에 사용되는 상태이다. 인크립션 및 디크립션을 포함하는 암호 동작들은 보안 키 또는 보안 키로부터 유도된 키를 사용하여 펌웨어로 가능하다. 이런 상태는 호스트 장치(24)에 의해 시스템(10)내에 로딩되는 코드에 의해 진입되고 시스템(10)에 의해 실행된다.State 130 is referred to as a random enable state. This state is similar to state 120, but a security key is randomly generated (once) when state 130 is entered instead of constants and wires. This is the state used for the final inspection, characterization and condition of the memory card. Cryptographic operations, including encryption and decryption, are possible in firmware using a security key or a key derived from the security key. This state is entered by code loaded into the system 10 by the host device 24 and executed by the system 10.

상태(140)는 최종 키 상태라 한다. 이 상태에서 카드는 카드가 선적될 최종 보안 키를 사용한다. 하드웨어 및 소프트웨어 검사 메카니즘들은 카드 논리에 의해 디스에이블되고 액세스될 수 없다. 이것은 도 1B에 도시된 하드웨어 검사 버스 및 검사 패드들을 포함한다. 이 상태는 제품을 선적하는 키로 보호될 필요가 있는 최종 펌웨어 및 구성 데이터로 카드를 로드하기 위하여 사용된다. 제품은 이런 상태로 구성될 수 있고, 상태(15)에서는 그럴 수 없다. 이 상태는 호스트 명령에 의해 진입된다. 명령은 호스트로부터 다운로드되고 카드에 의해 실행되는 코드에 포함될 수 있다("DLE 코드"). 명령은 선택적으로 호스트로부터 직접 내려질 수 있다. 이것은 용어 DLE 코드가 이하에 사용되는 임의의 시간에 사실이다.State 140 is referred to as the final key state. In this state, the card uses the final security key to which the card will be shipped. Hardware and software inspection mechanisms are disabled and cannot be accessed by the card logic. This includes the hardware test bus and test pads shown in FIG. 1B. This state is used to load the card with the final firmware and configuration data that needs to be protected by the key that ships the product. The product may be configured in this state, but not in state 15. This state is entered by a host command. The command may be included in code that is downloaded from the host and executed by the card ("DLE code"). Commands can optionally be issued directly from the host. This is true at any time the term DLE code is used below.

상태(150)는 보안 상태라 한다. 이것은 카드가 제조로부터 선적되는 상태이다. 하드웨어 및 소프트웨어 검사 메카니즘들은 카드 논리에 의해 디스에이블되고 액세스될 수 없다. 이 상태는 제조 플로우 상에서 제품의 검사 및 구성의 종료시 진입된다. 키는 상태(140)는 재생되지 않고 상태(150) 동안 메모리에 저장된 값은 상태(150) 동안 사용된다. 파생 키들이 카드의 다양한 동작들에 사용될 수 있을 때, 키(99)는 이들 키들을 항상 유도하고 데이터를 인크립트 및 디크립트할 필요가 있을 것이다. 이런 키는 보안 카드의 라이프에 사용되는 것으로 의미된다(보안 카드로서 고객의 손에 있을 때, 그 후가 아님). 카드내 펌웨어는 임의의 동작 동안 보안 키를 사용할 수 없다. 카드내 인크립션 및 디크립션 모두를 수행하기 위하여 사용하는 인크립션 엔진의 하드웨어가 있다. 이런 상태는 DLE 코드에 의해 진입된다.State 150 is referred to as a security state. This is the state where the card is shipped from manufacture. Hardware and software inspection mechanisms are disabled and cannot be accessed by the card logic. This state is entered at the end of the inspection and configuration of the product on the manufacturing flow. The key 140 is not played and the value stored in memory during state 150 is used during state 150. When derived keys can be used for various operations of the card, the key 99 will always need to derive these keys and encrypt and decrypt the data. This key is meant to be used for the life of the security card (not afterwards when it is in the customer's hand as a security card). In-card firmware cannot use the security key during any operation. There is hardware in the encryption engine that is used to perform both in-card encryption and decryption. This state is entered by the DLE code.

상태(160)는 리턴된 상품 인증 또는 RMA 상태라 한다. 이 상태는 적당하게 작동하지 않기 때문에 고객에 의해 리턴된 카드의 검사를 허용하도록 설계된다. 이것은 카드의 결함 분석이 수행될 수 있는 상태이다. 소프트웨어 및 하드웨어 검사 메카니즘들은 다시 이용할 수 있다. 이 상태가 제조소에 의해서만 액세스될 수 있다는 것을 주의하는 것은 중요하다. 게다가, RAM 상태가 진입된 후, 카드는 결코 다시 보안 카드로서 사용될 수 없다. 다른 말로, 상태(150)로 다시 결코 진입할 수 없거나 그렇지 않으면 카드상에 상주하는 정보를 디크립트하거나 인크립트된 정보를 카드에 저장하기 위하여 사용된다. 보안 키는 이런 모드가 진입될 때 재생되고 카드가 이런 상태에 있는 동안 모든 칩 리셋 동안 수행된다. 디크립션을 위하여 보안 키를 사용하는 동작은 부트 시간에서만 인에이블되고 펌웨어는 임의의 동작들을 위한 보안 키를 사용할 수 없다. 이 상태는 호스트 명령의 결과인 ROM 코드에 의해 진입된다.State 160 is referred to as the returned product certification or RMA state. This state is designed to allow inspection of the card returned by the customer because it does not work properly. This is a state in which defect analysis of the card can be performed. Software and hardware inspection mechanisms are available again. It is important to note that this state can only be accessed by the manufactory. In addition, after the RAM state is entered, the card can never be used again as a security card. In other words, it is used to decrypt information that can never enter or otherwise reside on the card 150 or to store the encrypted information on the card. The security key is played when this mode is entered and performed during all chip resets while the card is in this state. The operation of using the security key for decryption is only enabled at boot time and the firmware cannot use the security key for any operations. This state is entered by the ROM code that is the result of the host command.

상태(170)는 디스에이블된 상태라 한다. 디스에이블된 상태에서, 크립토 엔진(40)은 디스에이블된 모든 암호 능력을 가진 바이패스 모드에 있다. 단지 비보안 알고리듬만이 카드내에서 사용된다. 하드웨어 및 소프트웨어 검사 메카니즘들은 인크립션 엔진없이 아무것도 해킹될 수 없거나 그렇지 않으면 도청될 수 없기 때문에 다시 인에이블된다. 임의의 인크립트된 정보는 더 이상 디크립트되지 않고 쓸모없게 된다. 또한, 부가적인 정보는 인크립되고 추후 디크립트될 수 없다. 이 상태는 비보안 또는 "정규" 카드를 생성하기 위하여 사용될 수 있다. 이런 방식에서, 동일한 시스템은 보안 및 비보안 메모리 카드들을 형성하기 위하여 사용될 수 있다. 차이는 비보안 카드에서 카드의 보안 시스템이 디스에이블된 상태이거나, 카드가 상태(170)에서 있지 않는다는 것이다. 디스에이블된 상태는 또한 결함 분석을 위하여 제조소에 다시 보내진 제품을 재선적하기 위하여 사용될 수 있고, 그러므로 RMA 상태(160)로 통과되었다. 상기된 바와 같이, 카드가 RMA 상태(160)로 진입한 후, 임의의 이전 상태로 결코 리턴할 수 없고, 보안 카드로서 다시 팔릴 수 없다. 그러나, 기능 작용을 가지거나 제조소에서 다시 기능 작용이 형성될 수 있는 카드는 디스에이블된 상태(170)로 되고 비보안 카드로서 다시 팔린다. 이런 방식으로, 카드는 재생되고 모든 강한 목적들을 위하여 새로운 비보안 또는 "정규" 카드와 동일하다. 양쪽 재생된 비보안 카드 및 새로운 비보안 카드는 동일한 상태에서 동일한 펌웨어를 운용할 것이다.State 170 is referred to as a disabled state. In the disabled state, the crypto engine 40 is in bypass mode with all cryptographic capabilities disabled. Only insecure algorithms are used in the card. Hardware and software inspection mechanisms are re-enabled because nothing can be hacked or otherwise eavesdropped without the encryption engine. Any encrypted information is no longer decrypted and obsolete. In addition, additional information may be encrypted and subsequently decrypted. This state can be used to create an insecure or "normal" card. In this way, the same system can be used to form secure and insecure memory cards. The difference is that in a non-secure card the card's security system is disabled or the card is not in state 170. The disabled state can also be used to re-ship the product sent back to the factory for defect analysis, and thus passed to RMA state 160. As noted above, after the card enters RMA state 160, it can never return to any previous state and cannot be sold again as a security card. However, cards that have a functional action or that can be formed again at the factory are placed in the disabled state 170 and sold again as an unsecured card. In this way, the card is played and is identical to the new unsecured or "regular" card for all strong purposes. Both recycled non-security cards and new non-security cards will run the same firmware in the same state.

현재, 방대한 카드들은 비보안 카드들이다. 보안 카드들을 판매하기 위한 운동이 주로 콘텐트 제공자들의 요구로 인해 높지만, 미래 메모리 카드 판매중 몇퍼센트가 보안 카드들 대 비보안 카드들일지 불명확하다. 명확한 것은 다수의 비보안 콘텐트가 항상 있고 그러므로 비보안 카드들에 대한 요구가 있다는 것이다. 본 발명은 보안 카드의 모든 하드웨어 및 소프트웨어를 검사할 수 있을 뿐 아니라(단지 인증된 사람들에 의해), 다양한 비보안 용도들을 위하여 리턴된 보안 카드들을 재생하기 위한 능력을 제공한다. 게다가, 본 발명의 시스템은 강한 보안성을 갖지만, 결함 분석을 수행하기 위하여 디스에이블될 필요가 없거나 타협된 보안 시스템을 가질 필요가 없는(액세스 가능한 "백도어"를 가짐) 카드를 허용한다. 메모리 카드들을 사용하는 장치들의 널리 증가하는 확산으로 인해, 결함 보안 카드인 것을 재생하기 위한 능력은 마찬가지로 소비자 및 제조자에게 매우 바람직하다.Currently, the vast majority of cards are nonsecure cards. While the movement to sell security cards is high mainly due to the needs of content providers, it is unclear what percentage of future memory card sales will be security cards versus non-security cards. What is clear is that there is always a lot of unsecured content and therefore there is a need for unsecured cards. The present invention not only can inspect all hardware and software of the security card (only by authorized persons) but also provides the ability to play the returned security cards for various non-security purposes. In addition, the system of the present invention has a strong security, but allows cards that do not need to be disabled or have a compromised security system (having an accessible "backdoor") to perform fault analysis. Due to the widespread proliferation of devices using memory cards, the ability to play back a defective security card is likewise highly desirable to consumers and manufacturers.

도 3은 상기된 시스템을 실행하는 메모리 카드에 대한 부팅 처리를 도시한다. 부트 업 처리중 많은 정보에 대해, 여기에 참조로써 전체적으로 통합되고 Micky Holtzman 등에 의한 것이며 발명의 명칭이 "Method of Hardware Driver Integrity Check Of Memory Card Controller Firmware"이고 위임 도킷 번호가 SNDK.408US1인 공동 계류중인 출원 11/284,623을 참조하라.3 shows a boot process for a memory card executing the system described above. For much of the information during the boot up process, it is hereby incorporated by reference in its entirety, by Micky Holtzman et al. See application 11 / 284,623.

단계(302)에서, 시스템은 크립토 엔진(40) 및 다른 부품들을 포함하는 암호 하드웨어가 준비되었는지 검사한다. 시스템은 하드웨어가 준비될때까지 처리를 기다릴 것이다. 하드웨어가 준비될 때 시스템은 단계(304)로 진행한다. 단계(304)에서 시스템은 카드가 상태(170)(디스에이블된 상태)인지를 알기 위하여 검사한다. 만약 카드가 상태(170)이면, 단계 306에서 시스템은 플래시 메모리(20)로부터 RAM(11)으로 최소량의 시작 코드인 부트 로더("BLR")를 업로드할 것이다. 다음, 단계(308)에서 시스템은 BLR이 적당하게 업로드되었는지를 알기 위하여 검사한다. 만약 그렇다면, 단계(310)에서, 시스템은 비보안 모드(표준 펌웨어 마이너스 암호 기능)에서 운용하기에 필요한 펌웨어를 업로드할 것이다. 만약 BLR이 단계(308)에서 결정된 바와 같이 적당하게 업로드되지 않으면, 시스템은 하기된 단계(324)로 진행할 것이다.In step 302, the system checks whether cryptographic hardware including crypto engine 40 and other components is ready. The system will wait for processing until the hardware is ready. The system proceeds to step 304 when the hardware is ready. In step 304 the system checks to see if the card is in a state 170 (disabled state). If the card is in state 170, at step 306 the system will upload a minimum amount of startup code (“BLR”) from the flash memory 20 to the RAM 11. Next, at step 308 the system checks to see if the BLR has been uploaded properly. If so, in step 310, the system will upload the firmware required to operate in an insecure mode (standard firmware minus cryptographic function). If the BLR is not uploaded properly as determined in step 308, the system will proceed to step 324 described below.

단계(304)에서 카드가 상태(170)에 있지 않은 것을 시스템이 결정하면, 시스템은 단계(312)에서 RAM 콘텐트들을 삭제할 것이다. 그 후 단계(314)에서 시스템은 카드가 어떤 상태인지를 알기 위하여 다시 검사할 것이다. 카드가 상태(120,130, 또는 140)에 있으면, BLR은 단계(316)에서 업로드될 것이다. 단 계(318)에서, 시스템은 BLR이 적당하게 업로드 되었는지를 알기 위하여 검사할 것이다. 다음, 단계(320)에서 BLR 코드의 보전 검사는 수행될 것이다. 이런 보전 검사는 메시지 인증 코드(MAC) 값들을 계산하고 그들을 기준 값들과 비교함으로써 수행되는 하드웨어 바탕 검사이다. 보전 검사의 결과는 메모리에 저장된 간단한 플래그이다. 단계(322)에서, 펌웨어는 보전이 검증되었는지 아닌지를 알기 위하여 플래그를 검사한다. 보전이 OK이면, 시스템은 단계(342)에서 보안 모드에서 운용하기 위하여 필요한 펌웨어를 업로드할 것이고, 이것은 물론 비보안 데이터가 저장 및 검색되게 한다. 만약 보전이 단계(322)에서 결정된 바와 같이 OK가 아니면, 시스템은 단계(324)에 의해 표현된 바와 같이 호스트로부터의 특정 명령들(DLE 명령)을 다운로드 및 실행하기 위하여 호스트로부터 진단 명령을 기다릴 것이다. 만약 DLE 명령이 단계(326)에서 처럼 검색되면, 시스템은 단계(328)에서 DLE 코드를 RAM에 로딩할 것이다. 단계(330)에서 DLE 코드는 제어기에 의해 실행될 것이다.If the system determines that the card is not in state 170 in step 304, the system will delete the RAM contents in step 312. The system will then check again at step 314 to see what the card is like. If the card is in state 120, 130, or 140, the BLR will be uploaded at step 316. At step 318, the system will check to see if the BLR has been uploaded properly. Next, in step 320 the integrity check of the BLR code will be performed. This integrity check is a hardware based check performed by calculating message authentication code (MAC) values and comparing them with reference values. The result of the integrity check is a simple flag stored in memory. In step 322, the firmware checks the flag to see if integrity is verified or not. If maintenance is OK, the system will upload the firmware required to operate in secure mode in step 342, which of course allows non-secure data to be stored and retrieved. If maintenance is not OK as determined in step 322, the system will wait for a diagnostic command from the host to download and execute specific commands (DLE command) from the host as represented by step 324. . If the DLE instruction is retrieved as in step 326, the system will load the DLE code into RAM in step 328. In step 330 the DLE code will be executed by the controller.

단계(314)에서, 카드가 상태(120,130 또는 140)에 있지 않은 것을 결정하였다면, 시스템은 카드가 상태(150)에 있는지를 알기 위하여 단계(332)에서 검사할 것이다. 만약 그렇다면, 시스템은 단계(334)에서 BLR을 업로드할 것이다. 이것은 ROM 코드에 의해 수행된다. 만약 BLR 업로드가 단계(336)에서 결정된 바와 같이 OK이면, 하드웨어 바탕 보전 검사는 단계(320)에서 상기된 바와 같이 단계(338)에서 수행될 것이다. 이런 하드웨어 바탕 보전 검사, 다른 보전 검사 후, 소프트웨어 바탕 보전 검사는 단계(340)에서 수행될 것이다. 만약 보전이 OK이면, 시스템은 비보안 데이터가 저장 및 검색되게 하는 보안 모드에서 운용하기에 필요한 펌웨 어를 업로드할 것이다.If at step 314 it is determined that the card is not in state 120, 130 or 140, the system will check at step 332 to see if the card is in state 150. If so, the system will upload the BLR in step 334. This is done by ROM code. If the BLR upload is OK as determined in step 336, then the hardware background integrity check will be performed in step 338 as described above in step 320. After this hardware based integrity check, another maintenance check, a software based integrity check will be performed at step 340. If preservation is OK, the system will upload the firmware needed to operate in secure mode, allowing non-secure data to be stored and retrieved.

만약 단계(332)에서 카드가 상태(150)에 있지 않은 것이 결정되면, 시스템은 카드의 상태를 검사하고 카드가 상태(160)에 있고 만약 그렇다면 단계(348)에 의해 표현된 바와 같이 진단 명령을 기다릴 것이다. 그러나, 만약 단계(344)에서 카드가 상태(160)에 있지 않은 것이 결정되면, 시스템은 단계(346)에 도시된 바와 같이 RMA 상태(160)로 진행하기 위한 명령을 기다릴 것이다. If at step 332 it is determined that the card is not in state 150, the system checks the state of the card and if the card is in state 160 and if so then issues a diagnostic command as represented by step 348. I will wait. However, if at step 344 it is determined that the card is not in state 160, the system will wait for a command to proceed to RMA state 160 as shown in step 346.

Claims (40)

메모리 카드를 형성하는 방법으로서,As a method of forming a memory card, 검사 포트들에 메모리 다이를 제공하는 단계; Providing a memory die at the test ports; 보안 시스템을 제공하는 단계를 포함하고, 상기 보안 시스템은,Providing a security system, the security system comprising: 암호 엔진,Crypto engine, 암호 키,Passkey, 검사 포트들이 하드웨어 검사에 이용할 수 있고 소프트웨어 검사 루틴들이 이용되어 암호 엔진의 동작 및 메모리 카드의 소프트웨어 검사를 수행할 수 있게 하는 검사 상태, 및Test states that test ports are available for hardware test and software test routines are used to perform the operation of the crypto engine and software test of the memory card, and 검사 포트들이 이용될 수 없고 상기 소프트웨어 검사 루틴들이 이용될 수 없는 동작 상태를 포함하고;An operational state in which test ports are not available and the software test routines are not available; 검사 상태를 사용하여 메모리 카드 소프트웨어를 검사하는 단계를 포함하고; 및Checking the memory card software using the test status; And 검사 상태로부터 동작 상태로 카드를 비가역적으로 스위칭하는 명령을 호스트로부터 카드로 제공하는 단계를 포함하는, 메모리 카드 형성 방법.Providing a command from the host to the card for irreversibly switching the card from the test state to the operational state. 검사 패드들을 가진 비휘발성 메모리 다이를 포함하는 메모리 카드의 기능을 검사하기 위한 방법으로서,A method for testing the functionality of a memory card including a nonvolatile memory die with test pads, the method comprising: 임의의 펌웨어가 로딩되기 전에 및 상기 펌웨어가 메모리 카드의 일부이기 전에 메모리 다이를 검사하는 단계;Inspecting a memory die before any firmware is loaded and before the firmware is part of a memory card; 메모리 다이의 메모리에 펌웨어를 로딩하는 단계;Loading firmware into a memory of a memory die; 메모리 카드의 하드웨어 및 소프트웨어의 검사를 허용하는 제 1 단계로 카드의 단계를 변화시키는 단계; Changing the stage of the card to a first stage that allows inspection of the hardware and software of the memory card; 메모리 카드의 하드웨어 및 소프트웨어를 검사하는 단계; 및Checking the hardware and software of the memory card; And 메모리 카드의 하드웨어 및 소프트웨어의 검사를 허용하지 않는 제 2 단계로 카드의 단계를 변화시키는 단계를 포함하는, 메모리 카드 기능성 검사 방법.Changing the stage of the card to a second stage that does not allow inspection of the hardware and software of the memory card. 제 2 항에 있어서, 상기 검사 패드들은 다이가 카드에 설치될 때 메모리 다이에 제공되는, 메모리 카드 기능성 검사 방법.3. The method of claim 2 wherein the test pads are provided to a memory die when the die is installed in the card. 제 2 항에 있어서, 카드의 결함 후, 결함 분석을 위하여 메모리 카드의 소프트웨어 및 하드웨어를 검사할 수 있는 단계로 카드의 단계를 변경하는 단계를 더 포함하고, 이 단계에 진입 후 메모리 카드는 이 단계에 진입하기 전에 인크립트되었던 데이터를 더 이상 디크립트할 수 없는, 메모리 카드 기능성 검사 방법.3. The method of claim 2, further comprising changing the step of the card after the defect of the card to the step of inspecting the software and hardware of the memory card for defect analysis, wherein after entering the step the memory card is subjected to this step. The method of testing memory card functionality that can no longer decrypt data that was encrypted before entering. 제 2 항에 있어서, 상기 단계의 표시기는 제어기 칩의 비휘발성 메모리에 저장되는, 메모리 카드 기능성 검사 방법.3. The method of claim 2 wherein the indicator of the step is stored in a nonvolatile memory of the controller chip. 제 2 항에 있어서, 제 2 단계에서 신호들은 검사 패드들로 전달되지 않고 검 사 패드들로부터 전달되지 않는, 메모리 카드 기능성 검사 방법.3. The method of claim 2 wherein signals are not passed to test pads and to test pads in a second step. 메모리 카드내에 데이터의 보안 저장을 제공하기 위한 방법으로서,A method for providing secure storage of data in a memory card, 메모리 카드내에 플래시 메모리를 제공하는 단계;Providing a flash memory in the memory card; 플래시 메모리에 저장된 데이터를 인크립트 및 디크립트하는 인크립션 엔진을 제어기 칩에 제공하는 단계;Providing an encryption engine to the controller chip for encrypting and decrypting data stored in the flash memory; 제어기 칩의 비휘발성 메모리내에 하나의 키를 저장하는 단계;Storing a key in a nonvolatile memory of the controller chip; 파일이 플래시 메모리 칩내에 저장되기 전에 키를 가진 사용자의 카드 데이터 파일을 인크립트하는 단계;Encrypting the card data file of the user with the key before the file is stored in the flash memory chip; 플래시 메모리내에 인크립트된 데이터 파일을 저장하는 단계; 및Storing the encrypted data file in flash memory; And 만약 카드 검사 메카니즘의 사용이 바람직하면, 인크립트된 파일이 디크립트될 수 없도록 키의 값을 재생하는 단계를 포함하는, 보안 저장소 제공 방법.If the use of a card checking mechanism is desired, including replaying the value of the key such that the encrypted file cannot be decrypted. 보안 카드 또는 정규 카드로서 동작하는 메모리 카드에서 실행되는 보안 시스템으로서,A security system running on a memory card that operates as a security card or a regular card, 카드에 저장된 정보를 보호하기 위하여 정보를 인크립트 및 디크립트하는 암호 엔진;A cryptographic engine that encrypts and decrypts the information to protect the information stored on the card; 인크립션 및 디크립션에 사용되는 카드내 보안 키(secret key);Secret keys in cards used for encryption and decryption; 검사 상태를 포함하고, 상기 검사 상태에서,Including the inspection state, in the inspection state, 인크립션 엔진은 인에이블되고,The encryption engine is enabled, 보안 키는 검사 상태에 진입(enter)하는 중에 생성되고,The security key is generated during entry into the inspection state, 카드내 펌웨어는 검사될 수 있고,In-card firmware can be checked, 카드의 하드웨어는 검사될 수 있고;The hardware of the card can be checked; 보안 동작 상태를 포함하고, 상기 보안 동작 상태에서,A secure operating state, wherein in the secure operating state, 카드내 펌웨어는 검사될 수 없고,The firmware on the card cannot be checked, 카드의 하드웨어는 검사될 수 없고,The hardware of the card cannot be checked, 인크립션 엔진은 인에이블되고,The encryption engine is enabled, 보안 키는 정보를 인크립트 및 디크립트하기 위하여 인크립션 엔진에 의해 사용되고; 및The security key is used by the encryption engine to encrypt and decrypt the information; And 바이패스 동작 상태를 포함하고, 상기 바이패스 동작 상태에서,A bypass operating state, wherein in the bypass operating state, 인크립션 엔진은 디스에이블되고,The encryption engine is disabled, 카드의 하드웨어는 검사될 수 있고,The hardware of the card can be checked, 카드의 펌웨어는 검사될 수 있고,The card's firmware can be checked, 바이패스 동작 상태는 만약 정규 카드로서 동작하면 사용되는, 보안 시스템.The bypass operating state is used if acting as a regular card. 제 8 항에 있어서, 상기 카드는 바이패스 동작 상태로 구성된 비보안 카드로서 처음에 팔리는, 보안 시스템.9. The security system of claim 8, wherein said card is initially sold as an unsecured card configured in a bypass operational state. 제 8 항에 있어서, 상기 카드는 보안 동작 상태로 구성된 보안 카드로서 처 음에 팔리는, 보안 시스템.10. The security system of claim 8, wherein said card is initially sold as a security card configured in a secure operating state. 제 10 항에 있어서, 상기 카드는 제조자에게 되돌려진 후 보안 카드로서 처음에 팔리는 카드는 바이패스 동작 상태로 되는, 보안 시스템.11. The security system of claim 10, wherein the card that is initially sold as a security card after being returned to the manufacturer is in bypass operation. 제 11 항에 있어서, 바이패스 상태로 된 후 카드는 비보안 카드로서 팔리는, 보안 시스템.12. The security system of claim 11, wherein the card is sold as an unsecured card after being bypassed. 제 8 항에 있어서, 상기 인크립션 엔진은 하드웨어를 바탕으로 하는, 보안 시스템.10. The security system of claim 8, wherein the encryption engine is hardware based. 제 8 항에 있어서, 상기 보안 키는 인크립션 엔진의 비휘발성 메모리에 저장되는, 보안 시스템.9. The security system of claim 8, wherein the security key is stored in a nonvolatile memory of an encryption engine. 제 8 항에 있어서,The method of claim 8, 결함 분석 동작 상태를 더 포함하고, 상기 결함 분석 동작 상태에서,Further comprising a defect analysis operation state, wherein in the defect analysis operation state, 카드의 하드웨어는 검사될 수 있고,The hardware of the card can be checked, 카드의 펌웨어는 검사될 수 있고,The card's firmware can be checked, 상기 보안 키는 시스템이 결함 분석 상태에서 전력이 상승하는 매시간에 재생되는, 보안 시스템.The security key is refreshed every time the system is powered up in a fault analysis state. 제 15 항에 있어서, 결함 분석 동작 상태에 진입한 후, 카드는 보안 동작 상태로 결코 다시 사용될 수 없는, 보안 시스템.16. The security system of claim 15, wherein after entering a fault analysis operational state, the card can never be used again as a secure operational state. 제 16 항에 있어서, 상기 결함 분석 동작 상태는 바이패스 상태에 진입하기 전에 활성화되는, 보안 시스템.17. The security system of claim 16, wherein said fault analysis operational state is activated prior to entering a bypass state. 펌웨어를 가진 메모리 카드를 검사하기 위한 시스템으로서,A system for checking a memory card with firmware, 집적 회로 다이상 검사 포트들;Inspection ports on integrated circuit die; 펌웨어내 검사 메카니즘들; 및In-memory inspection mechanisms; And 보안 시스템을 포함하고, 상기 보안 시스템은,A security system, wherein the security system, 암호 엔진;Crypto engine; 카드의 검사 동안 활용할 수 있는 동작의 하나 또는 그 이상의 검사 상태들을 포함하고, 상기 검사 상태들은 검사 포트들 및 펌웨어내 검사 메카니즘들의 사용을 허용하고;One or more test states of an action that can be utilized during testing of the card, wherein the test states allow the use of test ports and test mechanisms in firmware; 카드의 정상 사용 동안 사용할 수 있는 동작의 보안 상태를 포함하고, 상기 보안 상태는 검사 포트들 및 펌웨어내 검사 메카니즘들의 사용을 금지시키고;A security state of an operation that can be used during normal use of the card, the security state prohibiting the use of test ports and test mechanisms in firmware; 하나 또는 그 이상의 검사 상태들 중 하나의 검사 상태 및 보안 상태 사이의 스위칭을 위한 논리를 포함하고, 일단 상기 카드가 보안 상태로 스위칭되면, 하나 또는 그 이상의 검사 상태들은 결코 다시 액세스될 수 없어서, 펌웨어의 검사 메카니즘들 및 검사 포트들에 대한 액세스를 방지함으로써 카드상 보안 데이터에 대한 액세스를 금지하는, 메모리 카드 검사 시스템.Logic for switching between a check state and a secure state of one of the one or more check states, and once the card is switched to the secure state, one or more check states can never be accessed again, Preventing access to secure data on the card by preventing access to the inspection mechanisms and inspection ports of the memory card inspection system. 제 18 항에 있어서, 상기 보안 시스템은 바이패스 동작 상태를 더 포함하고, 암호 엔진은 디스에이블되는, 메모리 카드 검사 시스템.19. The memory card inspection system of claim 18 wherein the security system further comprises a bypass operating state and the crypto engine is disabled. 제 19 항에 있어서, 상기 바이패스 상태는 비보안 메모리 카드를 생성하기 위하여 사용되는, 메모리 카드 검사 시스템.20. The system of claim 19 wherein the bypass state is used to create an insecure memory card. 제 19 항에 있어서, 상기 바이패스 상태는 보안 카드가 서비스를 위하여 리턴될 때 활성화되어, 보안 카드를 비보안 카드로 변환하고 추가 사용을 위하여 카드를 재생하는, 메모리 카드 검사 시스템.20. The memory card inspection system of claim 19 wherein the bypass state is activated when a security card is returned for service, converting the security card into an unsecured card and playing the card for further use. 제 21 항에 있어서, 상기 비보안 카드는 변환 후 보안 상태로 결코 다시 사용될 수 없는, 메모리 카드 검사 시스템.22. The memory card inspection system of claim 21 wherein the non-secure card can never be used again in a secure state after conversion. 제 19 항에 있어서, 결함 분석 상태를 더 포함하고, 데이터를 인크립트 및 디크립트하기 위하여 사용된 새로운 키는 매 전력 상승시 생성되고, 하나의 키로 인크립트된 데이터는 다른 키로 디크립트될 수 없는, 메모리 카드 검사 시스템.20. The method of claim 19, further comprising a fault analysis state, wherein a new key used to encrypt and decrypt data is generated at every power up, and data encrypted with one key cannot be decrypted with another key. Memory card inspection system. 제 23 항에 있어서, 상기 결함 분석 상태는 바이패스 상태에 진입하기 전에 진입되는, 메모리 카드 검사 시스템.24. The system of claim 23 wherein the fault analysis state is entered prior to entering the bypass state. 제 18 항에 있어서, 보안 상태에 사용될 최종 펌웨어를 가진 카드를 로드하기 위하여 사용된 최종 키 상태를 더 포함하고, 펌웨어의 검사 메카니즘들은 최종 키 상태에서 디스에이블되는, 메모리 카드 검사 시스템.19. The memory card inspection system of claim 18, further comprising a final key state used to load a card with final firmware to be used for a secure state, wherein the inspection mechanisms of the firmware are disabled in the final key state. 제 25 항에 있어서, 상기 최종 키 상태에서 검사 포트들과의 통신은 사용할 수 없는, 메모리 카드 검사 시스템.26. The memory card inspection system of claim 25 wherein communication with inspection ports in the last key state is unavailable. 메모리 카드로서,As a memory card, 보안 카드 또는 비보안 카드를 형성하기 위하여 사용될 수 있는 메모리 카드에서 실행되는 보안 시스템;A security system running on a memory card that can be used to form a security or non-security card; 카드에 저장된 정보를 보호하기 위하여 정보를 인크립트 및 디크립트하도록 설계된 암호 엔진;A cryptographic engine designed to encrypt and decrypt the information to protect the information stored on the card; 검사 상태를 포함하고, 상기 검사 상태에서,Including the inspection state, in the inspection state, 인크립션 엔진은 인에이블되고,The encryption engine is enabled, 카드내 펌웨어는 검사될 수 있고,In-card firmware can be checked, 카드의 하드웨어는 검사될 수 있고;The hardware of the card can be checked; 보안 동작 상태를 포함하고, 상기 보안 동작 상태에서,A secure operating state, wherein in the secure operating state, 카드내 펌웨어는 검사될 수 없고,The firmware on the card cannot be checked, 카드의 하드웨어는 검사될 수 없고,The hardware of the card cannot be checked, 인크립션 엔진은 인에이블되고; 및The encryption engine is enabled; And 바이패스 동작 상태를 포함하고, 상기 인크립션 엔진은 디스에이블되는, 메모리 카드.And a bypass operating state, wherein the encryption engine is disabled. 제 27 항에 있어서, 바이패스 동작 상태에서,The method of claim 27, wherein in the bypass operating state, 카드의 하드웨어는 검사될 수 있고,The hardware of the card can be checked, 카드의 펌웨어는 검사될 수 있는, 메모리 카드.The card's firmware can be checked, the memory card. 제 27 항에 있어서, 최종 키 상태를 더 포함하고,28. The apparatus of claim 27, further comprising a final key state, 보안 동작 상태에 사용될 최종 키는 카드에 사용되고,The final key to be used for the secure operating state is used for the card, 카드는 구성될 수 있고,Card can be configured, 카드의 하드웨어 검사 메카니즘들은 검사될 수 없고,The hardware inspection mechanisms of the card cannot be tested, 카드의 소프트웨어 검사 메카니즘들은 검사될 수 없는, 메모리 카드.The card's software checking mechanisms cannot be checked. 플래시 메모리 카드로서,As a flash memory card, 보안 시스템을 포함하고, 상기 보안 시스템은,A security system, wherein the security system, 두 개 또는 그 이상의 동작 상태들을 포함하고, 상기 카드는 한 번에 하나의 동작 상태에서 동작하고,Includes two or more operating states, the card operates in one operating state at a time, 카드내 데이터를 인크립트 및 디크립트하기 위한 수단;Means for encrypting and decrypting data in the card; 카드가 제 1 동작 상태에 있는 동안 카드를 검사하기 위한 수단;Means for inspecting the card while the card is in the first operating state; 상태가 진척된 후 이전 상태가 다시 진입될 수 없도록, 카드의 상태를 진척시키기 위한 수단;Means for advancing the state of the card such that the previous state cannot enter again after the state has progressed; 두 개 또는 그 이상의 동작 상태들 중 하나에서, 데이터를 인크립트 및 디크립트하기위한 수단이 이용되지만 카드를 검사하기 위한 수단이 동작 상태에서 이용될 수 없도록, 카드의 데이터에 대한 액세스를 제어하기 위한 수단을 포함하여, 검사 수단을 통하여 카드내 데이터에 대한 인증되지 않은 액세스를 방지하는, 플래시 메모리 카드.In one of the two or more operating states, the means for encrypting and decrypting the data is used but the means for inspecting the card is not available in the operating state so as to control access to the data of the card. Means for preventing unauthorized access to data on the card via the inspection means. 플래시 메모리 카드로서,As a flash memory card, 보안 시스템을 포함하고, 상기 보안 시스템은,A security system, wherein the security system, 두 개 또는 그 이상의 동작 상태들을 포함하고, 상기 카드는 한 번에 하나의 동작 상태에서 동작하고;Two or more operating states, the card operating in one operating state at a time; 카드내 데이터를 인크립트 및 디크립트하는 인크립션 엔진;An encryption engine for encrypting and decrypting data in the card; 카드가 제 1 동작 상태에 있는 동안 이용할 수 있는 검사 메카니즘; 및An inspection mechanism that can be used while the card is in the first operating state; And 상태가 진척된 후 이전 상태가 진입될 수 없도록, 카드의 상태를 진척시키는 논리를 포함하고,Includes logic to advance the state of the card so that the previous state cannot enter after the state has progressed, 적어도 하나의 상태들로 인크립트된 데이터는 추후 진입된 상태에서 디크립트될 수 없는, 플래시 메모리 카드.The data encrypted in the at least one states cannot be decrypted in the later entered state. 플래시 메모리 카드로서,As a flash memory card, 데이터 파일들의 대량 저장을 위한 비휘발성 플래시 메모리를 포함하는 제 1 집적 회로 다이; 및A first integrated circuit die comprising a nonvolatile flash memory for mass storage of data files; And 제 2 집적 회로 다이를 포함하고, 상기 제 2 집적 회로 다이는,A second integrated circuit die, wherein the second integrated circuit die comprises: 마이크로 처리기,Microprocessor, 데이터를 인크립트 및 디크립트하는 인크립션 엔진,An encryption engine that encrypts and decrypts data, 비휘발성 메모리, 및Nonvolatile memory, and 인크립션 엔진의 동작을 인에이블하는 보안 키를 포함하고, 상기 보안 키는 제 2 집적 회로 다이의 비휘발성 메모리에 저장되고,A security key that enables operation of an encryption engine, the security key being stored in a nonvolatile memory of a second integrated circuit die, 정상 동작 모드에서 메모리 카드는 인크립션 및 디크립션을 위한 제 1 보안 키의 값을 사용하고,In normal operation mode the memory card uses the value of the first security key for encryption and decryption, 검사 모드에서 메모리 카드는 인크립션 및 디크립션을 위한 보안 키의 제 2 값을 사용하고,In test mode the memory card uses the second value of the security key for encryption and decryption, 제 2 값은 제 1 값으로 인크립트된 데이터를 디크립트하기 위하여 사용될 수 없고,The second value cannot be used to decrypt the data encrypted with the first value, 제 1 값은 제 2 값으로 인크립트된 데이터를 디크립트하기 위하여 사용될 수 없는, 플래시 메모리 카드.The first value cannot be used to decrypt data encrypted with a second value. 플래시 메모리 카드로서,As a flash memory card, 카드에 저장된 데이터를 인크립트하고 디크립트하는 인크립션 엔진;An encryption engine for encrypting and decrypting data stored in the card; 메모리 카드를 검사하기 위한 제 1 동작 상태를 포함하고, 상기 메모리 카드는 인크립션 엔진을 사용하여 인크립션 및 디크립션을 인에이블하는 제 1 키를 생성하고; 및A first operating state for inspecting a memory card, the memory card generating a first key to enable encryption and decryption using an encryption engine; And 메모리 카드의 소비자 사용을 위한 제 2 동작 상태를 포함하고, 상기 메모리 카드는 카드에 저장된 데이터를 인크립트 및 디크립트하기 위하여 제 2 키를 사용하고,A second operating state for consumer use of the memory card, the memory card using the second key to encrypt and decrypt the data stored on the card, 상기 제 1 키로 인크립트된 데이터는 제 2 키로 디크립트될 수 없고 제 2 키로 인크립트된 데이터는 제 1 키로 디크립트될 수 없고,The data encrypted with the first key cannot be decrypted with the second key and the data encrypted with the second key cannot be decrypted with the first key, 상기 인크립션 엔진은 제 1 상태에서 검사될 수 있지만, 카드가 제 1 상태에 있는 동안 인크립트된 데이터는 카드가 제 2 상태에 있는 동안 판독될 수 없는, 플래시 메모리 카드.The encryption engine may be tested in the first state, but encrypted data cannot be read while the card is in the second state while the card is in the first state. 제 33 항에 있어서, 상기 제 1 키의 값은 메모리 카드의 전력이 상승되는 각각의 시간에 변화하는, 플래시 메모리 카드.34. The flash memory card of claim 33, wherein the value of the first key changes each time the power of the memory card is raised. 제 33 항에 있어서, 상기 제 1 키의 값은 상수이고, 플래시 메모리 카드.34. The flash memory card of claim 33 wherein the value of the first key is a constant. 제 33 항에 있어서, 상기 제 1 키의 값은 제 1 동작 상태가 진입되는 각각의 시간에 재생되는, 플래시 메모리 카드.34. The flash memory card of claim 33, wherein the value of the first key is played each time a first operating state enters. 제 33 항에 있어서, 상기 제 2 키의 값은 상수이고 카드의 비휘발성 메모리에 저장되는, 플래시 메모리 카드.34. The flash memory card of claim 33, wherein the value of the second key is a constant and is stored in a nonvolatile memory of the card. 제 37 항에 있어서, 상기 제 2 키의 값은 제 1 상태 동안 메모리에 최종으로 저장된 제 1 키의 값과 동일한, 플래시 메모리 카드.38. The flash memory card of claim 37, wherein the value of the second key is the same as the value of the first key last stored in the memory during the first state. 제 33 항에 있어서, 하드웨어 및 펌웨어 검사 메카니즘들은 제 1 상태에서 검사하기 위하여 사용하는, 플래시 메모리 카드.34. The flash memory card of claim 33, wherein the hardware and firmware check mechanisms are used to check in a first state. 제 33 항에 있어서, 하드웨어 및 펌웨어 검사 메카니즘들은 제 2 상태에서 검사하기 위하여 사용할 수 없는, 플래시 메모리 카드.34. The flash memory card of claim 33, wherein the hardware and firmware checking mechanisms are not usable to check in the second state.
KR1020077018143A 2005-02-07 2006-02-01 Secure memory card with life cycle phases KR100972540B1 (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US65112805P 2005-02-07 2005-02-07
US60/651,128 2005-02-07
US11/317,862 US8321686B2 (en) 2005-02-07 2005-12-22 Secure memory card with life cycle phases
US11/317,862 2005-12-22
US11/317,390 US8108691B2 (en) 2005-02-07 2005-12-22 Methods used in a secure memory card with life cycle phases
US11/317,390 2005-12-22

Publications (2)

Publication Number Publication Date
KR20070121642A true KR20070121642A (en) 2007-12-27
KR100972540B1 KR100972540B1 (en) 2010-07-28

Family

ID=36644859

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077018143A KR100972540B1 (en) 2005-02-07 2006-02-01 Secure memory card with life cycle phases

Country Status (7)

Country Link
EP (1) EP1846826A2 (en)
JP (1) JP4787273B2 (en)
KR (1) KR100972540B1 (en)
CN (1) CN101164048B (en)
IL (1) IL184793A0 (en)
TW (1) TWI402755B (en)
WO (1) WO2006086232A2 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7748031B2 (en) 2005-07-08 2010-06-29 Sandisk Corporation Mass storage device with automated credentials loading
US8966284B2 (en) 2005-09-14 2015-02-24 Sandisk Technologies Inc. Hardware driver integrity check of memory card controller firmware
US8915447B2 (en) 2007-09-12 2014-12-23 Devicefidelity, Inc. Amplifying radio frequency signals
US8070057B2 (en) 2007-09-12 2011-12-06 Devicefidelity, Inc. Switching between internal and external antennas
US9304555B2 (en) 2007-09-12 2016-04-05 Devicefidelity, Inc. Magnetically coupling radio frequency antennas
US20090069049A1 (en) 2007-09-12 2009-03-12 Devicefidelity, Inc. Interfacing transaction cards with host devices
US9311766B2 (en) 2007-09-12 2016-04-12 Devicefidelity, Inc. Wireless communicating radio frequency signals
US9553721B2 (en) * 2015-01-30 2017-01-24 Qualcomm Incorporated Secure execution environment communication

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4243888A1 (en) * 1992-12-23 1994-06-30 Gao Ges Automation Org Data carrier and method for checking the authenticity of a data carrier
FR2716989B1 (en) * 1994-03-04 1996-04-05 Gemplus Card Int Method of operation of a smart card.
JP3461234B2 (en) * 1996-01-22 2003-10-27 株式会社東芝 Data protection circuit
EP1004992A3 (en) * 1997-03-24 2001-12-05 Visa International Service Association A system and method for a multi-application smart card which can facilitate a post-issuance download of an application onto the smart card
JPH11161549A (en) * 1997-11-28 1999-06-18 Toshiba Corp Secret information management method and system in portable information equipment
EP1082710A1 (en) * 1998-06-05 2001-03-14 Landis & Gyr Communications S.A. Preloaded ic-card and method for authenticating the same
EP0992809A1 (en) * 1998-09-28 2000-04-12 Siemens Aktiengesellschaft Circuit with deactivatable scan path
JP2000172821A (en) * 1998-12-10 2000-06-23 Toshiba Corp Semiconductor device, data storage medium, data recorder, data reading-out device, and manufacture of semiconductor device
US7023996B2 (en) * 2001-05-04 2006-04-04 The Boeing Company Encryption for asymmetric data links
DE10162306A1 (en) * 2001-12-19 2003-07-03 Philips Intellectual Property Method and arrangement for verifying NV fuses as well as a corresponding computer program product and a corresponding computer-readable storage medium
JP4350962B2 (en) * 2002-03-13 2009-10-28 パナソニック株式会社 Secure device
US6912633B2 (en) * 2002-03-18 2005-06-28 Sun Microsystems, Inc. Enhanced memory management for portable devices
US6843423B2 (en) * 2003-03-13 2005-01-18 Stmicroelectronics, Inc. Smart card that can be configured for debugging and software development using secondary communication port
US6783078B1 (en) * 2003-05-09 2004-08-31 Stmicroelectronics, Inc. Universal serial bus (USB) smart card having read back testing features and related system, integrated circuit, and methods
TW200501281A (en) * 2003-06-27 2005-01-01 Kingpak Tech Inc Manufacturing method of small memory card having display
KR101199600B1 (en) * 2003-07-17 2012-11-12 샌디스크 테크놀로지스, 인코포레이티드 Memory card with raised portion
TWI223974B (en) * 2003-11-20 2004-11-11 Advanced Semiconductor Eng Tiny memory card and method for manufacturing the same

Also Published As

Publication number Publication date
IL184793A0 (en) 2008-01-20
JP2008530659A (en) 2008-08-07
JP4787273B2 (en) 2011-10-05
CN101164048B (en) 2010-06-16
TW200641696A (en) 2006-12-01
EP1846826A2 (en) 2007-10-24
CN101164048A (en) 2008-04-16
KR100972540B1 (en) 2010-07-28
WO2006086232A3 (en) 2007-10-11
WO2006086232A2 (en) 2006-08-17
TWI402755B (en) 2013-07-21

Similar Documents

Publication Publication Date Title
US8423788B2 (en) Secure memory card with life cycle phases
US8108691B2 (en) Methods used in a secure memory card with life cycle phases
US8321686B2 (en) Secure memory card with life cycle phases
KR100972540B1 (en) Secure memory card with life cycle phases
US8572410B1 (en) Virtualized protected storage
CN102197382B (en) Multi-layer content protecting microcontroller
US6457126B1 (en) Storage device, an encrypting/decrypting device and method of accessing a non-volatile memory
US7461268B2 (en) E-fuses for storing security version data
US20080107275A1 (en) Method and system for encryption of information stored in an external nonvolatile memory
EP1638033A2 (en) Self testing and securing RAM system and method
US20070162964A1 (en) Embedded system insuring security and integrity, and method of increasing security thereof
US20070022341A1 (en) Method and system for protecting processors from unauthorized debug access
US20070237325A1 (en) Method and apparatus to improve security of cryptographic systems
CN108108631A (en) A kind of root key processing method and relevant apparatus
CN113177201A (en) Program checking and signing method and device and SOC chip
US11481523B2 (en) Secure element
US8738919B2 (en) Control of the integrity of a memory external to a microprocessor
US8190920B2 (en) Security features in an electronic device
TWI783531B (en) Method performed by a system-on-chip integrated circuit device and a computer apparatus
CN108491735A (en) Nor Flash method for secure storing, device and equipment
CN109583196B (en) Key generation method
JP5798007B2 (en) Microcomputer and data processing apparatus
JP2001527669A (en) Integrated circuit and test method for the integrated circuit
US20240069753A1 (en) Memory chip test pad access management to facilitate data security
JP2011150495A (en) Storage device

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
FPAY Annual fee payment

Payment date: 20130701

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140716

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150618

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160616

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee