24小时热门版块排行榜    

查看: 896  |  回复: 0

轻叹12321

新虫 (初入文坛)

[求助] AES CPA

编写了AES加密算法的利用汉明距离模型的CPA攻击代码,现在仅可以攻击出第一,第五,第九,第十三字节的正确密钥(攻击位置为最后一轮S盒的输入),其余字节的密钥有错,求助大神到底哪里出错,改了好几天了,万分感谢~全部代码附上,其中original_data是利用另一段代码获得的功耗所做的表格。

keySize=8;
expectKey=17;
blockSize=128;
traceNum=1000;
startPoint=1;
endPoint=148002;
traceDir='..\mat';
matName='original_data'; % mat文件名  T3259_for_hspice_cf.mat
txtName='cipher1.txt'; % 明文或者密文文件名
load('../InvSbox.mat');
load('../HW8.mat');


%%
%
% 装载功率曲线, 生成有效功耗矩阵NxT
%
disp('Loading the power trace to generate NxT matrix ...');
eval(strcat('load(''',traceDir,'/',matName,''');'));
eval(strcat('AxT=',matName,';'));
eval(['clear ',matName,';']);
NxT=AxT(1:traceNum,startPoint:endPoint);%在所有的功耗曲线中取出我们要观测的矩阵,即实测能量迹
clear AxT;

%%
%
% 装载明文输入, 生成有效明/密文矩阵NxB
%
disp('Loading the plaintext to generate NxB matrix ...');
eval(strcat('fp = fopen(''',traceDir,'/',txtName,''',''r'');'));
db = fscanf(fp, '%s', 1);
FSIZE = length(db);
frewind(fp);
db = fscanf(fp, '%s');
fclose(fp);
NFILE = length(db) / FSIZE;
db = reshape(db,FSIZE,NFILE)';
NxB=zeros(traceNum,blockSize);
for i=1:traceNum
    FILELIST=db(i,;
    POS =  1;
    for j=1blockSize/4)
        NxB(i,j*4-3:j*4) = bitget(hex2dec(FILELIST(POS+j-1)), [4 3 2 1]);
    end
end
clear db;

%%
%
% 建立汉明距离或重量模型, 生成猜测功耗矩阵NxK
%
disp('Building the hypothetical power model to generate NxK matrix ...');
[N,T] = size(NxT);
K=2^keySize;
HD=zeros(N,K);
for candidate=1:K
    for trace_index=1:N
        DFFt2=NxB(trace_index,9:16);
        preXOR=bitxor(bitget((candidate-1),keySize:-1:1), NxB(trace_index,9:16));
        preSBOX=InvSbox(preXOR*[128 64 32 16 8 4 2 1]'+1);%转换成10进制,因为matlab从1开始,所以此处要加1
        DFFt1=bitget(preSBOX,keySize:-1:1);
        HD(trace_index,candidate)=bitxor(DFFt1,DFFt2)*[128 64 32 16 8 4 2 1]';
    end
end
NxK=HW8(HD+1);
clear HD;

%%
%
% 计算Pearson相关系数, 生成相关系数矩阵KxT
%
disp('Calculating the correlation to generate KxT matrix ...');
KxT=zeros(K,T);
chunksize=50;
chunks=T/50;
first=1;
last=K;
for i=first:last % 遍历密钥搜索空间
    for j=1:chunks
        cmatrix= corrcoef([NxT(:,1+(j-1)*chunksize:j*chunksize)  NxK(:,i)]);
        KxT(i,1+(j-1)*chunksize:j*chunksize) =cmatrix(chunksize+1,1:chunksize);
    end
end
%clear NxK;

%%
%
% 进行统计分析
%
TxK=KxT';
clear KxT
[max_corr_each_key,max_index_each_key]=max(TxK);
[max_corr,max_index]=max(max_corr_each_key);
point_of_max_corr=max_index_each_key(max_index);

%%
%
% 打印结果
%
fprintf('\n--------------- RESULT @%d TRACES FROM %s --------------\n',traceNum,matName);
fprintf('RK = %d%d%d%d_%d%d%d%d\n',bitget(max_index-1,8:-1:1));
fprintf('Max correlation = %d\n',max_corr);
fprintf('The index of point sequence of max correlation = %d\n',point_of_max_corr+startPoint-1);
fprintf('Percentage = %d %%\n',(point_of_max_corr/T)*100);
toc;
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 轻叹12321 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[职场人生] 40+中年人失业后,还能找到好工作吗? +9 xqy2009 2026-10-13 11/550 2026-10-15 16:37 by beefly
[基金申请] 申请科研项目纯靠实力能成功吗? 200+7 David1982 2026-10-13 11/550 2026-10-15 10:30 by zyqchem
[硕博家园] 极限拉扯,如何抉择 +11 Isak0320 2026-10-12 15/750 2026-10-14 21:55 by 猫鱼不是鱼
[论文投稿] 二审4个多月了还是Awaiting Reviewer Scores 10+3 纳斯达克ML 2026-10-11 4/200 2026-10-14 17:30 by babero
[有机交流] OpenAI又攻克数学难题了,离AI做有机合成还有多远? +8 wangyl_123 2026-10-10 13/650 2026-10-14 15:12 by zuesli
[教师之家] 课题组会帮你通过考核么? +4 好运来~9527 2026-10-10 7/350 2026-10-13 08:41 by xli1984
[公派出国] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:34 by XQNyDCa1Tk5n
[公派出国] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 22:26 by XQNyDCa1Tk5n
[找工作] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 22:26 by XQNyDCa1Tk5n
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:15 by XQNyDCa1Tk5n
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 22:11 by XQNyDCa1Tk5n
[教师之家] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 (EPI+-1)(金币-50) +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 22:06 by XQNyDCa1Tk5n
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 (EPI+-1)(金币-50) +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 14:25 by VOMexwnDzOFZ
[教师之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 (EPI+-1)(金币-50) +4 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 14:05 by VOMexwnDzOFZ
[考研] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 13:51 by VOMexwnDzOFZ
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 13:45 by VOMexwnDzOFZ
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 10:54 by VOMexwnDzOFZ
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +4 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 10:34 by VOMexwnDzOFZ
[考博] 招收博士生一名 +3 mandolin 2026-10-10 3/150 2026-10-11 10:21 by 不是山谷!
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 qR2AdCWTVtkw 2026-10-09 4/200 2026-10-11 03:14 by M0zrYVSAnxpE
信息提示
请填处理意见