CP-ABE属性基加密 前言 这个实验是课程《大数据安全与隐私》的附加实验,实验难度确实挺大的,首先是实验的设计到比较深的数学原理,其次是实验环境不太好配置,需要用到很多库。个人感觉这个实验做起来还是很枯燥的,就是照着PPT调库就完事,做完了也没理解多少内容。 环境准备 首先需要一个Linux虚拟机,然后根据课件上的内容到官网下载好PBC库(以及安装前置GMP等),然后本地编译一下。我的代码还用到了OpenSSL库 2023-04-14 密码学 #大数据安全
Socket编程(五)——多线程 本篇博客应该会是Socket编程系列的最后一篇博客,之后可能会集中精力用于实际应用方面或者Unix高级编程方面。 什么是线程 在之前的博客中介绍过多进程客户端的概念,多进程可以并行地执行多段代码,从而提高IO的效率。但是使用多进程客户端(服务端)用于通信也有一定的不足,比如进程过于占用内存、进程间通信需要特殊的IPC技术、进程的上下文切换会占用大量资源。于是线程的概念就被提出。线程是小于进程的概 2023-04-02 计算机网络 #计算机网络
Socket编程(四)——IO复用和更多IO函数 select函数实现的IO复用 想要一次与多个客户端通信,可以使用之前提到过的多进程的方法。但是多个进程会各自占有独立的内存空间,每次CPU调度进程时切换上下文需要耗费很多时间。而IO复用技术可以减少需要使用的服务端进程数,使用尽量少的资源来争取尽量高的通信效率。 书中举的例子是学生向老师提问的例子,如果要回答10名学生的问题就需要分配10名教室,IO复用就是可以使用一位“超级教师”,他可以应 2023-03-14 计算机网络 #计算机网络
Socket编程(三)——多进程 考完上学期的期末考试了,这学期课还特别少,最近集中精力学完这本书,开始泄洪式更新。 进程和僵尸进程 温故而知新:进程的概念 一个简单且易于理解的定义:“进程是占用内存空间的正在运行的程序。“进程是操作系统进行资源调度的基本单位,资源包括时间、内存和外设等。在网络编程中,在服务端实现多进程可以降低服务的平均时延,提高客户端的访问体验。在Linux操作系统下,可以通过下面这个函数来复制一个进程副本 2023-03-13 计算机网络 #计算机网络
Socket编程(二)——协议的细节和选项 接上一篇,主要介绍一下Socket编程中如何体现TCP/IP族协议的一些细节,包括流量控制、半关闭等。 TCP连接过程 由于TCP协议是面向连接的,所以在进行数据传输前必须建立连接。 服务端方面 服务端首先需要创建自己的套接字,这个套接字并不是真正用于收发数据的,而是起到类似“门卫”的作用。服务端套接字绑定一个端口号后,便可以调用listen函数等待来自客户端的连接。当收到来自客户端的连接请求 2023-03-12 计算机网络 #网络
Socket编程(一)——基础函数 本篇笔记基于尹圣雨的《TCP/IP编程》,主要记录Socket编程中比较关键的一些知识点和C函数。本笔记会像书中一样同时介绍Windows和Linux两个操作系统下的Socket函数,特别是两个操作系统下操作不同的地方。 套接字通信基本流程 套接字概念 套接字(socket)实际上就是网络数据传输用的软件设备,与其他用户通信的数据都需要通过这个软件接口进行传输。在代码中,它以整型变量的形式存在 2023-03-10 计算机网络 #计算机网络
TCP协议通信原理 概述 TCP协议是计算机网络中非常重要的一个协议,其工作在OSI模型的传输层。由于网络层的IP协议并不提供差错控制等服务,只保证尽力交付,所以需要使用更高一层的TCP协议来提供差错控制、流量控制、拥塞控制等服务,保证传输无误。 TCP协议有以下特点: 面向字节流。TCP协议的数据单位是字节。 面向连接,提供全双工通信。在通信前需要建立连接,且双方都可以进行数据传输和接收。 提供可靠交 2023-01-15 计算机网络 #计算机网络 #TCP
2022年度总结 还有两天就是元旦,不知不觉一年就这样过去了。正如《潜伏》中的吴敬中说的:”时间就像一头野驴,跑起来就不会停下“。特别是上了大学之后,更有这种感觉,一学期只有十八周,感觉一学期什么事都没有做就结束了。 永远忘不了的疫情 回想去年的元旦,我是在宿舍里度过的,当时西安的正在经历很严重的疫情,学校开始实行封宿舍,每天只能由一个人出门带饭,我们吃饭的方式就是把塑料袋套到塑料碗里吃。记得去年的12月31号, 2022-12-29 非技术文章 #随笔 #年度总结
学习NAT协议,在家中架设服务器 背景 好久没写博客了,也许是因为前段时间大作业写的报告内容太多,有点厌倦了,坚持果然是件难事。 寒假放假在家想和朋友联机玩《Minecraft》,但苦于没有服务器可以用,于是便尝试自己开一个私服。因为学过计算机网络的知识,我知道自己的PC在路由器LAN口的内网下,于是便考虑了很多种方法来使自己能被公网的其他用户发现。顺便还研究了一下组网的原理。 理论部分 NAT协议 全称Network Ad 2022-12-26 计算机网络 #计算机网络
基于LeNet的手写数字识别 基于LeNet的手写数字识别 作者:周洪锋 学号:20009200766 [TOC] 0、环境配置 需要用到的Python包有matplotlib、pytorch、torchvision,其中pytorch可以使用GPU版本的,但需要按照好CUDA。 1、数据集下载 使用torchvision封装的数据集类来下载MNIST数据集,保存在工作文件夹下。 12345678down_path = 2022-11-03 深度学习 #深度学习 #分类问题