飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2510|回复: 0

[求助] CAST-128加密算法有没有VB源程序?

[复制链接]
  • TA的每日心情
    无聊
    2018-12-10 18:30
  • 签到天数: 70 天

    [LV.6]常住居民II

    发表于 2006-9-29 01:22:51 | 显示全部楼层 |阅读模式
    CAST-128加密算法,这是一种类似于DES的置换组合网路
    (Substitution-PermutationNetwork,SPN)加密系统,对于微分密码分析、线性密码分析、
    密码相关分析具有较好的抵抗力。这种加密还有其他的几个理想的特点,包括雪崩、严格的
    雪崩标准(SAC)、位独立标准(BIC)、没有互补属性也不存在软弱或者半软弱的密钥。因
    此对于整个Internet社区——要求密码强壮、容易获取的加密算法——而言,这是一种能够
    满足一般应用的很好的选择。
    Adams[Adams]详细地讨论了CAST设计过程,对于这种算法的分析也可以在网上找到
    (比如,[Web1]或[Web2])。

    2 算法的描述
    CAST-128属于称为Feistel加密的一类加密算法,因此所有的操作都类似于数据加密标
    准(DES)。完整的加密算法分下面四步给出。
    输入:明文m1...m64;密钥K=k1...k128
    输出:密文c1...c64
    1)(密钥表)从K计算出16对子钥(Kmi,Kri)(参见2.1到2.4节);
    2)(L0,R0)<--(m1...m64)(把明文分为左右两半,L0=m1…m32,R0=m33…m64);
    3)(循环16次)对于i从1到16,按下述方法计算Li和Ri:
    Li=Ri-1;
    Ri=Li-1^f(Ri-1,Kmi,Kri),其中f在第2.2节中定义。(f根据i的不同,可以是
    Type1、Type2或者Type3)
    4)c1...c64<--(R16,L16)(交换最终得到的L16和R16并连接在一起构成密文。)
    解密算法与上述加密算法一致,只不过循环(因此还有子钥对)是按照相反的顺序从
    (R16,L16)计算出(L0,R0)。
    可以使用附录B中的测试向量验证该算法的正确性。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表