TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH BKTP.HCM LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC NGHIÊN CỨU SỬ DỤNG GIỌNG NÓI TRONG XÁC THỰC VÀ MÃ HÓA DỮ LIỆU TRÊN THIẾT BỊ DI ĐỘNG VÀ
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH
BKTP.HCM
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
NGHIÊN CỨU SỬ DỤNG GIỌNG NÓI TRONG
XÁC THỰC VÀ MÃ HÓA DỮ LIỆU TRÊN THIẾT BỊ
DI ĐỘNG VÀ XÂY DỰNG HỆ THỐNG DEMO TRÊN
ANDROID
HỘI ĐỒNG: Hệ thống thông tin GVHD: PGS TS Đặng Trần Khánh GVPB: ThS Trương Quỳnh Chi
SVTH 1: Lê Phạm Tuyên(50802487) SVTH 2: Dương Tử Huy(50800768) SVTH 3: Lê Trảo Việt Cường(50800240)
Trang 2Chúng em xin chân thành cảm ơn Khoa Khoa học và Kỹ thuật máy tính-trường Đại học Bách Khoa đã tạo điều kiện cho chúng em thực hiện đề tài luận văn tốt nghiệp này
Chúng em xin gửi lời cảm ơn sâu sắc đến Thầy Đặng Trần Khánh đã rất tận tình hướng dẫn chúng em trong suốt thời gian thực hiện đề tài, thầy đã cung cấp không ít tài liệu cũng như cho chúng em những ý tưởng thú vị và đây những động lực lớn lao để chúng em thực hiện luận văn này
Chúng em xin chân thành cảm ơn đến các thầy, cô trong nhóm nghiên cứu DSTAR đã cho chúng em những ý kiến đóng góp quý báu trong quá trình thực hiện đề tài; xin gửi lời cảm ơn chân thành đến các Thầy và các Cô trong Khoa đã truyền đạt cho chúng em những kiến thức bổ ích, giúp chúng em có được một nền tảng lý thuyết và những kỹ thuật căn bản thiết yếu
Chúng con xin được bày tỏ lòng biết ơn sâu sắc đối với ông bà, cha mẹ, người luôn luôn quan tâm chăm sóc, cả về mặt vật chất lẫn tinh thần, giúp cho chúng con yên tâm, tập trung vào công việc học tập và nghiên cứu
Cuối cùng, xin được nói lời cảm ơn đến các anh chị, bạn bè đã giúp đỡ, khích
lệ cũng như phê bình, góp ý giúp chúng em hoàn thành công việc một cách tốt nhất
Tp Hồ Chí Minh, 12/2012
SVTH
Lê Phạm Tuyên Dương Tử Huy
Lê Trảo Việt Cường
Trang 3Chúng tôi xin cam đoan đây là công trình nghiên cứu của bản thân chúng tôi, được xuất phát từ yêu cầu của luận văn cũng như mong muốn cá nhân Các số liệu, tư liệu, mã nguồn tham khảo có nguồn gốc rõ ràng tuân thủ đúng nguyên tắc
và kết quả trình bày trong luận văn thu thập được trong quá trình nghiên cứu là trung thực chưa từng được ai công bố trước đây
Trang 4Trong luận văn này, chúng tôi trình bày nghiên về cứu sinh trắc học giọng nói
và việc sử dụng giọng nói để xác thực và mã hoá dữ liệu người dùng
Một hệ thống xác thực điển hình gồm hai quá trình đăng ký và xác thực Khi
sử dụng giọng nói làm thông tin để xác thực, hệ thống trải qua các bước sau đây:
Quá trình đăng ký
o Thu dữ liệu giọng nói
o Rút trích vector đặc trưng từ dữ liệu giọng nói
o Sử dụng một giải thuật sửa lỗi để tạo ra thông tin trợ giúp, thông tin này là duy nhất đối mỗi đặc trưng
o Tạo khoá từ vector đặc trưng để sử dụng cho mã hoá và giải mã dữ liệu
Quá trình xác thực
o Thu dữ liệu giọng nói
o Rút trích vector đặc trưng từ dữ liệu giọng nói
o Khôi phục lại vector đặc trưng ban đầu bằng cách sử dụng cùng giải thuật sửa lỗi và thông tin trợ giúp sinh ra ở quá trình đăng ký Nếu khôi phục thành công, xác thực thành công; ngược lại, xác thực thất bại
o Tạo khoá từ vector đặc trưng để sử dụng cho mã hoá và giải mã dữ liệu
Chúng tôi cũng trình bày một hệ thống đề nghị, sử dụng sinh trắc học giọng nói để xác thực và mã hoá dữ liệu trên thiết bị di động sử dụng Android Hệ thống đã được kiểm tra trên 295 mẫu giọng nói (29 người) với tỉ lệ với tỉ lệ xác thực thành công xấp xỉ 85%
Trang 5In this thesis, we present our research about using voice for authentication and data encryption/decryption
A typical authentication system involves two phases: enrollment and authentication When using voice as the trait for authentication, the following steps are done:
Enrollment
o Capture the voice signal
o Extract the feature vector from input signal
o Apply an Error Correction Algorithm on feature vector to generate the unique helper data
o Generate key from this feature vector for data encryption/decryption
Authentication
o Capture the voice signal
o Extract the feature vector from input signal
o Recover the original feature vector by applying the same Error Correction Algorithm together with the helper data on the feature vector If the recover succeeds, the authentication succeeds; otherwise fails
o Generate key from this feature vector for data encryption/decryption
We also present our proposed system which uses voice for authentication This system has been tested using our recorded audio library The library contains 295 voice samples of 29 people The correction rate of authentication is about 85%
Trang 6LỜI CẢM ƠN ii
LỜI CAM ĐOAN iii
TÓM TẮT iv
ABSTRACT v
MỤC LỤC vi
DANH MỤC CÁC TỪ VIẾT TẮT ix
DANH MỤC HÌNH x
DANH MỤC BẢNG xiii
CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1
1.1 Giới thiệu 1
1.1.1 Định nghĩa sinh trắc học 1
1.1.2 Sự cần thiết của sinh trắc học 3
1.2 Mục tiêu đề tài 4
1.2.1 Nhiệm vụ 4
1.2.2 Những vấn đề không thuộc phạm vi đề tài 5
1.2.3 Phương pháp thực hiện 5
1.3 Bố cục luận văn 6
1.3.1 Chương 1: Giới thiệu đề tài 6
1.3.2 Chương 2: Cơ sở lý thuyết 6
1.3.3 Chương 3: Các nghiên cứu liên quan 6
1.3.4 Chương 4: Phân tích và thiết kế hệ thống 6
1.3.5 Chương 5: Tổng kết đánh giá 6
Chương 2: CƠ SỞ LÝ THUYẾT 7
2.1 Rút trích vector đặc trưng từ giọng nói 7
Trang 72.1.2 Tiền xử lý mẫu giọng nói 10
2.1.3 Rút trích vector đặc trưng từ mẫu tín hiệu giọng nói 13
2.2 Kỹ thuật sửa lỗi 17
2.2.1 Kỹ thuật lặp (repetition) 17
2.2.2 Kỹ thuật kiểm tra chẵn lẻ 18
2.2.3 Mã Hamming 18
2.2.4 Mã sửa lỗi Reed Solomon 19
2.3 Tổng quan về mã hóa 28
2.3.1 Tổng quan 28
2.3.2 Các mô hình mã hóa và giải mã 32
CHƯƠNG 3: CÁC NGHIÊN CỨU LIÊN QUAN 38
3.1 Hệ thống mã hóa bằng cách tạo khóa dựa trên tròng mắt người 38
3.1.1 Mô hình hệ thống 38
3.1.2 Quá trình rút trích đặc trưng 39
3.1.3 Mã hóa và giải mã 41
3.1.4 Kết quả thực nghiệm và phân tích 42
3.2 Sinh trắc học khuôn mặt và phương pháp nhận dạng Eigenfaces 43 3.2.1 Giới thiệu 43
3.2.2 Phương pháp Eigenfaces 44
CHƯƠNG 4: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 48
4.1 Phân tích, thiết kế hệ thống 48
4.1.1 Mô tả hệ thống 48
4.2 Các thành phần của hệ thống 52
4.2.1 Thành phần thu nhận giọng nói 52
4.2.2 Thành phần rút trích đặc trưng sinh trắc 53
4.2.3 Thành phần chuẩn hóa 56
Trang 84.2.5 Thành phần tạo khóa 59
4.2.6 Thành phần mã hóa và giải mã dữ liệu 59
4.3 Các quá trình của hệ thống 59
4.3.1 Quá trình đăng kí (Enrollment) 60
4.3.2 Quá trình xác thực hệ thống (Authentication) 60
4.3.3 Quá trình mã hóa và giải mã 61
Chương 5: TỔNG KẾT – ĐÁNH GIÁ 62
5.1 Kết quả thực nghiệm 62
5.1.1 Sử dụng giải thuật LPC để rút trích vector đặc trưng 62
5.1.2 Rút trích vector đặc trưng bằng giải thuật FFT 64
5.1.3 So sánh các kết quả thu được 68
5.2 Kết quả đạt được 70
5.2.1 Ưu điểm hệ thống 70
5.2.2 Nhược điểm hệ thống 70
5.3 Hướng phát triển 71
TÀI LIỆU THAM KHẢO 72
PHỤ LỤC 74
PHỤ LỤC 1: DEMO CHƯƠNG TRÌNH BIO-CRYPT-ANDROID 74
1 Yêu cầu và cài đặt 74
2 Demo các chức năng 74
2.1 Đăng ký thông tin 75
2.2 Xác thực người dùng 77
2.3 Mã hóa và giải mã 78
2.4 Phiên bản thu giọng nói trực tiếp 78
PHỤ LỤC 2: PHÂN CÔNG CÔNG VIỆC 80
Trang 9DANH MỤC CÁC TỪ VIẾT TẮT
LPC Linear Predictive Code
FFT Fast Fourier Transform
DFT Discrete Fourier Transform
MFCC Mel Frequency Cepstral Coefficient
PCM Pulse Code Modulation
DSP Digital Signal Processing
FRR False Reject Rate
FAR False Accept Rate
FMR False Match Rate
FNMR False Non-match Rate
ECC Error Correction Code
PCA Principle Component Analysis
MARF Modular Audio Recognition Framework
DES Data Encryption Standard
AES Advanced Encryption Standard
RSA Ron Rivest, AdiSharmir and Leonard Adleman
DSS Digital Signature Standard
IDEA International Data Encryption Algorithm
Trang 10DANH M ỤC HÌNH
Hình 2.1-1 Biểu diễn tín hiệu giọng nói theo thời gian 9
Hình 2.1-2 Mẫu tín hiệu giọng nói sau khi được chuẩn hóa 10
Hình 2.1-3 Mẫu tín hiệu giọng nói trước và sau khi khử khoảng lặng 11
Hình 2.1-4 Mẫu tín hiệu giọng nói theo miền tần số sau khi lọc lấy tần số thấp 12
Hình 2.1-5 Mô hình rút trích ra vector đặc trưng 13
Hình 2.1-6 Phân khung 14
Hình 2.1-7 Cửa sổ Hamming 15
Hình 2.1-8 Cửa sổ Hanning 15
Hình 2.1-9 Cửa sổ chữ nhật 15
Hình 2.2-1 Ánh xạ các phần tử cơ bản trong trường GF(8) 21
Hình 2.3-1 Mã hóa và giải mã 28
Hình 2.3-2 Mã hóa 29
Hình 2.3-3 Không gian khóa 30
Hình 2.3-4 Sơ đồ mã hóa khóa đối xứng 32
Hình 2.3-5 Sức mạnh của các giải thuật khóa đối xứng 34
Hình 2.3-6 Mô hình mã hóa sử dụng khóa bất đối xứng 35
Hình 2.3-7 Mô hình giải mã sử dụng khóa bất đối xứng 35
Hình 2.3-8 Các định dạng thông điệp 37
Hình 3.1-1 Mô hình hệ thống mã hóa 39
Trang 11Hình 3.1-3 Hình ảnh được lọc 41
Hình 3.1-4 Đường cong FAR và FRR 42
Hình 3.2-1 Một số Eigenface 45
Hình 4.1-1 Mô hình use case của hệ thống 48
Hình 4.2-1 Rút trích vector đặc trưng bằng giải thuật LPC 54
Hình 4.2-2 Rút trích vector đặc trưng bằng giải thuật FFT 55
Hình 4.2-3 Cấu trúc MARF Framework 56
Hình 4.2-4 Phép biến đổi vector đặc trưng LPC 57
Hình 4.2-5 Phép biến đổi vector đặc trưng FFT 57
Hình 4.2-6 Encode trong R-S 58
Hình 4.2-7 Decode trong R-S 59
Hình 4.3-1 Quá trình đăng kí 60
Hình 4.3-2 Quá trình xác thực hệ thống 61
Hình 5.1-1 Đường cong FAR và FRR của giải thuật LPC 63
Hình 5.1-2 Sự phân bố của các thành phần vector vào 5 khoảng 64
Hình 5.1-3 Đường cong FAR và FRR của giải thuật FFT-32 65
Hình 5.1-4 Sự phân bố của các thành phần vector vào 20 khoảng 65
Hình 5.1-5 Đường cong FAR và FRR của giải thuật FFT-64 66
Hình 5.1-6 Sự phân bố của các thành phần vector vào 20 khoảng 67
Hình 5.1-7 Đường cong FAR và FRR của giải thuật FFT-128 68
Trang 12Hình 5.1-9 So sánh các giải thuật với nhau 69
Hình 1-1 Giao diện ban đầu của chương trình 75
Hình 1-2 a) Giao diện chọn số sample b) Giao diện chọn file 76
Hình 1-3 Giao diện confirm đăng ký lại thông tin 77
Hình 1-4 a) Giao diện quản lý file b) Option menu 78
Hình 1-5 Màn hình thu giọng nói 79
Trang 13DANH MỤC BẢNG
Bảng 2.2-1 Chuỗi dữ liệu sau khi được thêm vào các bit chẵn lẻ 18
Bảng 2.2-2 Quá trình kiểm tra tính đúng đắn chuỗi dữ liệu 19
Bảng 2.2-3 Thể việc các phép toán cộng và nhân trong GF(8) 22
Bảng 3.1-1 FAR, FRR và ngưỡng T 43
Bảng 4.1-1 Mô tả use case “Enroll” 49
Bảng 4.1-2 Mô tả use case “Re-enroll” 49
Bảng 4.1-3 Mô tả Use-case “Login” 50
Bảng 4.1-4 Mô tả use case “Encrypt/Decrypt file” 51
Bảng 5.1-1 FAR và FRR của giải thuật LPC 63
Bảng 5.1-2 FAR và FRR của giải thuật FFT với vector đặc trưng 32 chiều 64
Bảng 5.1-3 FAR và FRR của giải thuật FFT với vector đặc trưng 64 chiều 66
Bảng 5.1-4 FAR và FRR của giải thuật FFT với vector đặc trưng 128 chiều 67
Trang 14CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI
1.1 Giới thiệu
Mở đầu, đề tài sẽ trình bày một cách khái quát về sinh trắc học Sinh trắc học
là gì, các phương thức sinh trắc, các yếu tố để chọn lựa phương thức sinh trắc Tiếp theo, đề tài sẽ trình bày tại sao và tầm quan trọng sử dụng sinh trắc học trong các hệ thống xác thực và mã hóa
1.1.1 Định nghĩa sinh trắc học
Sinh trắc học (biometrics) là phương pháp xác thực con người dựa trên các
đặc điểm sinh trắc [1] Các đặc điểm sinh trắc này phải là riêng biệt và có thể
đánh giá tính toán được Các đặc điểm sinh trắc được chia thành 2 loại: vật lý và hành vi Các sinh trắc vật lý thường liên quan đến khuôn mặt, dấu vân tay, giọng nói… Các sinh trắc hành vi thường đề cập đến các hành vi con người: chữ kí, dáng đi… Các phương thức sinh trắc:
Khuôn m ặt: Những hình ảnh tĩnh hoặc động của khuôn mặt được dùng để
nhận dạng Những cách tiếp cận ngày nay dựa trên vị trí, hình dạng và những mối quan hệ giữa các đặc điểm trên khuôn mặt như mắt, mũi, môi
và cằm… Tuy nhiên, quá trình nhận dạng dựa trên khuôn mặt cũng gặp thử thách vì khuôn mặt sẽ thay đổi theo thời gian
D ấu vân tay: Mô hình của thung lũng và đồi núi trên bề mặt đầu ngón tay,
đã được sử dụng trong các lĩnh vực pháp lý từ hơn một thế kỉ Dấu vân tay được hình thành trong quá trình phát triển bào thai, và ngay cả những cặp sinh đôi đồng nhất cũng không có cùng dấu vân tay Hệ thống nhận dạng
có thể nhận dạng một dấu vân tay hoặc nhiều dấu vân tay Hiệu suất hệ thống sinh trắc sử dụng dấu vân tay thường cao và chính xác
Bàn tay: Đề cập đến hình dạng bàn tay, kích thước lòng bàn tay, và chiều dài và chiều rộng các ngón tay Ưu điểm của phương thức này là tương đối đơn giản và dễ sử dụng Tuy nhiên, vì sự khác nhau không rõ ràng hình dạng bàn tay trong phạm vi ứng dụng lớn, nên những hệ thống dùng phương thức bàn tay thường dùng để xác minh (verification) hơn là nhận
Trang 15dạng (identification) Ngoài ra, vì thiết bị lấy dữ liệu phải có kích thước tối thiểu là kích thước bàn tay, quá lớn so với các thiết bị như laptop
Ch ỉ tay (Palm Print): Chỉ tay kết hợp các đặc trưng của dấu vân tay và bàn
tay Chỉ tay chứa các vết lằn và rãnh giống dấu vân tay nhưng lớn hơn Nó cũng như dấu vân tay thường được sử dụng trong các hệ thống nhận dạng pháp lý
Tròng m ắt (Iris): là màng mỏng có màu hình tròn bao bọc con ngươi đủ
phức tạp để có ích trong việc nhận dạng Hiệu suất hệ thống sử dụng phương thức này đầy triển vọng Tuy nhiên, mặc dù hệ thống dựa trên tròng mắt rất tốt nhưng FMR, FNMR lại cao Hơn nữa, tròng mắt thay đổi theo thời gian, nhưng sự thay đổi này chưa được nghiên cứu nhiều
Gi ọng nói: Giọng nói kết hợp trực tiếp các đặc tính sinh trắc và hành vi
Âm thanh con người nói dựa trên nhiều yếu tố vật lý của cơ thể (miệng, mũi, môi, thanh quản…) và bị tác động bởi tuổi tác, cảm xúc, ngôn ngữ và tình trạng sức khỏe Chất lượng của thiết bị ghi âm và tiếng ồn cũng tác động đến hiệu suất
Ch ữ kí: Chữ kí con người thay đổi theo thời gian Nó bị tác động mạnh bởi
các yếu tố bên ngoài bao gồm tình trạng sức khỏe, và cảm xúc của người
kí Ngoài ra, chữ kí cũng tương đối dễ giả mạo Tuy nhiên, chữ kí đã được chấp nhận như một phương thức nhận dạng trong một thời gian dài
Dáng đi: Dáng đi cũng là một phương thức nhận dạng Các hệ thống nhận
dạng dáng đi dựa trên quá trình xử lý hình ảnh để phát hiện hình bóng người dùng và các thuộc tính thời gian không gian liên quan Dáng đi bị tác động bởi nhiều yếu tố, bao gồm sự lựa chọn giày dép, bề mặt đi, quần áo Các hệ thống nhận dạng dáng đi vẫn còn đang trong quá trình phát triển
Hệ thống sinh trắc học là hệ thống xác thực người dùng sử dụng các đặc điểm sinh trắc Việc lựa chọn sinh trắc học nào để định danh người dùng phụ thuộc vào các yếu tố sau đây:
Tính phổ thông (Universality): mỗi người dùng hệ thống đều phải sở hữu đặc điểm sinh trắc cụ thể
Tính duy nhất (Uniqueness): các đặc điểm sinh trắc phải khác nhau và duy nhất
Trang 16 Tính bền vững (Permanence): liên quan đến cách thức mà một đặc điểm sinh trắc biến đổi theo thời giản Cụ thể hơn, một đặc điểm sinh trắc bền
vững tốt phải bất biến theo thời gian đối với các thuật toán so sánh cụ thể
Sự đo lường (Measurability): Các đặc điểm sinh trắc có thể thu được và số hóa bằng cách sử dụng các thiết bị thích hợp mà không gây bất tiện cho người dùng
Hiệu suất (Performance): liên quan đến sự chính xác, tốc độ và mạnh mẽ của công nghệ được sử dụng
Sự chấp nhận (Acceptability): đề cập đến việc người dùng có chấp nhận công nghệ này và sẵn sàng cho đặc điểm sinh trắc của họ cho hệ thống
Sự giả mạo (Circumvention): các đặc điểm sinh trắc phải đủ khó để có thể giả mạo
Tuy nhiên, các hệ thống sinh trắc không nhất thiết phải tương tác với tất cả mọi người trong thời gian dài, chúng chỉ cần tương tác với một nhóm người nhỏ trong thời gian ngắn Do đó có thể tìm được các đặc điểm sinh trắc đủ ổn định và phân biệt để sử dụng trong thực tế
1.1.2 Sự cần thiết của sinh trắc học
Ngày nay, thiết bị di động đã trở thành vật không thể thiếu trong cuộc sống hằng ngày của mỗi người và dần thay thế các thiết bị truyền thống như máy tính
cá nhân Theo đó, thiết bị di động sẽ chứa đựng một lượng ngày càng nhiều dữ liệu cá nhân của người dùng Vì vậy, nhu cầu bảo mật trên những dữ liệu này trở nên quan trọng
Nắm bắt được nhu cầu đó, nhiều phần mềm đã được xây dựng trên thiết bị
di động để mã hóa dữ liệu của người dùng Phần lớn những phần mềm này đều
sử dụng cách tiếp cận truyền thống là sử dụng một mật khẩu kết hợp với các phương pháp mã hóa để mã hóa dữ liệu Với cách tiếp cận này, người sử dụng phải ghi nhớ mật khẩu của mình trong đầu hoặc ghi vào một nơi nào đó Nếu mật khẩu quá dài thì sẽ khó cho người sử dụng có thể nhớ Ngược lại, nếu mật khẩu quá ngắn thì phần mềm dễ bị crack Mặc khác, với cách tiếp cận sử dụng mật khẩu này, dữ liệu dùng để xác thực phải được lưu vào một chỗ đó trên thiết bị và
Trang 17nếu hacker có thể lấy được dữ liệu này thì việc mã hóa giải mã dữ liệu người dùng trở nên dễ dàng
Có hai vấn đề cần phải giải quyết ở đây là làm sao người sử dụng không cần phải nhớ mật khẩu của mình nữa và dữ liệu xác thực dù có bị hacker đánh cắp cũng không thể nào sử dụng được Với yêu cầu đó, các hệ thống sinh trắc học đã ra đời để giải quyết vấn đề trên Để truy cập vào hệ thống, người dùng phải dùng thông tin sinh trắc của mình để xác thực thay vì nhập mật khẩu Do đó, người dùng không còn phải nhớ và sợ người khác biết mật khẩu của mình Thông tin sinh trắc này không những được dùng để xác thực mà còn mã hóa dữ liệu Ngoài ra, hệ thống chỉ lưu giữ các thông tin công khai (public data) được dùng để trong quá trình xác thực người dùng Nếu hacker có thể đánh cắp được thiết bị thì cũng không thể khai thác được thông tin gì từ thông tin này Do đó không thể giải mã được những thông tin mật đã được mã hóa của người dùng
1.2 Mục tiêu đề tài
Trong phần này đề tài sẽ nêu ra nhiệm vụ cơ bản cụ thể, phạm vi của đề
tài-đó là những gì phải làm và những gì không thuộc phạm vi của đề tài
1.2.1 Nhiệm vụ
Luận văn này trình bày cho người đọc những kiến thức cơ bản và chuyên sâu
về quá trình xác thực và mã hóa bằng các thông tin sinh trắc, xây dựng một bức tranh tổng quát về hệ thống có áp dụng sinh trắc học trên thiết bị di động
Thứ nhất: đề tài sẽ tập trung xây dựng một hệ thống xác thực và mã hóa dữ
liệu tổng quát, mô tả đầy đủ các thành phần của hệ thống Đề tài sử dụng giọng nói làm phương thức sinh trắc để xác thực và mã hóa dữ liệu vì hầu hết thiết bị di động ngày nay đều có thiết bị thu nhận giọng nói Ngoài ra, dùng giọng nói thuận tiện cho người sử dụng hơn các phương thức sinh trắc khác
Thứ hai: xây dựng hệ thống trên thiết bị di động có hệ điều hành Android Vì
các điện thoại thông minh (smartphones) sử dụng hệ điều hành Android hiện nay chiếm tỉ lệ rất cao Ngoài ra, hệ điều hành Android là hệ điều hành mã nguồn mở,
ta có thể cài đặt hệ thống lên thiết bị một cách dễ dàng
Trang 18Những lý thuyết phải tìm hiểu qua:
Những kỹ thuật để rút trích ra vector đặc trưng
Kỹ thuật sửa lỗi
Mã hóa - mã hóa đối xứng, bất đối xứng, các giải thuật mã hóa
Kỹ thuật băm (hash) - dùng để tạo khóa
Hệ điều hành android
1.2.2 Những vấn đề không thuộc phạm vi đề tài
Hiện tại, phạm vi nghiên cứu của đề tài phần lớn tập trung vào việc xây dựng một hệ thống xác thực và mã hóa dữ liệu và tạo ra một ứng dụng có hệ thống sinh trắc này trên thiết bị di động Đề tài sẽ không quá tập trung vào các vấn đề nghiệp vụ của hệ thống cũng như xây dựng một ứng dụng thật sự hoàn chỉnh vì đây là quá trình rất lâu dài cần nhiều kỹ thuật và kinh nghiệm tốt trong việc thiết
kế và lập trình di động
Hơn nữa, cái mà đề tài muốn nhấn mạnh đó là vấn đề xác thực và mã hóa dữ liệu chứ không phải là vấn đề làm sao để có một ứng dụng di động hoàn chỉnh vì điều này nằm ở một khía cạnh khác
1.2.3 Phương pháp thực hiện
Dựa vào thông tin từ những bài báo cáo nghiên cứu khoa học, những eBooks, những website đáng tin cậy, chúng tôi tìm hiểu, phân tích và lựa chọn giọng nói làm phương thức sinh trắc cho hệ thống Tất cả những thông tin sử dụng đều là những thông tin hợp pháp, được phép sử dụng cho mục đích học tập và nghiên cứu
Dựa vào những công nghệ có sẵn như Java, hệ điều hành Android, các kỹ thuật sửa lỗi, các kỹ thuật mã hóa(đối xứng, bất đối xứng) để xây dựng một ứng dụng xác thực và mã hóa dữ liệu trên thiết bị di động Android
Trang 191.3 Bố cục luận văn
1.3.1 Chương 1: Giới thiệu đề tài
Giới thiệu về đề tài, tóm tắt mục tiêu, nhiệm vụ, phương pháp thực hiện của đề tài Chương giới thiệu một cách tổng quát về sinh trắc học và các phương thức sinh trắc
1.3.2 Chương 2: Cơ sở lý thuyết
Chương này trình bày cơ sở lý thuyết về vấn đề xác thực và mã hóa dữ liệu bằng giọng nói Các kỹ thuật rút trích thông tin từ giọng nói, tổng quan về mã hóa, và các kỹ thuật sửa lỗi Các lý thuyết này được áp dụng vào quá trình hiện thực chương trình của đề tài
1.3.3 Chương 3: Các nghiên cứu liên quan
Vấn đề sinh trắc học đã được nghiên cứu từ lâu Các nhà khoa học đã nghiên cứu và ứng dụng nhiều loại phương thức sinh trắc vào các hệ thống sinh trắc này Chương này trình bày một số nghiên cứu liên quan đến vấn đề xác thực và
mã hóa dữ liệu bằng các đặc điểm sinh trắc
1.3.4 Chương 4: Phân tích và thiết kế hệ thống
Trình bày cụ thể về việc hiện thực chương trình Bao gồm các sơ đồ phân tích chức năng hệ thống, các thành phần trong chương trình, giải thích về cách thức hoạt động của các thành phần
1.3.5 Chương 5: Tổng kết đánh giá
Trình bày phương pháp thực nghiệm và kết quả thực nghiệm Một số đánh giá
về kết quả thực nghiệm Phân tích ưu nhược điểm của chương trình Một số kết luận và hướng mở rộng của đề tài
Trang 20Chương 2: CƠ SỞ LÝ THUYẾT
Ở chương này, chúng tôi tập trung vào các kỹ thuật được dùng để hiện thực
đề tài luận văn - hệ thống xác thực và mã hóa dữ liệu trên thiết bị di động sử dụng giọng nói Nội dung được trích dẫn và sàng lọc từ các tài liệu [2] [3]
2.1 Rút trích vector đặc trưng từ giọng nói
Giọng nói từ lâu đã là phương tiện giúp mọi người có thể giao tiếp, trao đổi thông tin với nhau Ở khía cạnh loài người, giọng nói có thể giúp người nghe xác định chính xác người đang nói là ai, hoặc ít nhất là phân biệt người đó là nam hay nữ bằng cách ghi nhận lại những đặc trưng của giọng nói kết hợp với khả năng phán đoán suy luận Còn trong hệ thống máy tính, việc phân biệt người này
với người khác bằng giọng nói chỉ đơn giản là thu lại tín hiệu giọng nói sau đó biến đổi nó dựa vào một trong những đặc trưng vốn có của giọng nói như miền tần số, miền năng lượng, đặc trưng các hệ số cepstral tần số Mel (MFCC), đặc trưng mã dự đoán tuyến tính (LPC) …
Tương ứng với mỗi đặc trưng của giọng nói ta thu được một vector đặc trưng Vector đặc trưng này giúp giảm số lượng dữ liệu của giọng nói, giúp việc tính toán trong hệ thống giảm đi đáng kể Bên cạnh đó, việt rút trích đặc trưng còn làm rõ sự khác biệt của tiếng nói người này so với người khác và làm mờ đi
sự khác biệt của hai lần nói khác nhau của cùng một người Trong giới hạn của luận văn không đi sâu vào việc phân tích chi tiết từng đặc trưng sinh trắc của giọng nói mà chỉ xin đưa ra các kỹ thuật cơ bản để rút trích ra được các vector đặc trưng cùng với những kỹ thuật tiền xử lý tín hiệu giọng nói Những kỹ thuật này sẽ được giới thiệu theo trình tự từ lúc thu mẫu tín hiệu giọng nói cho đến lúc rút trích được một vector đặc trưng
2.1.1 Lấy mẫu giọng nói
Mục đích của bước này là làm sao chuyển giọng nói của người sử dụng thành một dạng thông tin mà máy tính có thể xử lý Chất lượng của giọng nói thu lại có
Trang 21ảnh hưởng rất lớn đến kết quả phân tích giọng nói sau này Những yếu tố ảnh hưởng đến chất lượng của mẫu giọng nói thu được bao gồm:
2.1.1.1 Nhân tố bên ngoài
Môi trường xung quanh khu vực thu giọng nói có ảnh hưởng lớn đến chất lượng của tín hiệu giọng nói Thường khi giọng nói được thu, nó lẫn vào trong đó
âm thanh nền của những vật xung quanh Việc loại bỏ chúng ra khỏi âm thanh gốc sẽ giúp chất lượng âm thanh được tốt hơn
Chất lượng của thiết bị thu nhận âm cũng là một yếu tố góp phần tăng chất lượng của mẫu tín hiệu giọng nói Một số thiết bị cao cấp còn chức năng giúp lọc bớt những tín hiệu được cho là âm thanh nền, gây nhiễu
Trạng thái, thái độ hợp tác của người nói lúc đó cũng ảnh hưởng đến chất lượng giọng nói thu được Giọng nói lúc người nói ở trạng thái bình thường với trạng thái lúc không bình thường (ốm, viêm họng…) sẽ có những khác biệt nhất định Mặc khác khi người nói vẫn trong trạng thái bình thường nhưng lại cố tình làm cho giọng nói gốc của mình khác đi bằng cách giả giọng thì mẫu tín hiệu giọng nói thu được cũng bị ảnh hưởng rất nhiều
Việc xác định những nhân tố bên ngoài gây ảnh hưởng giúp ta có thể đưa ra những điều kiện ban đầu cho người nói, về môi trường và về thiết bị để có thể thu được mẫu tín hiệu tốt hơn
2.1.1.2 Nhân tố bên trong
Tín hiệu giọng nói là một dạng của tín hiệu âm thanh và khi muốn lưu vào thiết bị lưu trữ để lưu trữ thì cũng phải theo một chuẩn mã hóa nào đó để khi các
chương trình đọc dữ liệu lên có thể hiểu Những chuẩn mã hóa này gọi là Định
dạng của âm thanh (Audio Format) Đơn giản nhất là chuẩn mã hóa PCM dùng
cho WAV file Trong kỹ thuật này, tín hiệu giọng nói thu được sẽ được biểu diễn như một chuỗi của những giá trị cường độ (amplitude) Phạm vi của giá trị biên phụ thuộc vào thông số kích thước mẫu (sample size) Với kích thước mẫu là 16-bit, thì phạm vi của giá trị cường độ nằm trong khoảng từ 0 – 216
(65536) Khi
sử dụng chuẩn mã hóa PCM-signed thì phạm vi này sẽ nằm trong khoảng từ -215
(32768) đến 215 (32768) Với kích thước mẫu này giá trị cường độ sẽ được biểu
Trang 22diễn ở một khoảng rộng hơn so với khi chọn kích thước mẫu là 8-bit ( giá trị cường độ chỉ nằm trong khoảng từ [-128, 128] ) Vì vậy kích thước mẫu 16-bit được chọn để thu được mẫu giọng nói có chất lượng tốt hơn
Tần số lấy mẫu (sample rate) của một file âm thanh nói đến số giá trị
cường độ thu được trong một đơn vị thời gian (thường là giây) Theo lý thuyết Nyquist, tần số lấy mẫu phải ít nhất gấp hai lần tần số tối đa của tín hiệu tuần tự, Ngược lại, tín hiệu tuần tự sẽ không tạo ra được tín hiệu số một cách chính xác Một ví dụ đơn giản là nếu tần số mẫu được chọn là 8000Hz, thì tần số của tín hiệu tuần tự của mỗi mẫu bị giới hạn có 4000Hz Với giọng nói bình thường của con người có tần số từ 300 Hz đến 3400 Hz thì tần số lấy mẫu 8000 Hz có thể chấp nhận được
Số kênh âm thanh (number of channel) cũng là một thành phần trong việc
thu lại mẫu tín hiệu giọng nói và không ảnh hưởng đến đầu vào của tín hiệu giọng nói Nó chỉ ảnh hưởng đến đầu ra của tín hiệu giọng nói Một số loại kênh
cơ bản thường gặp là mono (tín hiệu âm thanh như nhau giữa các nguồn phát) hay stereo (tín hiệu âm thanh khác nhau giữa các nguồn phát) Để đơn giản trong việc xử lý tín hiệu giọng nói thì kênh mono được sử dụng Hình sau mô tả biểu diễn của tín hiệu giọng nói theo thời gian
Hình 2.1-1 Biểu diễn tín hiệu giọng nói theo thời gian
Trang 232.1.2 Tiền xử lý mẫu giọng nói
Chất lượng của tín hiệu giọng nói thu được có thể được cải thiện thông qua các giải thuật tiền xử lý Một số kỹ thuật là yêu cầu bắt buộc trước khi tiến hành rút trích thông tin sinh trắc như chuẩn hóa (normalization), khử nhiễu (remove noise), khử khoảng lặng (remove silence) Cũng có những kỹ thuật chỉ được áp dụng cho từng giải thuật rút trích đặc thù tùy thuộc vào giải thuật đó dựa trên đặc điểm sinh trắc nào của giọng nói
2.1.2.1 Chuẩn hóa (Normalization)
Không phải tất cả các mẫu giọng nói đều được thu ở cùng một trạng thái Ví
dụ một người lúc nói lớn, nói nhỏ, thiết bị thu âm lúc đặt gần lúc đặt xa Điều này làm cho cường độ giọng nói thu được có giá trị nằm trong một khoảng không đồng nhất với nhau Vì vậy, việc chuẩn hóa dữ liệu cho mẫu giọng nói để đảm bảo rằng các đặc trưng có thể so sánh được với nhau là hết sức quan trọng Khi
dữ liệu âm thanh được chuyển sang hết các giá trị dấu chấm động nằm trong khoản từ -1 đến 1 Việc chuẩn hóa được tiến hành bằng cách tìm cường độ âm lớn nhất trong mẫu tín hiệu giọng nói rồi sau đó lấy tỉ lệ những cường độ âm khác trong mẫu tín hiệu giọng nói với cường độ âm này Việc này sẽ đảm bảo rằng mỗi mẫu tín hiệu sẽ thật sự bao phủ toàn bộ khoảng từ -1 đến 1 Hình sau
mô tả dữ liệu trước và sau khi chuẩn hóa
Hình 2.1-2 Mẫu tín hiệu giọng nói sau khi được chuẩn hóa
Trang 242.1.2.2 Khử khoảng lặng (Remove silence)
Khoảng lặng là những khoảng trong mẫu tín hiệu giọng nói mà người nói không nói gì Nó không có ý nghĩa trong rút trích vector đặc trưng giọng nói, đôi khi lại kèm theo nhiễu nên việc loại bỏ nó khỏi mẫu tín hiệu giọng nói là việc cần thiết Thường cường độ của khoảng lặng của khoảng lặng rất thấp (xấp xỉ 0) nên cách để loại bỏ nó ra khỏi mẫu tín hiệu là loại đi những phần tử tín hiệu có cường
độ nhỏ hơn một ngưỡng cường độ nào đó cho trước (ngưỡng này xấp xỉ 0) Phần còn lại được xem là phần âm thanh do người nói phát ra và có thể đưa vào một số giải thuật tiền xử lý khác cho ra kết quả cuối cùng tốt hơn
Hình 2.1-3 Mẫu tín hiệu giọng nói trước và sau khi khử khoảng lặng
2.1.2.3 Khử nhiễu (Remove noise)
Lẫn trong mẫu tín hiệu giọng nói cũng chứa đựng các tín hiệu không mong muốn khác chẳng hạn như tiếng nói của những người xung quanh, của xe cộ chạy ngoài đường Các tín hiệu này làm giảm đáng kể chất lượng của tín hiệu
Có nhiều phương pháp để loại bỏ nhiễu khỏi mẫu tín hiệu dựa vào một số đặc trưng nhất định Trong số đó là kỹ thuật sử dụng một bộ lọc tín hiệu dựa vào tần
số thấp (FFT Low – Pass Filter) Công việc của bộ lọc này là biến đổi mẫu tín hiệu giọng nói từ miền thời gian sang miền tần số rồi sau đó đơn giản loại bỏ những giá trị tần số lớn hơn một ngưỡng nào đó cho trước Giọng nói bình thường của con người chỉ quanh quẩn quanh khoảng tần số từ 300Hz đến
Trang 253400Hz nên những âm thanh thu được ở khoảng tần số trên 3400 sẽ chỉ là những tín hiệu nhiễu thu được cần phải được loại bỏ
Hình 2.1-4 Mẫu tín hiệu giọng nói theo miền tần số sau khi lọc lấy tần số thấp
2.1.2.4 Giải thuật dò tìm điểm cuối (End-point detection)
Dò tìm điểm cuối là một kỹ thuật cố gắng tìm ra chính xác khi nào người ta bắt đầu và kết thúc nói Nó còn được dùng để xác định khi mà người ta không thật
sự nói gì hoặc nói những điều không mong đợi Khi đó, dò tìm điểm cuối giúp giảm một số lượng dữ liệu cần phải xử lý, dẫn đến giảm tải việc tính toán Tuy nhiên, việc dò tìm điểm cuối không dễ như người ta tưởng, bởi vì có sự tồn tại của tiếng ồn nền, tiếng nói nền Việc xác định điểm cuối dựa vào giá trị cường độ của dữ liệu thu được Có bốn trường hợp được xem là điểm cuối:
Điểm đầu hoặc điểm cuối của mẫu tín hiệu giọng nói
Những điểm có cường độ cao hơn những điểm còn lại xung quanh nó (max local)
Những điểm có cường độ thấp hơn những điểm còn lại xung quanh nó (min local)
Những điểm có cường độ bằng những điểm xung quanh nó
Trang 26Kỹ thuật dò tìm điểm cuối được thực hiện sau khi mẫu tín hiệu giọng nói đã được xử lý để khử nhiễu và khoảng lặng Nó được áp dụng cho các giải thuật rút trích vector đặc trưng dựa vào miền cường độ của giọng nói
2.1.3 Rút trích vector đặc trưng từ mẫu tín hiệu giọng nói
Giọng nói với những đặc trưng khác nhau, sau khi thông qua những bộ rút trích khác nhau sẽ cho ra vector có kích thước và miền trị khác nhau Dưới đây là hai giải thuật để rút trích ra vector đặc trưng mà nhóm đã tìm hiểu được cùng với những kỹ thuật phải làm trước khi rút trích
Hình 2.1-5 Mô hình rút trích ra vector đặc trưng
Trang 272.1.3.1 Phân khung (framing)
Trong nhiều kỹ thuật sử lý tín hiệu số (DSP techniques) thì việc xử lý được thực hiện trên một khoảng các giá trị của mẫu giọng nói hơn là cho từng giá trị riêng lẽ Kỹ thuật cắt mẫu giọng nói thành những mẫu nhỏ hơn được gọi là quá trình phân khung Điều này giúp giảm bớt chi phí tính toán cho chương trình Độ rộng của khung và cách lấy khung cũng ảnh hưởng đến ảnh hưởng đến đầu ra của vector đặc trưng Hình dưới mô tả cách phân chia các khung thành F1, F2, F3, F4…những khung này chồng lấp lên nhau một khoảng bằng 1/3 độ rộng của khung Điều này làm cho kết quả phép rút trích đặc trưng có tương quan từ khung này sang khung kia
Hình 2.1-6 Phân khung
2.1.3.2 Cửa sổ Hamming
Sau khi phân khung, từng khung giá trị sẽ được đem đi lấy cửa sổ Kỹ thuật này là một phương pháp điều chỉnh dữ liệu để dữ liệu trở nên thích hợp hơn nhiều cho xử lý tín hiệu Với một cửa sổ bình thường, những phần tử kề nhau sẽ
có xu hướng thay đổi đột ngột từ nới có biên độ cao đến nơi có biên độ thấp Việc lấy cửa sổ như vậy sẽ làm cho dữ liệu giống như tuần hoàn và không có sự gián đoạn đột ngột Trong sử lý tín hiệu số, các cửa sổ thường được biểu diễn thông qua cửa sổ Hamming tổng quát:
Trang 28{
( ) | | | |
Tùy vào các giá trị khác nhau của α mà ta có các cửa sổ khác nhau Với α = 1,
ta có cửa sổ chữ nhật, α = 0.5 ta có cửa sổ hanning và với α = 0.54 ta có cửa sổ hamming và cũng là loại cửa sổ được dùng nhiều trong sử lý tín hiệu số
Hình 2.1-7 Cửa sổ Hamming
Hình 2.1-8 Cửa sổ Hanning
Hình 2.1-9 Cửa sổ chữ nhật
2.1.3.3 Giải thuật biến đổi Fourier nhanh (Fast Fourier Transform – FFT)
Giọng nói của con người có thể đặc trưng bằng miền tần số Tuy nhiên, mẫu tín hiệu giọng nói thu được lại được đặc trưng theo miền thời gian Do đó nếu
Trang 29muốn rút trích được vector đặc trưng theo miền tần số cần phải có một phương pháp để chuyển mẫu tín hiệu giọng nói từ miền thời gian sang miền tần số, và phép biến đổi Fourier rời rạc (DFT) để làm được điều đó DFT là phép biến đổi thuận nghịch từ miền thời gian sang miền tần số và ngược lại Công thức:
Phép biến đổi thuận:
Kỹ thuật biến đổi này cũng phân chia mẫu dữ liệu giọng nói thành các khung rồi sau đó áp dụng cửa sổ hamming Tương ứng với mỗi cửa sổ ta thu được đặc trưng miền tần số của nó Nếu kết hợp tất cả window của giọng nói bằng cách lấy trung bình giữa chúng, ta có thể lấy được đặc trưng tần số trung bình cho mẫu từ người nói
2.1.3.4 Giải thuật mã dự đoán tuyến tính LPC (Linear Predictive Code)
Đây là một trong các phương pháp phân tích tín hiệu tiếng nói mạnh nhất và được sử dụng phổ biến Điểm quan trọng của phương pháp này nằm ở khả năng
có thể cung cấp các ước lượng chính xác của các tham số tín hiệu giọng nói và khả năng thực hiện tính toán tương đối nhanh Ý tưởng cơ bản của phương pháp LPC là tại thời điểm n, mẫu tiếng nói S(n) có thể được xấp xỉ bởi một tổ hợp tuyến tính của p mẫu trước đó Công thức:
Với ∑ là giá trị dự báo của S(n) Giả sử ak là hằng số trên khung dữ liệu được xem xét Tập các hệ số ak sẽ là đặc trưng của tín hiệu
Trang 30tiếng nói Để tìm được tập các hệ số này người ta dùng phương pháp phân tích
tự tương quan (autocorrelation) như sau:
Mỗi khung sau khi lấy cửa sổ sẽ được đưa qua bước phân tích tự tương quan và cho ra (p + 1) hệ số tự tương quan Công thức:
∑
Trong đó giá trị tự tương quan cao nhất, p, được gọi là cấp của phân tích LPC Thông thường, ta sử dụng các giá trị p trong khoảng từ 8 đến
16
Chuyển mỗi khung gồm (p + 1) hệ số tự tương quan thành p hệ số LPC bằng thuật toán Levinson – Durbin Lúc này, ta có thể dùng các hệ số LPC làm vector đặc trưng cho từng khung
2.2 Kỹ thuật sửa lỗi
Trong quá trình truyền dữ liệu qua các kênh giao tiếp, các tín hiệu nhiễu sẽ làm dữ liệu được truyền bị hư hoặc bị mất đi Trong cả hai trường hợp, ta cần phải xử lý để phục hồi dữ liệu trở về trạng thái đúng ban đầu Từ đó các phương pháp sửa lỗi ra đời
2.2.1 Kỹ thuật lặp (repetition)
Đây là phương pháp đơn giản nhất Với mỗi bit ta lặp n lần và sau đó quyết
định giá trị bit đúng dựa trên số đông Ví dụ, với n = 3 dữ liệu là 101 sẽ được
truyền đi là 111000111 Để phương pháp này có hiệu quả, dữ liệu phải được lặp
ít nhất 3 lần
Nếu số lỗi < trong mỗi nhóm thì dữ liệu sẽ được giải mã chính xác Số lượng lặp cho mỗi bit tăng bao nhiêu thì xác suất không giải được giảm bấy nhiêu Nhưng kỹ thuật này lại làm tăng lượng dữ liệu cần truyền đi
Đây là phương pháp đơn giản của kỹ thuật sửa lỗi Nó chỉ làm việc hiệu quả khi không có sự giới hạn băng thông và quan trọng là dữ liệu có thể khôi phục
Trang 31được Nếu người dùng cần mã hóa dữ liệu để bảo mật, việc biết thông tin được lặp lại làm cho việc bẻ khóa dễ dàng hơn
2.2.2 Kỹ thuật kiểm tra chẵn lẻ
Một kỹ thuật khác là bit kiểm tra chẵn lẻ Bit kiểm tra chẵn lẻ xác định một tập bit là chẵn hay lẻ Thông thường, bit chẵn lẻ sẽ làm số lượng bit 1 là chẵn Ví dụ, nếu tao truyền chuỗi 001, ta sẽ nối vào cuối chuỗi bit kiểm tra chẵn lẻ sao cho số bit 1 là chẵn, do đó chuỗi bit mới sẽ là 0011
Vì vậy khi có 1 bit bị sai, ta sẽ biết được chuỗi đó bị thay đổi Tuy nhiên, kỹ thuật này không xác định được bit nào bị sai Hoặc nếu có 2 bit bị sai, kỹ thuật này không thể xác định được dữ liệu này là đúng hay sai Do đó, với 1 bit kiểm tra chẵn lẻ không thể kiểm tra thỏa đáng sự chính xác của dữ liệu và không thể sửa chữa dữ liệu được Vì vậy, những phương pháp phức tạp hơn với nhiều bit chẵn lẻ ra đời để khắc phục nhược điểm này
2.2.3 Mã Hamming
Năm 1950, R.W.Hamming đã tạo ra mã Hamming và những cải tiến của mã Hamming vẫn được sử dụng cho đến ngày nay Mã Hamming truyền m bit thông tin cùng với k bit chẵn lẻ Chúng có khả năng sửa được 1 bit lỗi bất kì Các bit chẵn lẻ được xếp vào các vị trí 1,2,…,2k-1 và kiểm tra các bit mà vị trí của chúng
ở dạng nhị phân có giá trị 1 tại vị trí ki - 1 Ví dụ, bit chẵn lẻ ở vị trí K3 = 4 sẽ kiểm tra các bit có vị trí là 100, 101, 110, 111, 1100, 1101,… = 4,5,6,7,12,13,…
Giả sử rằng chuỗi dữ liệu là 100110.Ta sẽ thêm vào chuỗi các bit chẵn lẻ tại các vị trí như sau k1 k 2 1k 3 001k 410
Bảng 2.2-1 Chuỗi dữ liệu sau khi được thêm vào các bit chẵn lẻ
Trang 322.2.4 Mã sửa lỗi Reed Solomon
Năm 1960, Irving Reed và Gus Solomon đã tạo ra một loại mã sửa lỗi - mã Reed
GF(p) có p phần tử Ta có thể mở rộng GF (p) thành p m phần tử, được gọi là
trường mở rộng của GF(p), kí hiệu là GF(p m) với m là số nguyên dương Chú ý
Trang 33rằng GF(pm) chứa tập con của GF(p) Các kí hiệu (symbol) trong trường GF(2m
) được sử dụng trong việc xây dựng mã Reed-Solomon (R-S)
Trường nhị phân GF(2) là tập con của trường mở rộng GF(2m) Ngoài các số 0
và 1, còn có các phần tử duy nhất trong trường mở rộng GF(2m) được biểu diễn bằng kí hiệu α Mỗi phần tử khác 0 trong GF(2m) được biểu diễn bằng lũy thừa của α Một tập F vô hạn được cấu thành bằng việc bắt đầu với các phần tử {0, 1,
α }, các phần tử tiếp theo được tạo ra bằng cách nhân phần tử cuối với α Kết quả là:
Trang 34Mỗi phần tử trong trường hữu hạn GF(2m) có thể được biểu diễn bằng một đa thức riêng biệt có bậc m -1 hoặc nhỏ hơn Ta kí hiệu phần tử khác 0 trong GF(2m) là một đa thức ai (X), trong đó có tối thiểu một hệ số m khác 0 Với i = 0,
1, 2, …,2m
- 2
αi
= ai (X) = a i,0 + ai,1 X + a i,2X2 + … + ai,m-1Xm-1 (2.6)
Trường hợp m = 3, trường hữu hạn sẽ là GF(23) Hình 2.2-1 thể hiện việc ánh
xạ 7 phần tử { αi } và phần tử 0 theo các phần tử cơ sở {X0
, X1, X2} như phương trình (2.6) Phương trình (2.2) cho biết α7= α0, do đó có 7 phần tử khác 0 hoặc có tất cả 8 phần tử trong trường này Hình 2.2-1, một chuỗi giá trị nhị phân biểu diễn các hệ số ai,0, ai,1, ai,2 trong phương trình (2.6) Một trong những lợi ích của việc
sử dụng các phần tử trường mở rộng là việc thay thế các phần tử nhị phân thành các kí hiệu nhỏ gọn tạo điều kiện cho các biểu diễn toán học của quá trình mã hóa và giải mã Việc cộng hai phần tử trong trường hữu hạn được định nghĩa là tổng modul-2 của mỗi hệ số đa thức
αi+αj
= (ai,0 + aj,0) + (ai,1+ aj,1 ) X + (a i,2 + aj,2) X2 + … + (ai,m-1 + a j,m-1) Xm-1
Hình 2.2-1 Ánh xạ các phần tử cơ bản trong trường GF(8)
Trang 35Bảng 2.2-3 Thể việc các phép toán cộng và nhân trong GF(8)
Phép cộng hai phần tử bất kì trong trường hữu hạn bằng cách cộng các hệ số tương ứng trong đa thức của chúng Phép nhân của hai phần tử bằng cách cộng
số mũ của chúng modul-(2m -1), trong trường hợp này là modul-7
2.2.4.2 Mã Reed-Solomon
Khái niệm: Mã Reed-Solomon là mã vòng không nhị phân với một chuỗi
các symbol m bit, trong đó m là một số nguyên dương lớn hơn 2 Mã R-S(n,
k) v ới các symbol m bit với
n = 2 m - 1, k = 2 m -1 - 2t Trong đó k là số symbol dữ liệu hay số lượng thông tin được mã hóa, n là tổng
số symbol gồm symbol dữ liệu và symbol kiểm tra, t là khả năng sửa lỗi của mã,
và n - k = 2t là số lượng symbol kiểm tra
Dữ liệu được truyền đi là lượng thông tin đã được mã hóa Bộ mã hoá lấy k symbol dữ liệu, mỗi symbol m bit, rồi thêm vào (n-k) symbol kiểm tra để tạo thành một từ mã n symbol Sau khi nhận được, bộ mã hóa sẽ giải mã từ mã n symbol này để phục hồi lại thông tin ban đầu
Một mã R-S(n, k) có khả năng sửa lỗi tối đa ⌊ ⌋ lỗi Ngoài sửa lỗi, mã R-S còn có khả năng sửa sai các erasure (hiện tượng mất symbol) Các thủ tục mã hoá và giải mã R-S(n,k) có thể đảm bảo sửa được tối đa (n-k) erasure Một cách tổng quát, một mã RS(n,k) có khả năng sửa được e lỗi và r erasure với điều kiện:
2e+r< (n– k)
Trang 362t = n - k = 4 nghiệm, được biểu diễn như sau:
Theo thứ tự từ thấp lên cao và thay dấu "-" thành dấu "+", vì trong trường nhị
phân +1 = -1, g(X) được biểu diễn lại như sau:
Trang 37= + = 0
U( ) = + + + + + + = + + + + + + = + + +
= + = 0
U( ) = + + + + + + = + + + + + +
= + + + = + = 0
U( ) = + + + + + + = + + + + + +
= + + + = + = 0
Trang 38 Quá trình giải mã
Một thông điệp được mã hóa bằng cách sử dụng mã R-S (7, 3) để tạo ra từ
mã được biểu diễn bởi (2.7) Giả sử trong quá trình truyền dữ liệu, từ mã bị làm
hư sao cho 2 symbol nhận được bị lỗi ( đây là số lỗi tương ứng khả năng sửa lỗi tối đa của mã) Với từ mã 7-symbol, một đa thức lỗi được biểu diễn như sau:
Đa thức từ bị lỗi nhận được r(X) được biểu diễn bằng tổng của đa thức từ
được truyền đi và đa thức lỗi như sau:
mà còn phải xác định các giá trị đúng tại những vị trí đó Vì có 4 ẩn số trong ví dụ này, do đó cần 4 phương trình để tìm ra 4 ẩn số này
Tính Syndrome
Syndrome S là kết quả của việc kiểm tra r(X) để xác định r(X) có phải là từ mã hợp lệ hay không Nếu đúng, syndrome phải bằng 0 Nếu tồn tại một giá trị của S khác 0, chứng tỏ có lỗi xuất hiện Syndrome S có n - k symbol, {Si } (i = 1, … ,n -
k) Như ta đã nói trong quá trình mã hóa
Trang 39U(X) = m(X) g(X)
Ta thấy mỗi từ mã hợp lệ U(X) chia hết cho đa thức sinh g(X) Cho nên, nghiệm của g(X) cũng là nghiệm của U(X).Vì r(X) = U(X) + e(X), nếu các nghiệm của g(X) được thế vào r(X) chỉ cho ra kết quả bằng 0 thì r(X) là từ mã hợp lệ Nếu có lỗi sẽ cho ra một hoặc nhiều kết quả khác 0.Việc tính toán một symbol syndrome được biểu diễn như sau:
|
Ví dụ, r(X) chứa 2 symbol lỗi như phương trình (2.9) Nếu r(X) là từ mã hợp lệ, mỗi symbol Si đều bằng 0 Ví dụ:
S1 = r( ) = + + + + + + = + + + + + +
=
S2 = r( ) = + + + + + + = + + + + + +
=
S3 = r( ) = + + + + + + = + + + + + +
=
S4 = r( ) = + + + + + + = + + + + + +
= Kết quả cho thấy từ mã nhận được chứa lỗi vì S≠0
Trang 40Để sửa từ mã bị lỗi, mỗi giá trị lỗi và vị trí lỗi của nó phải được xác định,
trong đó l = 1, 2, …, v Tiếp theo, ta tính n - k = 2t symbol syndrome bằng cách
thay thế αi vào đa thức nhận với i = 1, 2, …, 2t:
Ta có 2t ẩn số ( t giá trị lỗi và t vị trí lỗi tương ứng), và 2t phương trình Do đó
ta có thể tìm ra nghiệm của phương trình Bài báo cáo này không đi sâu chi tiết quá trình giải phương trình
Từ các nghiệm tìm được ta xác định được đa thức lỗi e(X) Từ đó tính được từ
mã hợp lệ Phương trình (2.9)
r(X) = U(X) + e(X)
=> U(X) = r(X) - e(X)