HElib
=====
***March 2018:*** Re-implementation of homomorphic linear transformations, featuring speedups of 15x to 75x.
***Dec 2017-Jan 2018:*** Added some routines for addition/multiplication and
comparisons of integers in binary representation, and for homomorphic table
lookup. See the supported interfaces in `binaryArith.h`, `binaryCompare.h`,
and `tableLookup.h`. Some examples are in `Test_binaryArith.cpp`,
`Test_binaryCompare.cpp`, and `Test_tableLookup.cpp`.
The inputs and putputs to the new routines are logically vectors of Ctxt objects
(one Ctxt per bit in the binary representation). These vectors are wrapped by
the new `CtPtrs` wrapper (see `CtPtrs.h` and the underlying `PtrsVector.h` and
`PtrsMatrix.h`). Hence the same logic will work for any type of input that can
be mapped logically to arrays of `Ctxt`s, as long as one can wrap them with the
same wrapper class. In particular, we implementated wrappers for
`std::vector<Ctxt>`, `std::vector<Ctxt*>`, `NTL::Vec<Ctxt>` and
`NTL::Vec<Ctxt*>`.
-----------------------------------------------------------------------------
HElib is a software library that implements [homomorphic encryption][6] (HE).
Currently available is an implementation of the
[Brakerski-Gentry-Vaikuntanathan][1] (BGV) scheme, along with many
optimizations to make homomorphic evaluation runs faster, focusing mostly on
effective use of the [Smart-Vercauteren][2] ciphertext packing techniques and
the [Gentry-Halevi-Smart][3] optimizations. See [this report][7] for a
description of a few of the algorithms using in this library. Starting
December 2014, the library also includes [bootstrapping][8].
At its present state, this library is mostly meant for researchers working on
HE and its uses. Also currently it is fairly low-level, and is best thought of
as "assembly language for HE". That is, it provides low-level routines (set,
add, multiply, shift, etc.), with as much access to optimizations as we can
give. Hopefully in time we will be able to provide higher-level routines.
This library is written in C++ and uses the [NTL mathematical library][4]
(version 10.0.0 or higher). As of March 2015, it also supports multi-threading.
HElib is distributed under the terms of the [Apache License v2.0][5].
For more information see the [GitHub Pages][9].
[1]: http://eprint.iacr.org/2011/277 "BGV12"
[2]: http://eprint.iacr.org/2011/133 "SV11"
[3]: http://eprint.iacr.org/2012/099 "GHS12"
[4]: http://www.shoup.net/ntl/ "NTL"
[5]: http://www.apache.org/licenses/LICENSE-2.0 "Apache-v2.0"
[6]: http://en.wikipedia.org/wiki/Homomorphic_encryption "Homomorphic encryption"
[7]: http://eprint.iacr.org/2014/106 "algorithms"
[8]: http://eprint.iacr.org/2014/873 "bootstrapping"
[9]: http://shaih.github.io/HElib "GitHubPages"
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
HElib-master.zip_HElib_helib怎么用_linux helib_全同态_同态加密 (131个子文件)
he-library.bib 3KB
iotest_binBE.bin 7KB
iotest_binLE.bin 7KB
matmul.cpp 69KB
Ctxt.cpp 43KB
NumbTh.cpp 37KB
binaryArith.cpp 37KB
recryption.cpp 33KB
DoubleCRT.cpp 30KB
homAES.cpp 30KB
OptimizePermutations.cpp 30KB
FHE.cpp 29KB
EncryptedArray.cpp 28KB
matmul1D.cpp 28KB
polyEval.cpp 27KB
PAlgebra.cpp 25KB
powerful.cpp 22KB
EvalMap.cpp 21KB
FHEContext.cpp 21KB
Test_Timing.cpp 19KB
replicate.cpp 18KB
permutations.cpp 17KB
matmul.cpp 17KB
simpleAES.cpp 15KB
blockMatmul1D.cpp 14KB
CModulus.cpp 14KB
Test_bootstrapping.cpp 13KB
Test_SPX.cpp 13KB
Test_binaryArith.cpp 12KB
KeySwitching.cpp 12KB
Test_matmul.cpp 12KB
Test_ThinBootstrapping.cpp 11KB
matching.cpp 11KB
Test_General.cpp 11KB
Test_Permutations.cpp 10KB
intraSlot.cpp 10KB
blockMatmul.cpp 10KB
tableLookup.cpp 10KB
Test_Bin_IO.cpp 9KB
Test_AES.cpp 9KB
BenesNetwork.cpp 9KB
PermNetwork.cpp 8KB
Test_IO.cpp 8KB
Test_EvalMap.cpp 8KB
params.cpp 8KB
Test_binaryCompare.cpp 8KB
Test_Powerful.cpp 7KB
Test_ThinEvalMap.cpp 7KB
Test_tableLookup.cpp 7KB
Test_matmul.cpp 7KB
hypercube.cpp 7KB
binaryCompare.cpp 7KB
IndexSet.cpp 6KB
Test_Replicate.cpp 6KB
Test_PolyEval.cpp 5KB
Test_multiAut.cpp 5KB
rotations.cpp 5KB
Test_PtrVector.cpp 5KB
eqtesting.cpp 4KB
binio.cpp 4KB
Test_eqtesting.cpp 4KB
bluestein.cpp 4KB
Test_extractDigits.cpp 3KB
timing.cpp 3KB
extractDigits.cpp 3KB
Test_matching.cpp 3KB
Test_intraSlot.cpp 3KB
Test_PAlgebra.cpp 2KB
debugging.cpp 2KB
cgauss.cpp 2KB
MagicPoly.cpp 2KB
mainpage.dox 7KB
Doxyfile 101KB
.gitignore 288B
SPX.h 45KB
EncryptedArray.h 33KB
NumbTh.h 25KB
Ctxt.h 23KB
PAlgebra.h 22KB
permutations.h 19KB
FHE.h 18KB
FHE.h 17KB
powerful.h 14KB
hypercube.h 14KB
DoubleCRT.h 12KB
matmul.h 12KB
FHEContext.h 12KB
matmul.h 11KB
randomMatrices.h 9KB
PtrVector.h 9KB
PtrMatrix.h 7KB
replicate.h 5KB
IndexSet.h 5KB
cloned_ptr.h 4KB
IndexMap.h 4KB
CModulus.h 4KB
tableLookup.h 4KB
multiAutomorph.h 4KB
recryption.h 4KB
timing.h 4KB
共 131 条
- 1
- 2
资源评论
alvarocfc
- 粉丝: 105
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功