Encryption 伪码加密算法

Encryption 伪码加密算法,encryption,aes,rsa,tripledes,Encryption,Aes,Rsa,Tripledes,我一直在阅读加密算法,并试图在不使用任何库的情况下通过我的研究实现它们。然而,我发现理解它们是如何工作的有点困难 我特别关注的算法是 三重des-使用3个密钥,第一个用于加密,第二个用于解密,第三个用于再次加密 RSA-使用大的正整数生成加密和解密,例如e、d和n AES-使用具有固定比特块和密钥大小的替换置换 我在网上搜索过很多库,比如cryptoJS、OpenPGP和Cryptoco,但我发现很难理解这些代码——因为它们是新手 我理解它们背后的主要思想,但发现很难编写代码,请有人指导我-是否

我一直在阅读加密算法,并试图在不使用任何库的情况下通过我的研究实现它们。然而,我发现理解它们是如何工作的有点困难

我特别关注的算法是

三重des-使用3个密钥,第一个用于加密,第二个用于解密,第三个用于再次加密

RSA-使用大的正整数生成加密和解密,例如e、d和n

AES-使用具有固定比特块和密钥大小的替换置换

我在网上搜索过很多库,比如cryptoJS、OpenPGP和Cryptoco,但我发现很难理解这些代码——因为它们是新手


我理解它们背后的主要思想,但发现很难编写代码,请有人指导我-是否有任何psuedo代码/psuedo算法可供我在实现时使用或参考。

我已经在Java上实现了AES和DES。根据我的经验,如果你懂理论,一切都很简单。你可以上麻省理工学院或斯坦福大学的密码学课程。无论如何,首先你应该知道理论。在此之后,Github上的实现太多了。您甚至可以使用Youtube查看算法如何对样本数据进行加密

老实说,我喜欢波鸿鲁尔大学的资源。AES/DES是第三章、第四章。这是他们录制视频讲座的官方网页,也是斯普林格出版的名为“理解密码学”的免费书籍。


p.S BouncyCastle是一个非常受欢迎的图书馆。它在Java上实现得非常好。你也可以看看这个。

看看C#BouncyCastle的内部结构。虽然实际上没有文档,但是有相当多的代码注释,并且代码非常清晰加密实现可能不会是直接的,因为它将被设计为避免定时攻击。我同意@zaph我只想获得粗略的pesudo来开始-它不需要是加密技术的完整实现,因为我知道它可能非常漫长和耗时consuming@Jackie如果你搜索对于每种算法,你都会得到大量的答案,那么-你到底有什么问题?或者也可以继续问,尽管我建议在那里有一个非常具体的问题谢谢你的回答,我自己也看到了一些资源,在某些情况下还看到了完整的代码:)但我想尝试自己实现它们,因为我相信这样我会学得更好我看过一些youtube视频,虽然他们确实解释了这个概念以及算法是如何工作的,但我发现很难将其放入代码中。不过,我还没有看到波鸿鲁尔大学的资源,现在就来看看!5年前,我在一家公司工作,我们在那里实施算法。我也有同样的情况。我花了太多时间去理解算法是如何工作的。我认为波鸿鲁尔大学的视频资源是最好的——易于理解。不管怎样,如果你们对算法有任何具体的问题,我们会在这里帮助你们。祝你好运嗨,你知道我怎样用数学符号来表示AES吗?三重DES可以表示为密文=EK3(DK2(EK1(明文)),明文=DK1(EK2(d3(密文)))