一个matlab程序加密后只能通过密码或者生成密钥来运行程序如何实现?

一个matlab程序加密后只能通过密码或者生成密钥来运行程序如何实现?,第1张

n=4%%%设定允许输入密码的次数即可。

一、需要对数据进行加密解密,而Hill密码学作为以现行代数和矩阵为基础的密码学,对于处在大学的我们是具有相当价值的。实际应用中通过手工破译密码是相当困难的,本文借助了Matlab的推导与计算功能,编写了相应的程序,准确快速的实现了HiLL密码的加密、解密与破译的工作,使其在实际中得到推广。 

 

二、密码学的发展久远大体可以分为几个阶段第一阶段为从古代到1949年。这一时期可以看作是科学密码学的前夜时期,这阶段的密码技术可以说是一种艺术,而不是一种科学,密码学专家常常是凭知觉和信念来进行密码设计和分析,而不是推理和证明。

三、密码学直到今天仍具有艺术性,是具有艺术性的一门科学。这段时期密码学理论的研究工作进展不大,公开的密码学文献很少。20世纪70年代,在IBM沃森公司工作的菲斯特提出菲斯特密码体制,成为当今著名的数据加密标准DES的基础。

四、Rivest、Shamir和Adleman等三人公布了RSA密码体制,是一个真正实用的公钥密码体制,可以用于公钥加密和数字签名。

五、在密码分析领域,王小云教授对经典哈希算法MD5、SHA-1等的破解是近十年密码学的重大进展。随着计算能力的不断增强,现在的DES已经变得越来越不安全。美国国际标准研究所于2000年选择Rijndael作为高级加密算法AES取代DES。

六、密码的基本含义是:原始信息(称为明文)按指定规则(称为算法)转换(此过程称为加密)为使非授权者无法了解的特定符号,这些转换而来的符号(称为密文),必须具有已授权者可以恢复(此过程称为解密)出来的特性;所谓已经授权是指他合法地拥有了可以解密密文的关键信息(称为密钥)。

七、运用的数学手段是矩阵运算,其原理如下:首先将26个英文字母与模26的余数Z26建立一一对应,即A1,B2,…Y25,Z0,通过这种对应关系,把明文变换成数字串X,其次,取定一个正整数m及一个Z26上m阶可逆矩阵K(称为密钥),依次取X的m个数字组成Z26上的向量x=(x1,x2,…xm),利用密钥K加密为y=(y1,y2,…ym)=xK,把所有的y转变为字母,即得密文。

从你的程序看,输入为奇数的时候,你后面补了一个和最后字符相同的字符,比如你输入'ABC',实际相当于输入'ABCC',这样得到的密文为'EHIL',将'EHIL'解密得到的也是'ABCC'。

所以你的哑元并不哑。。

修改,将加密和解密中的

if mod(length_aa,2) == 1

aa = [aa, aa(length_aa)]

end

修改为

if mod(length_aa,2) == 1

aa = [aa, 32]

end

可得到你要的结果。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11425720.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存