資源簡介
伽羅瓦域GF(2^128)乘法器是Ghash算法(一種用于加解密系統散列算法)的核心部件,其速度與硬件開銷決定著整個Ghash模塊的整體性能。本文通過Arash Reyhani-Masoleh 提出的一種算法,進行分析設計,然后用Verilog編程進行仿真,最后用Synplify 進行綜合。最后,通過與一些其他的乘法器實現方法相比較,可以知道,依現在的硬件來看也是很容易實現。
代碼片段和文件信息
clear
clc
%創建128*128矩陣L_M
L_m?=?zeros(128128);
%讀取二進制文本文件內容
L_str?=?textread(‘L_128.mem‘‘%s‘);
for?i?=1:128????%行
????L_count=?L_str{i1};????%保存對一行數據進行處理
????for?j?=1:128????%對一行中的128位拆開
????????num_L?=?L_count(j);
????????L_m(ij)?=?str2num(num_L);
????end
end
%創建128*128矩陣Q_M
Q_m?=?zeros(127128);
%讀取二進制文本文件內容
L_str?=?textread(‘Q_128.mem‘‘%s‘);
for?i?=1:127????????%行
????Q_count=?L_str{i1};????%保存對一行數據進行處理
????for?j?=1:128????%對一行中的128位拆開
????????num_Q?=?Q_count(j);
????????Q_m(ij)?=?str2num(num_Q);
????end
end
%創建128*128矩陣U_M
U_m?=?zeros(127128);
%讀取二進制文本文件內容
U_str?=?textread(‘U_128.mem‘‘%s‘);
for?i?=1:127????????%行
????U_count=?U_str{i1};????%保存對一行數據進行處理
????for?j?=1:128????%對一行中的128位拆開
????????num_U?=?U_count(j);
????????U_m(ij)?=?str2num(num_U);
????end
end
%求Qt
Qt_m?=?Q_m‘;
%求矩陣Qt與U乘
QtU_m?=?Qt_m?*?U_m;
%求L+QtU
LQtU_m?=?L_m?+?QtU_m;
b_m?=?zeros(1281);
b_m(21)?=?1;
C_m?=?LQtU_m?*?b_m;
%s=solve(‘x^128+x^7+x^2+x+1=0‘)
%s=solve(‘x^128+x^7+x^2+x+1=0‘)
%%驗證寫入的L矩陣是正確的
%fp?=?fopen(‘verify_L.txt‘‘wt‘);
%for?i?=1:128
%????for?j?=1:128
%????fprintf(fp?‘%s‘?num2str(L_m(ij)));
%????end
%?????fprintf(fp?‘\n‘);
%end
%fclose(fp);
%
%%驗證寫入的Q矩陣是正確的
%fp?=?fopen(‘verify_Q.txt‘‘wt‘);
%for?i?=1:127
%????for?j?=1:128
%????fprintf(fp?‘%s‘?num2str(Q_m(ij)));
%????end
%?????fprintf(fp?‘\n‘);
%end
%fclose(fp);
%
%%驗證寫入的U矩陣是正確的
%fp?=?fopen(‘verify_U.txt‘‘wt‘);
%for?i?=1:127
%????for?j?=1:128
%????fprintf(fp?‘%s‘?num2str(U_m(ij)));
%????end
%?????fprintf(fp?‘\n‘);
%end
%fclose(fp);
%驗證Qt矩陣是正確的
%fp?=?fopen(‘verify_Qt.txt‘‘wt‘);
%?for?i?=1:128
%?????for?j?=1:127
%?????fprintf(fp?‘%s‘?num2str(Qt_m(ij)));
%?????end
%??????fprintf(fp?‘\n‘);
%?end
%?fclose(fp);
%驗證QtU矩陣是正確的
%?fp?=?fopen(‘verify_QtU.txt‘‘wt‘);
%?for?i?=1:128
%?????for?j?=1:128
%?????fprintf(fp?‘%s‘?num2str(QtU_m(ij)));
%?????end
%??????fprintf(fp?‘\n‘);
%?end
%?fclose(fp);
%驗證LQtU矩陣是正確的
%?fp?=?fopen(‘verify_LQtU.txt‘‘wt‘);
%?for?i?=1:128
%?????for?j?=1:128
%?????fprintf(fp?‘%s‘?num2str(LQtU_m(ij)));
%?????end
%??????fprintf(fp?‘\n‘);
%?end
%?fclose(fp);
%驗證C矩陣是正確的
fp?=?fopen(‘verify_C.txt‘‘wt‘);
????for?j?=1:128
????fprintf(fp?‘%s‘?num2str(C_m(j)));
????end
?????fprintf(fp?‘\n‘);
fclose(fp);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????????0??2017-12-15?16:40??4_matrix\db\logic_util_heursitic.dat
?????文件???23333969??2017-12-15?16:50??4_matrix\db\mul_128.(0).cnf.cdb
?????文件????1084251??2017-12-15?16:50??4_matrix\db\mul_128.(0).cnf.hdb
?????文件????????422??2017-12-13?16:17??4_matrix\db\mul_128.amm.cdb
?????文件?????????89??2017-12-15?16:51??4_matrix\db\mul_128.cbx.xm
?????文件????????203??2017-12-13?16:17??4_matrix\db\mul_128.cmp.kpt
?????文件??????57890??2017-12-15?16:52??4_matrix\db\mul_128.cmp.rdb
?????文件????????208??2017-12-15?16:52??4_matrix\db\mul_128.cmp_merge.kpt
?????文件???????2807??2017-12-13?16:17??4_matrix\db\mul_128.cycloneive_io_sim_cache.45um_tt_1000mv_100c_slow.hsd
?????文件????????138??2017-12-12?17:00??4_matrix\db\mul_128.db_info
?????文件?????312594??2017-12-13?16:17??4_matrix\db\mul_128.fit.qmsg
?????文件????6479765??2017-12-15?16:50??4_matrix\db\mul_128.hier_info
?????文件????????768??2017-12-15?16:51??4_matrix\db\mul_128.hif
?????文件???????4374??2017-12-13?16:17??4_matrix\db\mul_128.idb.cdb
?????文件????????430??2017-12-15?16:50??4_matrix\db\mul_128.lpc.html
?????文件????????388??2017-12-15?16:50??4_matrix\db\mul_128.lpc.rdb
?????文件???????1060??2017-12-15?16:50??4_matrix\db\mul_128.lpc.txt
?????文件???????4712??2017-12-15?16:52??4_matrix\db\mul_128.map.bpm
?????文件?????195812??2017-12-15?16:52??4_matrix\db\mul_128.map.cdb
?????文件??????75141??2017-12-15?16:52??4_matrix\db\mul_128.map.hdb
?????文件????1116968??2017-12-15?16:52??4_matrix\db\mul_128.map.kpt
?????文件??????????4??2017-12-15?16:52??4_matrix\db\mul_128.map.logdb
?????文件???????8660??2017-12-15?16:52??4_matrix\db\mul_128.map.qmsg
?????文件???????2531??2017-12-15?16:52??4_matrix\db\mul_128.map_bb.cdb
?????文件??????15166??2017-12-15?16:52??4_matrix\db\mul_128.map_bb.hdb
?????文件??????????4??2017-12-15?16:51??4_matrix\db\mul_128.map_bb.logdb
?????文件???13551760??2017-12-15?16:50??4_matrix\db\mul_128.pre_map.cdb
?????文件?????530990??2017-12-15?16:50??4_matrix\db\mul_128.pre_map.hdb
?????文件???????1851??2017-12-14?15:48??4_matrix\db\mul_128.rpp.qmsg
?????文件?????530990??2017-12-15?16:50??4_matrix\db\mul_128.rtlv.hdb
............此處省略97個文件信息
- 上一篇:SteamVR1.2.3
- 下一篇:2015年美國大學生數學建模特等獎論文全集
評論
共有 條評論