Nghiên cứu hệ thống an ninh dựa trên nhận dạng chuỗi mật mã
Bạn đang xem tài liệu "Nghiên cứu hệ thống an ninh dựa trên nhận dạng chuỗi mật mã", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
nghien_cuu_he_thong_an_ninh_dua_tren_nhan_dang_chuoi_mat_ma.pdf
Nội dung text: Nghiên cứu hệ thống an ninh dựa trên nhận dạng chuỗi mật mã
- NGHIÊN CỨU HỆ THỐNG AN NINH DỰA TRÊN NHẬN DẠNG CHUỖI MẬT MÃ RESEARCH THE SECCURITY SYSTEM BY RECOGNIZING THE ENCRYPTED STRING Trần Xuân Đức1, TS. Phan Văn Ca1 1Trường đại học Sư phạm Kỹ thuật TP.HCM TÓM TẮT Nhận dạng ký quangtự học và mật mã là hai lĩnh vực nghiên cứu đã có nhiều thành tựuvề mặt lý thuyết lẫn thực nghiệm. Trên cơ sở kết hợp giữa hai lĩnh vực trên đểxây dựng hệ thống giám sát ra, vào cổng dùng trong các đơn vị quân đội. Nội dung bài báo sẽ giới thiệu quá trình xây dựng phần mềm kiểm soát ra vào cổng. Hệ thốngtrước tiên sẽ lưu trữ thông tin của từng cá nhân trong đơn vịvào trong cơ sở dữ liệu của hệ thống và cấp thẻ ra vào làchuỗiký tự đã được mã hóa bằng hệ mã hóa DES (Data Encryption Standard). Việc kiểm soát người qua cổng thông qua việc nhận dạnghuỗi c ký tự trên thẻ ra và thực hiện giải mã chuỗi kýtựđóđể truy vấn vào trong cơ sở dữ liệuđể ra xác nhận thông tin của người qua cổng. Hệ thốngsử dụng phương pháp SVM (Support Vector Machines) và NN (Neural Network) để nhận dạng. Thông qua kết quả nhận dạngcho phép ta so sánh được phương pháp nhận dạng nào có ưu điểm hơn. Từ khóa: Nhận dạng ký tự quang học, NN, SVM, DES, Mật mã. ABSTRACT Optical character recognition and encryption are the research topics have been many achievements theoretically and empirically. On the basis of combining them, to build the gate monitoring system. It is used in the military unit. Contents of paper will introduce the software the process of building access control gates. First, the system will store information of each military into the database of the system and print string DES (Data Encryption Standard) encryption on the gate acess card. The system control people through the gate by identifying string on the card. Then decrypt that string to query the database to confirm the information of people go through the gate. The system uses the method SVM (Support Vector Machines) and NN (Neural Network) to character recognition. By recognition results, we can compare identification methods. Know which method is better than. Keywords: Optical character recognition, NN, SVM, DES, Encryption 1. GIỚI THIỆU an ninh bằng cách nâng cao hiệu quả trong kiểm soát người ra, vào cổng. Hệ thống nhận dạng có thể thay thế con người trong việc thu thập, phân loại và xử lý 2. MÔ HÌNH HỆ THỐNG KIỂM SOÁT RA VÀO CỔNG thông tin một cách tự động. Trong đó nhận dạng ký tự quang học, đã thu được nhiều kếtquả Bài toán đặt ra, trong một khu quânsự đáng tin cậy cả về lý thuyết lẫn thực nghiệm. gồm có cổng chính và bên trong mỗi khu vực Cùng với sự phát triển của khoa học kỹ lại có cổng riêng kiểm soát khu vựcCần đó. xây thuật và công nghệ thông tin, thì những ứng dựng một hệ thống kiểm soát ra, vào cổngđối dụng của khoa học mật mã không chỉ còn giới với các quân nhân trong đơn vị và khách đến hạn trong an ninh, chính trị mà ngày càng được liên hệ công tác. Hệ thống hoạt động cơ bản như ứng dụng trong nhiều lĩnh vực của đời sống xã sau: hội. Mỗi quân nhân trong đơn vị (hay khách) Trên cơ sở kết hợp những thành tựu của được lưu trữ thông tin cá nhân, cũng như khu lĩnh vực nhận dạng ký tự và mật mã để xây vực được phép ra, vào cổng, vào trong cơ sở dữ dựng hệ thống kiểm soát ra vào cổng dùng cho liệu của hệ thống và được cấp một thẻ ra vào là các đơn vị quân đội. Nhằm tăng cường đảm bảo một chuỗi ký tự đã được mã hóa. Khi quân nhân qua cổng của từng khu vực sẽ tiến hành nhận 1
- dạng và giải mã chuỗi ký tự trên thẻ ra vàođể bởi hoán vị ngược của IP (IP-1). truy nhập vào cơ sở dữ liệu của quân nhân đó 3) Quá trình giải nén diễn ra tương tự khi cần truy xuất thông tin cũng như ra quyết nhưng với các khóa con ứng dụng vào các vòng định quân nhân đó có được phép qua cổng hay theo thứ tự ngược lại. không. Sơ đồ mã hóa DES được xây dựng trên Nhiệm vụ của hệ thống gồm có: lược đồ Feistel như trong hinh 1. - Tạo thẻ ra vào là chuỗi ký tự mã hóa DES. - Xây dựng cơ sở dữ liệu. - Nhận dạng chuỗi ký tự trên thẻ ra vào bằng phương pháp SVM và NN. Hình 2. Sơ đồ mã hóa DES Hình 1. Mô hình hệ thống kiểm soát ra, vào Hình 2. Sơ đồ mã hóa DES cổng Các mô tả về hàm mã hóa f và khối tạo 3. MÃ HÓA DES khóa con trong DES như mô tả trong hình 3 và hình 4. Mã hóa DES [1], [2],[3],[4] mã hóa một xâu bit x của bản rõ có độ dài 64 bit bằng một khóa 56 bit. Bản mã nhận được cũng là một xâu bit có độ dài là 64. Thuật toán tiến hành theo 3 giai đoạn : 1) Với bản rõ cho trước x, một xâu bit x0 sẽ được xây dựng bằng cách hoán vị các bit của x theo phép hoán vị IP. Ta viết : x0=IP(x)=L0R0, trong đó L0 gồm 32 bit đầu và R0 là 32 bit cuối. 2) Sau đó tính toán tính toán 16 vòng lặp theo một hàm xác định. Ta sẽ tính LiRi, với 1 ≤ i ≤ 16 theo qui tắc sau : Li=Ri-1; Ri=Li-1 f(Ri-1, Ki) Trong đó f(Ri-1,Ki)=P(S(E(Ri-1) Ki)); f Hình 3. Mô tả hàm f trong DES là một hàm phi tuyến. E là hoán vị mở rộng ánh Giải mã làm ngược lại quá trình mã hóa. xạ iR -1 từ 32 bit thành 48 bit. P là hoán vị cố Với thiết kế Fiestel thực hiện mã hóa tiếp với định khác của 32 bit. các khóa con từ K16 ngược về K1. Nhận thấy Một hoán vị khởi đầu (IP) được sử dụng rằng hoán vị ban đầu IP sẽ trả lại tác dụng của cho vòng đầu tiên, sau vòng cuối cùng nửa trái hoán vị cuối FP. Vòng đầu với K16 sẽ trả lại tác và phải sẽ đổi cho nhau và xâu cuối cùng kết dụng của vòng mã thứ 16. Vòng thứ 16 vớiK1 quả sẽ được hoán vị lần cuối sẽ trả lại tác dụng của vòng mã đầu tiên. Hoán 2
- vị cuối FP trả lại tác dụng ban đầu IP. Như vậy khôi phục được dữ liệu ban đâu. Hình 4. Các bước tạo khóa cho các vòng mã hóa của DES Hình .6 Lưu đồ mã hóa và sinh khóa DES Hình5 . Mã hóa và giải mã với DES 3
- 4. NHẬN DẠNG KÝ TỰ BẰNG NNVÀ Trong tất cả các loại đặc trưng thìđặc SVM trưng ma trận nhị phân là đặc trưng đơn giản và 4.1 Mô hình nhận dạng bằng NN và SVM dễ cài đặt nhất. Với ảnh đầu vào, sau khi tìm khung hình bé nhất chứa các điểm đen trên ảnh và chuẩn hóa về kích thước 32x32, chuyển sang ma trận nhị phân và biến đổi thành mảng một chiều để làm đặc trưng cho việc huấn luyện và nhận dạng. Như vậy, đặc trưng được trích chọn đại diện cho mỗi ký tự là một vector 1024 chiều. Hình 7. Mô hình hệ thống kiểm soát ra, vào Hình 9. Chọn đặc trưng ma trận nhị phân cổng 4.4 Xây dựng và huấn luyện nhận dạng bằng 4.2 Tiền xử lý ảnh NN Trong phần tiền xử lý ảnh[4] gồm có: Mạng nơ ron có khả năng xấp xỉ các hàm Bước1:Chuẩn hóa kích thước ảnh đầu vào phi tuyến một cách đầy đủ và chính xác. Với về kích thước thuật toán lan truyền ngược tĩnh và động của [w=1024;h= src.rows*w/src.cols] mạng nơ ron được sử dụng để hiệu chỉnh các Bước 2: nhị phân hóa ảnh. tham số trong quá trình nhận dạng [7],[8]. Bước 3: chỉnh độ nghiêng. Các bước xây dựng bài toán Bước 4: tìm hình chữ nhật bé nhất chứa . Bước 1: Xác định cấu trúc mạng từng ký tự. Lựa chọn mạng nơ ron theo mô hình Bước 5: lấy vùng ảnh I nằm trong hình Feed-Forward và dựa trên giải thuật lan truyền chữ nhật. ngược để huấn luyện mạng. Mô hình mạng nơ Bước 6: chuẩn hóa ảnh I về kích thước ron này sẽ gồm 3 lớp: một lớp input, một lớp chuẩn [32x32]. output và một lớp ẩn. Ảnh mỗi ký tự được chuẩn hóa có kích thước 32x32 pixel ta trích chọn được ma trận nhị phân [1x1024]. Như vậy để tiến hành nhận dạng, mạng nơ ron phải được xây dựng có lớp input gồm 1024 nút. Giá trị của các inputsẽ được lấy từ các pixel ảnh ký tự đã được chuẩn hóa. Ứng với mỗi pixel đen trong ảnh ký tự thì nút tương ứng trong lớp input sẽ có giá trịlà 1, ngược lại nút đó sẽ có giá trị là 0, số nút ởlớp output là 16 nút. Tương ứng với 16 bit nhị phân, sau cùng chuyển thành một ký tự Unicode. Số Hình 8. Các bước trích ký tự nút ở lớp ẩn là trung bình cộng của hai lớp trên 4.3 Trích chọn đặc trưng [9], [10]. . Bước 2: Huấn luyện mạng Trích chọn đặc trưng đóng vai trò cực kỳ + Chuẩn bị cơ sở dữ liệu: Các mẫu huấn quan trọng trong một hệ thống nhận dạng. Một luyện là các ảnh ký tự bao gồm các số từ 0đến số phương pháp trích chọn đặc trưng đốivới 9 và các chữ cái A, B, C, D, F. Đối với mỗi ký nhận dạng ký tự được trình bày trong tự ta có ảnh khác nhau, ta lưu các ảnh này vào [5],[6],[7],[8]. folder được đặt tên theo ký tự và tương ứng với mỗi folder ta lại có file text đầu ra mong muốn. 4
- + Các bước huấn luyện mạng: Mat weights( 1, TrainData.rows, CV_32FC1, 1. Khởi tạo các giá trị ngẫu nhiên cho trọng số Scalar::all(1) ); trong khoảng [- độ lệch, độ lệch] ann.train( TrainData, trainClasses, weights ); 2. Nạp file ảnh đầu vào và file text đầu ra mong trained=true;} muốn. 3. Trích đặc trưng ảnh đầu vào và ánh xạ vào 1024 nơ ron đầu vào. 4. Chuyển ký tự đầu ra mong muốn, thành giá trị nhị phân Unicode và lưu trữ lại. 5. Với mỗi kí tự ảnh: - Tính giá trị đầu ra trong mạng Feed Forward. - So sánh với ký tự tương ứng ở đầu ra và tính toán lỗi. - Lan truyền ngược lỗi và điều chỉnh lại giá trị trọng số. 6. Chuyển đến xét ký tự ảnh tiếp theo và thực Hình10 . Mô hình mạng nơron nhận dạng ký hiện lại bước 5, cho đến khi duyệt hết kítự ảnh tự . 7. Tính giá trị lỗi trung bình cho tất cả các kýtự 4.5 Huấn luyện nhận dạng bằng SVM ảnh. 8. Lặp lại bước 5 đến bước 7 cho đến khi chạy SVM được xem là công cụ mạnh cho đủ số vòng dạy những bài toán phân lớp phi tuyến. Phương - Nếu lỗi trung bình đạt thấp hơn giá trị ngưỡng pháp này thực hiện phân lớp dựa trên nguyên lý của lỗi thì dừng lại. cực tiểu hóa rỏi ro có cấu trúc SRM (Structural - Nếu không thì tiếp tục. Risk Minimization), được xem là một trong các Các tham số sử dụng trong xây dựng và huấn phương pháp phân lớp giám sát không tham số luyện mạng: tinh vi nhất cho đến nay. Các hàm công cụ đa TrainData.cols =1024; nlayers=500; dạng của SVM cho phép tạo không gian chuyển numCharacters=16; đổi để xây dựng mặt phẳng phân lớp [11],[12],. Tốc độ học η = 150. Để huấn luyện trước hết, ta cũng cần Hệ số góc α Sigmoid= 1. chuẩn bị cơ sở dữ liệu. Cơ sở dữ liệu trong SVM Giá trị ngưỡng hay độ lệch : 30 cũng giống như cơ sở dữ liệu trong huấn luyện Số lần dạy 300 mạng nơron. Có 16 ký tự, do đó ta cần phân loại Ngưỡng của lỗi = 0.0002. 16 lớp. Với mỗi lớp ta có các ảnh khác nhau. Mã lệnh của chương trình huấn luyện mạng. Các ảnh này được lưu vào các folder được đặt void OCR::train(Mat TrainData, Mat classes, tên theo các kí tự từ 0 đến 16. Số thứ tự cũng int nlayers) chính là nhãn tương ứng đưa vào việc nhận { Mat layerSizes(1,3,CV_32SC1); dạng. layerSizes.at (0)= TrainData.cols; Chương trình huấn luyện để nhận dạng ký layerSizes.at (1)= nlayers; tự. Sau đây là đoạn mã của của chương trình layerSizes.at (2)= numCharacters; huấn luyện SVM ann.create(layerSizes, CvSVMParams params; CvANN_MLP::SIGMOID_SYM, 1, 1); params.svm_type = CvSVM::C_SVC; Mat trainClasses; params.kernel_type = CvSVM::RBF; trainClasses.create( TrainData.rows, params.gamma = 0.5;params.C = 16; numCharacters, CV_32FC1 ); params.term_crit = for( int i = 0; i (i) ) SVM svm; trainClasses.at (i,k) = 1; Mat data; else data=Mat(feature, CV_32FC1); trainClasses.at (i,k) = 0; } } Mat label = Mat(feature, 1, CV_32FC1); int index = 0; 5
- for(int i=0; i feature = dữ liệu như : ảnh, họ tên, cấp bậc, đơn vị, số calculate_feature(src); chứng minh thư, khu vực được phép ra, vào, của if(feature.size() (index, t) = feature.at(t); label.at (index, 0) = i; index++;}} svm.train_auto(data, label, Mat(), Mat(), params); svm.save("svmchar.xml"); return 0; Sau khi huấn luyện xong ta thu được 2 cơ sở dữ liệu dưới dạng XML như đã nói ở trên là SVM.xml và svmchar.xml và đưa chúng vào chương trình chính để nhận dạng. Hình 21 . Giao diện của cổng chính 5. HOẠT ĐỘNG CỦA CHƯƠNG TRÌNH Môi trường xây dựng phần mềm Máy tính chạy hệ điều hành Windows 7; Windows 8.1 Cài đặt bộ Visual studio 2012 Ultimate. Có tích hợp .NET Framework version 4.5 Sử dụng ngôn ngữ lập trình Visual C++ Cài đặt thư viện thị giácgiác máy tính OpenCV 2.4.9. [13], [14], [15]. Quản lý database sử dụng SQlite. Các lệnh trong thư viên OpenCV được tích hợp trong chương trình chạy trên nền .NET Hình 31 . Nhập thông tin vào cơ sở dữ liệu Framework nhờ vào các heafile dạng thư viện .lib; dạng headfile .h và .hpp từng người trong đơn vị và khách đến liên hệ Giao diện ban đầu khi chạychương trình: công tác. Hình 11. Giao diện ban đầu của chương trình Hình 41 . Tạo mã thẻ cho từng cá nhân 6
- Sau đó sẽ tiến hành tạo mã của từng cá nhân. Bảng .1 Kết quả nhận dạng trên tập ảnh Mã thẻ sẽ quản lý thông tin của cá nhân trong ImgTest cơ sở dữ liệu. Mã được tạo ra sẽđược in trên Phương pháp Độ chính xác thẻ ra vào cấp cho từng quân nhân hay khách đến đơn vị. SVM 98,5% Khi khách đi đến cổng kiểm soát bên NN 84% trong. Ở khu vực này sẽ tiến hành quét thẻ ravào và tiến hành nhận dạng (bằng SVM hay NN) Như vậy phương pháp nhận dạng bằng chuỗi ký tự sau khi được nhận dạng sẽ được giải SVM cho kết quả có độ chính xác cao hơn so mã để truy nhập vào cơ sở dữ liệu thông tin của với phương pháp nhận dạng bằng NN. khách, đối chiếu và ra quyết định xem khách có được phép vào/ra khu vực này hay không. Cũng 6. KẾT LUẬN như có thể cập nhật thông tin thời gian ra, vào. Bài báo đã tiến hành xây dựng chương trình kiểm soát ra, vào cổng dùng cho các đơn vị quân đội. Hệ thống là sự kết hợphệ giữa mật mã DES và chương trình nhận dạng ký tự sử dụng hai phương pháp là NN và SVM. Với độhính c xác cao của SVM trong nhận dạng việc lựa chọn SVM đã đang là sự lựa chọn tối ưu trong nhận dạng ký tự. Chương trình cần kết hợp với phần cứng và đưa vào thử nghiệm trong thực tế hoàntừ đó thiện phần mềm sát với điều kiện thực tế. Hình 51 . Giao diện chương trình ở cổng 1 LỜI CẢM ƠN Em xin bày tỏ lòng biết ơn sâu sắc đến quý Thầy, Cô Trường đại học Sư phạmKỹ thuật TP. HCM đã nhiệt tình truyền đạt kiến thức quí báu cho em trong suốt khóa học. Đặc biệtlà thầy tiến sĩ Phan Văn Ca đã tận tình quan tâm, giúp đõ, hướng dẫn em thực hiện đề tài này. Hình 61 . Nhận dạng ký tự trên thẻ So sánh kết quả hai phương pháp SVM và NN Đối với cùng mẫu ảnh ký tự chụpvào (cùng các điều kiện ràng bộc như nhau). Cùng chung bước tiền xử lý ảnh, trích chọn ký tự và trích đặc trưng. Với 200 mẫu ảnh ký tự chụp vào ( được lưu trong folder ImgTest) với các độ méo dạng khác nhau thì kết quả nhận dạng như sau: 7
- TÀI LIỆU THAM KHẢO [1] Hồ Quang Bửu.Về một phương pháp xây dựng hàm băm cho việc xác thực trên cơ sởứng dụng thuật toán mã hóa đối xứng. Luận án tiến sỹ, Học viện Công nghệ bưu chính Viễn thông, 2013 [2] Nguyễn Bình. Giáo trình Mật mã .học Học viện Công hệng bưu chính Viễn thông. Nxb Bưu điện, 2004 [3] Menezes A. J, Van Oorchot P. C. (1998), Handbook of Applied Cryptography, CRC Press, 1998. [4] Schneier B. (1996), Applied Cryptography, John Wiley Press, 1996. [5] Mohamed Cheriet, Nawwaf Kharma, Cheng-Lin Liu And Ching Y.Suen. Character Recognition Systems: A Guide for Students and Practioners. N.Y.:John Wiley & Sons, 2007. [6] Phạm Anh Phương. Một số phương pháp trích chọn đặc trưng hiệu quả cho bài toán nhận dạng chữ viết tay rời rạc. Tạp chí Khoa học, Đại học Huế, Số 53, 2009. [7] Stallings W. (2000), “Networks Security Essentials: Applications and Standards”, Prentice Hall, 2000. [8] Robert A.Dunne. A Statistical Approach to Neural Networks for Pattern, N.Y.: john Wiley & Sons, 2007. [9] Ngô Văn Sỹ. Nhận dạng ký tự quang học bằng mạng nơ ron.Tạp chí khoa học và công nghệ, Đại học Đà Nẵng, số 4(27).2008 [10] Daniel Admassu. Unicode Optical Character Recognition, vote, 8.2006. [11] V.N.Vapnik. The Nature of Statistical Learning Theory. Springer Verlag, 1995. [12] V.N.Vapnik. Statistical Learning Theory. N.Y.:John Wiley&Sons, 1998. [13] Daniel Lélis Baggio, Shervin Emami, David Millán Escrivá, Khvedchenia Ievgen, Naureen Mahmood, Jason Saragih, Roy Shilkrot. Mastering OpenCV with Practical Computer Vision Projects. Packt Publishing 2012. [14] Gary Bradski, Adrian Kaehler. Learning OpenCV. O’Reilly Media, Inc., 1005. [15] Robert Laganière. OpenCV 2 Computer Vision Application Programming Cookbook. Packt Publishing Ltd. 5.2011 Thông tin liên hệ tác giả chính (người chịu trách nhiệm bài viết) Họ tên: Trần Xuân Đức Đơn vị: Trường TCKT Hải Quân Điện thoại: 0984707577 Email: hqndvn102013@gmail.com 8
- BÀI BÁO KHOA HỌC THỰC HIỆN CÔNG BỐ THEO QUY CHẾ ĐÀO TẠO THẠC SỸ Bài báo khoa học của học viên có xác nhận và đề xuất cho đăng của Giảng viên hướng dẫn Bản tiếng Việt ©, TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH và TÁC GIẢ Bản quyền tác phẩm đã được bảo hộ bởi Luật xuất bản và Luật Sở hữu trí tuệ Việt Nam. Nghiêm cấm mọi hình thức xuất bản, sao chụp, phát tán nội dung khi chưa có sự đồng ý của tác giả và Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh. ĐỂ CÓ BÀI BÁO KHOA HỌC TỐT, CẦN CHUNG TAY BẢO VỆ TÁC QUYỀN! Thực hiện theo MTCL & KHTHMTCL Năm học 2017-2018 của Thư viện Trường Đại học Sư phạm Kỹ thuật Tp. Hồ Chí Minh.