- PySEAL:一个全同态加密的Python接口库
- 来源:格密链
宁波格密链网络科技有限公司一直致力于全同态加密的应用研究。最近陈智罡博士的团队开发了一个将SEAL全同态加密库映射到Python上的接口,解决了机器学习库与全同态加密库对接的问题,极大的方便了机器学习领域人员使用全同态加密算法,为其它领域需要用到全同态加密库的人们提供便利的工具。该库已经在GitHub上开源(github.com/Huelse/pyseal)。全世界各地的工程技术人员都可以使用该库。
微软的SEAL全同态加密库包含BFV和CKKS两种全同态加密方案,陈智罡博士团队要做的就是将这个库的所有可用接口都映射到Python上来,并使之在Python上正确运行。显然这是一个全新的项目。
经过分析讨论,技术路线确定为使用微软最新的SEAL库(3.3版本)做为基础,与Pybind11官方头文件库作为中间件绑定,使用Setuptools或CMake编译生成动态链接库。这样就可供Python上调用SEAL库接口。技术框架如下:
这不是一个简单问题。初期,他们遇到了复杂的环境和标准问题,经过反复确认,团队选择使用是C++17标准和Python3.6.8的稳定版作为开发环境。然而接下来团队碰到了三个棘手问题。
第一个问题,在最新版的SEAL库中,其使用的是一个名为MemoryPoolHandle的类和MemoryManager基类作为计算过程中的指针与内存池管理。因为Python的内存管理是自动化的,所以这个在Python里是无法直接实现。于是团队在wrapper绑定文件中,将其作为一个参数类导入,最终达成了相同的功能。
第二个问题,SEAL库的Cipertext明文类中有一个关键参数scale,在测试环节中是要做到可自定义修改的,但问题在于这是一个私有变量。在C++中,定义好共有方法后,可通过应用的方式对其赋值,但在Python中因为其语言特性,同样不可能实现对私有变量的直接修改。所以经过研究,团队的解决方法是在Cipertext类中增加一个共有方法set_scale(),该函数方法是整个项目唯一对SEAL库做出修改的地方,也仅应用于测试环节的使用,对全同态加密整体是无影响的。
第三个问题,出自于Python的内存管理,这是一个技术难点与重点。提前说明一下,Python中假如我们在代码文件里定义一个变量a=0,我们再写一个带参数的函数foo(a),然后函数里会对a变量进行一系列运算使之改变。当我们将a带入到这个函数并使之运行后我们发现,在该函数里,a这个变量的确被运算过了,但是在这个函数体之外的那个a,它的值并不会变。通过id()方法观察内存,最终确认是这样的。
而在C++里通过指针的方式实现对传入参数的修改,SEAL库多处的encode和decode函数都是这样使用的。要在尽可能不改变SEAL库源码的情况下将其转移到Python上来,且Python不能操控指针,仅这个问题困扰了团队很久。最终团队给出的方案是自定义一个变量类。虽然在Python中单一的变量作为参数不会发生改变,但如果是一个类作为参数传入,那它的改变是全局性的。比如uIntVector类在c++中的原型是std::vector
最后,陈智罡博士的团队使用Pyseal将SEAL官方给出的6个样例在Python上全部实现,且运行效率也并未减少。接口已经在Github上开源。
宁波格密链网络科技有限公司一直致力于全同态加密的研究与开发,希望能给全世界更多的技术工程人员带来便利,更加方便地使用全同态加密库。
▼
欢迎收听“区块链杂谈”节目,国内最有质量的区块链知识分享节目。
◆ ◆ ◆ ◆ ◆
格密链
专注于区块链上的密码学技术
长按扫码可关注
区块
-
-
- 区块链游戏:第一代游戏的成与败
- 前言:从比特币诞生以来,人们就有了在游戏中利用加密货币的想法,并为此做了大量的实践。而真正的区块链游戏则是把游戏玩法和区块链的机制深度结合在一起。在过去几年的实践中,有一些成功,但失败更多。从这些实践
- 蓝狐笔记
-
-
-
- 公链之王遭众链围剿,落魄以太坊能否王者归来?
- 作者:秦晓峰 来源:Odaily星球日报(ID:o-daily) 作为最早的公链之一,以太坊(ETH)曾被冠以“公链之王”的美誉。 ICO (首次代币发行)狂潮退却后,项目方开始大肆抛售 ETH,也
- 陀螺财经
-
-
-
- ETHPLANET 黑客松报名最后10天!来领福利喽~
- 点击上方“Unitimes” 可以订阅哦! unitimes.io 全球视角,独到见解 ETHPLANET (以太行星) 黑客松·深圳站报名仅剩最后10天啦!如此优秀的你,怎可错过这场创意和技能
- Unitimes
-
-
-
- PySEAL:一个全同态加密的Python接口库
- 宁波格密链网络科技有限公司一直致力于全同态加密的应用研究。最近陈智罡博士的团队开发了一个将SEAL全同态加密库映射到Python上的接口,解决了机器学习库与全同态加密库对接的问题,极大的方便了机器学习
- 格密链
-
-
-
- 8-14|人民网:央行推出基于区块链等新技术的数字货币是货币体系的重大变革
- 主要内容:Primitive Ventures创始合伙人:山寨币死于零流动性;加密货币项目在推出主网后的回报率基本上为负;ICO发行公司PlexCorps与美国证券监管机构达成和解;人民网:央行推出基
- 币圈情报社
-
-
-
- KFC、海底捞、口碑纷纷布局餐饮智能化,是营销噱头还是趋势?
- 回复“资源”领取30G营销策划方案礼包 回复“社群”进入病毒先生的官方好友群 来源 | 病毒先生 文 | 刘晓悦 当传统产业出现问题,将会有新技术的产生。 近几年,随着技术的发展,智能餐厅早已
- 病毒先生
-
-
-
- 要抄底了?比特币价格指数周报
- 上周我们预测比特币维持高位震荡,很难出现深调,结果再次应验,比特币围绕11700美金连收4个十字星,每次下跌都快速反弹,死守11000美元大关。本周我们继续结合基本面数据来分析下当前行情。 日均哈希
- Yesbit区块链投资
-
-
-
- 全球区块链早讯(8.14)
- 每日行情快讯:BTC经过昨日晚间大跌在10900美元附近横盘整理 BTC经过昨日晚间大跌在10900美元附近横盘整理,主流币普跌。BTC在币安现报10913美元,24h跌幅4.22%。 1.全球数字货
- 全球区块链早讯
-
-
-
- 比特币分叉2周年:分叉很烦,但这是宿命
- “或许在许多许多年以后,比特神教内的教众们欢聚一堂,一壶浊酒喜相逢,古今多少事,都付笑谈中。” 2017年7月31日,江卓尔在微博上发了这段话,表达了对比特币社区内部混乱与激战的感慨。 两天后,比特币
- 区块链记者圈
-
-
-
- 5G应用之全球趋势前瞻:应用与流量齐飞
- 史技 历史借鉴,技术前沿,社会与组织变革趋势。 关注 来源 | 中信建投证券研究发展部 作者 | 闫贵成 武超则 352字54图 | 10分钟阅读 近日,中信建投发布了《5G应用之全球趋势前瞻
- i链说
-
-
-
- 对话Matic创始人:区块链游戏、DeFi是未来,印度没有禁止区块链
- 8月14日晚,陀螺财经邀请到Matic Network联合创始人、COO Sandeep Nailwal,为读者和社区带来了其关于区块链行业的一些思考,其中不乏对于区块链游戏、DeFi、DApps的深
- 陀螺财经
-
-
-
- 企业对区块链的反馈:企业在10—K报告里如何评论DLT技术?(下篇)
- 点击上方“蓝色字”可关注我们! 暴走时评:本文提取了2014年到2018年见提到“区块链”或“分布式账本”的10-K报告,并计算了每家公司使用这些词的次数。在数据库中五年间的36,836份1
- 区块链铅笔Blockchain
-
-
-
- 加密货币监管令人不快?但你没有理由拒绝它将带来的7大好处
- 加密货币是一种全新的资产类别。最老牌的加密货币——比特币,发展至今也不到 10 个年头,以至于目前各国都没有关于加密货币的健全法律法规,因此加密货币也有一直游离在主流之外的嫌疑,经常被贴上“犯罪、洗钱
- 白话区块链
-
朋友会在“发现-看一看”看到你“在看”的内容