文章目录
一、解析/思路二、代码三、Main1、Poly_2_82、Func13、Func2一、解析/思路
Main脚本:GF(2^8)上的多项式转换为1·8的数组
Poly_2_8函数:接收多项式f,g,m,返回mod(fg,m)
拆分多项式g,分步与f相乘,并保存于矩阵T
Func1:接收多项式f与拆分的多项式gi,返回fgi的结果
Func2:接收分步相乘的结果T,返回异或结果
二、代码
三、Main
f=[0 1 0 0 1 1 0 1];g=[1 0 0 1 1 0 0 1];m=[0 0 0 1 1 1 0 1];disp(Poly_2_8(f,g,m));
1、Poly_2_8
function [ret] = Poly_2_8(f,g,m)% f,g,m为1·8的矩阵%Func1:二进制乘法%Func2:异或T=[];G=zeros(1,8);for i=1:8if(g(9-i)==1)G(1,9-i)=1;T=[T;Func1(f,G,m)];endG=0.*G;endret=Func2(T);end
2、Func1
function [ret] = Func1(f,g,m)[a,b]=find(g==1);for i=1:8-btemp=f(1);f(1:7)=f(2:8);f(8)=0;if(temp==1)f=xor(f,m);endendret=f;end
3、Func2
function [ret] = Func2(T)ret=T(1,:);temp=size(T);for i=2:temp(1)ret=xor(ret,T(i,:));end