【问题标题】:Encryption algorithms in pseudo code伪代码中的加密算法
【发布时间】:2018-07-15 22:36:25
【问题描述】:

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

我特别关注的算法是,

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

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

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

我在网上搜索过很多库,例如 cryptoJS、OpenPGP 和 cryptico,但我发现很难遵循这些代码 - 因为对它们来说是新手。

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

【问题讨论】:

  • 看看 C# BouncyCastle 的内部结构。虽然几乎没有文档,但有相当多的代码注释和相当清晰的代码。
  • 一个好的(安全的)加密实现可能不会是直截了当的,因为它旨在避免定时攻击。
  • 我同意@zaph,我只是想粗略地介绍一下我的入门 - 它不需要完全实现加密技术,因为我知道它可能会非常冗长且耗时
  • @Jackie 如果您搜索每种算法的伪代码,您会得到很多答案,那么 - 您到底有什么问题?或者也可以在crypto 上提问,尽管我建议在那里提出一个非常具体的问题

标签: encryption aes rsa tripledes


【解决方案1】:

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

说实话,我喜欢波鸿鲁尔大学的资源。 AES/DES 是第 III、IV 章。这是官方网页link.他们录制了视频讲座以及Springer出版的名为“Understanding cryptography”的免费书籍。

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

【讨论】:

  • 感谢您的回答,我自己遇到的资源很少,在某些情况下还有完整的代码 :) 但我想尝试自己实现它们,因为我相信我会更好地学习它们方式
  • 我看过一些 youtube 视频,虽然它们确实解释了这个概念以及算法是如何工作的 - 我发现很难将它放入代码中。不过,我还没有遇到过——波鸿鲁尔大学的资源,现在就去看看!
  • 5 年前,我在我们实施算法的公司工作。我也有同样的情况。我花了太多时间来了解算法是如何工作的。我认为波鸿鲁尔大学的视频资源是最好的之一 - 易于理解。无论如何,如果您对算法有任何具体问题,我们随时为您提供帮助。祝你好运!
  • 嗨,你知道我如何用数学符号表示 AES 吗?像三重 DES 可以表示为 ciphertext = EK3(DK2(EK1(plaintext))) 和 plaintext = DK1(EK2(DK3(ciphertext)))
猜你喜欢
  • 2019-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-17
  • 2021-12-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多