学习记录 2020/8/3

研一


全同态及半同态加密算法

全同态加密算法指可满足密文同态下无限次加乘的算法。这种加密算法将现有数据进行同态变换,变换后也可进行相同的数据处理,但对处理方来说无法读取同态数据,达到了可算不可读的作用。同态算法现在分为半同态和完全同态两种,半同态指只能进行加或乘或有限次加乘的同态变换及算法,现有的半同态算法有满足乘法运算的ElGamal,RSA,满足加法运算的Paillier算法以及可进行有限次乘法和一次加法的BGN算法;全同态则指满足所有运算类型,并且计算次数也不受限制的同态算法,这种算法存在但速度很慢,2018年12月Halevi-Polyakov-Shoup报道采用中国剩余定理(CRT)实现BFV同态加密算法。他们使用E5 CPU的系统在62毫秒内可以在密文上完成20次乘法(1次乘法约3毫秒,5次乘法约10毫秒),一次乘法运算的速度占两毫秒在实际工程中是不可接受的,事实上,即使是半同态算法的RSA在工程当中也仅仅只是完成给对称进行加密的作用,实际对数据的加密是由对称密钥来完成的。目前存在的全同态算法有GSW,CKKS等,以上提到的两种算法是最新的第三代算法以及支持浮点数运算的算法。
半同态及全同态算法目前的应用场景有云计算,物联网,区块链以及联邦学习几个场景。在云计算中数据拥有方将数据进行同态变换后上传给云计算服务器进行计算,服务器调用算法计算生成结果后返回给计算请求方。该过程由于同态变换的存在保证了数据隐私及加密性。但具体的实现仍需提高算法计算速度才能进行大规模实施。

联邦学习

在研究同态加密的时候看到了加法半同态加密的应用场景式联邦学习,所以稍微看了下这个概念。
联邦学习是机器学习的一个变种应用,满足多个用户在不共享其数据的情况下共同建立机器学习模型。Paillier加法半同态加密的应用场景估计也是用在对不同方数据的加密上。
当机器学习需要提供的数据分布在不同用户手中,而且各用户要求满足对数据的保密性时,便可以使用联邦学习范式来完成机器模型的建立。联邦学习可使用户将数据汇聚到一起建立起一个虚拟的模型,同时并不需要用户将本地的数据上传。虚拟模型无限接近于各用户将自己的数据上传之后建立的真实数据模型。该虚拟模型建立后可为各参与者提供服务,参与者的身份地位相同。
联邦学习三要素是用户,数据源和学习系统。这点我没太理清楚,猜测大概每个用户持有一个数据源,数据源属于本地不可上传的,但数据源可以通过计算得到一个初始的机器学习模型,各个模型汇总后再通过处理得到虚拟联邦学习模型,即学习系统。

代码编写遇到的问题

  • 设计函数的时候,时刻注意函数的类型以及是否为指针,千万不要将一个指针类型的参数直接赋值,这样会使指针的地址变成设定的参数值,无法访问到真实数据,甚至会访问到系统不应该访问的内存。
  • jni编写的出参如果是整型或浮点类型则需要单独设置class和class_id,并在C得到该值后setfield赋值。
  • 调用函数前永远不要忘了参数检查,保证编译一遍过

每天都要看论文!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值