问题标签 [aes-gcm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
640 浏览

java - 在 BouncyCastle 中并行化 AES GCM

我在 Java 中将 AES-GCM 与 BouncyCastle 提供程序一起使用,它工作正常。NIST 文档似乎表明 GCM 是一种允许并行化的算法——但是,在查看 Java API 时,我无法理解如何使并行化成为可能(所有内部计数器、IV 等都是私有字段)。

如何在不访问这些私有字段的情况下并行化 AES-GCM 加密/解密代码?Java BC API 在这方面是否受到限制?

0 投票
2 回答
2099 浏览

c# - CNG 从文件导入 ECC Pub/Priv Key

多年来,我一直在尝试寻找如何通过任何方式从文件中导入 ECC 密钥。我尝试从 Windows 证书存储、.p12 文件和 PKCS#8 OpenSSL 密钥文件访问 ECC 证书,但均未成功。

我尝试过的许多事情之一是:

但是没有给出描述性错误消息,只有最后一行有invalid parameters或者在上面的代码的情况下An error occurred during encode or decode operation.

我正在使用来自 MSDN 的示例程序进行 ECDH,并将其更改为使用 AES 的 GCM 模式。在我尝试使用预生成的 ECC 密钥而不是 Microsoft 示例在运行时默认创建的密钥之前,所有这些都可以正常工作。我随机尝试了所有的CngKeyBlobFormats 但老实说,我不能很好地调试它,因为我不知道这些特定格式在原始数据中是什么样子的。

我的密钥采用以下格式,但我愿意使用任何可行的格式(.p12、Microsoft Store、PKCS#8 等)

密钥文件

资源

MSDN API 和示例:ECDiffieHellmanCng 类

MSDN API:CngKey 类

MSDN 博客:AES GCM 模式

OpenSSL - 创建 ECC 密钥

0 投票
1 回答
3978 浏览

c# - AES/GCM (AES-128-GCM) 身份验证标签在 C# 和 Ruby 中不同

我正在尝试在 C# 中生成我已经在 Ruby 中生成的身份验证标签(用于测试目的)。然而结果是不同的,但据我所知,输入是相等的。

在使用 OpenSSL 1.0.1c (Ubuntu 13.04) 的 Ruby 2.0 中:

结果(编码)标签是ie74XTWtSLNad0BKdrhvmQ==

在 C# 中使用 BouncyCastle(片段):

C# 中的结果标记是sawCcwM1T8sGl5y6VT0CHA==

我在这里做错了什么?提前感谢您的回复!

0 投票
1 回答
5027 浏览

encryption - OpenSSL Authenticated Encryption

I'm trying to use OpenSSL for authenticated encryption. Specifically, I'm trying to use AES-256-GCM (or CCM).

However, when I run openssl list-cipher-commands, I don't see it. The only AES ciphers shown are these:

I'm on openssl 1.0.1e, so it should be supported.

0 投票
2 回答
3489 浏览

android - 在 Android 上向 AES-GCM 添加其他经过身份验证的数据

我正在尝试将其他经过身份验证的数据 (AAD) 添加到 Android 上的 AES-GCM。我看到有关使用和方法的 Java 7 版本的Cipher 注释,但鉴于 Android 是基于 Java 6 的,我完全没有想法。我使用 Spongycastle 作为加密库GCMParameterSpecupdateAAD(...)

0 投票
2 回答
862 浏览

c - 向数组添加零填充

我正在为 AES-GCM 实现做一个 GHASH。

GHASH

我需要实现这个

eqn

其中v是A的最后一个块的位长,u是C的最后一个块的位长,|| 表示位串的串联。

如何连接 A 块以填充从 v 到 128 位的零填充,因为我不知道 A 的整个块的长度。所以我只取 A 块并将其与 128 的数组进行异或位

我很确定我不正确。但我不知道该怎么做。

0 投票
1 回答
1726 浏览

c - aes-gcm 在 C 中使用 libgcrypt api

我正在使用 libgcrypt(Gentoo x64 上的 v1.6.1)并且我已经实现(并通过 AE 测试向量进行了测试)aes256-cbc 和 aes256-ctr。现在我正在查看 aes256-gcm 但我对工作流程有些怀疑。下面是一个简单的加密程序的骨架:

在 GCM 模式下,还需要这些指令:

所以加密程序的正确工作流程是:

但我没有明白的是:

  1. abuf就像盐一样?(所以我必须使用gcry_create_nonce或类似方法生成它吗?)
  2. 如果我想加密一个文件,void *tag我必须写入输出文件吗?
0 投票
1 回答
1714 浏览

c# - AES GCM IV/nonce 使用

我在 WCF 项目中实现 AES GCM 加密。在阅读和搜索后,我找到了这个例子(第一堂课,AESGCM),它看起来写得很好,更新得很好。

据我了解,nonce 将尽可能独特是非常重要的,并且希望确保我理解这个类的工作方式。

当我过去在 CBC 模式下使用 IV 时,有必要将其保存以供将来解密,但在随附的示例中,我看到 IV(随机数)没有保存。

我的问题是密文的随机数部分是否使用以下方法提取:

还是我遗漏了什么,应该保存 IV/nonce?

另外 - GCM 不需要使用盐吗?

0 投票
3 回答
3671 浏览

ios - 是否可以在 iOS 上使用 AES128 和 GCM 模式?

所以我对stackoverflow天才的问题是:如果有办法(本机、库、框架等)使用强大的认证加密算法使用AES(最好是128,但也可以是256)加密数据,比如说GCM模式

问题很简短,我做了一些研究,我只找到了一个似乎支持它的库(RNCryptor),但它似乎也使用密码而不是密钥来加密(就像你提供密码并且库制作了密钥),我不太喜欢那样,我更喜欢自己管理我的钥匙

我还查看了CommonCryptor.h并且发现了该行,在我看来,这似乎是 commoncryptor 源代码中 GCM 的唯一参考(但我可能是错的,实际上我可能是错的):

提前感谢!

0 投票
1 回答
12335 浏览

java - 使用 Java 中的身份验证标签的 AES GCM 实现

我在我的 android 项目中使用 AES GCM 身份验证,它工作正常。但是与 openssl API 生成标签相比,身份验证标签出现了一些问题。请在下面找到java代码:

我在 iOS 中使用相同的 openssl 并使用下面的代码生成身份验证标签

在 java 或充气城堡中,无法获得 openssl 返回的确切身份验证标签,您能帮我解决这个问题吗?谢谢