问题标签 [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.
java - 在 BouncyCastle 中并行化 AES GCM
我在 Java 中将 AES-GCM 与 BouncyCastle 提供程序一起使用,它工作正常。NIST 文档似乎表明 GCM 是一种允许并行化的算法——但是,在查看 Java API 时,我无法理解如何使并行化成为可能(所有内部计数器、IV 等都是私有字段)。
如何在不访问这些私有字段的情况下并行化 AES-GCM 加密/解密代码?Java BC API 在这方面是否受到限制?
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 示例在运行时默认创建的密钥之前,所有这些都可以正常工作。我随机尝试了所有的CngKeyBlobFormat
s 但老实说,我不能很好地调试它,因为我不知道这些特定格式在原始数据中是什么样子的。
我的密钥采用以下格式,但我愿意使用任何可行的格式(.p12、Microsoft Store、PKCS#8 等)
密钥文件
资源
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==
我在这里做错了什么?提前感谢您的回复!
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.
android - 在 Android 上向 AES-GCM 添加其他经过身份验证的数据
我正在尝试将其他经过身份验证的数据 (AAD) 添加到 Android 上的 AES-GCM。我看到有关使用和方法的 Java 7 版本的Cipher 注释,但鉴于 Android 是基于 Java 6 的,我完全没有想法。我使用 Spongycastle 作为加密库GCMParameterSpec
updateAAD(...)
c - 向数组添加零填充
我正在为 AES-GCM 实现做一个 GHASH。
我需要实现这个
其中v是A的最后一个块的位长,u是C的最后一个块的位长,|| 表示位串的串联。
如何连接 A 块以填充从 v 到 128 位的零填充,因为我不知道 A 的整个块的长度。所以我只取 A 块并将其与 128 的数组进行异或位
我很确定我不正确。但我不知道该怎么做。
c - aes-gcm 在 C 中使用 libgcrypt api
我正在使用 libgcrypt(Gentoo x64 上的 v1.6.1)并且我已经实现(并通过 AE 测试向量进行了测试)aes256-cbc 和 aes256-ctr。现在我正在查看 aes256-gcm 但我对工作流程有些怀疑。下面是一个简单的加密程序的骨架:
在 GCM 模式下,还需要这些指令:
所以加密程序的正确工作流程是:
但我没有明白的是:
abuf
就像盐一样?(所以我必须使用gcry_create_nonce
或类似方法生成它吗?)- 如果我想加密一个文件,
void *tag
我必须写入输出文件吗?
c# - AES GCM IV/nonce 使用
我在 WCF 项目中实现 AES GCM 加密。在阅读和搜索后,我找到了这个例子(第一堂课,AESGCM),它看起来写得很好,更新得很好。
据我了解,nonce 将尽可能独特是非常重要的,并且希望确保我理解这个类的工作方式。
当我过去在 CBC 模式下使用 IV 时,有必要将其保存以供将来解密,但在随附的示例中,我看到 IV(随机数)没有保存。
我的问题是密文的随机数部分是否使用以下方法提取:
还是我遗漏了什么,应该保存 IV/nonce?
另外 - GCM 不需要使用盐吗?
ios - 是否可以在 iOS 上使用 AES128 和 GCM 模式?
所以我对stackoverflow天才的问题是:如果有办法(本机、库、框架等)使用强大的认证加密算法使用AES(最好是128,但也可以是256)加密数据,比如说GCM模式?
问题很简短,我做了一些研究,我只找到了一个似乎支持它的库(RNCryptor),但它似乎也使用密码而不是密钥来加密(就像你提供密码并且库制作了密钥),我不太喜欢那样,我更喜欢自己管理我的钥匙。
我还查看了CommonCryptor.h并且发现了该行,在我看来,这似乎是 commoncryptor 源代码中 GCM 的唯一参考(但我可能是错的,实际上我可能是错的):
提前感谢!
java - 使用 Java 中的身份验证标签的 AES GCM 实现
我在我的 android 项目中使用 AES GCM 身份验证,它工作正常。但是与 openssl API 生成标签相比,身份验证标签出现了一些问题。请在下面找到java代码:
我在 iOS 中使用相同的 openssl 并使用下面的代码生成身份验证标签
在 java 或充气城堡中,无法获得 openssl 返回的确切身份验证标签,您能帮我解决这个问题吗?谢谢