Xem mẫu

  1. TAÏP CHÍ KHOA HOÏC ÑAÏI HOÏC SAØI GOØN Soá 59 - Thaùng 7/2018 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ế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 nguy cơ tấn công. Theo thống kê, có 5 cách Ngày nay, trong thời đại số hóa, thông tiếp cận có thể tấn công RSA: tin được xem là một nguồn tài nguyên quý - Tấn cống vét cạn (brute force) bằng giá, vì vậy việc mã hóa giữ an toàn thông cách thử tất cả các trường hợp của khóa bí tin là một yêu cầu thiết yếu. Trong các thuật mật (private key); toán mã hóa bất đối xứng hiện nay, RSA - Imad Khaled Salad và nhóm của đang được sử dụng nhiều nhất (theo thống mình nêu ra hình thức “Mathematical kê của ECRYPT II) [1]. Tuy nhiên, do attack” với nhiều phương pháp như: Integer được công khai từ những năm 1977 và hết Factoring attack, Wiener’s attack, Low- hạn bản quyền sáng chế vào năm 2000 [2], public exponent attack,…[3]; nên RSA hiện phải đối mặt với rất nhiều - Mark van Cuijk trình bày hình thức 81
  2. THUẬT TOÁN MÃ HÓA ELLIPTIC CURVE CRYPTOGRAPHY (ECC) VÀ ỨNG DỤNG TRONG XÂY DỰNG… “Timing attack” [4]; đồng sự đã có thể phá RSA-1024 chỉ trong - Jame Manger đưa ra hình thức 100 giờ bằng hình thức “Fault - Based “Chosen ciphertext attack” [5]; attack” [6]. - Đặc biệt, Andrea Pellegrini và các Hình 1: Fault – Based attack on RSA [6] Ngoài ra, Reuters [7] thông tin rằng, đảm bảo an toàn. Các hệ thống dùng thẻ Cục An ninh Quốc gia Hoa Kỳ (NSA) đã RFID tồn tại rất nhiều lỗ hổng bảo mật có trả 10 triệu USD cho RSA (công ty sở hữu thể bị khai thác. Qinghan Xiao và các đồng thuật toán RSA) để tạo ra một hệ thống có sự [9] đã chỉ ra 7 hình thức tấn công hệ tên Dual EC [8] là một bộ tạo số ngẫu thống RFID, đó là: nhiên cung cấp cho thuật toán RSA, nhưng - Kỹ thuật đảo ngược (reverse chứa lỗ hổng có chủ đích - hay còn gọi là engineering); “back door” cho phép NSA phá mã khi - Phân tích công suất (power analysis); cần. - Nghe trộm (eavesdropping); Bên cạnh đó, các hệ thống bãi giữ xe - Man-in-the-middle attack; thông minh hiện nay đang chủ yếu sử dụng - Từ chối dịch vụ (Denial of Service); thẻ RFID để kiểm soát việc gửi và nhận xe. - Giả mạo (spoofing) và nhân bản Phương pháp này khá tốn kém, vì phải đầu (cloning); tư một số lượng lớn thẻ RFID và không - Phát lại (Replay attack). 82
  3. 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] Không những thế, hệ thống RFID sử đại đến hiện đại, vẫn tồn tại hai điểm yếu dụng 3 loại thẻ (thẻ thụ động, thẻ tích cực sau: và thẻ bán thụ động) cùng 3 dải tần số (LF - Vấn đề trao đổi khóa giữa người gửi 125-134kHz, HF 13.56MHz, UHF và người nhận: cần phải có một kênh an 433MHz & 856-960MHz) [10] và tùy toàn để trao đổi khóa sao cho khóa phải thuộc vào phần cứng mà hệ thống sử dụng, được giữ bí mật chỉ có người gửi và người các thẻ RFID tương ứng cũng khác nhau đã nhận biết. Điều này tỏ ra không hợp lý khi gây bất tiện cho người dùng, vì ngoài thẻ ngày nay, khối lượng thông tin luân dành cho việc gửi xe, người dùng còn sở chuyển trên khắp thế giới là rất lớn. Việc hữu nhiều loại thẻ khác như thẻ ngân hàng, thiết lập một kênh an toàn như vậy sẽ tốn thẻ siêu thị, thẻ nhân viên… kém về chi phí và chậm trễ về thời gian. Từ hai thực tế nêu trên, trong bài báo - Tính bí mật của khóa: không có sơ sở này, chúng tôi trình bày một thuật toán mã quy trách nhiệm nếu khóa bị tiết lộ. hóa bất đối xứng có nhiều ưu điểm hơn so Chính vì những điểm yếu trên của mã với RSA và áp dụng nó vào việc xây dựng hóa đối xứng, năm 1976, Whitfield Diffie một hệ thống bãi giữ xe thông minh – tự và Martin Hellman đã tìm ra một phương động (Smart-Auto parking) với phần mềm pháp mã hóa khác có thể giải quyết được về phía người dùng được triển khai trên hai vấn đề trên, đó là mã hóa công khai điện thoại thông minh dùng hệ điều hành (public key cryptography) hay còn gọi Android. Làm như vậy sẽ giúp hệ thống bãi là mã hóa bất đối xứng (asymetric giữ xe trở nên an toàn, tiện dụng hơn, loại crytography). Đây có thể được xem là một bỏ các thẻ RFID không cần thiết và hơn bước đột phá quan trọng bậc nhất trong lĩnh nữa, có thể hoạt động độc lập mà không cần vực mã hóa. nhân viên trực hệ thống luôn luôn có mặt B. Mô hình mã hóa bất đối xứng trong suốt thời gian vận hành. Một mô hình mã hóa bất đối xứng gồm 2. Tổng quan về mã hóa bất đối xứng 6 thành phần: A. Giới thiệu - Plaintext (bản rõ) là nội dung có thể Mã hóa đối xứng dù đã phát triển từ cổ đọc được hoặc dữ liệu được đưa vào các 83
  4. 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). Các bước thực hiện như sau: - Encryption algorithm (Thuật toán mã - Mỗi user (người dùng) tạo ra một cặp hóa) là những thuật toán mã hóa thực hiện khóa; một được sử dụng để mã hóa và một các phép biến đổi khác nhau trên plaintext. dùng để giải mã message. - Public key và private key là một cặp - Mỗi user đặt một trong hai khóa ở thư khóa đã được chọn để một dùng cho mã mục có thể truy cập (public register) là hóa và một cho giải mã; các phép biến đổi public key. Khóa còn lại được giữ bí mật là chính xác được thưc hiện bởi các thuật toán private key. Như hình 3, ta thấy, mỗi user phụ thuộc vào public key và private key có một tập hợp các public key thu được từ được cung cấp như đầu vào (input). những người khác. - Ciphertext (bản mã hóa) là bản mã - Nếu Bob muốn gửi một message bí hóa ở đầu ra (output), phụ thuộc vào mật cho Alice, Bob mã hóa message bằng plaintext và key ở đầu vào. public key của Alice. - Decryption algorithm (thuật toán giải - Khi Alice nhận được message, mã) là thuật toán dùng ciphertext và khóa Alice giải mã bằng private key của chính tương ứng để tái tạo plaintext ban đầu. cô ấy. Không người nhận nào khác có thể 1) Mô hình mã hóa dùng khóa công giải mã message, vì chỉ có Alice biết được khai (public key) private key của chính mình. Bob s public-key ring Joy Ted Alice Alice s Alice s public PRa private key PUa key X Transmitted X  DPRa,Y  ciphertext Y  E  PUa , X  Plaintext Encryption algorithm Decryption algorithm Plaintext input (e.g., ECC) output 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 để trên cung cấp khả năng bảo mật thông tin. mã hóa và private key dùng để giải mã, điều 2) Mô hình mã hóa dùng khóa bí mật này cho phép các ứng dụng sử dụng mô hình (private key) 84
  5. NGUYỄN TRẦN THANH LÂM - LƯU THANH TRÀ Alice s public-key ring Joy Ted Alice PRb Bob s private PU b Bob s public key key X Transmitted X  DPUb,Y  ciphertext Y  E  PRb , X  Plaintext Encryption algorithm Decryption algorithm Plaintext input (e.g., ECC) output 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ị Ngày nay, hầu hết các sản phẩm và tiêu một message (X) và mã hóa nó bằng cách chuẩn có sử dụng thuật toán mã hóa công sử dụng private key của mình trước khi gửi khai để mã hóa cùng chữ ký điện tử thường cho Alice. sử dụng RSA. Nhưng chúng ta nhận thấy Alice có thể giải mã message bằng rằng chiều dài khóa để đảm bảo an toàn đã cách sử dụng public key của Bob. tăng lên trong những năm gần đây. Điều đó, Bởi vì message được mã hóa bằng đặt ra một vấn đề là, mức độ tính toán nặng private key của Bob, do đó có Bob mới có hơn cho ứng dụng có sử dụng RSA. Gánh thể tạo ra message. Cho nên, message được nặng này có thể gây nghẽn nghiêm trọng, dùng như một chữ ký điện tử (digital đặc biệt cho các web server, các trang signature). Hơn nữa, không thể sửa đổi thương mại điện tử cần thực hiện một số message mà không có private key của Bob. lượng lớn giao dịch an toàn đồng thời. Vì vậy, message được xác thực cả về Theo thống kê của ECRYPT II [1], nguồn phát và tính toàn vẹn dữ liệu. chúng ta có bảng tóm tắt sau: Điều quan trọng cần nhấn mạnh là quá Ghi chú: trình mã hóa được mô tả trong mô hình trên - Mức độ phổ biến: mức đánh giá ba không cung cấp tính bảo mật. Các message ngôi sao cho thấy phạm vi triển khai rộng gửi đi được đảm bảo an toàn trước việc sửa rãi nhất; không có sao nào cho thấy không đổi, nhưng không thể chống lại việc nghe có thông tin thuật toán đó được sử dụng. trộm. Điều này là hiển nhiên bởi vì bất kỳ - Mức độ an toàn: mức đánh giá ba người nào cũng có thể giải mã message bằng ngôi sao chỉ ra rằng ECRYPT hoàn toàn tin cách sử dụng public key của người gửi. tưởng vào sự an toàn của thuật toán và kích C. Thuật toán mã hóa Elliptic Curve thước khóa tương ứng; không có sao nào Cryptography (ECC) cho thấy thuật toán và kích thước khóa 1) Giới thiệu: tương ứng không nên tiếp tục sử dụng. 85
  6. 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 RSA PKCS#1 v 1.5 Bất kỳ *** * RSA OAEP 1024 * * RSA OAEP 2048 * ** RSA OAEP ≥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 cấp cùng mức độ bảo mật nhưng sử dụng thách thức RSA là Elliptic Curve một khóa có kích thước nhỏ hơn nên đã Cryptography (ECC) ra đời. Sự hấp dẫn giảm thiểu được mức độ xử lý. chủ yếu của ECC so với RSA là, nó cung 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
  7. 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 3. Triển khai ECC trên nền tảng điện thoại Android. Android Chúng tôi chọn nền tảng Android vì Trong phần này sẽ trình bày việc triển đây là nền tảng mở và là hệ điều hành phổ khai thuật toán mã hóa ECC trên nền tảng 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ợ các ứng dụng mật mã. Ban đầu, nó được 1) Bouncy Castle phát triển như một phương tiện để giảm Bouncy Castle (BC) là một tập hợp thiểu việc phát triển lại các thư mật mã và các APIs (Application Programming sẵn sàng như một mã nguồn mở (open Interfaces) được phát triển để sử dụng cho source) theo giấy phép MIT X11. 87
  8. 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 điện tử và xác thực chữ ký thực hiện trên hỗ trợ mã hóa cơ bản là “light-weight” API cùng một ứng dụng, nhằm bỏ qua thời gian và JCE provider. Tuy nhiên, thư viện này trễ do truyền gói tin trong trường hợp triển chỉ hoạt động trên nền tảng Java không phù khai trên hai ứng dụng khác nhau. hợp với nền tảng Android [16]. Theo Bảng 2, mức độ bảo mật của RSA- 2) Spongy Castle 2048 tương đương với ECC-224 nhưng thư Mặc dù, Java là nền tảng chính để tạo viện Spongy Castle chỉ hỗ trợ ECC-256. Vậy nên các ứng dụng Android, nhưng thư viện việc đánh giá sẽ được thực hiện qua so sánh Bouncy Castle lại không được hỗ trợ thực giữa RSA-2048 và ECC-256 thi trên Android. Chính vì thế, Spongy 1) Ứng dụng chạy trên Smartphone Castle là một biến thể của Bouncy Castle Android cao cấp được đóng gói lại cho phù hợp với Android Smartphone sử dụng để kiểm tra trong [17]. phần test này là Samsung Galaxy S8, có B. Đánh giá thực tế tốc độ xử lý của thông số kỹ thuật như sau: RSA/ECC Bảng 5: Thông số kỹ thuật Galaxy S8 Phần này, trình bày việc viết một ứng Thông số Chi tiết dụng tạo chữ ký điện tử (digital signature) RAM 4GB dùng hai thuật toán mã hóa là ECC và RSA Chipset Exynos 8895 triển khai trên smartphone android, để từ đó đánh giá được thực tế tốc độ xử lý của CPU 8 core (4 core 2.3GHz + 4 core hai thuật toán này. Triển khai tạo chữ ký 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
  9. 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
  10. 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 Bảng 8: Thông số kỹ thuật Galaxy J3 Pro Android tầm thấp Thông số Chi tiết Smartphone sử dụng để kiểm tra trong RAM 2GB phần test này là Samsung Galaxy J3 Pro, Chipset Exynos 7570 có thông số kỹ thuật như sau: CPU 4 core 1.4GHz 90
  11. 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
  12. 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
  13. 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) 3) Kết luận điện tử nhưng tổng thời gian trung bình để Từ so sánh về lý thuyết và thực tế có thực hiện là nhỏ hơn rất nhiều so với thể thấy rằng tuy thuật toán mã hóa ECC RSA, đặc biệt đối với các thiết bị có tài chậm hơn RSA trong việc xác thực chữ ký 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) 93
  14. 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
  15. 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
  16. 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
  17. 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
  18. THUẬT TOÁN MÃ HÓA ELLIPTIC CURVE CRYPTOGRAPHY (ECC) VÀ ỨNG DỤNG TRONG XÂY DỰNG… 2) Phần mềm phía module Smart-auto không nằm trong nội dung chính mà bài parking (Raspberry Pi) báo hướng đến, nên tác giả không trình bày Lưu ý: phần nhận diện biển số xe 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ã) 98
  19. NGUYỄN TRẦN THANH LÂM - LƯU THANH TRÀ TÀI LIỆU THAM KHẢO Vulnerabilities, and Countermeasures”, 1. ECRYPT II, European Network of Excellence [Online]. Available: in Cryptology II, “ECRYPT II Yearly Report https://www.intechopen.com/books/supply_ch on Algorithms and Key Sizes (2011-2012)”. ain_the_way_to_flat_organisation/rfid_techno 2. Wikipedia, “RSA”, [Online]. Available logy__security_vulnerabilities__and_counter https://vi.wikipedia.org/wiki/RSA_(m%C3% measures A3_h%C3%B3a). 10. The beginner’s guide to RFID systems, 3. Abdullah Darwish, Imad Khaled Salad, Saleh [Online]. Available: Oqeili, “Mathematical Attacks on RSA https://www.atlasRFIDstore.com Cryptosystem”. 11. William Stallings, “Cryptography and 4. Mark van Cuijk, “Timing Attack on RSA”. network security”, Principles and practice, sixth edition. 5. Jame Manger, “A chosen Ciphertext Attack on RSA Optimal Asymmetric Encryption 12. Mohsen Bafanddehkar, Ramlan Mahmod, Padding (OAEP) as Standardized in PKCS Sharifah Md Yasin, “Comparison of ECC and #2.0”. RSA Algorithm in Resource Constrained Devices”. 6. Andrea Pellegrini, Todd Austin, Valeria Bertacco, “Fault-based attack of RSA 13. Douglas Stebila, Vipul Gupta, “Speeding ip authentication” Decure Web Transactions Using Elliptic Curve Cryptography”. 7. Reuters, “Exclusive: NSA infiltrated RSA security mode deeply than thought – study”, 14. Al Imem Ali, “Comparison and evaluation of [Online]. Available: digital signature schemes employed in NDN network”. http://www.reuters.com/article/us-usa- security-nsa-rsa/exclusive-nsa-infiltrated-rsa- 15. IDC, “Smartphone OS market share, 2017 security-more-deeply-than-thought-study- Q1” , [Online]. Available: idUSBREA2U0TY20140331. https://www.idc.com/promo/smartphone- 8. Matthew Fredrikson, Ruben Niederhagen, market-share/os Stephen Checkoway “On the Practical 16. The Legion of the Bouncy Castle, link Exploitability of Dual EC in TLS “https://www.bouncycastle.org/” Implementations”. 17. Spongy Castle, repackage of Bouncy Castle 9. Hervé Lebrun, Thomas Gibbons, Qinghan for Android, [Online]. Available: Xiao “RFID Technology, Security “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 99
nguon tai.lieu . vn