自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

@毛宏斌

随便记录一些东西,有用的没用的、方方面面;

  • 博客(111)
  • 资源 (13)
  • 收藏
  • 关注

原创 基于RSA盲签名的隐私集合求交PSI算法

记录一种PSI算法。在《Practical Private Set Intersection Protocols with Linear Computational and Bandwidth Complexity》中提出了一种基于RSA的PSI算法。其PSI的流程如下:对此流程的分析可见:https://zhuanlan.zhihu.com/p/138557549。此算法在两方ID数量差别很大的场景很有优势。例如,差几个数量级,10亿交10w,可以让拥有ID数量少的一方生成随机数..

2021-05-17 18:24:20 2814 2

原创 常见的优化器(Optimizer)原理

记录下常见的优化算法。一、概述优化算法是训练过程中寻求最优解的方法,分类如下:性能对比如下:二、梯度下降法2.1 梯度下降(GD)梯度下降是通过 Loss 对的一阶导数来找下降方向,并且以迭代的方式来更新参数,更新方式为 :其中,为学习率。2.2随机梯度下降(SGD)随机梯度下降法(Stochastic Gradient Descent,SGD):均匀地、随机选取其中一个样本,用它代表整体样本,即把它的值乘以N,就相当于获得了梯度的无偏估计值。...

2021-04-22 19:51:31 4990 1

原创 交叉熵(Cross-Entropy)

目录一、信息量二、熵三、相对熵(KL散度)四、交叉熵五、Ref记录下交叉熵的知识点。一、信息量事件的信息量为:二、熵熵用来表示所有信息量的期望:三、相对熵(KL散度)KL 散度(Kullback-Leibler (KL) divergence)来衡量这两个分布的差异。机器学习中,P往往用来表示样本的真实分布,Q用来表示模型所预测的分布。KL散度的计算公式:的值越小,表示q分布和p分布越接近四、交叉熵对KL散度进行变形...

2021-04-20 13:02:29 745

原创 RSA算法

目录一、密钥组成二、公私钥生成三、PKCS#1结构3.1 私钥3.2 公钥记录下RSA相关知识点。一、密钥组成(d, n):私钥; (e, n):公钥; n:模数(Modulus); e:公钥指数(publicExponent),一般是固定值65537; d:私钥指数(privateExponent);二、公私钥生成生成逻辑如下:举例如下:三、PKCS#1结构3.1 私钥RSAPrivateKey ::= SEQUENCE {.

2021-04-12 16:31:11 2292

原创 LeNet GPU对比CPU

目录一、概述二、代码三、测试结果记录下LeNet在GPU和CPU下的一次测试。一、概述LeNet是卷积神经网络的祖师爷LeCun在1998年提出,用于解决手写数字识别的视觉任务。二、代码import torchimport torch.nn as nnimport torch.utils.data as Dataimport torchvisionimport timeUSE_GPU = TrueEPOCH = 10BATCH_SIZE ..

2021-04-09 12:14:35 523

原创 C语言中的正则表达式使用

目录一、概述二、Demo三、Ref记录下C中的正则表达式及其使用Demo。一、概述在c语言中,用regcomp、regexec和regfree:编译正则表达式,regcomp; 匹配正则表达式,regexec; 释放正则表达式,regfree;函数原型如下:/*函数说明:Regcomp将正则表达式字符串regex编译成regex_t的形式,后续regexec以此进行搜索。参数说明: Preg:一个regex_t结构体指针。 Regex:正.

2021-04-08 14:48:20 1275

原创 逻辑回归 Logistic Regression

记录下逻辑回归的知识点。一、模型其中:二、损失函数通常情况下,损失函数为平方损失函数:但如果使用平方损失函数,那么就会使得我们的损失函数变成一个非凸函数,一个非凸函数包括很多个最低点,也就是包括很多个局部的最优解,这样就无法确定全局最优解,这不利于我们处理这个问题。这里损失函数使用交叉熵:即:其中:y为label,y'为预测值,N为y的长度。Q&A逻辑回归损失函数为什么不使用MSE...

2021-04-06 20:09:14 698

原创 特征归一化/标准化(Feature scaling)

目录一、概念和公式二、代码示例记录下归一化和标准化的概念一、概念和公式归一化和标准化都是对数据做变换的方式,将原始的数据转换到某个范围,或者某种形态。min-max 归一化:mean 归一化:标准化:其中和分别是样本数据的均值(mean)和标准差(std)。二、代码示例def normalization(data): _range = np.max(data) - np.min(data) return (data - np.

2021-04-06 11:28:45 2278

原创 KVM 配置桥接设备

记录下为kvm配置bridge的一些知识点。一、背景libvirt配置kvm虚拟机的网络有两种方式,默认是NAT方式,但实际使用时,还是bridge的方式比较有用,设置好后客户机与互联网,客户机与主机之间的通信都很容易。二、Bridge原理Bridge方式即虚拟网桥的网络连接方式,是客户机和子网里面的机器能够互相通信。可以使虚拟机成为网络中具有独立IP的主机。网桥的基本原理就是创建一个桥接接口br0,在物理网卡和虚拟网络接口之间传递数据。三、Bridge配置方式以cen..

2021-03-30 10:09:37 518

原创 自动微分 ​​​​​​​​​​​​​​Automatic Differentiation

记录下深度学习中的自动求导。一、概述深度学习框架一般是通过自动求导(automatic differentiation)来完成导数的计算。二、原理系统会构建一个计算图(computational graph)Ref【Autograd】深入理解BP与自动求导...

2021-03-27 22:45:40 252

原创 线性回归 Linear Regression

目录一、模型二、损失函数三、解析解四、梯度下降五、小批量随机梯度下降记录下线性回归的知识点。一、模型即:矩阵-向量乘法表示:二、损失函数损失函数能够量化目标的实际值与预测值之间的差距。通常我们会选择非负数作为损失,且数值越小表示损失越小,完美预测时的损失为0。回归问题中最常用的损失函数是平方误差函数。三、解析解四、梯度下降梯度下降是一个用来求函数最小值的算法。五、小批量随机梯度下降在每次迭代中,...

2021-03-27 16:09:36 440

原创 标量、向量、矩阵的求导

目录一、标量二、向量三、矩阵四、举例记录下标量、向量、矩阵的求导。一、标量二、向量三、矩阵四、举例

2021-03-27 10:46:55 241

原创 python多线程读写锁

记录一个python多线程时使用读写锁的示例。#!/usr/bin/env python3""" Several users reading a calender, but only a few users updating it """import threadingfrom readerwriterlock import rwlockWEEKDAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday.

2021-03-26 17:58:41 1057 2

原创 联邦学习中的安全聚合SMPC

目录一、背景1.1 联邦聚合与FedAVG1.2 FATE1.3密钥协商(Key Agreement)1.4秘密共享(Secret Sharing)二、安全聚合SMPC2.1 原理2.2 单掩码方案2.4 双掩码完整方案三、FATE安全聚合(SecureAggregation)的实现3.1 FATE的安全聚合机制3.2 FATE安全聚合的实现四、总结记录下联邦学习中的安全聚合机制SMPC。一、背景1.1 联邦聚合与FedAVG...

2021-03-24 19:53:20 6885 2

原创 使用libvirt来管理qemu-kvm虚拟机

记录下libvirt的知识点。一、Libvirtlibvirt是为了更方便地管理各种Hypervisor而设计的一套虚拟化库,libvirt作为中间适配层,让底层Hypervisor对上层用户空间的管理工具(virsh,virt-manager)做到完全透明,因为libvirt屏蔽了底层各种Hypervisor的细节,为上层管理工具提供了一个统一的、较稳定的接口(API)。二、安装在centos7.6上手动升级libvirt到5.8.0。# 安装依赖包yum -y inst..

2021-03-24 19:24:30 1733 1

原创 隐私加密技术的细节对比

记录下几个隐私加密技术的对比。摘自:https://www.qubi8.com/archives/690630.html

2021-03-24 09:56:49 630

原创 隐私保护集合求交技术 (PSI)

记录下常见的PSI技术。一、概述隐私保护集合求交(Private Set Intersection, PSI) 技术有很强的应用价值。PSI允许持有各自集合的多方来共同计算集合的交集,而计算的最后,各参与方只能得到正确的交集,而不会得到交集以外另一方集合中的任何信息。下表给出了一些常见的PSI算法及其计算和通讯复杂度:二、实现举例2.1 百度--基于 MesaTEE 的 PSI 协议基于Intel SGX的MesaTEE PSI方案如下:可以看到:...

2021-03-23 15:28:54 6960

原创 格式保留加密(FPE)及其使用Demo

目录一、原理记录下格式保留加密算法及其Demo。一、原理格式保留加密(Format Preserving Encrypt,FPE)是一种可以保证密文与明文具有相同格式与长度的加密方式。FPE长2

2021-03-22 16:36:35 4760 1

原创 Bloom Filter 原理

> 记录下布隆过滤器,摘抄自:https://crossoverjie.top/2018/11/26/guava/guava-bloom-filter/首先需要初始化一个二进制的数组,长度设为 L(图中为 8),同时初始值全为 0 。 当写入一个A1=1000的数据时,需要进行 H 次hash函数的运算(这里为 2 次);与 HashMap 有点类似,通过算出的HashCode与 L 取模后定位到 0、2 处,将该处的值设为 1。 A2=2000也是同理计算后将4、7位置...

2021-03-22 13:36:39 175

原创 线性代数知识点

目录一、线性变换二、标量三、向量四、矩阵五、代码示例一、线性变换线性代数的本质:https://www.bilibili.com/video/BV1ys411472E可以将线性变换看做对空间的挤压伸展,它保持网络线平行且等距分布,并且保持原点不变。例如:二维矩阵的复合变换:二、标量三、向量四、矩阵五、代码示例import torch# 向量x = torch.ones(4, dtype=to

2021-03-21 12:17:47 264

原创 信封加密

记录下信封加密和解密的原理

2021-03-20 12:41:20 272

原创 BootLoader的BL1和BL2

记录下BootLoader的BL1和BL2BL是BootLoader的缩写。一般会把uboot分为两个部分:BL1和BL2,BL1和BL2各有分工,两者相加就是整个uboot。1、BL1阶段的功能(1)硬件设备初始化(2)加载BL2阶段代码到RAM空间(3)设置好栈(4)跳转到第二阶段代码入口2、第二阶段的功能(1)初始化本阶段使用的硬件设备(2)检测系统内存映射(3)将内核从Flash读取到RAM中(4)为内核设置启动参数(5) 调用内核...

2021-03-20 12:15:31 1896

原创 Simple TCP Server-Client implementation in C

记录一个C实现的server和client Demo。文章目录一、流程二、Server三、Client四、工程源码一、流程二、Server#include <stdio.h>#include <unistd.h>#include <netdb.h>#include <netinet/in.h>#include <stdlib.h>#include <string.h>#include <sys/socke.

2021-02-05 10:32:35 316

原创 ASCII 和 UTF-8

记录下ASCII和 UTF-8的区别摘抄自:ascii_unicode_and_utf-8一、ASCII计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111。上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为 ASCI.

2021-02-04 09:58:07 4004

原创 MPC--秘密分享(Secret-Sharing)算法及使用Demo

记录下秘密分享算法,主要是Shamir’s Secret Sharing秘密分享秘密分享通过把秘密进行分割,并把秘密在n个参与者中分享,使得只有多于特定t个参与者合作才可以计算出或是恢复秘密,而少于t个参与者则不可以得到有关秘密。对于sharmir(t,w)方案,就是指准备w把钥匙,至少要t把钥匙才能开启。使用Demopackage mainimport ( "fmt" "github.com/SSSaaS/sssa-golang" "os")// sharmir(t,w).

2020-10-28 11:14:44 5799 1

原创 MPC--不经意传输(Oblivious Transfer)算法及使用Demo

记录一种简单版本的 1-out-of-n OT,可以在生产中应用。详见paper:The Simplest Protocol for Oblivious Transfer不经意传输(Oblivious Transfer,OT)是一种密码学协议,被广泛应用于多方安全计算等领域。其核心是 Alice 虽然不知道 Bob 想要哪一个信息,但能保证 Bob 只获得其中一个信息。借鉴DH,一种简单版本的 1-out-of-n OT原理如下:使用Rust的Demo如下(lib:https://crates.

2020-10-23 14:44:21 6196 1

原创 决策树(DecisionTree)

记录下决策树的原理和简单Demo;文章目录一、决策树原理二、决策树优缺点三、决策树算法种类四、信息增益五、Demo一、决策树原理决策树能够生成清晰的基于特征选择不同预测结果的树状结构;希望更好的理解手上的数据的时候,往往可以使用决策树。在实际应用中,受限于它的简单性,决策树更大的用处是作为一些更有用的算法的基石,例如随机森林。二、决策树优缺点优点:计算复杂度不高,输出结果易于理解;对中间值的缺失不敏感;可以处理不相关的特征数据;缺点:可能会产生过度匹配问题;适用数据类型:数值型、标称型.

2020-10-08 16:47:08 491

原创 k-近邻算法(KNN)

记录下kNN的原理和简单demo;文章目录一、算法原理二、kNN分类算法三、DemoRef一、算法原理存在一个样本数据集(训练样本),且样本数据集中的每个数据都有标签。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签,一般选取前k(k<=20)个最相似,作为新数据的分类。二、kNN分类算法计算已知类别数据集中的每个点与当前点之间的距离(欧式距离);按照距离进行递增排序;选取与当前点距离最小的k个点;确.

2020-10-06 10:55:07 229

原创 椭圆曲线密码学ECC

记录下椭圆曲线密码学的几个概念;文章目录一、名字由来二、定义三、求解椭圆曲线上的点集四、椭圆曲线的加法法则五、椭圆曲线离散对数问题Ref一、名字由来二、定义三、求解椭圆曲线上的点集四、椭圆曲线的加法法则形象的来说(存疑?):任意取椭圆曲线上两点P、Q(若P、Q两点重合,则作P点的切线),作直线交于椭圆曲线的另一点R’,过R’做y轴的平行线交于R,定义P+Q=R。五、椭圆曲线离散对数问题椭圆曲线上的两个点P和Q,k为整数,Q=kP;点P称为基点(base point)k为.

2020-09-26 22:15:15 1388

原创 离散对数

最近在看椭圆曲线,还没看懂;记录下为椭圆曲线铺垫的离散对数,及其引出的离散对数问题;一、定义离散对数是一种基于同余和原根的对数运算。例如:二、离散对数问题离散对数问题(Discrete LogarithmProblem, DLP),就是给定x,y,p>1,求出正整数k>1,是之:三、离散对数加密的数学原理举例如下:...

2020-09-26 21:21:56 2172

原创 证书和编码:X.509、DER、PEM

文章目录一、证书1.1 X.5091.2 OpenSSL实践1.2.1 RSA1.2.2 EC二、编码Ref一、证书1.1 X.509X.509证书,其核心是根据RFC 5280编码或数字签名的数字文档。1.2 OpenSSL实践1.2.1 RSA(1)生成RSA私钥(无加密;默认情况下,openssl 输出格式为 PKCS#1-PEM):openssl genrsa -out rsa_private.key 2048openssl rsa -in rsa_private.key -noou

2020-09-25 09:55:16 2306 1

原创 MPC--同态加密(Homomorphic Encryption)算法及使用Demo

文章目录定义同态分类同态加密算法开源实现Paillier算法使用举例参考资料定义“A way to delegate processing of your data, without giving away access to it.”利用同态加密保护数据私密性的想法最早在1978年由Ron Rivest, Leonard Adleman, Michael Dertouzos等人提出,它的主要思想是通过具有同态性质的加密函数对数据进行加密,从而可以在不对数据进行解密的条件下对已加密的数据进行任何在可以

2020-08-03 14:24:28 2031

原创 RBAC0的一种设计

RBAC(Role-Based Access Control )是基于角色的访问控制。在20世纪90年代期间,大量的专家学者和专门研究单位对RBAC的概念进行了深入研究,先后提出了许多类型的RBAC模型,其中以美国George Mason大学信息安全技术实验室(LIST)提出的RBAC96模型最具有系统性,得到普遍的公认。RBAC96是一个模型族,其中包括RBAC0~RBAC3四个概念性模型,其中基本模型RBAC0定义了完全支持RBAC概念的任何系统的最低需求。数据库建模如下:...

2020-07-19 14:26:10 411

原创 Fabric中的Second-Chance缓存淘汰算法的实现分析

文章目录一、概述1.1 Fabric MSP1.2 Second-Chance Algorithm二、Fabric实现分析2.1 创建缓存实例2.2 查询对象2.3 插入对象一、概述1.1 Fabric MSPFabric引入MSP(Membership Service Provider),即成员关系服务提供者,这一抽象化的模块组件来管理Fabric中的众多参与者(peer、orderer等)。MSP将颁发证书和校验证书,以及用户认证背后的所有密码学机制与协议都抽象了出来。对Fabric网络中的成员

2020-05-19 13:48:13 956

原创 图解Fabric混合组网架构

Fabric的优势就是联盟链,企业在使用Fabric与其他内外部组织构建联盟链的时候,必然需要对Fabric运行时的混合组网架构了然于心,从而可以很好的控制

2020-05-14 18:51:05 1072

原创 Fabric 2.x 安装链码流程

以在mychannel中安装fabcar为例:# 1. 打包链码peer lifecycle chaincode package fabcar.tar.gz --path ../chaincode/fabcar/go/ --lang golang --label fabcar_1# 2.1 组织Org1:安装链码peer lifecycle chaincode install fabcar.tar.gz# 2.2 组织Org2:安装链码peer lifecycle chaincode ins

2020-05-12 20:09:19 1913

原创 图解Fabric各模块间grpc通讯情况

对于接口的介绍,可以参考这个博文:https://blog.csdn.net/DAOSHUXINDAN/article/details/104668870

2020-05-12 17:46:31 900

原创 Fabric组织加入已经存在的应用通道流程

以组织Org3加入已经存在的通道mychannel为例:# 1.1 获取通道最新的配置块peer channel fetch config config_block.pb -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com -c mychannel --tls --cafile $ORDERER_CA# 1.2 解码成json格式,提取出配置部分configtxlator proto_decode --input

2020-05-12 14:22:29 808

原创 Fabric创建通道流程解析

以两个组织Org1和Org2加入新创建的通道mychannel为例,给出命令行的步骤如下:# 1.1 生成创建通道的交易:mychannel.txconfigtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/mychannel.tx -channelID mychannel# 1.2 为组织Or...

2020-05-08 16:41:42 2181

原创 Fabric RFC: Channel Participation API

文章目录一、概述二、现存问题解析2.1 隐私问题2.2 扩展性问题可操作性三、Channel participation API 方案四、链接一、概述目前fabric中创建并加入通道的流程在隐私性、扩展性以及可操作性上都存在很多问题,作者提出了Channel participation API的设计来优化这些问题。Channel participation API的核心是去除了目前通道管理对...

2020-04-29 10:53:07 394

2021隐私计算行业研究报告.pdf

2021隐私计算行业研究报告.pdf

2021-04-26

IEEE Guide for Architectural Framework and Application of Federated ML

联邦学习国际标准-OpenMPC:IEEE Guide for Architectural Framework and Application of Federated Machine Learning

2021-04-09

《动手学深度学习v2》.pdf

《动手学深度学习v2》.pdf

2021-03-20

LeetCode 101 - A LeetCode Grinding Guide

LeetCode 101:和你一起你轻松刷题 作者:高畅 Chang Gao 版本:正式版 1.04

2021-03-20

金融分布式账本技术安全规范.pdf

《金融分布式账本技术安全规范》(JR/T 0184—2020)金融行业标准由中国人民银行正式发布。本标准由全国金融标准化技术委员会归口管理,由中国人民银行数字货币研究所立项并牵头起草,中钞区块链技术研究院等单位共同参加起草。标准经过广泛征求意见和论证后正式发布。

2020-02-25

华为云Kubernetes大规模场景下的Service性能优化实践

Kubernetes 原生的 Service 负载均衡基于 Iptables 实现,其规则链会随 Service 的数量呈线性增长,在大规模场景下对 Service 性能影响严重。本次分享介绍了华为云在 Kubernetes service 性能优化方面的探索与实践。

2018-05-24

hyperledger-fabric-doc-v1.1.0

hyperledger-fabric最新版说明文档 hyperledger-fabric最新版说明文档

2018-03-19

Dash for mac 破解版

Dash for mac 破解版,亲测可用

2016-07-08

StartUML for mac 破解版

StartUML for mac 破解版

2016-07-08

Ulysses 2.5 Mac破解版

Ulysses 2.5 Mac破解版,亲测可用

2016-07-08

jeffy-vim-v2.1

jeffy-vim用于配置Vim编辑器,使Vim工作得更像一个C/C++的IDE。在一些插件的润色下,jeffy-vim实现了很多IDE的基本功能,比如:代码解析、代码补全、函数跳转、 程序调试等。我还自己编写了一个插件用于管理项目,包括生成tags和cscope的数据库、高亮用户定义的类型和函数等功能,让工程管理起来更方便。

2015-01-09

google_c++编程风格(高清版).pdf

Google 的项目大多使用 C++开収。每一个 C++程序员也都知道,C++具有徆多强大的诧言特性,但返 种强大丌可避免的导致它的复杂,而复杂性会使得代码更容易出现 bug、难亍阅诺和维护。 本挃南的目的是通过详绅阐述如何迕行 C++编码来觃避其复杂性,使得代码在有效使用 C++诧言特性的 同时迓易亍管理。 使代码易亍管理的方法乊一是增强代码一致性,让别人可以诺懂你的代码是徆重要的,保持统一编程风格 意味着可以轱松根据“模式匹配”觃则推断各种符号的吨义。创建通用的、必需的习惯用诧和模式可以使 代码更加容易理解,在某些情冴下改发一些编程风格可能会是好的选择,但我们迓是应该遵循一致性原则, 尽量丌返样去做。 本挃南的另一个观点是 C++特性的臃肿。C++是一门包吨大量高级特性的巨型诧言,某些情冴下,我们会 限制甚至禁止使用某些特性使代码简化,避免可能导致的各种问题,挃南中列丼了返类特性,幵解释说为 什么返些特性是被限制使用的。

2014-12-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除