信息安全实验:对称加密算法DES之DES_ecb_encrypt()

本文详细介绍了对称加密算法DES中的DES_ecb_encrypt()函数,包括其函数原型、参数分析。该函数用于在ECB模式下将8字节明文加密为8字节密文,通过DES_set_key()设置密钥,enc参数决定是加密还是解密。

函数原型

           void  DES_ecb_encrypt(const_DES_cblock *input,const_DES_cblock *output,DES_key_schedule *ks,

           int enc)

           //ECB操作模式,该函数把8字节明文分组input加密成一个8 字节密文分组output,参数中的密钥结构ks由下面

           的DES_set_key()产生,

           参数enc指示加密还是解密(1表示加密,0表示解密),对称加密算法的加解密函数相同.

           int  DES_set_key(const_DES_cblock *key,DES_key_schedule *schedule)

参数分析

         从openssl的include/openssl目录下的des.h头文件中得知:
           typedef unsigned char DES_cblock[8];
           typedef /* const */ unsigned char const_DES_cblock[8];
                                                                                                                      
           typedef struct DES_ks
           {
               union
           {
           DES_cblock cblock;
           /* make sure things are correct size on machines with
           * 8 byte longs */
          DES_LONG deslong[2];
           } ks[16];
           } DES_key_schedule;

解释

            DES_cblock为8个无符号字符类型(char与unsigned char在内存中都占一个字节,但char最高位为符号位,
            因此char能表示-128~127;
            unsigned char没有符号位,因此能表示0~255),所以sizeof(DES_cblock)=8字节.
            const_DES_cblock与上相同。
            DES_key_schedule为DES_ks结构体,里面是一个union共用体,所以DES_key_schedule的size
            为16x8=128字节。


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值