自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 2021SC@SDUSC-SEAL全同态加密库(十三)

SEAL全同态加密库(十三)总结通过小组合作的方式,完成了微软SEAL全同态加密开源库的编译安装、运行、源码分析、示例代码分析。编译安装说明方面,我对SEAL库的最新3.7版本成功编译安装运行,鉴于网上搜到的说明博客都是针对旧版本,这在全网应该还是对3.7新版本的首篇安装说明的博客。重中之重,是源码分析。首先我对表面简单的代码进行了分析,即从最基本的密钥生成算法,同态的算法进行代码和理论的分析,然后跟随小组对上层的examples文件夹中的代码进行了分析,分析了SEAL对于CKKS、BFV、enco

2022-01-16 15:46:04 4005

原创 2021SC@SDUSC-SEAL全同态加密库(十二)

SEAL全同态加密库(十二)performance生成公私钥 for contextcout << "Generating secret/public keys: ";KeyGenerator keygen(context);cout << "Done" << endl;auto secret_key = keygen.secret_key();auto public_key = keygen.public_key();RelinKeys relin_

2022-01-16 15:41:32 103

原创 2021SC@SDUSC-SEAL全同态加密库(十一)

SEAL全同态加密库(十一)rotation print_example_banner("Example: Rotation / Rotation in BFV") EncryptionParameters parms(scheme_type::BFV); size_t poly_modulus_degree = 8192; parms.set_poly_modulus_degree(poly_modulus_degree); parms.set_coeff_mod

2022-01-16 15:39:31 156

原创 2021SC@SDUSC-SEAL全同态加密库(十)

SEAL全同态加密库(十)一.levels在Microsoft SEAL中,一组加密参数(不包括随机数生成器)由参数的SHA-3 哈希唯一标识。这个哈希称为“parms_id”,可以在任何时候方便地访问和打印。一旦任何参数改变,哈希值就会改变。当创建SEALContext从给定EncryptionParameters实例时,Microsoft SEAL自动创建一个所谓的“模数转换链”,这是一个来源于原始set的 a chain of 其他加密参数。模数转换链中的参数与原始参数是相同的除了系数模量的大小

2022-01-16 15:30:35 6233

原创 2021SC@SDUSC-SEAL全同态加密库(九)

SEAL全同态加密库(九)一.私钥的代码首先根据相应的算法生成相应的私钥,然后将其保存 internal SecretKey(IntPtr secretKeyPtr, bool owned = true) : base(secretKeyPtr, owned) { } public SecretKey(SecretKey copy) { if (null == copy

2022-01-16 15:23:26 101

原创 2021SC@SDUSC-SEAL全同态加密库(八)

SEAL全同态加密库(八)一.公钥的代码首先是根据相应的算法建立相关的公钥,然后将其保存 public void Set(PublicKey assign) { if (null == assign) throw new ArgumentNullException(nameof(assign)); NativeMethods.PublicKey_Set(NativePtr, assign.NativeP

2022-01-16 15:22:26 3941

原创 2021SC@SDUSC-SEAL全同态加密库(七)

SEAL全同态加密库(七)一.同态的乘法全同态乘法的具体代码如下,下面会讲述其具体过程 public void MultiplyInplace(Ciphertext encrypted1, Ciphertext encrypted2, MemoryPoolHandle pool = null) { Multiply(encrypted1, encrypted2, destination: encrypted1, pool: pool);

2022-01-16 12:16:22 4311

原创 2021SC@SDUSC-SEAL全同态加密库(六)

SEAL全同态加密库(六)一.同态的加法全同态加法的代码是这样的 public void Add(Ciphertext encrypted1, Ciphertext encrypted2, Ciphertext destination) { if (null == encrypted1) throw new ArgumentNullException(nameof(encrypted1)); if (nul

2022-01-16 12:10:11 4634

原创 2021SC@SDUSC-SEAL全同态加密库(四)

SEAL全同态加密库(四)一.加密Encrypt首先是两个构造函数,分别是解密的两种带入方式public Encryptor(SEALContext context, PublicKey publicKey, SecretKey secretKey = null) { if (null == context) throw new ArgumentNullException(nameof(context));

2022-01-16 11:48:08 4404

原创 2021SC@SDUSC-SEAL全同态加密库(二)

SEAL全同态加密库(二)一.同态加密如果我们有一个加密函数 f , 把明文A变成密文A’, 把明文B变成密文B’,也就是说f(A) = A’ ,f(B) = B’ 。另外我们还有一个解密函数 ,能够将 f 加密后的密文解密成加密前的明文。对于一般的加密函数,如果我们将A’和B’相加,得到C’。我们用对C’进行解密得到的结果一般是毫无意义的乱码。但是,如果 f 是个可以进行同态加密的加密函数, 我们对C’使用进行解密得到结果C, 这时候的C = A + B。这样,数据处理权与数据所有权可以分离,这样

2022-01-16 09:43:44 4014

原创 2021SC@SDUSC-SEAL全同态加密安全库(三)SEAL文件夹下的keygenerator——密钥生成

SEAL全同态加密安全库(三)SEAL文件夹下的keygenerator——密钥生成keygenerator概述本方法是用于生成相应的密钥,即密钥生成器,该模块是用于构建公钥、私钥、重线性化密钥的必要步骤详细代码分析首先是该类的两个构造函数public KeyGenerator(SEALContext context) { if (null == context) throw new ArgumentNullException

2022-01-16 09:11:34 488

原创 2021SC@SDUSC-SEAL全同态加密开源库(五)

SEAL全同态加密开源库(五)

2021-10-31 23:34:41 130

原创 2021SC@SDUSC-SEAL全同态加密开源库(一) 安装与配置

2021SC@SDUSC2021-09-30SEAL全同态加密开源库(一) 安装与配置初步分析着手的项目是SEAL全同态加密开源库的代码分析。从github上下载下来源码进行初步分析,项目主要编程语言为C++,另外所使用的编程语言有C#、CMake等语言。安装和配置对GitHub上的官方源码进行分析,发现SEAL库的安装方式依据版本大不相同。目前最新的release版本为SEAL 3.7,我们选择了该版本进行安装配置,该版本需要自己CMake,我们按照官方的文档进行配置,终于成功组内分工通

2021-09-30 23:46:00 639

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除