RSA算法和AES算法性能测试

我的笔记本配置:(i5-6200U 8G内存,256G固态)

AES:

 

测试条件:密钥长度128位

                 

1.     测试数据:

                  明文长度:117bytes

         测试结果:

                  测试数据:    100条              1000条            10000条         1000000条

                  加密耗时:    47毫秒          137毫秒         508毫秒          6425毫秒

                  解密耗时:    14毫秒            83毫秒            237毫秒          4884毫秒

2.     测试数据:

                  明文长度:1000bytes

         测试结果:

                  测试数据:    100条              1000条            10000条         1000000条

                  加密耗时:    60毫秒          143毫秒         568毫秒          8505毫秒

                  解密耗时:    22毫秒            89毫秒            303毫秒          6212毫秒

 

RSA:

 

测试条件:密钥长度1024位

 

1.     测试数据:

                  明文长度:117bytes

         测试结果:

                  测试数据:    100条              1000条            10000条

                  加密耗时:    134毫秒       294毫秒         1283毫秒

                  解密耗时:    136毫秒          1205毫秒       9409毫秒

 


文件批量测试AES、RSA加解密算法的性能

 

测试流程:   

         1.生成明文信息,写入文件。

         2.明文信息执行读操作,并进行明文加密,然后写密文信息,统计执行时间

         3.密文信息执行读操作,并进行密文解密,然后写解密后信息,统计执行时间

 

AES测试:

         单条明文数据长度:100字节

 

         数据大小:    10K                  100k

         加密耗时:    54ms                 189ms

         解密耗时:  22ms                 80ms

         加密文件:  16k                    152k

 

单条明文数据长度:1000字节

 

         数据大小:    98K          979k                  97M

         加密耗时:    72ms        285ms              3490ms

         解密耗时:  55ms        150ms              2784ms

         加密文件:  132k         1.3M                 131M

 

RSA测试:

 

单条明文数据长度:117字节(1024位密钥可接受最大字节数)

         数据大小:    12K                    1163k               116M(一百万条数据)

         加密耗时:    335ms              1811ms            57724ms

         解密耗时:  237ms              11280ms          940614ms(15minutes)

         加密文件:  17k                    1700k               169M


以上数据仅供参考,可以看出:


1.RSA算法效率没有AES效率高


2.对于1024位密钥RSA加密的明文长度只支持117byte


3.明文长度对于AES加解密效率没有太大影响




  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
对于使用C语言实现AES加密算法RSA加密算法,你可以按照以下步骤进行操作: 1. AES加密算法的实现: - 首先,你需要导入相关的库文件,如openssl/aes.h。 - 接下来,你可以选择使用AES-128、AES-192或AES-256等不同的密钥长度。选择一个适合的密钥长度后,你可以生成一个随机的密钥,并设置初始向量(IV)。 - 然后,你可以使用AES加密函数,如AES_set_encrypt_key()和AES_encrypt(),将明文加密为密文。 - 最后,记得释放相关的资源,并清理内存。 2. RSA加密算法的实现: - 首先,你需要导入相关的库文件,如openssl/rsa.h。 - 接下来,你可以使用RSA_generate_key函数生成RSA的公钥和私钥。 - 然后,你可以使用RSA公钥对明文进行加密,使用RSA私钥对密文进行解密。 - 除此之外,你还可以使用RSA私钥对明文进行签名,使用RSA公钥对签名进行验证。 下面是一个示例代码,演示了如何使用C语言实现AESRSA加密算法: ```c #include <stdio.h> #include <openssl/aes.h> #include <openssl/rsa.h> #include <openssl/pem.h> #include <openssl/err.h> // AES加密函数 void aes_encrypt(const unsigned char *plain_text, unsigned char *cipher_text, const unsigned char *key, const unsigned char *iv) { AES_KEY aes_key; AES_set_encrypt_key(key, 128, &aes_key); AES_cbc_encrypt(plain_text, cipher_text, 128, &aes_key, iv, AES_ENCRYPT); } // RSA加密函数 int rsa_encrypt(const unsigned char *plain_text, int plain_text_len, unsigned char *cipher_text, RSA *rsa) { int rsa_len = RSA_size(rsa); int result = RSA_public_encrypt(plain_text_len, plain_text, cipher_text, rsa, RSA_PKCS1_PADDING); return result; } int main() { // AES加密示例 unsigned char aes_key[16]; // 128位密钥 unsigned char iv[16]; // 初始向量 unsigned char plain_text[] = "Hello, AES!"; unsigned char cipher_text[128]; // 生成随机的密钥和初始向量 // ... // 使用AES加密算法加密明文 aes_encrypt(plain_text, cipher_text, aes_key, iv); printf("AES Encrypted Text: %s\n", cipher_text); // RSA加密示例 RSA *rsa = RSA_generate_key(2048, RSA_F4, NULL, NULL); unsigned char rsa_plain_text[] = "Hello, RSA!"; unsigned char rsa_cipher_text[256]; // 使用RSA公钥加密明文 rsa_encrypt(rsa_plain_text, sizeof(rsa_plain_text), rsa_cipher_text, rsa); printf("RSA Encrypted Text: %s\n", rsa_cipher_text); RSA_free(rsa); return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值