KR100915615B1 - Encryption and decryption module for hardisk having partitioning function with user card - Google Patents

Encryption and decryption module for hardisk having partitioning function with user card

Info

Publication number
KR100915615B1
KR100915615B1 KR1020080089038A KR20080089038A KR100915615B1 KR 100915615 B1 KR100915615 B1 KR 100915615B1 KR 1020080089038 A KR1020080089038 A KR 1020080089038A KR 20080089038 A KR20080089038 A KR 20080089038A KR 100915615 B1 KR100915615 B1 KR 100915615B1
Authority
KR
South Korea
Prior art keywords
hard disk
data
card
encryption
serial
Prior art date
Application number
KR1020080089038A
Other languages
Korean (ko)
Inventor
김영익
장성준
Original Assignee
(주)셀런에스엔
주식회사 아이디씨텍
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)셀런에스엔, 주식회사 아이디씨텍 filed Critical (주)셀런에스엔
Priority to KR1020080089038A priority Critical patent/KR100915615B1/en
Application granted granted Critical
Publication of KR100915615B1 publication Critical patent/KR100915615B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication

Abstract

An encryption and decryption module for a hard disk having partitioning function is provided to maintain security by performing an encryption when saving data in a hard disk. If a serial number stored in a card(14) coincides with a serial number stored in a memory(32), a microcontroller(33) allows operating. An initial address and partition size of a configuration data delivered from the microcontroller are used to divide the hard disk(40) by a hard disk encryption/decryption module(30). An application specific integrated circuit(ASIC)(34) of the hard disk encryption/decryption module ciphers data lighted from the main board(20) to the hard disk to the key value of configuration data. The application specific integrated circuit decodes data read from the divided hard disk as described above to the key value of configuration data.

Description

사용자별 하드디스크 분할 기능을 가진 하드디스크 암복호화모듈{ENCRYPTION AND DECRYPTION MODULE FOR HARDISK HAVING PARTITIONING FUNCTION WITH USER CARD}Hard disk encryption / decryption module with user-specific hard disk partitioning function {ENCRYPTION AND DECRYPTION MODULE FOR HARDISK HAVING PARTITIONING FUNCTION WITH USER CARD}

본 발명은 하드디스크에 저장할 데이터를 암호화 및 복호화하는 하드디스크 암복호화모듈에 관한 것으로, 더욱 상세하게는 사용자별로 하드디스크를 물리적으로 분할하여 하나의 컴퓨터를 여러 사람이 독립적으로 사용할 수 있도록 하는 사용자별 하드디스크 분할 기능을 가진 하드디스크 암복호화모듈에 관한 것이다.The present invention relates to a hard disk encryption / decryption module for encrypting and decrypting data to be stored in a hard disk. More specifically, the user can physically partition a hard disk for each user so that a single computer can be used independently by several people. The present invention relates to a hard disk encryption / decryption module having a hard disk partitioning function.

일반적으로, 하드디스크는 데이터를 저장하기 위한 대용량의 기록모듈로서, 하드디스크의 플래터와 헤드, 스핀들 모터, 헤드암, 회로기판 등으로 구성된다. 플래터는 자상체를 입힌 금속 원판으로 데이터가 기록되고, 이런 플래터가 여러 장 적층되어 스핀들 축에 고정되며, 스핀들 모터가 스핀들 축을 고속으로 회전시키도록 되어 있다. 그리고 플래터에 데이터를 읽고 쓰는 헤드는 헤드 암에 연결되어 있으며, 헤드 암은 VCM(Voice Coil Motor)에 의해 구동된다.In general, a hard disk is a large-capacity recording module for storing data, and is composed of a platter and a head of a hard disk, a spindle motor, a head arm, a circuit board, and the like. The platters are written on a metal disk with a magnetized body, and the platters are stacked several times and fixed to the spindle axis, and the spindle motor is configured to rotate the spindle axis at high speed. The head that reads and writes data to the platter is connected to the head arm, which is driven by a voice coil motor (VCM).

물리적인 하드디스크는 포맷과정을 통해 파일시스템에 따라 마스터 부트 레코드(MBR)와 파티션 테이블(PT), 파일 할당 테이블(FAT) 등을 생성하고, 컴퓨터가 부팅되면, 메인보드의 CPU는 롬 바이오스(Rom BIOS)에 내장된 프로그램을 실행한다. Rom BIOS에 내장된 프로그램에 부트 루틴(Boot Routine)을 포함하고 있고, 이 부트 루틴(Boot Routine)은 MBR(Master Boot Record)라 불리는 첫번째 하드 드라이브의 첫번째 섹터를 읽어들인다. 이 MBR부분에는 마스터 부트 프로그램(Master Boot Program)과 파티션 테이블이라는 하드드라이브 파티션 정보가 저장되어 있으며, 부트 루틴(BIOS Boot Routine)은 마스터 부트 프로그램(Master Boot Program)을 실행시키고, 이 마스터 부트 프로그램은 하드 드라이브의 활성화된 프라이머리 파티션(Primary Partition)을 찾아내어 그때부터 사용자가 직접 볼 수 있는 부팅 과정을 진행한다.The physical hard disk creates a master boot record (MBR), partition table (PT), file allocation table (FAT), etc. according to the file system through the format process. Rom BIOS). Rom BIOS's built-in program includes a boot routine that reads the first sector of the first hard drive, called the master boot record (MBR). The MBR section stores the hard drive partition information, which is called the Master Boot Program and the Partition Table. The boot routine runs the Master Boot Program. It finds the active primary partition of your hard drive and starts the boot process for you to see.

하나의 컴퓨터를 다수가 사용하면서 다른 사람의 사용환경과 분리하기 위하여 윈도우 시스템 등은 멀티 사용자 로그인 등을 지원하고 있다. 그런데 운영체계가 지원하는 멀티 사용자 기능은 하드디스크를 공동으로 사용하기 때문에 비밀을 유지하기 어려운 문제점이 있다.In order to separate a user's environment while using a single computer, the Windows system supports multi-user login. However, the multi-user function supported by the operating system has a problem that it is difficult to keep a secret because the hard disk is shared.

본 발명은 상기와 같은 문제점을 해소하기 위해 제안된 것으로, 본 발명의 목적은 사용자별로 하드디스크를 물리적으로 분할하여 하나의 컴퓨터를 여러 사람이 독립적으로 사용할 수 있도록 하는 사용자별 하드디스크 분할 기능을 가진 하드디스크 암복호화모듈을 제공하는 것이다.The present invention has been proposed to solve the above problems, and an object of the present invention is to have a hard disk partition function for each user to physically partition the hard disk for each user so that several people can use a single computer independently. It is to provide a hard disk encryption and decryption module.

상기와 같은 목적을 달성하기 위하여 본 발명의 암복호화모듈은, 카드 리드/라이터와 연결하기 위한 카드 슬롯; 일련번호가 저장된 메모리; 상기 카드 슬롯을 통해 연결된 카드 리드/라이터로부터 삽입된 카드의 설정 데이터(일련번호, 키값, 시작주소, 분할크기)를 가져와 내부 메모리에 저장함과 아울러 상기 카드에 저장된 일련번호와 상기 메모리에 저장된 일련번호를 비교하여 일치하면 동작을 허용하고, 일치하지 않으면 동작을 중지시키는 마이크로 콘트롤러; 및 상기 마이크로 콘트롤러로부터 전달받은 설정 데이터의 시작주소와 분할크기로 하드디스크를 분할하고, 메인보드로부터 하드디스크로 라이트되는 데이터를 설정 데이터의 키값으로 암호화하여 상기 분할된 하드디스크에 저장하고, 상기 분할된 하드디스크로부터 리드되는 데이터를 설정 데이터의 키값으로 복호화하여 상기 메인보드로 전달하는 주문형집적회로(ASIC)를 포함하는 하드웨어 구성인 것을 특징으로 한다.In order to achieve the above object, the encryption / decryption module of the present invention includes a card slot for connecting with a card lead / writer; A memory in which the serial number is stored; It takes the setting data (serial number, key value, start address, division size) of the card inserted from the card lead / writer connected through the card slot and stores it in the internal memory, and the serial number stored in the card and the serial number stored in the memory. Comparing the microcontrollers to allow operation if they match and stop the operation if they do not match; And dividing the hard disk into a start address and a split size of the setting data received from the microcontroller, encrypting data written from the main board to the hard disk using key values of the setting data, and storing the split data in the divided hard disk. And a hardware configuration including an application specific integrated circuit (ASIC) for decoding the data read from the hard disk into key values of the setting data and transmitting the same to the main board.

본 발명에 따른 하드디스크 암호화모듈은 하드디스크에 데이터를 저장하면서 암호화를 수행하므로 하드디스크의 분실시에도 보안을 유지할 수 있고, 하나의 컴퓨터를 여러사람이 공동으로 사용하는 경우에도 하드디스크를 사용자 수에 따라 물리적으로 완전히 분할하여 사용할 수 있으므로 사용자 간에 비밀과 보안을 유지할 수 있다.The hard disk encryption module according to the present invention performs encryption while storing data on the hard disk, so that security can be maintained even when the hard disk is lost, and even if several people share the same computer, the user can use the hard disk. Can be used physically and completely, keeping secrets and security between users.

도 1은 본 발명에 따른 하드디스크 암복호화모듈가 적용된 데스크탑 컴퓨터를 도시한 개략도,1 is a schematic diagram showing a desktop computer to which a hard disk encryption / decryption module according to the present invention is applied;

도 2는 본 발명에 따라 하드디스크를 분할하기 위해 카드를 설정하는 절차를 도시한 순서도,2 is a flowchart illustrating a procedure for setting a card for dividing a hard disk according to the present invention;

도 3은 본 발명에 따른 하드디스크 분할 개념을 설명하기 위해 도시한 개념도,3 is a conceptual diagram illustrating a hard disk partitioning concept according to the present invention;

도 4는 본 발명에 따라 사용자별 하드디스크 분할 기능을 가진 하드디스크 암복호화모듈를 도시한 구성 블럭도,4 is a block diagram illustrating a hard disk encryption / decryption module having a user-specific hard disk partitioning function according to the present invention;

도 5는 도 4에 도시된 하드디스크 분할 및 암복호화엔진이 탑재된 ASIC의 세부 기능 블럭도,5 is a detailed functional block diagram of an ASIC equipped with a hard disk partitioning and decryption engine shown in FIG. 4;

도 6은 본 발명에 따른 사용자별 하드디스크 분할 기능을 가진 하드디스크 암복호화모듈의 동작 절차를 도시한 순서도이다.6 is a flowchart illustrating an operation procedure of a hard disk encryption / decryption module having a user-specific hard disk partitioning function according to the present invention.

*도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

10: 컴퓨터 11: 카드인터페이스부10: Computer 11: Card Interface Section

12: 케이블 13: 설치 CD-ROM12: Cable 13: Installation CD-ROM

14: 카드 20: 메인보드14: card 20: motherboard

30: 암복호화 모듈 31: 카드 슬롯30: encryption / decryption module 31: card slot

32: 메모리 33: 마이크로 콘트롤러32: memory 33: microcontroller

34: 주문형 집적회로(ASIC) 35: 암복호화 모듈의 USB Port34: ASIC 35: USB port of encryption / decryption module

40: 하드디스크40: hard disk

본 발명과 본 발명의 실시에 의해 달성되는 기술적 과제는 다음에서 설명하는 본 발명의 바람직한 실시예들에 의하여 보다 명확해질 것이다. 다음의 실시예들은 단지 본 발명을 설명하기 위하여 예시된 것에 불과하며, 본 발명의 범위를 제한하기 위한 것은 아니다. The technical problems achieved by the present invention and the practice of the present invention will be more clearly understood by the preferred embodiments of the present invention described below. The following examples are merely illustrated to illustrate the present invention and are not intended to limit the scope of the present invention.

도 1은 본 발명에 따른 하드디스크 암복호화모듈이 적용된 데스크탑 컴퓨터를 개략적으로 도시한 도면이고, 도 2는 본 발명에 따라 하드디스크를 분할하기 위해 카드를 설정하는 절차를 도시한 순서도이다.1 is a diagram schematically illustrating a desktop computer to which a hard disk encryption / decryption module according to the present invention is applied, and FIG. 2 is a flowchart illustrating a procedure for setting a card for dividing a hard disk according to the present invention.

본 발명이 적용된 데스크탑 컴퓨터(10)는 도 1에 도시된 바와 같이, 내부에 메인보드(도 4의 20)와 본 발명의 하드디스크 암복호화모듈(30)과 하드디스크(40)가 실장되어 있고, 케이스 전면에는 USB 포트(35)와 카드(14)를 읽고 쓰기 위한 카드인터페이스부(11), CD-ROM(13)을 읽을 수 있는 CD-ROM 드라이브가 위치하고 있다. 그리고 컴퓨터 구매시에 카드설정을 위해 설치 프로그램이 저장된 CD-ROM(13)과 카드설정을 위해 암복호화 모듈를 PC의 USB포트와 연결하기 위한 USB 통신케이블(12)이 함께 제공된다. As shown in FIG. 1, the desktop computer 10 to which the present invention is applied has a main board (20 of FIG. 4), a hard disk encryption / decryption module 30, and a hard disk 40 mounted therein. In front of the case, a USB port 35, a card interface unit 11 for reading and writing the card 14, and a CD-ROM drive capable of reading the CD-ROM 13 are located. When the computer is purchased, a CD-ROM 13 having an installation program for card setting and a USB communication cable 12 for connecting the encryption / decryption module to the USB port of the PC for card setting are provided.

도 1을 참조하면, 본 발명에 따라 사용자별 하드디스크 분할 기능을 가진 하드디스크 암복호화모듈은 카드(14)를 삽입해야만 동작할 수 있으므로 각 사용자별로 하드디스크 분할을 설정하기 위한 카드 설정절차가 우선되어야 한다. 따라서 본 발명이 적용된 컴퓨터 구매자는 암복화모듈을 USB 통신 케이블(12)을 통해 USB포트로 연결하고, 설치 CD-ROM(13)을 CD-ROM 드라이브에 넣고 실행시켜 도 2에 도시된 바와 같은 절차를 통해 카드를 설정한다. 본 발명의 실시예에서는 설명의 편의를 위해 A 내지 D로 구분되는 4개의 카드(스마트 카드)를 설정하는 것을 예로 들어 설명한다.Referring to FIG. 1, the hard disk encryption / decryption module having a hard disk partitioning function for each user according to the present invention can operate only by inserting the card 14, so the card setting procedure for setting the hard disk partitioning for each user is prioritized. Should be. Therefore, a computer purchaser to which the present invention is applied is connected to the encryption / decryption module through a USB communication cable 12 through a USB port, and the installation CD-ROM 13 is inserted into a CD-ROM drive and executed as shown in FIG. 2. Set the card through. In the embodiment of the present invention, for the convenience of description, four cards (smart cards) divided by A to D will be described as an example.

도 2를 참조하면, 본 발명에 따라 카드를 설정하기 위해 카드설정 CD-ROM(13)을 삽입하고 케이블(12)을 암호화모듈(30)의 USB Port(35)와 PC의 USB Port에 연결한 후 전원이 온되면 CD-ROM을 통해 부팅동작이 실행되어 키보드와 모니터 등을 사용할 수 있는 상태가 된다(S201~S204). 이어 암복호화모듈과 통신하여 하드디스크의 전체용량(Size)과 암복호화모듈의 일련번호(SN:serial Number)등을 가져온다(S205). 2, in order to set the card according to the present invention, the card setting CD-ROM 13 is inserted and the cable 12 is connected to the USB port 35 of the encryption module 30 and the USB port of the PC. After the power is turned on, the boot operation is executed through the CD-ROM, and the keyboard and the monitor can be used (S201 to S204). Subsequently, it communicates with the encryption / decryption module to obtain the total capacity of the hard disk and the serial number of the encryption / decryption module (S205).

이어 "하드디스크 사이즈는 400 MB 입니다. A카드를 넣으십시오."라는 안내메시지를 통해 카드삽입을 요구하고, A카드가 삽입되면 "A카드로 사용할 하드디스크 사이즈를 입력하시요"라는 안내 메시지를 표시한 후 A카드의 소지자가 사용할 카드 분할사이즈를 입력받는다(S206~S207).Then, you will be prompted to insert a card through the message "Hard disk size is 400 MB. Please insert a card." When the A card is inserted, the message "Please enter the size of the hard disk to use as A card" is displayed. After that, the card holder receives the card division size to be used by the holder of the A card (S206 to S207).

사용자가 키보드로 "100 MB"를 입력하면, A카드에 설정 데이터를 라이트한다(S208). 이때 각 카드에 라이트되는 설정 데이터는 디스크 암복호화 모듈의 일련번호(SN)와, 암복호화에 사용할 키값과, 시작 실린더 인덱스(index), 사용할 실린더 수 (분할크기)등이다. 키값은 random하게 발생하는 256비트의 값으로서 각 카드마다 서로 다르게 유일한 값으로 라이트한다. When the user inputs "100 MB" with the keyboard, the setting data is written to the A card (S208). The setting data written to each card at this time is a serial number SN of the disk encryption / decryption module, a key value to be used for encryption and decryption, a starting cylinder index, a number of cylinders to be used (division size), and the like. The key value is a randomly generated 256-bit value that is written uniquely for each card.

A카드에 대한 라이트가 완료되면, " 남은 하드디스크 사이즈는 300 MB 입니다."라는 안내 메시지로 하드디스크의 잔존용량을 안내하고(S209), 다시 " B카드를 넣으십시요."라는 안내메시지를 표시하여 B카드를 넣으면 다시 "B카드로 사용할 하드디스크 사이즈를 입력하시오"라고 안내하여 분할할 하드디스크 사이즈를 입력받는다.When writing to the A card is completed, the remaining message of the hard disk is notified with the message "The remaining hard disk size is 300 MB." (S209), and the message "Please insert card B" is displayed again. If you insert the B card, you will be prompted again, "Please enter the hard disk size to use as B card."

이어 B카드에 설정 데이터를 라이트한 후 하드디스크의 잔존 용량을 안내하고, 상기 과정을 반복하여 A 내지 D 카드를 설정한다.Then, after setting data is written to the B card, the remaining capacity of the hard disk is guided, and the above steps are repeated to set the A to D cards.

카드 설정이 완료되면, 설정 케이블(12)과 CD-ROM(13)을 제거하고 전원을 오프(power off)한 후, 이후부터 카드 A,B,C,D 카드를 4사람이 나누어 가지고, A,B,C,D 카드 중 아무 카드나 하나를 넣어 사용할 수 있다. 이때 첫 사용이라면 O/S부터 인스톨해서 사용한다.When the card setting is completed, remove the setting cable 12 and the CD-ROM 13 and turn off the power. Afterwards, the cards A, B, C, and D are divided into 4 people, A You can put any one card, B, C, or D. In this case, install it after using O / S.

도 3은 본 발명에 따른 하드디스크 분할 개념을 설명하기 위해 도시한 개념도이다. 본 발명의 실시예에서는 이해의 편의를 위해 하드디스크의 전체 용량이 400MB이고, 이 400MB를 100MB씩 4개로 분할하여 4명의 사용자가 앞서 설정한 A 내지 D 카드를 이용하여 사용하는 것으로 설명한다.3 is a conceptual diagram illustrating a hard disk partitioning concept according to the present invention. In the embodiment of the present invention, for convenience of understanding, the total capacity of the hard disk is 400MB, and the 400MB is divided into four units of 100MB each, and four users use the above-described A to D cards.

도 3을 참조하면, 컴퓨터의 메인보드(20)와 하드디스크(40) 사이에 본 발명에 따라 사용자별 하드디스크 분할 기능을 가진 하드디스크 암복호화모듈(30)이 연결되어 있다. Referring to FIG. 3, a hard disk encryption / decryption module 30 having a user-specific hard disk partitioning function is connected between a main board 20 and a hard disk 40 of a computer.

그리고 카드 설정 절차를 통해 4개의 카드(14A~14D)에는 다음 표1과 같이 설정 데이터가 저장되어 있다.Four card 14A to 14D are stored in the card setting procedure as shown in Table 1 below.

구분division 카드ACard A 카드BCard B 카드CCard C 카드DCard D 설정데이터Setting data S.N=12345KEY[256bit]=..1Start=000MBSize=100MBS.N = 12345KEY [256bit] = .. 1Start = 000MBSize = 100MB S.N=12345KEY[256bit]=..2Start=100MBSize=100MBS.N = 12345KEY [256bit] = .. 2Start = 100MBSize = 100MB S.N=12345KEY[256bit]=..3Start=200MBSize=100MBS.N = 12345KEY [256bit] = .. 3Start = 200MBSize = 100MB S.N=12345KEY[256bit]=..4Start=300MBSize=100MBS.N = 12345KEY [256bit] = .. 4Start = 300MBSize = 100MB

상기 표1에서 각 카드에 저장된 S.N은 암복호화모듈의 일련번호로서 모두 동일하고, Key는 암복호화를 위한 키값으로 랜덤하게 생성되는 고유값이다. 그리고 Start는 시작 위치를 나타내고, Size는 해당 카드로 분할되어 사용할 수 있는 하드디스크의 분할크기이다.In Table 1, S.N stored in each card is the same as the serial number of the encryption / decryption module, and Key is a unique value randomly generated as a key value for encryption / decryption. Start represents the starting position, and Size is the partition size of the hard disk that can be used by partitioning the card.

본 발명에 따른 암복호화 모듈은 전원이 온되면 삽입된 카드에 따라 400MB의 하드디스크를 100MB씩 분할하여 4명의 사용자가 각각 100MB의 하드디스크로 사용할 수 있게 한다. 예컨대, 카드 A(14A)가 삽입되면, 사용자 A가 0~99MB까지 사용하게 하고, 카드 B(14B)가 삽입되면 100~199MB 까지 사용할 수 있게 하며, 카드 C(14C)가 삽입되면 200~299MB 까지 사용할 수 있게 한다. 따라서 각 사용자는 카드(14A~14D)에 따라 허용된 하드디스크 영역만 사용할 수 있고, 다른 하드디스크 영역은 접근할 수 없으므로 각 사용자별로 독립적인 사용이 가능하다. The encryption / decryption module according to the present invention divides a 400MB hard disk by 100MB according to an inserted card when the power is turned on so that four users can use the 100MB hard disk. For example, when the card A 14A is inserted, the user A can use up to 0 to 99 MB, and when the card B 14B is inserted, the user can use up to 100 to 199 MB, and when the card C 14C is inserted, the 200 to 299 MB is used. Enable to use. Therefore, each user can use only the hard disk area allowed according to the cards 14A to 14D, and other hard disk areas are inaccessible, so each user can use the device independently.

예를 들면, 약 400 MB 하드디스크(cylinder=800, head=16, sector=61)가 있고 스마트 카드는 4장이 있으며 하드디스크를 4등분 한다면, 400 Mega Byte 하드디스크의 000~099 Mega Byte 영역이 HDD-A로 할당되고, 400 Mega Byte 하드디스크의 100~199 Mega Byte 영역이 HDD-B로 할당되고, 400 Mega Byte 하드디스크의 200~299 Mega Byte 영역이 HDD-C로 할당되고, 400 Mega Byte 하드디스크의 300~399 Mega Byte 영역이 HDD-D로 할당된다.For example, if you have about 400 MB hard disks (cylinder = 800, head = 16, sector = 61), four smart cards, and divide the hard disk into quadrants, the 000 to 099 Mega Byte area of the 400 Mega Byte hard disk is HDD-A is allocated, 100 ~ 199 Mega Byte area of 400 Mega Byte hard disk is allocated to HDD-B, 200 ~ 299 Mega Byte area of 400 Mega Byte hard disk is allocated to HDD-C, 400 Mega Byte 300 ~ 399 Mega Byte area of hard disk is allocated to HDD-D.

또한 본 발명의 암복호화 모듈(30)에는 일련번호(S.N)가 저장되어 있는데, 이는 인증용이다. 그래서 카드 4개는 모듈의 S.N 값을 저장하고 있어야 한다. 그러나 암호화 키값은 4개가 서로 다르게 지정되어 있어야 한다. 하드디스크를 분할하기 위해 시작(start) 위치와 분할된 하드디스크 크기(size)를 각 카드는 포함하고 있어야 한다. 그래서 분할 영역이 겹치지 않게 지정되어 있어야 한다.In addition, the encryption / decryption module 30 of the present invention stores a serial number (S.N), which is for authentication. So four cards should store the module's S.N values. However, four encryption key values should be specified differently. Each card must contain a start position and a partitioned hard disk size to partition the hard disk. So partitions must be specified so that they do not overlap.

한편, 하드 디스크(40)의 동작은 크게 초기화 과정과 데이터 억세스(data access) 과정으로 이루어지며 이들은 다양한 명령으로 이루어진다. 하드 디스크(40)는 사용되기전 초기화 과정을 거친다. 초기화 과정은 하드웨어적으로 리셋(reset)되고, Identify, init_parameter 등의 명령으로 이루어진다. 초기화 과정 중 Identify 과정에서 하드디스크의 모든 정보(실린더 수, 헤드 수, 섹터 수, 등)를 습득하는데, 초기화 과정이 끝나면 데이터 억세스(data access) 과정 즉, 임의 위치에 데이터(data)를 읽거나 쓸 수 있는 과정이 지속된다. 대표적인 명령으로는 하드디스크를 읽을 때의 "read sectors"와 하드디스크에 쓸 때의 " write sectors" 명령이 있다.On the other hand, the operation of the hard disk 40 is largely composed of an initialization process and a data access process and these are made of various commands. The hard disk 40 goes through an initialization process before being used. The initialization process is reset in hardware and consists of commands such as Identify and init_parameter. During the initialization process, the Identify process acquires all the information (cylinder number, head number, sector number, etc.) of the hard disk. After the initialization process, the data access process, that is, read data at random locations, The process of writing continues. Typical commands include "read sectors" when reading a hard disk and "write sectors" when writing to a hard disk.

따라서 본 발명은 "Identify" 과정에서 하드디스크 사이즈를 카드의 설정 데이터에 맞게 변환해주는 동작이 필요하고, 데이터 억세스(data access) 과정에서 access 위치를 카드의 설정 데이터가 지정하는 범위로 변환해주는 것이 필요하다.Therefore, the present invention requires an operation for converting the size of the hard disk to match the configuration data of the card in the "Identify" process, and converting the access position to the range specified by the configuration data of the card in the data access process. Do.

도 4는 본 발명에 따른 사용자별 하드디스크 분할 기능을 가진 하드디스크 암복호화모듈의 구성을 도시한 구성 블럭도이고, 도 5는 도 4에 도시된 하드디스크 분할 및 암복호화 엔진이 탑재된 주문형 집적회로(ASIC:Application Specific Integrated Circuit)의 세부 기능 블럭도이다.4 is a block diagram showing the configuration of a hard disk encryption / decryption module having a user-specific hard disk partitioning function according to the present invention, and FIG. 5 is an on-demand integration in which the hard disk partitioning and encryption / decryption engine shown in FIG. 4 is mounted. Detailed functional block diagram of an application specific integrated circuit (ASIC).

본 발명에 따른 하드디스크 암복호화모듈(30)은 도 4에 도시된 바와 같이, 스마트 카드(14)와 연결하기 위한 스마트카드 슬롯(31)과, 일련번호가 저장된 메모리(32), 전체동작을 제어하기 위한 마이크로 콘트롤러(33), 마이크로 콘트롤러(33)로부터 전달받은 설정 데이터로 하드디스크(40)를 분할하고 메인보드(20)로부터 하드디스크로 라이트되는 데이터를 암호화하여 하드디스크(40)에 저장하고, 하드디스크(40)로부터 리드되는 데이터를 복호화하여 메인보드(20)로 전달하는 주문형집적회로(ASIC:34)로 구성된다.Hard disk encryption and decryption module 30 according to the present invention, as shown in Figure 4, the smart card slot 31 for connecting to the smart card 14, the memory 32, the serial number is stored, the overall operation Dividing the hard disk 40 into the setting data received from the micro-controller 33, the micro-controller 33 for controlling and encrypts the data written to the hard disk from the main board 20 and stored in the hard disk 40 And an on-demand integrated circuit (ASIC) 34 that decrypts the data read from the hard disk 40 and transfers the data to the main board 20.

도 4를 참조하면, 메모리(32)는 보안분야 임베디드시스템에서 프로토콜(protocol)을 모르면 아무도 값을 못 읽도록 만든 일종의 EEPROM이고, 마이크로 콘트롤러(33)는 카드 슬롯(31)을 통해 연결된 카드 리드/라이터로부터 삽입된 카드(14)의 설정 데이터(일련번호, 키값, 시작주소, 분할크기)를 가져와 내부 메모리에 저장함과 아울러 카드(14)에 저장된 일련번호와 메모리(32)에 저장된 일련번호를 비교하여 일치하면 동작을 허용하고, 일치하지 않으면 동작을 중지시킨다.Referring to FIG. 4, the memory 32 is a kind of EEPROM that no one reads a value without knowing the protocol in a security embedded system, and the microcontroller 33 is a card read / connected through the card slot 31. Takes the setting data (serial number, key value, start address, division size) of the card 14 inserted from the writer and stores them in the internal memory, and compares the serial numbers stored in the card 14 with the serial numbers stored in the memory 32. If it matches, the operation is allowed and if it does not match, the operation is stopped.

그리고 주문형집적회로(ASIC:34)는 도 5에 도시된 바와 같이, 마이크로 콘트롤러(33)로부터 전달받은 설정 데이터의 시작주소를 저장하고 있는 시작주소 레지스터(55)와, 마이크로 콘트롤러(33)로부터 전달받은 설정 데이터의 분할크기를 저장하고 있는 분할크기 레지스터(56)와, 마이크로 콘트롤러(33)로부터 전달받은 설정 데이터의 키값을 저장하고 있는 키 레지스터(57)와, 메인보드(20)측에서 하드디스크(40)로 전달되는 직렬 라이트 데이터를 병렬 데이터로 변환하는 제1 직렬-병렬 변환부(51a)와, 제1 직렬-병렬 변환부(51a)로부터 명령을 분리하는 명령 분리부(52)와, 제어신호에 따라 하드디스크 리드/라이트 명령이면 제1 직렬-병렬 변환부(51a)로부터 리드/라이트 주소와 라이트인 경우 라이트 데이터를 분리하는 제1 먹스(54a)와, 제 1 먹스(54a)에서 분리된 리드/라이트 주소인 실린더 주소에 상기 시작주소 레지스터(55)의 시작주소를 더하여 실린더 주소를 변환하는 리드/라이트 주소 변환수단(60)과, 제1 먹스(54a)에서 분리된 라이트 데이터를 키 레지스터(57)에 저장된 키값으로 암호화하는 암호화부(58)와, 제어신호에 따라 리드/라이트 주소변환수단(60)의 변환된 주소와 암호화부(58)에서 암호화된 라이트 데이터를 결합하는 제2 먹스(54b)와, 제2 먹스(54b)의 병렬 데이터를 직렬로 변환하여 하드디스크(40)측으로 전달하는 제1 병렬-직렬 변환부(55a)와, 하드디스크(40)에서 메인보드(20)측으로 전달되는 직렬 리드 데이터를 병렬 데이터로 변환하는 제2 직렬-병렬 변환부(51b)와, 제어신호에 따라 하드디스크 리드 또는 status 리드 명령이면 제2 직렬-병렬 변환부(51b)로부터 status(예: HDD Identify 명령시 돌려 받는 status는 실린더 사이즈, 헤드 사이즈, 섹터 사이즈, ... 등이 있다)와 리드 데이터를 분리하는 제3 먹스(54d)와 제3 먹스(54d)에서 분리된 리드 데이터를 키 레지스터(57)에 저장된 키값으로 복호화하는 복호화부(59)와 제 3 먹스(54d)에서 분리된 status의 실린더 사이즈를 분할크기 레지스터(56)의 분할크기로 변환하는 실린더 사이즈 변환수단(61)과, 제어신호에 따라 실린더 사이즈 변환수단(61)의 변환된 사이즈와 복호화부(58)에서 복호화된 리드 데이터를 결합하는 제4 먹스(54c)와, 제4 먹스(54c)의 병렬 데이터를 직렬로 변환하여 메인보드(20)측으로 전달하는 제2 병렬-직렬 변환부(55b)와, 명령 분리부(52)로부터 명령을 전달받아 명령에 따라 제어신호를 생성하는 스테이트 머신(53)으로 구성된다.The ASIC 34 transfers the start address register 55 storing the start address of the setting data received from the microcontroller 33 and the microcontroller 33 as shown in FIG. 5. The partition size register 56 which stores the division size of the received setting data, the key register 57 which stores the key value of the setting data received from the microcontroller 33, and the hard disk at the motherboard 20 side. A first serial-parallel conversion unit 51a for converting serial write data transmitted to 40 into parallel data, an instruction separation unit 52 for separating an instruction from the first serial-parallel conversion unit 51a, and In the hard disk read / write command according to the control signal, the first mux 54a for separating the read / write address and the write data in the case of the write data from the first serial-parallel converter 51a and the first mux 54a. Separated Leads / The read / write address converting means 60 for converting the cylinder address by adding the start address of the start address register 55 to the cylinder address, which is the write address, and the write data separated from the first mux 54a. The encryption unit 58 for encrypting the key value stored in the < RTI ID = 0.0 >), < / RTI > and the second mux 54b for combining the converted address of the read / write address conversion means 60 and the write data encrypted by the encryption unit 58 according to the control signal. ), A first parallel-to-serial converting unit 55a for converting the parallel data of the second mux 54b into serial and transferring the serial data to the hard disk 40 side, and transferring the hard disk 40 from the hard disk 40 to the motherboard 20 side. A second serial-parallel conversion section 51b for converting the serial read data into parallel data; and a status (for example, HDD) from the second serial-parallel conversion section 51b in response to a hard disk read or status read command according to a control signal. The status returned by the Identify command is the cylinder Size, head size, sector size, ...) and the read data separated from the third mux 54d and the third mux 54d, which separate the read data, into a key value stored in the key register 57. Cylinder size converting means 61 for converting the cylinder size of the status separated by the decoder 59 and the third mux 54d into the dividing size of the dividing size register 56, and the cylinder size converting means in accordance with a control signal. A fourth mux 54c that combines the transformed size of 61 and the read data decoded by the decoder 58 and the parallel data of the fourth mux 54c are serially converted and transferred to the motherboard 20. A second parallel-to-serial conversion section 55b and a state machine 53 which receives a command from the command separation section 52 and generates a control signal according to the command.

도 5를 참조하면, 본 발명의 실시예에서는 하드디스크(40)는 현재 범용적으로 사용되는 SATA방식을 기준으로 한다. SATA 방식은 신호선이 TX, RX 로 2선만 있다. 그래서 신호가 메인보드(20)에서 하드디스크(40)로 이동되는 선은 Tx선, 하드디스크(40)에서 메인보드(20)로 신호가 이동하는 선은 Rx선이다. Referring to FIG. 5, in the embodiment of the present invention, the hard disk 40 is based on the SATA method currently used universally. SATA method has two signal lines, TX and RX. Thus, the line through which the signal is moved from the motherboard 20 to the hard disk 40 is a Tx line, and the line through which the signal is moved from the hard disk 40 to the motherboard 20 is an Rx line.

메인보드(20)는 수많은 하드 디스크 명령을 내린다. SATA 방식은 직렬 데이터이므로 제1 직렬-병렬 변환부(51a)에서 병렬 데이터로 변환된다. 병렬 데이터 중 명령 은 명령 분리부(52)에서 분리되어 스테이트 머신(53)으로 전달된다.The motherboard 20 issues numerous hard disk commands. Since the SATA method is serial data, the first serial-parallel converter 51a converts the data into parallel data. In parallel data, the command is separated from the command separator 52 and transmitted to the state machine 53.

스테이트 머신(53)은 ASIC의 두뇌부분을 담당하는 블록으로 명령에 따라 적절히 각 먹스(mux:54a~54d)를 제어하여 어느 값을 선택할 것인지 결정한다. 제1 먹스(MUX A:54a)는 앞 단의 데이터 중 스테이트 머신(state machine:53)이 명하는 파라미터(parameter)를 선택하여 출력해준다. 예를 들면, "Hard Disk Sector Address"를 지정하는 명령이라면 실린더(C), 헤드(H), 섹터(S) 값을 따로따로 분리해 내는 것이다. 특히, "C"는 실린더 인덱스(cylinder index)이므로 반드시 분리해 내어 스마트 카드(14)에서 읽어진 "cyl_start"와 더해져 다음 블록에 전송되어야 한다.The state machine 53 is a block in charge of the brain portion of the ASIC and controls each mux (mux: 54a to 54d) appropriately according to a command to determine which value to select. The first mux AUX 54a selects and outputs a parameter indicated by the state machine 53 from the preceding data. For example, the command to designate "Hard Disk Sector Address" is to separate cylinder (C), head (H) and sector (S) values separately. In particular, since "C" is a cylinder index, it must be separated and added to "cyl_start" read from the smart card 14 to be transmitted to the next block.

이렇게 조작이 필요한 데이터는 분리해내고 그대로 전달해도 되는 파라미터( parameter)는 "other parameters" 라는 경로로 모두 통과하게 한다. S, H는 조작할 필요가 없어 분리할 필요가 없지만 이해를 쉽게 하기 위해 분리하였다. "Hard disk write data" 는 반드시 분리해 내어 스마트 카드(14)에서 읽은 key로 암호화(encryption) 되어야 한다. The data that needs to be manipulated can be separated and passed through as "other parameters". S and H need not be manipulated and do not need to be separated, but are separated for ease of understanding. "Hard disk write data" must be separated and encrypted with the key read from the smart card 14.

분리되고 조작된 또는 조작되지 않은 모든 데이터는 적절한 타이밍(timing)에 따라 state machine(53)의 제어를 받아 제2 먹스(MUX B:54b)가 받아들여 제1 병렬-직렬 변환부(55a)를 거쳐 고속 직렬 데이터로 변해 하드디스크로 전달된다.All of the separated, manipulated or unmanipulated data is controlled by the state machine 53 according to the appropriate timing and is received by the second mux BUX54b to receive the first parallel-to-serial converter 55a. It is converted into high-speed serial data and transferred to the hard disk.

하드디스크(40)에서 메인보드(20)로 이동하는 데이터는 먼저 제2 직렬-병렬 변환부(51b)에서 병렬 데이터로 바뀌고, 제3 먹스(MUX D:54d)에서 state machine(53)의 제어를 받아 조작이 되는 파라미터(parameter)는 분리된다. 리드 데이터(Hard disk read data)는 반드시 분리해 내어 스마트카드(14)에서 읽은 key로 복호화(decryption)되야 한다. 그리고 Identify 명령의 경우 실린더(cyl)수를 그대로 전달하지 않고 그 대신 스마트카드에서 읽은 분할 크기(cyl_size)를 보내면 된다. 분리되고 조작된 또는 조작이 안된 모든 데이터는 적절한 타이밍에 따라 스테이트 머신(state machine:53)의 명령을 받아 제4 먹스(MUX C:54c)가 받아들여 제2 병렬-직렬 변환부(55b)를 거쳐 고속 직렬 데이터로 변해 메인보드(20)에 전달한다. 3개의 레지스터(55,56,57)는 스마트 카드에서 읽은 시작주소(cyl_start), 분할크기(cyl_size), 키(key)를 각각 저장하는 레지스터이다.Data moving from the hard disk 40 to the main board 20 is first converted into parallel data in the second serial-to-parallel conversion unit 51b, and then controlled by the state machine 53 in the third mux DUX54d. Received and manipulated parameters are separated. The hard disk read data must be separated and decrypted with a key read from the smart card 14. In the case of the Identify command, the number of cylinders (cyl) is not transmitted as it is. Instead, the partition size (cyl_size) read from the smart card is sent. All the separated, manipulated or unmanipulated data is received by the state machine 53 according to the appropriate timing, and the fourth MUX C: 54c receives the second parallel-to-serial conversion unit 55b. After the high speed serial data is converted to the main board 20. The three registers 55, 56, and 57 are registers for storing the start address (cyl_start), the partition size (cyl_size), and the key, respectively, read from the smart card.

도 6은 본 발명에 따른 사용자별 하드디스크 분할 기능을 가진 하드디스크 암복호화모듈의 동작 절차를 도시한 순서도이다.6 is a flowchart illustrating an operation procedure of a hard disk encryption / decryption module having a user-specific hard disk partitioning function according to the present invention.

먼저, 본 발명의 실시예에서는 하드디스크(40)가 실린더 단위로 4 분할되었으므로 억세스 과정에서 섹터주소(address) 변환이 필요하다. 이를 위해 본 발명의 암복호화 모듈(30)은 카드(14)에 표1의 "Start" 대신에 시작 실린더 값 "start_cyl", 표1의 "Size" 대신에 사용할 실린더 수 "size_cyl" 값이 저장되야 한다. 따라서 하드디스크의 전체 실린더가 "800"인 것을 실린더 단위로 균등하게 분할할 경우 앞서의 표1은 다음 표2와 같이 변경된다.First, in the embodiment of the present invention, since the hard disk 40 is divided into four cylinder units, sector address translation is required in the access process. To this end, the encryption / decryption module 30 of the present invention should store the starting cylinder value "start_cyl" instead of "Start" of Table 1 and the number "size_cyl" of the cylinder to be used instead of "Size" of Table 1 in the card 14. do. Therefore, in the case where the entire cylinder of the hard disk is "800" evenly divided into cylinder units, the above Table 1 is changed to the following Table 2.

구분division 카드ACard A 카드BCard B 카드CCard C 카드DCard D 설정데이터Setting data S.N=12345KEY[256bit]=..1Start_cylinder=000Size_cylinder=200S.N = 12345KEY [256bit] = .. 1Start_cylinder = 000Size_cylinder = 200 S.N=12345KEY[256bit]=..2Start_cylinder=200Size_cylinder=200S.N = 12345KEY [256bit] = .. 2Start_cylinder = 200Size_cylinder = 200 S.N=12345KEY[256bit]=..3Start_cylinder=400Size_cylinder=200S.N = 12345KEY [256bit] = .. 3Start_cylinder = 400Size_cylinder = 200 S.N=12345KEY[256bit]=..4Start_cylinder=600Size_cylinder=200S.N = 12345KEY [256bit] = .. 4Start_cylinder = 600Size_cylinder = 200

상기 표2와 같이 실린더 단위로 분할한 경우에 다음과 같이 변환된다. 즉, A카드(14A)로 부팅한 경우는 " Hdd_cylinder_index = main_board_cylinder_index + 000"이고, B카드(14B)로 부팅한 경우는 "Hdd_cylinder_index = main_board_cylinder_index + 200"이며, C카드(14C)로 부팅한 경우는 "Hdd_cylinder_index = main_board_cylinder_index + 400"이고, D카드(14D)로 부팅한 경우는 "Hdd_cylinder_index = main_board_cylinder_index + 600"이다. When divided into cylinder units as shown in Table 2, the conversion is as follows. That is, when booting with A card 14A, "Hdd_cylinder_index = main_board_cylinder_index + 000", when booting with B card 14B, "Hdd_cylinder_index = main_board_cylinder_index + 200", and booting with C card 14C. "Hdd_cylinder_index = main_board_cylinder_index + 400", and booting with the D card 14D is "Hdd_cylinder_index = main_board_cylinder_index + 600".

도 6을 참조하면, 카드(14)를 삽입하고 전원버튼을 누르면 마이크로 컨트롤러(33)가 동작을 시작한다. 카드(14)에서 4가지 설정 값(SNc,Key,Start_Cyl,Size_Cyl)을 읽는다(S1). 그리고 메모리(32)에서 모듈에 저장된 일련번호(SNm)를 읽는다. 이어 ASIC칩(34)을 리셋(reset)시키고, 카드로부터 읽은 일련번호(SNc값)와 메모리에 저장된 일련번호(SNm값)를 비교하여 그 값이 다르면 ASIC칩(34)에 명령하여 메인보드(20)와 하드디스크(40) 사이의 케이블을 등가적으로 끊고 더 이상 동작을 진행하지 않는다(S2).Referring to FIG. 6, when the card 14 is inserted and the power button is pressed, the microcontroller 33 starts operation. The card 14 reads four set values SNc, Key, Start_Cyl, and Size_Cyl (S1). The serial number SNm stored in the module is read from the memory 32. Subsequently, the ASIC chip 34 is reset, and the serial number (SNc value) read from the card is compared with the serial number (SNm value) stored in the memory. If the value is different, the ASIC chip 34 is instructed and the main board ( The cable between 20) and the hard disk 40 is equivalently disconnected and no further operation is performed (S2).

카드(14)로부터 읽은 일련번호(SNc값)와 메모리에 저장된 일련번호(SNm값)가 같으면 3가지 설정 값(Key, Start_Cyl, Size_Cyl)을 ASIC칩(34)의 레지스터(55~57)에 라이트하고, 하드디스크 분할 기능과 암복호화 기능을 시작하게 한다. If the serial number (SNc value) read from the card 14 and the serial number (SNm value) stored in the memory are the same, three setting values (Key, Start_Cyl, Size_Cyl) are written to the registers 55 to 57 of the ASIC chip 34. The hard disk partitioning function and the encryption / decryption function are started.

한편, 하드 디스크의 동작은 크게 초기화 과정과, 데이터 억세스(data access) 과정으로 이루어지며, 이들은 다양한 명령으로 이루어진다. 하드 디스크는 사용되기 전 초기화 과정을 거친다. 이는 h/w적으로 reset 되고, Identify, init_parameter, 등의 명령으로 이루어진다. 초기화 과정 중 Identify 과정에서 하드디스크의 모든 정보(실린더 수, 헤드 수, 섹터 수, 등)를 습득한다(S3). On the other hand, the operation of the hard disk is largely composed of an initialization process and a data access process, which are performed by various commands. Hard disks are initialized before being used. This is reset by h / w and consists of commands such as Identify, init_parameter, and so on. During the initialization process, all the information (cylinder number, head number, sector number, etc.) of the hard disk is acquired (S3).

메인보드(20)는 "Hdd Identify" 명령에서 하드디스크(40)의 대부분의 정보를 얻으므로 암복호화모듈(30)은 이 명령을 가로채 카드마다 그 카드에 맞게 값을 변경해서 전달해야 한다. 특히, 실린더수(C), 헤드수(H), 섹터수(S)로 사이즈가 결정되는데, 실린더 수는 실지 하드디스크 실린더 수를 전달하지 않고 카드에서 정한 사이즈 값이 나올 정도로 실린더 수를 전달한다 .Since the motherboard 20 obtains most of the information of the hard disk 40 in the "Hdd Identify" command, the encryption / decryption module 30 should intercept this command and change the value according to the card for each card. In particular, the size is determined by the number of cylinders (C), the number of heads (H), and the number of sectors (S). The number of cylinders does not carry the actual number of hard disk cylinders. .

예를 들면, 실린더수 = 800, 헤드수 = 16, 섹터수 = 61 라는 하드디스크가 있을 때, 4명이 A,B,C,D 카드를 사용하고 하드디스크 사이즈는 동등하게 4등분 하였다면, A,B,C,D 카드 중 하나를 넣었을 때 메인보드(20)가 "Identify" 명령을 내리면 모듈(30)은 하드디스크(40)로부터 실린더 수를 비록 "800"으로 받았지만 메인보드(20)로 "200"을 전달한다. 이렇게 하면 메인보드(20)는 "400MB"가 아닌 "100MB"로 판별한다.For example, suppose you have a hard disk with cylinders = 800, heads = 16, sectors = 61. If four people use A, B, C, and D cards and their hard disks are equally divided into four, A, If the motherboard 20 issues an "Identify" command when one of the B, C, or D cards is inserted, the module 30 receives "800" as the number of cylinders from the hard disk 40, but the " Delivers 200 ". In this case, the motherboard 20 determines "100MB" instead of "400MB".

하드디스크 분할 시 실린더 단위로 영역을 분할시켜야 한다. 왜냐하면 헤드가 적은 거리를 움직이므로 시크 타임(seek time)이 적게 걸리고, 하드디스크 명령 중 "init_parameter"라는 명령이 있는데, 하드디스크를 A,B,C,D 로 나누어 사용해도 이 명령의 파라미터 값 변경이 없기 때문이다. "init_parameter" 명령은 헤드(head)와 섹터(sector) 개수만 파라미터로 필요로 하기 때문이다. When partitioning a hard disk, the area must be divided by cylinder. Because the head travels less distance, it takes less seek time, and there is a command called "init_parameter" among the hard disk commands. Even if the hard disk is divided into A, B, C, and D, the parameter value of this command is changed. Because there is no. This is because the "init_parameter" command requires only the number of heads and sectors as parameters.

초기화 과정이 끝나면 데이터 억세스(data access) 과정 즉, 임의 위치에 데이터를 읽거나 쓸 수 있는 과정이 지속된다(S4). 대표적인 명령이 하드디스크를 읽을 때 read sectors(S41), 하드디스크에 쓸 때 write sectors(S42) 명령이 있다.After the initialization process, a data access process, that is, a process of reading or writing data at an arbitrary position continues (S4). Representative commands include read sectors (S41) when reading a hard disk, and write sectors (S42) when writing to a hard disk.

메인보드(20)는 하드디스크(40)상의 임의 데이터를 억세스하기 위하여 섹터 단위(512byte)로 인터페이스한다. 그래서 섹터 주소(address)를 지정하고, 필요한 양만큼 데이터를 읽거나 쓰면 된다. 예를 들면, 읽기함수는 "Read_sectors ( C, H, S, Cnt, Buf[ ] )"이고, 쓰기 함수는 "Write_sectors ( C, H, S, Cnt, Buf[ ] )"이다. 이때, C 는 Cylinder index로서 억세스할 실린더 위치이고, H는 Head index로서 억세스할 헤드 위치이며, S는 Sector index로서 억세스할 섹터 위치를 나타낸다. 그리고 Cnt는 sector count로서 억세스할 섹터 수량을 나타내고, Buf [ ]는 buffer로서 억세스할 버퍼를 나타내며, buf[] 에 하드디스크의 데이터가 입출력된다. 예를 들면, 메인보드(20)에서 "Read_sectors ( 1, 2, 3, 4, Buf[ ] )"라는 명령을 내리면, 하드디스크의 1번 Cylinder index, 2번 Head , 3번 Sector 위치부터 4개 sector 를 buf[ ] 로 읽어 들인다. Byte 로 환산하면 4*512 = 1024 byte 이다. The motherboard 20 interfaces in sector units (512 bytes) to access arbitrary data on the hard disk 40. So, you can specify a sector address and read or write data as needed. For example, the read function is "Read_sectors (C, H, S, Cnt, Buf [])" and the write function is "Write_sectors (C, H, S, Cnt, Buf [])". In this case, C is a cylinder position to be accessed as a cylinder index, H is a head position to be accessed as a head index, and S is a sector position to be accessed as a sector index. Cnt denotes the number of sectors to be accessed as a sector count, Buf [] denotes a buffer to be accessed as a buffer, and data on the hard disk is input and output to buf []. For example, if the main board 20 commands "Read_sectors (1, 2, 3, 4, Buf [])", four cylinder indexes from the 1st cylinder index, 2nd head, and 3rd sector of the hard disk will be displayed. Read sector into buf []. Converted to Byte, 4 * 512 = 1024 byte.

이와 같이 본 발명에 따르면 A,B,C,D 카드 중 하나의 카드를 넣으면 컴퓨터는 400MB의 물리적인 하드디스크를 100 MByte의 하드디스크 하나가 연결된 것으로 처리한다.As described above, according to the present invention, when one of the A, B, C, and D cards is inserted, the computer treats the 400 MB physical hard disk as one 100 MByte hard disk connected.

이러한 본 발명의 응용 예를 살펴보면, 기숙사 룸메이트가 4명이고 한 방을 사용할 때 PC 하나를 사용하고 카드 A,B,C,D 를 나누어 가지면 PC를 동시 사용할 수는 없지만 PC 4대를 가진 것과 같은 효과가 난다. 따라서 서로의 프라이버시를 침해하지 않으면서 취향에 따라 한 명은 linux를, 한 명은 windows-xp 를, 한 명은 windows-vista를, 한 명은 unix 를 설치하여 사용해도 될 것이다. 한 사람이 사용 중에 관리 소홀로 바이러스에 심하게 감염되어도 다른 사용자에게 피해를 주지 않는다. Looking at the application of the present invention, if you have four dorm roommates and use one PC and divide cards A, B, C, and D, you cannot use the PCs at the same time. Works. So you can use one with linux, one with windows-xp, one with windows-vista, and one with unix, without sacrificing each other's privacy. If one person is seriously infected with a virus while in use, it will not harm another user.

또한 군대 행정실을 예로 들면 컴퓨터 하나를 여러 행정병이 보안 측면에서 봤을 때 독립적으로 사용 가능하다. 즉, 자신의 데이터가 다른 행정병에게 넘어가지 않으므로 군사기밀이 유지될 수 있다. 더욱이, 본 발명에 따르면 하드 디스크가 도난당했을 때도 하드디스크의 모든 영역이 암호화되어 있으므로 데이터를 알아낼 수 없어 보안이 보장된다. In the military administration, for example, a single computer can be used independently from several security officers in terms of security. That is, military confidentiality can be maintained because his data is not passed on to other executives. Furthermore, according to the present invention, even when the hard disk is stolen, all areas of the hard disk are encrypted, so that data cannot be found and security is ensured.

그리고 가정의 예를 든다면 가족간 프라이버시를 침해하지 않는 용도로 사용 가능하다. And if you take a family example, you can use it to avoid invading your family's privacy.

이상에서 본 발명은 도면에 도시된 일 실시예를 참고로 설명되었으나, 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. The present invention has been described above with reference to one embodiment shown in the drawings, but those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom.

Claims (4)

삭제delete 카드 리드/라이터와 연결하기 위한 카드 슬롯;A card slot for connecting with a card lead / writer; 일련번호가 저장된 메모리;A memory in which the serial number is stored; 상기 카드 슬롯을 통해 연결된 카드 리드/라이터로부터 삽입된 카드의 일련번호, 키값, 시작주소 및 분할크기를 포함하는 설정 데이터를 가져와 메모리에 저장함과 아울러 상기 카드에 저장된 일련번호와 상기 메모리에 저장된 일련번호를 비교하여 일치하면 동작을 허용하고, 일치하지 않으면 동작을 중지시키는 마이크로 콘트롤러; 및Retrieves and stores in the memory the setting data including the serial number, key value, start address and division size of the card inserted from the card lead / writer connected through the card slot, and the serial number stored in the card and the serial number stored in the memory. Comparing the microcontrollers to allow operation if they match and stop the operation if they do not match; And 상기 마이크로 콘트롤러로부터 전달받은 설정 데이터의 시작주소와 분할크기로 하드디스크를 분할하고, 메인보드로부터 하드디스크로 라이트되는 데이터를 설정 데이터의 키값으로 암호화하여 상기 분할된 하드디스크에 저장하고, 상기 분할된 하드디스크로부터 리드되는 데이터를 설정 데이터의 키값으로 복호화하여 상기 메인보드로 전달하는 주문형집적회로(ASIC)를 포함하는 하드웨어 구성의 사용자별 하드디스크 분할 기능을 가진 하드디스크 암복호화모듈로서, The hard disk is divided into a start address and a split size of the configuration data received from the microcontroller, the data written from the motherboard to the hard disk is encrypted with a key value of the configuration data, and stored in the partitioned hard disk. A hard disk encryption / decryption module having a user-specific hard disk splitting function of a hardware configuration including an ASIC which decrypts data read from a hard disk into a key value of setting data and transmits the same to an motherboard. 상기 주문형집적회로는,The custom integrated circuit, 상기 마이크로 콘트롤러로부터 전달받은 설정 데이터의 시작주소를 저장하고 있는 시작주소 레지스터;A start address register for storing a start address of the configuration data received from the microcontroller; 상기 마이크로 콘트롤러로부터 전달받은 설정 데이터의 분할크기를 저장하고 있는 분할크기 레지스터;A division size register for storing a division size of the configuration data received from the microcontroller; 상기 마이크로 콘트롤러로부터 전달받은 설정 데이터의 키값을 저장하고 있는 키 레지스터;A key register for storing a key value of setting data received from the microcontroller; 메인보드측에서 하드디스크로 전달되는 병렬 데이터로부터 명령을 분리하는 명령 분리부;A command separator for separating a command from parallel data transferred from the motherboard to the hard disk; 제어신호에 따라 메인보드측에서 하드디스크로 전달되는 병렬 데이터로부터 라이트 주소와 라이트 데이터를 분리하는 제1 먹스;A first mux for separating the write address and the write data from the parallel data transmitted from the motherboard to the hard disk according to the control signal; 상기 제 1 먹스에서 분리된 리드/라이트 주소인 실린더 주소에 상기 시작주소 레지스터의 시작주소를 더하여 실린더 주소를 변환하는 리드/라이트 주소 변환수단;Read / write address conversion means for converting a cylinder address by adding a start address of the start address register to a cylinder address which is a read / write address separated from the first mux; 상기 제1 먹스에서 분리된 라이트 데이터를 상기 키 레지스터에 저장된 키값으로 암호화하는 암호화부;An encryption unit for encrypting the write data separated from the first mux with a key value stored in the key register; 제어신호에 따라 상기 리드/라이트 주소변환수단의 변환된 주소와 상기 암호화부에서 암호화된 라이트 데이터를 결합하는 제2 먹스;A second mux for combining the converted address of the read / write address conversion means and the write data encrypted by the encryption unit according to a control signal; 제어신호에 따라 하드디스크 리드 또는 status 리드명령이면 하드디스크로부터 전달되는 병렬 데이터로부터 status와 리드 데이터를 분리하는 제3 먹스;A third mux for separating the status and the read data from the parallel data transmitted from the hard disk in response to the control signal in the hard disk read or status read command; 상기 제3 먹스에서 분리된 리드 데이터를 상기 키 레지스터에 저장된 키값으로 복호화하는 복호화부;A decoder which decrypts the read data separated from the third mux into a key value stored in the key register; 상기 제 3 먹스에서 분리된 status의 실린더 사이즈를 분할크기 레지스터의 분할크기로 변환하는 실린더 사이즈 변환수단;Cylinder size converting means for converting the cylinder size of the status separated from the third mux to the dividing size of the dividing size register; 제어신호에 따라 상기 실린더 사이즈 변환수단의 분할크기와 상기 복호화부에서 복호화된 리드 데이터를 결합하는 제4 먹스; 및A fourth mux for combining the divided size of the cylinder size converting means and the read data decoded by the decoder according to a control signal; And 상기 명령 분리부로부터 명령을 전달받아 명령에 따라 제어신호를 생성하는 스테이트 머신을 구비한 것을 특징으로 하는 사용자별 하드디스크 분할 기능을 가진 하드디스크 암복호화모듈.And a state machine for receiving a command from the command separating unit and generating a control signal according to the command. 제2항에 있어서, 상기 사용자별 하드디스크 분할 기능을 가진 하드디스크 암복호화모듈은The hard disk encryption / decryption module of claim 2, wherein the hard disk encryption / decryption module having a user-specific hard disk partitioning function is provided. 메인보드측에서 하드디스크로 전달되는 직렬 라이트 데이터를 병렬 데이터로 변환하는 제1 직렬-병렬 변환부;A first serial-parallel conversion unit converting serial write data transferred from the main board side to the hard disk into parallel data; 상기 제2 먹스의 병렬 데이터를 직렬로 변환하여 하드디스크측으로 전달하는 제1 병렬-직렬 변환부;A first parallel-serial converting unit converting the parallel data of the second mux into a serial and transferring the parallel data of the second mux to a hard disk; 하드디스크에서 메인보드측으로 전달되는 직렬 리드 데이터를 병렬 데이터로 변환하는 제2 직렬-병렬 변환부;A second serial-to-parallel converter for converting serial read data transferred from the hard disk to the motherboard to parallel data; 상기 제4 먹스의 병렬 데이터를 직렬로 변환하여 메인보드측으로 전달하는 제2 병렬-직렬 변환부를 더 구비하여And a second parallel-serial conversion unit converting the parallel data of the fourth mux into a serial unit and transmitting the serial data to the motherboard. 직렬 데이터 전송방식(SATA)의 하드디스크를 지원할 수 있도록 된 것을 특징으로 하는 사용자별 하드디스크 분할 기능을 가진 하드디스크 암복호화모듈.Hard disk encryption and decryption module with a user-specific hard disk partitioning, characterized in that to support the serial data transfer (SATA) hard disk. 제2항에 있어서, 상기 스테이트 머신은The system of claim 2, wherein the state machine is 초기화 과정에서 메인보드로부터 " HDD Identify" 명령이 수신되면 카드로부터 읽은 분할크기를 전달하고, 데이터 억세스 과정에서 "Write_sectors ( C, H, S, Cnt, Buf[ ] )" 명령이 수신되면 실린더의 주소에 시작 실린더 주소를 더해 하드디스크측으로 전달하도록 제어하는 것을 특징으로 하는 사용자별 하드디스크 분할 기능을 가진 하드디스크 암복호화모듈.When the "HDD Identify" command is received from the motherboard during the initialization process, the partition size read from the card is transmitted. When the "Write_sectors (C, H, S, Cnt, Buf [])" command is received during the data access process, the cylinder address is received. Hard disk encryption and decryption module having a user-specific hard disk partitioning function, characterized in that the transfer to the hard disk side by adding the starting cylinder address.
KR1020080089038A 2008-09-10 2008-09-10 Encryption and decryption module for hardisk having partitioning function with user card KR100915615B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080089038A KR100915615B1 (en) 2008-09-10 2008-09-10 Encryption and decryption module for hardisk having partitioning function with user card

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080089038A KR100915615B1 (en) 2008-09-10 2008-09-10 Encryption and decryption module for hardisk having partitioning function with user card

Publications (1)

Publication Number Publication Date
KR100915615B1 true KR100915615B1 (en) 2009-09-03

Family

ID=41355357

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080089038A KR100915615B1 (en) 2008-09-10 2008-09-10 Encryption and decryption module for hardisk having partitioning function with user card

Country Status (1)

Country Link
KR (1) KR100915615B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108171086A (en) * 2017-12-26 2018-06-15 普华基础软件股份有限公司 A kind of fdisk encryption method based on hardware encryption card
KR20200022593A (en) * 2018-08-23 2020-03-04 최운영 System for Tracing Data Thieving by Using Assigned Area of Hard Disk Drive
CN112734361A (en) * 2020-12-29 2021-04-30 卡乐电子(苏州)有限责任公司 Distributed cooperative office data processing method and system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990058372A (en) * 1997-12-30 1999-07-15 윤종용 How to secure your computer using smart cards
KR20010097361A (en) * 2000-04-21 2001-11-08 한 동 원 A multi-user computer system and a control method thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990058372A (en) * 1997-12-30 1999-07-15 윤종용 How to secure your computer using smart cards
KR20010097361A (en) * 2000-04-21 2001-11-08 한 동 원 A multi-user computer system and a control method thereof

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108171086A (en) * 2017-12-26 2018-06-15 普华基础软件股份有限公司 A kind of fdisk encryption method based on hardware encryption card
CN108171086B (en) * 2017-12-26 2021-08-10 普华基础软件股份有限公司 Hard disk partition encryption method based on hardware encryption card
KR20200022593A (en) * 2018-08-23 2020-03-04 최운영 System for Tracing Data Thieving by Using Assigned Area of Hard Disk Drive
KR102112315B1 (en) 2018-08-23 2020-05-18 최운영 System for Tracing Data Thieving by Using Assigned Area of Hard Disk Drive
CN112734361A (en) * 2020-12-29 2021-04-30 卡乐电子(苏州)有限责任公司 Distributed cooperative office data processing method and system
CN112734361B (en) * 2020-12-29 2021-12-07 卡乐电子(苏州)有限责任公司 Distributed cooperative office data processing method and system

Similar Documents

Publication Publication Date Title
US7478248B2 (en) Apparatus and method for securing data on a portable storage device
US8230207B2 (en) System and method of providing security to an external attachment device
US7415571B1 (en) Disk drive and method for using a mailbox file associated with a disk storage medium for performing a function characterized by contents of the mailbox file
TW544579B (en) System, method, and device for playing back recorded audio, video or other content from non-volatile memory cards, compact disks, or other media
CN104573441B (en) A kind of computer and its data encryption with data security function and hiding method
US8516264B2 (en) Interlocking plain text passwords to data encryption keys
US8806128B2 (en) System and method for information security device with compact flash interface
EP2510430B1 (en) Storage device and method for using a virtual file in a public memory area to access a plurality of protected files in a private memory area
US7631195B1 (en) System and method for providing security to a portable storage device
US20100058066A1 (en) Method and system for protecting data
US20100017446A1 (en) File system configuration method and apparatus for data security and for accessing same, and storage device accessed by same
US20060053308A1 (en) Secured redundant memory subsystem
JP2007506201A (en) Device and system for secure access to digital media content and virtual multi-interface driver
KR20090095909A (en) Data storage device and data management method thereof
US20090086965A1 (en) Secure, two-stage storage system
US20130191636A1 (en) Storage device, host device, and information processing method
JP2009540437A (en) Method for protecting confidential information on a portable storage medium
KR100915615B1 (en) Encryption and decryption module for hardisk having partitioning function with user card
CN110929302B (en) Data security encryption storage method and storage device
JP4764455B2 (en) External storage device
US7779220B1 (en) Password-based media cartridge authentication
US20050259458A1 (en) Method and system of encrypting/decrypting data stored in one or more storage devices
KR100990973B1 (en) Apparatus of processing data using raw area of removable storage device
US7840745B2 (en) Data accessing system, controller and storage device having the same, and operation method thereof
CN114747177A (en) Data storage device encryption

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130531

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140709

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150819

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160829

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170828

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180828

Year of fee payment: 10