自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 山东大学软件学院软件项目管理复习

软件项目管理

2022-06-18 18:26:42 1752 2

原创 山东大学软件学院安全协议与标准2022期末(软工限选)

这课是林老师教的,是软工限选课,不是侯老师教的那个同名的课1.名词解释 都在老师发的文件里2.简答题(1)密钥协商的方法 至少两种 原理(2)区块链中的密码学 至少两个 原理3.论述题(1)这个题忘了(2)nas network acess server 画图 功能 相关协议(3)在某博隐藏自己的ip 方法 相关协议分析 安全性...

2022-06-13 16:36:45 631 1

原创 山东大学软件学院2022网络安全期末试题

这次考的是b卷,比较难,我有几个地方没有复习到一共十道题,顺序记不清了题目1.异常检测和误用检测是什么有什么优缺点2.dmz是什么和作用3.sql注入和csrf及其防护4.ipsec的传输模式和隧道模式 这个我没复习到5.syn cookie原理6.举例缓冲区溢出攻击7.ip flux和domain flux 画图解释8.符号化执行是什么,用途和优缺点9.病毒的四个部分10.设计算法实现消息传递的真实性和完整性并画图...

2022-06-13 16:21:14 1130

原创 山东大学软件学院项目实训-创新实训-SDUMeeting(九)

electron本地安全存储

2022-06-08 21:02:53 220

原创 山东大学软件学院项目实训-创新实训-SDUMeeting(八)

n方diffie hellman实现

2022-06-08 20:54:18 93

原创 山东大学软件学院项目实训-创新实训-SDUMeeting(七)

山大会议的客户端加入了对用户自定义头像的支持,需要用户自行上传头像图片,这个过程存在文件注入漏洞,这篇文章记录解决文件注入漏洞的过程。

2022-06-07 17:05:50 72

原创 山东大学软件学院项目实训-创新实训-SDUMeeting(六)

end-to-end

2022-05-31 22:00:47 204

原创 山东大学软件学院项目实训-创新实训-SDUMeeting(五)

山东大学软件学院项目实训-创新实训-SDUMeeting(五)使用iptables保护服务器

2022-05-31 21:31:54 96

原创 山东大学软件学院项目实训-创新实训-SDUMeeting(四)

山东大学软件学院项目实训-创新实训-SDUMeeting(四)山大会议项目tls加密的实现服务器证书配置

2022-04-22 19:52:53 256

原创 山东大学软件学院项目实训-创新实训-SDUMeeting(三)

山东大学软件学院项目实训-创新实训-SDUMeeting(三)山大会议项目web安全之文件注入防护一、前言山大会议的客户端加入了对用户自定义头像的支持,需要用户自行上传头像图片,这个过程存在文件注入漏洞,这篇文章记录解决文件注入漏洞的过程。...

2022-04-22 19:49:13 353

原创 山东大学软件学院项目实训-创新实训-SDUMeeting(二)

山东大学软件学院项目实训-创新实训-SDUMeeting(二)webrtc端对端加密的实现

2022-04-22 19:39:11 134

原创 山东大学软件学院项目实训-创新实训-SDUMeeting(一)

山东大学软件学院项目实训-创新实训-SDUMeeting(一)一、前言:这个项目是山东大学视频会议项目,这个项目基于webrtc构建多人视频会议系统,我负责视频会议客户端及服务端安全防护,这个专栏记录我的个人工作。二、主要工作1.webrtc相关的安全问题2.linux服务器的安全问题3.web安全问题,包括各种针对web的攻击手段的防护,xss,sql注入,文件注入三、项目的安全基础整个项目是以webrtc为基础构建的,webrtc是整个项目的安全基础

2022-04-22 19:34:14 323

原创 cuda编程(5)

1、介绍图形处理单元 (GPU) 提供比 CPU 高得多的指令吞吐量和内存带宽 类似的价格和功率范围。 许多应用程序利用这些更高的功能来 在 GPU 上运行比在 CPU 上运行得更快。 其他计算设备,如 FPGA,也非常节能,但提供的能源要少得多 编程灵活性优于 GPU。GPU 和 CPU 之间存在这种能力差异是因为它们 设计时考虑了不同的目标。 虽然 CPU 旨在擅长执行 一系列操作,称为 线程 ,尽可能快且可以执行 几十个这样的线程并行运行,GPU 旨在擅长执行 数千个并行(分摊较慢的单线程性能以

2021-12-24 16:47:10 324

原创 2021SC@SDUSC 使用CUDA/GPU技术加速密码运算 总结

结论我自己写的gpu模幂运算代码以及从github和stackoverflow上的gpu rsa算法、gpu模幂算法,都没有比cpu块,而且是cpu代码不进行任何优化的情况下。我的测试是8192个xymodzx^ymodzxymodzx和y是unsigned long long 类型,也就是int64,64bit的正整数,z是65537。我自己的代码multiply.cu在5秒左右5.041000s,multiply_cpu.c 0.287000s,开O3优化之后几乎为零我用tensorflow写

2021-12-24 16:44:12 1139

原创 2021SC@SDUSC openssl gpu EVP

2021SC@SDUSC21 EVP21.1 EVP 简介Openssl EVP(high-level cryptographic functions[1])提供了丰富的密码学中的各种函数。Openssl 中实现了各种对称算法、摘要算法以及签名/验签算法。EVP 函数将这些具体的算 法进行了封装。EVP 主要封装了如下功能函数:1)实现了 base64 编解码 BIO;2)实现了加解密 BIO;3)实现了摘要 BIO;4)实现了 reliable BIO;5)封装了摘要算法;6)封装了对

2021-12-06 14:29:46 183

原创 2021SC@SDUSC openssl gpu BASE64编解码

2021SC@SDUSC2 BASE64编解码12.1 BASE64编码介绍BASE64编码是一种常用的将十六进制数据转换为可见字符的编码。与ASCII码相比,它占用的空间较小。BASE64编码在rfc3548中定义。12.2 BASE64编解码原理将数据编码成BASE64编码时,以3字节数据为一组,转换为24bit的二进制数,将24bit的二进制数分成四组,每组6bit。对于每一组,得到一个数字:0-63。然后根据这个数字查表即得到结果。表如下: 比如有数据:0x30 0x82

2021-12-06 14:27:20 550

原创 2021SC@SDUSC openssl gpu 文本数据库

2021SC@SDUSC10 文本数据库10.1 概述Openss实现了一个简单的文本数据库,它可以从文件读取数据和将数据写到文件中,并且可以根据关键字段来查询数据。Openssl的文本数据库供apps/目录下的文件调用,比如apps.c、ca.c和ocsp.c。openssl文本数据库典型的例子为apps/demoCA/index.txt。文本数据库一行代表数据库的一行,各个列之间必须用一个\t隔开,用#进行注释(#必须在开始位置),以空行结束。比如下面的例子:赵春平 28 湖北z

2021-12-06 14:25:15 91

原创 2021SC@SDUSC openssl gpu 配置文件

2021SC@SDUSC8 配置文件8.1 概述Openssl 采用自定义的配置文件来获取配置信息。Openssl的配置文件主要由如下内容组成:注释信息 : 注释信息由 # 开头;段信息 : 段信息由 [xxx] 来表示,其中xxx为段标识;属性-值信息: 表示方法为 a = b,这种信息可以在一个段内也可以不属于任何段。典型配置文件为apps/openssl.cnf(同时该文件也是openssl最主要的配置文件)。摘取部分内容如下:OpenSSL example conf

2021-12-06 14:24:00 134

原创 2021SC@SDUSC openssl-gpu 抽象IO

7 抽象IO7.1 openssl 抽象 IOopenssl 抽象 IO(I/O abstraction,即 BIO)是 openssl 对于 io 类型的抽象封装,包括:内存、 文件、日志、标准输入输出、socket(TCP/UDP)、加/解密、摘要和 ssl 通道等。Openssl BIO 通过回调函数为用户隐藏了底层实现细节,所有类型的 bio 的调用大体上是类似的。Bio 中的数据能从一个 BIO 传送到另外一个 BIO 或者是应用程序。其实包含了很多种接口,用通用的函数接口,主要控制在

2021-12-06 14:20:58 526

原创 2021SC@SDUSC openssl 动态模块加载

2021SC@SDUSC6 动态模块加载6.1 动态库加载动态库加载函数能让用户在程序中加载所需要的模块,各个平台下的加载函数是不一样的。动态加载函数一般有如下功能:1)加载动态库windows下的函数LoadLibraryA ;linux 下的函数dlopen ;这些函数一般需要动态库的名字作为参数。2)获取函数地址windows下的函数 GetProcAddresslinux 下的函数 dlsym。这些函数一般需要函数名作为参数,回函数地址。3)卸载动态库windows下

2021-12-04 16:10:15 252

原创 2021SC@SDUSC openssl 内存分配

2021SC@SDUSC5 内存分配man openssl_malloc5.1 openssl内存分配用户在使用内存时,容易犯的错误就是内存泄露。当用户调用内存分配和释放函数时,查找内存泄露比较麻烦。openssl提供了内置的内存分配/释放函数。如果用户完全调用openssl的内存分配和释放函数,可以方便的找到内存泄露点。openssl分配内存时,在其内部维护一个内存分配哈希表,用于存放已经分配但未释放的内存信息。当用户申请内存分配时,在哈希表中添加此项信息,内存释放时删除该信息。当用户

2021-12-04 16:07:00 100

原创 2021SC@SDUSC openssl 哈希表

2021SC@SDUSC4 哈希表man lhash4.1 哈希表在一般的数据结构如线性表和树中,录在结构中的相对位置是与记录的关键字之间不存在确定的关系,在结构中查找记录时需进行一系列的关键字比较.这一类查找方法建立在"比较"的基础上, 查找的效率与比较次数密切相关。理想的情况是能直接找到需要的记录,因此必须在记录的存储位置和它的关键字之间建立确定的对应关系,使每个关键字和结构中一个唯一的存储位置相对应.在查找时,只需根据这个对应关系找到给定值.这种对应关系既是哈希函数,按这个思想建立

2021-12-04 16:05:49 94

原创 2021SC@SDUSC openssl 堆栈

2021SC@SDUSC3 堆栈man DEFINE_STACK_OFhttps://www.openssl.org/docs/man1.1.1/man3/sk_TYPE_num.htmlhttps://blog.csdn.net/as3luyuan123/article/details/170815813.1 openssl堆栈堆栈是一种先进后出的数据结构。 openssl大量采用堆栈来存放数据。它实现了一个通用的堆栈,可以方便的存储任意数据。它实现了许多基本的堆栈操作,主要有:构建新

2021-12-04 16:04:08 2821

原创 2021SC@SDUSC-cuda环境及cuda程序编写

在win11 wsl2上搭建cuda环境

2021-12-04 15:43:15 296 1

原创 2021SC@SDUSC libressl

2021SC@SDUSClibressl是一个openssl的替代品,在openssl发生“心脏出血”漏洞之后,openssl的安全性饱受质疑。libressl是openbsd旗下的一个项目,openbsd一向以安全性著称。libressl的漏洞比openssl少很多,见https://hltj.me/security/2017/05/26/libressl-instead-openssl.htmllibressl 加密库实现了广泛的 用于各种 Internet 标准的加密算法。 服务 TLS 的 li

2021-11-24 10:31:32 4150

原创 2021SC@SDUSC 模幂运算cuda实现

2021SC@SDUSC引入头文件#include <stdio.h>#include <stdlib.h>#include <time.h>#include <string.h>#define R_size 129#define k 1024#define n_size 128主要函数__global__ void get_square(unsigned char a[], unsigned int accumulator[], un

2021-11-23 23:40:14 184

原创 2021SC@SDUSC 大数运算

2021SC@SDUSC11 大数11.1 介绍大数一般指的是位数很多的数。 计算机表示的数的大小是有限的,精度也是有限的,它不能支持大数运算。 密码学中采用了很多大数计算,为了让计算机实现大数运算,用户需要定义自己的大数表示方式并及实现各种大数运算。 Openssl为我们提供了这些功能,主要用于非对称算法。11.2 openssl大数表示 crypto/bn.h中定义了大数的表示方式,如下: struct bignum_st { BN_ULONG

2021-11-23 23:39:10 675

原创 2021SC@SDUSC 随机数

9 随机数9.1 随机数随机数是一种无规律的数,但是真正做到完全无规律也较困难,所以一般将它称之为伪随机数。随机数在密码学用的很多,比如ssl握手中的客户端hello和服务端hello消息中都有随机数;ssl握手中的预主密钥是随机数;RSA密钥生成也用到随机数。如果随机数有问题,会带来很大的安全隐患。软件生成随机数一般预先设置随机数种子,再生成随机数。设置随机数种子可以说是对生成随机数过程的一种扰乱,让产生的随机数更加无规律可循。生成随机数有多种方法,可以是某种算法也可以根据某种或多种随机

2021-11-20 16:27:24 1157

原创 2021SC@SDUSC libqs主要数据结构及头文件分析

src / kem /kem. h关键封装机制。该文件包含两个有关使用OQS_KEM API 示例。src/kem/example_kem.c第一个示例直接使用单个方案的算法,不使用动态内存分配 - 所有缓冲都分配在堆栈上,使用预处理器宏指示大小。由于算法可以在编译时间禁用,程序员应将代码包裹在#ifdefs中。第二个示例使用OQS_KEM对象来使用运行时间指定的算法。因此,它使用动态内存分配 - 所有缓冲器必须由程序员进行 malloc’ed,使用相关 OQS_KEM对象的相应长度成员指示大小。由

2021-11-20 16:23:04 673

原创 2021SC@SDUSC椭圆曲线加密

2021SC@SDUSC20 椭圆曲线20.1 ECC介绍椭圆曲线算法可以看作是定义在特殊集合下数的运算,满足一定的规则。椭圆曲线在如 下两个域中定义:Fp 域和 F2m 域。Fp 域,素数域,p 为素数;F2m 域:特征为 2 的有限域,称之为二元域或者二进制扩展域。该域中,元素的个数为 2m 个。椭圆曲线标准文档如下:X9.62Public Key Cryptography For The Financial Services Industry: The Elliptic Curve

2021-11-20 16:21:01 769

原创 2021SC@SDUSC rsa分析

2021SC@SDUSC17.1 RSA介绍RSA算法是一个广泛使用的公钥算法。其密钥包括公钥和私钥。它能用于数字签名、身份认证以及密钥交换。RSA密钥长度一般使用1024位或者更高。RSA密钥信息主要包括[1]: n : 模数 e : 公钥指数 d : 私钥指数 p : 最初的大素数 q : 最初的大素数 dmp1 : e*dmp1 = 1 (mod (p-1)) dmq1 : e*d

2021-11-20 16:07:36 308

原创 2021SC@SDUSC 量子加密库libqs

2021SC@SDUSCliboqsliboqs 是量子安全加密算法的开源 C 库。liboqs提供:量子安全密钥封装机制 (KEM) 和数字签名算法的开源实现集合(参见受支持的算法列表))这些算法的常见 API测试线束和基准测试程序概述开源。liboqs 是根据麻省理工学院许可证发布的量子安全加密算法的 C 库。liboqs 包含一些外部组件,这些组件使用不同的许可证。多平台。liboqs 建立在 Linux、macOS 和 Windows 上, 支持 x86 和 ARM 架构, 以及

2021-11-11 19:43:52 450

原创 软件工程 Shari Lawrence Chapter05-06

Chapter051.什么是软件体系结构?设计模式?设计公约?设计? //概念设计?技术设计?体系结构 Architecture:一种软件解决方案,用于解释如何将系统分解为单元, 以及单元如何相互关联,还包括这些单元的所有外部特性。设计模式 design pattern:一种针对单个软件模块或少量模块而给出的一般性解决方案,它提供较低层次的设计决策。它是一个共同的设计结构的关键方面,包括对象和实例, 角色和协作,责任分配,设计公约 Design Convention:一系列设计决策和建议的集合,用于

2021-11-10 11:34:54 199

原创 软件工程 Shari Lawrence 用户画像和需求分析

用户画像一、什么是“用户画像”?为什么要使用“用户画像”?用户画像是将具有代表性的用户群体转化为一个虚拟的并且典型的人物。开发,设计及产品部门要把这个虚拟的人物当成真正的用户。用户画像不应该和个体混淆,虽然有些组织是这样用的。虽然在设计时将用户画像视为一个个体会比心里没有任何用户要好。但是如果关注于个体,设计师将会错失更广泛的具体需求。 一个用户画像代表了广泛的属性,是所有相似用户的集合体。用户画像不是简单的消费者分类,而是一个具体的用户形象。这意味我们不会用年龄范围之类的抽象特征来描述它,而是用具

2021-11-10 11:32:30 611

原创 软件工程 Shari Lawrence Chapter02-04

软件工程 Shari Lawrence Chapter02软件项目团队组织的基本结构?(1) 主程序员负责制(Chief Programmer Team)由一个主程序员负责系统设计和开发,其他的成员向其汇报,主程序员对每一个决定有绝对决策权。优势:使交流最小化迅速做出决定缺点:创造性低对主程序员要求高,个人主观性强(2) 忘我方法(Egoless Approach)每个成员平等的承担责任,而且过程与个人是分开的;批评是针对产品和结果的,不针 对个人的。(3) 项目组织的结构化结构化较

2021-11-10 11:30:15 137

原创 2021SC@SDUSC 后量子密码NTRU的参考实现

2021SC@SDUSCPQ Crypto Cataloghttps://github.com/kriskwiatkowski/pqc提交给 NIST PQC 标准化流程的量子安全签名和 KEM 方案。该项目目标是在 C 和 Rust 中提供易于使用的 API 以支持实验。 该代码源自提交给 NIST 后量子加密标准化的 PQClean 项目 。用户不应期望此代码提供任何级别的安全性。 该库不打算用于实时生产系统。支持NameNIST Roundx86 optimized

2021-11-08 00:46:52 495

原创 2021SC@SDUSC sm2数字签名算法

2021SC@SDUSC数字签名1. 参数与密钥产生参数的产生、密钥的产生与SM2加密解密算法相同。2. 数字签名生成验证过程1.SM2数字签名生成算法假设待签名的消息为M,为了获取消息M的数字签名(r,s),作为签名者的用户A应实现以下运算步骤:(1)置M‾=ZA∣∣M\overline{M}=Z_A ||MM=ZA​∣∣M其中ZA是用户的A的可辨标识、部分椭圆曲线系统参数和用户A公钥的杂凑值;(2)计算,e=Hv(M‾)e=H_v (\overline{M})e=Hv​(M)并将生成e的

2021-10-31 23:31:31 1165

原创 2021SC@SDUSC cuda实现模幂运算源码分析(2)

2021SC@SDUSC数论函数void cgbn_binary_inverse(cgbn_env_t env, cgbn_t &r, const cgbn_t &x)计算 x mod 2bitsx\,mod\,2 ^{bits}xmod2bits的模逆,要求 x 是奇数。void cgbn_gcd(cgbn_env_t env, cgbn_t &r, const cgbn_t &a, const cgbn_t &b)计算a,b的最大公因数。 返回 b

2021-10-24 20:54:27 307 1

原创 2021SC@SDUSC cuda实现模幂运算源码分析(1)

2021SC@SDUSCCGBN概念CGBN 的典型用例是构建处理大量问题实例的内核,其中每个问题实例都需要无符号多精度算术计算。 典型的 CUDA 方法是为每个问题实例分配一个线程,但是多精度算法需要大量寄存器资源,因此将多精度值分布到一组连续线程中会更有效。这是CGBN实现的基本逻辑。从一个样本内核开始,该内核传递了一系列问题实例,对于每个实例,内核计算 的总和 a + b 并将结果存储在 r 中,其中 a 、 b 和 r 是 1024 位数字。#include "cgbn/cgbn.h"

2021-10-24 18:20:40 2924

原创 2021SC@SDUSC sm2算法加解密过程

2021SC@SDUSC1.SM2 加密算法假设要发送的消息为比特串M ,len为M的比特长度。为了对明文M进行加密,作为加密者的用户A应进行以下运算步骤。(1)用随机数发生器产生随机数k∈[1,n-1],其中n是椭圆曲线基点G的阶次。(2)计算椭圆曲线点 C1=[k]G=(x1,y1)C1=[k]G=(x_1,y_1)C1=[k]G=(x1​,y1​)(3)计算椭圆曲线上的点S=[h]PB S=[h]P_BS=[h]PB​其中S不能为无穷远点O。(4)计算椭圆曲线点[k]PB=(x2,y2)[

2021-10-17 20:42:56 584

空空如也

空空如也

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

TA关注的人

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