CP-ABEの暗号強度変更方法
PBC Library
url: https://crypto.stanford.edu/pbc/
PBCライブラリはCP-ABEで使用するペアリングベースの暗号を提供し、暗号強度もここで変更されます。
暗号強度に関するパラメータは
pbc-0.5.14/param
に格納されています。
RSA暗号基準の暗号強度の比較は以下のURLに記載されていますので参考にしてください。
http://www.cipher.risk.tsukuba.ac.jp/tepla/benchmark.html
CP-ABEの構成
cpabe toolkit
高レベルの機能とインタフェースを提供します。
具体的には
- cpabe-setup
- cpabe-keygen
- cpabe-enc
- cpabe-dec
のような機能です。
libbswabe
実際に暗号化と復号を行います。
暗号強度を決定するパラメータはここで変更します。
パラメータは同様にpbc-0.5.14/paramのものを使用します。
暗号強度の変更方法
今回はlibbswabeのデフォルトであるRSA暗号の1024bit相当の暗号強度から2048bit相当に変更します。
暗号強度を変更するにはCP-ABEのlibbswabe中のソースコードを変更し再度make, make installする必要があります。
libbswabe-0.9/core.c
の15行目あたりに
15 #define TYPE_A_PARAMS \
16 "type a\n" \
17 "q 87807107996633125224377819847540498158068831994142082" \
18 "1102865339926647563088022295707862517942266222142315585" \
19 "8769582317459277713367317481324925129998224791\n" \
20 "h 12016012264891146079388821366740534204802954401251311" \
21 "822919615131047207289359704531102844802183906537786776\n" \
22 "r 730750818665451621361119245571504901405976559617\n" \
23 "exp2 159\n" \
24 "exp1 107\n" \
25 "sign1 1\n" \
26 "sign0 1\n"
があります。このTYPE_A_PARAMSはpbc-0.5.14/param/a.paramの
type a
q 8780710799663312522437781984754049815806883199414208211028653399266475630880222957078625179422662221423155858769582317459277713367317481324925129998224791
h 12016012264891146079388821366740534204802954401251311822919615131047207289359704531102844802183906537786776
r 730750818665451621361119245571504901405976559617
exp2 159
exp1 107
sign1 1
sign0 1
と同じです。
a.paramはRSA暗号の1024bit相当の暗号強度なので、2048bit相当であるpbc-0.5.14/param/a1.paramを設定します。
TYPE_A_PARAMと同様にTYPE_A1_PARAMを記述します。
#define TYPE_A1_PARAMS \
"type a1\n" \
"p 48512875896303752499712277254589628516419352188294521198189567511009073158115045361294839347099315898960045398524682007334164928531594799149100548036445760110913157420655690361891290858441360807158247259460501343449199712532828063940008683740048500980441989713739689655610578458388126934242630557397618776539259\n" \
"n 36203638728584889925158415861634051131656232976339194924022065306723188923966451762160327870969638730567198058600508960697138006366861790409776528385407283664860565239295291314844246909284597617282274074224254733917313218308080644731349763985110821627195514711746037056425804819692632040479575042834043863089\n" \
"l 1340\n"
それから、libbswabeのcore.c中のvoid型bswabe_setup()関数内の
(*pub)->pairing_desc = strdup(TYPE_A_PARAMS);
を
(*pub)->pairing_desc = strdup(TYPE_A1_PARAMS);
に変更します。
$ ./configure
$ make
$ make install
$ make clean
で完了です。