TÍNH CẤP THIẾT CỦA LUẬN ÁN
Sự bùng nổ của điện thoại thông minh đã thúc đẩy việc khai thác mạng di động cho các ứng dụng giá trị gia tăng như SMS và thanh toán trực tuyến Tuy nhiên, đi kèm với tiện ích là những lỗ hổng bảo mật, đe dọa thông tin thoại và dữ liệu người dùng Để bảo vệ khỏi nguy cơ nghe lén, lộ lọt thông tin và cài đặt phần mềm gián điệp, việc đảm bảo an toàn trong các giao dịch thương mại là rất cần thiết, đặc biệt trong lĩnh vực quốc phòng và an ninh Do đó, bảo mật thông tin trong mạng di động đang trở thành một chủ đề nóng.
Mặc dù mạng viễn thông di động GSM đã triển khai các biện pháp bảo mật như sinh khóa, xác thực và mã hóa với các thuật toán chuẩn (A8, A3, A5), nhưng thông tin thoại trong mạng lõi vẫn dễ bị tổn thương Trước sự gia tăng các phương thức đánh cắp tinh vi và tấn công công nghệ cao từ các đối tượng thù địch, các giải pháp bảo mật hiện tại không đủ mạnh để đảm bảo an toàn cho thông tin thoại và dữ liệu trong các giao dịch quan trọng, đặc biệt trong lĩnh vực quốc phòng và an ninh Đây chính là lý do và tính cấp thiết của Luận án này.
Nếu tất cả các hạ tầng mạng viễn thông di động được phủ sóng 3G/LTE và sử dụng mạng truyền dẫn IP, việc bảo mật thông tin thoại và dữ liệu từ đầu cuối đến đầu cuối sẽ trở nên thuận lợi và dễ dàng hơn Tuy nhiên, thực tế cho thấy nhiều vùng, đặc biệt là ở Việt Nam, vẫn chưa được phủ kín sóng 3G/LTE, dẫn đến những thách thức trong bảo mật thông tin trong các giao dịch thương mại.
Trong lĩnh vực quốc phòng và an ninh, việc triển khai mạng truyền dẫn PSTN, mạng vệ tinh, sóng ngắn, sóng cực ngắn HF/VHF/UHF vẫn đang diễn ra phổ biến Mặc dù băng thông không lớn, nhưng những mạng truyền dẫn này có tính cơ động cao, dễ dàng triển khai và lắp đặt, đồng thời đảm bảo độ bảo mật cao Do đó, nhu cầu về giải pháp và kỹ thuật kết nối liên thông, bảo mật thông tin thoại và dữ liệu trên đa môi trường truyền dẫn trở nên bức thiết, phục vụ cho mục đích quốc phòng an ninh và các giao dịch thương mại đặc biệt.
Thuật toán sinh khóa, xác thực và mã hóa hiện tại không đủ mạnh để đảm bảo an ninh cho thông tin giao dịch thương mại cũng như thông tin quốc phòng Do đó, cần nghiên cứu và phát triển các thuật toán bảo mật dữ liệu và tín hiệu thoại với độ mạnh cao, đồng thời đảm bảo tính khả thi trong việc thực thi trên các thiết bị có tài nguyên hạn chế Đây là một thách thức lớn, đòi hỏi sự cân bằng giữa độ bảo mật tối đa và yêu cầu về hiệu suất tính toán.
Mặc dù đã có nhiều nghiên cứu và sản phẩm bảo mật thông tin thoại từ các hãng lớn như Crypto AG, Motorola và GSMK CryptoPhone, nhưng hiện tại, các giải pháp chỉ dừng lại ở việc bảo vệ thông tin trên thiết bị đầu cuối và trong các kênh truyền dữ liệu như 3G/LTE Việc bảo mật thông tin thoại và dữ liệu giữa các thiết bị công nghệ khác nhau, khi truyền tải qua các mạng khác nhau, vẫn chưa được giải quyết triệt để Do đó, nghiên cứu về mã hóa dữ liệu số tín hiệu thoại trên hệ thống thiết bị đầu cuối đa dạng và truyền dẫn liên mạng vẫn là một lĩnh vực mở với nhiều cơ hội tiếp cận khác nhau Xuất phát từ những phân tích này, Nghiên cứu sinh đã quyết định chọn đề tài “Xây dựng thuật toán truyền dữ liệu qua kênh thoại của mạng GSM và ứng dụng thuật toán sinh số giả ngẫu”.
3 nhiên dựa trên các dãy phi tuyến lồng ghép để bảo mật dữ liệu” cho luận án của mình.
MỤC TIÊU, ĐỐI TƯỢNG, PHẠM VI VÀ PHƯƠNG PHÁP NGHIÊN CỨU
Mục tiêu nghiên cứu
Có 03 mục tiêu chính của luận án, đó là:
Nghiên cứu và đề xuất giải pháp hiệu quả cho việc truyền dữ liệu thoại mã hóa trên các thiết bị đầu cuối qua các kênh thoại analog trong các mạng viễn thông khác nhau Giải pháp này đảm bảo mã hóa bảo mật thông tin thoại từ thiết bị đầu cuối đến đầu cuối trong các dịch vụ thoại và dữ liệu mạng di động 2G/3G/LTE, cũng như từ mạng di động đến máy điện thoại đầu cuối PSTN Mục tiêu là duy trì chất lượng tiếng nói chấp nhận được sau khi giải mã, đồng thời đảm bảo phổ tần tín hiệu tiếng nói sau mã hóa tương tự như nhiễu trắng.
Lựa chọn và phát triển thuật toán cần đảm bảo độ tin cậy và tính khả thi trong việc thực hiện thời gian thực trên các thiết bị có tài nguyên tính toán hạn chế Đồng thời, thuật toán phải được thiết kế với độ phức tạp tính toán hợp lý để đạt được độ mật cao nhất.
Sử dụng Kit thực thi mô tả thuật toán để chứng minh độ an toàn và bảo mật của thuật toán thông qua các đặc tính như tương quan, đồng sắc xuất và phân bố nhọn của dãy giả ngẫu nhiên Thực nghiệm này bao gồm việc xử lý nén tín hiệu tiếng nói, mã hóa và điều chế để truyền dữ liệu mã hóa bảo mật qua kênh tiếng nói mạng GSM Quan trọng là quy trình này không yêu cầu thay đổi cấu hình thiết bị đầu cuối hay dịch vụ mạng viễn thông hiện tại, đảm bảo tính dịch vụ liên mạng Cuối cùng, các kết quả nghiên cứu sẽ được ghép nối và đóng gói thành sản phẩm hoàn chỉnh.
Đối tượng nghiên cứu
Đối tượngnghiên cứu của Luận án này giới hạn ở các giải pháp truyền dữ liệu số tín hiệu thoại bảo mật qua kênh truyền analog bao gồm:
Nghiên cứu tổng quan về các mạng viễn thông di động tập trung vào cơ chế đăng nhập, xác thực và bảo mật thông tin Bài viết cũng phân tích các thuật toán mã hóa tiếng nói (Vocoder) và đề xuất lựa chọn một thuật toán phù hợp nhằm nâng cao hiệu quả và an toàn trong truyền tải dữ liệu.
4 toán nén thoại để áp dụng trong các kênh truyền bang hẹp, yêu cầu độ trễ thấp, tính toán thời gian thực
Kỹ thuật xử lý tín hiệu thoại và mô hình mạng đóng vai trò quan trọng trong việc truyền dẫn tín hiệu thoại qua các mạng như GSM và liên mạng GSM/PSTN/HF/VHF Bài viết nghiên cứu các thông số kỹ thuật và đặc trưng cơ bản của các thành phần mạng, đồng thời khám phá một số phương pháp điều chế nhằm tạo ra tín hiệu có phổ tần và đặc tính gần gũi với tín hiệu tiếng nói của con người, giúp nâng cao chất lượng truyền dẫn qua kênh thoại.
(iii) Phân tích, xây dựng và sử dụng dãy tạo số tựa ngẫu nhiên phi tuyến 2 chiều theo kiểu lồng ghép để mã hóa dữ liệu:
Nghiên cứu các phương pháp sinh dãy lồng ghép và lồng ghép phi tuyến nhằm lựa chọn một phương pháp lồng ghép phi tuyến đa chiều Mục tiêu là tạo ra dãy giả ngẫu nhiên với độ dài lớn, độ phức tạp cao, hàm tương quan tốt và khả năng thực thi nhanh trên các vi xử lý có tài nguyên hạn chế.
Tổng hợp các kết quả nghiên cứu và mô phỏng, chúng tôi đã phát triển một sản phẩm bảo mật thoại hoàn chỉnh Sản phẩm này có thể được trình diễn qua các kênh Voice trên thiết bị điện thoại thông thường, cho phép kiểm chứng chất lượng âm thanh sau khi giải mã và đánh giá chất lượng mã thông qua máy phân tích phổ sau khi mã hóa.
Nghiên cứu các phương pháp nén và bộ mã tín hiệu tiếng nói là rất quan trọng, đặc biệt trong việc tối ưu hóa chất lượng truyền tải âm thanh Đồng thời, việc tìm hiểu các đặc điểm cơ bản của mạng truyền dẫn thoại, với trọng tâm là mạng PSTN và GSM, giúp nâng cao hiệu quả và độ tin cậy trong giao tiếp.
(ii) Nghiên cứu về phương pháp điều chế/giải điều chế dữ liệu;
Nghiên cứu mô hình toán học nhằm xây dựng dãy PN phi tuyến với cấu trúc lồng ghép hai chiều Đánh giá đặc tính của mã phi tuyến lồng ghép dựa trên các tiêu chí như hàm tương quan, kích thước tập hợp, khả năng ngẫu nghiên hóa, tốc độ sinh và mã hóa dữ liệu trên vi xử lý với tài nguyên hạn chế.
Phương pháp nghiên cứu được thực hiện dựa trên tài liệu và công trình nghiên cứu đã công bố, phân tích hiện trạng mạng viễn thông di động tại Việt Nam, cũng như các giải pháp bảo mật thông tin thoại hiện nay Nghiên cứu sử dụng công cụ toán học và lập trình mô phỏng lý thuyết MATLAB để phát triển bộ nén và điều chế dữ liệu ngẫu nhiên thành tín hiệu giống tiếng nói Tiếp theo, các kết quả mô phỏng trên PC được chuyển đổi sang thực thi trên chip vi xử lý DSP hoặc ARM để nén, mã hóa và điều chế tín hiệu thoại Kết quả nghiên cứu được xác thực thông qua mô phỏng và sản phẩm thử nghiệm thực tế, mang lại ý nghĩa khoa học và thực tiễn quan trọng.
Luận án đã đề xuất một phương pháp mới để điều chế dữ liệu tựa ngẫu nhiên, sử dụng kỹ thuật mã hóa phi tuyến lồng ghép 2 chiều, nhằm chuyển đổi dữ liệu thoại sau nén thành tín hiệu tương tự Kỹ thuật này tạo ra cấu trúc phổ tần gần giống với phổ tần của tiếng nói, giúp tránh bị phát hiện và nhận dạng bởi các bộ phân tích trên thiết bị đầu cuối và trong hệ thống mạng viễn thông.
Nghiên cứu đã phát triển một phương pháp và sản phẩm hoàn chỉnh cho việc bảo mật thông tin thoại bằng kỹ thuật số, được ứng dụng trong ngành Cơ yếu của Việt Nam Hướng phát triển tiếp theo có thể là xây dựng giải pháp truyền dữ liệu mật dưới dạng tín hiệu giả thoại, cho phép truyền tải qua nhiều kênh khác nhau như PSTN, HF, Satellite và các mạng IP.
CÁC KẾT QUẢ NGHIÊN CỨU ĐÃ ĐẠT ĐƯỢC
Các đóng góp khoa học của luận án bao gồm:
Đề xuất một kiến trúc lồng ghép mới cho m-dãy lồng ghép, một phương pháp sáng tạo trong việc sinh dãy lồng ghép và lồng ghép phi tuyến, đã được trình bày chi tiết trong bài báo [1b] Bên cạnh đó, giải pháp bảo mật dữ liệu thoại được xây dựng dựa trên thuật toán sinh số giả ngẫu nhiên, sử dụng dãy phi tuyến lồng ghép kiểu mới, nhằm nâng cao tính bảo mật cho thông tin thoại.
(ii) Đề xuất thuật toán cải tiến tốc độ nén, nâng cao chất lượng mã thoại MELPe (có công bố các nội dung liên quan trong bài báo [2b]);
Đề xuất thực hiện kỹ thuật điều chế và giải điều chế nhằm truyền tải dữ liệu thoại mã hóa bảo mật qua các thiết bị đầu cuối và mạng truyền dẫn Giải pháp này bao gồm việc truyền dữ liệu thoại bảo mật qua kênh thoại GSM cùng với các kênh hữu tuyến và vô tuyến băng hẹp khác, được trình bày chi tiết trong bài báo [3b].
Tùy biến rút gòn cho phép tích hợp các chương trình thực thi nén và điều chế biến đổi tín hiệu số từ máy tính vào Vi xử lý STM32 Điều này giúp Vi xử lý hoạt động đầy đủ các tính năng như trên máy tính, đồng thời đảm bảo khả năng xử lý thời gian thực, và đã được phát triển thành sản phẩm hoàn chỉnh.
BỐ CỤC CỦA LUẬN ÁN
Cấu trúc của luận án gồm có ba chương với các nội dung được tóm tắt như sau:
Chương 1 cung cấp cái nhìn tổng quan về mạng viễn thông di động GSM, bao gồm các vấn đề an toàn, bảo mật và những điểm yếu dễ bị tấn công trong mạng này Phân tích kỹ lưỡng về xác thực và bảo mật trong mạng GSM được trình bày, cùng với đặc điểm tín hiệu thoại cơ bản và mô hình tạo tiếng nói Bài viết cũng đề cập đến mã hóa, nén và truyền tín hiệu thoại qua các mạng khác nhau Đặc biệt, chương này đưa ra định hướng giải quyết cho việc truyền dữ liệu thoại mã hóa hiệu quả trên các thiết bị đầu cuối qua kênh thoại analog, đồng thời đảm bảo tính bảo mật cao cho thông tin thoại thời gian thực mà không cần thay đổi cấu hình thiết bị đầu cuối hay dịch vụ mạng viễn thông hiện tại, đảm bảo tính liên mạng.
Chương 2 đề xuất thuật toán nén và giải pháp bảo mật cho việc truyền dữ liệu qua kênh thoại GSM Nội dung chương trình bày các giải pháp bảo mật tín hiệu thoại di động phổ biến, lựa chọn bộ mã hóa dự đoán tuyến tính kích thích hỗn hợp MELP, và cải tiến thuật toán để phát triển bộ mã hóa MELP với tốc độ thấp cho ứng dụng nén thoại Chương cũng phân tích các hạn chế của kênh thoại GSM và các kênh truyền băng hẹp, đồng thời đề xuất giải pháp điều chế và giải điều chế để truyền dữ liệu hiệu quả Cuối cùng, các thí nghiệm mô phỏng được thực hiện nhằm chứng minh chất lượng tiếng nói tái tạo sau khi truyền qua kênh và giải mã.
Chương 3 tập trung vào bảo mật dữ liệu thông qua thuật toán sinh số giả ngẫu nhiên dựa trên dãy phi tuyến hai chiều lồng ghép Chương này cung cấp cái nhìn tổng quan về m-dãy, cấu trúc và các tính chất của dãy lồng ghép, bao gồm tuyến tính và phi tuyến Đánh giá khả năng "ngẫu nhiên hóa" tín hiệu của mã phi tuyến lồng ghép cũng được thực hiện, cùng với việc phân tích các phương pháp sinh dãy lồng ghép Đề xuất một phương pháp tính toán tối ưu nhằm tạo ra dãy lồng ghép cho các thiết bị có tài nguyên hạn chế và chứng minh sự tối ưu của phương pháp này Cuối cùng, chương này trình bày ứng dụng của dãy lồng ghép phi tuyến trong kỹ thuật mật mã và thực thi thuật toán mã theo cấu trúc hai cấp, bao gồm cả thuật toán nén/giải nén Melpe và các thủ tục mã mật/giải mã.
Kết luận: Phần này tổng kết các kết quả chính đã đạt được và hướng phát triển tiếp theo từ luận án này
TỔNG QUAN VỀ VẤN ĐỀ NGHIÊN CỨU
Tổng quan về mạng viễn thông di động GSM [1][2][29][34]
Cấu trúc mạng di động GSM được chia thành 3 khối chính gồm: Hệ thống con MS,
Hệ thống con trạm gốc BSS bao gồm BSC và BTS, kết hợp với hệ thống con mạng lõi NSS Hệ thống này có ba lớp giao diện quan trọng: Um, giao diện vô tuyến giữa MS và BTS; Abit, giao tiếp giữa BTS và BSC; và A, giao tiếp giữa BSC và MSC.
Khối MS bao gồm thiết bị máy điện thoại ME và Module SIM, trong khi khối BSS gồm các BTS và BSC, kết nối người dùng di động với mạng lõi GSM Mạng lõi bao gồm NSS và NMS, trong đó NSS là tổng đài có khả năng định tuyến cuộc gọi giữa người dùng di động qua BSS và thuê bao PSTN qua MSC và GMSC NMS thực hiện quản lý và giám sát các chức năng cũng như thành phần của toàn mạng.
- Module nhận thực thuê bao – SIM: Subscriber Identity Module
Module này thực chất là một Smart Card chưa các thuật toán A3/8, số IMSI, khóa bí mật Ki và số điện thoại
- Thiết bị đầu cuối – ME: Mobile Equipment Cấu trúc cơ bản mạng GSM:
Hình 1.1 Cấu trúc cơ bản mạng GSM
Thiết bị này hoạt động tương đối độc lập với các thiết bị mạng truyền dẫn, không sử dụng thuật toán A5 và chỉ có thể kết nối với mạng GSM khi được trang bị SIM Nó không thể nhận biết thuật toán A3/8 và Ki có trên SIM.
- Trạm thu phát gốc – BTS: Base Transceiver Station
BTS là thành phần mạng thông tin di động mặt đất phục vụ cho các MS (Thiết bị
Khi được gắn Module SIM, ME sẽ kết nối với các trạm gốc, tạo liên thông giữa các Cells sóng vô tuyến trong khu vực Các trạm gốc này sẽ được kết nối với trạm điều khiển MSC của vùng đó.
- Trạm điều khiển gốc – BSC: Base Staition Controller
BSC đóng vai trò quan trọng trong việc điều khiển các BTS xung quanh, bao gồm việc quản lý công suất phát cho các MS, phân bổ tần số kênh cho BTS và MS, cũng như điều chỉnh nhảy tần số của MS khi gặp phải nhiễu.
- Trung tâm chuyển mạch – MSC: Mobile Switching Center
MSC là nốt điều khiển nhiều BSC trong hệ thống GSM, đóng vai trò trung tâm với nhiều chức năng quan trọng Nó thực hiện chuyển mạch, xác thực, đăng ký và liên kết giữa các nốt, đồng thời kết nối với mạng PSTN.
- Đăng ký Thuê bao – HLR: Home Location Register
HLR (Home Location Register) là cơ sở dữ liệu quan trọng chứa thông tin về các thuê bao di động, bao gồm thông tin lâu dài, dịch vụ được phép sử dụng và các giới hạn dịch vụ Nó lưu trữ các thông tin như số IMEI, bản sao khóa bí mật Ki, VLR hiện tại và các dịch vụ hiện tại của thuê bao, giúp nhà cung cấp dịch vụ mạng quản lý và theo dõi các thuê bao một cách hiệu quả.
- Đăng ký đăng nhập vùng - VLR: Visitor Location Register
VLR là cơ sở dữ liệu lưu trữ thông tin thuê bao di động, cung cấp thông tin về vị trí và trạng thái của MS Dữ liệu trong VLR được sử dụng để xử lý cuộc gọi khi cần thiết và được cập nhật thường xuyên dựa trên sự tham gia của Cell MS Việc cập nhật diễn ra khi MS bật máy, di chuyển sang BTS hoặc BSC khác, và theo chu kỳ định kỳ.
- Trung tâm xác thực thuê bao – AuC: Authentication Center
AuC kết hợp với HLR để cung cấp thông tin cho VLR, xác thực quyền truy cập mạng của thuê bao MS và các quyền dịch vụ của nó, đồng thời sinh số ngẫu nhiên (RAND) Cơ sở dữ liệu của AuC lưu trữ thông tin quan trọng như danh sách thiết bị ME theo tiêu chuẩn quốc tế (IMSI), các thông tin xác thực như khóa bí mật Ki, định danh Vùng LAI (Location Area Identity) và định danh thuê bao tạm thời TMSI (Temporary Mobile Subscriber Identity).
- Đăng ký nhận dạng thiết bị - EIR: Equitment Identity Register
EIR lưu giữ một CSDL để giám sát toàn bộ các ME có IMSI sử dụng trên mạng mạng đó (mỗi mạng chỉ có một EIR).
An toàn, bảo mật và một số điểm yếu về vấn đề này trong hệ thống mạng
Ban đầu, GSM được thiết kế như một hệ thống không dây an toàn, với mục tiêu bảo mật thông tin Để đạt được điều này, hệ thống đã được xây dựng dựa trên các cơ chế bảo vệ hiệu quả.
• Xác thực người dùng, xác thực dịch vụ di động
• Mã hóa các thông tin trao đổi trên môi trường radio
Xác thực người dùng qua khóa chia sẻ trước và mã hóa qua mạng là phương pháp phổ biến, nhưng hệ thống GSM vẫn dễ bị tấn công bởi nhiều loại hình khác nhau Mỗi loại tấn công nhắm vào các phần khác nhau của mạng, trong khi GSM chỉ thực hiện xác thực người dùng với mạng mà không bảo vệ toàn diện.
Mô hình cung cấp bảo mật và xác thực, nhưng không có khả năng chống chối bỏ
GSM sử dụng các thuật toán mã hóa A5/(1, 2, 3) để bảo mật thoại trên kênh vô tuyến, trong khi giọng nói được truyền ở dạng rõ qua mạng lõi dưới dạng PCM và ADPCM Tuy nhiên, A5 có những hạn chế về mật mã, không đảm bảo an toàn cho việc liên lạc, do đó không thể cung cấp bảo mật cuộc gọi thoại hoàn toàn cho khách hàng GSM Thêm vào đó, người dùng không có quyền kiểm soát bảo mật mã hóa, mà điều này hoàn toàn phụ thuộc vào nhà cung cấp mạng và nhà sản xuất điện thoại di động.
1.2.1 Nguyên lý xác thực và bảo mật trong mạng di động GSM
Một số chức năng xác thực và bảo mật đã được tích hợp vào GSM, bao gồm: ỉ Xỏc thực chủ thể thuờ bao đăng ký
Sử dụng mó húa giúp đảm bảo bảo mật thông tin trao đổi và bảo vệ danh tính của thuê bao SIM (Mụ dun nhận dạng thuê bao) được bảo vệ bằng mã số PIN, ngăn chặn việc SIM bị nhõn bản khụng được phép gia nhập mạng đồng thời với SIM gốc Mã số bảo mật Ki được bảo vệ an toàn, đảm bảo an ninh cho người dùng.
Hệ thống GSM sử dụng nhiều thuật toán bảo mật để đảm bảo an toàn cho người dùng qua các thiết bị khác nhau, tập trung vào hai nguyên lý chính là xác thực và mã hóa dữ liệu.
• Xác thực người dùng đăng nhập mạng (Au)
Trong mạng GSM, quá trình xác thực thuê bao bắt đầu bằng việc xác thực người sử dụng, sau đó là xác thực các dịch vụ đã được chấp nhận Khi một thiết bị di động (MS) khởi tạo lần đầu hoặc di chuyển đến vùng của trạm phát sóng (BS) mới, nó sẽ yêu cầu BTS cấp kênh truyền Sau khi có kênh truyền được thống nhất, MS sẽ gửi yêu cầu cập nhật thông tin mạng hiện tại đến MSC thông qua BSC, và MSC sẽ phản hồi nếu MS xác thực thành công.
Trong toàn bộ quá trình xác thực, có 3 nhân tố chính đó là: MS, MSC/VLR và HLR/AuC như trong Hình 1.2 [3]
Quá trình xác thực bắt đầu khi MS gửi số IMSI từ SIM đến VLR qua trạm BTS gần nhất để yêu cầu xác thực VLR tiếp tục chuyển IMSI đến trung tâm HLR/AuC, nơi sẽ tra cứu cơ sở dữ liệu để tìm khóa bí mật Ki tương ứng Dựa trên số IMSI, trung tâm HLR/AuC sử dụng thuật toán xác thực (A3) và thuật toán sinh khóa mã (A8) để tạo ra khóa mã phiên (Kc) và kết quả ký được gọi là SRES.
Hình 1.2 Quá trình xác thực trong mạng GSM
HLR sinh ra số ngẫu nhiên RAND 128bit và gửi bộ ba (Kc, SRES, RAND) đến VLR VLR sau đó gửi lại số RAND 128bit cho MS để yêu cầu tính toán SRES Dựa vào khóa bí mật Ki trên SIM và số RAND nhận được, MS sử dụng các thuật toán A3/8 để tính toán Kc và SRES MS sử dụng Kc làm khóa phiên làm việc và gửi SRES về VLR để xác thực, sau đó VLR sẽ so sánh kết quả.
2 SRES của MS và HLR, nếu trùng nhau thì xác thực thuê bao thành công, và MS sẽ được cấp quyền truy nhập mạng
Trong quá trình xác thực, số IMSI được gửi ở bước đầu tiên, và nếu hacker chiếm đoạt được số này, họ sẽ nắm giữ 50% thông tin cần thiết để nhân bản SIM, trong khi phần còn lại là mã Ki.
Xác thực người dùng và dịch vụ, cũng như mã hóa dữ liệu thoại, tin nhắn và dữ liệu trong các thế hệ mạng GSM, có sự khác biệt rõ rệt Cụ thể, quy trình xác thực và mã hóa trong chế độ UMTS khác so với GSM/GPRS Tuy nhiên, trong khuôn khổ của Luận án này, chỉ tập trung vào công nghệ chuyển mạch kênh (CS) để truyền tín hiệu thoại trên kênh GSM, do đó, nội dung sẽ không đề cập đến các chế độ khác.
• Mã hóa dữ liệu người dùng như thoại, tin nhắn, Dữ liệu người dùng
Khóa phiên mã hóa Kc được áp dụng cho cả MS và hệ thống mạng lõi, sử dụng thuật toán A5 để thực hiện mã hóa và giải mã thông tin dữ liệu của người dùng.
Quá trình mã hóa không được thực hiện bởi Module SIM do giới hạn về khả năng xử lý, mà được thực hiện trên ME Hình 1.3 [3] dưới đây minh họa toàn bộ quy trình xác thực, sinh khóa và mã hóa.
Hình 1.3 Toàn bộ quá trình xác thực, sinh khóa và mã hóa trong mạng GSM
Trước hết tìm hiểu về các thuật toán A3, A8, A5:
- Thuật toán A3 [3]: Sơ đồ khối thuật toán A3 như Hình 1.4
Hình 1.4 Mô hình thuật toán A3
Sơ đồ thực hiện các hàm chức năng trong thuật toán A3 để sinh ra SRES (32bit) được mô tả trong Hình 1.5, dưới đây:
Nhìn vào lược đồ thuật toán trên thì thấy thuật toán rất dễ bị phá
- Thuật toán A8: Sơ đồ khối thuật toán A8 như Hình 1.6
RAND 64bits (Left) 64bits (Right)
Ki 64bits (Left) 64bits (Right)
Hình 1.5 Sơ đồ khối các hàm thực hiện thuật toán A3
Hình 1.7 Sơ đồ khối thuật toán A5
Thuật toán A5 là một phương pháp mã hóa dòng, tạo ra dãy số giả ngẫu nhiên chất lượng cao để thực hiện phép XOR với dữ liệu cần mã hóa Sơ đồ khối của thuật toán A5 được trình bày trong Hình 1.7, sử dụng các thanh ghi dịch phản hồi tuyến tính Mặc dù có nhiều cách thực thi thuật toán A5, nhưng hầu hết đều tập trung vào việc tối ưu hóa hiệu suất và độ bảo mật.
Có bốn phiên bản mã hóa A5, bao gồm A5/0, A5/1, A5/2 và A5/3, trong đó A5/1 được coi là mạnh nhất và phổ biến tại châu Âu và châu Mỹ, trong khi A5/2 chủ yếu được sử dụng ở châu Á A5/1 sử dụng ba thanh ghi dịch LFSR (R1, R2, R3), như được minh họa trong Hình 1.8.
Hình 1.8 Sơ đồ khối thuật toán mã dòng A5 sử dụng 3 thanh ghi dịch phản hồi
Hình 1.6 Sơ đồ khối thuật toán mã A8
Như hình trên, 3 thanh ghi dịch phản hồi tuyến tính trên có độ dài lần lượt là
R1= 19, R2= 22 và R3# bits và tương ứng với 3 biểu thức trong Bảng 1.1 sau:
Bảng 1.1 Các thanh ghi LFSR LFSR Độ dài
(bit) Đa thức phản hồi Bít nhịp Khai thác bit
Bộ 3 thanh ghi dịch phản hồi tuyến tính hoạt động dựa trên nguyên tắc của các m_dãy, trong đó mỗi thanh ghi thực hiện quá trình xử lý sau mỗi chu kỳ xung nhịp Các bít có trọng số '1' của đa thức, được gọi là bít khai thác, sẽ được XOR với nhau và kết quả sẽ được lưu vào bít có trọng số thấp nhất (bit Zero) Mỗi thanh ghi đều có một bít cố định, với thanh ghi 1 có bít thứ 8 (c1) và thanh ghi 2, 3 có bít thứ 10 (c2, c3).
Các phương pháp nén tiếng nói trong mạng GSM [33, 34]
1.3.1 Một số đặc điểm tín hiệu tiếng nói cơ bản của mạng GSM [33]
Phần này tập trung vào ảnh hưởng của băng tần, kỹ thuật xử lý mã thoại và chuyển đổi mã đối với quá trình truyền dữ liệu qua kênh thoại GSM, mà không xem xét các tác động khác liên quan đến truyền thông trong mạng GSM hoặc giữa GSM và PSTN.
Kênh thoại mạng GSM được thiết kế để truyền tín hiệu tiếng nói trong băng tần hẹp 300-3400Hz, dẫn đến tốc độ truyền bị hạn chế Các bộ mã (codec) trong GSM khai thác tối đa các thuộc tính của tín hiệu tiếng nói nhằm đạt hiệu suất nén cao, đồng thời vẫn đảm bảo chất lượng âm thanh nghe hiểu Tuy nhiên, tín hiệu được tái tạo thường có sự khác biệt so với tín hiệu gốc Để duy trì âm lượng trong cuộc đàm thoại, mạng GSM sử dụng bộ điều khiển tự động độ lớn biên độ (AGC), giúp điều chỉnh mức độ âm thanh đầu ra, dẫn đến biên độ tín hiệu ra có thể khác với tín hiệu vào Thêm vào đó, trong quá trình truyền, các khoảng lặng thường xuất hiện xen kẽ với tín hiệu tiếng nói, nhờ vào bộ phát hiện tiếng nói (VAD).
Các bộ phát hiện hoạt động (Activity Detectors) có khả năng nhận diện tín hiệu giọng nói và loại bỏ những khoảng lặng, giúp tiết kiệm băng thông và năng lượng Nhờ đó, quá trình truyền dữ liệu có thể bỏ qua những khoảng lặng không cần thiết.
1.3.2 Quá trình tạo và các tính chất cơ bản của tiếng nói
1.3.2.1 Mô hình hoá quá trình tạo tiếng nói [9][9b]
Không khí từ phổi được ép qua thanh quản, nơi các dây thanh âm dao động dưới sự điều khiển của hệ thần kinh, tạo ra tiếng nói Sự dao động này giống như việc đóng mở một cánh cửa (thanh môn), làm cho luồng không khí từ phổi bị ngắt quãng khác nhau, từ đó tạo ra âm thanh đa dạng Bên cạnh đó, các thành phần hài bậc cao của tiếng nói phụ thuộc vào sự thay đổi của cơ quan phát âm như họng, vòm họng, lưỡi, miệng, khoang mũi và mũi, tương tự như sự thay đổi tham số của các hốc cộng hưởng.
Hình 1.10 Biểu diễn mô hình cơ học của hệ thống phát âm
Mô hình cơ học của cơ quan phát âm có thể được mô tả bằng các ống hình trụ có chiều dài đồng nhất nhưng đường kính khác nhau, tạo thành các hốc cộng hưởng âm thanh với các tần số riêng gọi là tần số formant Những tần số này sản sinh ra các âm vị khác nhau tùy thuộc vào hình dáng của cơ quan phát âm Mô hình này có thể được diễn tả chính xác thông qua hệ phương trình vi phân Trong quá trình phát âm, hình dáng của cơ quan phát âm thay đổi rất chậm, cho phép phân tích các đặc điểm âm thanh trong khoảng thời gian ngắn.
Sự thay đổi của hệ thống phát âm trong thời gian một âm vị có thể xem là không đáng kể, do đó người ta có thể biểu diễn hệ thống này bằng một hệ thống tuyến tính bất biến theo thời gian Điều này có nghĩa là các tham số của hệ thống sẽ gần như không đổi trong thời gian một âm vị và chỉ thay đổi khi chuyển từ âm vị này sang âm vị khác.
Hình 1.11 Mô hình dạng ống của cơ quan phát âm
Mô hình hóa quá trình kích thích của luồng không khí từ phổi qua thanh quản đến cơ quan phát âm là rất quan trọng Tùy thuộc vào loại âm thanh, cần áp dụng các phương pháp mô hình hóa phù hợp để đảm bảo rằng tiếng nói tái tạo đạt được chất lượng mong muốn.
1.3.2.2 Các tính chất cơ bản của tiếng nói
Trong kỹ thuật mã hoá tiếng nói, âm thanh được chia thành hai loại chính: âm hữu thanh và âm vô thanh Âm hữu thanh (voiced sound) được tạo ra khi các dây thanh âm dao động, ngắt quãng luồng không khí theo chu kỳ từ 2-20ms, và tín hiệu kích thích được mô hình hoá thành các xung tuần hoàn Ngược lại, âm vô thanh (unvoiced sound) hình thành khi luồng không khí qua thanh môn không theo quy luật nào, dẫn đến tín hiệu kích thích được mô hình hoá như tín hiệu ngẫu nhiên.
Nhìn chung, các âm của tiếng nói được chia thành hai loại âm chính hoặc là sự kết hợp của chúng Theo thống kê, phần lớn các âm trong tiếng nói của các ngôn ngữ trên thế giới là hữu thanh Điều này cũng đúng với tiếng Việt, khi hầu hết các âm trong tiếng Việt đều là âm hữu thanh.
Nghiên cứu về âm hữu thanh trong tiếng Việt cho thấy rằng việc sử dụng hoàn toàn âm này không ảnh hưởng đến ý nghĩa của lời nói Để mã hóa và tái tạo tiếng nói, có thể mô hình hóa các tham số liên quan đến sự kích thích không khí từ phổi và dao động qua thanh quản.
• Sự kích thích từ phổi tạo ra thay bằng nhiễu ngẫu nhiên
• Dao động của thanh quản (Khoang họng) được mô hình bằng các bộ lọc tạo chu kỳ ‘Pitch’
• Khoang tạo âm (Khoang miệng – Khoang mũi) được mô hình bằng bộ lọc LPC
Hình 1.12 dưới đây mô hình hóa này:
1.3.3 Các phương pháp mã hoá tiếng nói cơ bản
Mã hoá tiếng nói gồm ba loại chính: mã hoá dạng sóng, mã hoá nguồn và mã hoá lai Tốc độ bit và chất lượng tiếng nói sau khi tổng hợp của các bộ mã hoá này được thể hiện trong Hình 1.13.
Gain LPC Filter Speech Voice
Hình 1.12 Mô hình hóa quá trình tạo tiếng nói của con người [9b]
Hình 1.13 Chất lượng tiếng nói với tốc độ bit của các bộ mã hoá
Có thể chia mã hoá dạng sóng ra làm hai loại chính :
Trong miền thời gian: Mã hoá điều biến xung mã (PCM), điều biến xung mã sai lệch (DPCM) và điều biến xung mã sai lệch thích nghi (ADPCM)
Trong miền tần số: Mã hoá băng phụ hay còn gọi là băng con SBC (Subband
Coding) và mã hoá biến đổi thích nghi ATC (Adaptive Transform Coding)
Mã hóa nguồn sử dụng mô hình quá trình tạo ra tín hiệu và khai thác các thông số của mô hình này để mã hóa tín hiệu Các thông số này sẽ được truyền đến bộ giải mã Đối với tiếng nói, các bộ mã hóa nguồn, gọi là vocoder, hoạt động dựa trên mô hình cơ quan phát âm, được kích thích bằng nguồn nhiễu trắng cho các đoạn âm vô thanh hoặc bằng một dãy xung có chu kỳ bằng chu kỳ pitch cho đoạn âm hữu thanh Thông tin gửi đến bộ giải mã bao gồm các thông số kỹ thuật của bộ lọc, chỉ định đoạn tiếng nói là âm hữu thanh hay vô thanh, cùng với sự thay đổi cần thiết của tín hiệu kích thích và chu kỳ pitch nếu đó là đoạn tiếng nói hữu thanh.
Có nhiều kỹ thuật để mã hoá nguồn như: mã hoá kênh, mã hoá formant, mã hoá
Các bộ mã hoá tham số như mã hoá LPC, MELP và RELP được phát triển để nâng cao hiệu quả truyền thông trong điện thoại vệ tinh và các ứng dụng an ninh, quốc phòng Những công nghệ này sử dụng các phương pháp mã hoá dự đoán tuyến tính với các trạng thái kích thích khác nhau, giúp cải thiện chất lượng âm thanh và độ tin cậy trong việc truyền tải thông tin.
Mã hóa lai chủ yếu sử dụng phương pháp mã hóa phân tích bằng cách tổng hợp AbS (Analysis-by-Synthesis), trong đó bộ mã hóa áp dụng mô hình cơ quan phát âm của con người Khác với mã hóa nguồn, phương pháp này chọn tín hiệu kích thích nhằm tái tạo dạng sóng tiếng nói gần giống nhất với dạng sóng gốc Đặc điểm này là yếu tố phân biệt các bộ mã hóa kiểu AbS, và thuật toán xác định dạng sóng kích thích ảnh hưởng trực tiếp đến độ phức tạp của bộ mã hóa.
1.3.4 Kỹ thuật nén tiếng nói trong thông tin di động GSM
1.3.4.1 Các bộ mã Codec trong mạng GSM
GSM đã sử dụng nhiều loại codec thoại để nén âm thanh 3,1 kHz vào băng thông từ 7-13kbit/s Ban đầu, hai loại bộ nén thoại chính được sử dụng là Half Rate (6,5 kbit/s) và Full Rate (13 kbit/s), dựa trên hệ thống mã dự đoán tuyến tính (LPC) Năm 1997, GSM được cải tiến với codec tốc độ đầy đủ (EFR) 12,2 kbit/s trên kênh tốc độ đầy đủ Sau đó, với sự phát triển của UMTS, EFR được tái cấu trúc thành codec tốc độ biến đổi AMR-Narrowband, cung cấp chất lượng cao và khả năng chống nhiễu mạnh mẽ trên kênh tốc độ đầy đủ, hoặc chất lượng tương đối cao trên kênh vô tuyến nửa tốc độ.
1.3.4.2 Cấu trúc một bộ mã hoá tiếng nói dùng phương pháp mã hoá lai AbS [16][8][10][30]
Kết luận chương 1
Với công nghệ và khả năng tính toán hiện tại, các thuật toán xác thực và bảo mật dữ liệu trong mạng di động GSM chưa đảm bảo an toàn cho người dùng có thông tin nhạy cảm, đặc biệt là thông tin bí mật quốc gia Do cấu trúc và các thành phần trong hệ thống mạng GSM hiện tại, việc xác thực và bảo mật thông tin thoại từ người dùng đến người dùng (End to End) là phương pháp tối ưu nhất.
Quá trình tạo và tổng hợp tiếng nói có thể được mô hình hóa như một hệ thống phát âm tuyến tính bất biến theo thời gian, trong đó các bộ mã hoá thoại được xây dựng dựa trên kỹ thuật dự đoán tuyến tính Điều này cho phép mô hình hóa chính xác các đặc tính thống kê của tín hiệu thoại thông qua mô hình bộ lọc nguồn, bao gồm bộ lọc dự đoán thời gian ngắn và bộ lọc dự đoán thời gian dài Giả thiết rằng tiếng nói là kết quả của việc kích thích một bộ lọc biến đổi theo thời gian bằng một dãy xung có chu kỳ đối với âm rung (voiced) và nguồn nhiễu ngẫu nhiên đối với âm câm (voiceless).
Các bộ mã hoá sử dụng kĩ thuật phân tích trong miền thời gian bao gồm APC (Adaptive Predictive Coding), RELP (Residual Excited Linear Prediction), MPLPC (Multi Pulse LPC) và đặc biệt là CELP (Code-Excited LPC) Những bộ mã này phù hợp cho các ứng dụng mã hóa dữ liệu tín hiệu thoại qua kênh thoại analog trong các mạng khác nhau.
CHƯƠNG 2: ĐỀ XUẤT THUẬT TOÁN NÉN VÀ ĐỀ XUẤT GIẢI PHÁP BẢO MẬT, TRUYỀN DỮ LIỆU QUA KÊNH THOẠI GSM
Lựa chọn giải pháp mã hóa mật cuộc gọi thoại di động trên kênh GSM 32 2.2 So sánh ba thuật toán nén dùng kỹ thuật dự đoán tuyến tính (LP Specch Model)
Thiết bị liên lạc GSM chuyển đổi tín hiệu âm thanh thành dạng số hóa nén theo chuẩn GSM thông qua vocoder, sau đó truyền gói tin số qua kênh GSM cùng với các tín hiệu điều khiển khác Dữ liệu GSM được mã hóa bằng thuật toán A5/x, tuy nhiên, như đã chỉ ra trong Chương 1, thuật toán này không đủ an toàn Để mã hóa cuộc gọi thoại trên kênh voice GSM, một giải pháp đơn giản là xáo trộn tần số và đảo phổ tín hiệu âm thanh theo quy tắc xác định bởi khóa mã Phương pháp mã hóa này, mặc dù dễ áp dụng, vẫn có khả năng bị phân tích để khôi phục tín hiệu gốc.
Việc can thiệp vào quá trình xử lý dữ liệu của Modem GSM cho phép mã hóa dữ liệu số trước khi truyền tải Tuy nhiên, các Modem GSM hiện có đều có tính năng bảo mật cao, không cho phép can thiệp vào quy trình xử lý dữ liệu nội bộ.
Một giải pháp trung gian để truyền dữ liệu qua băng tần GSM là sử dụng chế độ truyền dữ liệu CSD, mặc dù việc hỗ trợ CSD tại Việt Nam còn hạn chế Để mã hóa và truyền dữ liệu cuộc gọi thoại mật qua kênh GSM, cần xây dựng một module thực hiện các bước như sau: tự thực hiện Vocoder với bitrate thấp, mã hóa dữ liệu thoại bằng thuật toán mã hóa mạnh, có thể sử dụng mã hóa khóa đối xứng, và điều chế dữ liệu mã thành tín hiệu trong phổ tiếng nói, sau đó đưa tín hiệu đã điều chế vào thiết bị đầu cuối thuộc hệ thống GSM để truyền qua kênh GSM thông thường.
33 việc này như là phát triển một Modem làm việc trên kênh thoại 2G/3G, nếu làm được
Modem với tính năng này không chỉ cho phép truyền dữ liệu qua kênh Voice GSM 2G/3G mà còn hỗ trợ tất cả các giao thức và mạng truyền thông thoại như mạng điện thoại chuyển mạch gói, mạng vô tuyến công nghệ SDR, và OTT Để thu được tín hiệu tiếng nói ban đầu, các bước sẽ được thực hiện theo thứ tự ngược lại ở bên máy thu Việc phát triển một modem như vậy liên quan đến nhiều kỹ thuật chuyên sâu, sẽ được đề cập trong các phần tiếp theo.
Khi thực hiện phương án điều chế tín hiệu trong GSM, cần chú ý hai vấn đề quan trọng: đầu tiên, phải xử lý điều chế ở mức thời gian thực và sử dụng giải pháp Vocoder với Bitrate thấp để đảm bảo tín hiệu được truyền trong phổ tần giống như tín hiệu tiếng nói Cấu trúc khung thoại với 20ms/slot và chuẩn nén 13kbps yêu cầu tín hiệu không bị biến dạng đáng kể Thứ hai, tầng Vocoder của GSM sử dụng bộ phát hiện tiếng nói tích cực VAD, có thể loại bỏ các khoảng không có âm thanh, dẫn đến việc dữ liệu điều chế không được truyền nếu VAD xác định là không phải tiếng nói Do đó, cần điều chỉnh bộ điều chế để tránh bị VAD loại bỏ, đồng thời vẫn đảm bảo hiệu quả truyền dữ liệu.
Khi lựa chọn bộ nén thoại (Vocoder) lý tưởng, cần chú ý đến các tiêu chí như bitrate thấp, chất lượng thoại tốt và khả năng chống nhiễu hiệu quả Ngoài ra, bộ nén cũng phải thích ứng với ngôn ngữ người dùng, có hiệu suất cao với tín hiệu câm, độ trễ ngắn để đảm bảo trải nghiệm thời gian thực, và phù hợp với các tài nguyên xử lý hạn chế.
2.2 So sánh ba thuật toán nén dùng kỹ thuật dự đoán tuyến tính (LP Specch Model)
Ba thuật toán nén sử dụng LP bao gồm LPC10e, CELP và MELP, đều áp dụng kỹ thuật dự đoán tuyến tính và phổ biến trong thông tin vô tuyến Sự khác biệt chính giữa ba thuật toán này nằm ở độ phức tạp của chế độ kích thích Mô hình kích thích của vocoder CELP là tinh vi nhất, trong khi MELP có mô hình đơn giản hóa và đã được chứng minh hiệu quả CELP và MELP đạt chất lượng tương đương, nhưng MELP có tỷ lệ nén cao hơn và hỗ trợ nhiều chế độ, phương pháp cải thiện kích thích (pitch) và tốc độ rất thấp.
Bảng 2.1, 2.2 dưới đây so sánh việc cấp phát bit giữa vocoder CELP và MELP:
Các tham số Số bit được cấp phát
Bảng 2.1 Số bit được cấp phát cho MELP 600bit [12]
Tham số Tổng số bit mỗi Frame
Chu kỳ Pitch (chỉ số bảng mã thích nghi) 28 Độ khuyết đại bảng mã thích nghi 20
Chỉ số phức tạp bảng mã Codebook 36 Độ phức tạp bảng mã khuyết đại 20 Đồng bộ 1
Bảng 2.2 Cấp phát các bit cho CELP (FS1061)
Mô hình và đề xuất bộ mã hoá dự đoán tuyến tính kích thích hỗn hợp MELP
Việc lựa chọn bộ nén thoại (Vocoder) là một yếu tố then chốt trong luận án này, cần phải đáp ứng đầy đủ các tiêu chí đã được nêu ra ở mục 2.1.
Thuật toán nén thoại MELP (các phiên bản từ MELP đến MELPe) được Mỹ công nhận là chuẩn US MIL-STD-3005 và được NATO áp dụng qua STANAG-4591 (MELPe) nhờ vào hiệu quả vượt trội của nó Các mô hình nén thoại MELP bao gồm các bít đồng bộ hóa rất hiệu quả cho các ứng dụng bảo mật vô tuyến băng tần hẹp, giúp xử lý tốt trong các kênh có lỗi bít, mất gói và mất đồng bộ Hơn nữa, MELP cân bằng tốt giữa băng thông và chất lượng tín hiệu thoại, đồng thời độ phức tạp tính toán của nó phù hợp với các chip ARM và DSP, lý tưởng cho việc bảo mật thông tin thoại.
Ngày nay, chuẩn mã thoại MELPe gồm 3 tốc độ 2400bps, 1200bps và 600bps [11b,13,14]
Các vocoder dựa trên phương pháp mã hoá mô hình, các tham số đặc trưng cần được xác định đối với mỗi khung tín hiệu là:
- Các tham số kích thích gồm quyết định voice/unvoice và chu kì pitch
- Các tham số hệ thống gồm thông tin đường bao phổ hay đáp ứng xung của hệ thống
Trong quá trình giải mã, để tái tạo âm thanh, các tham số kích thích được sử dụng để tạo ra tín hiệu kích thích, bao gồm chuỗi xung tuần hoàn trong vùng giọng nói và nhiễu ngẫu nhiên trong vùng không giọng nói Sau đó, tín hiệu này sẽ được xử lý qua một bộ lọc, với các tham số được xác định dựa trên các thông số hệ thống đã được ước lượng Mô hình phổ biến cho hệ thống này là LPC (Linear Prediction).
Coding), trong đó mã hoá dự đoán tuyến tính được sử dụng để mô hình hoá đường bao phổ
Cải tiến quan trọng trong MELP là việc áp dụng mô hình kích thích hỗn hợp tuần hoàn/nhiễu và quyết định voice/unvoice cho từng dải tần riêng, giúp nâng cao chất lượng tiếng nói đáng kể so với LPC-10 Tuy nhiên, mô hình này vẫn gặp một số khuyết điểm về chất lượng tiếng nói, đặc biệt ở các vùng không ổn định và các vùng không tuần hoàn.
Các vocoder truyền thống cho tiếng nói tổng hợp có khả năng nghe hiểu tốt, nhưng chất lượng âm thanh vẫn chưa đạt yêu cầu cao Nguyên nhân có thể được phân loại thành hai nhóm chính.
- Do hạn chế cơ bản trong mô hình tiếng nói
- Do ước lượng các tham số mô hình tiếng nói không chính xác
Các nhược điểm của các vocoder truyền thống về suy giảm chất lượng có thể thấy và các cơ sở của các biện pháp để giải quyết như sau:
Một trong những vấn đề chính trong chất lượng của các vocoder sử dụng mô hình voice/unvoice đơn giản là sự xuất hiện của âm thanh hỗn độn và âm ù, đặc biệt trong các vùng tiếng nói hỗn hợp và có nhiễu Phân tích phổ thời gian ngắn cho thấy rằng ở các vùng voice hỗn hợp, các hài của tần số cơ bản là nổi bật, trong khi ở vùng có nhiễu, năng lượng tương tự như nhiễu chiếm ưu thế Nguyên nhân chính là do mô hình kích thích voice/unvoice đơn giản chỉ tạo ra tín hiệu kích thích với phổ là các hài của tần số cơ bản hoặc phổ nhiễu Để khắc phục vấn đề này, cần áp dụng mô hình kích thích hỗn hợp, trong đó các kích thích tuần hoàn và nhiễu được kết hợp và sau đó tạo dạng phổ thông qua bộ lọc, với các tham số của bộ lọc được xác định dựa trên các tham số hệ thống trong quá trình phân tích.
Cách giải quyết này dựa trên khả năng của con người trong việc phân biệt các vùng tần số đặc trưng bởi hài của tần số cơ bản và các vùng tần số khác có nhiễu Để nâng cao chất lượng tiếng nói tổng hợp, mô hình voice/unvoice cần bổ sung yếu tố biến thiên theo tần số Hình 1.14 minh họa khái niệm mô hình kích thích hỗn hợp đa băng liên quan đến vấn đề này.
Chất lượng tiếng nói tổng hợp của các vocoder bị ảnh hưởng lớn bởi việc ước lượng không chính xác các tham số mô hình tiếng nói, như pitch và quyết định voice/unvoice Những sai sót trong việc xác định pitch và voice/unvoice có thể dẫn đến sự suy giảm chất lượng đáng kể của tiếng nói tổng hợp, đặc biệt trong các tín hiệu tiếng nói có nhiễu, gây ra sự giảm sút chất lượng ở mức nghiêm trọng.
Một hệ thống vocoder chất lượng cao cần cải tiến mô hình tiếng nói và sử dụng các phương pháp tin cậy để ước lượng chính xác các tham số của mô hình này.
2.3.2 Mô hình thuật toán mã thoại MELP
Sơ đồ khối bộ mã hoá tiếng nói MELP (Mixed Excitation Linear Prediction) được thể hiện trong hình 2.1 [17][8] dưới đây:
Tạo nhiễu trắng Lọc tạo hình nhiễu Cường độ thoại Đáp ứng xung
Hình 2.1 Mô hình mã hóa tiếng nói Melp
2.3.2.1 Quá trình mã thoại MELP được biểu diễn trên Hình 2.2 [13][18]:
Một số bước cơ bản trong qui trình này được thực hiện như sau:
Bước 1: Loại bỏ thành phần tần số thấp (DC)
Bước đầu tiên trong quá trình nén tiếng nói là loại bỏ các thành phần năng lượng tần số thấp từ tín hiệu đầu vào Để thực hiện điều này, một bộ lọc thông cao Chebychev kiểu 2 bậc bốn với tần số cắt 60 Hz và suy giảm 30 dB ở dải chắn được sử dụng Đầu ra của bộ lọc này sẽ trở thành tín hiệu đầu vào cho các khối tiếp theo trong quá trình nén tiếng nói.
Để tìm kiếm pitch tổng thể, quá trình bắt đầu bằng việc lọc tín hiệu đầu vào thông thấp với bộ lọc Butterword bậc 6 có tần số cắt 1 KHz Sau đó, giá trị pitch sẽ được xác định trong khoảng thời gian cụ thể, giúp xác định pitch tổng thể của tín hiệu âm thanh.
= 40÷160 mẫu và là giá trị có tự tương quan chuẩn hoá (tr) lớn nhất, trong đó:
Hình 2.2 Quy trình thực hiện mã thoại Melp
Trong bài viết này, τ đại diện cho số nguyên của các mẫu, trong khi [τ/2] là giá trị nguyên của τ/2, như mô tả trong công thức (2.2) Cửa sổ phân tích pitch được xác định tại mẫu cuối cùng của khung hiện tại, và quá trình tính toán pitch cuối cùng sẽ được mở rộng đến 20 mẫu thông qua nội suy và kiểm tra bội pitch.
Bước 3: Phân tích voice tại các dải tần [12]
Khối chức năng này xác định năm cường độ giọng nói ở 5 dải thông Vbpi từ i = 1 đến 5, đồng thời cung cấp độ chính xác cao hơn cho âm vực và giá trị hàm tự tương quan chuẩn hóa đã được tìm ra.
Tín hiệu tiếng nói đầu vào sẽ được lọc ở năm dải tần: 0÷500 Hz, 500÷1000 Hz, 1000÷2000 Hz, 2000÷3000 Hz, 3000÷4000 Hz bằng các bộ lọc Butterword bậc 6
Việc xác định pitch chính xác được thực hiện trên tín hiệu đầu ra của bộ lọc 0÷500 Hz, với hai giá trị pitch được xem xét: pitch tổng thể của khung hiện tại và khung trước đó Đối với mỗi giá trị pitch, hàm tự tương quan chuẩn hoá được tính trên khoảng ± 5, sau đó tìm pitch phân xung quanh giá trị nguyên tối ưu Pitch phân có giá trị hàm tự tương quan chuẩn hoá lớn hơn sẽ được chọn làm pitch mới P2, với giá trị hàm tự tương quan r(P2) thể hiện cường độ voice trong dải tần 0÷500 Hz Giá trị P2 sẽ được dùng để xác định cường độ voice ở các dải tần khác, xác định pitch cuối cùng và tính toán độ khuếch đại Đối với các dải tần còn lại, cường độ voice được xác định là giá trị lớn hơn trong hai giá trị đã cho.
+ r(P2) trong thủ tục tìm pitch phân trong dải tần này
+ r(P2) trong thủ tục tìm pitch phân của đường bao miền thời gian của tín hiệu trong dải này
Giá trị sẽ giảm 0.1 để điều chỉnh sai số từ việc làm trơn tín hiệu đường bao trong miền thời gian Đường bao này được tính toán thông qua một khối tách toàn dạng sóng kết hợp với một bộ lọc làm trơn, bao gồm một điểm không một chiều và một cặp điểm cực phức tại tần số 150 Hz với bán kính 0.97.
Bước 4: Xác định chính xác pitch phân
Thủ tục này dựa trên cơ sở nội suy để tăng độ chính xác của giá trị pitch đầu vào
Giải pháp điều chế và giải điều chế để truyền dữ liệu qua kênh thoại GSM
2.4.1 Phương pháp điều chế tín hiệu tựa tiếng nói
Phương pháp điều chế tín hiệu tựa tiếng nói đã được nghiên cứu và trình bày trong nhiều bài báo của các tác giả khác nhau Phương pháp này cho phép truyền dữ liệu dưới dạng tổng hợp thành tiếng nói, dựa trên ba đặc tính chính.
1) Đường bao của phổ tiếng nói được biểu diễn bởi các tần số phổ vạch (LSF)
2) Tần số cơ bản hoặc cao độ của giọng nói (pitch)
3) Hình dạng và năng lượng kích thích ACELP (hoặc CELP) Các thông số nêu trên được bảo tồn khi truyền qua kênh thoại GSM và PSTN
Dữ liệu đầu vào được ánh xạ đến các thông số thông qua ba bảng mã, hay còn gọi là codebook, và sau đó được nhập vào bộ tổng hợp (Hình 2.9) Tiếng nói tổng hợp này không thuộc về ngôn ngữ của bất kỳ cư dân nào trên thế giới, mà chỉ mang tính chất tương tự như tiếng nói trong việc nén và giải nén thông tin.
Hình 2.9 Sơ đồ khối của phương pháp điều chế tín hiệu tựa tiếng nói [5][30]
Tiếng nói được tổng hợp và phát đi với các thông số chính Bộ phận phân tích tiếng nói sẽ tách các thông số, kiểm tra tính tương thích và tra cứu trong bảng mã để lấy dữ liệu.
Hình 2.10 Sơ đồ khối của phương pháp giải điều chế tín hiệu tựa tiếng nói [30]
Dữ liệu được mã hóa với 10 bit cho LSF, 5 bit cho cao độ và 5 bit cho năng lượng, tổng cộng là 20 bit được truyền trong 20 ms, tương ứng với tốc độ bit 1 kbps Để đạt được tốc độ bit cao hơn, cần sử dụng các bảng mã lớn hơn.
Trong phương pháp này, có hai nhiệm vụ chính cần thực hiện: chọn loại mã hóa tiếng nói phù hợp và thiết kế các bảng mã tương ứng Hệ thống GSM sử dụng mã nén tiếng nói theo thuật toán CELP – ACELP, do đó, việc chọn mã nén cùng loại với hệ thống kênh truyền giúp giảm thiểu sai lệch trong quá trình truyền dữ liệu Các loại mã có thể lựa chọn bao gồm GSM-HR (VSELP), GSM-EFR, GSM-ARM (ACELP), CELP và Speedx, trong đó GSM-EFR được ưu tiên do dễ triển khai Loại mã nén được chọn sẽ quyết định cách thức thiết kế bảng mã.
Thiết kế bảng mã là một quy trình phức tạp và tốn nhiều thời gian, trong đó bảng mã thực hiện việc ánh xạ dữ liệu vào các thông số và sau đó nhập chúng vào bộ tổng hợp tiếng nói.
Có hai phương pháp được sử dụng để điền vào các bảng mã
Phương pháp biểu đồ là cách tạo bảng mã với các tham số thường xuyên sử dụng và ít sai lệch nhất khi truyền tải từ một đoạn ghi âm mẫu tiếng nói Giả định chính là những tham số này sẽ đảm bảo độ chính xác cao trong quá trình truyền thông tin.
Việc truyền thông tin qua hệ thống sẽ dễ dàng hơn khi áp dụng phương pháp bảo toàn Sau khi phân tích mẫu âm thanh từ máy phân tích EFR, các tham số được trích xuất và thống kê Chẳng hạn, tham số LSF bao gồm 5 chỉ số và lần đầu tiên được lượng tử hóa thành 7 bit Để truyền 2 bit trên tham số này, biểu đồ được chia thành 4 khoảng, trong đó giá trị tối đa được tìm thấy trong mỗi khoảng và đưa vào bảng mã, nhằm tránh việc tất cả các lựa chọn quá gần nhau Quy trình tương tự cũng được áp dụng cho các chỉ số LSF khác, dẫn đến bảng mã là sự kết hợp của tất cả các giá trị tối đa trong biểu đồ Phương pháp tương tự cũng được thực hiện cho các tham số như pitch và năng lượng.
Giải thuật di truyền GA
Giải thuật di truyền (GA) là một phương pháp tối ưu hóa hiệu quả cho quá trình dò tìm, trong đó vấn đề được định nghĩa rõ ràng và được gọi là bộ gen Bộ gen có thể được xác định theo nhiều cách khác nhau, và hiệu quả của phương pháp này phụ thuộc vào cách giải quyết vấn đề Một quần thể được hình thành từ một tập hợp con của bộ gen sẽ tiến hóa thông qua các cơ chế như đột biến và trao đổi chéo, dẫn đến sự tồn tại của bộ gen thích nghi Cuối cùng, chức năng luyện tập sẽ đánh giá và chọn ra bộ gen tốt nhất để tiếp tục phát triển.
Phương pháp này không đảm bảo sự hội tụ đến giải pháp tối ưu Bạn có thể sử dụng bộ công cụ GA trong Matlab để thực hiện các mô phỏng hiệu quả.
Yêu cầu là chọn các mục cho bảng mã với BER thấp nhất, nhưng việc này gặp khó khăn trong việc tối ưu hóa bằng GA Khi tối ưu hóa LSF, các tham số khác được giữ cố định, dẫn đến việc bộ gen trở thành bảng mã của các tham số LSF Hàm luyện tập được sử dụng để tính toán BER cho từng mục trong bộ gen và sau đó tính trung bình kết quả Mặc dù chỉ có thể tối ưu hóa một tham số tại một thời điểm, để đạt được kết quả tốt nhất, cần phải tối ưu hóa đồng thời nhiều tham số, điều này tạo ra một thách thức lớn.
Tính ổn định của hệ thống
Bộ lọc STP (dự đoán thời gian ngắn) và LTP (dự đoán thời gian dài) là các bộ lọc IIR với đáp ứng xung vô hạn, thuộc mô hình toàn cực Việc lựa chọn bộ lọc phù hợp là rất quan trọng để tối ưu hóa hiệu suất trong các ứng dụng dự đoán.
Có 66 hệ số có khả năng gây ra sự mất ổn định Để đảm bảo tính ổn định khi lựa chọn các hệ số này, cần áp dụng các tiêu chuẩn kiểm tra cụ thể.
1) Trong miền tần số (biến đổi Fourier): Nyquist
2) Trong miền Z (biến đổi Z): Schur-Cohn
3) Trong miền S (biến đổi Laplace): Routh Hurwitz Với bậc lọc 10 và bảng mã 1000 phần tử việc kiểm tra mọi tổ hợp các hệ số xem có ổn định không dù là sử dụng máy tính cũng là công việc khổng lồ Ngoài ra đối với hệ thống nén tiếng nói các hệ số của bộ lọc thu được từ hệ vật lý thật tức là từ lời nói có tính chất thay đổi chậm từ mẫu này đến mẫu khác Đối với quá trình điều chế tựa tiếng nói, dữ liệu là số bất kỳ nên dữ liệu hiện tại và dữ liệu kế tiếp có thể không liên quan đến nhau Khi tổng hợp thành tiếng nói thì mẫu tiếng nói trước và mẫu tiếng nói sau có tham số thay đổi đột ngột Tiếng nói giả này truyền trên GSM có thể bị sai lệch nhiều khi tái tạo lại Đây cũng là một trở ngại lớn
2.4.2 Đề xuất phương pháp điều chế tín hiệu kiểu viễn thông truyền thống có cấu trúc phổ gần giống phổ của tiếng nói
2.4.2.1 Điều chế tín hiệu kiểu viễn thông truyền thống Điều chế theo phương thức viễn thông truyền thống được nhiều tác giả nghiên cứu
Thực nghiệm cho thấy điều chế khóa pha (PSK) hiệu quả hơn so với điều chế khóa biên độ (ASK) và điều chế khóa tần số (FSK) Trong trường hợp của ASK, bộ mã hóa tiếng nói của GSM sử dụng AGC để phát hiện và bù đắp các thay đổi về biên độ, điều này có thể dẫn đến lỗi ở máy thu Ngoài ra, FSK cũng không phải là lựa chọn tối ưu do băng thông hạn chế.
(4 kHz) Điều chế (số) dịch pha vi sai DPSK thường được chọn vì tính đơn giản khi thực hiện và không cần bộ thu kết hợp
BẢO MẬT DỮ LIỆU SỬ DỤNG THUẬT TOÁN SINH SỐ GIẢ NGẪU NHIÊN DỰA TRÊN DÃY PHI TUYẾN HAI CHIỂU LỒNG GHÉP
Giới thiệu m-dãy
3.1.1 Thanh ghi dịch và đa thức nguyên thủy Để dựng một m-dãy có độ dài N = 2 m – 1, ta biểu diễn đa thức nguyên thủy (prime polynomial) h(d) bậc m có dạng như sau:
Đa thức h0 = hm = 1 được sử dụng để xây dựng thanh ghi dịch phản hồi tuyến tính (LFSR), bao gồm m nút đại diện cho các phần tử nhớ hoặc flip-flops, mỗi phần tử có thể lưu trữ giá trị ‘0’ hoặc ‘1’ Khi có sườn lên của xung nhịp Clock, giá trị trong các phần tử nhớ sẽ được dịch sang bên phải, trong khi giá trị phản hồi được tính toán từ các hệ số của đa thức h(d) và phản hồi về phần tử đầu bên trái Phép tính phản hồi thực hiện qua phép nhân và cộng theo mô-đun 2, tương đương với các phép toán AND và XOR trong mạch điện tử.
Dựa vào đặc tính này, ta nhận thấy rằng một chuỗi có thể được tạo ra từ một bộ LFSR với 2 trạng thái, trong đó các hệ số phản hồi được kết nối đến đầu ra của phần tử nhớ thứ i khi hi = 1, và không có phản hồi khi hi = 0.
Hình 3.1 Thanh ghi dịch phản hồi tương đương h(d)
75 Đa thức h(d) là đa thức nguyên thủy bậc m nếu số nguyên nhỏ nhất n, mà đối với số này d n + 1 chia hết cho đa thức g(d) với n = 2 m – 1
Đa thức h(d) = d^5 + d^4 + d^3 + d + 1 là một đa thức nguyên thủy bậc m = 5, với số nguyên n nhỏ nhất mà d^n + 1 chia hết cho đa thức g(d) là n = 31 Ngược lại, đa thức h(d) = d^5 + d^4 + d^3 + d^2 + d + 1 không phải là nguyên tố, vì d^6 + 1 có thể phân tích thành (d + 1)(d^5 + d^4 + d^3 + d^2 + d + 1), dẫn đến số n nhỏ nhất bằng 6.
Số đa thức nguyên thủy bậc m bằng:
Trong đó F(n) là hàm Euler xác định bởi:
Hàm Euler F(n) đại diện cho số lượng các số nguyên dương nhỏ hơn n mà là các số nguyên tố cùng nhau với n, trong đó p|n là ký hiệu cho "tất cả các ước số nguyên tố của n".
Ví dụ 3.2 cho thấy F(15) = 15(1 – 1/3)(1 – 1/5) = 8, với các số nguyên tố cùng nhau so với 15 là {1, 2, 4, 7, 8, 11, 13, 14} Hơn nữa, F(31) = 30 chứng minh rằng F(p) = p – 1 cho mọi số nguyên tố p ≥ 1, vì tất cả các số dương nhỏ hơn p đều là số nguyên tố cùng nhau với p.
Bảng 3.1 Thống kê số lượng đa thức nguyên thủy có bậc m
Bậc m Độ dài chuỗi N = 2 m - 1 Số đa thức
Bậc m Độ dài chuỗi N = 2 m - 1 Số đa thức
3.1.2 Dãy có độ dài cực đại
Trong hình 3.2, từ m nút với các giá trị 0 hoặc 1, có thể tạo ra 2 m trạng thái khác nhau cho thanh ghi dịch Tuy nhiên, trạng thái chỉ chứa giá trị 0 không thể xuất hiện, vì điều này sẽ dẫn đến một dãy toàn bit 0 Do đó, chu kỳ cực đại của thanh ghi dịch có thể đạt tới 2 m - 1.
Theo tài liệu [20], nếu h(d) là một đa thức nguyên thủy bậc m, thì thanh ghi dịch sinh ra từ h(d) sẽ tạo ra một dãy đầu ra có chu kỳ 2^m - 1 Dãy này được gọi là m-dãy.
Hình 3.2 Mạch thanh ghi dịch với hàm h(d) = d5 + d4 + d3 + d + 1
Mô hình mạch LFSR với hàm h(d) = d^5 + d^4 + d^3 + d + 1 là một đa thức nguyên thủy, cho phép tạo ra một m-dãy có chu kỳ N = 2^5 - 1 = 31 Dãy đầu ra ci được biểu diễn như sau: 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1 0 1 1 1 1 1 0.
Bảng 3.2 Bảng các trạng thái thanh ghi dịch với hàm h(d) = d5 + d4 + d3 + d+1
Xung nhịp i Trạng thái Xung nhịp i Trạng thái
3.1.3 Các thuộc tính của m-dãy
Theo [20] một m-dãy {an} với đa thức sinh h(d) có các thuộc tính:
1) Dãy có bậc m thì chu kì của dãy là N = 2 m – 1
2) Có chính xác N = 2 m – 1 dãy không toàn ‘0’ được tạo bởi h(d): chúng chỉ đơn giản là tập hợp N pha khác nhau (dịch vòng) của a = {an} được gọi: a, Ta, T 2 a,…, T N-
1a Trong đó, T m kí hiệu cho phép dịch là dịch một vector sang bên trái m vị trí Nếu a = {an} = (a0, a1, a2, , aN-1) thì Ta = (a1, a2, a3,…, aN-1, a0), T 2 a = (a2, a3,…, aN-2, aN-
3) Trong số N dãy được tạo bởi h(x) có chính xác một dãy {an} có tính chất: an a2n cho tất cả n = 0,1,2,…
4) Mỗi dãy không toàn ‘0’, có chu kì N = 2 m - 1 thì bước chạy có độ dài m là sự xuất hiện của số ký tự ‘1’ liên tiếp là một lần trong một chu kỳ của dãy, một bước chạy có độ dài m-1 cho ‘0’, 2 bước chạy có độ dài m-1 cho ‘1’, 2 bước chạy m-2 cho
‘0,…, 2 m-r bước chạy có độ dài r cho ‘1’,…
5) Thuộc tính cộng và dịch, các trạng thái nó cho tất cả 0 ≤ r,s ≤ N-1 có tồn tại một giá trị t sao cho: T r a + T s a = T t a Điều này chính là tổng của hai m-dãy là một m-dãy khác được tạo bởi cùng h(x) Một dãy có chu kì N là một m-dãy nếu và chỉ nếu nó có các thuộc tính cộng và dịch
6) Số giá trị 1 trong mỗi chu kỳ là 2 m-1 ; số giá trị 0 là 2 m-1 – 1
7) Hàm tự tương quan (ACF) có hai mức:
8) Nếu dãy nhị phân m được lấy mẫu với f bằng mũ 2, thì cùng dãy trả về
9) Lấy mẫu một m-dãy với mỗi phép quay f, gcd(f,N) = 1, 1 ≤ f ≤ N-1, N = 2 m –
1, sẽ đưa ra F(2 m -1)/m m-dãy có chu kì 2 m – 1
10) Khoảng tuyến tính bằng bậc m Nó cho ta biết rằng có thể xác định được m- dãy đó nếu như xác định đúng 2m giá trị trong dãy
Dãy có cấu trúc lồng ghép
3.2.1 Xây dựng dãy lồng ghép và dãy phi tuyến lồng ghép
Kỹ thuật lồng ghép dựa vào các m-dãy có độ dài phân tích được, với ít nhất một nhân tử dạng 2 m – 1 Thứ tự lồng ghép và các dãy con được xác định để quyết định cấu trúc mã Tiếp theo, cấu trúc này được chuyển đổi thành phi tuyến nhằm tăng cường tổ hợp mã và độ phức tạp, có thể áp dụng qua nhiều phương pháp khác nhau.
- Phương pháp 1: Giữ nguyên thứ tự lồng ghép nhưng thay m-dãy con thành phần bằng m-dãy khác có cùng độ dài
- Phương pháp 2: Giữ nguyên thứ tự lồng ghép nhưng thay m-dãy con thành phần bằng dãy phân bố tựa ngẫu nhiên cùng độ dài
- Phương pháp 3: Dùng dãy tích của T m-dãy con thành phần tạo dãy lớn
- Phương pháp 4: Dùng dãy tích của T dãy con thành phần là các m-dãy khác nhau tạo dãy lớn
Các phương pháp được chia thành hai nhóm chính: nhóm thứ nhất sử dụng cấu trúc lồng ghép đa cấp (I p T) và lồng dãy con ngẫu nhiên từ m-dãy khác để tạo dãy phi tuyến (phương pháp 1 và 2) Nhóm thứ hai trực tiếp tạo dãy phi tuyến thông qua dãy tích T bậc và thực hiện nhiều cấp (phương pháp 3 và 4) Khi tạo dãy tích, ta có thể tạo dãy có độ dài k.L (với k là số nguyên dương tùy ý và L = 2 m – 1), trong khi dãy lồng ghép đa cấp phi tuyến có độ dài T.L = 2 n – 1 (T là chu kỳ lồng ghép, L là độ dài m-dãy).
Dãy có cấu trúc lồng ghép có thể được biểu diễn và phân tích bằng hai công cụ toán học trên trường hữu hạn là hàm Vết và biến đổi D Cả hai công cụ này đều tương đương và cung cấp cách biểu diễn các phần tử trong trường hữu hạn Dưới đây là đánh giá về hai phương pháp này.
Phương pháp sử dụng hàm Vết là công cụ hiệu quả cho việc nghiên cứu tạo và lồng ghép dãy m Tuy nhiên, hàm Vết chỉ áp dụng được cho dãy có độ dài L = p m – 1, điều này hạn chế khả năng xây dựng cấu trúc lồng ghép với độ dài tùy ý Hơn nữa, phương pháp này không cung cấp thông tin về trạng thái của LFSR.
Phép biến đổi D là một phương pháp ngắn gọn và dễ thực hiện, cung cấp đầy đủ thông tin về trạng thái LFSR Phương pháp này có thể áp dụng cho bất kỳ dãy tuần hoàn nào với độ dài có thể phân tích thành dạng L = T.N Được coi là phương pháp gần gũi với phần cứng, phép biến đổi D có khả năng tính toán độ phức tạp (ELS) và hàm tương quan (ACF) của dãy Chính vì vậy, phép biến đổi D được sử dụng rộng rãi trong việc phân tích, đánh giá và tạo ra các dãy số.
Kiến trúc dãy lồng ghép [1b]
Ta quan tâm tới m-dãy tam phân {bn} có độ dài L = q n -l với q là một số nguyên tố nhận các giá trị trong tập {2, 3, 5, 7…} sao cho n=m.l
Theo nghiên cứu trong bài báo [1b], có thể tạo ra dãy {bn} bằng cách lồng ghép (S-1) dãy con với độ dài N Các dãy con này được hình thành thông qua phép nhảy bước (decimation) trên dãy {bn} với bước nhảy S.
Khi phép nhảy bước bắt đầu từ bit đầu tiên của {bn}, ta thu được dãy con:
Tương tự như vậy, với vị trí bắt đầu nhảy bước là t, ta thu được dãy con
Các dãy con này, được sắp xếp theo cột, có thể được xem là ghép kênh theo bước thời gian S để bố trí vào S khe thời gian, như minh họa trong sơ đồ dưới đây.
Sơ đồ l: Ghép các dãy con theo thời gian
Thứ tự mà các chuỗi con được ghép vào trong thực tế là thứ tự lồng ghép đã xét ở trên
Bây giờ ta chỉ cần tìm kiếm trong Bảng 3.4 để tìm ra biển diễn theo biến đổi d
Si(d S) của dãy con theo cột xác định thứ tự của Si(d S) trong bảng 1 Đối với trường hợp dãy con chỉ chứa các giá trị con, thứ tự lồng ghép được coi là ¥.
Bài báo [1b] nhấn mạnh một đặc điểm quan trọng của dãy lồng ghép, đó là mỗi dãy con trong dãy lồng ghép đều là một m-dãy với bậc m, nhưng chúng lệch pha với nhau một khoảng xác định bởi các phần tử tương ứng Nhiệm vụ chính trong việc xây dựng dãy lồng ghép là tính toán trước các giá trị của các phần tử, từ đó xác định các dãy con để ghép thành dãy đầu ra.
Xây dựng dãy lồng ghép phi tuyến
Có nhiều phương pháp để tạo dãy phi tuyến, trong đó cách lồng ghép phi tuyến dựa vào các giá trị pha tìm được được sử dụng để thay đổi dãy con, từ đó tạo ra dãy mới với khoảng tuyến tính lớn hơn Để thực hiện việc tạo dãy phi tuyến, cần tuân theo các bước đã được nêu trong bài báo [1b].
Ta sẽ sử dụng hai m-dãy đầu vào {an} và {bn} với cùng bậc n và bộ tham số n, m,
S giống nhau Sử dụng kiến trúc lồng ghép, ta xây dựng nên các dãy lồng ghép với thứ tự lồng ghép và tương ứng
Trong bước này, chúng ta giữ nguyên các giá trị pha lồng ghép 𝐼 3 # và thay đổi các dãy con bằng các dãy con tương ứng với dãy đầu vào thứ hai Cụ thể, quá trình này thực hiện việc chọn m-dãy với các tính chất được tạo ra từ hai đa thức nguyên tố khác nhau, nhằm lồng ghép với các giá trị pha lồng ghép 𝐼 3 # khác nhau, được tính từ các đa thức tạo m-dãy có bậc là bội của đa thức tạo dãy lồng ghép.
Trong phần 3.2.2.3, bài viết trình bày các đánh giá chi tiết về độ phức tạp tuyến tính của một dãy lồng ghép phi tuyến cụ thể, sử dụng khoảng tương đương tuyến tính (ELS) Kết quả cho thấy rằng dãy lồng ghép phi tuyến có độ phức tạp cao hơn so với dãy lồng ghép thông thường.
3.2.2 Các tính chất của dãy lồng ghép
Trong các hệ thống hiện nay, mọi dãy ngẫu nhiên đều được tạo ra bởi máy tính hoặc thiết bị khác, dựa trên một thuật toán nhất định để đảm bảo tính chất ngẫu nhiên Do đó, những dãy này được gọi là dãy giả ngẫu nhiên.
Các phép đo cho dãy giả ngẫu nhiên 2 mức:
1) Thuộc tính cân bằng: xác suất xuất hiện bit ‘0’ và bit ‘1’ là gần bằng nhau (mỗi loại bằng 1/2) Trong thực tế, số lượng bit ‘0’ và ‘1’ sai khác nhau là một đơn vị, sở dĩ là như vậy là do bộ tạo dãy loại trừ trạng thái tất cả các bit bằng ‘0’, và sự sai khác nhau 1 bit này không có ý nghĩa khi dãy cực dài
2) Thuộc tính chạy: sự kéo dài của bit ‘0’ hoặc bit ‘1’ liên tiếp trong dãy được định nghĩa là một bước chạy Một bước chạy được định nghĩa là một nhóm bit cùng loại (‘1’ hoặc ‘0’) liên tiếp tồn tại trong dãy Trường hợp có một bit ‘0’ hay bit ‘1’ xen giữa các bit ‘1’ hay ‘0’ liên tiếp cũng được xem là kết thúc một bước chạy và bắt đầu một bước chạy mới Độ dài bước chạy là số bit trong mỗi bước chạy Đặc tính chạy trong dãy giả ngẫu nhiên phải thỏa mãn là trong một chu kỳ của dãy số tổng quát có:
1/2 n số bước chạy có độ dài là n
Thực thi dãy lồng ghép bằng phần cứng Vi xử lý
Bằng cách lồng ghép các m-dãy con có độ dài N = 2 m – 1 với các giá trị của dãy pha có độ dài T, chúng ta có thể tạo ra một dãy phi tuyến mới có độ dài L = N.T 2 n – 1, trong đó n phải chia hết cho m.
Mô hình cấu trúc lồng ghép phi tuyến được đưa ra trong [1b] :
Hình 3.3 Lồng ghép các thanh ghi dịch
Trong phần này sẽ thực hiện phần cứng việc tạo dãy phi tuyến theo phương pháp lồng ghép với các giá trị đã biết:
1) Độ dài dãy con bậc m: N = 2 m – 1
3) Các giá trị dãy pha lồng ghép _𝐼 3 # `có độ dài 𝑇 = 5 =
Mô hình lồng ghép, như thể hiện trong Hình 3.3, cho phép thực hiện việc tạo dãy phi tuyến trên các phần cứng như chip xử lý.
Ip Switch (Rearrange shift versions according to
Ip (and adding zero Sequences))
Time multiplex of newly arranged shift version
Hình 3.4 Sơ đồ khối phần cứng tạo dãy lồng ghép phi tuyến
M-dãy tuyến tính là khối được hình thành từ đa thức nguyên tố, sử dụng phần cứng với mô hình LFSR tái cấu hình, như mô tả trong Hình 3.45.
Hình 3.5 LFSR tái cấu hình
Trong mô hình LFSR, hai tham số quan trọng là đa thức khởi tạo G(d) và trạng thái kích hoạt phản hồi S(d) quyết định dãy đầu ra theo công thức 3.13 Hình 3.5 minh họa mô hình LFSR tái cấu hình, sử dụng các thanh ghi dịch và các cổng logic AND, XOR Sơ đồ này cho phép thay đổi các tham số S(d) và G(d) để tạo ra các m-dãy đầu ra tương ứng.
Để tạo m-dãy bằng cách thay đổi trạng thái phản hồi thông qua đa thức bậc 9 g(d) = 1 + d + d^2 + d^3 + d^4 + d^5 + d^6 + d^8 + d^9, bộ LFSR sẽ bao gồm 17 bộ ghi dịch, trong đó có 9 bộ cho S(d) và 8 bộ cho G(d) Dãy đầu vào G(d) sẽ được sử dụng để thực hiện quá trình này.
11111101 có độ dài 8, và để thay đổi trạng thái kích hoạt của LFSR là S(d) = 1 + d 2
+ d 8 thì ta phải kích hoạt chân Enable/Disable ở trạng thái ‘0’ và dãy đầu vào là
Mô hình này nâng cao độ linh hoạt của khối tạo dãy PN, cho phép thay đổi đa thức tạo m-dãy, từ đó có thể tùy ý điều chỉnh dãy đầu ra {an}.
2) ROM 1 Đây là nơi chứa các giá trị 𝐼 3 # được sử dụng để xác định pha lồng ghép dãy {an} được tạo bởi khối PSG Đầu ra của khối vày sẽ là các giá trị 𝐼 3 # tương ứng được điều khiển bởi khối “Điều khiển đọc/ghi”
3) Điều khiển đọc/ghi Khối này sẽ điều khiển việc đọc/ghi cho ROM 2 Khi ở chế độ ghi, khối này sẽ điều khiển ROM 2 ghi dữ liệu đầu vào {an} vào bộ nhớ với chu kì bằng chu kì của dãy đầu vào N giá trị Khi ở chế độ đọc, khối này sẽ nhận giá trị đầu vào từ đầu ra ROM 1 là các giá trị _𝐼 3 # `và cứ sau i chu kì T thì giá trị _𝐼 3 # ′` sẽ được tính như sau:
Như vậy, dãy {bn} đầu ra sẽ được tính như sau:
𝑏 0 = I_𝑎 0 e𝐼 3 # ′[0]f`, _𝑎 0 e𝐼 3 # ′[1]f`, _𝑎 0 e𝐼 3 # ′[2]f`, , _𝑎 0 e𝐼 3 # ′[N-1]f`g (3.13) Trong đó, 𝑎 0 h𝐼 3 # [𝑖]i là giá trị an tại pha 𝐼 3 # [𝑖]
4) ROM 2 Đây là nơi thực hiện việc lưu giá trị của dãy tuyến tính {an} được tạo từ khối PSG.Bộ nhớ của khối này có độ lớn là N địa chỉ lưu trữ.
Ứng dụng dãy lồng ghép phi tuyến trong kỹ thuật mật mã
Các nghiên cứu về kiến trúc dãy lồng ghép phi tuyến đã tạo ra một bộ dãy giả ngẫu nhiên chất lượng cao, có tiềm năng ứng dụng trong kỹ thuật mật mã Để áp dụng dãy lồng ghép phi tuyến vào mã hóa luồng dữ liệu thoại số, tác giả đề xuất quy trình thực hiện cụ thể.
Bước 1: Lựa chọn tham số
Trường Galois GF(2^n) sẽ được áp dụng để tận dụng tối đa lợi thế của các hệ vi xử lý và FPGA trong các phép toán nhị phân.
Chọn bậc dãy ban đầu là n = 26 với m Giá trị các tham số khác như sau:
Lý do lựa chọn bộ tham số này là vì nó cho phép toàn bộ tập thứ tự lồng ghép IPS (8193 x 16 bit) được lưu trữ gọn trong một Block RAM 18Kbit của FPGA.
Để tạo ra dãy lồng ghép phi tuyến, bước đầu tiên là lựa chọn hai đa thức sinh nguyên thủy: f(d) = d^26 + d^22 + d^21 + d^18 + d^13 + d^12 + d^10 + d^8 + d^6 + d^5 + d^2 + d + 1 và g(d) = d^26 + d^20 + d^19 + d^18 + d^16 + d^15 + d^14 + d^13 + d^9 + d^8 + d^4 + d + 1 Sử dụng công thức sinh m-dãy, ta có thể sinh ra hai bộ m*S bit tương ứng với hai dãy Tiếp theo, áp dụng thuật toán Belekamp – Massey để tính các đa thức con, cho ra f1(d) = d^13 + d^12 + d^11 + d^9 + d^7 + d^5 + d^4 + d^3 + 1 và g1(d) = d^13 + d^11 + d^10 + d^8 + d^5 + d^3 + d^2 + d + 1 Trong thực tế, chỉ cần tìm g1(d) là đủ mà không cần sử dụng f1(d) Cuối cùng, bước tiếp theo là tìm tập thứ tự lồng ghép IPS cho dãy lồng ghép thứ nhất với đa thức sinh f(d) và đa thức con f1(d).
Tạo bảng lồng ghép từ bộ m*S phần tử của m-dãy thứ nhất theo đa thức sinh f(d)
Ta sinh ra toàn bộ chu kỳ 2 m -1 phần tử của dãy con 1 theo đa thức sinh f1(d)
Để xác định từng phần tử của tập thứ tự lồng ghép Ik, ta so sánh các cột của bảng lồng ghép với từng đoạn con m-bit lệch pha trong dãy con Nếu cột thứ k của bảng lồng ghép trung với m phần tử của dãy con bắt đầu từ vị trí j, thì Ik được gán là j Ngược lại, nếu cột thứ k chứa m bit toàn 0, ta gán Ik = -1 Mặc dù theo lý thuyết, trường hợp này nên được biểu diễn là Ik = ¥, nhưng để phù hợp với mảng số nguyên, giá trị -1 được sử dụng.
Bước 4: Thực thi sinh dãy lồng ghép phi tuyến trong thực tế
Ba bước trên là quy trình tiền xử lý cần thiết trong giai đoạn chuẩn bị Dữ liệu được lưu trữ để thực hiện sinh dãy lồng ghép phi tuyến, bao gồm các tham số n, m, S, đa thức g1(d) và tập thứ tự lồng ghép IPS Để tạo ra một phần của dãy lồng ghép phi tuyến phục vụ cho việc mã hóa buffer dữ liệu, cần thực hiện các bước cụ thể sau đây.
Sử dụng công thức sinh m-dãy để tạo ra chu kỳ đầy đủ cho dãy con với đa thức sinh g1(d) bậc m, kết quả được lưu trữ trong mảng dữ liệu có kích thước 2 m -1 phần tử Để tránh việc thao tác quay vòng dữ liệu, cần nhân đôi mảng dữ liệu thành 2(2 m -1) phần tử Để tạo chuỗi khóa lồng ghép phi tuyến từ giá trị khởi đầu n phần tử, ta tách riêng (n-m) bit đầu tiên để chuyển đổi thành số nguyên k, nhằm xác định thứ tự cột trong ma trận lồng ghép, và chuyển m bit còn lại thành số nguyên t để xác định vị trí bắt đầu lấy khóa trong cột.
Như vậy chuỗi khóa lấy ra sẽ được bắt đầu từ vị trị Ik + t, lấy liên tục tới vị trí
Để tạo ra đủ lượng bit khóa đầu ra, ta sẽ tiếp tục chuyển sang các cột tiếp theo với chuỗi khóa từ Ik+1 đến Ik+1+2 m -2 Quá trình này lặp lại cho đến khi thu được số lượng bit khóa yêu cầu Nếu giá trị cột khóa vượt quá S-1, ta sẽ quay lại cột đầu tiên Trong trường hợp Ik = -1, chuỗi khóa đầu ra sẽ được lấy từ một chuỗi toàn 0 có kích thước 2 m -1 phần tử Để sử dụng chuỗi khóa đầu ra trong môi trường vi xử lý, cần chuyển đổi dãy bit thành dãy byte nhị phân bằng cách ghép 8 bit liên tục thành một byte dữ liệu.
Quá trình mã hóa và giải mã dữ liệu sử dụng phương pháp mã dòng (Stream Cipher), trong đó mã hóa thực hiện bằng cách cộng module 2 từng bit (XOR) giữa bản rõ và khóa Ngược lại, khi giải mã, bản mã cũng được tạo ra bằng phương pháp cộng module 2 tương tự.
2 từng bit (XOR) giữa bản mã và khóa
Thực thi thuật toán nén Melpe bằng Vi xử lý STM32F
3.5.1 Lưu đồ thuật toán nén thoại Melpe trên ARM [24]
Trong chương 1, chúng tôi đã trình bày lý thuyết về thuật toán nén và giải nén Melp Phần dưới đây sẽ tập trung vào các giá trị thực nghiệm của nén Melpe được thực hiện trên vi xử lý ARM STM32F.
Hình 3.6 Lưu đồ giải nén thoại thuật toán Melpe trên ARM
Mã hóa voice strength băng thông liên quan đến việc lượng tử hóa voice strength của bốn dải tần cao thông qua thủ tục mã giả Thủ tục này sử dụng đầu vào là voice strength của 5 dải tần Đối với các tín hiệu không phải tiếng nói, nếu biên độ voice strength đầu tiên nhỏ hơn hoặc bằng 0.6, giá trị lượng tử hóa của bốn dải tần cao sẽ được xác định là 0.
Luồng bit Melpe đầu vào
Phân tích gói dữ liệu
Giải mã và nội suy biên độ Fourier
Chỉ số biên độ Fourier
Giải mã Voice strength tần thấp/Pitch period
Sinh và nội suy Jitter
Bộ lọc định hình xung
Suy Pitch period Điều chỉnh Pitch period
Hệ số lọc định hình xung
Tham số bộ lọc định hình
Giải mã và nội suy LPC
Lọc nâng cao phổ Lọc tổng hợp
Giải mã và nội suy tổng hợp
Tính toán hệ số khuếch đại
Chỉ số VS tần thấp/pitch period
Chỉ số voice strength băng thông
101 lại, chúng sẽ được lượng tử hóa là 0 hoặc 1 tùy theo biên độ là nhỏ hơn hay lớn hơn 0.6
Lượng tử hóa pitch period và voice strength tần thấp được thực hiện bằng cách sử dụng 7 bit Nếu giá trị voice strength đầu tiên nhỏ hơn hoặc bằng 0.6, khung sẽ được coi là không tiếng và mã toàn giá trị 0 sẽ được gửi Ngược lại, logT sẽ được lượng tử hóa với bộ lượng tử đồng nhất 99 cấp, trong đó phạm vi từ log20 đến log160 Giá trị voice strength đã được lượng tử hóa sẽ nhận giá trị 0 cho trạng thái không tiếng và 1 cho trạng thái có tiếng.
Để tính toán độ khuếch đại (Gain), quá trình đo được thực hiện hai lần trên một khung sử dụng kích thước cửa sổ thích nghi âm sắc Kích thước này được xác định dựa trên các yếu tố cụ thể liên quan đến âm thanh.
Nếu độ mạnh giọng nói đầu tiên lớn hơn 0.6, kích thước cửa sổ sẽ là bội nhỏ nhất của T(1), thường lớn hơn 120 mẫu Nếu kích thước này vượt quá 320 mẫu, nó sẽ được chia đôi Điều này liên quan đến các khung tiếng nói, trong đó sự đồng bộ âm sắc được tìm kiếm trong suốt quá trình tính toán gain Bằng cách sử dụng một bội nguyên của chu kỳ cao độ, sự biến thiên của gain tương ứng với vị trí cửa sổ sẽ được giảm thiểu.
+ Nếu voice strength đầu tiên ≤ 0.6, kích thước cửa sổ là 120 mẫu Đây là trường hợp khung không tiếng hoặc khung tiếng chập chờn
Mã hóa gain được thực hiện thông qua bộ lượng tử hóa đồng nhất 5bit, với giá trị gain thứ 2 có phạm vi từ 10 tới 77 dB Để xác định trạng thái ổn định của khung, một số điều kiện cần được kiểm tra, nếu thỏa mãn, quy trình sẽ kết thúc với chỉ số bằng 0 Nếu không, khung sẽ được coi là tạm thời và bộ lượng tử hóa đồng nhất cấp 7 sẽ được áp dụng Giá trị giới hạn của bộ lượng tử (gmin, gmax) sẽ được tính toán và mã hóa thông qua bộ lượng tử hóa đồng nhất, tạo ra tổng cộng 8 mức có thể khai thác bằng 3 bits.
Cấp phát bit trong các mô hình LPC được thực hiện thông qua việc lượng tử hóa LSF bằng cách sử dụng MSVQ Quá trình này đồng bộ hóa thông tin theo mẫu thay đổi 1/0, trong khi việc bảo vệ lỗi chỉ được áp dụng cho một số trường hợp nhất định.
102 cho các khung không tiếng Mỗi khung sẽ được truyền tổng cộng là 27 bit, với độ dài là 22.5 ms Kết quả ta có bit-rate là 1200 bps
3.5.2 Lưu đồ thuật toán giải nén Melpe trên ARM [24]
Hình 3.7 Lưu đồ giải nén thoại thuật toán Melpe trên ARM
Hình 3.8 Lưu đồ giải nén thoại thuật toán Melpe trên ARM
Luồng bit Melpe đầu vào
Phân tích gói dữ liệu
Giải mã và nội suy biên độ Fourier
Chỉ số biên độ Fourier
Giải mã Voice strength tần thấp/Pitch period
Sinh và nội suy Jitter
Bộ lọc định hình xung
Suy Pitch period Điều chỉnh Pitch period
Hệ số lọc định hình xung
Tham số bộ lọc định hình
Giải mã và nội suy LPC
Lọc nâng cao phổ Lọc tổng hợp
Giải mã và nội suy tổng hợp
Tính toán hệ số khuếch đại
Chỉ số VS tần thấp/pitch period
Chỉ số voice strength băng thông
C hỉ s ố LP C Chỉ số gain
Luồng bit Melpe đầu vào
Phân tích gói dữ liệu
Giải mã và nội suy biên độ Fourier
Chỉ số biên độ Fourier
Giải mã Voice strength tần thấp/Pitch period
Sinh và nội suy Jitter
Bộ lọc định hình xung
Suy Pitch period Điều chỉnh Pitch period
Hệ số lọc định hình xung
Tham số bộ lọc định hình
Giải mã và nội suy LPC
Lọc nâng cao phổ Lọc tổng hợp
Giải mã và nội suy tổng hợp
Tính toán hệ số khuếch đại
Chỉ số VS tần thấp/pitch period
Chỉ số voice strength băng thông
C hỉ s ố LP C Chỉ số gain
Luồng bit Melpe đầu vào được phân tích và chỉ số được chuyển đến các bộ giải mã tương ứng Mô hình tạo tiếng nói đã được tích hợp vào cấu trúc giải nén, cho thấy sự cải tiến so với lưu đồ nén Trong quá trình xử lý, hai bộ lọc quan trọng được bổ sung: bộ lọc nâng cao phổ với đầu vào là kích thích hỗn hợp và bộ lọc phân tán xung ở giai đoạn cuối Hai bộ lọc này nhằm nâng cao chất lượng của tiếng nói tổng hợp, tạo ra luồng PCM đầu ra rõ ràng và tự nhiên hơn.
Trong quá trình giải mã Melpe, các tham số từ dòng bit được phân tích theo các lược đồ tương ứng, bao gồm LPC (LSF), pitch period/voice strength tần thấp, voice strength băng thông, gain (g1 và g2), cờ không tuần hoàn và các biên độ Fourier Những tham số này đại diện cho thông tin của khung và thường được nội suy tuyến tính trong quá trình tổng hợp tiếng nói Đối với các khung không tiếng, giá trị mặc định được sử dụng là pitch period = 50, jitter = 0.25, tất cả các biên độ Fourier đều là 1, và tất cả các giá trị voice strength đều là 0, nhằm phục vụ cho việc nội suy tuyến tính "pitch period – by – pitch period" Tham số jitter, chỉ được sử dụng trong giải mã để điều khiển ngẫu nhiên trong quá trình tạo âm kích thích không tuần hoàn, có giá trị 0.25 nếu cờ không tuần hoàn là 1, và 0 trong trường hợp ngược lại, trong khi pitch period được giải mã từ dòng bit.
Bộ lọc tổng hợp là một loại bộ lọc đỉnh cộng được thiết kế theo hình thức trực tiếp, với các hệ số tương ứng được suy ra từ LSF.
Bộ lọc phân tán xung là một bộ lọc FIR 65 lớp, được thiết kế để trích xuất từ một xung tam đỉnh với phổ phẳng Nó hoạt động gần như như một bộ lọc thông suốt, cho phép tín hiệu đi qua mà không bị biến dạng.
Sự thay đổi trong đáp ứng biên độ là tương đối nhỏ, với bộ lọc phân tán xung được sử dụng để cải thiện bộ lọc tổng hợp băng thông cho tiếng nói tự nhiên dạng sóng Điều này đặc biệt hiệu quả trong các vùng không có cộng hưởng đỉnh, giúp tiếng nói tự nhiên sau khi lọc băng thông có tỉ lệ đỉnh-trũng nhỏ hơn so với tiếng tổng hợp.
Tối ưu hóa melpe
MELPe được ưa chuộng trong nhiều lĩnh vực, đặc biệt là an ninh quốc phòng, nhờ hiệu suất tuyệt vời và tốc độ bit thấp Tuy nhiên, thuật toán của MELPe có độ phức tạp cao và yêu cầu thời gian xử lý đáng kể.
Trong luận văn này, MELPe được triển khai trên nền tảng ARM STM32F437 Cortex M4, sử dụng Gprofile - một công cụ lập hồ sơ thống kê toàn hệ thống để phân tích hiệu suất mã nguồn Gprofile có khả năng lập hồ sơ toàn bộ chương trình, xác định thời gian mà chương trình tiêu tốn và số lần gọi hàm, những yếu tố quan trọng trong quá trình tối ưu hóa.
Bảng thống kê dưới đây trình bày cấu hình các hàm thực thi của bộ mã hóa MELPe trước khi tiến hành tối ưu hóa Tối ưu hóa chương trình thường được chia thành hai loại: tối ưu hóa thuật toán và tối ưu hóa mã nguồn, mỗi phương pháp có thể được chi tiết hóa Đối với các hàm gọi ít nhưng thời gian thực thi lâu, như iir_2nd_s, thời gian trung bình mỗi lần gọi là 0,03 mili giây, do đó có thể tối ưu hóa ở cấp độ thuật toán Ngược lại, các hàm có mã nguồn nhỏ và được gọi thường xuyên, như L40_mac, L_mac và L_shl, chiếm 50,81% tổng thời gian chạy chương trình, cho thấy rằng chúng có thể được tối ưu hóa ở cấp mã.
Bảng 3.5 Thống kê các hàm thực thi chính của Melpe
Tên hàm thực thi Số lần gọi hàm Thời gian (%)
3.6.2 Tối ưu hóa thuật toán (Optimization of algorithm)
Mục tiêu chính của tối ưu hóa thuật toán là cải thiện hiệu suất mà không làm giảm chất lượng giọng nói Để đạt được điều này, các phương pháp phổ biến bao gồm tái cấu trúc thuật toán, thay đổi thứ tự mã và loại bỏ các phép toán thừa.
1) Cấu trúc lại bộ lọc IIR : Trong thuật toán của MELPe, quy trình của bộ mã hóa bao gồm mô-đun tính toán đỉnh dư (residual peak calculation module) và sửa đổi mô-đun cường độ giọng nói băng thông (modification of bandpass speech strength module) Hai mô-đun này được gọi là bộ lọc IIR bậc hai (hàm “iir_2nd_s”) nhiều lần
Trong hàm, có một vòng lặp "for" thực hiện việc gọi hai hàm là "L_mult" và "L_mac", trong đó bao gồm các phép nhân, chuyển đổi và cộng Câu lệnh shift có thể được tách ra khỏi vòng lặp để tối ưu hóa hiệu suất.
106 và được thực thi ở cuối vòng lặp Điều này không thay đổi kết quả, nhưng đơn giản hóa tính toán
2) Đơn giản hóa câu lệnh lựa chọn : Để đáp ứng nhu cầu của nhiều loại lệnh gọi khác nhau, một số hàm đang sử dụng rất nhiều cấu trúc if-else Hạn chế là các mã này có thể tiêu tốn một lượng lớn thời gian thực hiện trong các lệnh phán quyết và nhảy
Do đó các hàm này phải được tối ưu hóa từ cấu trúc bằng cách được viết lại dựa trên tần suất của lệnh rẽ nhánh
3.6.3 Tối ưu hóa mã (Optimization of code)
Mã nguồn MELPe tiêu chuẩn, được viết bằng ANSI-C, áp dụng thiết kế mô-đun giúp cải thiện khả năng đọc nhưng lại làm tăng số lượng lệnh gọi hàm, dẫn đến hiệu suất giảm Theo quy tắc 2/8, 80% thời gian chạy thường tập trung vào 20% mã chính, vì vậy để tối ưu hóa hiệu quả, cần tập trung vào phần mã này Ngoài ra, phong cách mã hóa C cần được điều chỉnh để phù hợp với kiến trúc và trình biên dịch ARM.
1) Tối ưu hóa các lệnh cơ bản : Tệp “mathhalf.c” chứa rất nhiều hàm thực hiện các phép toán số học nguyên thủy Nhiều trong số chúng là các phép toán cơ bản, chẳng hạn như nhân và tích lũy 32 bit (hàm “L _ mac”) hoặc phép cộng 32 bit bão hòa (hàm “L_add”), có thể được thực hiện bằng lệnh Extended ARM của như SMLAL và QDADD Sử dụng các hướng dẫn đặc biệt này có thể lưu các instructions một cách hiệu quả
2) Hàm nội tuyến (Inline function): Việc thêm tiền tố nội tuyến vào hàm có thể loại bỏ thời gian gọi hàm, vốn tiêu tốn nhiều thời gian Hàm nội tuyến đang thay thế trình gọi bằng mã nguồn của hàm, điều này sẽ làm tăng kích thước mã, cụ thể là trao đổi không gian lấy thời gian Do đó, chỉ có hàm với dung lượng mã nhỏ là thích hợp để sử dụng hàm nội tuyến
Theo bảng trên, các hàm được sử dụng thường xuyên nhất là “L40_mac”,
“L_mac”, “L_shl”, “L_mult”, tác động của kích thước không gian lưu trữ là rất nhỏ, nhưng hiệu quả rất rõ ràng khi giảm 20% tổng thời gian chạy
3) Tối ưu hóa vòng lặp: Hầu hết các chương trình quan trọng sẽ chứa một vòng lặp Trên nền tảng ARM, các vòng lặp có instructions nhỏ khi chúng đếm ngược về
0 Đôi khi, các vòng lặp unrolling (loop unrolling) có thể đạt được hiệu suất tối đa Đây là các kỹ thuật đều được hiệu chỉnh trong code.
Phân tích kết quả thực nghiệm
Nền tảng thử nghiệm được phát triển trên hệ thống ARM Cortex M4, với quá trình mã hóa và giải mã được thực hiện bởi vi điều khiển STM32F437 của ST, sử dụng lõi ARM Cortex M4.
CPU Arm® 32-bit Cortex®-M4 với bộ xử lý số thực FPU hoạt động ở tần số 180 MHz, mang lại hiệu suất cao với tỷ suất DMIPS/MHz đạt 1.25, cho phép hệ thống đạt hiệu năng tối đa lên đến 225 DMIPS.
+ Bộ nhớ: dung lượng bộ nhớ Flash 2 MByte, dung lượng SRAM 256Kbyte
Bảng 3.6 dưới đưa ra độ trễ của hai chuỗi lời kiểm tra trước và sau khi tối ưu hóa
Thời gian cho hai bài kiểm tra là 16,75 giây và 3 giây Sau khi tối ưu hóa, độ trễ mã hóa mỗi khung hình giảm 63,6%, trong khi độ trễ giải mã giảm 41,6% Tổng độ trễ của thuật toán MELPe trên mỗi khung hình đạt khoảng 55,4 ms, phù hợp với yêu cầu giao tiếp thời gian thực Chất lượng giọng nói được đánh giá bằng PESQ, với kết quả PESQ của giọng nói sau khi tối ưu hóa là 3,201, gần giống với 3,158 trước khi tối ưu hóa, cho thấy rằng quá trình tối ưu hóa không làm giảm chất lượng giọng nói.
Bảng 3.6 So sánh độ trễ tính toán Thời gian thoại (giây)
Frame Enc/Dec Delay khi chưa tối ưu (ms)
Delay sau khi tối ưu (ms)
MELPe đã cải thiện hiệu suất ở tốc độ bit thấp hơn nhờ ba tính năng bổ sung Để phục vụ cho các ứng dụng kỹ thuật dựa trên ARM Cortex M4, việc tối ưu hóa được thực hiện thông qua tối ưu hóa thuật toán và mã Kết quả là, độ trễ của mỗi frame đã giảm từ 135.1 mili giây xuống còn 55.4 mili giây mà không ảnh hưởng đến chất lượng Các thí nghiệm cho thấy rằng việc tối ưu hóa này đáp ứng tốt nhu cầu thực hiện theo thời gian thực.
Lưu đồ giải thuật khối mã hóa/giải mã
Giải pháp phân phối cụm từ khóa được lựa chọn trong Luận án là giải pháp phân phối trước, cho phép hai bên biết trước được cụm từ khóa giống nhau.
3.8.1 Lưu đồ giải thuật khối mã hóa
Hình 3.9 Lưu đồ giải thuật khối mã hóa Đọc cụm từ khóa (PassPhase) Bắt đầu
Nạp trạng thái khởi đầu (Initial State)
Có dữ liêu thoại cần mã? Đọc dữ liệu thoại rõ ra buffer
Sinh dòng khóa bằng dãy lồng ghép (keystream)
Thực hiện mã hóa bằng mã dòng Gửi bản mã
Trong quá trình giao tiếp, phía gửi sẽ đọc cụm từ khóa (PassPhase) đã được hai bên thống nhất trước và thiết lập trạng thái khởi đầu Hai bước này chỉ được thực hiện một lần duy nhất trong mỗi phiên liên lạc.
Khi dữ liệu thoại cần mã hóa từ khối nén Melpe, nó sẽ được lưu vào bộ nhớ đệm (buffer) Nếu không có dữ liệu, phiên sẽ kết thúc.
Tiếp theo sẽ sinh dòng khóa (keystream) bằng dãy lồng ghép
Thực hiện mã hóa luồng dữ liệu Melpe bằng mã dòng và tạo ra bản mã thoại
Thực hiện gửi bản mã thoại sang phía bên nhận
3.8.2 Lưu đồ giải thuật khối giải mã
Hình 3.10 Lưu đồ giải thuật khối giải mã Đọc cụm từ khóa (PassPhase) Bắt đầu
Nạp trạng thái khởi đầu (Initial State)
Có nhận dữ liêu thoại mã? Đọc dữ liệu thoại mã ra buffer
Sinh dòng khóa bằng dãy lồng ghép (keystream)
Thực hiện giải mã bằng mã dòng
Xử lý giải nén thoại melpe
Phía nhận sẽ đọc cụm từ khóa (PassPhase) mà 2 bên đã thống nhất từ trước và nạp trạng thái khởi đầu
Khi nhận được dữ liệu thoại mã từ phía gửi, sẽ lưu vào bộ nhớ đệm buffer Nếu không nhận được sẽ kết thúc phiên
Tiếp theo sẽ sinh dòng khóa (keystream) bằng dãy lồng ghép
Thực hiện giải mã luồng dữ liệu thoại mã nhận được bằng mã dòng và gửi luồng dữ liệu đó tới khối xử lý giải nén thoại Melpe.