经典混合加密系统(java实现)

此理论知识摘自《电子商务安全导论》一书

由于网络协议的开放行,数据在网络传输的过程中,难以避免的会出现安全性问题.

实际上,在一次信息传送过程中,可以综合利用消息加密、数字信封、散列函数和数字签名实现安全性、完整性、可鉴别性和不可否认.具体过程如下:

(1)发送方A

  ①求明文消息的消息散列值:hA=H'(M);

  ②发送方用自己的私钥KSA对散列值进行数字签名:h'=EKSA (hA);

  ③将明文M和数字签名h'合并为M',M'=【M h'】;

  ④随机产生—个DES密钥KDES;

  ⑤用DES密钥KDES加密M',C1=EKDES( M');

  ⑥用接受方B的公钥加密DES密钥,C2=EKPB(KDES)。

  A将C1和C2发送给接受方B。

(2)接受方B

  接受方B收到消息后:

  ①B用其私钥打开数字信封,得到发送方的DES密钥,KDES=DKSB( C2);

  ②再用此密钥去解密消息C1,M'=DKDES( C1);

  ③从M’中分离出M和h’;

  ④求明文消息的消息散列值,hB=H(M);

  ⑤对A的数字签名h’进行身份验证,hA=DKPA (h’);

  ⑥比较hA和hB,如hA=hB,则说明M确是A发送的消息,如hA≠hB,则收到的M是不可信的。这就是数据完整性检验。

 

鉴于以上的原理设计一套java代码,

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值