KR20050103448A - Semiconductor memory card and computer readable program - Google Patents
Semiconductor memory card and computer readable program Download PDFInfo
- Publication number
- KR20050103448A KR20050103448A KR1020047020514A KR20047020514A KR20050103448A KR 20050103448 A KR20050103448 A KR 20050103448A KR 1020047020514 A KR1020047020514 A KR 1020047020514A KR 20047020514 A KR20047020514 A KR 20047020514A KR 20050103448 A KR20050103448 A KR 20050103448A
- Authority
- KR
- South Korea
- Prior art keywords
- file
- event
- deletion
- entity
- memory card
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record 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/067—Record 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/07—Record 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
- G06K19/073—Special arrangements for circuits, e.g. for protecting identification code in memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/77—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record 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/067—Record 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/07—Record 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2143—Clearing memory, e.g. to prevent the data from being stolen
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
- Credit Cards Or The Like (AREA)
- Saccharide Compounds (AREA)
Abstract
Description
본 발명은 데이터를 파일로 저장할 수 있는 반도체 메모리 카드에 관한 것으로, 특히 파일 삭제 기술에 관한 것이다. BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a semiconductor memory card capable of storing data as a file, and more particularly to a file deletion technique.
IC 카드 및 SD 카드 등의 반도체 메모리 카드는 방송업 및 출판업를 포함하는 매스 미디어(mass media)로부터 금융기관과 정부 및 지방기관에 이르기까지 여러 산업분야에 실험적으로 도입되어 왔다. 반도체 메모리 카드는 그 특유의 편리함 때문에 이들 산업분야에서 큰 반향을 불러 일으켰다. 반도체 메모리 카드에서, 데이터는 물리적 계층, 파일 시스템 계층, 및 어플리케이션 계층을 갖는 계층모델(layer model)로 관리된다. 그러므로, 사용자는 반도체 메모리 카드에 파일을 생성할 수 있으며, 컴퓨터에 저장된 파일을 삭제하는 것과 동일한 절차로 생성된 파일을 삭제할 수 있다. Semiconductor memory cards, such as IC cards and SD cards, have been experimentally introduced in various industries, from mass media, including broadcasting and publishing, to financial institutions, governments, and local agencies. Semiconductor memory cards have caused great repercussions in these industries because of their inherent convenience. In a semiconductor memory card, data is managed in a layer model having a physical layer, a file system layer, and an application layer. Therefore, the user can create a file in the semiconductor memory card, and can delete the generated file by the same procedure as deleting the file stored in the computer.
종래의 반도체 메모리 카드에서의 파일의 삭제는 관리정보를 오버라이트(overwrite)하는 것을 포함하며, 이 관리정보는 파일 프래그먼트(file fragment)와 파일 엔트리(file entry) 간의 링크관계를 나타내는 파일 할당표(File Allocation Table: FAT)를 포함한다. 파일의 삭제가 관리정보를 오버라이트하도록 한 이유는 다음과 같다. 파일에 대한 관리정보가 오버라이트되면, 반도체 메모리 카드에서 파일 엔티티(fiel entity)를 구성하는 프래그먼트의 위치가 손실되고, 반도체 메모리 카드에 불연속적으로 위치되는 프래그먼트들 사이의 링크관계가 손상되어 파일의 판독이 불가능하게 되기 때문이다. Deletion of a file in a conventional semiconductor memory card includes overwriting management information, which is a file allocation table indicating a link relationship between a file fragment and a file entry. File Allocation Table (FAT). The reason why the deletion of the file causes the management information to be overwritten is as follows. If the management information for the file is overwritten, the position of the fragments constituting the filing entity in the semiconductor memory card is lost, and the link relation between the fragments that are discontinuously located in the semiconductor memory card is damaged and thus This is because reading becomes impossible.
종래의 반도체 메모리 카드에서의 파일 시스템에 의한 데이터 관리는 일본 특허공개공보 제2001-188701호, 미국특허 제5,479,638호 및 일본특허 제3389186호에 기재되어 있다. Data management by a file system in a conventional semiconductor memory card is described in Japanese Patent Laid-Open No. 2001-188701, US Patent No. 5,479,638, and Japanese Patent No. 3389186.
파일 삭제에 관한 상술한 방법에 의하면 FAT와 파일 엔트리가 오버라이트된다. 그러나, 삭제된 파일의 파일 엔티티와 그 파일 엔티티를 구성하는 프래그먼트는 반도체 메모리 카드 상에 여전히 불연속적으로 남아있다. 이러한 삭제된 파일이 금전거래에 관한 데이터를 포함하는 경우, 은행계좌번호 및 ATM 카드번호가 불연속의 프래그먼트들로부터 판독될 위험이 있다. According to the above-described method of file deletion, the FAT and the file entry are overwritten. However, the file entity of the deleted file and the fragments constituting the file entity still remain discontinuous on the semiconductor memory card. If such deleted file contains data relating to monetary transactions, there is a risk that the bank account number and ATM card number may be read from discrete fragments.
또한, 제 3 자가 반도체 메모리 카드 상의 불연속 프래그먼트들을 추적하여 삭제된 파일을 재생함으로써 삭제되었어야 할 파일의 콘텐츠를 취득할 수 있다. Further, the third party can track the discontinuous fragments on the semiconductor memory card to reproduce the deleted file to obtain the contents of the file that should have been deleted.
그러나, 파일삭제에 FAT와 파일 엔트리 등의 관리정보를 오버라이트하는 것이 포함되어야 할 이유가 있다. 그것은 오버라이트에 필요한 처리시간 때문이다. 실험적 계산에 의하면, 512바이트를 오버라이트하는데 2밀리초, 1메가바이트를 오버라이트하는데 4초, 10메가바이트를 오버라이트하는데 40초가 걸렸다. 이것은 완전한 삭제동작을 수행하는데 걸리는 시간, 즉 파일을 완전히 판독할 수 없게 하기 위해 파일의 파일 엔티티를 오버라이트하는데 걸리는 시간을 나타낸다. 또한, 이러한 완전한 삭제동작은 삭제된 파일을 구성하는 프래그먼트의 위치를 나타내는 데이터가 어디에 저장되어야 하는가에 대한 문제를 내포한다. 프래그먼트 뿐아니라 프래그먼트의 위치를 나타내는 데이터가 비휘발성 메모리에 저장되면, 제 3 자는 아마도 완전한 삭제동작이 달성되기 전에 프래그먼트의 위치를 판독할 수 있을 것이다. 따라서, 삭제되는 파일에 관한 정보는 완전한 삭제동작이 수행되는 동안 충분히 보호되지 못한다. However, there is a reason why file deletion should include overwriting management information such as FAT and file entry. It is because of the processing time required for overwriting. Experimental calculations took 2 milliseconds to overwrite 512 bytes, 4 seconds to overwrite 1 megabyte, and 40 seconds to overwrite 10 megabytes. This represents the time taken to perform a complete delete operation, that is, the time taken to overwrite the file entity of the file to make the file completely unreadable. This complete deletion also implies a problem where data representing the location of the fragments constituting the deleted file should be stored. If data indicating the fragment's location as well as the fragment is stored in the nonvolatile memory, the third party will probably be able to read the fragment's location before a complete erase operation is achieved. Thus, the information about the file to be deleted is not sufficiently protected while the complete deletion operation is performed.
도 1은 SDeX 메모리 카드(400)가 사용되는 환경을 도시한 도면1 is a diagram illustrating an environment in which an SDeX memory card 400 is used.
도 2는 본 발명에 따르는 반도체 메모리 카드의 내부 구성도2 is a diagram illustrating an internal configuration of a semiconductor memory card according to the present invention.
도 3은 (도 2에 도시된) TRM(1)의 하드웨어 구성도3 is a hardware configuration diagram of the TRM 1 (shown in FIG. 2)
도 4는 TRM(1)의 마스크 ROM(6)과 CPU(7)(모두 도 3에 도시됨)로 구성되는 부분의 소프트웨어 구성도4 is a software configuration diagram of a part composed of the mask ROM 6 and the CPU 7 (both shown in FIG. 3) of the TRM 1;
도 5는 외부 플래시 메모리(2)와 내부 EEPROM(3)(모두 도 3에 도시됨)의 논리적 포맷을 도시한 도면FIG. 5 shows the logical format of an external flash memory 2 and an internal EEPROM 3 (both shown in FIG. 3).
도 6은 EC 클라이언트 어플리케이션에 대한 확장영역(22), 인증영역(23), 및 비인증영역(24)(도 5에 도시됨)의 내부 구성도6 is an internal configuration diagram of an extended area 22, an authentication area 23, and an unauthenticated area 24 (shown in FIG. 5) for an EC client application.
도 7은 파티션의 구성도7 is a configuration diagram of a partition
도 8의 (A)는 2중 FAT의 구성도, 도 8의 (B)는 루트 디렉토리 엔트리의 구성도, 도 8의 (C)는 사용자 영역의 구성도8A is a configuration diagram of a double FAT, FIG. 8B is a configuration diagram of a root directory entry, and FIG. 8C is a configuration diagram of a user area.
도 9는 파일명 "EOB001.SE1"이 클러스터의 크기에 따라 5개의 프래그먼트로 분할되고, 그 프래그먼트들이 클러스터 003, 004, 005, 00A, 및 00C에 각각 저장되어 있는 상태를 도시한 도면9 is a diagram showing a state in which the file name "EOB001.SE1" is divided into five fragments according to the size of the cluster, and the fragments are stored in the clusters 003, 004, 005, 00A, and 00C, respectively.
도 10은 분할되어 복수의 클러스터에 저장되는 파일명 "EOB001.SE1"에 대한 루트 디렉토리 엔트리와 FAT의 예를 도시한 도면FIG. 10 shows an example of a root directory entry and a FAT for the file name "EOB001.SE1" which is divided and stored in a plurality of clusters.
도 11은 API(10)(도 4에 도시됨)의 구성도11 is a schematic diagram of an API 10 (shown in FIG. 4).
도 12의 (A)는 파일에 대한 기입동작이 판독/기입 핸들러(14)에 의해 어떻게 수행되는지를 보여주는 도면, 도 12의 (B)는 파일에 대한 판독동작이 판독/기입 이벤트 핸들러(14)에 의해 어떻게 수행되는지를 보여주는 도면12A illustrates how a write operation to a file is performed by the read / write handler 14, and FIG. 12B illustrates a read / write event handler 14 to a file. Drawing showing how it is done by
도 13은 삭제 핸들러(16)의 특성에 집중하여 API(10)의 내부 구성을 도시한 도면FIG. 13 is a diagram illustrating an internal configuration of the API 10 focusing on the characteristics of the delete handler 16.
도 14는 소거동작 관리 테이블의 예를 도시한 도면14 is a diagram showing an example of an erase operation management table;
도 15는 이벤트 분석 핸들러(11)(도 11에 도시됨)의 프로시져(peocedure)를 도시한 흐름도FIG. 15 is a flow chart showing the procedure of the event analysis handler 11 (shown in FIG. 11).
도 16은 비명령 실행 핸들러(12)의 프로시져를 도시한 흐름도16 is a flow chart showing the procedure of the non-instruction execution handler 12.
도 17은 판독/기입 핸들러(14)의 프로시져를 도시한 흐름도17 is a flow chart showing the procedure of the read / write handler 14.
도 18은 삭제 핸들러(16)(도 11에 도시됨)의 프로시져를 도시한 흐름도18 is a flow chart showing the procedure of the delete handler 16 (shown in FIG. 11).
도 19는 널-소거 서브루틴(null-clear subroutine)의 프로시져를 도시한 흐름도19 is a flow diagram illustrating the procedure of a null-clear subroutine.
도 20은 삭제 이벤트가 도 10에 도시된 바와 같이 저장된 파일로 생성될 때 삭제 핸들러(16)의 동작을 도시한 도면FIG. 20 illustrates the operation of the delete handler 16 when a delete event is generated with a stored file as shown in FIG. 10.
도 21은 비명령 실행 핸들러(12)와 삭제 핸들러(16)에 의한 오버라이팅 동작을 도시한 도면21 illustrates an overwriting operation by the non-command execution handler 12 and the deletion handler 16.
도 22는 제 2 실시예에 관한 소거동작 관리 테이블의 예를 도시한 도면22 is a diagram showing an example of an erase operation management table according to the second embodiment.
도 23은 제 2 실시예에 관한 널-소거 서브루틴의 프로시져를 도시한 도면FIG. 23 shows a procedure of a null-erase subroutine according to the second embodiment. FIG.
도 24는 역방향 널-소거동작의 프로시져를 도시한 흐름도24 is a flow chart showing the procedure of reverse null-erase operation.
도 25는 제 4 실시예에 관한 메모리 모듈의 구성도Fig. 25 is a configuration diagram of the memory module according to the fourth embodiment.
도 26은 플래시 메모리의 성능과 FeRAM의 성능을 비교한 도면26 is a diagram comparing the performance of the flash memory and the performance of FeRAM.
도 27은 파일 엔트리, FAT, 및 소거동작 관리 테이블과 같은 주기적으로 갱신되는 데이터를 저장하는 FeRAM을 도시한 도면FIG. 27 shows a FeRAM for storing periodically updated data such as a file entry, a FAT, and an erase operation management table.
도 28은 제 5 실시예에 관한 TRM(1)의 메모리(3)의 구성도28 is a configuration diagram of a memory 3 of the TRM 1 according to the fifth embodiment.
본 발명의 목적은, 파일삭제의 명령이 있는 때로부터 그 파일이 완전히 삭제될 때까지, 삭제되는 파일의 파일 엔티티를 보호할 수 있는 반도체 메모리 카드를 제공하기 위한 것이다. It is an object of the present invention to provide a semiconductor memory card capable of protecting a file entity of a file to be deleted from when a file deletion command is issued until the file is completely deleted.
상기 목적은 엔티티 및 관리정보로 구성되는 파일을 저장하는 비휘발성 메모리; 및 처리부와 내부 메모리를 포함하는 부정변경 방지 모듈을 포함하는 반도체 모리 장치에 의해 달성된다. 처리부는 파일에 대한 삭제 이벤트가 생성되면, (i) 부정변경 방지 모듈 내의 내부 메모리에 로케이션 테이블을 생성하고, (ii)관리정보를 오버라이트하는 삭제부를 포함한다. 여기에서, 로케이션 테이블은 엔티티의 위치를 나타내고, 삭제부가 엔티티를 오버라이트할 때 삭제부에 의해 참조된다.The object is a non-volatile memory for storing a file consisting of the entity and management information; And a tamper proof module including a processor and an internal memory. The processing unit includes a deletion unit for generating a location table in the internal memory in the tamper resistant module when a deletion event for a file is generated, and (ii) overwriting management information. Here, the location table indicates the position of the entity and is referenced by the deleting unit when the deleting unit overwrites the entity.
파일의 파일 엔티티는 부정변경 방지 모듈 내의 메모리에 저장된 로케이션 테이블을 참조하여 오버라이트된다. 그러므로, 삭제 이벤트가 생성될 때부터 파일이 완전히 삭제될 때까지 프래그먼트에 관한 정보는 충분히 보호될 수 있다. The file entity of the file is overwritten with reference to the location table stored in memory in the tamper resistant module. Therefore, the information about the fragment can be sufficiently protected from when the deletion event is generated until the file is completely deleted.
파일 엔티티는 삭제 이벤트가 생성된 후의 유휴시간에 로케이션 테이블을 참조하여 오버라이트된다. 이러한 방식으로, 파일 엔티티 오버라이팅의 처리부하는 복수의 유휴시간 단위로 수행되도록 분할된다. 이러한 분할 때문에 반도체 메모리 카드는 곧바로 대기 상태로 복귀할 수 있어, 사용자가 파일 삭제에 오랜 시간이 걸린다는 것을 느끼지 않고 파일 엔티티의 오버라이팅을 완료할 수 있다. The file entity is overwritten with reference to the location table at idle time after the delete event is generated. In this manner, the processing load of the file entity overwriting is divided to be performed in a plurality of idle time units. Because of this division, the semiconductor memory card can immediately return to the standby state, so that the user can complete the overwriting of the file entity without feeling that it takes a long time to delete the file.
또한, 파일을 구성하는 프래그먼트들 사이의 링크 관계를 파괴하는 파일 관리정보의 오버라이팅은 파일 엔티티의 오버라이팅에 대해 우선순위를 부여받는다. 오버라이팅 동작은 상술한 순서로 수행되기 때문에, 시간이 경과함에 따라 프래그먼트의 역분석은 더욱 어려워진다. In addition, overwriting of file management information that breaks the link relationship between the fragments constituting the file is given priority to overwriting the file entity. Since the overwriting operations are performed in the order described above, reverse analysis of the fragments becomes more difficult as time passes.
여기에서, 처리부는, (i)반도체 메모리 카드가 접속된 장치가 내린 명령에 대응하는 동작을 수행하며, (ii) 이 장치가 내린 명령을 분석하고, 그 분석결과에 대응하는 이벤트를 생성하는 분석부를 추가로 포함한다. 또한, 삭제부는, 삭제 이벤트가 생성되면 로케이션 테이블을 생성하고, 관리정보를 오버라이트하는 주삭제부; 및 삭제 이벤트와 다른 이벤트가 생성되면, 생성된 로케이션 테이블을 참조하여 엔티티를 오버라이트하는 부삭제부를 포함한다. Here, the processing unit performs (i) an operation corresponding to a command issued by a device to which a semiconductor memory card is connected, and (ii) an analysis for analyzing a command issued by the device and generating an event corresponding to the analysis result. It further includes wealth. The deletion unit may include: a main deletion unit generating a location table when the deletion event is generated and overwriting management information; And a sub-deletion unit for overwriting an entity by referring to the generated location table when an event different from the deletion event is generated.
여기에서, 반도체 메모리 카드는 삭제 이벤트가 생성되는 시간을 측정하기 시작하는 타이머를 추가로 포함한다. 주삭제부는 타이머가 타임아웃을 알릴 때까지 관리정보에 부가하여 엔티티의 일부분을 오버라이트하고, 부삭제부는 부삭제부에 의해 오버라이트되지 않는 엔티티의 나머지 부분을 오버라이트한다. 따라서, 파일삭제의 지시에 응답하는 오버라이팅 동작은 타임아웃될 때까지 계속된다. 따라서, 예를 들어, 비휘발성 메모리에 대한 오버라이팅 동작에 필요한 기간에 기초하여 타임아웃이 조정되면, 사용자를 위한 대기시간이 최적화될 수 있다. Here, the semiconductor memory card further includes a timer that starts to measure the time at which the erase event is generated. The main deleting unit overwrites a part of the entity in addition to the management information until the timer notifies the timeout, and the sub deleting unit overwrites the remaining part of the entity not overwritten by the sub deleting unit. Thus, the overwriting operation in response to the instruction of file deletion continues until timeout. Thus, for example, if the timeout is adjusted based on the period required for the overwriting operation for the nonvolatile memory, the latency for the user can be optimized.
여기에서, 내부 메모리는 엔티티가 암호화되는 암호화키를 저장하고, 삭제 이벤트가 생성되면, 주삭제부는 파일의 관리정보를 오버라이트하기 전에 암호화키를 오버라이트한다. 암호화키의 오버라이팅은 파일 엔티티의 오버라이팅에 대해 우선순위를 부여받는다. 따라서, 파일의 해독이 불가능하게 된다. 상술한 순서로 오버라이팅 동작이 수행되기 때문에, 시간이 경과함에 따라 프래그먼트의 역분석이 더욱 어려워지게 된다. Here, the internal memory stores an encryption key for encrypting an entity, and when a deletion event is generated, the main deletion unit overwrites the encryption key before overwriting the management information of the file. Overwriting of encryption keys is given priority over overwriting of file entities. Therefore, decryption of the file becomes impossible. Since the overwriting operations are performed in the above-described order, reverse analysis of the fragments becomes more difficult as time passes.
여기에서, 반도체 메모리 카드는 임의의 장치로부터의 접촉식 또는 무접촉식의 전력공급수단에 의해 동작하지만, 처리장치는 반도체 메모리 카드가 장치로부터의 접촉식 전력공급수단에 의해 동작할 때에만 오버라이팅을 수행한다. 결국, 무접촉식 전력공급 중에 파일 엔티티의 오버라이팅은 수행되지 않는다. 이것으로 안정한 동작이 실현된다. Here, the semiconductor memory card is operated by contact or contactless power supply means from any device, but the processing device is overwritten only when the semiconductor memory card is operated by contact power supply means from the device. Do this. As a result, overwriting of the file entity is not performed during contactless powering. This realizes stable operation.
이하, 본 발명의 반도체 메모리 카드의 실시예에 대해 설명하기로 한다. 제 1 실시예에 관한 반도체 메모리 카드는 IC 카드의 내장 부정변경 방지 모듈을 갖는 SDeX 메모리 카드이다. SDeX 메모리 카드는 SD 메모리 카드와 유사하게 SD 휴대형 장치를 위한 기록매체로서 이용되며, IC 카드의 내장 부정변경 방지 모듈을 갖는다. 또한, 제 1 실시예에 관한 SDeX 메모리 카드(400)(도 1)는 접촉 및 무접촉 통신방식으로 외부장치와 통신할 수 있다. Hereinafter, embodiments of the semiconductor memory card of the present invention will be described. The semiconductor memory card according to the first embodiment is an SDeX memory card having a built-in tamper resistant module of an IC card. The SDeX memory card is used as a recording medium for an SD portable device similarly to an SD memory card, and has a built-in tamper resistant module of an IC card. In addition, the SDeX memory card 400 (FIG. 1) according to the first embodiment can communicate with external devices in a contact and contactless communication method.
우선, 본 발명에 따르는 반도체 메모리 카드(SDeX 메모리 카드(400))가 어떻게 사용되는지에 대해 설명하기로 한다. SDeX 메모리 카드(400)는 이동전화 등의 SD 휴대형 장치에 접속되며, 도 1에 도시된 환경에서 사용된다. 도 1은 SDeX 메모리 카드(400)가 사용되는 환경을 도시한다. First, how the semiconductor memory card (SDeX memory card 400) according to the present invention is used will be described. The SDeX memory card 400 is connected to an SD portable device such as a mobile phone and used in the environment shown in FIG. 1 illustrates an environment in which the SDeX memory card 400 is used.
도 1에 도시된 환경은 전자 상거래(Electronic Commerce: EC) 서버(100), 카드 리더/라이터(200), 무선 기지국(210), 및 SD 휴대형 장치(300)를 포함한다. The environment shown in FIG. 1 includes an Electronic Commerce (EC) server 100, a card reader / writer 200, a wireless base station 210, and an SD portable device 300.
EC 서버(100)는 카드 리더/라이터(reader/writer)(200), 무선 기지국(210) 및 네트워크를 통해 SDeX 메모리 카드(400)에 전자 상거래 서비스를 제공한다. EC 서버(100)에서는 다수의 EC 어플리케이션 프로그램이 동작하며, 각 어플리케이션 프로그램은 고유의 전자 상거래 서비스를 SDeX 메모리 카드(400)에 제공한다. EC 서버(100)에서 동작하는 전자 상거래 어플리케이션은 서버 어플리케이션이며, 그들 각각은 상이한 전자 상거래 서비스를 제공한다. 도 1에서, n종류의 전자 상거래 서비스에 대한 EC 서버 어플리케이션은 간략하게 S_APL1, 2, 3, ... n으로 각각 표현된다. 여기에서는, n종류의 서버 어플리케이션이 있다. EC 서버(100)는 네트워크, 카드 리더/라이터(200) 및 무선 기지국(210)을 통해 SDeX 메모리 카드(400)에 EC 명령을 내림으로써 전자 상거래 서비스를 제공한다. The EC server 100 provides an e-commerce service to the SDeX memory card 400 via the card reader / writer 200, the wireless base station 210 and the network. In the EC server 100, a plurality of EC application programs operate, and each application program provides a unique e-commerce service to the SDeX memory card 400. The e-commerce applications running on the EC server 100 are server applications, each of which provides a different e-commerce service. In Fig. 1, EC server applications for n kinds of e-commerce services are briefly represented as S_APL1, 2, 3, ... n, respectively. There are n kinds of server applications here. The EC server 100 provides an electronic commerce service by issuing EC commands to the SDeX memory card 400 through the network, the card reader / writer 200 and the wireless base station 210.
카드 리더/라이터(200)는, 예를 들면, 신용카드 회사와 금융기관의 현금 자동지급기 또는 상점의 금전 등록기에 포함되는 장치이다. 카드 리더/라이터(200)는 SDeX 메모리 카드(400)에 전력을 공급하며 SDeX 메모리 카드(400)와 무접촉식으로 입출력을 수행한다. 카드 리더/라이터(200)는 네트워크에 접속된다. SDeX 메모리 카드(400)는 카드 리더/라이터(200)를 통해 EC 서버(100)가 공급하는 전자 상거래 서비스를 수신한다. The card reader / writer 200 is, for example, a device included in a cash dispenser of a credit card company and a financial institution or a cash register of a store. The card reader / writer 200 supplies power to the SDeX memory card 400 and performs input / output without contact with the SDeX memory card 400. The card reader / writer 200 is connected to a network. The SDeX memory card 400 receives an e-commerce service supplied by the EC server 100 through the card reader / writer 200.
무선 기지국(210)은 빌딩 꼭대기와 전신주에 배치된다. 무선 기지국(210)은 이동 전화식 SD 휴대형 장치(300)와 무선으로 데이터의 입출력을 실행한다. 무선 기지국(210)은 네트워크에 접속된다. 또한, SD 휴대형 장치(300)는 무선 기지국(210)을 통해 EC 서버(100)가 공급하는 전자 상거래 서비스를 수신한다. The wireless base station 210 is located on top of the building and on the telephone pole. The wireless base station 210 performs input / output of data wirelessly with the mobile telephone type SD portable device 300. The wireless base station 210 is connected to a network. In addition, the SD portable device 300 receives an e-commerce service provided by the EC server 100 through the wireless base station 210.
SD 휴대형 장치(300)는 SDeX 메모리 카드(400)를 SD 휴대형 장치(300)에 접속시키는 방식에 의해 SDeX 메모리 카드(400)에 액세스할 수 있다. SD 휴대형 장치(300)에는 브라우저 소프트웨어가 설치되므로 사용자는 브라우저의 사용자 인터페이스를 통해 SDeX 메모리의 파일 시스템(file system)(이하, FS라 함)에 액세스할 수 있다. 이러한 파일 시스템의 액세스는, SD 휴대형 장치(300)가 SD 메모리 카드에 의해 규정된 SD 명령을 SDeX 메모리 카드(400)에 내리고, SDeX 메모리 카드(400)로부터의 명령에 대한 응답을 수신하는 방식으로 수행된다. SD 휴대형 장치(300)가 SDeX 메모리 카드(400)를 부트스트랩(bootstrap)하면, SDeX 메모리 카드(400)는 SD 휴대형 장치(300)에 통합되어 IC 카드로서의 기능을 한다. 여기에서, SD 휴대형 장치(300)의 배면에는 헬리컬 안테나가 내장된다. SD 휴대형 장치(300)가 IC 카드로서의 기능을 하면, 헬리컬 안테나는 카드 리더/라이터(200)로부터 SDeX 메모리 카드(400)로 전력을 공급한다. 또한 SD 휴대형 장치(300)는 SDeX 메모리 카드(400)와 명령/응답을 주고 받으며, EC 서버(100)와 명령/응답을 주고 받는다. 구체적으로, SD 휴대형 장치(300)는 EC 서버(100)로부터의 전자 상거래 명령을 캡슐화하여(encapsulate) 확장된 SD 명령을 생성하고, 그 확장된 SD 명령을 SDeX 메모리 카드(400)에 출력한다. 또한, SD 휴대형 장치(300)는 SDeX 메모리 카드(400)로부터의 SD 응답으로부터 EC 응답을 취득하여, 그 EC 응답을 SDeX 메모리 카드(400)에 출력한다. SD 휴대형 장치(300)가 SDeX 메모리 카드(400)를 부트스트랩하면 SDeX 메모리 카드(400)는 IC 카드로서의 기능을 하며, "EC 모드"로 된다. SD 휴대형 장치(300)가 SDeX 메모리 카드(400)를 저장매체로서 사용하면, SDeX 메모리 카드(400)는 "SD 모드"로 된다. The SD portable device 300 may access the SDeX memory card 400 by connecting the SDeX memory card 400 to the SD portable device 300. Since the SD portable device 300 is equipped with browser software, a user can access a file system (hereinafter, referred to as FS) of the SDeX memory through the browser's user interface. The access of this file system is such that the SD portable device 300 issues SD commands defined by the SD memory card to the SDeX memory card 400 and receives a response to the command from the SDeX memory card 400. Is performed. When the SD portable device 300 bootstraps the SDeX memory card 400, the SDeX memory card 400 is integrated into the SD portable device 300 to function as an IC card. Here, a helical antenna is built into the back of the SD portable device 300. When the SD portable device 300 functions as an IC card, the helical antenna supplies power from the card reader / writer 200 to the SDeX memory card 400. In addition, the SD portable device 300 exchanges commands / responses with the SDeX memory card 400 and exchanges commands / responses with the EC server 100. Specifically, the SD portable device 300 encapsulates an e-commerce command from the EC server 100 to generate an extended SD command, and outputs the extended SD command to the SDeX memory card 400. In addition, the SD portable apparatus 300 obtains an EC response from the SD response from the SDeX memory card 400 and outputs the EC response to the SDeX memory card 400. When the SD portable device 300 bootstraps the SDeX memory card 400, the SDeX memory card 400 functions as an IC card and enters the "EC mode". When the SD portable device 300 uses the SDeX memory card 400 as a storage medium, the SDeX memory card 400 is in the "SD mode".
SDeX 메모리 카드(400)가 SD 모드이면, 그것은 SD 메모리 카드로서 사용된다. SD 모드에서는, SD 휴대형 장치(300)가 SDeX 메모리 카드(400)의 호스트 장치이다. 이 경우, SDeX 메모리 카드(400)는 분배서버로부터 SD 휴대형 장치로 다운로드되는 오디오 데이터 및 비디오 데이터를 저장하기 위해 사용된다. 따라서, 호스트 장치는 SDeX 메모리 카드(400)에 저장된 오디오 데이터 및 비디오 데이터를 재생할 수 있다. If the SDeX memory card 400 is in the SD mode, it is used as the SD memory card. In the SD mode, the SD portable device 300 is a host device of the SDeX memory card 400. In this case, the SDeX memory card 400 is used to store audio data and video data downloaded from the distribution server to the SD portable device. Therefore, the host device can reproduce audio data and video data stored in the SDeX memory card 400.
EC 모드에서는, SDeX 메모리 카드(400)가 IC 카드로서 사용된다. 또한, EC 모드에서는 SDeX 메모리 카드(400)가 SD 휴대형 장치(300)에 접속된다. 그러나 SDeX 메모리 카드(400)의 호스트 장치는 SD 휴대형 장치(300)가 아니라 네트워크 상의 EC 서버(100)이다. SDeX 메모리 카드(400)는 카드 리더/라이터(200) 및 무선 기지국(210)과 함께 SDeX 메모리 카드(400)가 접속되는 SD 휴대형 장치(300)에 의해 EC 서버(100)와 통신한다. SDeX 메모리 카드(400)와 EC 서버(100) 사이에서는 이러한 방식으로 금융거래가 실행된다. In the EC mode, the SDeX memory card 400 is used as an IC card. In addition, in the EC mode, the SDeX memory card 400 is connected to the SD portable device 300. However, the host device of the SDeX memory card 400 is not the SD portable device 300 but the EC server 100 on the network. The SDeX memory card 400 communicates with the EC server 100 by the SD portable device 300 to which the SDeX memory card 400 is connected together with the card reader / writer 200 and the wireless base station 210. Financial transactions are executed in this manner between the SDeX memory card 400 and the EC server 100.
본 실시예에 관한 SDeX 메모리 카드(400)는 공급된 오디오 데이터와 비디오 데이터를 저장하는 기능외에도 IC카드로서의 기능을 갖기 때문에, 사용자에게 더욱 편리함을 제공한다. Since the SDeX memory card 400 according to the present embodiment has a function as an IC card in addition to a function of storing supplied audio data and video data, it is more convenient for the user.
여기에서, SDeX 메모리 카드(400)는, 도 1에 의하면 카드 리더/라이터(200)를 통해 EC 모드로 EC 서버(100)에 액세스한다. 이와 달리, SDeX 메모리 카드(400)는 SD 휴대형 장치(300)가 무선 기지국(210)과 네트워크를 통해 EC 서버(100)에 액세스하는 방식으로 EC 서버(100)에 액세스할 수 있다. Here, the SDeX memory card 400 accesses the EC server 100 in the EC mode through the card reader / writer 200 according to FIG. 1. Alternatively, the SDeX memory card 400 may access the EC server 100 in such a manner that the SD portable device 300 accesses the EC server 100 through the wireless base station 210 and the network.
이하, 본 발명에 의한 반도체 메모리 카드를 제조하는 방법에 대해 설명하기로 한다. 본 발명에 따르는 반도체 메모리 카드는 도 2 및 도 3에 도시된 바와 같은 내부 구성을 가지며, 산업적으로 제조될 수 있다. Hereinafter, a method of manufacturing a semiconductor memory card according to the present invention will be described. The semiconductor memory card according to the present invention has an internal configuration as shown in Figs. 2 and 3 and can be manufactured industrially.
도 2에 도시된 바와 같이, 커넥터, 부정변경 방지 모듈 칩(Tamper-Resistant Module chip: TRM)(1), 및 256메가 바이트의 용량을 갖는 플래시 메모리 칩(2)이 본 발명에 따르는 반도체 메모리 카드에 패키징된다. As shown in Fig. 2, a connector, a Tamper-Resistant Module chip (TRM) 1, and a flash memory chip 2 having a capacity of 256 megabytes are a semiconductor memory card according to the present invention. Packaged in
부정변경 방지(tamper-resistance)에 대해서는 다양한 정의가 있다. 그러나, 부정변경 방지의 일반적인 정의는 다음과 같다. There are various definitions of tamper-resistance. However, the general definition of tamper protection is as follows.
(1) TRM 칩이 물리적으로는 공개되어 있더라도 그 내부구조는 알려질 수 없다. (1) Even though the TRM chip is physically open, its internal structure is unknown.
(2) 전자기파가 TRM 칩에 조사(照射)되더라도 그 내부구조는 알려질 수 없다.(2) Even if electromagnetic waves are irradiated on the TRM chip, its internal structure is unknown.
(3) TRM에 입력되는 데이터의 길이와 그 데이터를 처리하는 시간 사이에는 비선형적 관계가 있다. (3) There is a non-linear relationship between the length of data input to the TRM and the processing time of that data.
(4) 출력 데이터는 입력 데이터의 에러에 기초한 역조작(reverse operation)을 통해서는 취득되지 않는다. (4) The output data is not obtained through reverse operation based on an error of the input data.
이들 4가지 특성 때문에 TRM(1)은 다양한 종류의 역조작을 방어한다. 이하, TRM(1)의 하드웨어 구성에 대해 설명하기로 한다. Because of these four characteristics, the TRM 1 defends against various kinds of reverse operations. Hereinafter, the hardware configuration of the TRM 1 will be described.
도 3은 TRM(1)의 하드웨어 구성을 도시한 도면이다. 도 3에 도시된 바와 같이, 내부 EEPROM(3), 외부 메모리 제어부(4), 호스트 인터페이스 모듈(HIM)(5), 마스크 ROM(6), 및 CPU(7)가 마이크로 컴퓨터 시스템을 구성하도록 TER(1)에 패키징된다. 3 is a diagram illustrating a hardware configuration of the TRM 1. As shown in FIG. 3, the internal EEPROM 3, the external memory controller 4, the host interface module (HIM) 5, the mask ROM 6, and the CPU 7 configure the microcomputer system. It is packaged in (1).
내부 EEPROM(3)은 판독 및 기입가능한 내부 메모리이다. TRM(1)으로서 패키징된 마이크로 컴퓨터 시스템은 단위 면적당 제조비용이 높다. TRM(1)의 내부 EEPROM(3)은 32킬로 바이트의 용량을 갖는다. 이하에서는 도 2에 도시된 플래시 메모리(2)를 내부 EEPROM(3)과 구별하기 위해 때때로 외부 메모리라 언급하기도 한다. The internal EEPROM 3 is an internal memory that can be read and written. Microcomputer systems packaged as TRM 1 have a high manufacturing cost per unit area. The internal EEPROM 3 of the TRM 1 has a capacity of 32 kilobytes. Hereinafter, the flash memory 2 shown in FIG. 2 is sometimes referred to as an external memory to distinguish it from the internal EEPROM 3.
외부 메모리 제어부(4)는 외부 플래시 메모리(2)에 액세스하기 위해 독점적으로 사용되는 회로이다. 외부 플래시 메모리(2)에 대한 액세스는 SD 휴대형 장치(300)가 내린 SD 명령에 기초하여 실행된다. The external memory control section 4 is a circuit exclusively used to access the external flash memory 2. Access to the external flash memory 2 is executed based on the SD command issued by the SD portable device 300.
HIM(5)은 SD 휴대형 장치(300)가 내린 SD 명령을 그들의 명령의 수를 참조하여 분류한다. SD 명령의 수는 1부터 m까지의 수 또는 (m+1) 이상까지 확장된 수 이다. SD 명령의 수가 1과 m의 범위 안에 있으면, HIM(5)은 SD 명령을 외부 메모리 제어부(4)에 출력한다. SD 명령의 SD 명령수가 (m+1) 이상이면, HIM(5)은 EC 명령을 취득하여 CPU(7)에 출력한다. 이 EC 명령은 확장된 SD 명령으로 캡슐화되어 있다. The HIM 5 classifies SD commands issued by the SD portable device 300 by reference to the number of their commands. The number of SD commands is from 1 to m or extended to (m + 1) or more. If the number of SD commands is in the range of 1 and m, the HIM 5 outputs the SD commands to the external memory control section 4. If the number of SD instructions of the SD instruction is (m + 1) or more, the HIM 5 acquires an EC instruction and outputs it to the CPU 7. This EC command is encapsulated in an extended SD command.
마스크 ROM(6)은 자바 가상머신(JAVA Virtual Machine)과 어플리케이션 프로그램을 미리 저장한다. SDeX 메모리 카드(400)가 SD 휴대형 장치(300)를 부트스트랩하면, 부트스트랩은 마스크 ROM(6)의 미리 정해진 어드레스로부터 시작한다. 따라서 SD 휴대형 장치(300)는 활성화되어 EC 모드로 된다. The mask ROM 6 stores a Java virtual machine and an application program in advance. When the SDeX memory card 400 bootstraps the SD portable device 300, the bootstrap starts from a predetermined address of the mask ROM 6. Thus, the SD portable device 300 is activated to enter the EC mode.
CPU(7)는 마스크 ROM(6)에 저장된 프로그램을 실행한다. The CPU 7 executes a program stored in the mask ROM 6.
도 4는 TRM(1)(도 3에 도시)의 마스크 ROM(6)과 CPU(7)로 구성되는 부분의 소프트웨어 구성을 도시한 도면이다. 점선 wk1로 둘러싸인 부분은 IC 카드와 등가의 모듈이다. TRM(1)의 나머지 부분은 SD 메모리 카드와 등가의 모듈이다. FIG. 4 is a diagram showing a software configuration of a portion composed of the mask ROM 6 and the CPU 7 of the TRM 1 (shown in FIG. 3). The part surrounded by the dotted line wk1 is an equivalent module to an IC card. The rest of the TRM 1 is a module equivalent to an SD memory card.
SD 메모리 카드와 등가의 TRM(1)의 부분은 외부 메모리 제어부(4)와 HIM(5)을 포함한다. HIM(5)은 SD 메모리 카드로서의 기능을 가질 뿐 아니라 SD 메모리 카드 등가모듈과 IC 카드 등가모듈 사이의 제 1 접촉부로서의 기능도 갖는다. The portion of the TRM 1 equivalent to the SD memory card includes an external memory controller 4 and a HIM 5. The HIM 5 not only functions as an SD memory card but also as a first contact portion between the SD memory card equivalent module and the IC card equivalent module.
IC 카드 호환모듈은 계층구조를 갖는다. 이 계층 구조에서, 내부 EEPROM(3)은 최하위 계층(물리적 계층)이다. 어플리케이션 인터페이스(API)(10)는 내부 EEPROM(3)이 존재하는 계층 바로 위의 계층이다. 자바 가상머신(9)은 API(10)가 존재하는 계층 바로 상부의 계층이다. EC 클라이언트 어플리케이션(8)은 최상위 계층이다. SD 메모리 카드 호환부분의 외부 메모리 제어부(4)는 내부 EEPROM(3)과 유사한 물리적 계층에 위치된다. IC card compatible modules have a hierarchical structure. In this hierarchy, the inner EEPROM 3 is the lowest layer (physical layer). The application interface (API) 10 is a layer just above the layer in which the internal EEPROM 3 resides. The Java virtual machine 9 is a layer just above the layer in which the API 10 exists. The EC client application 8 is the top layer. The external memory control section 4 of the SD memory card compatible section is located in a physical layer similar to the internal EEPROM 3.
이하, 도 4에 도시된 소프트웨어의 구조(EC 클라이언트 어플리케이션(8), 자바 가상머신(9), 및 API(10))에 대해 설명하기로 한다. Hereinafter, the software structure (EC client application 8, Java virtual machine 9, and API 10) shown in FIG. 4 will be described.
EC 클라이언트 어플리케이션(8)은 자바(JAVA)로 쓰여진 EC 어플리케이션의 일종이며, 사용자의 지시에 기초하여 EC 서버(100)에 액세스한다. 상이한 EC 서비스에 각각 대응하는 여러 종류의 EC 서버 어플리케이션이 EC 서버(100)에서 동작하기 때문에, 상이한 EC 서비스에 각각 대응하는 여러 종류의 EC 클라이언트 어플리케이션이 SDeX 메모리 카드(400)에서 동작한다. 도 4에서, EC 클라이언트 어플리케이션 C_APL1, 2, 3, ....n은 EC 서버(100) 상의 EC 어플리케이션(S_APL 1, 2, 3, ....n)에 각각 대응하는 것으로 도시되어 있다. EC 클라이언트 어플리케이션(8)은 카드 리더/라이터(200), 무선 기지국(210), 및 네트워크를 통해 EC 서버(100) 상의 EC 서버 어플리케이션과 명령을 주고받음으로써 각종 EC 서비스를 취득하게 된다. EC 서버 어플리케이션으로부터 수신된 EC 명령이 데이터 기입 명령이면, EC 클라이언트 어플리케이션(8)은 EC 명령을 자바 가상머신(9)을 통해 API(10)에 출력한다. The EC client application 8 is a kind of EC application written in JAVA, and accesses the EC server 100 based on a user's instruction. Since different types of EC server applications corresponding to different EC services each run on the EC server 100, different types of EC client applications respectively corresponding to different EC services run on the SDeX memory card 400. In FIG. 4, the EC client applications C_APL1, 2, 3,.. N are shown to correspond to the EC applications S_APL 1, 2, 3,... N on the EC server 100, respectively. The EC client application 8 obtains various EC services by exchanging commands with the EC server application on the EC server 100 via the card reader / writer 200, the wireless base station 210, and the network. If the EC command received from the EC server application is a data write command, the EC client application 8 outputs the EC command to the API 10 via the Java virtual machine 9.
또한, EC 클라이언트 어플리케이션(8)은 사용자의 지시에 기초하여 EC 모드로 외부 플래시 메모리(2)와 내부 EEPROM(3)에 액세스한다. 이 액세스는 파일을 생성하고, 그 생성된 파일에 대하여 판독동작 및 기입동작을 수행하는 등의 파일 액세스를 포함한다. In addition, the EC client application 8 accesses the external flash memory 2 and the internal EEPROM 3 in EC mode based on the instruction of the user. This access includes file access such as generating a file, performing a read operation and a write operation on the generated file.
자바 가상머신(9)(도 4의 Java Card VM(등록된 상표))은 EC 클라이언트 어플리케이션(8)이 기입된 자바언어를 CPU(7)의 원시 코드로 변환하며, CPU(7)로 하여금 EC 클라이언트 어플리케이션(8)을 실행하도록 한다. The Java virtual machine 9 (Java Card VM (registered trademark) in FIG. 4) converts the Java language in which the EC client application 8 is written into the source code of the CPU 7, and causes the CPU 7 to execute the EC. Run the client application 8.
API(10)는 EC 클라이언트 어플리케이션(8)의 명령에 기초하여 외부 플래시 메모리(2)와 내부 EEPROM(3)에 판독/기입을 수행한다. 이상, SDeX 메모리 카드(400)의 소프트웨어 구조에 대해 설명하였다. The API 10 performs read / write to the external flash memory 2 and the internal EEPROM 3 based on the instructions of the EC client application 8. The software structure of the SDeX memory card 400 has been described above.
이하, 외부 플래시 메모리(2)와 내부 EEPROM(3)의 논리적 포맷에 대해 설명하기로 한다. 도 5는 외부 플래시 메모리(2)와 내부 EEPROM(3)의 논리적 포맷을 도시한 도면이다. 외부 플래시 메모리(2)와 내부 EEPROM(3)은 2개의 메모리 공간, 즉 sm1과 sm2를 갖는다. 메모리 공간 sm1은 TRM(10) 내의 CPU(7)에 의해 액세스가능하고, EC 클라이언트 어플리케이션을 위한 영역(21)과 EC 클라이언트 어플리케이션을 위한 확장된 영역(22)으로 구성된다. 메모리 공간 sm2는 TRM(1) 내의 CPU(7)를 통하지 않고도 SD 휴대형 장치(300)로부터 액세스 가능하다. 메모리 공간 sm2는 인증영역(23)과 비인증 영역(24)으로 구성된다. 인증영역(23)과 비인증영역(24)은 SD 메모리 카드의 메모리 영역이며, 일본특허 제3389186호에 상세히 설명되어 있다. Hereinafter, the logical formats of the external flash memory 2 and the internal EEPROM 3 will be described. 5 shows the logical format of the external flash memory 2 and the internal EEPROM 3. The external flash memory 2 and the internal EEPROM 3 have two memory spaces, namely sm1 and sm2. The memory space sm1 is accessible by the CPU 7 in the TRM 10 and consists of an area 21 for the EC client application and an extended area 22 for the EC client application. The memory space sm2 is accessible from the SD portable device 300 without going through the CPU 7 in the TRM 1. The memory space sm2 is composed of an authentication area 23 and an unauthentication area 24. The authentication area 23 and the non-authentication area 24 are memory areas of the SD memory card, which are described in detail in Japanese Patent No. 3389186.
도 6은 ISO/IEC 9293에 따르는 파일 시스템 구조를 갖는, EC 클라이언트 어플리케이션을 위한 확장영역(22), 인증영역(23), 비인증 영역(24)의 구성을 도시한 도면이다. 그러나, ISO/IEC 9293 파일 시스템 구조는 하나의 예일 뿐이며 단지 편리하기 때문에 선택된 것이다. EC 클라이언트 어플리케이션을 위한 확장영역(22), 인증영역(23) 및 비인증 영역(24)은 유니버셜 디스크 포맷(Universal Disk Format: UDF) 등의 다른 파일 시스템을 가질 수도 있다. 일반적으로 말해, 프래그먼트의 길이가 변경가능하고, 시작 어드레스와 데이터 길이가 엔트리 정보에 나타나 있는 파일 시스템 구조를 이용할 수 있다. FIG. 6 is a diagram showing the configuration of an extended area 22, an authentication area 23, and an unauthenticated area 24 for an EC client application having a file system structure in accordance with ISO / IEC 9293. FIG. However, the ISO / IEC 9293 file system structure is only one example and is chosen for convenience only. The extended area 22, the authenticated area 23, and the non-authenticated area 24 for the EC client application may have other file systems, such as Universal Disk Format (UDF). Generally speaking, it is possible to use a file system structure in which the length of the fragment is changeable and the start address and data length are indicated in the entry information.
EC 클라이언트 어플리케이션을 위한 확장영역(22)은 내부 EEPROM(3) 상의 영역(22a)과 외부 플래시 메모리(2) 상의 보안 플래시 영역(22b)으로 구성된다. 보안 플래시 영역(22b)은 파티션 1, 2, 3, ... n, 즉 파일 시스템 영역을 갖는다. 한편, 내부 EEPROM(3)내의 영역(22a)은 마스터 부트 레코더 및 파티션에 대한 참조 테이블(파티션 테이블 1, 2, 3, ...n)을 포함한다. The extended area 22 for the EC client application consists of an area 22a on the internal EEPROM 3 and a secure flash area 22b on the external flash memory 2. The secure flash area 22b has partitions 1, 2, 3, ... n, i.e., file system areas. On the other hand, the area 22a in the internal EEPROM 3 includes reference tables (partition tables 1, 2, 3, ... n) for the master boot recorder and partitions.
EC 클라이언트 어플리케이션을 위한 확장영역(22), 인증영역(23), 및 비인증 영역(24) 내의 파티션은 동일한 내부 구조를 갖는다. 도 7은 이러한 파티션의 구조를 도시한다. The partitions in the extended area 22, authentication area 23, and non-authentication area 24 for the EC client application have the same internal structure. 7 shows the structure of such a partition.
파티션은 파티션 부트 섹터, 2중 파일 할당표(FAT), 루트 디렉토리 엔트리, 및 사용자 영역을 포함한다. The partition includes a partition boot sector, a dual file allocation table (FAT), a root directory entry, and a user area.
파티션 부트 섹터는 파티션에 관한 정보를 보여주는 테이블이다. The partition boot sector is a table showing information about a partition.
2중 FAT는 ISO/IEC 9293에 따르는 2개의 FAT를 포함한다. 각 FAT는 클러스터와 1대1로 대응하는 복수의 FAT 엔트리를 포함한다. 각 FAT 엔트리는 대응하는 클러스터가 사용되는지의 여부를 나타낸다. 만약 대응하는 클러스터가 사용되지 않으면 FAT 엔트리의 값은 "0"으로 설정된다. 대응하는 클러스터가 사용되면 FAT 엔트리의 값은 클러스터들 사이의 링크 관계, 즉 대응 클러스터 다음에 판독되는 다음 클러스터를 나타내는 클러스터 개수의 값으로 설정된다. 도 8의 (A)의 점선 ff1은 FAT에 포함된 복수의 FAT 엔트리(002, 003, 004, 005, ...)를 나타낸다. 각 FAT 엔트리(002, 003, 004, 005, ...)에 주어진 번호는 대응하는 클러스터, 즉 FAT 엔트리에 대응하는 클러스터의 클러스터 번호를 나타낸다. Dual FAT includes two FATs according to ISO / IEC 9293. Each FAT includes a plurality of FAT entries corresponding one-to-one with a cluster. Each FAT entry indicates whether the corresponding cluster is used. If the corresponding cluster is not used, the value of the FAT entry is set to "0". If the corresponding cluster is used, the value of the FAT entry is set to the value of the number of clusters representing the link relationship between the clusters, that is, the next cluster to be read after the corresponding cluster. A dotted line ff1 in FIG. 8A shows a plurality of FAT entries 002, 003, 004, 005, ... included in the FAT. The number given to each FAT entry 002, 003, 004, 005, ... represents the cluster number of the corresponding cluster, that is, the cluster corresponding to the FAT entry.
루트 디렉토리 엔트리는 루트 디렉토리 내의 복수의 파일 엔트리를 포함하며, 각각의 파일 엔트리는 하나의 파일에 대응한다. 각각의 파일 엔트리는 파일의이름을 나타내는 "파일명", 파일의 파일 확장자를 나타내는 "파일 확장자", 파일의 시작을 저장하는 클러스터를 나타내는 "제 1 클러스터 번호", 파일의 속성을 나타내는 "파일 속성", 파일이 저장되는 시간을 나타내는 "저장시간", 파일이 저장되는 일자를 나타내는 "저장일자", 파일의 데이터 길이를 나타내는 "파일길이"의 엔트리들을 포함한다. The root directory entry includes a plurality of file entries in the root directory, each file entry corresponding to one file. Each file entry has a "file name" representing the name of the file, a "file extension" representing the file extension of the file, a "first cluster number" representing the cluster storing the beginning of the file, and a "file attribute" representing the attribute of the file. Entries include a "storing time" indicating the time the file is stored, a "storing date" indicating the date the file is stored, and a "file length" indicating the data length of the file.
사용자 영역에서는 파일이 저장되고, 가장 작은 단위는 클러스터이다. 도 8의 (C)의 점선 ff2는 사용자 영역 내의 복수의 클러스터(002, 003, 004, 005, ...)를 나타낸다. 도 8의 (C)에서, 번호 002, 003, 004, 005, 006, 007, 008, ...는 각 클러스터를 식별하기 위한 목적을 갖는 16진수의 3자리 클러스터 번호이다. 데이터 영역에 대한 액세스는 가장 작은 클러스터의 단위로 실행되기 때문에 데이터 영역 내의 위치는 클러스터 번호로 표시된다. In the user space, files are stored and the smallest unit is a cluster. The dotted line ff2 in Fig. 8C shows a plurality of clusters 002, 003, 004, 005, ... in the user area. In Fig. 8C, the numbers 002, 003, 004, 005, 006, 007, 008, ... are hexadecimal three-digit cluster numbers for the purpose of identifying each cluster. Since access to the data area is performed in units of the smallest cluster, the position in the data area is indicated by the cluster number.
여기에서, 파일명 EOB001.SE1이 루트 디렉토리에 저장되는 방법, 즉 파일 저장방법의 예에 대해 도 9를 참조하여 설명하기로 한다. 여기에서, "EOB001.SE1"의 "EOB"는 EC 오브젝트(Object)를 단축한 형태이며, "SE"는 "Secure EC"를 따서 명명한 확장자이다. 상술한 바와 같이, 데이터 영역에서 액세스 가능한 가장 작은 단위는 클러스터이기 때문에, 파일 EOB001.SE1은 가장 작은 단위의 클러스터로 데이터 영역에 저장될 필요가 있다. 우선, 파일 EOB001.SE1은 각각이 클러스터의 크기를 갖는 프래그먼트들로 분할되고, 분할된 각각의 프래그먼트는 클러스터에 기입된다. 도 9는 파일 EOB001.SE1이 클러스터 크기에 따라 5개의 프래그먼트로 분할되고, 그 프래그먼트들이 각각 클러스터 003, 004, 005, 00A, 및 00C로 저장된 것을 도시하고 있다. Here, an example of a method in which the file name EOB001.SE1 is stored in the root directory, that is, a file storing method will be described with reference to FIG. 9. Here, "EOB" of "EOB001.SE1" is a short form of an EC object, and "SE" is an extension named after "Secure EC". As described above, since the smallest unit accessible in the data area is a cluster, the file EOB001.SE1 needs to be stored in the data area in a cluster of the smallest unit. First, the file EOB001.SE1 is divided into fragments each of which has a cluster size, and each divided fragment is written to the cluster. FIG. 9 shows that the file EOB001.SE1 is divided into five fragments according to the cluster size, and the fragments are stored in clusters 003, 004, 005, 00A, and 00C, respectively.
파일 EOB001.SE1이 상술한 바와 같은 프래그먼트이면, 디렉토리 엔트리와 FAT는 도 10에 도시된 바와 같이 설정될 필요가 있다. If the file EOB001.SE1 is a fragment as described above, the directory entry and the FAT need to be set as shown in FIG.
도 10은 EOB001.SE1이 복수의 클러스터로 분리되어 저장되어 있을 때의 디렉토리 엔트리와 FAT를 예로서 도시한 도면이다. 도 10에 따르면, 파일 EOB001.SE1의 시작부분이 클러스터 003에 저장되기 때문에, 루트 디렉토리 엔트리 내의 "제 1 클러스터 번호" 엔트리는 003, 즉 시작부분을 저장한 클러스터의 클러스터 번호를 나타낸다. 도 10으로부터 파일 EOB001.SE1의 2개의 후속 프래그먼트가 클러스터 004와 005로 각각 저장되어 있음을 알 수 있다. 파일 EOB001.SE1의 시작부분을 저장한 클러스터 003은 FAT 엔트리 003 (004)에 대응한다. 여기에서, FAT 엔트리 003은 시작부분에 계속되는 것을 저장한 클러스터 004를 지시하는 004를 나타낸다. 또한, 시작부분에 계속되는 2개의 프래그먼트를 저장한 클러스터 004 및 005는 FAT 엔트리 004 (005) 및 005 (00A)에 대응한다. 이들 FAT 엔트리는 후속 프래그먼트를 저장한 클러스터 005 및 00A를 지시하는 005와 00A를 나타낸다. Fig. 10 is a diagram showing a directory entry and a FAT as an example when EOB001.SE1 is stored separately in a plurality of clusters. According to Fig. 10, since the beginning of the file EOB001.SE1 is stored in the cluster 003, the "first cluster number" entry in the root directory entry indicates 003, that is, the cluster number of the cluster storing the beginning. It can be seen from FIG. 10 that two subsequent fragments of the file EOB001.SE1 are stored in clusters 004 and 005, respectively. The cluster 003 storing the beginning of the file EOB001.SE1 corresponds to the FAT entry 003 (004). Here, FAT entry 003 represents 004 indicating cluster 004 which stores what follows at the beginning. Also, clusters 004 and 005 storing two fragments following the beginning correspond to FAT entries 004 (005) and 005 (00A). These FAT entries represent 005 and 00A indicating clusters 005 and 00A storing subsequent fragments.
FAT 엔트리 내의 클러스터 번호를 화살표 fk1, fk2, fk3, fk4, 및 fk5를 따라 추적하면, 파일 EOB001.SE1을 구성하는 모든 프래그먼트가 판독될 수 있다. 상술한 설명으로부터, SDeX 메모리 카드(400)의 사용자 영역에 대해 액세스 가능한 가장 작은 단위는 클러스터이며, 이들 클러스터는 FAT와 1대1로 대응한다는 것을 알 수 있다. EOB 파일의 마지막을 저장하는 클러스터(도 9의 클러스터 00C)에 대응하는 FAT 엔트리는 "FFF"를 나타내며, 이것은 파일의 최종 프래그먼트를 저장하는 대응 클러스터를 나타낸다. If the cluster number in the FAT entry is tracked along the arrows fk1, fk2, fk3, fk4, and fk5, all fragments constituting the file EOB001.SE1 can be read. From the above description, it can be seen that the smallest unit accessible to the user area of the SDeX memory card 400 is a cluster, and these clusters correspond one-to-one with FAT. The FAT entry corresponding to the cluster storing the end of the EOB file (cluster 00C in FIG. 9) represents "FFF", which represents the corresponding cluster storing the last fragment of the file.
이하, API(10)의 구조에 대해 설명하기로 한다. 여기에서, 이벤트는, 예를 들어, EC 명령, 하드웨어의 인터럽션 발생 및 통신 데이터의 입력 등, API(10)에 대한 입력을 나타내는 포괄적인 용어이다. API(10)는 API(10)의 내외부에서 발생하는 이벤트에 응답하여 시작하는 프로그램으로 구성된다. 이러한 프로그램은 "이벤트 핸들러"라 하며, 도 11에 도시되어 있다. 도 11에 도시된 바와 같이, API(10)는 이벤트 분석 핸들러(11), 비명령실행 핸들러(12), 타이머 핸들러(13), 판독/기입 핸들러(14), 암호화키 테이블(15), 및 삭제 핸들러(16) 등의 이벤트 핸들러를 포함한다. Hereinafter, the structure of the API 10 will be described. Here, an event is a generic term that describes an input to the API 10, such as, for example, an EC command, occurrence of hardware interruption, and input of communication data. The API 10 is composed of programs that start in response to events occurring in and out of the API 10. Such a program is called an "event handler" and is shown in FIG. As shown in FIG. 11, the API 10 includes an event analysis handler 11, a non-command execution handler 12, a timer handler 13, a read / write handler 14, an encryption key table 15, and Event handlers such as the delete handler 16.
이벤트 분석 핸들러(11)는 API(10)의 내외부에서 발생하는 이벤트를 분석하고, 그 분석결과에 따라 API-내부 이벤트를 생성한다. API(10)의 외부에서 발생하는 대부분의 공통 이벤트 중의 하나는 EC 클라이언트 어플리케이션(8)이 내린 EC 명령이다. 이벤트 분석 핸들러(11)는 EC 명령의 콘텐츠를 분석한다. EC 명령이 파일에 대한 판독 및 기입 동작을 나타내면, 이벤트 분석 핸들러(11)는 파일 판독/기입 이벤트 및 명령 시작 이벤트의 내부 이벤트를 생성한다. EC 명령이 파일 삭제를 나타내면, 이벤트 분석 핸들러(11)는 파일 삭제 이벤트와 명령 시작 이벤트의 내부 이벤트를 생성한다. 이들 내부 이벤트의 생성에 의해 파일에 대한 판독동작 및 기입동작을 위한 이벤트 핸들러 또는 파일 삭제를 위한 이벤트 핸들러가 각각 동작되게 된다. The event analysis handler 11 analyzes an event occurring in and out of the API 10 and generates an API-internal event according to the analysis result. One of the most common events occurring outside of the API 10 is an EC command issued by the EC client application 8. The event analysis handler 11 analyzes the content of the EC command. If the EC command indicates read and write operations to the file, the event analysis handler 11 generates an internal event of the file read / write event and the command start event. If the EC command indicates file deletion, the event analysis handler 11 generates an internal event of the file deletion event and the command start event. By generating these internal events, an event handler for reading and writing to a file or an event handler for deleting a file is operated, respectively.
API 내부 이벤트는 이벤트 핸들러에 의해 완료되는 프로시져(procedure)를 나타내는 이벤트(완료 이벤트)를 포함한다. EC 명령을 실행하는 이벤트 핸들러가 완료 이벤트를 생성하면, 이벤트 분석 핸들러(11)는 EC 명령을 내린 EC 클라이언트 어플리케이션(8)에 EC 응답을 출력한다. API internal events include events (completion events) that represent procedures completed by the event handler. When the event handler executing the EC command generates a completion event, the event analysis handler 11 outputs the EC response to the EC client application 8 that issued the EC command.
비명령 실행 핸들러(12)는 API(10) 내의 다른 이벤트 핸들러의 어느 것도 명령을 실행하지 않으면 동작한다. 비명령 실행 핸들러(12)의 구동기간과 EC 명령을 실행하는 다른 이벤트 핸들러의 구동기간은 상호 배타적이다. 즉, 비명령 실행 핸들러(12)는 다른 이벤트 핸들러가 전혀 동작하지 않을 경우에 동작한다. The non-command execution handler 12 operates if none of the other event handlers in the API 10 execute a command. The driving period of the non-command execution handler 12 and the driving period of another event handler that executes the EC command are mutually exclusive. In other words, the non-command execution handler 12 operates when no other event handler is running at all.
타이머 핸들러(13)는 명령 시작 이벤트가 생성되는 시간을 측정하기 시작하여, 측정된 시간이 미리 정해진 시간의 기간과 동일해지면 타임아웃을 알린다. 이벤트 분석 핸들러(11)는 타이머 핸들러(13)가 타임아웃을 알려주는지의 여부를 감시하므로, 이벤트 핸들러에 의한 긴 동작을 강제로 중단시킬 수 있다. 이러한 강제중단은 이벤트 분석 핸들러(100)에 의한 중단 이벤트에 의해 달성된다. The timer handler 13 starts measuring the time at which the command start event is generated, and notifies the timeout when the measured time becomes equal to a predetermined time period. The event analysis handler 11 monitors whether the timer handler 13 notifies the timeout, and thus can forcibly interrupt the long operation by the event handler. This abort is accomplished by an abort event by the event analysis handler 100.
판독/기입 핸들러(14)는 판독/기입 이벤트가 생성될 때 외부 플래시 메모리(2)와 내부 EEPROM(3) 상의 파일에 대하여 판독/기입을 한다. 도 12의 (A)는 파일에 대한 기입동작이 판독/기입 핸들러(14)에 의해 어떻게 수행되는지를 보여준다. The read / write handler 14 reads / writes files on the external flash memory 2 and the internal EEPROM 3 when a read / write event is generated. 12A shows how a write operation to a file is performed by the read / write handler 14.
파일에 대한 기입동작은 다음의 방식으로 수행된다. 판독/기입 핸들러(14)는 데이터가 기입되는 파일명과 기입된 그 데이터를 EC 클라이언트 어플리케이션(8)(C_APL 1, 2, 3, ...n)으로부터 수신한다(도 12의 (A)의 ① 및 ②). 또한, 데이터가 기입되는 파일에 할당된 암호화키는 암호화키 테이블(15)로부터 판독/기입 핸들러(14)에 의해 취득된다(③). 그 다음에, EC 클라이언트 어플리케이션(8)(C_APL 1, 2, 3, ...n)으로부터 수신된 데이터는 암호화키 테이블(15)로부터 취득된 암호화키에 의해 암호화되어(④) 파일에 기입된다(⑤). 도 12의 (B)는 파일에 대한 판독동작이 판독/기입 핸들러(14)에 의해 어떻게 수행되는지를 보여준다. The write operation to the file is performed in the following manner. The read / write handler 14 receives the file name to which data is written and the written data from the EC client application 8 (C_APL 1, 2, 3, ... n) (1 in Fig. 12A). And ②). In addition, an encryption key assigned to a file to which data is written is obtained from the encryption key table 15 by the read / write handler 14 (3). The data received from the EC client application 8 (C_APL 1, 2, 3, ... n) is then encrypted (4) by the encryption key obtained from the encryption key table 15 and written to the file. (⑤). 12B shows how the read operation on the file is performed by the read / write handler 14.
파일에 대한 판독동작은 다음의 방식으로 수행된다. 판독/기입 핸들러(14)는 판독되는 파일명을 EC 클라이언트 어플리케이션(8)(C_APL1, 2, 3, ...n)으로부터 수신한다. 암호화된 데이터가 외부 플래시 메모리(2)로부터 판독된 후(도 12의 (B)의 ①), 판독되는 파일에 할당되는 암호화키는 암호화키 테이블(15)로부터 취득된다(②). 그리고, 판독된 데이터는 취득된 암호화키로 해독되어(③), EC 클라이언트 어플리케이션(8)(C_APL1, 2, 3, ...n)에 전달된다(④ 및 ⑤).The read operation on the file is performed in the following manner. The read / write handler 14 receives the file name to be read from the EC client application 8 (C_APL1, 2, 3, ... n). After the encrypted data is read from the external flash memory 2 (1 in FIG. 12B), the encryption key assigned to the file to be read is obtained from the encryption key table 15 (2). The read data is then decrypted with the obtained encryption key (3) and transmitted to the EC client application 8 (C_APL1, 2, 3, ... n) (4) and (5).
암호화키 테이블(15)은 파일용 암호화키와 파일명용 암호화키 간의 1대1 대응을 보여준다. 암호화키는 판독/기입 핸들러(14)에 의해 생성되며, EC 클라이언트 어플리케이션(8)이 파일을 생성할 때 암호화키 테이블(15)에 등록된다. 암호화키 테이블(15) 내의 등록된 암호화키는 파일이 열릴 때 참조되며, 판독동작 및 기입동작이 파일에 대하여 수행된다. The encryption key table 15 shows the one-to-one correspondence between the file encryption key and the file name encryption key. The encryption key is generated by the read / write handler 14 and registered in the encryption key table 15 when the EC client application 8 generates the file. The registered encryption key in the encryption key table 15 is referenced when the file is opened, and reading and writing operations are performed on the file.
삭제 핸들러(16)는 삭제 이벤트가 생성될 때 동작한다. 삭제 이벤트가 생성되면, 파일을 구성하는 파일 엔트리, FAT, 및 파일 엔티티(file entity)는 소거동작 관리 테이블이 생성된 후, 널 코드(null code)와 함께 삭제 핸들러(16)에 의해 오버라이트된다. 본 실시예에서의 파일 삭제는 암호화키, 파일 엔트리, 및 파일용 FAT를 오버라이트하는 것과, 파일의 파일 엔티티를 오버라이트하는 것을 나타낸다. 여기에서, 오버라이팅은 (널-소거를 위해) 널 코드 또는 특정 방식으로 오버라이트하는 것을 나타낸다. 삭제 핸들러(16)는 전자의 오버라이팅에 우선순위를 부여한다. 후자의 오버라이트는 막대한 처리시간을 필요로 하기 때문에, 다른 이벤트 핸들러에 의해 수행될 수 있다. 그러나 본 발명에 의하면, 막대한 처리시간을 필요로 하는, 파일에 대한 파일 엔티티의 오버라이팅이, 복수의 유휴 기간(idle period)에서 신뢰성있게 분리되어 실행된다. The delete handler 16 operates when a delete event is generated. When a delete event is generated, the file entry, FAT, and file entity constituting the file are overwritten by the delete handler 16 with a null code after the erase operation management table is generated. . File deletion in this embodiment indicates overwriting an encryption key, a file entry, and a FAT for a file, and overwriting a file entity of a file. Here, overwriting refers to overwriting in null code or in a particular way (for null-erasing). The delete handler 16 gives priority to the former overwriting. The latter overwrite requires enormous processing time and can be performed by other event handlers. However, according to the present invention, the overwriting of file entities to a file, which requires enormous processing time, is reliably separated and executed in a plurality of idle periods.
도 13은 상술한 본 발명의 특징에 중점을 둔 API(10)의 내부 구성도이다. 도 13의 화살표 cw1에 의해 도시된 바와 같이, 삭제 이벤트가 생성되면, 소거동작 관리 테이블이 삭제 핸들러(16)에 의해 생성되어, TRM(1) 내의 메모리(3)에 기입된다. 소거동작 관리 테이블은 오버라이팅이 어떻게 수행되는지를 보여준다. 이러한 소거동작 관리 테이블은, 널-소거되어야 하는 프래그먼트의 존재와 얼마나 많은 파일의 데이터가 널-소거되어야 하는지를 다른 이벤트 핸들러에 알려줄 수 있도록, 파일 엔트리와 FAT를 오버라이트하기 전에 생성된다. 소거동작 관리 테이블이 생성되면, 비명령 실행 핸들러(12), 판독/기입 핸들러(14) 및 삭제 핸들러(16)는 소거동작 관리 테이블을 참조하여 (화살표 nc1 및 nc2로 도시된 바와 같이) 프래그먼트의 X바이트를 오버라이트한다. 그 다음에, 소거동작 관리 테이블이 갱신된다. 화살표 nc1 및 nc2로 표시된 바와 같이, 외부 플래시 메모리(2)와 내부 EEPROM(3) 모두에 저장된 파일은 본 실시예에서는 널-소거될 수 있다. 그러나 여기에서는 설명이 복잡하게 되는 것을 피하기 위해 외부 플래시 메모리(2)에 저장된 파일에 대한 널-소거동작에 대해서만 설명한다. 본 실시예에서, 널-소거동작은 파일에 대한 파일 엔티티가 본 실시예에서 프래그먼트되었거나 프래그먼트되지 않은 경우에 수행될 수 있다. 그러나, 여기에서는 설명이 복잡하게 되는 것을 피하기 위해 파일에 대한 파일 엔티티가 프래그먼트될 때 수행되는 널-소거동작에 대해서만 설명하기로 한다. (이러한 이유로, 이하의 설명에서는 "파일 엔티티"를 일관하여 "프래그먼트"로 대체하기로 한다.)13 is an internal configuration diagram of an API 10 that focuses on the features of the present invention described above. As shown by arrow cw1 in Fig. 13, when a delete event is generated, an erase operation management table is created by the delete handler 16 and written to the memory 3 in the TRM 1. The erase operation management table shows how overwriting is performed. This erase operation management table is created before overwriting the file entry and the FAT so that it can tell other event handlers the existence of fragments to be null-erased and how much file data should be null-erased. Once the erase operation management table is created, the non-instruction execution handler 12, read / write handler 14 and delete handler 16 refer to the erase operation management table (as shown by arrows nc1 and nc2) of the fragment. Overwrite X bytes. Then, the erase operation management table is updated. As indicated by arrows nc1 and nc2, files stored in both the external flash memory 2 and the internal EEPROM 3 can be null-erased in this embodiment. However, only the null-erasing operation on the file stored in the external flash memory 2 is described here in order to avoid complicated description. In this embodiment, the null-erase operation may be performed when the file entity for the file is fragmented or not fragmented in this embodiment. However, here only the null-erasing operation performed when the file entity for the file is fragmented, to avoid complications. (For this reason, the following description will consistently replace "file entities" with "fragments.")
도 14는 예로서 소거동작 관리 테이블을 도시한 도면이다. 소거동작 관리 테이블은 프래그먼트들과 1대1로 대응하는 복수의 레코드(record)로 구성된다. 각각의 레코드는 "유효 플래그", "시작 ADR", "소거된 ADR", 및 "종료 ADR"의 4개의 엔트리를 갖는다. "유효 플래그"는 대응 플래그먼트가 소거되었는지 또는 완전히 소거되었는지의 여부를 나타내고, "시작 ADR"은 프래그먼트의 시작 어드레스를 나타내며, "소거된 ADR"은 프래그먼트에 대한 소거동작이 불충분한 경우 얼마나 많은 프래그먼트의 데이터가 널-소거되었는지를 보여주는 소거완료 어드레스를 나타내고, "종료 ADR"는 프래그먼트의 종료 어드레스를 나타낸다. 삭제 핸들러(16)는 상술한 FAT 또는 파일 엔트리에 기초하여 시작 ADR 또는 종료 ADR의 값을 설정한다.14 is a diagram showing an erase operation management table as an example. The erase operation management table is composed of fragments and a plurality of records corresponding one-to-one. Each record has four entries: "valid flag", "start ADR", "erased ADR", and "end ADR". The "valid flag" indicates whether the corresponding fragment has been erased or completely erased, the "start ADR" indicates the start address of the fragment, and the "erased ADR" indicates how many fragments if the erase operation for the fragment is insufficient. Indicates an erase complete address showing whether or not the data of? Is null-erased, and " end ADR " indicates the end address of the fragment. The delete handler 16 sets the value of the start ADR or end ADR based on the FAT or file entry described above.
API(10) 내의 이벤트 분석 핸들러(11), 비명령 실행 핸들러(12), 판독/기입 핸들러(14), 및 삭제 핸들러(16)는 도 15 내지 도 19에 도시된 프로시져를 수행하는 프로그램을 컴퓨터 언어로 기입함으로써 생성된다. 도 15 내지 도 18은 이벤트 분석 핸들러(11), 비명령 실행 핸들러(12), 판독/기입 핸들러(14) 및 삭제 핸들러(16)의 프로시져를 각각 나타낸 흐름도이다. 도 19는 널-소거동작의 프로시져를 도시한 흐름도이다. 널-소거동작은 널 코드로 프래그먼트의 X바이트를 오버라이트하는 것을 나타낸다. 널-소거동작은 비명령 실행 핸들러(12), 판독/기입 핸들러(14) 및 삭제 핸들러(16)에 의해 실행되기 때문에 서브루틴인 것으로 간주된다. The event analysis handler 11, the non-instruction execution handler 12, the read / write handler 14, and the delete handler 16 in the API 10 may program a program to perform the procedures shown in FIGS. 15 to 19. It is created by writing in a language. 15 to 18 are flowcharts illustrating procedures of the event analysis handler 11, the non-command execution handler 12, the read / write handler 14, and the delete handler 16, respectively. 19 is a flowchart illustrating a procedure of a null-erase operation. The null-erasure operation indicates overwriting the X bytes of the fragment with a null code. The null-erase operation is considered to be a subroutine because it is executed by the non-instruction execution handler 12, the read / write handler 14, and the delete handler 16.
도 15는 이벤트 분석 핸들러(11)의 프로시져를 도시한 흐름도이다. 15 is a flowchart illustrating a procedure of the event analysis handler 11.
도 15에서 단계 S101~S103은 이벤트를 스캐닝(scanning)하기 위한 루프 프로시져를 형성한다. 이 루프 프로시져는 외부 이벤트가 발생하는지의 여부를 검사하고(단계 S101), 판독/기입 핸들러(14) 및 삭제 핸들러(16)에 의한 동작이 완료되었는지의 여부를 검사하며(단계 S102), 타이머 핸들러(13)의 프로시져가 완료되었는지의 여부를 검사한다(단계 S103).In FIG. 15, steps S101 to S103 form a loop procedure for scanning an event. This loop procedure checks whether an external event occurs (step S101), checks whether or not the operation by the read / write handler 14 and delete handler 16 has completed (step S102), and a timer handler. It is checked whether or not the procedure of (13) is completed (step S103).
단계 S104~S109는 단계 S101에서 외부 이벤트의 발생이 검출되면 수행되는 단계이다.Steps S104 to S109 are performed when an occurrence of an external event is detected in step S101.
단계 S104에서, 외부 이벤트가 EC 명령인지의 여부를 판정하기 위한 이벤트 분석이 행해지고, 판정결과, 외부 이벤트가 EC명령이면 EC 명령의 콘텐츠가 분석된다. 만약 외부 이벤트가 외부 플래시 메모리(2) 상의 파일에 대한 판독 및 기입 동작을 지시하는 EC 명령이면, 즉 판독/기입명령이면, 판독/기입 이벤트와 명령 시작 이벤트가 생성된다(단계 S106). 그리고, 이벤트 분석 핸들러(11)의 프로시져는 단계 S101~S103의 루프 프로시져로 복귀한다. In step S104, event analysis for determining whether or not the external event is an EC command is performed, and if the external event is an EC command, the content of the EC command is analyzed. If the external event is an EC command instructing a read and write operation on a file on the external flash memory 2, that is, a read / write command, a read / write event and a command start event are generated (step S106). The procedure of the event analysis handler 11 then returns to the loop procedure of steps S101 to S103.
만약 외부 이벤트가 외부 플래시 메모리(2) 상의 파일을 삭제하라는 EC 명령이면, 즉 삭제명령이면, 삭제 이벤트와 명령 시작 이벤트가 생성된다(단계 S108). 그리고 이벤트 분석 핸들러(11)의 프로시져는 단계 S101~S103의 루프 프로시져로 복귀한다. If the external event is an EC command to delete a file on the external flash memory 2, that is, a delete command, a delete event and a command start event are generated (step S108). The procedure of the event analysis handler 11 then returns to the loop procedure of steps S101 to S103.
만약 상술한 예를 제외한 다른 외부 이벤트가 발생하면, 그 이벤트에 대응하는 동작이 수행된다(단계 S109). 그리고, 이벤트 분석 핸들러(11)의 프로시져는 단계 S101~103의 루프 프로시져로 복귀한다. If an external event other than the above-described example occurs, an operation corresponding to the event is performed (step S109). The procedure of the event analysis handler 11 then returns to the loop procedure of steps S101 to 103.
단계 S110 및 단계 S111는, 판독/기입 핸들러(14) 및 삭제 핸들러(16)에 의한 프로시져가 완료될 때 수행된다. 이들 단계에서는 명령을 내린 EC 클라이언트 어플리케이션(8)으로 EC 응답이 출력되고, API(10)에서 명령 종료 이벤트가 생성된다. Steps S110 and S111 are performed when the procedure by the read / write handler 14 and the delete handler 16 is completed. In these steps, an EC response is output to the EC client application 8 that issued the command, and a command end event is generated in the API 10.
단계 S112는 타이머 핸들러(13)가 타임아웃을 알릴 때 수행된다. 이 단계에서, 중단 이벤트가 생성된다. Step S112 is performed when the timer handler 13 announces the timeout. At this stage, an abort event is generated.
도 16은 비명령 실행 핸들러(12)의 프로시져를 도시한 흐름도이다. 단계 S1 및 S2는 루프 프로시져를 형성하고, 이 루프 프로시져에서 명령 시작 이벤트가 생성되었는지의 여부가 검사되고(단계 S1), 소거동작 관리 테이블이 존재하는지의 여부가 검사된다(단계 S2). 단계 S1과 S2의 매 사이클마다 단계 S2에서 소거동작 관리 테이블이 존재하는지의 여부가 판정된다. 판정결과, 소거동작 관리 테이블이 존재하면, 널-소거 서브루틴이 호출된다(단계 S4). 여기에서, 비명령 실행 핸들러(12)에 의한 프래그먼트의 오버라이팅은 다른 이벤트 핸들러가 전혀 동작하지 않는 유휴 기간에 수행된다. 그러므로, 비록 반도체 메모리 카드의 속성으로 인해 파일을 오버라이트하는데 시간이 걸리더라도 사용자는 그러한 시간 때문에 지겨워지지 않는다. 16 is a flowchart illustrating a procedure of the non-instruction execution handler 12. Steps S1 and S2 form a loop procedure, and it is checked whether or not an instruction start event has been generated in this loop procedure (step S1), and whether an erase operation management table exists (step S2). It is determined whether or not the erase operation management table exists in step S2 every cycle of steps S1 and S2. If the erase operation management table exists as a result of the determination, the null-erase subroutine is called (step S4). Here, the overwriting of the fragments by the non-instruction execution handler 12 is performed in an idle period in which no other event handlers operate at all. Therefore, even though it takes time to overwrite a file due to the nature of the semiconductor memory card, the user is not tired of such time.
도 17은 판독/기입 핸들러(14)의 프로시져를 도시한 흐름도이다. 판독동작 및 기입동작이 수행되는 파일에 대응하는 암호화키는 단계 S20에서 암호화키 테이블(15)로부터 취득된다. 단계 S21에서는 기입동작이 수행되는지의 여부가 판정된다. 기입동작이 수행되면 EC 클라이언트 어플리케이션(8)으로부터의 데이터가 단계 S20에서 취득된 암호화키로 암호화되고(단계 S22), 암호화된 데이터는 보안 플래시 메모리(2)에 기입된다(단계 S23). 17 is a flowchart showing the procedure of the read / write handler 14. The encryption key corresponding to the file on which the read operation and the write operation are performed is obtained from the encryption key table 15 in step S20. In step S21, it is determined whether or not a write operation is performed. When the write operation is performed, the data from the EC client application 8 is encrypted with the encryption key obtained in step S20 (step S22), and the encrypted data is written into the secure flash memory 2 (step S23).
한편, 단계 S21에서의 판정이 판독동작을 수행하는 것을 나타내면, EC 클라이언트 어플리케이션(8)에 의해 요구되는 암호화된 데이터가 보안 플래시 메모리(2)로부터 판독된다(단계 S24). 보안 플래시 메모리(2)로부터 판독되는 암호화된 데이터는 단계 S20에서 취득된 암호화키를 이용하여 해독되며, EC 클라이언트 어플리케이션(8)으로 전달된다(단계 S25).On the other hand, if the determination in step S21 indicates that the read operation is performed, the encrypted data required by the EC client application 8 is read out from the secure flash memory 2 (step S24). The encrypted data read out from the secure flash memory 2 is decrypted using the encryption key obtained in step S20, and transferred to the EC client application 8 (step S25).
단계 S26에서는 소거동작 관리 테이블이 존재하는지의 여부가 판정된다. 만약 소거동작 관리 테이블이 존재하지 않으면 프로시져가 완료된다. 그러나, 소거동작 관리 테이블이 존재하면 단계 S27에서 널-소거동작이 수행된다. In step S26, it is determined whether the erase operation management table exists. If the erase operation management table does not exist, the procedure is completed. However, if the erase operation management table exists, the null-erase operation is performed in step S27.
도 18은 삭제 핸들러(16)의 프로시져를 도시한 흐름도이다. 우선, 단계 S11에서, 파일 프래그먼트와 1대1로 대응하여 레코드가 생성된다. 단계 S12에서, 각 레코드의 시작 ADR의 값과 종료 ADR의 값이, 대응 파일 프래그먼트의 시작 어드레스의 값과 종료 어드레스의 값으로 설정된다. 단계 S13에서, 각 레코드에서의 유효 플래그의 값이, 대응하는 프래그먼트가 소거중임을 나타내는 "1"로 설정된다. 단계 S14에서, 각 레코드에서의 소거된 ADR의 값이, 대응하는 파일 프래그먼트의 시작 어드레스의 값으로 설정된다. 18 is a flowchart illustrating a procedure of the delete handler 16. First, in step S11, a record is generated in one-to-one correspondence with a file fragment. In step S12, the value of the start ADR and the end ADR of each record are set to the value of the start address and the end address of the corresponding file fragment. In step S13, the value of the valid flag in each record is set to " 1 " indicating that the corresponding fragment is being erased. In step S14, the value of the erased ADR in each record is set to the value of the start address of the corresponding file fragment.
단계 S15에서, 암호화키 테이블(15)의 복수의 암호화키 중에서 삭제되는 파일에 대응하는 암호화키가 삭제된다. 이 암호화키의 삭제는 파일의 해독을 불가능하게 만든다. In step S15, the encryption key corresponding to the file to be deleted among the plurality of encryption keys in the encryption key table 15 is deleted. Deletion of this encryption key makes it impossible to decrypt the file.
단계 S16에서 파일 엔트리가 널-소거된 후, 단계 S17에서 중단 이벤트가 생성되는지의 여부가 판정된다. 삭제 핸들러(16)의 프로시져는 중단 이벤트가 생성될 때 종료된다. After the file entry is null-erased in step S16, it is determined whether a break event is generated in step S17. The procedure of the delete handler 16 ends when the abort event is generated.
중단 이벤트가 생성되지 않으면, FAT는 단계 S18에서 널-소거된다. 이 단계에서 파일 엔트리와 FAT가 널-소거되기 때문에, 파일의 파일 엔트리를 구성하는 프래그먼트는 그들 사이의 링크관계를 손실하여 서로 연결관계가 단절되게 된다. If no abort event is generated, the FAT is null-erased in step S18. Since the file entry and the FAT are null-erased at this stage, the fragments constituting the file entry of the file lose the linkage relationship between them and the linkage relationship is disconnected from each other.
그 후, 단계 S19에서 중단 이벤트가 생성되는지의 여부가 판정된다. 중단 이벤트가 생성되면, 삭제 핸들러(16)의 프로시져가 종료된다. 중단 이벤트가 생성되지 않으면, 단계 S20에서 파일의 프래그먼트가 널-소거된다. Thereafter, it is determined whether or not a stop event is generated in step S19. Once the abort event is generated, the procedure of the delete handler 16 ends. If no abort event is generated, the fragment of the file is null-erased in step S20.
그 후, 단계 S19~S20의 프로시져가 반복된다. 이러한 방식으로, 타이머 핸들러(13)가 타임아웃을 알릴 때까지 삭제 핸들러(16)에 의한 프래그먼트의 오버라이팅이 계속된다. After that, the procedure of steps S19 to S20 is repeated. In this manner, overwriting of fragments by the delete handler 16 continues until the timer handler 13 announces a timeout.
도 19는 널-소거 서브루틴의 프로시져를 도시한 흐름도이다. 단계 S31에서, "1"로 설정된 유효 플래그의 값을 갖는 레코드들 중에서 첫번째 레코드(제 1 레코드)가 레코드 s로서 선택된다. 소거완료 어드레스로부터 종료 어드레스까지의 데이터 길이가 단위 길이 X보다 긴지 짧은지가 판정되어 단계 S31 이후에 수행되는 단계가 결정된다. 이 판정은 단계 S32에서 행해진다. 즉, 단계 S32에서, 소거완료 어드레스에 오버라이팅의 단위 길이 X를 가산함으로써 취득된 어드레스가 레코드 s의 종료 어드레스보다 작은지의 여부가 판정된다. 판정결과, 취득된 어드레스가 레코드 s의 종료 어드레스보다 작으면, 단계 S33~S35가 계속 수행된다. 이들 단계에서, 외부 메모리 제어부(4)는 대응 프래그먼트의 소거완료 어드레스로부터 시작하는 X바이트의 데이터를 오버라이트하라는 지시를 받는다(단계 S33). 외부 메모리 제어부(4)에 의한 오버라이팅이 완료되면(단계 S34), 소거완료 어드레스는 (소거완료 어드레스 + X)로 갱신된다(단계 S35).19 is a flowchart illustrating a procedure of a null-erase subroutine. In step S31, the first record (first record) among the records having the value of the valid flag set to "1" is selected as the record s. It is determined whether the data length from the erase complete address to the end address is longer or shorter than the unit length X, and a step performed after step S31 is determined. This determination is made in step S32. That is, in step S32, it is determined whether the address obtained by adding the overwriting unit length X to the erased address is smaller than the end address of the record s. As a result of the determination, if the obtained address is smaller than the end address of the record s, steps S33 to S35 are continued. In these steps, the external memory control section 4 is instructed to overwrite the data of X bytes starting from the erase complete address of the corresponding fragment (step S33). When overwriting by the external memory control section 4 is completed (step S34), the erase completed address is updated to (erase completed address + X) (step S35).
소거완료 어드레스로부터 종료 어드레스까지의 데이터 길이가 단위 길이 X보다 길면, 단계 S36~S39가 수행되어 잉여 데이터 길이를 처리한다. 이들 단계에 의해, 단위 길이 X는, 종료 어드레스로부터 소거완료 어드레스를 감산하여 구한 값과 동일하게 되도록 변환된다(단계 S36). 그 후, 외부 메모리 제어부(4)는 소거완료 어드레스로부터 시작하는 X 바이트 데이터를 널 코드로 오버라이트하라는 지시를 받는다(단계 S37). 오버라이팅이 완료되면 레코드 s의 유효 플래그의 값은 "0"으로 설정된다(단계 S39). 단계 S40에서는, 유효 플래그의 값이 모든 레코드에서 "0"으로 설정되는지의 여부가 판정된다. 유효 플래그의 값이 모든 레코드에서 "0"으로 설정되면, 프로시져는 단계 S41로 진행하여 소거동작 관리 테이블이 삭제된다. If the data length from the erase complete address to the end address is longer than the unit length X, steps S36 to S39 are performed to process the excess data length. By these steps, the unit length X is converted to be equal to the value obtained by subtracting the erase completed address from the end address (step S36). Thereafter, the external memory control section 4 is instructed to overwrite the X byte data starting from the erase complete address with a null code (step S37). When the overwriting is completed, the value of the valid flag of the record s is set to "0" (step S39). In step S40, it is determined whether or not the value of the valid flag is set to "0" in all records. If the value of the valid flag is set to "0" in all records, the procedure goes to step S41, and the erase operation management table is deleted.
여기에서, 루트 디렉토리에 저장된 파일명이 EOB001.SE1인 파일을 삭제하기 위한 비명령 실행 핸들러(12), 판독/기입 핸들러(14), 및 삭제 핸들러(16)에 의한 동작에 대해, 예로서 도 20 및 도 21을 참조하여 설명하기로 한다. 도 20은, 도 10에 도시된 바와 같이 저장된 파일에 대한 삭제 이벤트에 응답하여, 삭제 핸들러(16)가 동작한 후의 파일에 대한 FAT와 루트 디렉토리 엔트리를 도시한 도면이다. 파일 "EOB001.SE1"에 대한 삭제 이벤트가 생성되면, 파일의 프래그먼트에 대한 소거동작 관리 테이블이 생성되고, 그 파일에 대한 파일 엔트리의 파일명 엔트리, 파일 확장자 엔트리, 및 제 1 클러스터 엔트리, 그리고 FAT 엔트리 003, 004, 005, 00A 및 00C가 널 코드로 오버라이트된다. 삭제 핸들러(16)에 의한 이러한 오버라이팅 후, 비명령 실행 핸들러(12)에 의한 동작이 시작된다. Here, for the operation by the non-command execution handler 12, the read / write handler 14, and the delete handler 16 for deleting a file whose file name is EOB001.SE1 stored in the root directory, for example, FIG. 20 This will be described with reference to FIG. 21. FIG. 20 is a diagram showing FAT and root directory entries for files after the delete handler 16 operates in response to a delete event for the stored file as shown in FIG. When a delete event for file "EOB001.SE1" is generated, an erase operation management table for a fragment of the file is created, a file name entry, a file extension entry, and a first cluster entry, and a FAT entry of a file entry for the file. 003, 004, 005, 00A and 00C are overwritten with null codes. After this overwriting by the delete handler 16, the operation by the non-instruction execution handler 12 is started.
도 21은 비명령 실행 핸들러(12)와 삭제 핸들러(16)에 의한 오버라이팅 후의 루트 디렉토리와 FAT를 도시한 도면이다. 파일의 프래그먼트에 대한 소거동작 관리 테이블은 삭제 핸들러(16)에 의해 생성되기 때문에, 프래그먼트를 저장하는 클러스터 003, 004, 005, 00A 및 00C는 널 코드로 오버라이트된다. FIG. 21 is a diagram showing a root directory and a FAT after overwriting by the non-command execution handler 12 and the deletion handler 16. Since the erase operation management table for the fragment of the file is generated by the delete handler 16, the clusters 003, 004, 005, 00A and 00C storing the fragment are overwritten with null codes.
상술한 바와 같이, EC 클라이언트 어플리케이션(8)이 내린 EC 명령이 파일삭제를 지시하면, 널-소거동작은 타이머 핸들러(13)가 타임아웃을 알릴 때까지 삭제 핸들러(16)에 의해 연속적으로 수행된다. 삭제 핸들러(16)의 동작은 타임아웃의 발생에 의해 종료된다. 따라서 EC 클라이언트 어플리케이션(8)이 내린 EC 명령으로부터 이벤트 분석 핸들러(11)가 한 EC 응답까지의 기간이 짧아질 수 있다. 이것으로 EC 명령을 처리하는데 필요한 시간을 단축할 수 있으므로 EC 클라이언트 어플리케이션(8)의 사용자를 실망시키지 않게 된다. As described above, when an EC command issued by the EC client application 8 instructs file deletion, a null-erase operation is continuously performed by the deletion handler 16 until the timer handler 13 notifies the timeout. . The operation of the delete handler 16 ends by the occurrence of the timeout. Therefore, the period from the EC command issued by the EC client application 8 to the EC response made by the event analysis handler 11 can be shortened. This can shorten the time required to process the EC command, so as not to disappoint the user of the EC client application 8.
아직 널-소거되지 않은 파일의 데이터에 대한 오버라이팅 작업은, 복수의 유휴기간 내에 삭제 핸들러(16)를 제외한 비명령 실행 핸들러(12)와 판독/기입 해(14) 등의 다른 이벤트 핸들러에 의해 실행되도록 분할된다. 그러므로, 비록 EEPROM(3)에 대한 오버라이팅 동작이 긴 시간을 필요로 하고 각 프래그먼트가 큰 크기의 데이터를 갖는다 하더라도, 장시간의 삭제 프로시져로 인한 사용자의 지루함을 야기시키지 않고 파일 엔티티의 오버라이팅을 완료할 수 있다. Overwriting of data in a file that has not yet been null-erased is performed by other event handlers, such as non-instruction execution handler 12 and read / write 14, except for delete handler 16 within a plurality of idle periods. It is split to run. Therefore, even if the overwriting operation on the EEPROM 3 requires a long time and each fragment has a large size of data, the overwriting of the file entity is completed without causing the user boredom due to the long deletion procedure. can do.
또한, 암호화된 파일을 판독하기 위해 중요한 암호화키는 바로 그 처음의 위치에서 널-소거된다. 그러므로, 비록 사용자가 삭제 핸들러(16)에 의한 삭제 프로시져의 도중에 SD 휴대형 장치(300)로부터 SDeX 메모리 카드(400)를 거칠게 인출해 내더라도, 암호화된 파일은 여전히 충분하게 보호된다. In addition, an encryption key important for reading an encrypted file is null-erased at its very first location. Therefore, even if the user roughly ejects the SDeX memory card 400 from the SD portable device 300 during the deletion procedure by the delete handler 16, the encrypted file is still sufficiently protected.
(제 2 실시예)(Second embodiment)
제 1 실시예에 따라 널 코드로 프래그먼트를 오버라이팅하는 것은 시작 어드레스에서 프래그먼트의 종료 어드레스를 향해, 즉 순방향(forward direction)으로 수행된다. 제 2 실시예에 따르는 오버라이팅은 순방향일 뿐아니라 여러가지 상이한 방식으로 수행된다. Overwriting the fragment with a null code according to the first embodiment is performed from the start address toward the end address of the fragment, ie in the forward direction. The overwriting according to the second embodiment is not only forward but also performed in various different ways.
도 22는 제 2 실시예에 관한 소거동작 관리 테이블의 예를 도시한 도면이다. 도 22에 도시된 바와 같이, 테이블의 레코드는 추가로 소거방법의 엔트리를 갖는다. Fig. 22 is a diagram showing an example of the erase operation management table according to the second embodiment. As shown in Fig. 22, the records of the table further have entries of the erasing method.
소거방법 엔트리에는 순방향, 역방향, 짝수/홀수, 및 홀수/짝수 중의 하나가 설정된다. 소거방법 엔트리가 순방향으로 설정되면, 널 코드로 프래그먼트를 오버라이팅하는 것은 제 1 실시예에서 처럼 소거완료 어드레스에서 종료 어드레스를 향하여 순차적으로 수행된다. 소거방법 엔트리가 역방향으로 설정되면, 오버라이팅은 소거완료 어드레스에서 시작 어드레스를 향해 수행된다. The erase method entry is set to one of forward, reverse, even / odd, and odd / even. If the erase method entry is set in the forward direction, overwriting the fragment with a null code is performed sequentially from the erase complete address toward the end address as in the first embodiment. If the erase method entry is set in the reverse direction, overwriting is performed from the erase complete address toward the start address.
소거방법 엔트리가 짝수/홀수로 설정되면, 우선 짝수 번호 어드레스의 데이터가 널-소거되고, 다음으로 홀수 번호 어드레스의 데이터가 소거완료 어드레스에서 종료 어드레스를 향하여 널-소거된다. If the erasing method entry is set to even / odd, first the data of the even number address is null-erased, and then the data of the odd number address is null-erased from the erase complete address toward the end address.
소거방법 엔트리가 홀수/짝수로 설정되면, 우선 홀수 번호 어드레스의 데이터가 널-소거되고, 다음으로 짝수 번호 어드레스의 데이터가 소거완료 어드레스에서 종료 어드레스를 향하여 널-소거된다.When the erase method entry is set to odd / even, first, data of an odd number address is null-erased, and then data of an even number address is null-erased from the erase complete address toward the end address.
프래그먼트에 대한 소거방법은 삭제 핸들러(16)에 의해 차례로 선택될 수 있다. 보다 구체적으로, 순방향 널-소거동작은 최초의 프래그먼트에 대하여 선택되고, 역방향 널-소거동작은 두번째의 프래그먼트에 대하여 선택되며, 짝수/홀수 널-소거동작은 세번째 프래그먼트에 대하여 선택되고, 홀수/짝수 널-소거동작은 네번째 프래그먼트에 대하여 선택될 수 있다. 또한, 순방향, 역방향, 짝수/홀수, 및 홀수/짝수 동작은 다섯번째 프래그먼트와 그 이후의 프래그먼트에 대해 각각 선택될 수 있다. The erase method for the fragment may in turn be selected by the delete handler 16. More specifically, the forward null-erase operation is selected for the first fragment, the reverse null-erase operation is selected for the second fragment, and the even / odd null-erase operation is selected for the third fragment, and odd / even The null-erase operation can be selected for the fourth fragment. In addition, forward, reverse, even / odd, and odd / even operations may be selected for the fifth fragment and subsequent fragments, respectively.
이와 달리, 프래그먼트에 대한 소거방법은 랜덤하게 선택될 수도 있다. 구체적으로, 삭제 핸들러(16)에 의해 1에서 4까지의 난수가 생성되고, 그 난수 중의 하나에 의해 지시되는 소거방법으로 널-소거동작이 수행된다. Alternatively, the erase method for the fragment may be randomly selected. Specifically, random numbers 1 to 4 are generated by the delete handler 16, and a null-erase operation is performed by the erase method indicated by one of the random numbers.
또한, 소거방법은 EC 클라이언트 어플리케이션(8)으로부터 수신된 파라미터에 따라 결정될 수 있다. In addition, the erasing method may be determined according to a parameter received from the EC client application 8.
도 23은 제 2 실시예에 관한 널-소거 서브루틴 프로시져를 도시한 도면이다. 단계 S31에서, "1"로 설정된 유효 플래그의 값을 갖는 레코드 중 첫번째 레코드(제 1 레코드)가 레코드 s로서 선택된다. 레코드 s의 소거방법 엔트리는 단계 S51을 참조한다. 소거방법 엔트리가 순방향으로 설정되면, 널-소거동작은 단계 S50에서 도 19의 흐름도에 도시된 단계 S32~S40과 동일한 프로시져로 수행된다. FIG. 23 is a diagram showing a null-erase subroutine procedure according to the second embodiment. In step S31, the first record (first record) of the records having the value of the valid flag set to "1" is selected as the record s. The erase method entry of the record s refers to step S51. If the erase method entry is set in the forward direction, the null-erase operation is performed in the same procedure as in steps S32 to S40 shown in the flowchart of FIG. 19 in step S50.
소거방법 엔트리가 역방향으로 설정되면(단계 S53), 널-소거동작은 도 24의 흐름도에 도시된 프로시져로 수행된다(단계 S60).If the erase method entry is set in the reverse direction (step S53), the null-erase operation is performed with the procedure shown in the flowchart of Fig. 24 (step S60).
소거방법 엔트리가 짝수/홀수로 설정되면(단계 S54), 소거완료 어드레스 다음의 짝수번호 어드레스의 데이터가 도 19의 흐름도에 도시된 단계 S32~S40과 동일한 프로시져로 널-소거된다(단계 S55). 짝수번호 어드레스의 데이터가 완전히 널-소거되면(단계 S56), 소거완료 어드레스 다음의 홀수번호 어드레스의 데이터가 도 19의 흐름도에 도시된 단계 S32~S40과 동일한 프로시져로 널-소거된다(단계 S57). If the erase method entry is set to even / odd (step S54), the data of the even number address following the erase completed address is null-erased by the same procedure as that of steps S32 to S40 shown in the flowchart of Fig. 19 (step S55). If the data of the even-numbered address is completely null-erased (step S56), the data of the odd-numbered address following the erased address is null-erased by the same procedure as that of steps S32 to S40 shown in the flowchart of FIG. 19 (step S57). .
소거방법 엔트리가 홀수/짝수로 설정되면(단계 S58), 소거완료 어드레스 다음의 홀수번호 어드레스의 데이터가 도 19의 흐름도에 도시된 단계 S32~S40과 동일한 프로시져로 널-소거된다(단계 S57). 홀수번호 어드레스의 데이터가 완전히 널-소거되면(단계 S59), 소거완료 어드레스 다음의 짝수번호 어드레스의 데이터가 도 19의 흐름도에 도시된 단계 S32~S40과 동일한 프로시져로 널-소거된다(단계 S55). If the erase method entry is set to odd / even (step S58), the data of the odd-numbered address following the erase complete address is null-erased by the same procedure as that of steps S32 to S40 shown in the flowchart of Fig. 19 (step S57). If the data of the odd-numbered address is completely null-erased (step S59), the data of the even-numbered address following the erased address is null-erased by the same procedure as that of steps S32 to S40 shown in the flowchart of Fig. 19 (step S55). .
도 24는 역방향 널-소거동작의 프로시져를 도시한 흐름도이다. 도 19에 도시된 널-소거 서브루틴과 비교하면, 시작 어드레스와 종료 어드레스 사이의 관계가 역방향 널-소거동작과 반대이다. 단계 S61에서, 소거완료 어드레스에서 오버라이팅 단위 길이 X를 감산함으로써 구한 어드레스가 레코드 s의 시작 어드레스보다 큰지의 여부가 판정된다. 판정결과, 감산하여 구한 어드레스가 레코드 s의 시작 어드레스보다 크면, 단계 S62에서 외부 메모리 제어부(4)는 프래그먼트의 어드레스(소거완료 어드레스-X)로부터 X-바이트의 데이터를 오버라이트하라는 명령을 받는다. 외부 메모리 제어부(4)에 의한 오버라이팅이 완료되면(단계 S63), 단계 S64에서, 소거완료 어드레스는 (소거완료 어드레스-X)의 어드레스로 갱신된다. 24 is a flowchart illustrating a procedure of reverse null-erase operation. Compared with the null-erase subroutine shown in Fig. 19, the relationship between the start address and the end address is opposite to the reverse null-erase operation. In step S61, it is determined whether or not the address obtained by subtracting the overwriting unit length X from the erased address is larger than the start address of the record s. As a result of the determination, if the subtracted address is larger than the start address of the record s, in step S62, the external memory control section 4 is instructed to overwrite X-byte data from the address (erase address -X) of the fragment. When overwriting by the external memory control section 4 is completed (step S63), in step S64, the erase completed address is updated to the address of (erase complete address-X).
어드레스(소거완료 어드레스-오버라이팅 단위 길이 X)가 레코드 s의 시작 어드레스보다 작으면, 단위길이 X는 소거완료 어드레스에서 시작 어드레스를 감산하여 구한 값과 동일하게 되도록 변환된다(단계 S65). 그리고, 단계 S66에서, 외부 메모리 제어부(4)는 시작 어드레스로부터의 X-바이트 데이터를 널 코드로 오버라이트하라는 명령을 받는다. 오버라이팅이 완료되면(단계 S67), 레코드 s의 유효 플래그의 값은 "0"으로 설정된다(단계 S68). 단계 S69에서, 유효 플래그의 값이 모든 레코드에서 "0"으로 설정되는지의 여부가 판정된다. 판정결과, 유효 플래그의 값이 모든 레코드에서 "0"으로 설정되면, 소거동작 관리 테이블은 단계 S70에서 삭제된다. If the address (erasure address-overwriting unit length X) is smaller than the start address of record s, the unit length X is converted to be equal to the value obtained by subtracting the start address from the erased address (step S65). In step S66, the external memory control section 4 is instructed to overwrite the X-byte data from the start address with a null code. When overwriting is completed (step S67), the value of the valid flag of record s is set to " 0 " (step S68). In step S69, it is determined whether or not the value of the valid flag is set to "0" in all records. As a result of the determination, if the value of the valid flag is set to " 0 " in all records, the erase operation management table is deleted in step S70.
상술한 바와 같이, 제 2 실시예에서는 각 프래그먼트에 상이한 소거방법이 할당될 수 있다. 결국, 다양한 종류의 소거방법이 조합되므로 삭제되는 프래그먼트의 콘텐츠가 누설되지 않고 보호될 수 있다. As described above, in the second embodiment, different fragmentation methods may be assigned to each fragment. As a result, since various kinds of erasing methods are combined, the contents of the fragment to be deleted can be protected without leakage.
(제 3 실시예)(Third embodiment)
제 3 실시예에 따라, 반도체 메모리 카드가 카드 리더/라이터(200)로부터 전력을 공급받으면 제 1 실시예에 설명된 널 코드에 의한 오버라이팅이 제한된다. SDeX 메모리 카드(400)가 카드 리더/라이터(200)를 통해 EC 서버(100)에 액세스하면, SDeX 메모리 카드(400)는 제 1 실시예에 설명된 SD 휴대형 장치(300)의 배면에 있는 헬리컬 안테나를 통해 전력을 공급받는다. 전파에 의한 전력공급은 불안정하고 불충분하기 때문에 SDeX 메모리 카드(400)에 대한 불필요한 부담은 회피되는 것이 바람직하다. 제 3 실시예에 의하면 SD 휴대형 장치(300)와 삭제 핸들러(16)에 의해 다음의 동작이 수행된다. According to the third embodiment, if the semiconductor memory card is powered from the card reader / writer 200, the overwriting by the null code described in the first embodiment is limited. When the SDeX memory card 400 accesses the EC server 100 via the card reader / writer 200, the SDeX memory card 400 is helical on the back of the SD portable device 300 described in the first embodiment. Power is supplied through the antenna. Since power supply by radio waves is unstable and insufficient, it is desirable to avoid unnecessary burden on the SDeX memory card 400. According to the third embodiment, the following operations are performed by the SD portable device 300 and the deletion handler 16.
SD 휴대형 장치(300)가 카드 리더/라이터(200)에 접근하면, 카드 리더/라이터(200)는 확장된 SD 명령을 출력하여 무접촉식으로 전력을 공급받았음을 SDeX 메모리 카드(400)에 통지한다. 반면, SD 휴대형 장치(300)가 카드 리더/라이터(200)로부터 멀어지면, 카드 리더/라이터(200)는 확장된 SD 명령을 출력하여 무접촉식으로 전력공급이 중단되었음을 SDeX 메모리 카드(400)에 통지한다. SD 휴대형 장치(300)가 카드 리더/라이터(200)에 근접하는지 멀어지는지의 여부는 SD 휴대형 장치(300)가 카드 리더/라이터(200)로부터 폴링 명령(polling command)을 수신하였는지의 여부에 의해 결정된다. When the SD portable device 300 approaches the card reader / writer 200, the card reader / writer 200 outputs the extended SD command to notify the SDeX memory card 400 that power has been supplied contactlessly. do. On the other hand, when the SD portable device 300 is moved away from the card reader / writer 200, the card reader / writer 200 outputs an extended SD command to indicate that power supply has been stopped in a contactless manner. Notify Whether the SD portable device 300 is close to or away from the card reader / writer 200 is determined by whether the SD portable device 300 has received a polling command from the card reader / writer 200. do.
무접촉식 전력공급의 존재를 통지하기 위한 확장된 SD 명령이 SD 휴대형 장치(300)로부터 수신되면, 삭제 핸들러(16)는 무접촉식 전력공급 모드로 들어간다. 만약 삭제 핸들러(16)가 이 모드에 있으면, 파일 엔트리와 FAT의 백업 복제본이 생성되고, 삭제 이벤트의 생성에 따라 파일 엔트리와 FAT만이 오버라이트된다. 즉, 파일 엔트리와 FAT의 백업 복제본만이 생성되고, 어떠한 소거동작 관리 테이블도 생성되지 않는다. 따라서 널-소거동작은 다른 이벤트 핸들러에 의해 수행되지 않는다. When an extended SD command is received from the SD portable device 300 to notify the presence of the contactless power supply, the erase handler 16 enters the contactless powering mode. If the delete handler 16 is in this mode, a backup copy of the file entry and the FAT is created, and only the file entry and the FAT are overwritten according to the creation of the delete event. That is, only backup entries of file entries and FATs are created, and no erase operation management table is created. Thus null-erasing operations are not performed by other event handlers.
다음으로, 무접촉식 전력공급이 중단되지 않았음을 통지하기 위한 확장된 SD 명령을 SD 휴대형 장치(300)가 출력하지 않으면, 삭제 핸들러(16)는 무접촉식 전력공급 모드로부터 빠져나오고, 파일 엔트리와 FAT의 백업 복제본에 기초하여 소거동작 관리 테이블이 생성된다. 소거동작 관리 테이블이 생성되기 때문에 삭제 핸들러(16)를 제외한 다른 이벤트 핸들러에 의한 널-소거동작이 시작된다.Next, if the SD portable device 300 does not output an extended SD command to notify that the contactless power supply is not interrupted, the delete handler 16 exits from the contactless power supply mode, and the file An erase operation management table is created based on the entry and the backup copy of the FAT. Since the erase operation management table is created, the null-erase operation by other event handlers except the delete handler 16 is started.
제 3 실시예에 따라, SDeX 메모리 카드(400)가 상술한 바와 같이 카드 리더/라이터(200)로부터의 전력공급에 의해 동작되면, 파일의 파일 엔티티에 대한 널-소거동작이 수행되지 않는다. 그러므로, SDeX 메모리 카드(400)에 불필요한 부담이 가해지지 않는다. 이것으로 SDeX 메모리 카드(400)의 안정적인 동작이 실현된다. According to the third embodiment, when the SDeX memory card 400 is operated by the power supply from the card reader / writer 200 as described above, the null-erase operation on the file entity of the file is not performed. Therefore, unnecessary burden is not applied to the SDeX memory card 400. This realizes stable operation of the SDeX memory card 400.
(제 4 실시예)(Example 4)
제 1 실시예, 제 2 실시예 및 제 3 실시예에서, TRM(1) 내의 메모리(3)와 외부 메모리(2)는 각각 EEPROM과 플래시 메모리로 구성된다. 그러나 제 4 실시예에 따라, TRM(1) 내의 메모리(3)와 외부 메모리(2)는 각각 2개의 메모리 모듈로 구성된다. 도 25는 제 4 실시예와 관련한 내부 메모리(3)와 외부 메모리(2)의 각각의 구성을 도시한 도면이다. 도 25에 도시된 바와 같이, EEPROM(3a)과 플래시 메모리(2a)는 주메모리 모듈이며, 제 1 내지 제 6 실시예의 EEPROM(3) 및 플래시 메모리(2)와 각각 동일하다. 제 4 실시예에서는 이들 주메모리 모듈 외에, 외부 메모리(2)와 내부 메모리(3)에 각각 보조 메모리 모듈(2b)과 보조 메모리 모듈(3b)이 구비된다. 이들 보조 메모리 모듈(2b, 3b)은 강유전체 메모리(Ferro Elelctric Random Access Memory: FeRAM)이며, 이들의 성능은 플래시 메모리의 성능과 상당히 다르다. 도 26은 플래시 메모리의 성능과 FeRAM의 성능을 비교한 도면이다. 도 26에 따르면 플래시 메모리는 값싸고 대용량 데이터를 저장하기에 적합하다(도면에서 ○으로 표시). 그러나 데이터 기입의 단위가 블록이다(※1로 표시됨). 여기에서, 이러한 블록의 크기는 플래시 메모리의 용량이 증가함에 따라 증가한다. 따라서 작은 크기의 데이터를 기입하더라도 큰 용량을 차지하게 된다. 또한 기입을 위한 시간이 길고(10,000ns), 가능한 기입동작의 횟수가 적다(1,000,000회). 또한, 데이터 기입은 저장된 데이터가 일단 삭제된 후에만 수행되므로, 기입성능이 불안정하게 된다(※2로 표시).In the first, second and third embodiments, the memory 3 and the external memory 2 in the TRM 1 are each composed of an EEPROM and a flash memory. However, according to the fourth embodiment, the memory 3 and the external memory 2 in the TRM 1 are each composed of two memory modules. FIG. 25 is a diagram showing the respective structures of the internal memory 3 and the external memory 2 according to the fourth embodiment. As shown in Fig. 25, the EEPROM 3a and the flash memory 2a are main memory modules, which are the same as the EEPROM 3 and the flash memory 2 of the first to sixth embodiments, respectively. In the fourth embodiment, in addition to these main memory modules, the auxiliary memory module 2b and the auxiliary memory module 3b are provided in the external memory 2 and the internal memory 3, respectively. These auxiliary memory modules 2b and 3b are Ferro Elelctric Random Access Memory (FeRAM), and their performance is quite different from that of flash memory. 26 is a diagram comparing the performance of the flash memory with the performance of FeRAM. According to FIG. 26, the flash memory is inexpensive and suitable for storing a large amount of data (indicated by ○ in the figure). However, the unit of data writing is a block (indicated by * 1). Here, the size of these blocks increases as the capacity of the flash memory increases. Therefore, writing a small size of data occupies a large capacity. In addition, the time for writing is long (10,000ns) and the number of possible write operations is small (1,000,000 times). In addition, since data writing is performed only after the stored data is once deleted, the writing performance becomes unstable (indicated by * 2).
한편, FeRAM은 비록 비싸고 대용량 데이터를 저장하기에 적합하지는 않지만(△로 표시), 데이터 기입의 단위가 바이트이고 기입을 위한 시간이 짧다(30ns 내지 100ns). 또한, 가능한 기입동작의 횟수가 크다. On the other hand, although FeRAM is expensive and not suitable for storing large data (denoted by Δ), the unit of data writing is bytes and the time for writing is short (30ns to 100ns). In addition, the number of possible write operations is large.
이러한 성능상의 차이점을 고려하여, 빈번하게 갱신되는 파일 엔트리, FAT 등을 저장하는 보조 메모리 모듈로서 FeRAM이 사용되면, 플래시 메모리(2a)의 기입성능이 보상될 수 있다. 도 27은 파일 엔트리, FAT 및 소거동작 관리 테이블 등의 빈번하게 갱신되는 데이터를 저장한 FeRAM을 도시한 도면이다. In consideration of such a difference in performance, when FeRAM is used as an auxiliary memory module for storing frequently updated file entries, FATs, etc., the write performance of the flash memory 2a can be compensated. FIG. 27 shows FeRAM storing frequently updated data such as file entries, FATs, and erase operation management tables.
제 4 실시예에 의하면, 파일 엔트리 및 FAT 등의 빈번하게 갱신되는 작은 크기의 데이터를 저장하는 보조 메모리 모듈로서 FeRAM이 사용된다. 이것으로 파일 엔트리와 FAT에 대한 고속 재기입 동작이 달성된다. According to the fourth embodiment, FeRAM is used as an auxiliary memory module for storing frequently updated small size data such as file entries and FATs. This achieves fast rewrite operations for file entries and FATs.
FeRAM은 파괴적 판독(destructive read out)의 특성을 갖는다(※4로 표시). 즉, 일단 저장된 데이터가 판독되면, 저장된 데이터의 콘텐츠가 저장매체로부터 삭제된다. 이 특성은 비밀을 완벽하게 보호하기 위해 바람직하다. 그러나 이 특성에 따르면 모든 데이터 판독은 판독된 데이터를 다시 기입할 것을 필요로 하며, 이것은 결국 데이터가 기록되는 횟수를 증가시킨다. 이러한 파괴적 판독의 특성을 피하기 위해서는 자기저항 RAM(Magnetoresistive Random Access Memory: MRAM)이 이용되는 것이 바람직하다. FeRAM has the characteristic of destructive read out (indicated by * 4). That is, once stored data is read, the contents of the stored data are deleted from the storage medium. This property is desirable to fully protect the secret. However, according to this property, all data reads require rewriting the read data, which in turn increases the number of times data is written. In order to avoid such destructive reading, magnetoresistive random access memory (MRAM) is preferably used.
(제 5 실시예)(Example 5)
제 4 실시예에서는 보조 메모리 모듈로서 FeRAM이 사용되었다. 그러나, 제 5 실시예에서는 TRM(1) 내의 메모리로 FeRAM만이 사용된다. 도 28은 제 5 실시예에 관한 내부 메모리(3)의 내부 구성을 도시한 도면이다. 여기에서 TRM(1) 내의 메모리(3)는 소형이다. 따라서, 비록 내부 메모리(3)에 FeRAM이 사용된다 하더라도 메모리(3)의 제조비용이 현저하게 증가하지는 않는다. 제 5 실시예에서는 TRM(1) 내의 메모리(3)가 FeRAM으로만 구성되어 있으나, MRAM으로만 구성될 수도 있다는 점에 유념해야 한다. In the fourth embodiment, FeRAM is used as the auxiliary memory module. However, in the fifth embodiment, only FeRAM is used as the memory in the TRM 1. FIG. 28 is a diagram showing an internal configuration of an internal memory 3 according to the fifth embodiment. Here, the memory 3 in the TRM 1 is small. Therefore, even if FeRAM is used for the internal memory 3, the manufacturing cost of the memory 3 does not increase significantly. Note that in the fifth embodiment, the memory 3 in the TRM 1 is composed only of FeRAM, but may be composed only of MRAM.
(제 6 실시예)(Example 6)
제 6 실시예에 의하면, 파일에 대한 관리정보는 그 파일의 파일 엔티티에 대한 암호화키와 다른 키로 암호화된다. 파일 관리정보에 대한 이러한 암호화키는 TRM(1) 내의 메모리(3)에 저장된다. 파일 삭제의 지시가 있으면, 파일 관리정보에 대한 암호화키의 오버라이팅은 파일 엔티티에 대한 암호화키의 오버라이팅에 앞서 제 1 실시예에서 설명된 프로시져와 삭제 핸들러(16)에 의해 수행된다. According to the sixth embodiment, management information for a file is encrypted with a key different from the encryption key for the file entity of the file. This encryption key for the file management information is stored in the memory 3 in the TRM 1. If instructed to delete the file, overwriting of the encryption key for the file management information is performed by the procedure and deletion handler 16 described in the first embodiment prior to overwriting the encryption key for the file entity.
파일에 대한 관리정보는 다른 암호화키로 암호화된다. 따라서, 파일의 삭제가 지시되면 관리정보의 크기에도 불구하고 파일의 판독은 즉시 행해질 수 없다. The management information for the file is encrypted with a different encryption key. Therefore, when the deletion of the file is instructed, reading of the file cannot be performed immediately despite the size of the management information.
(수정예)(Modification example)
상술한 설명은 본 발명의 모든 실시예를 언급한 것은 아니다. 본 발명은 다음의 수정사항 (A)~(E)를 포함하는 실시예에 의해 실현될 수 있다. 그러나, 당해 기술분야에서 통상의 기술을 갖는 자가 본 발명의 상세한 설명, 첨부도면 및 출원시의 공지의 기술에 기초하여 다음의 수정사항을 생각해 낼 수 있는 것이라면, 다음의 수정사항에는 청구항에 기재된 발명의 실시예가 포함되지 않는다. The foregoing description does not refer to all embodiments of the present invention. The present invention can be realized by the embodiment including the following modifications (A) to (E). However, if one of ordinary skill in the art can come up with the following modifications based on the detailed description of the present invention, the accompanying drawings, and the techniques known at the time of filing, the following modifications include the invention described in the claims. Examples of are not included.
(A) 실시예에서는 EC 클라이언트 어플리케이션을 예로 들었지만 본 발명은 다른 어플리케이션에 적용될 수 있다. 예를 들어, 본 발명은 철도, 항공, 버스 및 고속도로 회사와 같은 운송산업에 의해 소유되는 서버장치 상의 서버 어플리케이션과 대응 클라이언트 어플리케이션에 적용될 수 있다. 따라서, SDeX 메모리 카드(400)는 철도 개찰구에서 탑승절차를 위해 이용될 수 있다. In the embodiment (A), the EC client application is taken as an example, but the present invention can be applied to other applications. For example, the present invention can be applied to server applications and corresponding client applications on server devices owned by the transportation industry, such as railway, aviation, bus and highway companies. Thus, the SDeX memory card 400 can be used for boarding procedures at railway ticket gates.
이와 달리, 본 발명은 정부기관 및 지방기관에 의해 소유되는 서버장치 상의 서버 어플리케이션과 대응 클라이언트 어플리케이션에 적용될 수 있다. 따라서, SDeX 메모리 카드(400)는 거주자 카드와 각종 증명 및 등록을 위해 이용될 수 있다. Alternatively, the present invention can be applied to server applications and corresponding client applications on server devices owned by government agencies and local authorities. Accordingly, the SDeX memory card 400 may be used for resident cards and various certificates and registrations.
(B) 도 15 내지 도 19, 도 23, 및 도 24에 도시된 프로그램에 의한 정보처리는 CPU 및 EEPROM 등의 하드웨어 자원에 의해 물리적으로 실현된다. 즉, 프로그램과 하드웨어 자원을 결합하여 형성된 물리적 장치가 특정 목적을 달성하기 위한 정보처리를 수행한다. 이러한 방식으로, 제 1 내지 제 6 실시예에 설명된 SDeX 메모리 카드(400)가 실현될 수 있다. (B) Information processing by the programs shown in Figs. 15 to 19, 23, and 24 are physically realized by hardware resources such as CPU and EEPROM. That is, a physical device formed by combining a program and a hardware resource performs information processing to achieve a specific purpose. In this way, the SDeX memory card 400 described in the first to sixth embodiments can be realized.
프로그램에 의한 정보처리는 하드웨어 자원에 의해 물리적으로 실현된다. 따라서, 상술한 도면에 프로시져가 도시된 프로그램은 자연법칙을 이용한 기술적 사상의 제품으로서 고려될 수 있으며 프로그램 자체도 발명으로서 간주될 수 있다. 따라서, 도 15 내지 도 19, 도 23 및 도 24는 본 발명에 따르는 프로그램의 실시예를 나타내고 있다. Information processing by a program is physically realized by hardware resources. Therefore, the program whose procedure is shown in the above-described drawings can be considered as a product of technical idea using natural law, and the program itself can also be regarded as an invention. Thus, Figures 15-19, 23 and 24 show an embodiment of a program according to the invention.
제 1 내지 제 6 실시예는 본 발명에 따르는 프로그램의 이용에 관한 실시예를 설명하며, 여기에서 프로그램은 SDeX 메모리 카드(400)에 통합된다. 그러나 제 1 내지 제 6 실시예에 예시된 프로그램은 이용을 위해 SDeX 메모리 카드(400)로부터 분리될 수도 있다. 여기에서, 프로그램 자체의 이용은 (1) 프로그램의 제조 행위, (2) 프로그램의 무상양도 또는 유상양도의 행위, (3)프로그램 임대의 행위, (4) 프로그램 수입의 행위, (5) 양방향 전기통신회선을 통해 공중(公衆)에 프로그램을 공급하는 행위, 및 (6) 진열, 및 팜플렛과 카탈로그의 배포를 통해 프로그램을 광고함으로써 공중의 사용자에게 프로그램을 양도하거나 임대하는 행위를 나타낸다. The first to sixth embodiments describe embodiments relating to the use of the program according to the present invention, wherein the program is integrated in the SDeX memory card 400. However, the programs illustrated in the first through sixth embodiments may be separated from the SDeX memory card 400 for use. Here, the use of the program itself may include (1) the manufacture of the program, (2) the free or payable transfer of the program, (3) the act of renting the program, (4) the act of importing the program, and (5) bidirectional posting Supply the program to the public through a communications line; and (6) transfer or lease the program to public users by advertising the program through display and distribution of brochures and catalogs.
양방향 전기통신회선을 통해 프로그램을 공급하는 행위(5)의 전형적인 예로는 프로그램 다운로드 서비스와 어플리케이션 서비스 공급자(Application Service Provider: ASP) 서비스가 있다. 프로그램 다운로드 서비스는 공급자가 프로그램을 사용자에게 송신하여 사용자가 프로그램을 사용할 수 있게 하고 있다. 또, 어플리케이션 서비스 공급자 서비스는 전기통신회선을 통해 프로그램의 기능을 사용자에게 공급하지만, 프로그램 자체는 공급자가 가지고 있다. Typical examples of the act of supplying a program via a bidirectional telecommunication line 5 include a program download service and an application service provider (ASP) service. The program download service allows a provider to send a program to a user so that the user can use the program. In addition, the application service provider service provides the user with the function of the program through a telecommunication line, but the program itself is owned by the provider.
(C) 도 15 내지 도 19, 도 23 및 도 24의 각 흐름도에서의 단계들의 순서 등의 프로시져에 대한 시간적인 순서는 본 발명을 특정하기 위한 기본적인 것으로서 고려된다. 따라서, 상술한 흐름도의 각각에 나타낸 프로시져는 제어방법이 사용되는 방법을 보여주고 있다. 그러므로, 이들 흐름도는 본 발명에 따르는 제어방법의 사용에 대한 실시예를 나타낸다. 각 흐름도에서의 단계들이 본 발명의 원래의 목적과 효과를 달성하기 위해 상술한 시간적인 순서로 실행된다면, 이들 흐름도의 프로시져는 의심할 나위없이 본 발명에 따르는 반도체 메모리 카드에 대한 제어방법의 실시예이다. (C) The temporal order for the procedure, such as the order of the steps in each of the flowcharts of Figs. 15 to 19, 23, and 24, is considered as basic for specifying the present invention. Therefore, the procedure shown in each of the above-described flowcharts shows how the control method is used. Therefore, these flowcharts show an embodiment of the use of the control method according to the invention. If the steps in each flowchart are executed in the order of time described above to achieve the original objects and effects of the present invention, then the procedures of these flowcharts will undoubtedly be an embodiment of a control method for a semiconductor memory card according to the present invention. to be.
(D) 제 1 내지 제 6 실시예에서, TRM(1)의 내외부에 대하여 비휘발성 메모리로서 EEPROM이 사용되었다. 그러나, 내부 메모리 및 외부 메모리는 FeRAM 등의 다른 비휘발성 메모리일 수 있다. (D) In the first to sixth embodiments, EEPROM was used as a nonvolatile memory for the inside and outside of the TRM 1. However, the internal memory and the external memory may be other nonvolatile memories such as FeRAM.
(E) SD 휴대형 장치(300)의 예로서 이동전화 형식을 취하였다. 그러나 SD ㅎ대형 장치는 소비자의 휴대형 오디오장치, 셋톱박스(Set Top Box: STB), 또는 이동전화일 수 있다. (E) The mobile telephone format was taken as an example of the SD portable apparatus 300. However, SD devices can be consumer portable audio devices, set top boxes (STBs), or mobile phones.
본 발명의 청구항에 정의된 발명은 상술한 실시예 및 그 수정예를 확장하거나 일반화한 것이다. 확장과 일반화의 정도는 출원시점에서의 관련기술의 상태에 기초한 것이다. The invention defined in the claims of the present invention extends or generalizes the above-described embodiments and modifications thereof. The extent of extension and generalization is based on the state of the art at the time of filing.
그러나, 청구항에 정의된 발명은 관련 기술의 기술적 문제점을 해결하기 위한 수단에 기초한 것이기 때문에, 본 발명의 범위는 관련 기술분야의 통상의 기술을 가진 자에 의해 실현되는 관련 기술의 범위로부터 벗어나지 않는다. 그러므로, 본 청구항에 정의된 각 발명은 상세한 설명에 기재된 내용에 실질적으로 대응하는 것이다. However, since the invention defined in the claims is based on means for solving the technical problems of the related art, the scope of the present invention does not depart from the scope of the related art realized by one of ordinary skill in the art. Therefore, each invention defined in the present claims corresponds substantially to the contents described in the detailed description.
본 발명에 따르는 반도체 메모리 카드는 삭제된 파일에 대한 높은 보호를 제공하므로, 신뢰성 있는 데이터를 저장하기에 이상적이다. 따라서, 본 발명에 따르는 반도체 메모리 카드는 소비자 용품 분야와 같은 산업의 다양한 분야에 이용될 수 있다. The semiconductor memory card according to the present invention provides high protection against deleted files and is therefore ideal for storing reliable data. Thus, the semiconductor memory card according to the present invention can be used in various fields of the industry, such as in the field of consumer goods.
부호의 설명Explanation of the sign
1 : TRM 2 : 외부 EEPROM1: TRM 2: External EEPROM
3 : 내부 EEPROM 4 : 외부 메모리 제어부3: internal EEPROM 4: external memory controller
5 : HIM 6 : 마스크 ROM5: HIM 6: mask ROM
7 : CPU 8 : 클라이언트 어플리케이션7: CPU 8: Client Application
9 : 가상머신 10 : API9: Virtual Machine 10: API
11: 이벤트 분석 핸들러 12 : 비명령 실행 핸들러11: event analysis handler 12: non-command execution handler
13: 타이머 핸들러 14 : 판독/기입 핸들러13: timer handler 14: read / write handler
15: 삭제 핸들러 21 : 어플리케이션 프로그램용 영역15: Delete handler 21: Area for application program
22: 보안영역 23 : 인증영역22: security realm 23: authentication realm
24: 비인증 영역 100 : 카드 리더/라이터24: unauthorized region 100: card reader / writer
210: 무선 기지국 300 : 휴대형 장치210: wireless base station 300: portable device
Claims (17)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003027683 | 2003-02-04 | ||
JPJP-P-2003-00027683 | 2003-02-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20050103448A true KR20050103448A (en) | 2005-10-31 |
Family
ID=32844181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020047020514A KR20050103448A (en) | 2003-02-04 | 2004-02-04 | Semiconductor memory card and computer readable program |
Country Status (10)
Country | Link |
---|---|
US (1) | US7303135B2 (en) |
EP (1) | EP1493157B1 (en) |
KR (1) | KR20050103448A (en) |
CN (1) | CN100472644C (en) |
AT (1) | ATE380381T1 (en) |
BR (1) | BRPI0405222A (en) |
CA (1) | CA2481852A1 (en) |
DE (1) | DE602004010458T2 (en) |
MX (1) | MXPA04012286A (en) |
WO (1) | WO2004070728A1 (en) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0511919D0 (en) * | 2005-06-11 | 2005-07-20 | Ibm | Device permitting partial disabling of information retrievability on worm media |
KR101504647B1 (en) * | 2006-08-08 | 2015-03-30 | 샌디스크 테크놀로지스, 인코포레이티드 | Portable mass storage with virtual machine activation |
US7725614B2 (en) | 2006-08-08 | 2010-05-25 | Sandisk Corporation | Portable mass storage device with virtual machine activation |
JP4483891B2 (en) * | 2007-04-02 | 2010-06-16 | フェリカネットワークス株式会社 | Information processing terminal, data movement method, and program |
US8694776B2 (en) * | 2007-12-21 | 2014-04-08 | Spansion Llc | Authenticated memory and controller slave |
US9069940B2 (en) | 2010-09-23 | 2015-06-30 | Seagate Technology Llc | Secure host authentication using symmetric key cryptography |
KR20130025223A (en) * | 2011-09-01 | 2013-03-11 | 삼성전자주식회사 | Method for managing memory and image forming apparatus performing the same |
US8826459B2 (en) * | 2011-11-29 | 2014-09-02 | Jason Swist | Systems and methods of automatic multimedia transfer and playback |
US8621644B2 (en) | 2011-12-29 | 2013-12-31 | Elwha Llc | System and method for protecting data stored on a removable data storage device |
CN104268184B (en) * | 2014-09-16 | 2017-11-21 | 青岛海信移动通信技术股份有限公司 | File delet method and terminal in a kind of mobile terminal |
KR101605156B1 (en) | 2014-12-11 | 2016-03-21 | 네이버비즈니스플랫폼 주식회사 | Device, method, and computer for providing file deleting service |
IT201700057287A1 (en) * | 2017-05-26 | 2018-11-26 | St Microelectronics Srl | PROCEDURE FOR MANAGING INTEGRATED CIRCUIT CARDS, CARD AND CORRESPONDING EQUIPMENT |
US11487908B2 (en) * | 2019-08-16 | 2022-11-01 | Macronix International Co., Ltd. | Secure memory |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63253493A (en) * | 1987-04-09 | 1988-10-20 | Mitsubishi Electric Corp | Information recording system |
US5479638A (en) * | 1993-03-26 | 1995-12-26 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporation wear leveling technique |
US5434919A (en) * | 1994-01-11 | 1995-07-18 | Chaum; David | Compact endorsement signature systems |
DE19633648A1 (en) * | 1996-08-21 | 1998-02-26 | Grundig Ag | Method and circuit arrangement for storing dictations in a digital dictation machine |
US6507911B1 (en) * | 1998-07-22 | 2003-01-14 | Entrust Technologies Limited | System and method for securely deleting plaintext data |
JP3389186B2 (en) | 1999-04-27 | 2003-03-24 | 松下電器産業株式会社 | Semiconductor memory card and reading device |
JP4423711B2 (en) * | 1999-08-05 | 2010-03-03 | ソニー株式会社 | Semiconductor memory device and semiconductor memory device operation setting method |
CN100442393C (en) | 1999-10-21 | 2008-12-10 | 松下电器产业株式会社 | A semiconductor memory card access apparatus, a computer-readable recording medium, an initialization method, and a semiconductor memory card |
JPWO2002041158A1 (en) * | 2000-11-20 | 2004-03-25 | 松下電器産業株式会社 | Non-contact reader / writer, information communication system using the same, and management system using the same |
US7097107B1 (en) * | 2003-04-09 | 2006-08-29 | Mobile-Mind, Inc. | Pseudo-random number sequence file for an integrated circuit card |
-
2004
- 2004-02-04 EP EP04708024A patent/EP1493157B1/en not_active Expired - Lifetime
- 2004-02-04 AT AT04708024T patent/ATE380381T1/en not_active IP Right Cessation
- 2004-02-04 KR KR1020047020514A patent/KR20050103448A/en not_active Application Discontinuation
- 2004-02-04 DE DE602004010458T patent/DE602004010458T2/en not_active Expired - Lifetime
- 2004-02-04 US US10/512,149 patent/US7303135B2/en not_active Expired - Fee Related
- 2004-02-04 BR BR0405222-6A patent/BRPI0405222A/en not_active IP Right Cessation
- 2004-02-04 MX MXPA04012286A patent/MXPA04012286A/en unknown
- 2004-02-04 CN CNB2004800004399A patent/CN100472644C/en not_active Expired - Fee Related
- 2004-02-04 CA CA002481852A patent/CA2481852A1/en not_active Abandoned
- 2004-02-04 WO PCT/JP2004/001144 patent/WO2004070728A1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
US7303135B2 (en) | 2007-12-04 |
MXPA04012286A (en) | 2005-02-25 |
CN100472644C (en) | 2009-03-25 |
WO2004070728A1 (en) | 2004-08-19 |
US20050226072A1 (en) | 2005-10-13 |
DE602004010458D1 (en) | 2008-01-17 |
EP1493157B1 (en) | 2007-12-05 |
CN1698130A (en) | 2005-11-16 |
EP1493157A1 (en) | 2005-01-05 |
DE602004010458T2 (en) | 2008-04-30 |
CA2481852A1 (en) | 2004-08-19 |
ATE380381T1 (en) | 2007-12-15 |
BRPI0405222A (en) | 2005-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4469405B2 (en) | Semiconductor memory card, program | |
CN103430222B (en) | Local trusted services manager for contactless smart card | |
CA2336158C (en) | Semiconductor memory card and data reading apparatus | |
US20060126422A1 (en) | Memory device and electronic device using the same | |
US6687800B1 (en) | Chip card comprising means and method for managing a virtual memory and associated communication method | |
CN103415874A (en) | Writing application data to secure element | |
KR20000022696A (en) | Storing data objects in a smart card memory | |
CN101578608B (en) | Methods and apparatuses for accessing content based on a session ticket | |
KR20050103448A (en) | Semiconductor memory card and computer readable program | |
CN101595488A (en) | Be used for content is tied to the method and apparatus of independent storage arrangement | |
KR20000068073A (en) | Storage media having electronic circuits and management method thereof | |
KR20090072717A (en) | New data storage usb disc, computer interface usb device and method by flash memory's bad patten | |
JP4486828B2 (en) | Semiconductor memory card, computer readable program | |
JP4279699B2 (en) | Semiconductor memory card, control program. | |
CN100557716C (en) | Semiconductor memory card and control method thereof | |
CN116225332A (en) | Storage management method, storage device and embedded chip | |
JPH10198776A (en) | Portable information recording medium, and its information writing and reading method | |
JPH025158A (en) | Expanded ic card and its accessing method | |
JPH0696304A (en) | Memory card | |
CN101617318A (en) | Be used for method and apparatus that content and licence are linked | |
JP2011060136A (en) | Portable electronic apparatus, and data management method in the same | |
Kose et al. | A SECURE DESIGN ON MIFARE CLASSIC CARDS FOR ENSURING CONTACTLESS PAYMENT AND CONTROL SERVICES | |
KR20090099955A (en) | The digital music album using flash memory and smart card cob, the playing device and the method of connecting with pc | |
JPS63223995A (en) | Portable electronic equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |