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

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ế

pdf19 trang | Chia sẻ: huongnhu95 | Lượt xem: 560 | Lượt tải: 0download
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:

  • pdfthuat_toan_ma_hoa_elliptic_curve_cryptography_ecc_va_ung_dun.pdf