1. Trang chủ
  2. » Luận Văn - Báo Cáo

nghiên cứu phát triển ứng dụng cho java card

94 658 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 94
Dung lượng 1,42 MB

Nội dung

Qua mỗi phiên bản công nghệ Java Card đã có những thay đổi tương ứng với sự phát triển của phần cứng, hỗ trợ thêm nhiều tính năng mới cho phép thẻ thông minh có thể được sử dụng ở nhiều.

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

-PHÙNG VIỆT ANH

NGHIÊN CỨU PHÁT TRIỂN ỨNG DỤNG

CHO JAVA CARD

Chuyên ngành: Kỹ thuật Điện tử

LUẬN VĂN THẠC SĨ KỸ THUẬT

CHUYÊN NGÀNH: KỸ THUẬT ĐIỆN TỬ

NGƯỜI HƯỚNG DẪN KHOA HỌC:

TS NGUYỄN ĐỨC MINH

HÀ NỘI – 2014

Trang 2

MỤC LỤC i

DANH SÁCH HÌNH VẼ v

DANH SÁCH BẢNG BIỂU vi

DANH SÁCH TỪ VIẾT TẮT viii

LỜI MỞ ĐẦU 1

CHƯƠNG 1 TỔNG QUAN VỀ THẺ THÔNG MINH VÀ HỆ THỐNG JAVA CARD 5

1.1 Giới thiệu chung về thẻ thông minh 5

1.1.1 Lịch sử phát triển thẻ thông minh 5

1.1.2 Thẻ thông minh tiếp xúc 6

1.1.3 Thẻ thông minh không tiếp xúc 7

1.2 Tổng quan về hệ thống Java Card 8

1.2.1 Công nghệ Java Card 8

1.2.2 Hệ thống Java Card 11

1.3 Hệ thống đề xuất 13

1.3.1 Yêu cầu chức năng 13

1.3.2 Yêu cầu phi chức năng 13

1.4 Kết luận 13

CHƯƠNG 2 NGHIÊN CỨU HỆ THỐNG JAVA CARD 14

2.1 Phần cứng thẻ chip 14

2.1.1 Giao diện vật lí 14

2.1.1.1 Chân VCC (C1) 15

2.1.1.2 Chân RST (C2) 15

2.1.1.3 Chân CLK (C3) 15

2.1.1.4 Chân VPP (C6) 16

2.1.1.5 Chân I/O (C7) 16

2.1.1.6 Các chân còn l ại (C4,C5,C8) 17

2.1.2 Cấu tạo phần cứng của chip 17

2.1.3 Mô tả các thành phần của chip 18

2.1.3.1 Khối xử lý trung tâm (CPU) 18

2.1.3.2 Bản đồ bộ nhớ 21

2.1.3.3 FLASH 23

2.1.3.4 Ngắt 26

Trang 3

2.1.3.6 Timer 33

2.1.3.7 Bộ định thời khe thời gian (ETU Timer) 35

2.1.3.8 Khối tạo số ngẫu nhiên (RNG) 37

2.1.3.9 Bộ chuyển xung (Clock Switch) 38

2.1.3.10 CRC 40

2.1.3.11 DES 40

2.1.3.12 Các tính năng bảo mật 43

2.2 Hệ điều hành Java Card 44

2.2.1 Giới thiệu một số hệ điều hành Java Card 44

2.2.1.1 Hệ điều hành Java Card c ủa Gemalto 44

2.2.1.2 Hệ điều hành Java Card c ủa NXP 45

2.2.2 Các đặc điểm của hệ điều hành Java Card 47

2.2.2.1 Máy ảo Java 47

2.2.2.2 Đặc trưng ngôn ngữ 48

2.2.2.3 Các lớp lõi 50

2.3 Phương thức truyền nhận, trao đổi dữ liệu 52

2.3.1 APDU 53

2.3.1.1 Cặp câu lệnh - phản hồi 53

2.3.1.2 Các trường dữ liệu trong cặp câu lệnh - phản hồi 54

2.3.2 TPDU và APDU trong giao thức truyền T=0 55

2.3.2.1 Tổng quát 55

2.3.2.2 Trường hợp 1 56

2.3.2.3 Trường hợp 2S 57

2.3.2.4 Trường hợp 3S 58

2.3.2.5 Trường hợp 4S 59

2.3.2.6 Trường hợp 2E 60

2.3.2.7 Trường hợp 3E 62

2.3.2.8 Trường hợp 4E 63

2.3.3 TDPU và APDU trong giao thức truyền T=1 65

2.3.3.1 Tổng quát 65

2.3.3.2 Trường hợp 1 65

2.3.3.3 Trường hợp 2S và 2E 65

2.3.3.4 Trường hợp 3S và 3E 66

Trang 4

2.4 Kết luận 67

CHƯƠNG 3 THIẾT KẾ ỨNG DỤNG THỰC NGHIỆM 68

3.1 Thiết kế ứng dụng trên thẻ 68

3.1.1 Tổng quan về ứng dụng 68

3.1.2 Chức năng tạo cấu trúc dữ liệu 68

3.1.2.1 Cấu trúc dữ liệu mặc định trong Java Card 68

3.1.2.2 Cấu trúc dữ liệu trong ứng dụng DID 69

3.1.3 Chức năng lưu trữ vào trao đổi thông tin 70

3.1.3.1 Mã hóa 3DES 70

3.1.3.2 Lưu trữ và trao đổi thông tin không mã hóa 71

3.1.3.3 Trao đổi và lưu trữ thông tin mã hóa 72

3.1.4 Tổng kết các lớp và phương thức của ứng dụng DID 73

3.1.4.1 Lớp File System 73

3.1.4.2 Lớp File Applet 74

3.2 Thiết kế ứng dụng trên thiết bị đầu cuối 74

3.2.1 Thư viện API 74

3.2.1.1 Thư viện DID_API 75

3.2.1.2 Thư viện DID_LIB 76

3.2.2 Thiết kế bộ công cụ DIDToolkit 77

3.2.2.1 Tổng quan về ứng dụng 77

3.2.2.2 Chức năng tạo cấu trúc dữ liệu 77

3.2.2.3 Chức năng tương tác với ứng dụng trên thẻ 78

3.2.2.4 Ứng dụng thử nghiệm 78

3.3 Đánh giá 79

3.4 Kết luận 80

KẾT LUẬN 81

TÀI LIỆU THAM KHẢO 83

BẢNG ĐỐI CHIẾU THUẬT NGỮ VIỆT ANH 85

Trang 5

Trong quá trình thực hiện luận văn tác giả đã gặp rất nhiều khó khăn trong việc tiếp cận các nguồn tài liệu tham khảo cũng như những kiến thức đại số trong việc mã hóa dữ liệu Hôm nay hoàn thành xong luận văn tốt nghiệp, trước hết tác

giả xin chân thành cảm ơn TS Nguyễn Đức Minh, thầy đã tận tình hướng dẫn , chỉ

bảo, giúp đỡ tác giả có thể hoàn thành được luận văn tốt nghiệp của mình Tiếp theo, tác giả xin cảm ơn các thầy cô trong Viện Điện Tử Viễn Thông, đại học Bách Khoa Hà Nội đã giảng dạy, cung cấp những kiến thức cần có để tác giả có thể vận dụng trong quá trình thực hiện luận văn tốt nghiệp Và cuối cùng, tác giả xin gửi lời cảm ơn sâu sắc đến gia đình, người thân, bạn bè đã động viên, giúp đỡ, tạo điều kiện trong thời gian thực hiện luận văn này

Hà Nội, ngày 19 tháng 9 năm 2014

Học viên Phùng Việt Anh

Trang 6

Hình 1-1 Thẻ thông minh tiếp xúc và đ ầu đọc 7

Hình 1-2 Đầu đọc và thẻ thông minh không tiếp xúc .8

Hình 1-3 Kiến trúc tổng quát công nghệ Java Card 10

Hình 1-4 Kiến trúc tổng quát của một hệ thống Java Card 11

Hình 2-1 Sơ đồ chân của chip trên thẻ thông minh tiếp xúc[9] 14

Hình 2-2 Cấu trúc chip THC20F17BD[7] 17

Hình 2-3 Bản đồ bộ nhớ chip THC20F17BD ở chế độ thường[7] 22

Hình 2-4 Bản đồ bộ nhớ chip THC20F17BD ở chế độ bờ[7] 22

Hình 2-5 Cấu trúc một bộ định thời [7] 33

Hình 2-6 Quy trình trao đổi thông tin gi ữa ứng dụng trên thẻ và ứng dụng trên thiết bị đầu cuối 53

Hình 2-7 Cấu trúc câu lệnh APDU[3] 53

Hình 2-8 Cấu trúc APDU phản hồi[3] 54

Hình 3-1 Cấu trúc dữ liệu trong Java Card 68

Hình 3-2 Cấu trúc dữ liệu trong ứng dụng DID 69

Hình 3-3 Giao diện tạo cấu trúc tệp dữ liệu của DIDToolkit 77

Hình 3-4 Cửa sổ APDU 78

Hình 3-5 Giao diện ứng dụng ID khi chưa đọc dữ liệu từ thẻ 79

Hình 3-6 Giao diện ứng dụng ID sau khi đọc dữ liệu từ thẻ 79

Trang 7

Bảng 2-1 Bảng đặc tính điện của VCC trong điều kiện bình thường 15

Bảng 2-2 Bảng đặc tính điện của RST trong điều kiện bình thường 15

Bảng 2-3 Bảng đặc tính điện của CLK trong điều kiện bình thường 16

Bảng 2-4 Bảng đặc tính điện của I/O trong điều kiện bình thường 16

Bảng 2-5 Bảng thanh ghi chức năng trong chip THC20F17BD (Sắp xếp theo địa chỉ) 18

Bảng 2-6 Bảng mô tả thanh ghi PC 19

Bảng 2-7 Bảng mô tả thanh ghi SP 19

Bảng 2-8 Bảng mô tả thanh ghi ACC 19

Bảng 2-9 Bảng mô tả thanh ghi B 19

Bảng 2-10 Bảng mô tả thanh ghi PSW 20

Bảng 2-11 Bảng mô tả thanh ghi DPTR0/1 20

Bảng 2-12 Bảng mô tả thanh ghi DPS 20

Bảng 2-13 Bảng quy chiếu bộ nhớ mở rộng ở chế độ thường 22

Bảng 2-14 Bảng quy chiếu bộ nhớ mở rộng ở chế độ bờ 23

Bảng 2-15 Bảng mô tả thanh ghi trạng thái FLASH (FL_STS) 24

Bảng 2-16 Bảng mô tả thanh ghi FL_SDP1, FL_SDP2 24

Bảng 2-17 Bảng mô tả thanh ghi FL_CON 25

Bảng 2-18 Bảng liệt kê các loại ngắt 26

Bảng 2-19 Bảng mô tả thanh ghi IE 27

Bảng 2-20 Bảng mô tả thanh ghi IP 27

Bảng 2-21 Bảng mô tả thanh ghi UBUF 28

Bảng 2-22 Bảng mô tả thanh ghi USR 28

Bảng 2-23 Bảng mô tả thanh ghi UCR 29

Bảng 2-24 Bảng mô tả thanh ghi UCR2 30

Bảng 2-25 Bảng mô tả thanh ghi UCR3 31

Bảng 2-26 Bảng mô tả thanh ghi UIMSK 31

Bảng 2-27 Bảng mô tả thanh ghi UIMSK 32

Bảng 2-28 Bảng mô tả thanh ghi P0 32

Trang 8

Bảng 2-30 Bảng mô tả thanh thi TMOD 34

Bảng 2-31 Bảng mô tả thanh ghi TL0, TH0 34

Bảng 2-32 Bảng mô tả thanh ghi ISOTCON 35

Bảng 2-33 Bảng mô tả thanh ghi ISOTMSK 36

Bảng 2-34 Bảng mô tả thanh ghi ISOTDAT0/1 36

Bảng 2-35 Bảng mô tả thanh ghi ISOTRLD0/1 37

Bảng 2-36 Bảng mô tả thanh ghi RNGCTL 37

Bảng 2-37 Bảng mô tả thanh ghi RNGDAT 38

Bảng 2-38 Bảng mô tả thanh ghi CLKSEL 38

Bảng 2-39 Bảng mô tả thanh ghi CLKCON 39

Bảng 2-40 Bảng mô tả thanh ghi SLEEP 39

Bảng 2-41 Bảng mô tả thanh ghi CRC 40

Bảng 2-42 Bảng mô tả thanh ghi DESCTL 41

Bảng 2-43 Bảng mô tả các thanh ghi DESD0~DESD7 42

Bảng 2-44 Bảng mô tả thanh ghi VDCON 43

Bảng 2-45 Bảng mô tả thanh ghi FDCON 44

Bảng 2-46 Bảng liệt kê một số sản phẩm thẻ Java của Gemalto 45

Bảng 2-47 Bảng liệt kê một số sản phẩm thẻ Java của NXP 46

Bảng 2-48 Bảng liệt kê các ngo ại lệ được hỗ trợ trong Java Card 50

Bảng 2-49 Bảng liệt kê các lớp được hỗ trợ trong Java Card 51

Bảng 2-50 Bảng liệt kê các trường hợp cặp câu lệnh - phản hồi 54

Bảng 2-51 Bảng liệt kê các dạng của câu lệnh APDU 55

Bảng 2-52 Bảng liệt kê các từ khóa trạng thái trong giao thức truyền T=0 56

Bảng 3-1 Cấu trúc tệp dữ liệu trong ứng dụng DID 70

Bảng 3-2 Bảng mô tả các phương thức trong lớp FileSystem 73

Bảng 3-3 Bảng mô tả các phương thức trong lớp FileApplet 74

Bảng 3-4 Bảng mô tả các phương thức trong thư viện DID_API 75

Bảng 3-5 Bảng mô tả các phương thức trong thư viện DID_LIB 76

Trang 9

APDU Application Protocol Data Unit

TPDU Transmission Protocol Data Unit

SPOM Self Programmable One-chip Microcomputer DES Data Encryption Standard

AES Advance Encryption Standard

UART Universal Asynchronous Receiver/Transmitter

Trang 10

hệ điều hành trên từng loại thẻ Do đó, nhu c ầu về một nền tảng chung bên trong chip để hỗ trợ việc thực thi các ứng dụng được nêu ra Công nghệ Java Card được phát triển để phục vụ mục đích này Với việc tạo ra một môi trường ảo chung trên tất cả các hệ điều hành hỗ trợ Java Card, công nghệ này đã giúp cho việc phát triển ứng dụng đa chip trở nên dễ dàng, tiết kiệm được thời gian nghiên cứu, phát triển, chuyển đổi ứng dụng giữa các chip Java Card là một công nghệ không mới, tuy nhiên cho tới thời điểm hiện nay với sự phát triển nhanh chóng của thị trường thẻ chip thông minh nói chung hay như thị trường sim điện thoại, thẻ tín dụng, thẻ thông minh không tiếp xúc nói riêng việc phát triển ứng dụng cho các lo ại thẻ này là một lĩnh vực có tiềm năng phát triển rất lớn Bởi vậy, tác giả lựa chọ n đề tài

“Nghiên cứu phát triển ứng dụng cho Java Card” làm đề tài luận văn tốt nghiệp của mình Mục tiêu c ủa đề tài là tổng hợp cơ sở lý thuyết cả phần cứng cũng như phần mềm về công nghệ Java Card, từ đó thiết kế một ứng dụng mẫu cho phép lưu trữ thông tin cá nhân lên thẻ, đồng thời hỗ trợ việc đọc ghi đó một cách bảo mật

Từ khi ra đời cho tới nay, công nghệ Java Card đã có nhiều thay đổi từ phiên bản 1.0 cho tới phiên bản 3.0 mới nhất hiện nay Tuy nhiên, phiên bản Java Card 2 mới là phiên bản được sử dụng rộng rãi trong các loại thẻ thông minh như SIM điện thoại, thẻ thanh toán quốc tế, các lo ại thẻ không tiếp xúc Qua mỗi phiên bản công nghệ Java Card đã có những thay đổi tương ứng với sự phát triển của phần cứng, hỗ trợ thêm nhiều tính năng mới cho phép thẻ thông minh có thể được sử dụng ở nhiều

Trang 11

lĩnh vực khác nhau, chuyển đổi từ thẻ tiếp xúc sang thẻ không tiếp xúc… Việc lập trình cho Java Card cũng có nhiều thay đổi khi các bộ thư viện khung được cập nhật

và thay đổi qua từng phiên bản Bên cạnh việc bổ sung các thư viện mới hỗ trợ các công nghệ mới như mã hóa AES, giao tiếp không tiếp xúc thì cũng có các lớp được loại bỏ khỏi thư viện khung nhằm giảm bớt kích thước thư viện cũng như tăng hiệu năng hoạt động trên chip Luận văn sẽ tập trung vào phân tích công nghệ Java Card phiên bản 2 với hậu bản 2.2.1 là phiên bản đang được sử dụng rộng rãi hiện nay Trong luận văn, tác giả thực hiện việc nghiên cứu tổng quát về công nghệ Java Card bắt đ ầu từ tầng thấp nhất là nền tảng phần cứng cho tới tầng cao nhất là lớp ứng dụng Java Card:

 Về nền tảng phần cứng, thẻ Java Card có giao diện vật lý tương tự các loại thẻ chip thông thường với giao tiếp 8 chân Tuy nhiên để có thể hỗ trợ công nghệ Java Card các chip trên thẻ phải có cấu hình phần cứng tối thiểu là: vi

xử lý hoạt động với xung nhịp 5Mhz, bộ nhớ ROM 24KB, EEPROM 16KB, RAM 512 bytes Vi xử lý trung tâm c ủa chip có khả năng tùy biến cao từ những CPU 8 bit với tập lệnh 8051 cho tới các CPU 32 bit với kiến trúc ARM Ngoài ra trên chip còn có thể có thêm các khối tính toán bằng phần cứng để tăng tốc các chức năng tốn nhiều tài nguyên xử lý như việc sinh số ngẫu nhiên, mã hóa dữ liệu DES, 3DES, AES, RSA Bên cạnh đó để tăng cường tính bảo mật cho thẻ, trên chip cũng được bố trí thêm các khối phần cứng để chống lại các phương thức tấn công chip như t ấn công bằng điện áp, tấn công bằng tần số

 Hệ điều hành được xây dựng trên nền tảng phần cứng của chip Mỗi hãng sản xuất chip có một hệ điều hành riêng cho chip của mình với các dịch vụ riêng Tuy nhiên để thỏa mãn là thẻ hỗ trợ Java Card thì trên các hệ điều hành đều được tích hợp một môi trường chạy Java Card mà cốt lõi là một máy ảo Java Máy ảo Java này chịu trách nhiệm thực hiện các đoạn mã dựa trên các bộ thư viện khung và ngăn cách các ứng dụng được cài đ ặt với nhau Chính nhờ máy ảo Java này mà các ứng dụng Java Card có thể chạy được trên các chip khác nhau của các hãng sản xuất khác nhau

Trang 12

 Việc trao đổi thông tin giữa ứng dụng trên thẻ và ứng dụng trên thiết bị đầu cuối được thực hiện thông qua các đơn vị dữ liệu giao thức ứng dụng (ADPU)

và các đơn vị dữ liệu giao thức truyền dẫn (TPDU) Các loại thẻ thông minh

có thể hỗ trợ hai giao thức truyền là T=0 và T=1, với mỗi giao thức TPDU và APDU được quy chiếu khác nhau Ứng dụng được thiết kế sử dụng giao thức T=0 là giao thức thông dụng hơn T=1

 Với ứng dụng Java Card, ngoài việc đáp ứng được các chức năng như lưu trữ

dữ liệu, thực hiện các phép tính toán cơ bản thì tính năng bảo mật dữ liệu trên thẻ là một yêu cầu bắt buộc Để tránh thông tin không bị lộ ra ngoài trong quá trình gửi nhận các APDU hay để thực hiện việc xác thực dữ liệu, các phương thức mã hóa được sử dụng tới Các mã hóa thông dụng trên thẻ thông minh nói chung và thẻ Java nói riêng là 3DES và RSA Ứng dụng lưu trữ thông tin trên thẻ (DID) được thiết kế hỗ trợ mã hóa 3DES cho phép mã hóa và giải mã dữ liệu sử dụng khóa có độ dài 16 bytes

 Một hệ thống Java Card hoàn chỉnh ngoài phần thẻ còn cần phần ứng dụng trên thiết bị đầu cuối cho phép thiết bị đầu cuối có thể tương tác với thẻ thông qua thiết bị trung gian là đầu đọc thẻ Sau khi ứng dụng trên thẻ được thiết kế, ứng dụng trên thiết bị đầu cuối sẽ được dựng lên tương ứng với cách hành xử trên thẻ để có thể thực hiện việc tương tác với thẻ theo yêu c ầu sử dụng Phần ứng dụng trên thiết bị đầu cuối trong luận văn được thiết kế dưới dạng bộ công cụ bằng ngôn ngữ Java

Tất cả các yếu tố trên kết hợp lại thành một hệ thống thẻ Java hoàn chỉnh có thể được ứng dụng trong nhiều lĩnh vực khác nhau trong đời sống như thẻ trả trước, các loại giấy tờ điện tử, ví điện tử, các ứng dụng giá trị gia tăng trên SIM điện thoại Bên cạnh phần nghiên c ứu, phân tích và tổng kết các cơ sở lý thuyết về Java Card Luận văn cũng bao gồm việc thiết kế ra một ứng dụng lưu trữ thông tin trên thẻ có nhiều ưu điểm so với cách lưu trữ thông tin mặc định của Java Card Thay vì

sử dụng ba loại định dạng dữ liệu cơ bản trong Java Card là dạng dữ liệu trong suốt, dạng vòng và dạng bản ghi, ứng dụng lưu trữ thông tin cho phép người dùng tạo ra các tệp dữ liệu có địa chỉ, độ dài, quyền truy cập mong muốn Cấu trúc dữ liệu được

Trang 13

tạo ra trong quá trình cài đặt ứng dụng nhằm đơn giản hóa và giảm thời gian cá thể hóa thẻ Cấu trúc dữ liệu có thể được mở rộng trong quá trình sử dụng để đảm bảo tính tương thích của thẻ với nhiều ứng dụng thực tiễn khác nhau Ngoài ra ứng dụng cũng có các phương thức mã hóa và xác thực dữ liệu đảm bảo tính bảo mật trong quá trình sử dụng

Ngoài phần lời mở đầu, kết luận và tài liệu tham khảo, phần nội dung của luận văn được trình bày trong 3 chương chính:

 CHƯƠNG 1: TỔNG QUAN VỀ THẺ THÔNG MINH VÀ HỆ THỐNG JAVA CARD

Chương này cung cấp cái nhìn tổng quan về thẻ thông minh và thẻ Java từ lịch sử phát triển của thẻ thông minh cho tới nhưng khái niệm cơ bản về thẻ chip và công nghệ thẻ Java đồng thời chương này cũng giới thiệu sơ bộ về hệ thống Java Card nói chung và hệ thống đề xuất nói riêng

 CHƯƠNG 2: NGHIÊN CỨU VỀ HỆ THỐNG JAVA CARD

Chương này được chia thành 3 phần: phần thứ nhất tập trung vào nghiên cứu cấu tạo phần cứng của chip, phần thứ hai phân tích về kiến trúc hệ điều hành trên thẻ Java và phần thứ ba nghiên cứu về giao thức truyền nhận dữ liệu giữa thẻ và thiết bị đầu cuối

 CHƯƠNG 3: THIẾT KẾ ỨNG DỤNG THỰC NGHIỆM

Chương này của luận văn sử dụng các cơ sở lý thuyết được nêu ra trong Chương 2 để thiết kế ra một hệ thống Java Card dùng để lưu trữ thông tin cá nhân trên thẻ

Trang 14

CHƯƠNG 1 TỔNG QUAN VỀ THẺ THÔNG MINH

VÀ HỆ THỐNG JAVA CARD

1.1 Giới thiệu chung về thẻ thông minh

1.1.1 Lịch sử phát triển thẻ thông minh

Thẻ gắn chip tự động đầu tiên được phát minh vào năm 1968 bởi kĩ sư điện tử người Đức Helmut Gröttrup và đồng nghiệp của ông là Jürgen Dethloff, bằng sáng chế này được công nhận vào năm 1982 Lần đầu tiên loại thẻ này được sử dụng với

số lượng lớn là ở Pháp trong việc thanh toán điện thoại công cộng vào năm 1983 Tiếp sau đó, Roland Moreno đăng ký bằng sáng chế về thẻ nhớ vào năm 1974.Năm

1977, Michel Ugon thuộc công ty Honeywell Bull phát minh ra thẻ thông minh vi

xử lý đầu tiên Năm 1978, Bull đăng ký bằng sáng chế về bộ vi xử lý một chip tự lập trình được ( SPOM -Self Programmable One-chip Microcomputer) Ba năm sau, chip đầu tiên dùng cho thẻ mang tên "CP8" được Motorola sản xuất dựa trên bằng sáng chế này Tại thời điểm đó, Bull đã có 1200 bằng sáng chế liên quan đến thẻ thông minh Năm 2001, Bull bán bộ phận CP8 của họ và tất cả các bằng sáng chế liên quan cho Schlumberger Schlumberger ghép bộ phận về thẻ thông minh của họ với CP8 và đặt tên là Axalto Đến năm 2006, Axalto và Gemplus, là hai nhà máy sản xuất thẻ thông minh lớn nhất thế giới vào thời điểm đó, kết hợp lại với nhau và lấy tên là Gemalto

Sự bùng nổ dùng thẻ thông minh bắt đầu trong thập niên 90, khi có sự xuất hiện của SIM dùng trong thiết bị điện thoại di động GSM ở Châu Âu Cùng với việc mạng di động mở rộng khắp Châu Âu, thẻ thông minh ngày càng trở nên thông dụng

Vào năm 1993, ba tổ chức lớn trong ngành thanh toán quốc tế là MasterCard, Visa, và Europay thỏa thuận cùng hợp tác để xây dựng nên chuẩn kỹ thuật cho việc dùng thẻ thông minh trong các thẻ thanh toán ở cả hai loại thẻ tài khoản và thẻ tín dụng Phiên bản đ ầu tiên c ủa hệ thống EMV này được công bố vào năm 1994 Đến năm 1998, công ty EMVco ra đời, chịu trách nhiệm bảo trì lâu dài hệ thống này

Trang 15

đồng thời nâng cấp chuẩn kỹ thuật hai lần vào các năm 2000 và 2004 Mục tiêu của công ty EMVco là đảm bảo với các tổ chức tài chính và các đại lý rằng các chuẩn

kỹ thuật dù phát triển nhưng vẫn phải giữ được tương thích với phiên bản 1998 Cho tới thời điểm hiện tại, thẻ thông minh hiện đã và đang được sử dụng trong rất nhiều lĩnh vực của cuộc sống như làm thẻ chứng minh nhân dân, hộ chiếu điện

tử cũng như các loại giấp phép ở các mức vùng, toàn quốc hay toàn c ầu Tại Việt Nam, thẻ thông minh hiện được sử dụng nhiều nhất để làm thẻ tín dụng và sim điện thoại

1.1.2 Thẻ thông minh tiếp xúc

Loại thẻ thông minh tiếp xúc có một diện tích tiếp xúc, bao gồm một số tiếp điểm mạ vàng và có diện tích khoảng 1 cm vuông Khi được đưa vào đầu đọc, con chip trên thẻ sẽ tiếp xúc với các tiếp điểm điện tử tương ứng trong đầu đọc và cho phép máy đọc thông tin từ chip và viết thông tin lên đó

Bộ tiêu chuẩn ISO/IEC 7816 bao gồm 15 phần quy định các chuẩn cho thẻ thông minh tiếp xúc và ứng dụng trên thẻ cụ thể: quy định về đặc tính vật lý của chip, vị trí kích thước của chip trên thẻ, giao tiếp điện và phương thức truyền tin trên thẻ,

mô tả các câu lệnh trên thẻ, cách thức đăng ký ứng dụng trên thẻ, các thành phần dữ liệu theo chuẩn công nghiệp, các lệnh theo chuẩn công nghiệp dùng cho ngôn ngữ SCQL, các lệnh cho tác vụ bảo mật, các lệnh quản lý thẻ, tín hiệu điện và dữ liệu trả lời cho tín hiệu khởi động trên thẻ đồng bộ, các phương pháp xác thực sinh trắc học, giao tiếp USB và tiến trình hoạt động, các lệnh quản lý ứng dụng trong môi trường

đa ứng dụng, ứng dụng với thông tin mã hóa

Luận văn sẽ tập trung vào nghiên cứu và phân tích tiêu chuẩn ISO 7816 phần một đến bốn, đồng thời sử dụng thêm bộ tiêu chuẩn GP (Global Plaform) để thực hiện việc phát triển ứng dụng cho thẻ thông minh tiếp xúc chạy hệ điều hành Java Card, gọi tắt là thẻ Java

Trang 16

Hình 1-1 Thẻ thông minh tiếp xúc và đầu đọc

1.1.3 Thẻ thông minh không tiếp xúc

Thẻ thông minh không tiếp xúc là lo ại thẻ mà chip trên nó liên lạc với đầu đọc thẻ thông qua công nghệ cảm ứng RFID (với tốc độ dữ liệu từ 106 đến 848 kbit/s).Những thẻ này chỉ cần đặt gần một anten để thực hiện quá trình truyền và nhận dữ liệu Chúng thường được dùng trong các tình huống truyền nhận dữ liệu thật nhanh hay khi người chủ thẻ cần rảnh tay, chẳng hạn ở các hệ thống giao thông công cộng có thể sử dụng thẻ loại này mà không cần rút thẻ ra khỏi ví

Chuẩn thông tin cho thẻ thông minh không tiếp xúc là ISO/IEC 14443, phát hành năm 2001 Nó qui định hai kiểu thẻ không tiếp xúc ("A" và "B"), cho phép liên lạc với kho ảng cách lên đến 10 cm Cũng có một vài chuẩn khác như ISO 14443 kiểu C,

D, E và F mà đã bị loại bỏ khỏi ISO/IEC Một chuẩn khác của thẻ thông minh không tiếp xúc là ISO 15693, cho phép thông tin ở khoảng cách lên đến 50 cm Một số ví dụ của việc dùng thẻ thông minh không tiếp xúc là thẻ Octopus của Hồng Kông, và thẻ Suica của Japan Rail, thẻ Felica của Sony hay thẻ Mifare của

Trang 17

NXP Trong khuôn khổ của luận văn, thẻ thông minh không tiếp xúc sẽ không được xem xét

Hình 1-2 Đầu đọc và thẻ thông minh không tiếp xúc

1.2 Tổng quan về hệ thống Java Card

1.2.1 Công nghệJava Card

Thẻ Java hay Java Card là công nghệ cho phép các ứng dụng Java có thể hoạt động một cách an toàn và bảo mật trên thẻ thông minh cũng như các thiết bị có dung lượng bộ nhớ hạn chế khác Java Card là nên tảng Java nhỏ nhất hướng tới các thiết bị nhúng Java Card cho phép người dùng khả năng tự phát triển các ứng dụng trên thẻ phù hợp với từng nhu cầu cụ thể Java Card hiện được sử dụng rộng rãi trong thẻ SIM điện thoại và thẻ ngân hang điện tử Các sản phẩm về Java Card được dựa trên nên tảng Java của Oracle Ngoài ra, để đảm bảo tính bảo mật cũng như đảm bảo về sự thống nhất trong việc quản lý, các ứng dụng Java Card cũng tuân theo bộ tiêu chuẩn GlobalPlatform (GP)

Trang 18

Đặc tính mà các ứng dụng Java Card hướng tới là tính tương thích và tính bảo mật Tính tương thích được thể hiện ở việc Java Card nhắm tới mục tiêu tạo ra một môi trường chuẩn cho thẻ thông minh, cho phép các ứng dụng Java có thể chạy trên các loại thẻ thông minh khác nhau Tương tự như với môi trường Java, điều này được thực hiện bằng việc kết hợp một máy ảo Java Card với một bộ thư viện chung Tuy nhiên tính tương thích bị ảnh hưởng lớn bởi sự khác nhau về kích thước bộ nhớ, khả năng xử lý và hỗ trợ của các loại thẻ khác nhau

Do được phát triển với mục đích lưu trữ các thông tin nhạy cảm, công nghệ Java Card luôn đề cao tính bảo mật và đảm bảo điều này bằng các yếu tố, thành phần khác nhau như: đóng gói dữ liệu, tường lửa ngăn cách ứng dụng, mã hóa dữ liệu, tạo ứng dụng dạng Applet Khả năng đóng gói dữ liệu cho phép dữ liệu được lưu trữ bên trong ứng dụng và các ứng dụng này được thực thi trên một máy ảo tách biệt với hệ điều hành và phần cứng của thẻ Mỗi ứng dụng khác nhau lưu trữ trên Java Card đều được ngăn cách bởi một tường lửa để hạn chế và kiểm tra được sự truy cập dữ liệu từ ứng dụng này sang ứng dụng khác Khả năng mã hóa của Java Card cho phép dữ liệu được mã hóa bằng các dạng mã hóa thông dụng sử dụng khóa như DES, 3DES, AES hay RSA Bên cạnh đó các ứng dụng trên Java Card được đóng gói dưới dạng Applet là một máy trạng thái chỉ xử lý các câu lệnh tới và trả về dữ liệu phản hồi

Java Card có một số đ ặc điểm khác với Java thông thường Về mặt ngôn ngữ lập trình, Java Card là một phần thu gọn của Java: mọi thành phần cấu tạo nên Java Card đều có trong Java và hoạt động tương tự Một chương trình Java Card cũng được biên dịch thành một tệp lớp Java thông qua một bộ biên dịch Java, tệp lớp sau

đó được xử lý bằng một bộ công cụ riêng biệt cho nền tảng Java Card

Các đoạn mã Java Card được chạy bởi máy ảo Java Card cũng là một chức năng thu gọ n của Java 2 Các đoạn mã Java Card sẽ được mã hóa khác đi để đảm bảo tính tối ưu về kích thước Do đó, một ứng dụng Java Card bao giờ cũng sử dụng ít đoạn

mã hơn ứng dụng Java truyền thống Điều này giúp tiết kiệm bộ nhớ trong điều kiện

Trang 19

tài nguyên trên thẻ thông minh rất hạn chế Đổi lại, một số tính năng c ủa Java không được hỗ trợ trong Java Card

Thư viện lớp và thư viện chạy của Java Card có nhiều điểm khác so với Java, chỉ

có một vài điểm chung cơ bản Rất nhiều lớp được khai báo trên Java không có trong Java Card Trên Java Card các đối tượng được lưu trữ trên các bộ nhớ tĩnh (ROM, EEPROM), do đó môi trường chạy ứng dụng và các đoạn mã được thay đổi

để phù hợp với các đối tượng này Ngoài ra, Java Card cũng đ ảm bảo tính nguyên tố, các câu lệnh tác vụ ghi và các hàm thực thi ho ặc được thực thi toàn bộ hoặc không thực thi

Tính tới thời điểm hiện tại, Java Card đã ra tới phiên bản 3.0 (tháng 3 năm 2008) Tuy nhiên nhiều loại thẻ hiện tại vẫn sử dụng Java Card với các phiên bản 2.2.1 và 2.2.2

Hình 1-3 Kiến trúc tổng quát công nghệ Java Card

Trang 20

1.2.2 Hệ thống Java Card

Hình 1-4 Kiến trúc tổng quát của một hệ thống Java Card

Mô hình hệ thống Java Card hoàn chỉnh được thể hiện như trong hình 1.4:

Toàn bộ hệ điều hành hỗ trợ Java Card và các ứng dụng trển thẻ được triển khai trên một nền tảng phần cứng của chip Tùy thuộc vào từng hãng sản xuất khác nhau với các dòng chip khác nhau mà cấu hình phần cứng của chip được thay đổi để phù hợp với các ứng dụng cụ thể Với những ứng dụng đòi hỏi khả năng lưu trữ và tính toán thấp, chip phần cứng có thể có bộ nhớ RAM 512 bytes, ROM 16KB, không có khối tính toán RSA Ngược lại, với những ứng dụng cao c ấp đòi hỏi chip có bộ nhớ ram 4KB, ROM 132KB, có các khối hỗ trợ tính toán 3DES, RSA…

Hệ điều hành của chip được các hãng cung cấp chip tự xây dựng hoặc được một bên thứ ba tạo nên dựa trên phần cứng của chip.Hệ điều hành cung cấp các dịch vụ cho phép truy nhập tới từng thành phần phần cứng trên chip Trong hệ thống Java Card, hệ điều hành trên chip đã được cài sẵn một môi trường thực thi Java Card (JCRE)

Trang 21

Môi trường thực thi Java Card là phần lõi của công nghệ Java Card Nó bao gồm một máy ảo Java Card (JCVM) và một bộ thư viện khung (JCAPI) cho phép các ứng dụng Java Card có thể được thực thi trên thẻ JCRE chịu trách nhiệm quản lý các ứng dụng trên thẻ bao gồm việc: cấp phát bộ nhớ cho ứng dụng, phân tách các ứng dụng với nhau và thực hiện viện truyền nhận dữ liệu giữa ứng dụng trên thẻ và ứng trên thiết bị đầu cuối

Các ứng dụng Java Card trên thẻ được thiết kế dưới dạng Applet.Applet là một máy trạng thái chỉ nhận các lệnh tới và gửi trả phản hồi tương ứng dưới dạng các đơn vị dữ liệu ứng dụng (APDU) Các ứng dụng này được tải lên bộ nhớ của chip dưới dạng gói (Java package) và có thể được cài đặt ra thành một thực thể (instance) Ngoài các thành phần trên thẻ, các ứng dụng trên thiết bị đầu cuối là thành phần cuối cùng trong một hệ thống Java Card Các ứng dụng này giao tiếp với ứng dụng trên thẻ thông qua JCRE bằng cách gửi và nhận các đơn vị dữ liệu truyền tải (TPDU) Tùy thuộc vào giao thức truyền tải T=0 hoặc T=1 mà các APDU được đóng góitheo các khác nhau vào TPDU

Chi tiết về các thành phần của một hệ thống Java Card sẽ được mô tả chi tiết tại các phần tương ứng trong Chương 2.Nghiên cứu hệ thống Java Card

Trang 22

1.3 Hệ thống đề xuất

Qua việc nghiên cứu cấu tạo, hiệu năng của chip và khả năng hộ trợ của công nghệ Java Card, mục tiêu của luân văn là thiết kế một hệ thống cho phép lữu trữ và quản lý thông tin cá nhân trên thẻ Java

1.3.1 Yêu cầu chức năng

 Đối với người sử dụng

 Tải và cài đặt ứng dụng lên thẻ

 Có khả năng tự tạo cấu trúc dữ liệu trên thẻ

 Thực hiện đọc ghi dữ liệu trên thẻ

 Hỗ trợ các phương thức trao đổi bảo mật thông qua mã hóa

 Đối với người phát triển

 Có các chức năng thông báo, sửa lỗi

 Có giao diện ứng dụng (API)

1.3.2 Yêu cầu phi chức năng

 Đối với người dùng

 Giao diện chương trình dễ tương tác và sử dụng

 Hỗ trợ nhiều loại đầu đọc thẻ khác nhau

 Ứng dụng trên thẻ có thể được cài lên nhiều loại thẻ Java khác nhau

 Đối với người phát triển

 Có khả năng mở rộng thêm chức năng

1.4 Kết luận

Chương 1 c ủa luận văn cung c ấp cái nhìn tổng quan về thẻ thông minh nói chung

và về hệ thống Java Card nói riêng Các thành phần của hệ thố ng Java Card được liệt kê trong chương này sẽ được mô tả chi tiết tại Chương 2.Nghiên cứu về hệ thống Java Card của luận văn Cách thức triển khai hệ thống đề xuất sẽ được thể hiện trong Chương 3.Triển khai hệ thống thử nghiệm

Trang 23

CHƯƠNG 2 NGHIÊN CỨU HỆ THỐNG JAVA CARD

2.1 Phần cứng thẻ chip

2.1.1 Giao diện vật lí

Về mặt vật lý, thẻ Java là loại thẻ thông minh tiếp xúc Các quy định về đặc tính vật lý, kích thước con chip và sơ đồ chân của chip được liệt kê trong bộ tiêu chuẩn ISO/IEC 7816 phần một và hai: chip có 8 chân và được sắp xếp theo như hình 2.1 Các loại thẻ hoạt động ở các mức điện áp khác nhau được phân vào các lớp khác nhau:

Trang 24

2.1.1.1 Chân VCC (C1)

Chân VCC cung cấp điện áp nguồn cho thẻ hoạt động

Bảng 2-1 Bảng đặc tính điện của V C C trong điều kiện bình thường

hiệu Điều kiện áp dụng Giá trị cực

tiểu

Giá trị cực đại

Đơn

vị

UCC

Lớp A Lớp B Lớp C

4,5 2,7 1,62

5,5 3,3 1,98

V

ICC

Lớp A, tần số hoạt động cực đại Lớp B, tần số hoạt động cực đại Lớp C, tần số hoạt động cực đại Khi chip không hoạt động

60

50

30 0,5

mA

2.1.1.2 Chân RST (C2)

Chân RST cung cấp tín hiệu khởi động lại tới chip

Bảng 2-2 Bảng đặc tính điện của RST trong điều kiện bình thường

hiệu Điều kiện áp dụng Giá trị cực

tiểu

Giá trị cực đại

UCC+150

0,12 UCC+20

Trang 25

Bảng 2-3 Bảng đặc tính điện của CLK trong điều kiện bình thường

hiệu Điều kiện áp dụng Giá trị cực

tiểu

Giá trị cực đại

UCC+100

UIL

0

0 -100

0,5 0,2 UCC+20

UCC+20

0,15 UCC +20

V

µA

UOH

IOH

Điện trở kéo lên: 20 kΩ tại UCC

UOH và điện trở kéo lên: 20 kΩ tại UCC

Trang 26

2.1.1.6 Các chân còn lại (C4,C5,C8)

Chân C4, C8 chưa được sử dụng và dùng để làm các chân dự trữ

Chân C5 được dùng để nối đất

2.1.2 Cấu tạo phần cứng của chip

Với mỗi một loại chip khác nhau của mỗi hãng khác nhau sẽ có cấu tạo khác nhau, trong khuôn khổ luận văn chỉ phân tích các khối chức năng chính c ấu tạo nên một con chip có khả năng thực thi công nghệ Java Card Cụ thể, con chip dùng làm đối tượng phân tích trong luận văn là chip THC20F17BD của hãng Tongfang có trụ

sở tại Bắc Kinh, Trung Quốc Cấu trúc của chip được thể hiện trong hình 2.2

Hình 2-2 Cấu trúc chip THC20F17BD[7]

Với những loại thẻ thế hệ cũ để có thể thực thi công nghệ Java Card, yêu cầu tối thiểu về hiệu năng của chip có thể rất hạn chế ở mức: vi xử lý hoạt động với xung nhịp 5Mhz, bộ nhớ ROM 24KB, EEPROM 16KB, RAM 512 bytes Tuy nhiên, tới thời điểm hiện tại khả năng xử lý của các chip trên thẻ thông minh đã được cải thiện rất nhiều về mặt hiệu suất cũng như bộ nhớ: xung nhịp của vi xử lý đã đạt mức 20Mhz đến 30Mhz, dung lượng RAM đạt 4KB đến 8KB, bộ nhớ ROM và FLASH dao động lớn từ 32KB đến 320KB tùy theo yêu cầu sử dụng

Trang 27

2.1.3 Mô tả các thành phần của chip

2.1.3.1 Khối xử lý trung tâm(CPU)

Các CPU trên thẻ chip thông minh hiện nay có thể là chip 8 bit, 32 bit sử dụng chủ yếu các tập lệnh ARM hoặc 8051 Chip THC20F17BD sử dụng CPU TMCU_051 8 bit với tập lệnh 8051 Trong CPU có các thanh ghi chức năng đặc biệt cho phép truy cập tới các thành phần phần cứng khác kết nối với CPU Các thanh ghi chức năng trong chip THC20F17BD được liệt kê trong bảng 2.5

Bảng 2-5.Bảng thanh ghi chức năng trong chip THC20F17BD (Sắp xếp theo địa chỉ)

Trang 28

Bảng 2-6 Bảng mô tả thanh ghi PC

Chức năng Thanh ghi 16 bit xác định địa chỉ tiếp theo của câu lệnh

Bảng 2-7 Bảng mô tả thanh ghi SP

Chức năng Thanh ghi ngăn xếp 8 bit trỏ tới đầu ngăn xếp

Bảng 2-8 Bảng mô tả thanh ghi ACC

Trang 29

Bảng 2-10.Bảng mô tả thanh ghi PSW

Chức năng Thanh ghi 16 bit xác định địa chỉ của bộ nhớ ngoài (XDATA)

Bảng 2-12 Bảng mô tả thanh ghi DPS

Trang 30

Bit Chức năng

RFU Bit dự trữ

SEL Chọn thanh ghi DPTR0/1

0: chọn DPTR0 1: chọn DPTR1

bộ nhớ FLASH, bộ nhớ lập trình một lần OTP, bộ nhớ truy nhập ngẫu nhiên RAM,

và các thanh ghi chức năng SFR

Nếu một vùng nhớ vật lý được quy chiếu vào một không gian logic duy nhất thì

vi xử lý trung tâm chỉ có thể truy nhập vào vùng vật lý đó thông qua không gian logic tương ứng Trong trường hợp một không gian vật lý được quy chiếu vào nhiều hơn một không gian logic, vi xử lý có thể truy nhập vào vùng nhớ đó thông qua một không gian logic bất kì được quy chiếu đó

Các loại bộ nhớ mở rộng như FLASH, RAM, thanh ghi chức năng mở rộng được gọi chung là dữ liệu mở rộng (XDATA) và được phân bố theo bản đồ bộ nhớ như hình 2.3 (chế độ thường) và hình 2.4 (chế độ bờ) Trong chế độ bờ, thanh ghi chức năng P3 dùng để quản lý các bờ được quy chiếu vào XDATA

Trang 31

Hình 2-3 Bản đồ bộ nhớ chip THC20F17BD ở chế độ thường[7]

Bảng 2-13 Bảng quy chiếu bộ nhớ mở rộng ở chế độ thường

Địa chỉ logic của bộ nhớ mở rộng Địa chỉ vật lý

Trang 32

P3 = 4 Trống P3 = 3 Trống

FLASH [20000h, 20FFFh] P3 = 2 FLASH [18000, 1FFFFh] P3 = 1 FLASH [10000h, 17FFFh] P3 = 0 FLASH [08000h, 0FFFFh]

Bờ Thường XDATA [2000h, 7FFFh] FLASH [02000h, 07FFFh]

XDATA [1000h, 1FFFh] Ext SFR [0000h, 00FFFh] XDATA [0800h, 0FFFh] Trống

Trang 33

Bảng 2-15 Bảng mô tả thanh ghi trạng thái FLASH (FL_STS)

FL_STS b7 b6 b5 b4 b3 b2 b1 b0

Giá trị khởi tạo 00h

Bit Chức năng

RFU bit dự trữ

EV_ERR Cờ báo lỗi xóa, được bật lên bằng phần cứng và xóa bằng phần mềm

1: Có lỗi trong quá trình xóa 0: Quá trình xóa bình thường F_ERR Cờ báo lỗi quá trình, được bật lên bằng phần cứng và xóa bằng phần

mềm 1: Có lỗi 2: Hoạt động bình thường F_OVER Cờ báo kết thúc quá trình xóa/lập trình, được bật lên bằng phần cứng

và xóa bằng phần mềm 1: Quá trình đã kết thúc 0: Quá trình chưa kết thúc

Bảng 2-16.Bảng mô tả thanh ghi FL_SDP1, FL_SDP2

Tên thanh ghi xóa và lập trình số 1

Giá trị khởi tạo 00h

Tên thanh ghi xóa và lập trình số 2

Giá trị khởi tạo 00h

Trang 34

Bảng 2-17 Bảng mô tả thanh ghi FL_CON

FL_CON b7 b6 b5 b4 b3 b2 b1 b0

Giá trị khởi tạo 00h

Bit Chức năng

RFU bit dự trữ

EV_ERR Xác thực xóa phần cứng

1: Cho phép 0: Không cho phép ETYP Kiểu xóa

00: Xóa trang 01: Dự trữ 10: Dự trữ 11: Dự trữ EMOD Chế độ xóa trang

0: Xóa thường 1: Xóa nhanh

PMOD Chế độ nguồn trong quá trình hoạt động của flash

1: Vi xử lý ngừng và chip hoạt động ở chế độ thấp 0: Vi xử lý vẫn hoạt động2

Tiến trình xóa trang FLASH:

1 Ghi 01h vào FL_CON.PMOD

Ghi 00h vào SFR FL_CON.EMOD

Ghi 00h vào FL_CON.ETYP

Ghi 01h vào FL_CON.EV_EN

Trang 35

2 Ghi 55h vào FL_SDP1 trước rồi ghi AAh vào FL_SDP2

3 Ghi FFh tới địa chỉ bắt đầu trong trang muốn xóa

4 Phát hiện FL_STS.F_OVER, khi F_OVER = 1 thì quá trình xóa kết thúc

5 Phát hiện FL_STS.OP_ERR

6 Phát hiện FL_STS.EV_ERR

7 Xóa thanh ghi FL_STS

Tiến trình ghi FLASH:

1 Ghi 01h vào FL_CON

2 Ghi AAh vào FL_SDP1 trước rồi ghi 55h vào FL_SDP2

3 Ghi dữ liệu vào địa chỉ mong muốn

4 Phát hiện FL_STS.F_OVER, khi F_OVER = 1 thì quá trình xóa kết thúc

Bảng 2-18 Bảng liệt kê các loại ngắt

Tên Nguồn tạo ngắt Số thứ tự ngắt Vector địa chỉ

Trang 36

Bảng 2-19 Bảng mô tả thanh ghi IE

Giá trị khởi tạo 00h

Bit Chức năng

EA Bật toàn bộ ngắt

0: Cấm toàn bộ ngắt 1: Cho phép ngắt thông qua các bit tương ứng RFU bit dự trữ

RFU bit dự trữ

FLASH 1: Cho phép ngắt FLASH; 0: không cho phép ngắt FLASH

RFU bit dự trữ

UART 1: Cho phép ngắt UART; 0: không cho phép ngắt UART

Timer0 1: Cho phép ngắt Timer0; 0: không cho phép ngắt Timer0

DES 1: Cho phép ngắt DES; 0: không cho phép ngắt DES

Bảng 2-20 Bảng mô tả thanh ghi IP

Giá trị khởi tạo 00h

Bit Chức năng

RFU bit dự trữ

FLASH Tạo ưu tiên mức cao cho ngắt FLASH, giá trị 1 hợp lệ

RFU bit dự trữ

UART Tạo ưu tiên mức cao cho ngắt UART, giá trị 1 hợp lệ

Timer0 Tạo ưu tiên mức cao cho ngắt Timer0, giá trị 1 hợp lệ

DES Tạo ưu tiên mức cao cho ngắt DES, giá trị 1 hợp lệ

Trang 37

Trong quá tình hoạt động, vi xử lý sẽ xử lý ngắt theo trình tự của 8051:

 Trong quá trình xử lý mỗi lệnh, vi xử lý lấy mẫu các cờ yêu cầu ngắt

 Vi xử lý sẽ xử lý các ngắt có mức độ ưu tiên cao nếu không có các điều kiện chặn là:

o Ngắt đã bị tắt bởi thanh ghi IE

o Vi xử lý đang xử lý ngắt có mức độ ưu tiên bằng hoặc cao hơn

o Câu lệnh hiện tại chưa được thực hiện xong

o Câu lệnh hiện tại đang thực hiện đọc hoặc ghi thanh ghi IE, IP

2.1.3.5 UART

Bộ truyền nhận không đồng bộ (UART) trên chip cho phép lớp vật lý có khả xử

lý và lớp liên kết dữ liệu có thể truyền nhận các khung kí tự được mô tả trong chuẩn ISO/IEC 7816-3 Để điều khiển các chức năng của UART, vi xử lý sử dụng các thanh ghi UBUF, USR, UCR, UCR2, UCR3, UIMSK, UBRC, P0

Bảng 2-21 Bảng mô tả thanh ghi UBUF

UBUF b7 b6 b5 b4 b3 b2 b1 b0

Giá trị khởi tạo 00h

Chức năng Thanh ghi đệm truyền nhận

Trong trạng thái truyền, thanh ghi này là bộ đệm cho byte truyền tiếp theo

Trong trạng thái nhận, thanh ghi này là bộ đệm cho byte vừa nhận

Bảng 2-22 Bảng mô tả thanh ghi USR

Giá trị khởi tạo 01h

Trang 38

Bit Chức năng

RFU bit dự trữ

OE Cờ báo tràn trong quá trình nhận

1: byte mới đã được nhận trong khi byte trước đó chưa được đọc ra khỏi UBUF

0: trạng thái bình thường

PE Cờ báo lỗi chẵn lẻ

Trong giao thức T=0, sau khi kí tự được truyền:

1: số lượng lỗi chẵn lẻ vượt quá mức quy định tại các bit UCR2.TRY 0: không có lỗi chẵn lẻ

Trong giao thức T=1, sau khi nhận được khung kí tự:

1: có lỗi chẵn lẻ xuất hiện trong khung kí tự vừa nhận 0: không có lỗi chẵn lẻ

RBF Cờ báo đầy bộ đệm dùng trong quá trình nhận

1: có một byte trong bộ nhớ đệm UBUF 0: không có byte mới trong bộ đệm TBE Cờ báo bộ đệm trống dùng trong quá trình truyền

1: byte trong bộ đệm UBUF đã được truyền; byte tiếp theo có thể được nạp vào UBUF

2: UBUF đã đầy

Bảng 2-23 Bảng mô tả thanh ghi UCR

Giá trị khởi tạo 01h

Trang 39

Bit Chức năng

MOD Chọn chế độ UART

1: Chế độ vào ra trực tiếp 0: Chế độ phần cứng

TR Kích hoạt trạng thái truyền/nhận của UART

1: đưa phần cứng vào trạng thái truyền 0: kích hoạt phần cứng để chuẩn bị nhận TACT Cờ truyền tích cực

1: dữ liệu đang được truyền hoặc bộ đệm truyền đã đầy 0: quá trình truyền đã kết thúc

RFU bit dự trữ

Bảng 2-24 Bảng mô tả thanh ghi UCR2

UCR2 b7 b6 b5 b4 b3 b2 b1 b0

Giá trị khởi tạo 07h

Bit Chức năng

EGT Thời gian bảo vệ thêm

111~001: Thời gian bảo vệ thêm từ 1~7 etu 000: không có thời gian bảo vệ thêm

TR Điều khiển tự động gửi lại

111: gửi lại không giới hạn số lần 110~001: gửi lại từ 1~6 lần 000: không gửi lại

Trang 40

Bảng 2-25 Bảng mô tả thanh ghi UCR3

UCR3 b7 b6 b5 b4 b3 b2 b1 b0

Giá trị khởi tạo 00h

Bit Chức năng

SBIT Cờ đầu vào sườn xuống

1: đã nhận một sườn xuống 0: chưa nhận được sườn xuống hoặc UIMSK.MSK_SBIT = 1 TPS Điều khiển chọn phương thức

1: T = 1 0: T = 0 WES Điều khiển độ rộng tín hiệu lỗi

1: 2 etu 0: 1 etu

Bảng 2-26 Bảng mô tả thanh ghi UIMSK

Ngày đăng: 23/11/2016, 04:11

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Jorge Ferrari, Rorbert Mackinnon, Susan Poh, Lakshman Yatawara, “Smart Cards: A Case Study”, International Technical Support Organization, October, 1998 Sách, tạp chí
Tiêu đề: Smart Cards: A Case Study
[8] Sun Microsystem, Inc. (1998, July 17).Java Card Applet Developer’s Guide [9] Wikipedia,the free encyclopedia, http://en.wikipedia.org/wiki/Smart_card,truy cập cuối cùng ngày 18 tháng 09 năm 2014 Sách, tạp chí
Tiêu đề: Java Card Applet Developer’s Guide"[9] Wikipedia,the free encyclopedia, "http://en.wikipedia.org/wiki/Smart_card
Tác giả: Sun Microsystem, Inc
Năm: 1998
[10] Wikipedia,the free encyclopedia, https://www.usenix.org/legacy/events/smartcard99/full_papers/montgomery/montgomery_html/, truy cập cuối cùng ngày 18 tháng 09 năm 2014 Sách, tạp chí
Tiêu đề: https://www.usenix.org/legacy/events/smartcard99/full_papers/montgomery/montgomery_html/
[11] Wikipedia,the free encyclopedia, http://en.wikipedia.org/wiki/Symmetric-key_algorithm, truy cập cuối cùng ngày 18 tháng 09 năm 2014 Sách, tạp chí
Tiêu đề: http://en.wikipedia.org/wiki/Symmetric-key_algorithm
[12] Wikipedia,the free encyclopedia, http://en.wikipedia.org/wiki/Data_Encryption_Standard , truy cập cuối cùng ngày 18 tháng 09 năm 2014 Sách, tạp chí
Tiêu đề: http://en.wikipedia.org/wiki/Data_Encryption_Standard
[14] Wikipedia,the free encyclopedia, http://en.wikipedia.org/wiki/Advanced_Encryption_Standard , truy cập cuối cùng ngày 18 tháng 09 năm 2014 Sách, tạp chí
Tiêu đề: http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
[15] Wikipedia,the free encyclopedia, http://en.wikipedia.org/wiki/Public-key_cryptography, truy cập cuối cùng ngày 18 tháng 09 năm 2014 Sách, tạp chí
Tiêu đề: http://en.wikipedia.org/wiki/Public-key_cryptography
[16] Wikipedia,the free encyclopedia, http://en.wikipedia.org/wiki/RSA_(cryptosystem), truy cập cuối cùng ngày 18 tháng 09 năm 2014 Sách, tạp chí
Tiêu đề: http://en.wikipedia.org/wiki/RSA_(cryptosystem)
[2] ISO/IEC. (1998, October 15). Identification cards - Integrated circuit(s) card with contacts - Part 1: Physical characteristics Khác
[3] ISO/IEC. (1999, March01). Information technology - Identification cards - Integrated circuit(s) cards with contacts - Part 2: Dimensions and location of the contacts Khác
[4] ISO/IEC. (2006, November01).Identification cards - Integrated circuit(s) cards - Part 3: Cards with contacts - Electrical interface and transmission protocols Khác
[5] ISO/IEC. (2005, January15).Identification cards - Integrated circuit cards - Part 4: Organization, security and commands for interchange Khác
[6] GlobalPlatform. (2011, January).Card Specification Version 2.2.1 Public Release Khác
[7] Tongfang Microelectronics Company. Contact Smart Card IC User Manual, Part Number: THC20F17BD, Product Version: 1.0 Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w