Charm-crypto簡(jiǎn)介
Charm-crypto 是一個(gè)框架,用于快速原型設(shè)計(jì)先進(jìn)的密碼系統(tǒng)殴玛「韪龋基于Python語言,它是從頭設(shè)計(jì)的,減少開發(fā)時(shí)間和代碼的復(fù)雜性,同時(shí)促進(jìn)組件的重用焰枢。它支持基礎(chǔ)密碼庫(kù),包括對(duì)稱加密方案,散列函數(shù),PRNGs童擎、數(shù)字簽名棉安、加密等媳维。
安裝過程
- 打開charm庫(kù)的網(wǎng)址酿雪,https://pypi.org/project/charm-crypto/0.43/,按照上面指示輸入命令:
pip install charm-crypto==0.43
然而不出所料侄刽,安裝出錯(cuò)指黎,顯示如下:可以看到其中有一句:fatal error:gmp.h:No such file or directory。分析應(yīng)該是缺少了某個(gè)庫(kù)州丹。繼續(xù)閱讀charm庫(kù)的網(wǎng)址醋安,發(fā)現(xiàn)需要依賴GMP庫(kù)和PBC庫(kù)杂彭。
- 安裝GMP庫(kù):打開GMP庫(kù)網(wǎng)址https://gmplib.org/#DOWNLOAD,選擇GMP壓縮文件下載吓揪,這里我選擇了gmp-6.1.2.tar.bz2文件下載亲怠,下載完成后,解壓柠辞,輸入命令:
tar -jxvf gmp-6.1.2.tar.bz2
解壓得到gmp文件夾团秽,之后進(jìn)入文件夾,首先需要檢查編譯環(huán)境叭首,輸入命令:
./configure
configure中习勤,發(fā)現(xiàn)報(bào)錯(cuò)提示:
...
checking whether sscanf needs writable input... no
checking for struct pst_processor.psp_iticksperclktick... no
checking for suitable m4... configure: error: No usable m4 in $PATH or /usr/5bin (see config.log for reasons).
提示缺少m4庫(kù),繼續(xù)安裝m4庫(kù):
sudo apt-get install m4
繼續(xù)configure放棒,沒有報(bào)錯(cuò)姻报,接著輸入命令make和make install即可成功安裝GMP庫(kù),接著進(jìn)入/usr/local/lib查看是否安裝成功间螟,結(jié)果在/usr/local/lib下:
libgmp.a libgmp.la libgmp.so libgmp.so.10 libgmp.so.10.3.2
顯示有g(shù)mp的共享庫(kù)吴旋,可以認(rèn)為GMP庫(kù)安裝成功。
- 安裝PBC庫(kù):打開PBC庫(kù)的網(wǎng)址厢破,https://crypto.stanford.edu/pbc/download.html荣瑟,下載文件pbc-0.5.14.tar.gz,之后解壓摩泪,解壓命令:
tar -zxvf pbc-0.5.14.tar.gz
進(jìn)入解壓后的文件夾笆焰,與GMP一樣,首先檢查編譯環(huán)境见坑,輸入命令./configure嚷掠,結(jié)果報(bào)錯(cuò):
...
checking how to run the C preprocessor... gcc -E
checking whether ln -s works... yes
checking whether make sets $(MAKE)... (cached) yes
checking for flex... no
checking for lex... no
************************
flex not found
************************
提示缺少flex庫(kù),繼續(xù)安裝flex庫(kù):
sudo apt-get install flex
安裝成功后荞驴,繼續(xù)configure不皆,結(jié)果報(bào)錯(cuò):
checking whether yytext is a pointer... yes
checking for bison... no
checking for byacc... no
************************
bison not found
提示缺少bison庫(kù),繼續(xù)安裝bison庫(kù):
sudo apt-get install bison
安裝成功后熊楼,繼續(xù)configure霹娄,接著輸入make,make install即可安裝鲫骗,接著進(jìn)入/usr/local/lib查看安裝情況:
libgmp.a libgmp.la libgmp.so libgmp.so.10 libgmp.so.10.3.2 libpbc.a libpbc.la libpbc.so libpbc.so.1 libpbc.so.1.0.0
文件夾存在pbc的共享庫(kù)犬耻,可以認(rèn)為pbc正確安裝。
- 在安裝好GMP和PBC庫(kù)的情況下执泰,再安裝charm枕磁,依然報(bào)錯(cuò):
In file included from charm/core/math/pairing/pairingmodule.c:30:0:
charm/core/math/pairing/pairingmodule.h:44:29: fatal error: openssl/objects.h: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1
顯示缺少openssl/objects.h文件。在網(wǎng)上查找原因术吝,https://blog.csdn.net/shakeme/article/details/80911441计济,按照網(wǎng)頁說明輸入命令:
sudo apt-get install libssl-dev
再次安裝輸入pip install charm-crypto==0.43沒有報(bào)錯(cuò)即可晴楔。若還報(bào)錯(cuò),輸入:
sudo apt-get install libssl1.0-dev
驗(yàn)證安裝成功與否
打開python,輸入:
import charm
沒有報(bào)錯(cuò)即可峭咒。