首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用AES-256 CBC加密文本文件

用AES-256 CBC加密文本文件
EN

Stack Overflow用户
提问于 2019-04-04 21:24:04
回答 2查看 553关注 0票数 -1

我一直在尝试在自己的空闲时间学习C++和计算机安全,我一直在尝试一些CTF挑战。

挑战是找出文本文件(x.txt)中的字数(N),并使用N作为密钥,使用AES-256CBC对文本文件(x.txt)进行加密,并输出包含加密内容的新文本文件(y.txt)。

我从文本文件中获取字数没有问题,但我想知道是否有人知道如何执行加密声明?

我一直在研究OpenSSL,但我不能继续下去。我假设在这种情况下IV应该是零?

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2019-04-04 21:56:58

我假设IV在这种情况下是0?

IV或Initialization Vector是加密的“种子”。这是必需的,这样相似的明文在加密时看起来就不会相似。这意味着不会在不同的加密运行之间重复,并且不是秘密的。因此,零IV (或任何其他固定的IV)将无法实现此目的。

AES-CBC的典型方法是在加密期间生成随机IV,并将其与密文一起存储。然后在解密过程中读入并使用它来初始化解密器。

要了解有关要使用的OpenSSL API的更多信息,请参阅OpenSSL Wiki - Symmetric Encryption

票数 2
EN

Stack Overflow用户

发布于 2019-04-04 22:13:16

我现在也在学习AES。下面是我发现的一些有用的资源:

如何执行AES加密:

它可以归结为每轮4步:

添加替换字节(使用S-box)

  • Shifting
  1. 混合列
  2. 添加循环密钥

有一个非常好的视频,由Paar教授介绍如何执行每一轮AES。Here is a link to his AES video。在学习密码方面,他的整个频道真的是一座金矿。注意:您需要对S-box进行硬编码或以某种方式将其包括在内。

Paar教授在视频中没有解释的一件事是密钥扩展(也就是如何获得每轮密钥)。你可以找到一个java实现的键扩展on Professor Wagner's page here.,它重构成C++应该是相对简单的。只需记住包括圆形常量表格。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55517115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档