• 검색 결과가 없습니다.

(그림 2-3-2) HF 태그칩 시작품의 레이아웃 배치도

HF 태그 칩을 이용하여 제작된 보드는 다음과 같다. 우측이 Chip on board (COB) 공정 을 통해 HF 태그 칩을 실장한 보드이고, 좌측은 HF 대역에서 동작 가능한 안테나이다.

두 보드는 차동 신호를 전달하는 케이블로 연결되어 있다.

(그림 2-3-3) HF 태그 칩 보드와 안테나

나) 태그칩 디지털 기능 블록 구조 설계

- 보안 태그칩 명령어 설계

리더와 태그간의 상호 인증을 수행함으로써 태그의 메모리를 읽거나 수정할 수 있는

권한을 부여 받음과 동시에 정당한 태그인지를 확인 보안 태그칩이 태그 인증을 위해 서 추가로 지원해야 하는 명령은 아래와 같다.

(그림 2-3-4) NFC 보안 태그 칩에 추가되는 명령

권한을 부여 받음과 동시에 정당한 태그인지를 확인 보안 태그칩이 태그 인증을 위해 서 추가로 지원해야 하는 명령은 아래와 같다.

- Tag Read: 태그 메모리에 있는 데이터를 읽는 명령이다.

Command(8bits): 0x30으로 정의되며 Tag Read 명령임을 구분 Address(16bits): 태그 메모리를 읽는 번지

CRC checksum(16bits): Command와 Address까지의 CRC checksum

- Tag Write: 태그 메모리에 데이터를 쓰는 명령이다.

Command(8bits): 0xA0으로 정의되며 Tag Write 명령임을 구분 Address(16bits): 데이터를 쓰는 태그 메모리의 번지

Data(16 bytes): 태그 메모리에 쓰는 데이터

CRC checksum(16bits): Command, Address 및 Data까지의 CRC checksum

- Tag Auth: 태그 인증을 위한 명령으로 리더와 태그의 암호화 엔진을 동시에 초기화 하는 기능(Auth Type: 11)과 태그 인증(Auth Type: 00)을 수행하는 명령이다.

Command(8bits): 0x60으로 정의되며 Tag Authentication 명령임을 구분 Auth Type(2bits)

00: Tag AAuthentication를 수행 11: 암호화 엔진 초기화 과정을 수행 RFU (2 bits)

Length(4bits): 데이터의 길이를 바이트 단위로 표시

Data(1~16 bytes): 암호화 엔진의 초기화 데이터 또는 태그 인증에 사용되는 암호화 된 데이터

CRC checksum(16bits): Command, Address 및 Data까지의 CRC checksum

- 보안 태그칩의 암호화/복호화 설계

리더와 보안 태그의 AES 암호화 엔진을 초기화하기 위해서는 암호화 엔진에 Master Key와 초기 입력 벡터값을 입력하면 된다. 데이터가 연속적으로 송수신되는 경우에 해 당 세션 키(Session Key)를 다시 입력 키로 활용하여 항상 다른 세션 키(Session Key) 를 사용하도록 한다. Master Key는 보안 태그의 메모리에 미리 저장되어 있어야하며 암호화 엔진의 초기화 과정을 통하여 보안 태그에 있는 Master Key의 정보와 초기의 입력 벡터를 리더로 전송하여, 리더가 보안 태그와 동일한 Master Key와 초기의 입력 벡터를 사용함으로써 암호화 엔진을 보안 태그와 동일하게 초기화한다.

(그림 2-3-5)AES 암호화 알고리즘의 블록도

태그 인증 절차때 사용하는 랜덤한 데이터를 암호화 또는 복호화 과정에서 포인터를 이용하여 비트 단위로 세션 키를 사용하며, 128 비트의 세션 키를 다 소진한 경우에는 현재의 세션 키를 암호화 엔진의 입력 벡터로 사용하여 새로운 세션 키를 생성한다.

AES 엔진의 구동으로 생성된 출력 키를 전송하는 데이터에 비트 단위로 eXclusive OR 를 수행함으로써 데이터의 암호화 과정을 수행한다.

(그림 2-3-6) AES 알고리즘을 이용한 데이터 암호화 과정

AES 엔진의 구동으로 생성된 출력 키를 수신되는 데이터에 비트 단위로 eXclusive OR 를 수행함으로써 데이터의 복호화 과정을 수행한다.

(그림 2-3-7) AES 알고리즘을 이용한 데이터 복호화 과정

- 보안 태그칩의 태그 인증 절차

보안 리더와 보안 태그간의 태그 인증의 목적은 태그가 정당한 태그인지를 확인하는 절차이다. 태그 인증 절차는 보안 리더가 보안 태그와 암호화 엔진을 동시에 초기화하 기 위한 Tag Auth(Auth Type: 11) 명령을 수행한 이후에 태그 인증을 위한 Tag Auth(Auth Type: 00) 명령을 보안 태그에게 전송해야 한다.

암호화 엔진을 초기화하는 Tag Auth(Auth Type: 11) 명령은 리더가 랜덤하게 생성한 RnInt(64비트)를 보안 태그에게 전송함으로써 시작한다. RnInt를 수신한 보안 태그는 또한 RnTag(64비트) 를 랜덤하게 생성하여, RnInt와 RnTag를 암호화 엔진에 입력되는 초기 벡터로 사용한다. 보안 태그는 메모리에 저장된 Master Key와 RnInt, RnTag로 암 호화 엔진을 초기화하고 태그에 저장된 Master Key의 관련 정보(Key ID, Key Index)와 RnTag를 리더로 전송한다. 리더는 Master Key의 관련 정보(Key ID, Key Index)로 데이 터베이스에 있는 Master Key와 RnInt, RnTag로 보안 태그와 동일하게 암호화 엔진을 초기화한다.

KeyID: 0x0 ~ 0xFF까지 사용

KeyIndexLength: KeyIndex의 길이를 바이트 단위로 표시

KeyIndex: 리더의 Key 데이터베이스에서 Master Key의 index 정보

RnTag: 태그에서 랜덤하게 생성하여 암호화 엔진 초기화에 사용하는 데이터 RnInt: 리더에서 랜덤하게 생성하여 암호화 엔진 초기화에 사용하는 데이터 ChInt: 리더가 태그 인증을 위해 사용하는 랜덤한 인증 데이터

(그림 2-3-8)보안 리더와 보안 태그간의 태그 인증 절차

암호화 엔진의 초기화 이후에 수행되는 태그 인증 절차는 리더가 랜덤하게 생성한 인 증값(ChInt)을 암호화해서 보안 태그로 전송함으로써 시작한다. 보안 태그는 암호화된 ChInt 값을 복호화한 이후에 다시 암호화해서 리더로 전송하면, 리더는 수신한 암호화 된 ChInt를 다시 복호화한 이후에 원래 랜덤하게 생성한 인증값(ChInt)과 비교함으로 써 태그 인증 절차를 수행한다. 위의 절차에서 비교값이 동일하면 정당한 태그로 인증 하는 반면에 동일한 값이 아닌 경우에는 태그 인증이 실패한 것으로 간주한다.

보안 리더에서 태그 인증 절차를 수행하여 태그 인증이 성공한 결과는 아래 그림과 같 다. 보안 리더에서 임의로 생성한 인증 값(ChInt)을 암호화하여 전송하고 태그가 전송 한 리더 인증 값을 복호화한 값(Decrypted ChInt)이 동일한 결과를 보여줌으로써 태그 인증이 성공한 예이다.

(그림 2-3-9)리더에서 태그 인증이 성공한 예

- 메모리 엑세스 프로토콜 설계

EEPROM 제어부는 그림과 같이 주 상태 처리 블록, 부 상태 처리 블록, 메모리 제어 신 호 생성 블록으로 구성되며, 각각 블록의 기능은 다음과 같다.

주 상태 처리부: 주 상태 처리부에서는 명령 실행기로부터 동작 모드에 대한 정보를 전달받아 read, byte write, page write, chip erase, chip write, erase only, write only 동작에 대한 state를 제어하는 역할을 한다.

부 상태 처리부: 주 상태 처리부로부터 동작에 대한 상태 정보를 전달 받아 메모리에 읽거나 써야할 byte 수를 카운팅하고 신호 생성부의 state를 제어하는 역할을 한다.

신호 생성부: 신호생성부에서는 주 상태 처리부 및 부 상태 처리부의 state를 전달 받 아 메모리 제어 신호인 addr, cen, oen, wen, wesen 등을 읽기/쓰기 타이밍도에 맞게 최종 제어 신호를 생성하는 역할을 한다.

(그림 2-3-10)EEPROM 메모리 제어부

그림은 설계된 EEPROM 제어부에서 읽기 동작을 실행한 결과를 보여준다. EEPROM 메모 리 초기 값은 메모리 주소 0번지 “CCh”, 메모리 주소 1번지 “18h”로 설정되어 있 으며 읽기 동작을 통해 0번지, 1번지 주소에 해당하는 데이터를 정상적으로 읽어오고 있음을 확인 할 수 있다.

(그림 2-3-11)EEPROM 읽기동작 예

3. 응용 및 선행연구 conversion quadrature demodulator는 원하는 baseband 신호로 하향 변환하여 Digital 부로 전달한다. 주파수 생성블록은 사용하고자 하는 주파수를 생성하여 송신블록 및

High Speed Data Rate RFID Reader Digital Board

Modem

High Speed Data Rate RFID Reader Analog Board

(그림 3-1-1) 대용량 메모리 고속인식 센서리더 블록도

된다. 디지털부는 센서리더 초기화 및 모뎀 프로토콜과 센서 데이터를 처리하고, 시스 템 운용 중 발생되는 각종 이벤트 정보를 수집하고 처리하는 기능을 한다. 센서리더 구현결과는 그림 3-1-2 와 같다.

(그림 3-1-2) 대용량 메모리 고속인식 센서리더 시작품

나) 대용량 메모리 고속인식 센서리더 SW 설계 및 구현

대용량 메모리 고속인식 센서리더 S/W블록은 그림 3-1-3과 같이 구성되며 리눅스 기 반 부트 로더와 임베디드 리눅스 OS가 탑재되며, 리더 하드웨어 초기화 및 리더 시스 템을 제어하고, 리더 시스템 운용 중 발생되는 각종 이벤트 정보를 수집, 처리하는 기 능을 수행한다. 호스트 PC와 물리적으로 LAN를 이용한 소켓기반 메시지송수신 인터페 이스를 가진다. ISO/IEC 18000-63 기반 Gen2 명령어를 센서리더 CPU에서 모뎀으로 송 수신하기 위하여 16비트 버스를 사용하여 송수신한다. 센서 리더 S/W는 ISO/IEC 18000-63을 수행하는 디바이스 드라이버와 응용프로그램으로 구별된다. 센서리더 S/W 프로그램은 두개의 쓰레드(응답쓰레드, Gen2쓰레드)프로그램이 수행된다. 첫번째로 응 답쓰레드는 호스트 GUI로부터 소켓을 이용한 Gen2 관련 모든 명령어 구조체를 수신하 여 각각의 해당 명령어를 분류한후 태그드라이버함수를 호출한다. 태그드라이버함수는 해당 명령어를 수행 가능한 형태의 메시지로 재조립한 후 원형명령어큐(queue)에 넣어 다른 Gen2 쓰레드로 전달한다. Gen2 쓰레드는 명령어 종류별 해석처리(Command Process)를 수행하여 Gen2 프로토콜 제어 함수(Ptotocol Control Unit)로 전달하고 Gen2 프로토콜제어 함수는 인벤토리, Read, Write, Lock, Kill 등 Gen2 프로토콜별로 태그/리더간 18000-63 표준 명령어형태로 만들어 FPGA로 송신한다. FPGA로부터 태그 데이터를 수신한후 프로토콜 제어에서 수신한 태그ID정보는 다시 원형큐에 저장하여 응답 스레드로 전달하고 TCP/IP socket 송신을 이용하여 상위 호스트 GUI로 전달한다.

(그림 3-1-3) 센서리더 SW구성도

고속센서 리더의 GUI는 호스트 PC 에서 동작하는 윈도우 기반 S/W블록이다. 이 블록은 센서리더의 Gen2 프로토콜관련 파라메타 환경을 설정하거나 센서의 온도, 습도 등 센 서값을 읽기 위한 센서 구성 레지스터 셑팅을 제어하거나 실제 센서리더를 사용하기위 한 사용자의 명령을 입력 받아 소켓통신을 이용하여 리더에 전달하며, 리더의 응답에 대해 사용자에게 알려주는 역할을 주요 기능으로 한다. 사용자 명령의 경우는 사용자

고속센서 리더의 GUI는 호스트 PC 에서 동작하는 윈도우 기반 S/W블록이다. 이 블록은 센서리더의 Gen2 프로토콜관련 파라메타 환경을 설정하거나 센서의 온도, 습도 등 센 서값을 읽기 위한 센서 구성 레지스터 셑팅을 제어하거나 실제 센서리더를 사용하기위 한 사용자의 명령을 입력 받아 소켓통신을 이용하여 리더에 전달하며, 리더의 응답에 대해 사용자에게 알려주는 역할을 주요 기능으로 한다. 사용자 명령의 경우는 사용자

관련 문서