GP TEE需支持的加解密算法

GP TEE规范规定了TEE所需支持的加解密算法标准,一张图表示如下(点击看大图)

密码学博大精深,而且在不断发展研究我们今天只是简要介绍一下,后期会有针对性的详细介绍!

从上图来看,首先普及几个基本概念:

分组密码(block cipher)

简单说,就是先把文件分块,按数据块来进行加解密。

DES,Data Encryption Algorithm,一种加密算法。

3DES(Triple DES)它以DES为基本模块,通过组合分组方法设计出分组加密算法,更为安全。

AES Advanced Encryption Standard 来替代原先的DES,已经被多方分析且广为全世界所使用,成为对称密钥加密中最流行的算法之一。AES就是对16byte(128bit)数据进行加密的过程,可以使用128、192 和 256 位密钥。

操作模式

也就是加解密的方式。工作模式描述了加密每一数据块的过程。

认证加密

也就是说既要解决加密的需求,又要解决认证的需求,解决完全性和完整性。工作模式有三种:

1、先加密后对密文签名(encrypt-then-mac)。

2、先对明文签名,然后对明文和签名进行加密(mac-then-encrypt)。

3、先对明文签名,然后对明文加密,最后将签名附在密文之后(mac-and-encrypt)

CCM 首先使用CBC-MAC模式来认证传输帧,然后使用CTR模式来加密帧.

GCM ( Galois/Counter Mode) 指的是该对称加密采用Counter模式,并带有GMAC消息认证码。

Hashing Function(哈希函数)

一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。hash是找到一种数据内容和数据存放地址之间的映射关系。

MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的摘要算法之一。

SHA (Secure Hash Algorithm,译作安全散列算法) 是美国国家安全局 (NSA) 设计,美国国家标准与技术研究院(NIST) 发布的一系列密码散列函数。其中规定了SHA-1,SHA-224,SHA-256,SHA-384,和SHA-512这几种单向散列算法。SHA-1,SHA-224和SHA-256适用于长度不超过2^64二进制位的消息。SHA-384和SHA-512适用于长度不超过2^128二进制位的消息。

消息验证码(MAC)

带密钥的Hash函数,密码学中,通信实体双方使用的一种验证机制,保证消息数据完整性的一种工具。

安全性依赖于Hash函数,故也称带密钥的Hash函数。消息认证码是基于密钥和消息摘要所获得的一个值,可用于数据源发认证和完整性校验。在发送数据之前,发送方首先使用通信双方协商好的散列函数计算其摘要值。在双方共享的会话密钥作用下,由摘要值获得消息验证码。之后,它和数据一起被发送。接收方收到报文后,首先利用会话密钥还原摘要值,同时利用散列函数在本地计算所收到数据的摘要值,并将这两个数据进行比对。若两者相等,则报文通过认证。

通常有基于HASH函数的MAC,我们成为HMAC。以及基于分组密码的MAC,我们成为CMAC。

非对称算法

RSA,前面文章介绍过,请参考:

RSA算法原理一点通

DSA Digital Signature Algorithm. based on discrete logarithms computation.DSA 用于签名,而 RSA 可用于签名和加密。

EC-DSA是ECC与DSA的结合,整个签名过程与DSA类似,所不一样的是签名中采取的算法为ECC。

PKCS#1 RSA密码学规范,版本2.1

标准的椭圆曲线 ECC算法,包含ECC密钥产生、ECDSA签名、ECKA-EG、ECKA-DH协商,支持的曲线如:

NIST P-256,brainpoolP256r1,FRP256V1等。

原文发布于微信公众号 - 安智客(china_safer)

原文发表时间:2017-11-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

Golang语言--中AES加密详解

golang标准库中对于aes加密的阐述得非常简洁,如果没有一定的密码学基础知识,是很容易迷惑的。 本文将完整地介绍aes加密的基本知识,并分析网络上常见的调...

4918
来自专栏信安之路

Wifi 四次握手认证过程介绍

如今大家都非常熟悉 WiFi 密码常见的破解手法,可是破解的原理你懂吗?我想很多人都是不知道的,所以今天就来简单的讲解一下。

2930
来自专栏安智客

Key attestation的几个关键点!

Key attestation就是密钥认证,之前介绍过: Key attestation-Google的密钥认证 下图是Google Android密钥认证的架...

7257
来自专栏技术换美食换不换

TOB服务部署安全模块

1384
来自专栏安全领域

最佳安全实战:在 Java 和 Android 里用 AES 进行对称加密

原文地址:https://proandroiddev.com/security-best-practices-symmetric-encryption-with...

4114
来自专栏空帆船w

Android APK 签名原理

Android APK 签名原理涉及到密码学的加密算法、数字签名、数字证书等基础知识,这里做个总结记录。

3283
来自专栏大内老A

[WCF安全系列]认证与凭证:X.509证书

在《上篇》中,我们谈到了常用的认证方式:用户名/密码认证和Windows认证。在下篇中,我们着重来介绍另外一种重要的凭证类型:X.509证书,以及针对X.509...

21410
来自专栏情情说

让数据传输更安全

在阅读RabbitMQ数据传输安全的章节时,提到了ssl协议,用了很大篇幅介绍使用openssl生成一些列秘钥和证书,如果没有相关基础,会不太好理解,本篇就来总...

4177
来自专栏Netkiller

OpenSSL 转换证书格式

工作中我相信你一定会遇到处理数字证书的时候。各种平台,各种语言,它们采用的证书格式与标准都不相同,多多少少存在一些差异。实际上证书仍然是那个证书,只是格式发生了...

5266
来自专栏owent

ECDH椭圆双曲线(比DH快10倍的密钥交换)算法简介和封装

前面有几篇blog就提到我有计划支持使用ECDH密钥交换。近期也是抽空把以前的DH密钥交换跨平台适配从atgateway抽离出来,而后接入了ECDH流程。

2603

扫码关注云+社区

领取腾讯云代金券