日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

【混沌加解密调制解调】基于FPGA的混沌自同步混沌数字保密通信系统

發布時間:2025/4/5 windows 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【混沌加解密调制解调】基于FPGA的混沌自同步混沌数字保密通信系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.軟件版本

quartusii12.1

2.本算法理論知識

??? 本系統的基本結構,我們遵循你所提供的結構進行,整個框圖如下所示:

?各個部分的功能如下:

  • 加密算法模塊采用異或運算,它將來自信源編碼的二進制數字序列與密碼序列進行異或運算產生密文序列。加密完成后,再通知驅動系統迭代一次,這樣就可以保證數據的完整性。
  • 驅動系統序列密碼發生模塊的主要功能是產生用于加密的密碼序列。它是數字加密系統中加密可靠性的核心部分,包括機密序列的產生(在發送端對明文進行加密。)因為是自同步系統,所以加密后的混沌序列還要作為驅動系統的迭代值。
  • 解密算法模塊也采用異或運算,在接收端,將密文序列與密碼序列進行異或運算還原成二進制明文序列。
  • 密碼同步檢測模塊主要是產生密碼同步信號來驅動響應系統密碼發生器模塊,用于對接收方的密碼產生器的狀態進行更新。其工作原理是判斷經信道傳輸的密文是否發生變化,如果變化了就產生一個驅動信號,一方面是驅動響應系統進行下一次迭代,另一方面是驅動解密算法模塊進行解密。
  • 響應系統序列發生器模塊的主要功能是產生用于加密的密碼序列,當他接收到密碼同步檢測模塊生成的密碼同步驅動信號后,響應系統就迭代一次。
  • 3.核心代碼

    //`timescale 1 ns/ 100 ps module Encryption_complete_system(i_clk,i_rst,i_enable,//the enable of signali_voice, //the signalo_enable,//the enable of p2so_serial_dout,//the serial data of signalo_serial_frame,o_T_signal//the data of Encryption);input i_clk; input i_rst; input i_enable; input[15:0] i_voice;output o_enable; output o_serial_dout; output o_serial_frame; output signed[31:0]o_T_signal;//change the parallel data to serial data p2s p2s_u(.i_clk (i_clk),.i_rst (i_rst),.i_enable (i_enable),.i_voice (i_voice),.o_enable (o_enable),.o_serial_dout(o_serial_dout)); add_frame add_frame_u(.i_clk (i_clk),.i_rst (i_rst),.i_din (o_serial_dout),.i_enable (o_enable),.o_dout (o_serial_frame),.o_enable ()); wire signed[31:0]xn; wire signed[31:0]yn; wire signed[31:0]zn; Lorenz Lorenz_u(.i_clk (i_clk),.i_rst (i_rst),.i_yn (o_T_signal),.o_xn (xn), .o_yn (yn),.o_zn (zn));Encryption Encryption_u(.i_clk (i_clk),.i_rst (i_rst),.i_din (o_serial_frame),.i_yn (yn),.o_signal (o_T_signal)); endmodule //`timescale 1 ns/ 100 ps module Decryption_complete_system(i_clk,i_rst,i_rec_signal,o_dout,o_dout_sign,o_peak,o_peak_enable,o_peak_dout,o_enable2,o_voice_dout); input i_clk; input i_rst; input signed[31:0] i_rec_signal; output signed[31:0]o_dout; output o_dout_sign; output[6:0] o_peak; output o_peak_dout; output o_peak_enable; output o_enable2; output[15:0] o_voice_dout; wire signed[31:0]xn; wire signed[31:0]yn; wire signed[31:0]zn; Lorenz2 Lorenz2_u(.i_clk (i_clk),.i_rst (i_rst),.i_yn (i_rec_signal),.o_xn (xn), .o_yn (yn),.o_zn (zn)); Decryption Decryption_u(.i_clk (i_clk),.i_rst (i_rst),.i_din (i_rec_signal),.i_yn (yn),.o_signal(o_dout));reg o_dout_sign; always @(posedge i_clk or posedge i_rst) beginif(i_rst)begino_dout_sign <= 1'b0;end else beginif(o_dout < 32'h0000_00ff)o_dout_sign <= 1'b0;elseo_dout_sign <= 1'b1; end end find_frame find_frame_u(.i_clk (i_clk),.i_rst (i_rst),.i_din (o_dout_sign),.o_peak (o_peak),.o_dout (o_peak_dout),.o_enable(o_peak_enable) ); s2p s2p_u(.i_clk (i_clk),.i_rst (i_rst),.i_enable (o_peak_enable),.i_serial_din (o_peak_dout),.o_enable (o_enable2),.o_voice_dout (o_voice_dout)); endmodule clc; clear; close all;N = 50000;x = zeros(N,1); y = zeros(N,1); z = zeros(N,1);x(1) = 0.001; y(1) = 0.002; z(1) = 0.02;S1 = double(rand(N,1)>=0.5); %簡化后的發送 for n = 1:N-1n%反饋if n == 1S1_T(n)= S1(n) + y(n); y(n+1) = 0.028*x(n) - 0.001*x(n)*z(n) + 0.999*y(n); x(n+1) = 0.99*x(n) + 0.01*y(n);z(n+1) = 0.001*x(n)*y(n) + 0.9973333*z(n); elseS1_T(n)= S1(n) + y(n);y(n+1) = 0.028*x(n) - 0.001*x(n)*z(n) + 0.999*S1_T(n); x(n+1) = 0.99*x(n) + 0.01*S1_T(n);z(n+1) = 0.001*x(n)*S1_T(n) + 0.9973333*z(n); endend%簡化后的接收 for n = 1:N-1n%反饋S1_R(n)= S1_T(n) - y(n);y(n+1) = 0.028*x(n) - 0.001*x(n)*z(n) + 0.999*S1_T(n); x(n+1) = 0.99*x(n) + 0.01*S1_T(n);z(n+1) = 0.001*x(n)*S1_T(n) + 0.9973333*z(n); endfigure; subplot(311); plot(S1); title('原信號'); axis([1,N,-1,2]);subplot(312); plot(S1_T); title('加密后的信號');subplot(313); plot(S1_R); title('解密后的信號'); axis([1,N,-2,2]);

    4.操作步驟與仿真結論

    首先實現使用MATLAB進行算法的仿真,我們得到的仿真結果如下所示:

    運行MATLAB程序:

    這個是混沌模型的基本仿真,說明公式以及初始值選取的正確性。

    運行MATLAB程序:

    這個程序是混沌加密調制解調系統的MATLAB浮點仿真結果圖,說明上面的結果是正確的。

    運行MATLAB程序:

    從上面的仿真結果可知,以定點進行仿真,只要量化寬度滿足一定要求之后,其完全不影響系統的精度。

    根據上面的介紹,我們可以編寫了如下的程序:

    自上而下,依次為:

    系統頂層文件

    ——加密調制模塊

    ————加密子模塊,lorenz混沌序列產生模塊,組幀模塊,并串模塊。

    ——解密解調模塊

    ————解密子模塊,Lorenz混沌序列產生模塊,搜幀模塊,串并模塊。

    ?

    仿真結果如下所示:

    其頂層的文件的管腳為:

    1

    i_clk

    系統時鐘,就是接到硬件板子上的晶振位置。

    2

    i_rst

    系統復位,隨便接到板子上的key數字按鍵上。

    3

    o_signal_enable

    測試并行信號的產生使能信號,不用接板子,

    4

    o_signal

    測試并行信號,這個信號為了驗證,你可以接signaltapII上

    5

    o_enable

    加密模塊的使能信號,不用接板子

    6

    o_serial_dout

    串行輸出,接板子上的測試腳或者signaltapII上

    7

    o_serial_frame

    串行信號組幀輸出,接板子上的測試腳或者signaltapII上

    8

    o_T_signal

    加密輸出,這個信號為了驗證,你可以接signaltapII上

    9

    o_dout

    解密輸出,可以接signaltapII上

    10

    o_dout_sign

    解密輸出信號的符號判決,接板子上的測試腳或者signaltapII上

    11

    o_peak

    搜幀模塊的相關峰輸出,不用接板子

    12

    o_peak_enable,

    搜幀模塊的使能輸出,不用接板子

    13

    o_peak_dout

    搜幀模塊的數據輸出,接板子上的測試腳或者signaltapII上

    14

    o_enable2

    最后串并轉化的使能,不用接板子

    15

    o_voice_dout

    最后串并轉化的數據輸出,接板子上的測試腳或者signaltapII上

    5.參考文獻

    [1]馬在光, 吳純英, 丘水生. 混沌同步和混沌通信研究的新進展與新嘗試[J]. 電波科學學報, 2002, 17(3):8.

    A01-53

    6.完整源碼獲得方式

    方式1:微信或者QQ聯系博主

    方式2:訂閱MATLAB/FPGA教程,免費獲得教程案例以及任意2份完整源碼

    總結

    以上是生活随笔為你收集整理的【混沌加解密调制解调】基于FPGA的混沌自同步混沌数字保密通信系统的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。