58得票1回答
“AES/GCM/NoPadding”中的IV和认证标签是如何处理的?

我正在使用Java 8中的AES/GCM/NoPadding加密,我想知道我的代码是否存在安全漏洞。我的代码似乎“有效”,因为它可以加密和解密文本,但有一些细节不清楚。 我的主要问题是:Cipher cipher = Cipher.getInstance("AES/GCM/NoPad...

22得票1回答
使用AesGcm类

我刚刚注意到,.NET Standard 2.1/.NET Core 3.0终于添加了一个用于AES-GCM加密的类。 然而,它的API似乎与通常的.NET加密类略有不同:其Encrypt函数要求预先分配字节数组用于密文和标签,而不是由其自己提供。不幸的是,在文档中没有展示该类的正确使用示例...

22得票3回答
Java 8u20下AES GCM加密解密速度慢

我正在尝试使用AES/GCM/NoPadding加密和解密数据。我安装了JCE无限制权限策略文件,并运行了下面(简单的)基准测试。我已经使用OpenSSL做了同样的事情,并且能够在我的PC上实现超过1 GB/s的加密和解密。 使用下面的基准测试,我只能在同一台PC上使用Java 8获得3 M...

19得票1回答
Java中带身份验证标签的AES GCM实现

我在我的Android项目中使用AES GCM身份验证,它运行良好。但是,在与OpenSSL API生成的标签进行比较时,遇到了一些身份验证标签问题。请查看以下Java代码:SecretKeySpec skeySpec = new SecretKeySpec(key, "AES"); byte...

15得票4回答
OpenSSL使用EVP接口的AES-GCM C语言实例

对于AES-GCM加密/解密,我尝试了这个方法,但它存在一个问题。ctx = EVP_CIPHER_CTX_new(); //Get the cipher. cipher = EVP_aes_128_gcm (); #define GCM_IV "000000...

15得票1回答
AES/GCM模式下能使用PKCS5Padding吗?

AES/GCM的填充模式是什么?我知道它可以是NoPadding,在ECB模式下可以是PKCS5Padding,但在GCM模式下呢?在JCE接口中,我们需要提供“algorithm/mode/padding”(参考文献)。因此,我使用了以下代码来获取实例,在JDK中它可以工作,但在IBM SD...

14得票2回答
如何在GCM模式下使用AES链接BCryptEncrypt和BCryptDecrypt调用?

使用Windows CNG API,我能够使用AES在GCM模式下对单个数据块进行带认证的加密和解密。现在我想连续加密和解密多个缓冲区。 根据CNG文档,支持以下场景: 如果加密或解密的输入分散在多个缓冲区中,则必须链接调用BCryptEncrypt和BCryptDecrypt函数。通过...

13得票1回答
在.NET Framework 4.7中是否可以使用AES(256位)GCM模式加密数据?

MSDN链接提供了AES类的具体参考: System.Security.Cryptography.AesCng System.Security.Cryptography.AesCryptoServiceProvider System.Security.Cryptography.AesMan...

12得票4回答
Java 9: AES-GCM性能

我在Java 9中运行了一个简单的测试,以循环加密字节缓冲区来测量AES-GCM的性能。结果有些令人困惑。本地(硬件)加速似乎起作用了,但并非总是如此。更具体地说, 当循环加密1MB缓冲区时,前50秒的速度为约60 MB / sec。然后跳升至1100 MB / sec,并保持不变。JVM...

12得票1回答
IvParameterSpec和GCMParameterSpec在AES/GCM/NoPadding中的区别

我正在Android (API 19及以上版本)上使用 AES/GCM/NoPadding 算法加密一些数据,然后再解密回来。 我使用的密钥大小为32字节,并由其他方式提供给我。 除了加密之外,我还想知道当我尝试解密并使用错误的密钥时会发生什么。这就是为什么我喜欢使用GCM作为我的模式以获...