资源简介

伽罗瓦域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.xml

     文件        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个文件信息

评论

共有 条评论