保留格式加密(FPE)

是否有可用的开源FPE实施? libffx(在Python中实现FFX,GPL许可证) botan(在C ++中实现FE1,BSD2许可证) Miracl(在C / C ++中实现BPS,双重许可:商业或AGPL) Python上的简单且可扩展的库https://github.com/emulbreh/pyffx

四大隐私增强技术点评

企业不仅在直接面向消费者的2C市场,在B2B环境中也在寻求减轻隐私风险和担忧的方法,这刺激隐私增强技术(PET)领域的快速进步和商业化。 作者:安全牛|2020-06-29 14:52 收藏  分享 在今天这个高度数字化的社会,隐私数据面临空前的威胁,无论是个人社交媒体信息、医疗健康信息、财务信息、位置信息、生物特征信息、消费者画像信息等等都存在过度分享和滥用问题,且采集处理这些信息的企业或机构往往缺乏足够的隐私加密和保护能力。与此同时,随着全球对数据价值的认识与日俱增,数据隐私和安全已经成为企业业务运营的重要基石,重要性无论如何强调都不为过。 如今,越来越多的消费者更加担心个人数据和隐私的安全问题,皮尤研究中心(Pew Research Center)去年进行的一项调查发现,有79%的成年人担心公司如何使用收集到的有关他们的数据,52%的成年人表示他们因为担心个人信息被采集而选择不使用产品或服务。 隐私增强技术PET 企业不仅在直接面向消费者的2C市场,在B2B环境中也在寻求减轻隐私风险和担忧的方法,这刺激隐私增强技术(PET)领域的快速进步和商业化。PET是一种强大的技术类别,可在整个生命周期中启用、增强和保护数据隐私。通过采用以数据为中心的隐私和安全性方法,这些技术有助于确保敏感数据在处理过程中得到有效保护。 PET是一个笼统的术语,包括在隐私信息采集、存储、以及在执行搜索或分析过程中对于保护和增强隐私安全性的数据安全技术,例如同态加密、安全多方计算、差分隐私和受信任的执行环境等,其中许多技术存在交集,或者可以结合使用。 四大隐私增强技术的安全性排序:同态加密>安全多方计算>差分隐私>可信执行环境: 通常,虽然在不同的应用程序和用例中隐私增强技术的安全性存在一些差别,但总体来说,技术越安全,它提供的隐私保护或隐私保护功能就越多。在上述四大隐私增强技术中,同态加密提供最强的安全性。可信执行环境(TEE)提供的安全功能最弱(因此,隐私保护最少)。了解每种技术对于确定给定用例的正确选择很重要。 1. 同态加密 同态加密是最安全的选择,尤其适合云计算时代需要将计算转移到云端同时又需要确保(未加密)数据安全的应用场景。它被广泛认为是加密的“圣杯”,它允许对加密密文进行计算。同态加密不是一项新技术,学术领域已经进行了30多年的研究。尽管从历史上来看同态加密一直是计算密集型的技术,但现在的最新突破使之可广泛用于各种商业应用。 同态加密的核心是在密文/加密空间中提供两种原始操作:能够将两个同态加密值相乘(乘法)和/或能够将两个同态加密值相加(加法)。 根据能否同时支持乘法和加法操作,同态加密分为两种基本类型:全同态加密和部分同态加密。全同态加密在密文空间中同时支持乘法和加法,而部分同态加密在密文空间中仅提供乘法或加法操作。两种类型都功能强大,并且可以集成到支持核心业务功能的算法中,这些功能包括加密搜索和加密分析(例如机器学习/AI)。 利用全同态加密可以实现让解密方只能获知最后的结果,而无法获得每个密文的消息与同态计算方式,可以提高隐私信息的安全性。可以在诸如私有集相交之类的技术中利用它来安全地计算两组数据中的重叠项。 值得注意的是,尽管人们可以选择利用特殊类型的硬件(GPU、FPGA)来加速某些同态加密数学计算,但同态加密算法和利用该技术提供业务功能的软件产品是不受硬件平台限制的。 2. 安全多方计算 安全多方计算(SMPC或MPC)技术系列允许多方共同对数据进行操作,同时保持其各自的输入信息私有和安全。像同态加密一样,该技术也有近30年的历史,自1980年代中期以来,安全多方计算一直是学术界研究的活跃领域。学术界的突破以及商业领域中许多技术提供商的解决方案已经使SMPC变得成熟,可以在某些用例中实用。 SMPC的安全性以及相关的隐私安全性差异很大,这取决于所使用的实现类型。例如,SMPC的某些实现利用同态加密,因此可以提供强大的安全保证。 3. 差分隐私 在差分隐私中,出于混淆目的,将随机生成的噪声添加到基础数据中,对更改后的数据执行的任何计算仅在统计/方向上正确(即不准确)。因此,由于不能保证准确的结果并且限制了可能的计算,因此差分隐私的应用领域比其他隐私增强技术要窄。 4. 可信执行环境 PET中最不安全的是可信执行环境TEE,有时也称为安全飞地技术。TEE的安全性本质上是基于安全边界的安全模型。在TEE中,安全边界范围很小,仅存在于硬件芯片本身而不是网络边界。与任何安全边界模型一样,如果您可以突破边界,则可以访问其中的所有数据。由于所有内容都在片上飞地范围内进行了解密,因此,TEE实现了非常快速的计算能力,但需要权衡弱化的安全性和隐私状态。这可能适用于某些具有更宽松的安全性和隐私约束(即不需要国家级安全性或隐私保护法规合规)的用例。 在TEE领域中最著名的商业产品是Intel SGX。自从几年前发现Spectre和Meltdown漏洞以来,SGX不断地出现安全问题,不但没能补强安全性,反而成了安全短板。由于TEE受硬件限制,因此利用它们来保护使用中的数据的应用程序也存在此限制。英特尔正在开发API抽象层,以帮助实现不同硬件TEE之间的应用程序可移植性。 2020年其他值得关注的隐私增强技术还包括: 零知识证明:可用于身份验证等场景,例如无需提交准确生日信息就可验证用户是否符合规定年龄。零知识证明符合数据最小化、数据安全和隐私设计等原则,是2020年最值得关注的隐私增强技术之一。 边缘计算和本地数据处理:如果说同态加密主要解决的是云计算的隐私问题,那么本地数据处理则将工作负载也移出云端,转移到“边缘计算”,边缘计算也能够推动数据最小化,大大降低云服务商聚集的数据量。 设备层面的机器学习:最新的机器学习技术热点除了半导体组件和算法外,还包括高速本地存储和处理数据(边缘计算)。 身份管理:大量身份管理平台和方案正在涌现,尤其值得关注的是分布式账本技术、本地处理等,可以实现在没有互联网访问的情况下建立安全链接,交换身份相关的证书(例如数字货币支付或者选举投票)。 小数据:与大数据相对应,小数据(Small Data)指人工智能或者机器学习系统借助数据增强、转移学习、合成数据集等技术,使用很少,甚至不使用真实数据。随着小数据技术的兴起,也许未来的人工智能模型将不再需要海量的训练数据,同时也将极大降低隐私风险。 结论 用户对隐私的渴望将是科技业,更是网络安全行业的下一个金矿。无论是在政府法规的引导下还是在消费者需求的引导下,企业都必须准备好在优先考虑数据和隐私安全性的世界中运营。 此外,随着隐私增强技术(PET)在商业领域中的广泛应用和日益流行,越来越多的企业将隐私增强技术作为数字化转型的必备技术。但是,企业首先需要识别哪些是以隐私为中心的业务,然后选择投资最合适的隐私增强技术。

【Linux】设置虚拟内存

首先查看当前的内存和swap 空间大小(默认单位为k, -m 单位为M): free -m 查看swap信息,包括文件和分区的详细信息 swapon -s或者cat /proc/swaps如果都没有,我们就需要手动添加交换分区。注意,OPENVZ架构的VPS是不支持手动添加交换分区的。添加交换空间有两种选择:添加一个交换分区或添加一个交换文件。推荐你添加一个交换分区;不过,若你没有多少空闲空间可用, 则添加交换文件。 增加swap交换文件 1.使用dd命令创建一个swap交换文件 dd if=/dev/zero of=/home/swap bs=1024 count=1024000这样就建立一个/home/swap的分区文件,大小为1G。 2.制作为swap格式文件: mkswap /home/swap 3.再用swapon命令把这个文件分区挂载swap分区 swapon /home/swap我们用free -m命令看一下,发现已经有交换分区了。但是重启系统后,swap分区又变成0了。 4.为防止重启后swap分区变成0,要修改/etc/fstab文件 vi /etc/fstab在文件末尾(最后一行)加上/home/swap swap swap default 0 0这样就算重启系统,swap分区还是有值。 5.删除swap交换文件 1、先停止swap分区 /sbin/swapoff /home/swap 2、删除swap分区文件 rm -rf

Read More 【Linux】设置虚拟内存

Linux下对虚拟分区进行磁盘加密的操作步骤

Linux下创建虚拟分区并对虚拟分区进行磁盘加密的操作步骤 今天了解了下Linux环境下的磁盘加密的一些方法,通常使用cryptsetup工具进行磁盘加密需要对一个未使用的分区才能生效。而实际测试环境下是没有可以用的分区的,也无法从扩展分区中进行逻辑分区。因此考虑是否可以像windows环境下使用镜像文件映射一个分区出来,发现linux下使用镜像文件映射非常简单。以下是具体的操作步骤: 1 //使用dd工具生成10M的镜像文件,test.img即为镜像文件//只第一次使用时需要文件生成,否则之前的数据会丢失dd if=/dev/zero of=test.img bs=1M count=102 //将镜像文件映射称设备losetup /dev/loop0 test.img //此时使用fdisk -l 可以看到/dev/loop0的disk3 //使用cryptsetup加密设备,如果没有可以atp install cryptsetup进行安装//只第一次使用时需要执行此步骤cryptsetup -v -y -c aes-cbc-plain luksFormat /dev/loop0//执行上述命令,根据提示输入大写的YES(必须为大写),然后输入密码 4 //打开加密设备cryptsetup luksOpen /dev/loop0 hpbkey//执行完成后,会在/dev/mapper 下生成 hpbkey5 //格式化,只第一次使用时需要格式化mkfs.ext3 /dev/mapper/hpbkey6 //挂载设备mount /dev/mapper/hpbkey /mychain/data1 7 //接下来就可以使用了//可以在mychain/data1中增加,删除,修改文件和文件夹 8 //使用完成后卸载设备umount /mychain/data19

Read More Linux下对虚拟分区进行磁盘加密的操作步骤

理解Python中的yield

通常的for…in…循环中,in后面是一个数组,这个数组就是一个可迭代对象,类似的还有链表,字符串,文件。它可以是list1 = [1, 2, 3],也可以是list1 = [x*x for x in range(3)]。 它的缺陷是所有数据都在内存中,如果有海量数据的话将会非常耗内存。 生成器是可以迭代的,但只可以读取它一次。因为用的时候才生成。比如 mygenerator = (x*x for x in range(3)),注意这里用到了(),它就不是数组,而上面的例子是[]。 理解的生成器(generator)能够迭代的关键是它有一个next()方法,工作原理就是通过重复调用next()方法,直到捕获一个异常。可以用上面的mygenerator测试。 带有 yield 的函数不再是一个普通函数,而是一个生成器generator,可用于迭代,工作原理同上。 yield 是一个类似 return 的关键字,迭代一次遇到yield时就返回yield后面的值。重点是:下一次迭代时,从上一次迭代遇到的yield后面的代码开始执行。 简要理解:yield就是 return 返回一个值,并且记住这个返回的位置,下次迭代就从这个位置后开始。 带有yield的函数不仅仅只用于for循环中,而且可用于某个函数的参数,只要这个函数的参数允许迭代参数。比如array.extend函数,它的原型是array.extend(iterable)。 send(msg)与next()的区别在于send可以传递参数给yield表达式,这时传递的参数会作为yield表达式的值,而yield的参数是返回给调用者的值。——换句话说,就是send可以强行修改上一个yield表达式值。比如函数中有一个yield赋值,a = yield 5,第一次迭代到这里会返回5,a还没有赋值。第二次迭代时,使用.send(10),那么,就是强行修改yield 5表达式的值为10,本来是5的,那么a=10 send(msg)与next()都有返回值,它们的返回值是当前迭代遇到yield时,yield后面表达式的值,其实就是当前迭代中yield后面的参数。 yield相关的文章参考 https://zhuanlan.zhihu.com/p/94126166