SDES(Simple Data Encryption Standard)加密算法——Java实现

本文详细介绍了SDES简单数据加密标准的算法流程,包括IP置换、核心的Fk函数以及S盒变换。虽然由于密钥长度短不适合实际加密,但适合作为加密算法学习的入门教程。
摘要由CSDN通过智能技术生成

一.SDES加密算法


SDES的算法如上图所示,作者将其分为三个部分讲解:

1.子密钥的产生
        1.1  对于输入的10位密钥K=(k1,k2,k3,k4,k5,k6,k7,k8,k9,k10),做P10置换,得到结果为K1=(k3,k5,k2,k7,k4,k10,k1,k9,k8,k6)。
        1.2  将上一步中的K1分成LK1和RK1分别对应K1的高低5位,并将LK1和RK1做循环左移1位的操作,例:(10010)循环左移1位变为(00101)。
        1.3  合并LK1和RK1得到10位的K2(高5位为LK1,低5位为RK1),对K2=(K1,k2,k3,k4,k5,k6,k7,k8,k9,k10)做P8置换,得到子密钥SubKey1=(k6,k3,k7,k4,k8,k5,k10,k9)。
        1.4  将上一步中的K2分成LK2和RK2分别对应K2的高低5位,并将LK2和RK2做循环左移2位的操作,例:(10010)循环左移2位变为(01010)。
        1.5  合并LK2和RK2得到10位的K3(高5位为LK2,低5位为RK2),对K3=(k1,k2,k3,k4,k5,k6,k7,k8,k9,k10)做P8置换,得到子密钥SubKey2=(k6,k3,k7,k4,k8,k5,k10,k9)。

2.加密部分

         2.1  对于输入的8位明文P=(p1,p2,p3,4,p5,p6,p7,p8),首先做一次IP置换得到P1=(k2,k6,k3,k1,k4,k8,k5,k7),IP置换相当于对P进行矩阵的乘法,对应矩阵为:


        IP的逆变换IPI可以同样可以看成是矩阵的乘法,对应的矩阵为:


        2.2  得到P1以后开始,进入Fk函数进行处理

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值