不愿醉死温柔乡,仍慕武帝白云乡。
最近看了本书,里面涉及加密算法,挺感兴趣的。
另外,随着新时代的发展,大数据的普及,似乎没什么秘密可言,感到加密算法甚是重要。
前两天看到微博一个搞笑短视频:一个男人给客服打电话,客户通过数据分析,他的年龄、血型、住址、所处位置、紧急情况、甚至连他情人都知道……哈哈大笑之后,难免一阵唏嘘,在互联网下的我们,像极了暴露在X光射线下的一节节白骨,没有了外衣和流动的血液,徒留分明且真实的骨头……
可,谁还能没点秘密呢,不过是有的隐匿在心里,有的潜藏在网络中
我想,网络中的秘密,必然需要加密算法
想了解加密算分,先从一些绝密的事、需要加密的事,思考加密加密,如银行卡密码,QQ、微信等账号密码,空间内容权限、身份验证、线上付款等等
接着,下面介绍加密算法一些知识
一、基本概念
明文:英文:plaintext,指有意义的字符或比特集,可以理解为,没有加密前的原文信息,通常用字母m或p表示
密文:英文:ciphertext,指不可直接理解的字符或比特集,可以理解为,经过加密后的隐藏原文的信息,通常用字母c表示
密钥:英文:secret key,分为加密密钥和解密密钥,指密码算法中的秘密参数,一般是一组满足一定条件的随机序列。通常只有通讯者拥有。
加密:英文:encrypt或encipher,指 将明文转换成密文的过程。
解密:英文:decrypt或decipher,指 将密文转换成明文的过程。
密码算法:密码系统采用的加密方法和解密方法,随着基于数学密码技术的发展,加密方法一般称为加密算法,解密方法一般称为解密算法。
加密算法:英文:Encryption algorithm,分为对称加密算法和非对称加密算法
加密的作用:对原来明文的内容按照算法处理,使之成为不可读的一段代码,也就是密文,只有在输入相应的密钥之后才能显示出原本的内容。
二、加密系统
一个加密系统S可以用数学符号描述如下:
S={P, C, K, E, D}
P——明文空间,表示全体可能出现的明文集合,
C——密文空间,表示全体可能出现的密文集合,
K——密钥空间,密钥是加密算法中的可变参数,
E——加密算法,由一些公式、法则或程序构成,
D——解密算法,它是E的逆。
公开密钥 密码系统的加密过程
公开密钥 密码系统的鉴别过程
三、常见加密算法
1、简单图解
2、常见加密算法
DES: DES加密算法属于对称算法,是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位,加密解密用同一算法。DES加密算法是对密钥进行保密,而公开算法,包括加密和解密算法。这样,只有掌握了和发送方相同密钥的人才能解读由DES加密算法加密的密文数据。因此,破译DES加密算法实际上就是搜索密钥的编码。对于56位长度的密钥来说,如果用穷举法来进行搜索的话,其运算次数为256。
随着计算机系统能力的不断发展,DES的安全性比它刚出现时会弱得多,然而从非关键性质的实际出发,仍可以认为它是足够的。不过,DES现在仅用于旧系统的鉴定,而更多地选择新的加密标准。
RSA: RSA加密算法属于非对称算法,是目前最有影响力的公钥加密算法,并且被普遍认为是目前最优秀的公钥方案之一。RSA是第一个能同时用于加密和数宇签名的算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA加密算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
MD5: MD5算法属于消息摘要算法,为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。对MD5加密算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成—个128位散列值。
MD5被广泛用于各种软件的密码认证和钥匙识别上。MD5用的是哈希函数,它的典型应用是对一段信息产生信息摘要,以防止被篡改。MD5的典型应用是对一段Message产生fingerprin指纹,以防止被“篡改”。如果再有—个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。MD5还广泛用于操作系统的登陆认证上,如UNIX、各类BSD系统登录密码、数字签名等诸多方面
参考:
知乎
百度百科
搜狗百科