基于身份的数字签名算法

2019/03/31 密码学

最近在阅读Batch Authentication Protocol相关的论文中发现,很多方案使用基于身份的数字签名算法。下面总结出两个最常见的签名算法。

为了避免数学公式等描述上有偏差,对数学定义全部都是使用英文描述。

预备知识

  1. Bilinear Pairing

    are three cyclic groups of the same prime order . Let be a generator of and be a generator of . e: is a bilinear map, which satisfies:

    1. Bilinear: for all and ;

    2. Non-degeneracy: ;

    3. Admissible: the map is efficiently computable.

  2. Elliptic Curve Discrete Logarithm Problem

    Given a point of order on an elliptic curve, and a point on the same curve, the ECDLP problem is to determine the integer ,such that .

  3. Computational Diffie-Hellman problem

    Given two unknowns , the CDH problem is given ,compute .

方案一

初始化

生成一个基于椭圆曲线的双线性映射,选择一个哈希函数,其中的生成元。

生成密钥

选择随机数以及随机椭圆曲线上的点:

计算公钥以及私钥:

签名

对于消息:

选择随机数:

计算:

签名结果为:

检验

对于签名:

检验下面等式是否成立:

证明

假设:

有:

方案二

初始化

生成一个基于椭圆曲线的双线性映射,选择两个哈希函数,其中的生成元。

选择一个随机数,计算:

为私钥,其余可以公开的参数为:

提取

给定身份:

选择一个随机数,计算:

计算:

身份ID的私钥为

基于身份的签名

给定私钥以及消息:

选择一个随机数,计算:

计算:

签名结果为:

基于身份的验证

对于消息的签名,验证下面等式是否成立:

证明

假设:

其中:

因此:

Batch Authentication Protocol

基于上述两种数字签名方式可以衍生出批量认证算法,该内容后面继续补充。

参考文献

CPAS:An Efficient Conditional Privacy-Preserving Authentication Scheme for Vehicular Sensor Networks

补充

本文中使用MathJax引擎来渲染基于LaTeX的数学公式,方法是在MD文件中插入下列语句:

<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script>

Search

    Table of Contents