1 简介
语音通信是人们日常沟通和交流的重要手段,其安全性已经成为当今社会广泛关注的问题.语音通信安全关乎社会生活的方方面面,因此开发高效的语音安全算法,保障通信安全具有重要的现实意义.AES算法代表了当今最先进的加密技术,应用也最为广泛.其严密的数学理论支撑与先进的整体框架设计,应对差分,线性攻击非常有效.但是,平方(square)攻击法和功耗(power)分析法都已经成功破解了迭代轮数少的AES.混沌系统的运动轨迹难以预测且能由微小的输入变化产生巨大的输出差异,与密码学存在千丝万缕的天然联系.因此,原始AES算法的缺陷能通过融合混沌序列得到解决.本文在国内外相关研究的基础上,从AES算法的基本原理,安全性及混沌理论出发,对混沌序列与AES算法的融合进行了详细研究,设计了一种改进的混沌AES算法.
2 部分代码
function s = aesinit(key)% AESINIT 生成s盒、扩展密钥% 例子: s = aesinit([23 34 168 ... 39])% 密钥: 16位(AES-128), 24位(AES-192), 32位(AES-256)% s: AES结构:包含AES参数validateattributes(key,...{'numeric'},...{'real', 'vector', '>=', 0, '<=', 255});key = key(:);lengthkey = length(key);switch (lengthkey)case 16rounds = 10;case 24rounds = 12;case 32rounds = 14;otherwiseerror('Only AES-128, AES-192, and AES-256 are supported.');end% s结构s = {};% loop over all possible bytesfor inv = 1 : 255% calculate polynomial multiplication and test to be 1if (1 == poly_mult(in, inv, mod_pol))% we find itbreakendendinv = 0;% ------------------------------------------------------------------------function out = aff_trans(in)% Affine transformation over GF(2^8)% Not used for faster s-box generation% modulo polynomial for multiplication in a finite field% bin2dec('100000001');mod_pol = 257;% multiplication polynomial% bin2dec('00011111');mult_pol = 31;% addition polynomial% bin2dec('01100011');add_pol = 99;% polynomial multiplicationtemp = poly_mult(in, mult_pol, mod_pol);% xor with addition polynomialout = bitxor(temp, add_pol);% ------------------------------------------------------------------------function expkey = key_expansion(key, s_box, rounds, mod_pol, aes_logt, aes_ilogt)% Expansion of key% This is old version for AES-128 (192?, 256? not tested):% rcon = ones(1,rounds);% for i = 2:rounds% rcon(i) = poly_mult(rcon(i - 1), 2, mod_pol);% end% % fill bytes 2, 3, and 4 by 0% rcon = [rcon(:), zeros(rounds, 3)];%% kcol = length(key)/4;% expkey = (reshape(key, kcol, 4))';% for i = (kcol + 1):(4*rounds + 4)% % copy the previous row of the expanded key into a buffer% temp = expkey(i - 1, :);% % each fourth row% if (mod(i, 4) == 1)% % shift temp% temp = temp([2 3 4 1]);% % s-box transform% temp = s_box(temp + 1);% % compute the current round constant% r = rcon((i - 1)/4, :);% % xor% temp = bitxor(temp, r);% else% if ((kcol > 6) && (mod(i, kcol) == 0))% temp = s_box(temp);% end% end% % generate new row of the expanded key% expkey(i, :) = bitxor(expkey(i - 4, :), temp);% end% This is new faster version for all AES:
3 仿真结果



正在上传…重新上传取消
4 参考文献
[1]曹宏. 融合混沌序列和AES的电话语音安全算法研究. Diss. 湖南师范大学.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
该文探讨了混沌序列与AES高级加密标准的融合,以提升语音通信的安全性。针对AES算法在少量迭代轮数下可能被平方攻击和功率分析法破解的问题,文中提出了一种改进的混沌AES算法。该算法结合混沌系统的不可预测性和敏感性,增强了密钥的复杂性和安全性。通过AESINIT生成S盒和扩展密钥,并利用混沌序列改进密钥扩展过程。仿真结果验证了新算法的有效性。
399

被折叠的 条评论
为什么被折叠?



