私钥密码和公钥密码

以前人们通过网络传递的是数据,可能对网络安全还不是特别重视,但随着网络和技术的进一步发展,通过网络传递价值的需求越来越迫切,所以了解加密算法很有意义。人在江湖飘,哪能不挨刀!多学两招防身也是有备无患啊

加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。其重点在于数据的安全性。身份认证是用来判断某个身份的真实性,确认身份后,系统才可以依不同的身份给予不同的权限。其重点在于用户的真实性KYC know your customer

   密码学中两种常见的加密算法为对称密码算法私钥密码算法)和非对称密码算法(公钥密码算法)。被伪装的原始的消息称为明文(Message)将明文转换为密文过程称为加密(Encryption加了密的消息称为密文(Ciphertext把密文转变为明文的过程称为解密(Decryption)。


 对称密码算法是传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加密解密密钥是相同的。这些算法也叫秘密密钥算法或单密钥算法,它要求发送者和接收者在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加密解密。只要通信需要保密,密钥就必须保密。对称算法的加密和解密表示为:

 

  因为加解密密钥相同,需要通信的双方必须选择和保存他们共同的密钥,各方必须信任对方不会将密钥泄密出去,这样就可以实现数据的机密性和完整性。

按加密方式,对称密码分为分组密码和序列密码(流密码)。

分组密码(Block Cipher)是按字符块加密。


流密码(Stream Cipher)逐个字符加密


比较典型的有:

DES(分组)Data Encryption Standard

    IBM实验室研发;加密端64位明文产生64为密文,解密端64位密文还原64位明文,8个字节为一块,加密和解密使用56位密钥,DES使用16个迭代块实现,是现代加密算法;

3DES: Triple DES

    DES的增强版,比DES3个数量级AES: Advanced Data Encryption Standard; (128bits, 192bits, 256bits, 384bits)    3DES虽然现在是安全的,但随着计算机硬件的更新,总有一天要被攻破;AES算法欲取待3DES算法,他支持128192256位密钥长度,有效的密钥长度可达上千位。

    更重要的是,AES算法采用了更为高效的编写方法,对CPU的占用率较少;目前广泛使用。

 

商业:BlowfishtwofishIDEARC6CAST5等等

 

私钥密码体制的局限性

密钥量大:n个用户相互通信,需用个n(n-1)/2密钥.

应用范围小:不易实现数字签名

 

1976,斯坦福大学的博士生W.Diffie和其导师M.E.Hellman提出了公钥密码的新思想

    W. Diffie and M. E. Hellman,New direction in cryptography, IEEE Trans. on Information Theory, 1976, IT-22.(6), pp.644-654.

 1978, MerkleHellman联合提出了基于组合数学中背包问题的公钥密码体制(MH背包公钥密码体制).不久被攻破

1978, R. RivestA. Shamir L. Adleman提出RSA密码体制

 

公钥密码体制目前主要是基于以下三种数学难题

1大数因子分解难解性RSA

2离散对数难解性ElGamal

3椭圆曲线离散对数难解性ECC

 

在密码学中最常用的单向函数有两类,一是公开密钥密码中使用的单向陷门函数、二是消息摘要中使用的单向散列函数

 

单向散列函数我就比较熟了,打了三年交道,MD5SHA1SHA256

 我们着重研究一下RSA公钥算法,以下是算法流程


假设m为要传送的报文

      加密过程:

      解密过程:

 

 

举个简单例子 
我们选择p = 17 q = 19 n  p * q = 323

j(n)

j(n)  lcm(p-1, q-1)= lcm(16,18) = 144 
144为16和18对最小公倍数

 e

e必须要满足2个条件:1 <e <j(n) gcd(ej(n)=1 
1 <e < 144,gcd(e144) = 1 
e144互为质数,5显然满足上述2个条件 
e  5

此时公钥=(en)=5,323)

d

d也必须满足2个条件:1 <d <j(n)ed modj(n) 
1 <d < 144,5 *d mod 144 = 1 
显然当d 29 时满足上述两个条件 
1 < 29 < 144 
5*29 mod 144 = 145 mod 144 = 1 
此时私钥=(dn)=(29,323)

加密

准备的明文必须时小于n的数,因为加密或者解密都要modn其结果必须小于n
假设明文 123 
密文=

解密

明文=


小结

目前了解到在2009年已经有科研人员对700多位的RSA进行了分解攻击,这么多年过去了,1024位的RSA安全性肯定是不够了,以色列安全研究人员讲解了如何利用侦听电脑解密数据时,CPU所发出的声音(音学密码分析)破译4096RSA加密算法。随着量子计算技术和shor算法的提出,RSA受到越来越多的质疑。RSA加密算法被美国国家安全局(NSA)与加密技术公司RSA加了后门,也就是有万能密码,可以被解密,RSA加密文本可以被任意破解。“双椭圆曲线”(Dual Elliptic Curve)系统是这个后门,它有2套方法进入。虽然现在密码学技术有了很多新的发展,但我依然认为RSA是一种很值得研究的密码算法。


  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 是的,SM2是一种非对称加密算法,它使用私钥进行加密,公钥进行解密。在 SM2 中,私钥是保存在用户本地的一个数字,用于生成公钥并用于加密信息。公钥是发布给其他人的,用于验证签名和解密信息。在使用 SM2 进行加密通信时,发送方使用接收方的公钥对信息进行加密,接收方使用自己的私钥对信息进行解密。 ### 回答2: 不可以。SM2是一种非对称加密算法,私钥用于解密和签名,公钥用于加密和验证。根据SM2算法,使用私钥对数据进行加密是不被支持的操作。私钥主要用于生成数字签名,确保数据的完整性和真实性。而公钥则用于加密数据,提供保密性。当使用SM2算法时,发送方使用接收方的公钥对数据进行加密,接收方再使用自己的私钥进行解密。这样可以确保只有持有相应私钥的接收方可以解密对应的加密数据,而其他人无法获得明文信息。所以,SM2无法使用私钥加密、公钥解密。 ### 回答3: SM2是中国密码算法标准中的一种椭圆曲线公钥密码算法,它是基于离散对数难题的加密算法。与其他非对称加密算法类似,SM2也是通过配对的公钥私钥进行加密和解密操作。 换句话说,SM2是使用公钥进行加密,私钥进行解密的。具体过程如下: 1. 加密: 发送方使用接收方的公钥对明文进行加密。这个过程包括随机生成一个对称密钥用于加密明文,并使用接收方的公钥进行加密这个对称密钥。最后将加密后的对称密钥与加密后的明文一同发送给接收方。 2. 解密: 接收方收到密文后,首先使用自己的私钥进行解密,得到对称密钥。然后使用对称密钥解密明文,从而得到原始的明文信息。 需要注意的是,SM2算法中的私钥是非常敏感的,必须妥善保管,避免泄露。公钥则可以广泛分发,用于加密过程。 总而言之,SM2可以使用私钥加密、公钥解密,这是非对称加密算法的基本特性,保证了信息的机密性和完整性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值