initialization-vector相关内容

在 Java 中为 AES 生成随机 IV

我正在为 android 中的 PBE 实现和 AES 加密引擎,我找到了两种方法来实现 IV 的创建,我想知道哪种方法更好更安全地获取 IvParameterSpec: 方法#1: SecureRandom randomSecureRandom = SecureRandom.getInstance("SHA1PRNG");字节[] iv = 新字节[cipher.getBlockSize ..
发布时间:2022-01-10 10:05:14 Java开发

AES 加密如何传输 IV

我了解唯一 IV 在加密以防止频率分析等攻击方面很重要.问题:对于AES CBC加密,什么是重要的IV? 有一个非常明确的答案来解释 IV 的重要性. 以明文形式发送 IV 是否存在安全漏洞?或者是否需要使用用于发送对称密钥的相同公钥/私钥对其进行加密? 如果 IV 需要加密发送,那么为什么不每次都生成一个新的对称密钥并将 IV 视为密钥的一部分呢?生成对称密钥的成本是否太高?还是尽量 ..
发布时间:2022-01-10 10:04:22 其他开发

加密 &使用 PyCrypto AES 256 解密

我正在尝试使用 PyCrypto 构建两个接受两个参数的函数:消息和密钥,然后加密/解密消息. 我在网上找到了几个链接来帮助我,但每个链接都有缺陷: codekoala 的这个使用 os.urandom,这是 PyCrypto 不鼓励的. 此外,我给函数的键不能保证具有预期的确切长度.我该怎么做才能做到这一点? 另外,有几种模式,推荐哪一种?我不知道该用什么:/ 最后 ..
发布时间:2021-12-20 19:25:56 Python

什么是openssl iv,为什么我需要一个键和一个iv?

我将使用以下脚本来加密和解密某些数据.我之所以使用它,是因为我当前的加密在我们的新服务器上不起作用.我们目前正在使用mcrypt,所以我想更改为openssl. 在我们的数据库中,我们使用aes加密,该加密使用128位密钥,因此我知道密钥是什么,但是我不知道openssl iv是什么?以及为什么我需要一个键和一个iv. 我要使用的代码是这个,我在网站上找到了它,因为我不太了解加密. ..

无法使用openssl为es gcm设置IV

我正在尝试使用C ++中OpenSSL提供的AES GCM加密机制,并在此链接上使用示例作为参考: https://wiki.openssl.org/index.php/EVP_Authenticated_Encryption_and_Decryption 但是,以下语句给我错误: / *如果默认12字节(96位)不合适,则设置IV长度* / if(1! = EVP_CIPHE ..
发布时间:2020-06-04 19:10:40 C/C++开发

为什么对AES-CBC随机IV罚款,但对AES-GCM却不罚款

我一直在使用AES-CBC进行加密,每次加密纯文本时都使用随机IV。据我所知,这是推荐的方法。 我一直在研究AES-GCM / AES-CTR,主要用于AEAD。我还没有实现任何东西,但是从我读到的所有内容来看,基本上随机数只是一个短IV,并且每个加密调用都有一个内部计数器。开发人员需要在32位计数器循环返回之前确保现时更改,否则,可能将同一个现时(IV)与相同的密钥一起使用,这可能会加密相 ..

AES的CBC模式下的初始化向量(IV)

我知道IV应该是随机的,并与纯文本进行XOR运算以开始加密。我的问题是,除了密钥外,我还必须记住随机IV进行解密吗? 解决方案 IV需要是随机的,但不必是秘密的。通常的做法是在传输密文之前将IV放在密文之前。解密时,请使用密文的前16个字节作为IV来解密其余部分。这样,您不必将其单独存储,因为它包含在密文中。 ..
发布时间:2020-06-02 20:04:35 其他开发

AES加密如何传输IV

我知道独特的IV对于加密以防止诸如频率分析之类的攻击非常重要。问题:对于AES CBC加密, IV?有一个非常清晰的答案来解释IV的重要性。 以明文形式发送IV会不会有安全漏洞?还是需要使用与发送对称密钥相同的公钥/私钥对它进行加密? 如果需要对IV发送加密,那为什么不这样做每次生成一个新的对称密钥,并将IV视为密钥的一部分?生成对称密钥是否太昂贵?还是要减少传输的数据量? 秘密 ..
发布时间:2020-06-02 19:53:17 其他开发

在Java中为AES生成随机IV

我正在为Android中的PBE实现和AES加密引擎,我已经找到了两种方法来实现IV的创建,我想知道哪一个更好,更安全获得 IvParameterSpec : 方法#1: SecureRandom randomSecureRandom = SecureRandom.getInstance(“SHA1PRNG”); byte [] iv = new byte [cipher.get ..
发布时间:2018-12-25 21:56:26 Java开发

加密&使用PyCrypto AES 256解密

我正在尝试使用接受两个参数的PyCrypto构建两个函数:消息和密钥,然后加密/解密消息。 我发现几个网络上的链接帮助我,但每个人都有缺陷: 这个在codekoala 使用os.urandom,这是PyCrypto不鼓励的。 此外,我给予功能的键不能保证具有预期的确切长度。我可以做些什么来实现这一点? 另外,有几种模式,哪一种被推荐?我不知道该用什么:/ 最后,IV是 ..
发布时间:2017-08-17 19:24:35 Python

CTR模式使用初始向量(IV)

从我知道,CTR模式不使用初始向量。 它只需要一个计数器,用给定的密钥加密它,然后XOR的结果与明文,以获得密文。 其他块密码模式像CBC在做加密之前,它们将明文与一个初始向量XOR。 这里是我的问题。我有以下Java代码(使用bouncycastle库): Cipher cipher = Cipher.getInstance(“AES / CTR / PKCS5Paddin ..
发布时间:2017-01-16 11:23:52 Java开发

初始化向量的特性

我绝不是一个密码专家,我一直在阅读关于Stack Overflow和维基百科的几个问题,但没有什么是真正的'明确'定义一个IV及其用法。 我发现的点: IV加在明文信息前面, IV是真正随机的 每封邮件都有自己独特的IV 时间戳和加密哈希 WEP(在802.11中)的一个弱点是,IV将在一个时间段之后重置特定数量的加密,因此重复IV 我确定有很多任何人都可以想到任何其他特 ..
发布时间:2017-01-16 11:08:16 开发方法

良好的AES初始化向量实践

每次我的问题 AES加密...缺少一个重要的一块,我现在才知道,我创建一个字符串可逆加密的假设是有点过。我现在有 公共静态的byte [] EncryptString(字符串toEncrypt,字节[]的encryptionKey) { VAR toEncryptBytes = Encoding.UTF8.GetBytes(toEncrypt); 使用( ..
发布时间:2016-08-26 21:23:41 C#/.NET