标签: MAC

  • openssl-mac

    openssl-mac

    执行Message Authentication Code操作

    概述

    openssl mac [-help] [-cipher] [-digest] [-macopt] [-in filename] [-out filename] [-binary] [-provider name] [-provider-path path] [-propquery propq] mac_name

    描述

    计算输入文件的MAC

    选项

    • -help

      Print a usage message.

    • -in filename

      读取输入的文件名,用于于计算MAC,或者默认为标准输入。如果文件名是’-‘,则使用标准输入。文件和标准输入应该是二进制格式。

    • -out filename

      用于输出的文件名, 或使用默认的standard output.

    • -binary

      输出的MAC是二进制格式。如果没有指定,则使用十六进制文本格式。

    • -cipher name

      为CMAC和GMAC指定密码算法。对于CMAC,它应该是一个CBC模式密码,例如AES-128-CBC。对于GMAC,它应该是一个GCM模式密码,例如AES-128-GCM。

    • -digest name

      为HMAC指定摘要算法。默认为SHA256。完整的列表可以使用命令openssl list -digest-algorithms查看。

    • -macopt nm:v

      传递选项给MAC算法。EVP_MAC实现文档中可以找到控制的全面列表。EVP_MAC_CTX_get_params()使用的常见参数名称有:

      • key:string

        指定字母数字字符串作为MAC key(仅使用可打印字符)。字符串长度必须符合MAC算法的任何限制。必须为每个MAC算法指定一个密钥。

      • hexkey:string

        使用16进制格式指定MAC key(每个字节两个十六进制数字)。密钥长度必须符合MAC算法的任何限制。必须为每个MAC算法指定一个密钥。

      • iv:string

        指定一个alphanumeric字符串作为GMAC的IV(仅包含可打印字符)。字符串长度必须符合MAC算法的任何限制。

      • hexiv:string

        用16进制形式指定GMAC的IV(每个字节两个十六进制数字)。

      • size:int

        为KMAC128或KMAC256指定输出长度。默认大小分别为32或64字节。

      • custom:string

        为KMAC128或KMAC256指定一个自定义字符串。默认值为空字符串””。

      • digest:string

        这个选项与-digest选项等效。

      • cipher:string

        这个选项与-cipher选项等效。

    • -provider name

    • -provider-path path

    • -propquery propq

      See “Provider Options” in openssl(1), provider(7), and property(7).

    • mac_name

      指定要使用的支持的MAC算法的名称。要查看支持的MAC列表,请使用命令openssl list -mac-algorithms。

    注意

    支持的MAC算法取决于构建OpenSSL时使用的选项。使用openssl list -mac-algorithms列出它们。
    cipher与digest算法的组合通常是固定的

    Views: 3

  • AES的加密模式

    仅加密模式

    • AES-ECB 电码本模式
      是最基本的模式,就是一块一块的单独加密,除了安全性差其它全是优点,速度最快。
    • AES-CBC 密码分组链接模式
      链式加密,前面的密钥与后面的明文异或运算后再加密,依次进行,直到最后一块。安全性好,但速度慢,不支持并行运算,比带AEAD的GCM模式还要慢。
    • AES-CTR 计数器模式
      设一个累加的计数器,一个计数对应一个加密块,对计数进行加密然后与明文异或运算。安全性好,速度仅次于ECB模式,支持并行运算。但不支持随机访问(对任意一块进行加解决)。CTR实际上是流式加密,并且不需要填充。
    • AES-XTS 基于XEX的密文窃取算法的可调整密码本模式
      具体算法略复杂,特点是安全性好,速度快,可并行运算,速度仅次于CTR模式,最关键的是可随机访问,而其它大多数模式,像CBC,CTR仅支持从前往后顺序加解密,无法处理指定位置的块,速度略慢于CTR模式。主要用于存储设备加密,比如磁盘加密,内存加密。

    仅验证模式

    • AES-GMAC Galois消息认证码
      Galois消息认证码
    • AES-CMAC 基于密码的消息认证码
      基于密码的MAC

    AE/ADAD模式

    • AES-CCM 带有CBC-MAC 的CTR模式
      支持AE,先MAC后加密
    • AES-GCM 结合CTR模式和GMAC的分组加密模式
      支持AEAD,先加密后MAC

    AD/AEAD算法要慢于纯加密算法。

    Views: 3