`
rockis
  • 浏览: 19199 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

白话加密算法

阅读更多
对称加密算法

小A想给女同学小B传纸条,但是又不想让别人看到。小A想了个办法,他找了盒子,买了一个带两把钥匙的锁,然后把其中一把给了小B,如果小A想给小B传纸条,他可以把纸条放在盒子里,用锁锁上,然后寄给小B。小B拿到盒子后,用同样的钥匙把锁打开,这样就看到小A写的纸条了。

如果把上锁和开锁视为加密解密,因为两边钥匙是一样的,因此这种方式就被视为“对称加密”。

DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法。都属于对称加密算法。


非对称加密算法


小A和小B相互之间传纸条,被同学小C看在眼里,也想用同样的方式给小B传纸条,于是他也买了带两把钥匙的锁,然后将一把钥匙给了小B。这样小B就有了两把钥匙了。过了一段时间,因为可以不被家长和老师看到自己的隐私,所以这种方式在同学之间流行起来。但是,假如一个班级里有40个学生,那么总共需要有多少把钥匙呢?答案是 40 * (40 - 1)= 1560。呵呵,每个人上学时都要背一书包钥匙,这可是件麻烦事。另外还有一个头疼的问题,如果有人想给其它学校的同学发私密消息,哪怕只有一句话,也要将钥匙亲自送过去或者通过邮寄,不仅麻烦,而且不安全,谁知道钥匙会不会被别人中途偷走或者偷偷配一把呢。
小A又想了个办法,用这个办法可以造了一把被称为’私钥‘的钥匙,然后可以用私钥再配另外一把被称为’公钥‘的钥匙。公钥仅可以上锁,但不能开锁;公钥上的锁,仅可以被配套的私钥打开。当小A和小B想说悄悄话时,他们先互相交换公钥,小A用小B的公钥给发给她的消息上锁,然后发给小B,小B收到后,可以用她的私钥打开。反过来小B用小A的公钥给发给小A的消息上锁,小A收到后,再用小A自己的私钥打开。在他们通信结束后,可以把公钥丢掉即可。下次需要通信时再交换。这样大家都不需要保留很多钥匙。而且也不怕别人复制公钥,因为只有私钥才开打开锁。


不过这种方式也有个缺点,上锁和开锁太麻烦了,原来用对称密钥只需要1秒钟就可以上锁、开锁。现在用非对称密钥,却需要1分钟。不过小A还是有办法,他在给小B通信时,首先配一对临时的对称密钥,再把一把密钥给小B发过去,之后他俩之后就可以用对称密钥交换消息了,当通信结束后,再把对称密钥扔掉。这样就两全其美了。


因为两把钥匙不一样,所以这种方式被称为’非对称加密算法‘


RSA、Elgamal、背包算法、Rabin、D-H、ECC都是非对称加密算法,其中RSA应用最广泛。
分享到:
评论

相关推荐

    通过Matlab实现DES加密算法的动态演示系统.zip

    matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接...

    The AES-CMAC Algorithm

    AES-CMAC是一种基于AES的MAC算法,通过使用AES加密算法作为内部操作来生成MAC值。它通过对消息进行一系列处理,并使用特定的密钥生成子密钥来计算最终的MAC值。与传统的检查和错误检测代码不同,AES-CMAC不仅能够...

    毕业设计&课设-一种基于6维超混沌系统和DNA编码的图像加密算法。.zip

    matlab算法,工具源码,适合毕业设计、课程设计作业,所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答! matlab算法,工具源码,适合毕业设计、课程...

    白话数字签名.pdf

    假设明文为“goodgoodstudy,daydayup”,密钥为“google”,加密算法为将明文中的所有字母“d”替换为密钥“google”。这样,密文变为“googooglegoogooglestugoogley,googleaygoogleayup.”。解密过程则是将密文中...

    白话数字签名------整理版

    例如,文中提到的“景氏替换加密算法”就是一个简单的示例,它通过将明文中的某些字符替换为特定的密钥来实现加密。在实际应用中,如WinRAR的文件加密功能采用的AES加密算法,是一种更高级的对称加密方式,提供了更...

    本科毕业设计:基于DES加密的即时通信聊天系统

    des.java: des加密算法,进行消息的加密解密 res.java: 负责处理添加好友权限请求 服务器代码 server.java: 服务器主程序,负责载入界面 serverThread.java: 服务器辅助线程,避免卡死主线程,负责客户端各种请求的...

    毕业设计:基于DES加密的即时通信聊天系统(java实现)

    des.java: des加密算法,进行消息的加密解密 res.java: 负责处理添加好友权限请求 服务器代码 server.java: 服务器主程序,负责载入界面 serverThread.java: 服务器辅助线程,避免卡死主线程,负责客户端各种请求的...

    应用程序控件布局按钮槽与按钮信号关联,功能根据已有字符串,进行加密和解密.zip

    4. **字符串加密**:应用程序可能使用了常见的加密算法,如AES(高级加密标准)、DES(数据加密标准)或更复杂的RSA等。加密过程通常包括选择密钥、对明文字符串进行特定算法处理,将明文转换为密文,以保护数据安全...

    后台管理系统主要功能:权限管理、OA、token验权、node-rsa加密、

    RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,广泛应用于数据传输的安全保护。在Node.js中,可以使用内置的crypto模块实现RSA加密。RSA的特点是公钥和私钥分开,公钥用于加密,私钥用于解密,这样即使数据在...

    Head.First.Python中文版.

    - 常用的加密算法有对称加密、非对称加密和哈希函数。 - 对称加密中数据的加密和解密使用相同的密钥,如AES(高级加密标准)。 - 非对称加密使用一对密钥,一个公钥用于加密数据,一个私钥用于解密数据,如RSA...

    包含蓝牙,文件上传下载,加密系统的微信小程序系统。

    微信小程序中可以采用对称加密(如AES)或非对称加密(如RSA)算法,确保用户数据的隐私性和完整性。 标签中提到了“uni-app”,这是一个跨平台的前端框架,允许开发者用一套代码同时开发微信小程序、H5、App等多个...

    数据库期末课程设计:数据库设计针对学籍管理系统,使用python语言和MySQL实现的.zip

    常见的加密算法有MD5、SHA系列,更安全的选择是bcrypt或scrypt。 7. **用户界面与交互**:虽然这不是数据库设计的核心,但构建用户友好的界面能提高系统的实用性。Python可以借助Flask或Django等Web框架创建前端...

    毕业设计&课设-使用加密隐写术技术的基于物联网的医疗保健系统的安全医疗数据传输模型。.zip

    matlab算法,工具源码,适合毕业设计、课程设计作业,所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答! matlab算法,工具源码,适合毕业设计、课程...

    智能互联比赛.zip

    6. **算法设计**:比赛中的解决方案可能涉及到各种算法,如优化算法、预测算法、推荐算法等,这些算法是实现智能互联的关键组成部分。 7. **数据安全与隐私保护**:在智能互联项目中,数据安全和用户隐私保护至关...

    C语言实战项目.zip

    3. **密码管理系统**:这是一个安全相关的项目,可能使用了加密技术(如MD5或SHA哈希)来存储和验证密码,同时涉及用户界面设计和数据安全性方面的知识。 4. **英语词典排版系统**:这个系统可能负责从文本文件中...

    电影推荐系统.zip

    系统需要考虑用户隐私保护,对敏感数据进行加密,防止SQL注入和XSS攻击,同时应具备良好的权限管理机制,确保数据安全。 综上所述,电影推荐系统不仅涵盖了Node.js、Express、MongoDB等核心技术,还包括推荐算法、...

    java毕业设计-课程设计-电影推荐系统

    4. **推荐算法**:电影推荐系统的核心是推荐算法,可能采用协同过滤、基于内容的推荐或者混合推荐策略。协同过滤根据用户的历史行为预测其可能的兴趣;基于内容的推荐则分析电影的属性,如类型、演员等,找到相似的...

    HC1309132 虚拟磁带库VTL6900部署与管理 v1.0.pptx

    - **实现原理**:通过算法检测重复的数据块,并用一个指向原始数据块的指针替换这些重复的数据块。 - **优点**: - 显著减少所需的存储空间。 - 提高备份效率。 - 减少带宽消耗。 #### 4. 集群特性介绍 - **...

    阿里数据库比赛项目.zip

    在这个项目中,ori_code文件很可能是参赛者提交的原始代码或算法实现,用于解决比赛中的数据处理挑战。 数据库是信息技术的核心组成部分,尤其是在大数据时代,高效、稳定、安全的数据库管理成为企业不可或缺的技术...

Global site tag (gtag.js) - Google Analytics