审计流程:
1.初始化(User+KGC一起做,如果是无证书体系;user一人做,PKI体系;KGC做,ID-based体系):这里要说明之后验证标签,聚合验证,以及你们方案加的东西需要用到的东西。比如一般聚签需要公钥列表({vki}i∈L),当然还有私钥,无证书还有主私钥主公钥,以及公共参数(G,g,GT,e(.,.),H,.....)
2.标签生成(一般是user做,ID-based是KGC做):用sk和m一般是
3.标签验证(一般是CS做,云服务器):e(标签,验证项)=e(g,g...)(这里是对下,不固定,可以是像BLS一样的e(H(ID),g....)) 当然也可以在RSA下做
4.标签聚合(用户做,因为需要知道sk和秘密值等,因为是无证书,有的方案这一步会拿给CS去做,所以不固定)
5.TPA向CS发起挑战(TPA想要知道消息集合I的对应标签是否在CS中):发送集合I到CS
6.CS进行ProofGen:(如之前没聚合,需要CS聚合,就在这里聚合,具体看情况),还要生成一些重要的参数,不同文章不一样,看是要干啥的
7.Verify(TPA):用对或是RSA体系的,总之能验证就行。
计算代价:需要每一步(从2到7)都了解具体怎么做的,需要用到什么,有什么,没有的要不要公开出来。用了几个标量乘,几个双线性对,集合MaptoPoint的Hash(G下),用公式表示,前期不用算具体值。说得很轻松,算起来很不容易,尤其是新手要花很久才能慢慢明白
通信代价:相对简单,之前也提到过,问过我那超牛逼的师兄了,就只算chal和proof传送的东西就够了
存储代价:自然就是CS存的有什么,他需不需要存所有m,还需不需要所有标签,还是就一个聚合标签。
这些个人考虑把,我也需要保护自己方案的隐私性,尽量有什么通用的和各位大牛分享吧,一会儿还得和我那暴躁的老板汇报。有问题欢迎评论,我会一直更新的,最起码这大半年都会搞密码学审计这个领域