Tải bản đầy đủ (.pdf) (19 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.96 MB, 19 trang )

Số 59 - Tháng 7/2018

TẠP CHÍ KHOA HỌC ĐẠI HỌC SÀI GÒN

Thuật tố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ết này trình bày một thuật tốn mã hóa bất đối xứng mới, ưu việt hơn loại thuật tố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 tố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.

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, Lowpublic exponent attack,…[3];
- Mark van Cuijk trình bày hình thức

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 ngun q
giá, vì vậy việc mã hóa giữ an tồn thơng
tin là một u cầu thiết yếu. Trong các thuật
tố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
81


THUẬT TOÁN MÃ HÓA ELLIPTIC CURVE CRYPTOGRAPHY (ECC) VÀ ỨNG DỤNG TRONG XÂY DỰNG…

“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]
đả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).

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

82


NGUYỄN TRẦN THANH LÂM - LƯU THANH TRÀ

Hình 2: Các điểm tấn công vào hệ thống dùng RFID [9]
đạ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

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ổ
83


THUẬT TOÁN MÃ HÓA ELLIPTIC CURVE CRYPTOGRAPHY (ECC) VÀ ỨNG DỤNG TRONG XÂY DỰNG…

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)


Joy

Bob s
public-key
ring

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.

Ted

Alice


PUa

Alice s public
key

PRa

Transmitted
ciphertext

X

Alice s
private key

X  DPRa,Y 

Y  E  PUa , X 
Plaintext
input

Decryption algorithm

Encryption algorithm
(e.g., ECC)

Bob

Plaintext
output


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)

84


NGUYỄN TRẦN THANH LÂM - LƯU THANH TRÀ

Joy

Alice s
public-key
ring

Ted

Alice

PRb

Bob s private

key

PU b

Transmitted
ciphertext

X

Bob s public
key

X  DPUb,Y 

Y  E  PRb , X 
Plaintext
input

Decryption algorithm

Encryption algorithm
(e.g., ECC)

Bob

Plaintext
output

Alice


Hình 4: Mô hình mã hóa dùng private key [11]
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.

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:

85


THUẬT TOÁN MÃ HÓA ELLIPTIC CURVE CRYPTOGRAPHY (ECC) VÀ ỨNG DỤNG TRONG XÂY DỰNG…

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
Bất kỳ
1024
2048
≥3072

***
*
*
*

*
*
**
***

RSA PKCS# v1.5

1024

***



RSA PKCS# v1.5


2048

***

*

RSA PKCS# v1.5

≥3072



**

RSA PSS

1024

**

*

RSA PSS

2048

**

**


RSA PSS

≥3072

**

***

RSA PKCS#1 v 1.5
RSA OAEP
RSA OAEP
RSA OAEP
Public key Signature Scheme

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

86


NGUYỄN TRẦN THANH LÂM - LƯU THANH TRÀ

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

đ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.

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

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.
87


THUẬT TOÁN MÃ HÓA ELLIPTIC CURVE CRYPTOGRAPHY (ECC) VÀ ỨNG DỤNG TRONG XÂY DỰNG…

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 RSA2048 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

88


NGUYỄN TRẦN THANH LÂM - LƯU THANH TRÀ

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

89


THUẬT TOÁN MÃ HÓA ELLIPTIC CURVE CRYPTOGRAPHY (ECC) VÀ ỨNG DỤNG TRONG XÂY DỰNG…

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
90


NGUYỄN TRẦN THANH LÂM - LƯU THANH TRÀ

- 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

91


THUẬT TOÁN MÃ HÓA ELLIPTIC CURVE CRYPTOGRAPHY (ECC) VÀ ỨNG DỤNG TRONG XÂY DỰNG…

- 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

92


NGUYỄN TRẦN THANH LÂM - LƯU THANH TRÀ

- Kết quả

Hình 11: S/sánh hiệu năng RSA-2048 và ECC-256 (Galaxy J3)
đ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.

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ý

Hình 12: Tổng thời gian thực hiện trung bình giữa RSA-2048 và ECC-256 (Galaxy S8)
93



THUẬT TOÁN MÃ HÓA ELLIPTIC CURVE CRYPTOGRAPHY (ECC) VÀ ỨNG DỤNG TRONG XÂY DỰNG…

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
Certificate

CA server

Camera

Certificate
Signing Request

Raspberry Pi
(Smart – Auto Parking
Control Module)

QR code in

QR code out

Smart Phone

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)

94


NGUYỄN TRẦN THANH LÂM - LƯU THANH TRÀ

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

Đă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)

Tạo cặp khóa (public key & private key) phục vụ cho bãi giữ xe
tự động

Tạo Certificate Signing Request (CSR) bao gồm:
- Common name
- Organization
- Organization Unit
- Public key
Sau đó dùng private key để ký (sign) CSR

Upload CSR lên CA server

No

Gửi xe vào bãi?

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)

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)

No

Lấy xe rời bãi?
Yes

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

95


THUẬT TOÁN MÃ HÓA ELLIPTIC CURVE CRYPTOGRAPHY (ECC) VÀ ỨNG DỤNG TRONG XÂY DỰNG…


2) Lưu đồ giải thuật tại module xử lý Raspberry Pi
START

No
Gửi xe vào bãi?
Yes
Scan QR_code_in thu được username tương ứng của người
điều khiển xe vào bãi

Yes

Kiểm tra thông tin certificate tương ứng
với username?

No
Download certificate từ CA server

- 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)

No

Lấy xe rời bãi?
Yes

Nhận dạng biển số xe ra

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

No
Giống nhau?

Yes

Cho xe ra

STOP

96


NGUYỄN TRẦN THANH LÂM - LƯU THANH TRÀ


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
97


THUẬT TOÁN MÃ HÓA ELLIPTIC CURVE CRYPTOGRAPHY (ECC) VÀ ỨNG DỤNG TRONG XÂY DỰNG…

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.

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

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ã)
98



NGUYỄN TRẦN THANH LÂM - LƯU THANH TRÀ

Vulnerabilities,
and
Countermeasures”,
[Online]. Available:
/>ain_the_way_to_flat_organisation/rfid_techno
logy__security_vulnerabilities__and_counter
measures
10. The beginner’s guide to RFID systems,
[Online]. Available:

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:
/>16. The Legion of the Bouncy Castle, link
“ />17. Spongy Castle, repackage of Bouncy Castle

for
Android,
[Online].
Available:
“ />
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
/>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:
/>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

Ngày nhận bài: 07/10/2017

Biên tập xong: 15/7/2018

99

Duyệt đăng: 20/7/2018



×