问题标签 [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.
ssl - 实现伽罗瓦计数器模式
我正在寻找为专有 TLS 实现实现伽罗瓦计数器模式(不是,使用,实现)。我遇到的问题是,我无法确定标准 NIST 设计的 128 位大小是否与规定的基础密码的 128 位大小相耦合。即 GCM 旨在与 AES-128 配对。
当我使用 AES-256 运行 GCM 时,我仍然使用 128 位块进行 GCM 操作,还是将它们增加到 256 位块?
encryption - GCM-AEAD 支持运行 linux kernel-3.10 的 ubuntu 系统
我正在尝试使用 GCM 加密实现 AEAD 示例代码进行加密。但是我在设置密钥时总是遇到无效参数错误
在插入模块时,我得到以下输出
开始加密
setkey 的返回值为 -22
无法设置密钥
根据 AEAD 规范,aead 使用 aes-128 进行加密,因此块大小应为 128 位。
但我的系统仅显示 1 字节块大小支持 AEAD
是否由于块大小而引发无效参数错误。如果是这样,我该怎么做才能使它工作?
android - Android 密码 AES/GCM/NoPadding "iv==null"
试图在 Marshmallow 上加密和解密一些数据。加密效果很好,但是在尝试解密时,我得到了一个 RuntimeException,说“iv == null”。
基本上,cipher.getIV() 和 cipher.getParameters() 返回 null。我错过了什么吗?
java - Java TLS 1.2 服务器:AES-GCM 解密
我目前正在使用 Java TLS 服务器。(我几天前在这里发布了关于 KeyExchange 签名的信息)
我现在正在尝试解密使用 AES-GCM 编码的 TLS 消息。服务器已经处理了 CBC,但由于它容易受到 POODLE 的攻击,我们希望改为使用 GCM。我会尽我所能解释:)
对于此代码,我们使用 Java 8u91、Netty 3.9.0。我们不使用 BouncyCastle,也不打算使用,我们想坚持使用 JDK。
编码 !
我不断收到以下错误:
这似乎通常意味着 AAD 不正确。但据我所知,从RFC 5246 第 6.2.3.3 节AAD 需要如下:
我迷失了发现我做错了什么来解密这条消息。“标签不匹配”错误对找出问题没有太大帮助,所以我希望这里有人可以帮助我:)
谢谢你,祝你有美好的一天 !
编辑 1: 我在 contentVersion 中放了一个短字节而不是一个字节,但是结果仍然相同。我只收到标签不匹配错误...
编辑2:
正如@dave_thompson_085 所建议的那样doFinal
,现在调用(ciphered, 8, ciphered.length-8)
而不是(ciphered, 0, ciphered.length)
排除explicit_nonce。
我还仔细检查了 aad 和 nonce 值。
nonce 的explicit_nonce 部分对应于我在Wireshark 中看到的数据包。我现在担心 client_write_IV 没有正确生成:|
至于 aad,我发现有点奇怪:长度为 0。
我从客户端收到的消息是 40 字节长,explicit_nonce 部分减去 8,减去 SHA-256 的 MAC 长度 32(我正在尝试让 tls_ecdhe_rsa_with_aes_128_gcm_sha256 工作)。
因此,如果我尝试 tls_ecdhe_rsa_with_aes_256_gcm_sha384,长度最终为 -16。这对我来说似乎是错误的。
编辑 3:
我再次按照@dave_thompson_085 的建议进行操作,并将我的代码修改为长度如下:aad.writeShort(fragment.readableBytes() - 8 - 16);
而在我之前aad.writeShort(fragment.readableBytes()-8-session.cipherSuite.mac.len);
与 chrome 交谈时它似乎运行良好(即使在我发送自己的加密消息后它失败了,但如果我不能自己修复它,这将需要另一个帖子)但是当我尝试使用 open_ssl 客户端时,我得到一个标签不匹配再次。Firefox 和 Safari 只需向我发送协议版本警报……</p>
objective-c - AES 128 GCM objective C osx
I am trying to encrypt/decrypt a string in an AES-128 GCM format in objective c. I have looked everywhere but can't seem to find a working solution.
java - Java SSLSocket 低效的 GCM
我正在使用 Java 的 SSLSocket 和密码套件:TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
结果证明效率很低。
我仍想使用上述密码套件并用我的实现覆盖 Java 的默认算法。
最佳做法是什么?:
- 覆盖 SSLSocket
- 覆盖 SunJSSE 提供程序
- 其他方法...
c++ - 无法使用 openssl 为 aes gcm 设置 IV
我正在尝试在 C++ 中使用 OpenSSL 提供的 AES GCM 加密机制,并使用此链接上的示例作为参考: https ://wiki.openssl.org/index.php/EVP_Authenticated_Encryption_and_Decryption
但是,以下语句给了我错误:
我得到的错误是:
错误:“EVP_CTRL_GCM_SET_IVLEN”未在此范围内声明”。
我不明白,为什么我不能将 IVLEN 设置为 16 字节?我不想使用 12 字节的默认值。任何指针都会很棒。
android - 如何使用 AES GCM 截断标签?
我正在使用AES/GCM
加密,我正在尝试将标签从128 bits减少到32 bits。我找到了一些关于GCMParameterSpec
应该完成这项工作的方法的文档。
你可以在下面看到我的代码:
它向我发送了这个异常:
java security invalidkeyexception:MAC 大小的值无效:32
你有什么问题,或者你能解释一下为什么它不起作用吗?
谢谢。
openssl - AES-NI 是否支持 AES-GCM 密码?
AES-NI 旨在提高使用高级加密标准 (AES) 执行加密和解密的应用程序的速度。AES-NI 是否支持 AES-GCM 密码以及 AES-CBC?我可以知道为什么 aesni_gcm_cipher 是在 openssl 代码的 aes_gcm_cipher 中定义的吗?
ios - 在 iOS 中无法使用 GCM 支持 AES 256?
目前支持的加密模式为AES 256 is CBC
. 但我想AES 256 encryption
与GCM
模式一起使用PKCS5Padding / PKCS7Padding
。
让我知道怎么做?