学习文章:英特尔×同态科技 | 基于AVX-512指令集的同态加密算法中大整数运算性能优化与突破

文章

人工智能的安全隐患

ChatGPT的成功大部分来源于海量的数据支撑和丰富的数据维度,基于13亿参数量的庞大模型,随着用户的不断涌入,ChatGPT不断迭代进化新的“知识”,而在模型表达能力的增强之外,同时也带来了难以忽视的安全风险。除了模型本身可能存在的投毒风险,隐私数据泄露导致的数据重构等风险,都可能造成一定的社会及经济损失。

数据安全共享解决方案

在数字经济迅速发展的大背景下,如何能够利用安全、合规、有序的数据流通和共享手段,将本地数据共享给人工智能平台进行联合训练?

为提升模型学习与决策能力,隐私计算技术能够在保护数据本身不泄露的前提下,能够较好解决数据在收集、传输、分析、计算等处理活动中的动态安全,但实际应用中,仍存在技术应用成熟度低、应用实施改动大、权威机构认证少等痛点问题。

因此,同态科技围绕以同态加密为核心的一系列国产新型密码技术,在充分保护数据隐私安全的基础上,不改变原有业务流程,低成本、低改造地拓展数据应用场景。通过“一次加密,一次加载,全量应用”的新型数据流转模式,实现数据价值最大化,达成 “原始数据不出域,数据可用不可见”目的。

国产同态加密算法解决计算效率问题

同态加密技术,就是指数据加密之后,密文数据和未加密前的明文数据相比,具有完全一致的计算能力。目前对比市场上主流的同态加密技术,或多或少的有一些效率上的瓶颈。

Craig Gentry曾给出直观定义:“A way to delegate processing of your data, without giving away access to it”,通俗的讲,同态加密技术就是一种在不接触原始数据的情况下,实现对数据的应用。

同态科技自研的国产新型同态加密算法——“同态构型”算法有效解决了计算效率问题,大幅提升了密文计算性能。

CCA-2安全:自适应性选择密文安全,参考:https://www.cnblogs.com/pam-sh/p/15244862.html

在同一批数据相同运行环境下,与当下主流的同态加密算法库(微软SEAL)相比,实现了算法层面的速度提升1800倍以上,并在密文扩张、兼容性、细粒度、以及应用场景等方面均实现了较大提升,有效解决在当下数据融合过程中的隐私保护问题。

结合英特尔再度提升算法计算性能

SIMD技术通过对一组数据向量中的每个元素同时执行相同的操作,实现空间上的并行性。

在算法优化的基础上,大整数运算是“同态构型”算法中,性能提升的一大环节。同态科技联合英特尔,以AVX-512指令集为切入点,通过中国剩余定理压缩数据,再利用并行计算提升大整数的运算效率,形成大整体运算优化方案。

见论文:Fully homomorphic SIMD operations

英特尔 AVX-512作为SIMD技术的典型代表,利用32个512位长的向量寄存器,不但提升了并行计算的数据存量,还在算力部分进行了优化,更适配高性能计算场景下的效率需求,对于科学模拟、金融分析、人工智能、图像处理、数据压缩等,对工作负载和用例的性能较高的业务均提供了有力支撑。

最终实验结果表明,该方案和主流大整数库(GMP库)项目,加法效率提升了70倍,乘法效率提升了100倍,有望基于此进一步实现同态构型算法的性能提升。

技术

同态构型密码算法

来自:https://www.ttaicloud.com/p/technology.html

同态构型密码算法设计不依赖传统的公钥全同态加密技术,基于离线状态下常数次(最优时一次)单向陷门J置换,在线状态下仅包含加法、乘法的对称全同态映射,实现密文域上高效的隐私计算。

文章学习:基于AVX-512指令集的同态加密算法中大整数运算性能优化与突破的更多相关文章

  1. Oracle学习总结(8)—— 面向程序员的数据库访问性能优化法则

    特别说明: 1.  本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识: 2.  本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也 ...

  2. 学习 CLR 源码:连续内存块数据操作的性能优化

    目录 C# 原语类型 1,利用 Buffer 优化数组性能 2,BinaryPrimitives 细粒度操作字节数组 提高代码安全性 3,BitConverter.MemoryMarshal 4,Ma ...

  3. Android性能优化学习

    工作以来,越来越觉得性能优化的重要性,从技术角度,它甚至成了决定一个app成败的最关键因素.因此,特地花时间去学习专研性能优化的方法. 学习性能优化最便捷的方式便是研读别人有关性能优化的博客,然而网上 ...

  4. R语言网络爬虫学习 基于rvest包

    R语言网络爬虫学习 基于rvest包 龙君蛋君:2015年3月26日 1.背景介绍: 前几天看到有人写了一篇用R爬虫的文章,感兴趣,于是自己学习了.好吧,其实我和那篇文章R语言爬虫初尝试-基于RVES ...

  5. Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK

    原文:Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.ne ...

  6. 基于栈的指令集与基于寄存器的指令集详细比对及JVM执行栈指令集实例剖析

    基于栈的指令集与基于寄存器的指令集详细比对: 这次来学习一些新的概念:关于Java字节码的解释执行的一种方式,当然啦是一些纯理论的东东,但很重要,在之后会有详细的实验来对理论进行巩固滴,下面来了解一下 ...

  7. JVM笔记 -- JVM的发展以及基于栈的指令集架构

    2011年,JDK7发布,1.7u4中,开始启用新的垃圾回收器G1(但是不是默认). 2017年,发布JDK9,G1成为默认GC,代替CMS.(一般公司使用jdk8的时候,会通过参数,指定GC为G1) ...

  8. 从零学习基于Python的RobotFramework自动化

    从零学习基于Python的RobotFramework自动化 一.        Python基础 1)      版本差异 版本 编码 语法 其他 2.X ASCII try: raise Type ...

  9. 《如何学习基于ARM嵌入式系统》笔记整理

    author:Peong time:20190603 如何学习基于ARM嵌入式系统 一.嵌入式系统的概念 从硬件上讲,将外围器件,与CPU集成在一起. 从操作系统上讲,定制符合要求的系统内核 从应用上 ...

  10. Netty学习——基于netty实现简单的客户端聊天小程序

    Netty学习——基于netty实现简单的客户端聊天小程序 效果图,聊天程序展示 (TCP编程实现) 后端代码: package com.dawa.netty.chatexample; import ...

随机推荐

  1. Windows下pthread静态库的编译

    一.写在前面 官方网站提供的pthread-win32下载链接里面给到的是dll文件,属于动态库文件,即使在自己写的工程中已经配置了"/MT",即多线程静态链接,但是在其他电脑当中 ...

  2. Object.assign:对象属性复制,浅拷贝

    Object.assign = Object.assign || function(){ if(arguments.length == 0) throw new TypeError('Cannot c ...

  3. CommonsCollections3(基于ysoserial)

    环境准备 JDK1.7(7u80).commons-collections(3.x 4.x均可这里使用3.2版本).javassist(3.12.1.GA) JDK:https://repo.huaw ...

  4. VMware使用及CentOS 7安装配置

    本文是在VMware虚拟机下安装CentOS 7的,并不是在物理机下直接安装.无论是在学习上还是工作上都建议在虚拟机安装Linux系统来进行实验.这样就算实验失败,或者系统崩溃.只需要使用虚拟机的快照 ...

  5. Linux中的用户管理-创建删除修改

    用户管理 一.用户分类 用户分为三类: 1.管理员 root root UID:0 #拥有最高权限 默认系统中就一个 UID即user ID 类似于身份号码,唯一的,不可重复 2.虚拟用户 作用:在运 ...

  6. paramiko模块的使用

    简介: Paramiko是基于Python(2.7,3.4+)版本实现和封装了SSHv2协议,底层是用cryptography实现,我们如果希望远程登录主机或者远程下载或者上传文件到远程主机都可以使用 ...

  7. Java 并发编程实战学习笔记——串行任务转并行任务

    package net.jcip.examples; import java.util.Collection; import java.util.List; import java.util.Queu ...

  8. Liunx-Shell脚本

    shell可以理解为对命令行的一个解释器,命令行输入命令,shell执行,linux系统输出结果 1. shell脚本格式 开头: #!/bin/bash #!告诉系统其后路径所指定的程序即是解释此脚 ...

  9. C#和sql 中的 四舍五入向下向上取整

    c#四舍五入取整 Math.Round(3.45, 0, MidpointRounding.AwayFromZero) 上取整或下取整 Math.Ceiling(3.1)=4; Math.Floor( ...

  10. Netty有关

    https://www.baeldung.com/tag/netty/ https://github.com/eugenp/tutorials https://stackoverflow.com/qu ...