Advertisement

关于FHEW全同态加密库的学习笔记

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本学习笔记详细记录了对FHEW全同态加密库的研究过程与心得,涵盖其原理、实现细节及应用示例,旨在帮助初学者快速掌握相关技术。 这是关于全同态加密库FHEW的学习记录,在此对FHEW库的加解密算法、密文操作及生成方法进行了简要介绍,并结合GitHub上的代码进行分析。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • FHEW
    优质
    本学习笔记详细记录了对FHEW全同态加密库的研究过程与心得,涵盖其原理、实现细节及应用示例,旨在帮助初学者快速掌握相关技术。 这是关于全同态加密库FHEW的学习记录,在此对FHEW库的加解密算法、密文操作及生成方法进行了简要介绍,并结合GitHub上的代码进行分析。
  • 利用FHEW执行法、累与乘法运算
    优质
    本研究基于FHEW库实现全同态加密技术下的基本数学运算,包括加法、累加及乘法操作,以增强数据处理的安全性。 这只是我的练习之作,实现起来比较简单,其中可能有很多不够完善的地方,希望可以多多交流!
  • Python深度
    优质
    Python同态加密深度学习库是一款专为保护数据隐私而设计的工具包,它允许在密文上直接进行深度学习模型训练和推理,确保用户的数据安全与计算透明。 PySyft 是一个用于安全私密深度学习的 Python 库。它使用 PyTorch 中的联合学习、差分隐私和多方计算(MPC)技术来分离私有数据与模型训练过程。 关于 PySyft 的详细解释可以在相关论文中找到,同时 Siraj Raval 也提供了预安装视频教程供参考。建议在 Conda 虚拟环境中进行安装,尤其是使用 Windows 系统的用户可以考虑安装 Anaconda 并通过 Anaconda Prompt 进行操作: ``` conda create -n pysyft python=3 conda activate pysyft # 一些旧版本可能需要“source activate pysyft” conda install jupyter notebook pip install syft ``` PySyft 支持 Python 版本大于等于 3.6 和 PyTorch 1.1.0。
  • Python深度详解
    优质
    本文章详细介绍了一个基于Python的同态加密深度学习库,探讨了它在保护数据隐私方面的应用及技术细节。 Python同态加密深度学习库
  • HElib方案
    优质
    HElib是一款实现全同态加密(FHE)技术的开源软件库,允许在密文上进行复杂的计算操作而不先解密数据,保障了数据的高度隐私和安全。 这是IBM用C++编写的全同态加密库HElib,支持加、减、乘的全同态加密操作。有了这些基本操作,我们可以实现各种形式的计算,并将全同态加密技术应用于各个行业的安全领域。
  • Python-ReSeal:用Python(FHE)
    优质
    Python-ReSeal是一款专为Python设计的全同态加密(FHE)库,它基于ReSeal库构建,支持在密文状态下进行高效计算。 Python-ReSeal是一个完全同态的加密抽象库,主要致力于启用加密的深度学习。现在,该库通过使用pybind11绑定到python的Microsoft-SEAL支持CKKS方案,并将所有MS-SEAL的对象抽象为一个单个元对象,以方便进行序列化、反序列化、加密、加法和乘法等操作。这使得它更精简并易于使用。 出于多种原因,包括持续集成/持续交付(CI/CD),Python-ReSeal将开始通过GitLab进行过渡,并且GitHub仍将是最新的镜像。
  • dbget
    优质
    这段学习笔记详细记录了作者在研究和理解DBGET过程中的心得体会与实践经验,旨在帮助其他研究人员快速掌握DBGET的使用方法。 ### dbget 命令相关学习笔记 #### 一、dbget命令概述 在电子设计自动化(EDA)领域,特别是使用Innovus设计平台时,`dbget`命令是一个非常重要的工具。它用于查询数据库中的信息,通过该命令可以直接访问Innovus数据库,并执行一系列查询操作来获取所需的信息。 #### 二、dbget 命令的基本语法 `dbget`命令的基本语法格式如下: ``` dbget [选项] [路径] ``` 其中: - **选项**:定义查询的方式或显示的信息类型。 - **路径**:定义要查询的对象的路径或者层次结构。 #### 三、dbget 命令的使用方法 1. **查询标准单元名称** 使用 `dbget selected.name` 可以获取当前选中的标准单元的名称。这里的 `selected` 表示已经被选中的对象,通常是某个标准单元。 2. **显示选中对象的信息** - `dbget selected.?`:列出当前选中对象下的所有子模块或属性。 - `dbget selected.??`:显示所有子模块或属性的详细信息。 - `dbget selected.?h`:提供当前选中对象下的子模块或属性的简短帮助信息。 3. **查询特定层次结构** - `dbget top.`:查询顶层的信息。 - `dbget top.insts`:查询顶层下的实例(instances)。 - `dbget top.insts.name`:获取顶层实例的名称。 - `dbget top.insts.instTerms.name`:获取实例的引脚(pins)名称。 4. **使用`, `,`, 和`h` 这些符号用于深入查询子模块或属性。例如: - `dbget selected.?`:列出选中对象的所有子模块或属性。 - `dbget selected.?h`:列出选中对象的简要帮助信息。 5. **其他命令** - `dbget selected.name`:获取当前选中对象的名称。 - `dbget selected.props`:获取选中对象的属性。 - `dbget selected.pgTerms`:获取电源网格(power grid)的端口信息。 6. **结合其他命令使用** - `llength`: 结合`llength` 命令可以计算列表中的元素数量。例如,`llength [dbget top.insts.name]` 可以计算顶层实例的数量。 - `redirect`: 用于将查询结果重定向到文件中。例如,`redirect dff.txt [dbget *.*.DFF*]` 将包含 DFF 的实例名称输出到文件dff.txt 中。 7. **特殊符号和命令** - `-V`: 用于取反查询。 - `-e`: 将返回的0x0转换为空字符。 - `-i`: 限制显示的结果数量。 - `-T`:过滤以特定字符结尾的对象名称。 8. **多层查询** 示例: - `dbget top.hinst.hinsts.name` 查询第一层级模块名称 - `dbget top.hinst.hinsts.hinsts.name` 查询第二层级模块名称 #### 四、dbget实例解析 假设我们需要获取顶层实例P4下的所有子实例的名称,并进一步获取这些子实例的引脚名称,可以按照以下步骤操作: 1. **获取顶层实例名称** ``` dbget top.name ``` 输出结果为 P4。 2. **获取子实例名称** ``` dbget top.P4.insts.name ``` 输出可能包括P3等实例名称。 3. **获取子实例的引脚名称** ``` dbget top.P4.insts.P3.instTerms.name ``` 输出可能包含A0、A1、B0、B1和Y等引脚名称。 #### 五、dbget与Innovus数据库交互 - **坐标转换** 使用 `dbu2uu` 和 `uu2dbu` 命令可以在Innovus内部坐标系统与图形界面坐标之间进行转换。 - **综合案例** 例如,查询实例 P4 下的 P3 实例的 A0 引脚在 metal1 层名称: ``` dbget top.P4.insts.P3.instTerms.A0.layer.metal1 ``` 通过以上介绍可以看出,`dbget`命令在Innovus平台中具有广泛的应用场景,并且能够帮助设计人员高效地查询和管理复杂的设计数据库。掌握这些命令的使用方法对于提高设计效率至关重要。
  • UVM.docx
    优质
    这份文档是作者在学习UVM(Universal Verification Methodology)过程中的个人笔记汇总,包含了理论知识、实践操作和心得体会等内容。 UVM学习笔记:Agent是封装了monitor、driver和sequencer的组件,并且包含两种模式——Active模式和Passive模式。在Passive模式下,agent仅包括monitor部分,不负责驱动DUT(设计待验证模块)。
  • 编码
    优质
    全同态加密编码是一种高级加密技术,允许对密文进行计算操作后解密得到与直接作用于明文运算相同的结果。这项技术在保护数据隐私的同时支持云端等外部环境下的数据分析和机器学习应用,具有广阔的应用前景。 IBM的全同态加密代码非常出色,有助于理解相关概念。