iOS SecKeyCreateEncryptedData 中的 eciesEncryptionCofactorVariableIVX963SHA512AESGCM 是什么?

问题描述 投票:0回答:1

我正在看这个答案:

https://stackoverflow.com/a/53807793/1634905

使用椭圆曲线密钥对时,有以下内容:

private let keyType = kSecAttrKeyTypeECSECPrimeRandom // kSecAttrKeyTypeECSECPrimeRandom
private let algorithm = SecKeyAlgorithm.eciesEncryptionCofactorVariableIVX963SHA512AESGCM
private let keySize = 384

algorithm
用于
SecKeyCreateEncryptedData
函数。

这里的

eciesEncryptionCofactorVariableIVX963SHA512AESGCM
是什么?

Apple 的文档没有解释太多:

https://developer.apple.com/documentation/security/seckeyalgorithm/2874226-eciesencryptioncofactorvariablei

我看到还有其他可能的选项,例如

eciesEncryptionCofactorVariableIVX963SHA384AESGCM
。为什么这个答案在选择 384 作为
keySize
时却选择了 SHA512 的答案?

ios security encryption cryptography elliptic-curve
1个回答
0
投票

eciesEncryptionCofactorVariableIVX963SHA384AESGCM
是一个常量,描述如何使用椭圆曲线密钥来执行加密。

ECIES

椭圆曲线集成加密方案,一种使用椭圆曲线执行加密的方法

辅因子

在椭圆曲线计算中使用辅助因子。这增强了安全性

变量IV

在实际加密步骤中使用 IV(初始化向量),但使该向量非常数(变量)

X963

参考定义这种使用密钥方式的标准 (ANSI X9.63)

SHA-512

这是指执行密钥派生步骤时使用的哈希算法。

AES-GCM

用于加密数据的对称算法。

至于为什么 SO 答案使用 SHA-512 而不是 SHA-384,即使密钥大小是 384 位,这可能是随机的、个人偏好或其他任何原因。密钥的大小和密钥派生哈希算法不一定必须相同。

© www.soinside.com 2019 - 2024. All rights reserved.