TAÏP CHÍ KHOA HOÏC ÑAÏI HOÏC SAØI GOØN Soá 59 - Thaùng 7/2018
81
Thuật toán mã hóa Elliptic Curve Cryptography (ECC)
và ứng dụng trong xây dựng hệ thống
Smart-Auto Parking
Elliptic Curve Cryptography (ECC) Encryption Algorithm and Its Application for
Smart-Auto Parking System
Nguyễn Trần Thanh Lâm, Trường Đại học Bách khoa TP.HCM
Nguyen Tran Thanh Lam, Bachkhoa University
TS. Lưu Thanh Trà, Trường Đại học Bách khoa
Luu Thanh Tra, Ph.D., Bachkhoa University
Tóm tắt
Bài viế
19 trang |
Chia sẻ: huongnhu95 | Lượt xem: 699 | Lượt tải: 0
Tóm tắt tài liệu Thuật toán mã hóa Elliptic Curve Cryptography (ECC) và ứng dụng trong xây dựng hệ thống Smart-Auto Parking, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
t này trình bày một thuật toán mã hóa bất đối xứng mới, ưu việt hơn loại thuật toán đang thông
dụng nhất hiện nay là RSA. Qua đó, tác giả nêu lên ý tưởng áp dụng thuật toán này vào việc xây dựng
một hệ thống bãi giữ xe thông minh – tự động (Smart-Auto Parking) với độ bảo mật cao hơn so với các
hệ thống hiện có trên thị trường.
Từ khóa: mã hóa bất đối xứng, Elliptic Curve Cryptography (ECC), Smart-Auto parking, QR code,
Android.
Abstracts
This paper presents a new asymmetric encryption algorithm, much better than the most commonly used
algorithm today - RSA. Then, the author proposed an idea of applying this encryption algorithm to build
a Smart – Auto Parking system with higher security than existing system on the market.
Keywords: asymmetric encryption algorithm, Elliptic Curve Cryptography (ECC), Smart–Auto Parking
system, QR code, Android.
1. Giới thiệu
Ngày nay, trong thời đại số hóa, thông
tin được xem là một nguồn tài nguyên quý
giá, vì vậy việc mã hóa giữ an toàn thông
tin là một yêu cầu thiết yếu. Trong các thuật
toán mã hóa bất đối xứng hiện nay, RSA
đang được sử dụng nhiều nhất (theo thống
kê của ECRYPT II) [1]. Tuy nhiên, do
được công khai từ những năm 1977 và hết
hạn bản quyền sáng chế vào năm 2000 [2],
nên RSA hiện phải đối mặt với rất nhiều
nguy cơ tấn công. Theo thống kê, có 5 cách
tiếp cận có thể tấn công RSA:
- Tấn cống vét cạn (brute force) bằng
cách thử tất cả các trường hợp của khóa bí
mật (private key);
- Imad Khaled Salad và nhóm của
mình nêu ra hình thức “Mathematical
attack” với nhiều phương pháp như: Integer
Factoring attack, Wiener’s attack, Low-
public exponent attack,[3];
- Mark van Cuijk trình bày hình thức
THUẬT TOÁN MÃ HÓA ELLIPTIC CURVE CRYPTOGRAPHY (ECC) VÀ ỨNG DỤNG TRONG XÂY DỰNG
82
“Timing attack” [4];
- Jame Manger đưa ra hình thức
“Chosen ciphertext attack” [5];
- Đặc biệt, Andrea Pellegrini và các
đồng sự đã có thể phá RSA-1024 chỉ trong
100 giờ bằng hình thức “Fault - Based
attack” [6].
Hình 1: Fault – Based attack on RSA [6]
Ngoài ra, Reuters [7] thông tin rằng,
Cục An ninh Quốc gia Hoa Kỳ (NSA) đã
trả 10 triệu USD cho RSA (công ty sở hữu
thuật toán RSA) để tạo ra một hệ thống có
tên Dual EC [8] là một bộ tạo số ngẫu
nhiên cung cấp cho thuật toán RSA, nhưng
chứa lỗ hổng có chủ đích - hay còn gọi là
“back door” cho phép NSA phá mã khi
cần.
Bên cạnh đó, các hệ thống bãi giữ xe
thông minh hiện nay đang chủ yếu sử dụng
thẻ RFID để kiểm soát việc gửi và nhận xe.
Phương pháp này khá tốn kém, vì phải đầu
tư một số lượng lớn thẻ RFID và không
đảm bảo an toàn. Các hệ thống dùng thẻ
RFID tồn tại rất nhiều lỗ hổng bảo mật có
thể bị khai thác. Qinghan Xiao và các đồng
sự [9] đã chỉ ra 7 hình thức tấn công hệ
thống RFID, đó là:
- Kỹ thuật đảo ngược (reverse
engineering);
- Phân tích công suất (power analysis);
- Nghe trộm (eavesdropping);
- Man-in-the-middle attack;
- Từ chối dịch vụ (Denial of Service);
- Giả mạo (spoofing) và nhân bản
(cloning);
- Phát lại (Replay attack).
NGUYỄN TRẦN THANH LÂM - LƯU THANH TRÀ
83
Hình 2: Các điểm tấn công vào hệ thống dùng RFID [9]
Không những thế, hệ thống RFID sử
dụng 3 loại thẻ (thẻ thụ động, thẻ tích cực
và thẻ bán thụ động) cùng 3 dải tần số (LF
125-134kHz, HF 13.56MHz, UHF
433MHz & 856-960MHz) [10] và tùy
thuộc vào phần cứng mà hệ thống sử dụng,
các thẻ RFID tương ứng cũng khác nhau đã
gây bất tiện cho người dùng, vì ngoài thẻ
dành cho việc gửi xe, người dùng còn sở
hữu nhiều loại thẻ khác như thẻ ngân hàng,
thẻ siêu thị, thẻ nhân viên
Từ hai thực tế nêu trên, trong bài báo
này, chúng tôi trình bày một thuật toán mã
hóa bất đối xứng có nhiều ưu điểm hơn so
với RSA và áp dụng nó vào việc xây dựng
một hệ thống bãi giữ xe thông minh – tự
động (Smart-Auto parking) với phần mềm
về phía người dùng được triển khai trên
điện thoại thông minh dùng hệ điều hành
Android. Làm như vậy sẽ giúp hệ thống bãi
giữ xe trở nên an toàn, tiện dụng hơn, loại
bỏ các thẻ RFID không cần thiết và hơn
nữa, có thể hoạt động độc lập mà không cần
nhân viên trực hệ thống luôn luôn có mặt
trong suốt thời gian vận hành.
2. Tổng quan về mã hóa bất đối xứng
A. Giới thiệu
Mã hóa đối xứng dù đã phát triển từ cổ
đại đến hiện đại, vẫn tồn tại hai điểm yếu
sau:
- Vấn đề trao đổi khóa giữa người gửi
và người nhận: cần phải có một kênh an
toàn để trao đổi khóa sao cho khóa phải
được giữ bí mật chỉ có người gửi và người
nhận biết. Điều này tỏ ra không hợp lý khi
ngày nay, khối lượng thông tin luân
chuyển trên khắp thế giới là rất lớn. Việc
thiết lập một kênh an toàn như vậy sẽ tốn
kém về chi phí và chậm trễ về thời gian.
- Tính bí mật của khóa: không có sơ sở
quy trách nhiệm nếu khóa bị tiết lộ.
Chính vì những điểm yếu trên của mã
hóa đối xứng, năm 1976, Whitfield Diffie
và Martin Hellman đã tìm ra một phương
pháp mã hóa khác có thể giải quyết được
hai vấn đề trên, đó là mã hóa công khai
(public key cryptography) hay còn gọi
là mã hóa bất đối xứng (asymetric
crytography). Đây có thể được xem là một
bước đột phá quan trọng bậc nhất trong lĩnh
vực mã hóa.
B. Mô hình mã hóa bất đối xứng
Một mô hình mã hóa bất đối xứng gồm
6 thành phần:
- Plaintext (bản rõ) là nội dung có thể
đọc được hoặc dữ liệu được đưa vào các
THUẬT TOÁN MÃ HÓA ELLIPTIC CURVE CRYPTOGRAPHY (ECC) VÀ ỨNG DỤNG TRONG XÂY DỰNG
84
thuật toán như đầu vào (input).
- Encryption algorithm (Thuật toán mã
hóa) là những thuật toán mã hóa thực hiện
các phép biến đổi khác nhau trên plaintext.
- Public key và private key là một cặp
khóa đã được chọn để một dùng cho mã
hóa và một cho giải mã; các phép biến đổi
chính xác được thưc hiện bởi các thuật toán
phụ thuộc vào public key và private key
được cung cấp như đầu vào (input).
- Ciphertext (bản mã hóa) là bản mã
hóa ở đầu ra (output), phụ thuộc vào
plaintext và key ở đầu vào.
- Decryption algorithm (thuật toán giải
mã) là thuật toán dùng ciphertext và khóa
tương ứng để tái tạo plaintext ban đầu.
1) Mô hình mã hóa dùng khóa công
khai (public key)
Các bước thực hiện như sau:
- Mỗi user (người dùng) tạo ra một cặp
khóa; một được sử dụng để mã hóa và một
dùng để giải mã message.
- Mỗi user đặt một trong hai khóa ở thư
mục có thể truy cập (public register) là
public key. Khóa còn lại được giữ bí mật là
private key. Như hình 3, ta thấy, mỗi user
có một tập hợp các public key thu được từ
những người khác.
- Nếu Bob muốn gửi một message bí
mật cho Alice, Bob mã hóa message bằng
public key của Alice.
- Khi Alice nhận được message,
Alice giải mã bằng private key của chính
cô ấy. Không người nhận nào khác có thể
giải mã message, vì chỉ có Alice biết được
private key của chính mình.
Bob s
public-key
ring
TedJoy
Alice
Plaintext
input
aPU
,aY E PU X
X
Plaintext
output
,aX D PR Y
aPR
Alice s public
key
Transmitted
ciphertext
Encryption algorithm
(e.g., ECC)
Decryption algorithm
Alice s
private key
Bob Alice
Hình 3: Mô hình mã hóa dùng public key [11]
Mô hình ở hình 3 sử dụng public key để
mã hóa và private key dùng để giải mã, điều
này cho phép các ứng dụng sử dụng mô hình
trên cung cấp khả năng bảo mật thông tin.
2) Mô hình mã hóa dùng khóa bí mật
(private key)
NGUYỄN TRẦN THANH LÂM - LƯU THANH TRÀ
85
Alice s
public-key
ring
TedJoy
Alice
Plaintext
input
bPU
,bY E PR X
X
Plaintext
output
,bX D PU Y
bPR Bob s public
key
Transmitted
ciphertext
Encryption algorithm
(e.g., ECC)
Decryption algorithm
Bob s private
key
Bob Alice
Hình 4: Mô hình mã hóa dùng private key [11]
Trong trường hợp này, Bob chuẩn bị
một message (X) và mã hóa nó bằng cách
sử dụng private key của mình trước khi gửi
cho Alice.
Alice có thể giải mã message bằng
cách sử dụng public key của Bob.
Bởi vì message được mã hóa bằng
private key của Bob, do đó có Bob mới có
thể tạo ra message. Cho nên, message được
dùng như một chữ ký điện tử (digital
signature). Hơn nữa, không thể sửa đổi
message mà không có private key của Bob.
Vì vậy, message được xác thực cả về
nguồn phát và tính toàn vẹn dữ liệu.
Điều quan trọng cần nhấn mạnh là quá
trình mã hóa được mô tả trong mô hình trên
không cung cấp tính bảo mật. Các message
gửi đi được đảm bảo an toàn trước việc sửa
đổi, nhưng không thể chống lại việc nghe
trộm. Điều này là hiển nhiên bởi vì bất kỳ
người nào cũng có thể giải mã message bằng
cách sử dụng public key của người gửi.
C. Thuật toán mã hóa Elliptic Curve
Cryptography (ECC)
1) Giới thiệu:
Ngày nay, hầu hết các sản phẩm và tiêu
chuẩn có sử dụng thuật toán mã hóa công
khai để mã hóa cùng chữ ký điện tử thường
sử dụng RSA. Nhưng chúng ta nhận thấy
rằng chiều dài khóa để đảm bảo an toàn đã
tăng lên trong những năm gần đây. Điều đó,
đặt ra một vấn đề là, mức độ tính toán nặng
hơn cho ứng dụng có sử dụng RSA. Gánh
nặng này có thể gây nghẽn nghiêm trọng,
đặc biệt cho các web server, các trang
thương mại điện tử cần thực hiện một số
lượng lớn giao dịch an toàn đồng thời.
Theo thống kê của ECRYPT II [1],
chúng ta có bảng tóm tắt sau:
Ghi chú:
- Mức độ phổ biến: mức đánh giá ba
ngôi sao cho thấy phạm vi triển khai rộng
rãi nhất; không có sao nào cho thấy không
có thông tin thuật toán đó được sử dụng.
- Mức độ an toàn: mức đánh giá ba
ngôi sao chỉ ra rằng ECRYPT hoàn toàn tin
tưởng vào sự an toàn của thuật toán và kích
thước khóa tương ứng; không có sao nào
cho thấy thuật toán và kích thước khóa
tương ứng không nên tiếp tục sử dụng.
THUẬT TOÁN MÃ HÓA ELLIPTIC CURVE CRYPTOGRAPHY (ECC) VÀ ỨNG DỤNG TRONG XÂY DỰNG
86
Bảng 1: Độ phổ biến và an toàn của RSA [1]
Thuật toán Kích thước khóa Mức độ phổ biến Mức độ an toàn
Public Key Encryption Scheme
RSA PKCS#1 v 1.5
RSA OAEP
RSA OAEP
RSA OAEP
Bất kỳ
1024
2048
≥3072
***
*
*
*
*
*
**
***
Public key Signature Scheme
RSA PKCS# v1.5 1024 *** −
RSA PKCS# v1.5 2048 *** *
RSA PKCS# v1.5 ≥3072 − **
RSA PSS 1024 ** *
RSA PSS 2048 ** **
RSA PSS ≥3072 ** ***
Chính vì thế, một thuật toán cạnh tranh
thách thức RSA là Elliptic Curve
Cryptography (ECC) ra đời. Sự hấp dẫn
chủ yếu của ECC so với RSA là, nó cung
cấp cùng mức độ bảo mật nhưng sử dụng
một khóa có kích thước nhỏ hơn nên đã
giảm thiểu được mức độ xử lý.
Bảng 2: So sánh kích thước khóa RSA và ECC [12]
Kích thước khóa Tỷ lệ kích thước khóa
RSA ECC
1024 160 7:1
2048 224 10:1
3072 256 12:1
7680 384 20:1
15360 521 30:1
So sánh thuật toán mã hóa RSA và ECC
- So sánh về độ an toàn và kích thước khóa cần thiết
NGUYỄN TRẦN THANH LÂM - LƯU THANH TRÀ
87
Bảng 3: Kích thước khóa và thời gian cần thiết để phá mã [13]
ECC key size (bits) RSA key size (bits) Year to attack Protection file time
160 1024 1012 Đến trước năm 2010
224 2048 1024 Đến trước năm 2030
256 3072 1028 Sau năm 2031
384 7680 1047
512 15360 1066
- So sánh về hiệu suất
Bảng 4: So sánh về hiệu năng của RSA và ECC [14]
Thuật toán Key creator Execution time Verify Sign
RSA Fast Slow Fast Fast
ECC Faster Fast Slow Faster
3. Triển khai ECC trên nền tảng
Android
Trong phần này sẽ trình bày việc triển
khai thuật toán mã hóa ECC trên nền tảng
điện thoại Android.
Chúng tôi chọn nền tảng Android vì
đây là nền tảng mở và là hệ điều hành phổ
biến nhất dành cho smart phone hiện nay.
Hình 5: So sánh mức độ phổ biến của các hệ điều hành smart phone [15]
A. Thư viện hỗ trợ
1) Bouncy Castle
Bouncy Castle (BC) là một tập hợp
các APIs (Application Programming
Interfaces) được phát triển để sử dụng cho
các ứng dụng mật mã. Ban đầu, nó được
phát triển như một phương tiện để giảm
thiểu việc phát triển lại các thư mật mã và
sẵn sàng như một mã nguồn mở (open
source) theo giấy phép MIT X11.
THUẬT TOÁN MÃ HÓA ELLIPTIC CURVE CRYPTOGRAPHY (ECC) VÀ ỨNG DỤNG TRONG XÂY DỰNG
88
Bouncy Castle bao gồm 2 thành phần
hỗ trợ mã hóa cơ bản là “light-weight” API
và JCE provider. Tuy nhiên, thư viện này
chỉ hoạt động trên nền tảng Java không phù
hợp với nền tảng Android [16].
2) Spongy Castle
Mặc dù, Java là nền tảng chính để tạo
nên các ứng dụng Android, nhưng thư viện
Bouncy Castle lại không được hỗ trợ thực
thi trên Android. Chính vì thế, Spongy
Castle là một biến thể của Bouncy Castle
được đóng gói lại cho phù hợp với Android
[17].
B. Đánh giá thực tế tốc độ xử lý của
RSA/ECC
Phần này, trình bày việc viết một ứng
dụng tạo chữ ký điện tử (digital signature)
dùng hai thuật toán mã hóa là ECC và RSA
triển khai trên smartphone android, để từ
đó đánh giá được thực tế tốc độ xử lý của
hai thuật toán này. Triển khai tạo chữ ký
điện tử và xác thực chữ ký thực hiện trên
cùng một ứng dụng, nhằm bỏ qua thời gian
trễ do truyền gói tin trong trường hợp triển
khai trên hai ứng dụng khác nhau.
Theo Bảng 2, mức độ bảo mật của RSA-
2048 tương đương với ECC-224 nhưng thư
viện Spongy Castle chỉ hỗ trợ ECC-256. Vậy
việc đánh giá sẽ được thực hiện qua so sánh
giữa RSA-2048 và ECC-256
1) Ứng dụng chạy trên Smartphone
Android cao cấp
Smartphone sử dụng để kiểm tra trong
phần test này là Samsung Galaxy S8, có
thông số kỹ thuật như sau:
Bảng 5: Thông số kỹ thuật Galaxy S8
Thông số Chi tiết
RAM 4GB
Chipset Exynos 8895
CPU 8 core (4 core 2.3GHz + 4 core
1.7GHz), 64 bit, vi xử lý 10nm
- Thuật toán mã hóa RSA-2048
Hình 6: RSA-2048 xử lý trên Galaxy S8
NGUYỄN TRẦN THANH LÂM - LƯU THANH TRÀ
89
Thực hiện lặp lại 10 lần, ta có bảng kết quả đo như sau:
Bảng 6: Thời gian xử lý RSA-2048 trên Galaxy S8
Lần thực hiện Tạo cặp khóa (ms) Tạo chữ ký (ms) Xác thực chữ ký (ms)
1 158 18 6
2 115 26 3
3 256 25 3
4 120 23 3
5 159 20 5
6 312 15 6
7 246 19 4
8 369 24 3
9 302 13 4
10 399 18 3
Trung bình 243.6 20.1 4
- Thuật toán mã hóa ECC-256
Hình 7: ECC-256 xử lý trên Gaxaly S8
THUẬT TOÁN MÃ HÓA ELLIPTIC CURVE CRYPTOGRAPHY (ECC) VÀ ỨNG DỤNG TRONG XÂY DỰNG
90
Thực hiện 10 lần kết quả đó, ta có bảng kết quả như sau:
Bảng 7: Thời gian xử lý ECC-256 trên Galaxy S8
Lần thực hiện Tạo cặp khóa (ms) Tạo chữ ký (ms) Xác thực chữ ký (ms)
1 43 14 108
2 47 13 117
3 40 14 119
4 38 12 118
5 41 10 117
6 44 10 117
7 47 4 118
8 49 10 115
9 43 9 110
10 40 9 114
Trung bình 43.2 10.5 115.3
- Kết quả:
Hình 8: S/sánh hiệu năng RSA-2048 và ECC-256 (Galaxy S8)
2) Ứng dụng chạy trên Smartphone
Android tầm thấp
Smartphone sử dụng để kiểm tra trong
phần test này là Samsung Galaxy J3 Pro,
có thông số kỹ thuật như sau:
Bảng 8: Thông số kỹ thuật Galaxy J3 Pro
Thông số Chi tiết
RAM 2GB
Chipset Exynos 7570
CPU 4 core 1.4GHz
NGUYỄN TRẦN THANH LÂM - LƯU THANH TRÀ
91
- Thuật toán mã hóa RSA-2048
Hình 9: RSA-2048 xử lý trên Galaxy J3
Thực hiện lặp lại 10 lần, ta có bảng kết quả đo như sau:
Bảng 9: Thời gian xử lý RSA-2048 trên Galaxy J3
Lần thực hiện Tạo cặp khóa (ms) Tạo chữ ký (ms) Xác thực chữ ký (ms)
1 5102 35 5
2 1942 80 9
3 2774 34 3
4 2791 34 3
5 3577 33 6
6 2194 32 3
7 3575 33 6
8 2073 39 5
9 2075 44 4
10 3828 40 6
Trung bình 2993.1 40.4 5
THUẬT TOÁN MÃ HÓA ELLIPTIC CURVE CRYPTOGRAPHY (ECC) VÀ ỨNG DỤNG TRONG XÂY DỰNG
92
- Thuật toán mã hóa ECC-256
Hình 10: ECC-256 xử lý trên Galaxy J3
Thực hiện lặp lại 10 lần, ta có bảng kết quả đo như sau:
Bảng 10: Thời gian xử lý ECC-256 trên Galaxy J3 Pro
Lần thực hiện Tạo cặp khóa (ms) Tạo chữ ký (ms) Xác thực chữ ký (ms)
1 57 16 164
2 55 18 164
3 53 17 168
4 55 15 167
5 57 16 164
6 52 17 165
7 54 15 171
8 53 14 160
9 56 15 163
10 52 14 162
Trung bình 54.4 15.7 164.8
NGUYỄN TRẦN THANH LÂM - LƯU THANH TRÀ
93
- Kết quả
Hình 11: S/sánh hiệu năng RSA-2048 và ECC-256 (Galaxy J3)
3) Kết luận
Từ so sánh về lý thuyết và thực tế có
thể thấy rằng tuy thuật toán mã hóa ECC
chậm hơn RSA trong việc xác thực chữ ký
điện tử nhưng tổng thời gian trung bình để
thực hiện là nhỏ hơn rất nhiều so với
RSA, đặc biệt đối với các thiết bị có tài
nguyên thấp.
Hình 12: Tổng thời gian thực hiện trung bình giữa RSA-2048 và ECC-256 (Galaxy S8)
THUẬT TOÁN MÃ HÓA ELLIPTIC CURVE CRYPTOGRAPHY (ECC) VÀ ỨNG DỤNG TRONG XÂY DỰNG
94
Hình 13: Tổng thời gian thực hiện trung bình giữa RSA-2048 và ECC-256 (Galaxy J3)
4. Xây dựng hệ thống smart-auto parking
A. Sơ đồ hệ thống
Smart Phone
Certificate
Signing Request
Camera
Raspberry Pi
(Smart – Auto Parking
Control Module)
Certificate
CA server
QR code in QR code out
Hình 14: Sơ đồ hệ thống Smart – auto parking
Thành phần:
- Phần mềm tạo cặp khóa và giải mã trên Android phone
- CA server
Module điều khiển Smart – Auto Parking (Raspberry Pi)
NGUYỄN TRẦN THANH LÂM - LƯU THANH TRÀ
95
B. Lưu đồ giải thuật
1) Lưu đồ giải thuật tại Andoid phone của người dùng
START
Tạo cặp khóa (public key & private key) phục vụ cho bãi giữ xe
tự động
Upload CSR lên CA server
Gửi xe vào bãi?
No
Yes
Tạo QR code cho xe vào (Gọi là QR_code_in)
QR_code_in = Tên đăng nhập (username) đã đăng ký ở trên
Scan QR_code_in bằng module Auto parking (Raspberry Pi)
Quét để nhận mã giữ xe do module Raspberry Pi tạo ra (là
QR_code_out đã mã hóa bằng public key tương ứng với
username đi vào)
Lấy xe rời bãi?
No
Yes
Giải mã QR_code_out thành dạng plain text
QR_code_out = Chuỗi (Biển số xe + Mã thẻ + Thời gian xe
vào)
Tạo QR từ chuỗi QR_code_out dạng plain text đã giải mã phía
trên
Scan QR_code_out bằng module Auto parking (Raspberry Pi)
STOP
Tạo Certificate Signing Request (CSR) bao gồm:
- Common name
- Organization
- Organization Unit
- Public key
Sau đó dùng private key để ký (sign) CSR
Đăng ký thông tin người dùng lên CA Sever, bao gồm:
- Tên người dùng (Name)
- Địa chỉ mail (Email)
- Tên đăng nhập (User Name)
- Mật khẩu (Password)
THUẬT TOÁN MÃ HÓA ELLIPTIC CURVE CRYPTOGRAPHY (ECC) VÀ ỨNG DỤNG TRONG XÂY DỰNG
96
2) Lưu đồ giải thuật tại module xử lý Raspberry Pi
START
Gửi xe vào bãi?
Scan QR_code_in thu được username tương ứng của người
điều khiển xe vào bãi
Kiểm tra thông tin certificate tương ứng
với username?
Download certificate từ CA server
No
- Nhận dạng biển số xe (1)
- Tạo chuỗi mã thẻ ngẫu nhiên (2)
- Ghi nhận thời điểm xe vào (3)
Lưu thông tin (1), (2) và (3) vào database
Mã hóa các thông trên bằng public key lấy từ certificate tương
ứng của người dùng.
Chuỗi tạo thành chuyển sang dạng QR code (đây là
QR_code_out)
Vậy:
QR_code_out = Encrypt(Biển số xe + Chuỗi ngẫu nhiên + Thời
gian xe vào)
Hiển thị mã QR lên màn hình (cho người gửi xe scan để nhận mã
QR_code_out)
Lấy xe rời bãi?
Scan QR_code_out dạng plain text do người dùng giải mã bằng
private key của người dùng
Kiểm tra so sánh thông tin (biển số xe + chuỗi random + thời
gian xe vào) nhận được từ phía QR tạo bởi người dùng, thông tin
biển số xe ra và thông tin đã lưu trong database module
Giống nhau?
Cho xe ra
STOP
Yes
No
Yes
No
Yes
Yes
No
Nhận dạng biển số xe ra
NGUYỄN TRẦN THANH LÂM - LƯU THANH TRÀ
97
C. Triển khai thực tế
1) Phần mềm trên Android phone của người dùng
- Đăng ký thông tin lên CA server
Hình 15: Giao diện đăng ký thông tin người dùng
- Smart – auto parking
Hình 16: Giao diện chức năng Smart –auto parking
Hình 17: Xử lý xe vào/ra trên điện thoại Android
THUẬT TOÁN MÃ HÓA ELLIPTIC CURVE CRYPTOGRAPHY (ECC) VÀ ỨNG DỤNG TRONG XÂY DỰNG
98
2) Phần mềm phía module Smart-auto
parking (Raspberry Pi)
Lưu ý: phần nhận diện biển số xe
không nằm trong nội dung chính mà bài
báo hướng đến, nên tác giả không trình bày
cụ thể trong bài báo này.
Hình 18: Biển số xe vào/ra (51A – 62635)
Hình 19: Xử lý cho xe vào bãi
Hình 20: QR code out (dạng chưa giải mã)
NGUYỄN TRẦN THANH LÂM - LƯU THANH TRÀ
99
TÀI LIỆU THAM KHẢO
1. ECRYPT II, European Network of Excellence
in Cryptology II, “ECRYPT II Yearly Report
on Algorithms and Key Sizes (2011-2012)”.
2. Wikipedia, “RSA”, [Online]. Available
https://vi.wikipedia.org/wiki/RSA_(m%C3%
A3_h%C3%B3a).
3. Abdullah Darwish, Imad Khaled Salad, Saleh
Oqeili, “Mathematical Attacks on RSA
Cryptosystem”.
4. Mark van Cuijk, “Timing Attack on RSA”.
5. Jame Manger, “A chosen Ciphertext Attack
on RSA Optimal Asymmetric Encryption
Padding (OAEP) as Standardized in PKCS
#2.0”.
6. Andrea Pellegrini, Todd Austin, Valeria
Bertacco, “Fault-based attack of RSA
authentication”
7. Reuters, “Exclusive: NSA infiltrated RSA
security mode deeply than thought – study”,
[Online]. Available:
security-nsa-rsa/exclusive-nsa-infiltrated-rsa-
security-more-deeply-than-thought-study-
idUSBREA2U0TY20140331.
8. Matthew Fredrikson, Ruben Niederhagen,
Stephen Checkoway “On the Practical
Exploitability of Dual EC in TLS
Implementations”.
9. Hervé Lebrun, Thomas Gibbons, Qinghan
Xiao “RFID Technology, Security
Vulnerabilities, and Countermeasures”,
[Online]. Available:
https://www.intechopen.com/books/supply_ch
ain_the_way_to_flat_organisation/rfid_techno
logy__security_vulnerabilities__and_counter
measures
10. The beginner’s guide to RFID systems,
[Online]. Available:
https://www.atlasRFIDstore.com
11. William Stallings, “Cryptography and
network security”, Principles and practice,
sixth edition.
12. Mohsen Bafanddehkar, Ramlan Mahmod,
Sharifah Md Yasin, “Comparison of ECC and
RSA Algorithm in Resource Constrained
Devices”.
13. Douglas Stebila, Vipul Gupta, “Speeding ip
Decure Web Transactions Using Elliptic
Curve Cryptography”.
14. Al Imem Ali, “Comparison and evaluation of
digital signature schemes employed in NDN
network”.
15. IDC, “Smartphone OS market share, 2017
Q1” , [Online]. Available:
https://www.idc.com/promo/smartphone-
market-share/os
16. The Legion of the Bouncy Castle, link
“https://www.bouncycastle.org/”
17. Spongy Castle, repackage of Bouncy Castle
for Android, [Online]. Available:
“https://rtyley.github.io/spongycastle/”.
Ngày nhận bài: 07/10/2017 Biên tập xong: 15/7/2018 Duyệt đăng: 20/7/2018
Các file đính kèm theo tài liệu này:
- thuat_toan_ma_hoa_elliptic_curve_cryptography_ecc_va_ung_dun.pdf