https://github.com/SylverQG/BlogsRSS feed of SylverQG's Blogs2023-10-11T15:02:16.664670+00:00SylverQGdoublc_qluv@163.compython-feedgenhttps://github.com/SylverQG/Blogs/issues/5ComputerNet2023-10-11T15:02:16.909668+00:00一、概述
  1. 计算机性能
    1. 速率(比特每秒bit/s):比特(bit):信息论中信息量的单位;网络技术中速率指的是数据的传送速率也称为数据率比特率
    2. 带宽(两种不同意义):
      1. 频域称谓,指信号具有的频带宽度,单位Hz
      2. 时域称谓,表示在单位时间内网络中某信道所能通过的“最高数据率”,单位比特每秒(bit/s);两者本质一样,一条通信链路的“带宽”越宽,传输的“最高数据率”自然越高
    3. 吞吐量:单位时间内通过某个网络(或信道、接口)的实际数据量。受网络的带宽或网络的额定速率的限制
    4. 时延:时延是指数据(一个报文或分组,甚至是比特)从网络(或链路)的一端传送到另一端所需的时间,有时也成为延迟或迟延
  • 发送时延(传输时延):主机或路由器发送数据帧所需要的时间
   发送时延=\frac{数据帧长度(b)}{发送速率(b/s)}
  • 传播时延:电磁波在信道中传播一定的距离需要花费的时间
   传输时延=\frac{信道长度(m)}{电磁波在信道上的传播率(m/s)}
  • 处理时延:主机或路由器在收到分组时需要花费一定的时间进行处理
  • 排队时延:结点缓存队列中分组排队所经历的时延(取决于网络当时的通信量);数据在网络中经历的总时延就是以上四种时延之和
  • 注:对于高速网络,提高的仅仅是数据的发送率不是比特在链路上的传播速率 5. 时延带宽积: $时延带宽积(体积)= 传播时延(长)\times 带宽(截面积)$,以比特为单位的链路长度 6. 往返时间(RTT):简单来说,就是两倍传播时延(实际上还包括处理时延,排队时延,转发时的发送时延) 7. 利用率:信道利用率 $\rightarrow$ 网络利用率(全网络的信道利用率的加权平均值) $D=\frac{D_0}{1-U}, D_0$表示网络空间时的延时, $D_0$表示网络空闲时时延, $U$为利用率, $D$表示网络当前的时延;可见信道利用率并不是越高越好,当某信道的利用率增大时,该信道引起的时延也就迅速增大。 减少方法是增大线路的带宽
  1. 计算机网络体系结构
    1. OSI/RM:开放系统互联参考模型(法律上的国际标准):简称OSI
    2. TCP/IP:事实上的国际标准
    3. 协议:为进行网络中的数据交换而建立的规则、标准或约定。三要素:语法(结构和格式),语义(动作),同步(顺序)
    4. 分层的好处
      1. 各层之间是独立的
      2. 灵活性好
      3. 结构上可分割开
      4. 易实现和维护
      5. 能促进标准化工作
    5. 五层体系结构
      1. 应用层:通过应用进程(正在运行的程序)间的交互来完成特定网络应用。(如DNS,HTTP,SMTP,FTP)
      2. 运输层:负责向两台主机中进程之间的通信提供的数据传输服务。(复用和分用)
        1. 传输控制协议TCP:提供面向连接的、可靠的数据传输服务,其数据传输单位是报文段
        2. 用户数据报协议UDP:提供无连接的、尽最大努力的数据传输服务(不保证可靠性),其数据传输单位是用户数据报
      3. 网络层:负责为分组交换网上的不同主机提供通信服务(TCP/IP体系中,分组也叫IP数据报)
      4. 数据链路层:将网络层交下来的IP数据报组装成帧,在两个相邻结点(主机和路由器之间或路由器之间)间的链路上传送帧;每一帧包括数据和必要的控制信息
      5. 物理层:透明地传送比特流(双绞线、同轴电缆、光缆、无线信道等不在物理层)
  2. 词语
    1. 实体:任何可发送或接受信息的硬件或软件进程
    2. 协议:控制两个对等实体(或多个实体)进行通信的规则的集合。(水平的)
    3. 在协议控制下,两个对等实体间的通信使得本层能够向上一层提供服务(垂直的)要实现本层协议,还需要使用下面一层所提供的服务
    4. 同一系统相邻两层的实体进行交互(即交换信息)的地方,称为服务访问SAP

二、物理层

  1. 基本概念
    • 机械特性(接口)
    • 电气特性(电压范围)
    • 功能特性(电压的意义)
    • 过程特征(顺序)
  2. 数据通信系统 一个数据通信系统可划分为三大部分,即源系统(发送端、发送方) $\rightarrow$ 传输系统(传输网络) $\rightarrow$ 目的系统(接收端、接收方)
    • 数据(data):运送消息的实体
    • 信号(signal):数据的电气的或电磁的表现
    • 模拟信号或连续信号(analogous):代表消息的参数的取值是连续的
    • 数字信号或离散信号(digital):代表消息的参数的取值是离散的
    • 码元(code):代表不同离散数值的基本波形
  3. 信道的基本概念 信道用来表示向某个方向传送信息的媒体;可以有以下三种基本方式
    1. 单向通信(单工通信):只能有一个方向的通信而没有反方向的交互(广播)
    2. 双向交替通信(半双工通信):通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)这种通信方式是一方发送另一方接收,过一段时间后,可以再反过来
    3. 双向同时通信(全双工通信):通信的双方可以同时发送和接收信息
  4. 信道的极限容量
    1. 信道能够通过的频率范围(码间串扰):加宽频带
    2. 信噪比:信号的平均功率的噪声的平均功率之比;常记为 $S/N$,并用分贝(dB)作为度量单位。即: $信噪比(dB)=10\log_{10} (S/N)(dB)$
    3. 香农公式:信道的极限信息传输速率 $C=W\log_{2}(1+S/N) (bit/s)$;式中W为信道的带宽(单位Hz),S为信道内所传信号的平均功率,N为信道内部的高斯噪声功率
    4. 香农公式表明:信道的带宽或信道中的信噪比越大,信息的极限传输速率就越高。只要信息传输速率低于信道的极限传输速率,就一定存在某种方法实现无差错传输
  5. 信道复用技术
    1. 频分复用(FDM):所有用户在同样的时间占用不同的资源
    2. 时分复用(TDM)(同步时分复用):所有用户在不同的时间用同样的频带宽度;(更有利于数字信号的传输)
    3. 以上两种复用方法的优点是技术比较成熟,缺点是不够灵活
    4. 统计时分复用(STDM)(异步时分复用):动态分配时隙;集中器常使用统计时分复用
    5. 波分复用:光的频分复用
    6. 码分多址(码分多址CDMA):各用户使用不同的码型,因此各用户之间不会造成干扰。每个站分配的码片序列不仅必须各不相同,并且还必须互相正交(相乘为0,0写为-1,1写为+1)。在使用的系统中是使用为随机序列。
    7. 任何一个码片向量和该码片向量自己的规格内积都是 1;
    8. 任何一个码片向量和该码片反码的向量自己的规格内积都是 -1;
    9. 任何一个码片向量和其他该码片向量自己的规格内积都是 0;
  6. 宽带接入技术
    • ADSL(非对称数字用户线)技术:用数字技术对现有模拟电话用户线进行改造。ADSL的极限传输距离取决于数据率和用户线的线经(用户线越细,信号传输时的衰减就越大)
    • 光纤同轴混合网(HFC网)
    • FTTx技术:光纤到户FTTH
  7. 例:假定某信道受奈氏准则限制的最高码元速率为20000码元/元。如果采用振幅调制,把码元的振幅划分为16个不同的等级来传送,那么可以获得多高的数据率(b/s)答: $C = R \ast log_{2}{16} = 20000b/s \ast 4 = 80000b/s $
  8. 共有4个站进行CDMA通信。4个站的码片序列为 A. (-1-1-1+1+1-1+1+1) B. (-1-1+1-1+1+1+1-1) C. (-1+1-1+1+1+1-1-1) D. (-1+1-1-1-1-1+1-1) 现在受到这样的码片序列S:(-1+1-3+1-1-3+1+1)。问哪个站发送数据了发送数据的站发送的是0还是1? 解: $S\cdot A= (+1-1+3+1-1+3+1+1) / 8=1, A 发送1$ $S\cdot B= (+1-1-3-1-1-3+1-1) / 8=-1, B 发送0$ $S\cdot C= (+1+1+3+1-1-3-1-1) / 8=0, C 无发送$ $S\cdot D= (+1+1+3-1+1+3+1-1) / 8=1, D 发送1$
]]>
2023-10-06T14:56:13+00:00
https://github.com/SylverQG/Blogs/issues/4DataStructure2023-10-11T15:02:17.069727+00:00一、绪论|顺序表
  1. 数据元素、数据项以及数据结构三者之间的关系
  2. 逻辑结构、存储结构(物理结构)的区分
  3. 算法的特征与设计要求
  4. 时间复杂度、空间复杂度的理解与计算
  5. 线性表的定义与特点
  6. 顺序表的定义、特点以及操作
  7. 算法
    1. 顺序表的插入
    2. 顺序表的删除
    3. 顺序表的合并算法

二、链表|约瑟夫环

  1. 链表的特点
  2. 链表的定义
  3. 为什么要设置头节点
  4. 单链表的基本操作(查找、插入、删除、合并、头插法、尾插法)
  5. 链表的分类及其特征
  6. 约瑟夫环
  7. 算法
    1. 单链表的查找
    2. 单链表的插入
    3. 单链表的删除
    4. 表头插入法建立单链表
    5. 表尾插入法建立带头结点的单链表
    6. 表尾插入法建立不带头结点的单链表
    7. 两个有序单链表的合并
    8. 约瑟夫环算法

三、栈|队列

  1. 栈、队列的定义与特点
  2. 栈、队列的存储结构与基本操作
  3. 栈、队列的应用
  4. 循环队列
  5. 算法
    1. 顺序栈
      1. 初始化
      2. 元素入栈
    2. 链栈
      1. 初始化
      2. 入队
      3. 出队列
    3. 循环队列
      1. 初始化
      2. 入队
      3. 出队

四、串|压缩矩阵

  1. 串的基本运算
  2. 串的模式匹配、KMP
  3. 矩阵的压缩矩阵与三元组
  4. 算法
      1. 朴素的串匹配算法
      2. 模式匹配算法——KMP
      3. KMP模式匹配算法——求next[j]的算法
    1. 数组
      1. 三元组顺序表上的转置

四、树

  1. 树的定义和基本术语
  2. 二叉树的定义、基本运算、性质以及存储结构
  3. 二叉树的遍历(递归算法,非递归算法)
  4. 树和森林与二叉树的关系
  5. 森林与二叉树的转换及遍历
  6. 哈夫曼树的构造、哈夫曼编码
  7. 连接线索二叉树
  8. 算法
    1. 二叉树递归遍历
      1. 先须递归遍历
      2. 中序递归遍历
      3. 后序递归遍历
    2. 二叉树遍历非递归算法
      1. 先序遍历
      2. 中序遍历
    3. 中序线索二叉树
      1. 创建中序线索二叉树
      2. 中序线索二叉树上找指定结点的后继
    4. 哈夫曼编码和译码
      1. 哈夫曼编码
      2. 哈夫曼译码

五、图的遍历和图的遍历

  1. 图的基本术语
  2. 图的两种基本存储结构
  3. 图的遍历,广度、深度遍历结果的区别
  4. 图的应用(拓扑排序、最小生成树、最短路径、关键路径),掌握手动模拟
  5. 图的入度、出度计算
  6. 关键路径长度计算
  7. 算法
    1. 图的深度优先搜索遍历(DFS)
    2. 图的广度优先搜索遍历(BFS)
    3. 最小生成树
      1. Prim
      2. Kruskal
    4. 拓扑排序算法x
    5. 关键路径算法x
      1. 最早发生
      2. 最晚发生
      3. 输出关键路径、关键活动
    6. 最短路径
      1. Dijkstra
      2. Floyd

六、索引结构|散列技术

  1. 顺序表的查找
  2. 索引结构
  3. 有序表的查找(折半查找)
  4. 索引顺序表的查找
  5. 二叉排序树
  6. 平衡二叉树
  7. 哈希表(又称散列表)掌握开放地址法和拉链法
  8. 平均查找长度(ASL、 $ASL_{成功}$、 $ASL_{失败}$)
  9. 算法
    1. 常规
      1. 无序表的顺序查找
      2. 有序表的顺序查找
    2. 二叉排序树
      1. 二叉排序树的插入算法
      2. 二叉排序树的查找算法
      3. 二叉排序树的操作有多种形式
    3. 平衡二叉树
      1. 平衡二叉树
        1. RR
        2. LL
        3. LR
        4. RL
    4. 哈希表
      1. 构造方法
        1. 直接定址法
        2. 数字分析法
        3. 平方取中法
        4. 折叠法
        5. 除留余数法
      2. 冲突处理方法
        1. 开放定址法
        2. 链地址法
        3. 再哈希法
        4. 公共溢出区法

七、缩小规模算法

  1. 分治算法(分解、求解、合并)
  2. 二分查找
  3. 归并排序(二路归并排序、多路归并排序)
  4. 交换排序(冒泡排序、快速排序)
  5. 动态规划(矩阵连乘、重叠子问题、备忘录方法、图像压缩、最优二叉搜索树)
  6. 贪心算法
  7. 算法
    1. 简单算法
      1. 有序顺序表上的折半查找
      2. 直接插入排序
      3. 折半插入排序
      4. 归并算法
      5. 冒泡排序
    2. 动态规划
      1. 矩阵连乘
      2. 重叠子问题
      3. 备忘录方法
      4. 图像压缩
      5. 最有二叉搜索树
    3. 贪心算法
      1. 背包问题
      2. 0-1背包问题
]]>
2023-10-05T14:52:23+00:00
https://github.com/SylverQG/Blogs/issues/3Crypto2023-10-11T15:02:17.205151+00:00现代密码学目录(仅目录)

1. 基础

1.1 威胁

1.2 信息安全模型

1.3 密码学基本概念

1.4 古典密码

2. 流密码

2.1 基本概念

2.2 线性反馈移位寄存器

2.3 线性移位寄存器的一元多项式表达式

2.4 m序列的伪随机性

2.5 m序列密码的破译

2.6 非线性序列

3. 分组密码体制

3.1 概述

3.2 数据加密标准

3.3 差分密码分析与线性密码分析

3.4 分组密码的运行模式

3.5 IDEA

3.6 AES|Rijindael

3.7 SM4

3.8 祖冲之

4. 公钥密码

4.1 数学知识

4.2 基本概念

4.3 RSA

4.4 背包密码体制

4.5 NTRU

4.6 椭圆曲线密码体制

4.7 SM2椭圆曲线公钥密码加密算法

5. 密钥分配与密钥管理

5.1 单钥加密体制的密钥分配

5.2 公钥加密体制的密钥分配

5.3 随机数的产生

5.4 秘密分割

6. 消息认证与哈希函数

6.1 消息认证

6.2 哈希函数

6.3 MD5

6.4 安全哈希算法

6.5 HMAC

6.6 SM3

7. 数字签名和认证协议

7.1 基本概念

7.2 数字签名标准

7.3 其他签名方案

7.4 SM2椭圆曲线公钥密码签名算法

7.4 认证协议

8. 密码协议

8.1 基本协议

8.2 零知识证明

8.3 安全多方计算

9. 可证明安全

9.1 语义安全的公钥密码体制定义

9.2 语义安全的RSA的加密方案

9.3 Paillier公钥密码系统

9.4 Cramer-Shoup密码系统

9.5 RSA-FDH签名方案

9.6 BLS短签名方案

9.7 基于身份的密码体制

10. 网络加密与认证

10.1 网络通信加密

10.2 Kerberos认证系统

10.3 X.509认证业务

10.4 PGP

]]>
2023-09-21T14:01:39+00:00
https://github.com/SylverQG/Blogs/issues/2how issues go to the md?2023-10-11T15:02:17.335045+00:00
  • 本仓库搭建概况

  • 搭建过程的一些问题(遇到的,并从issue里总结的)

    1. cookbook依旧是https://github.com/yihong0618/gitblog/issues/177中的这些步骤,即
      • ①生成个人Token,并添加到仓库设置中。
      • ②文件.github/workflows/generate_readme.ymlenv项的nameemail设置更改为自己的
    2. .github/workflows/generate_readme.yml的其他修改如下:即添加注释的地方
    name: Generate README
    
    on:
    issues:
        types: [opened, edited]
    issue_comment:
        types: [created, edited]
    push:
        branches:
        - main    # 这里改成main,好像是从一个时间起默认创建的主分支从master变为了main,
                    # 当然如果仓库内都是master也可以不用修改
        paths:
        - main.py
    
    env:    # 这两项更改为自己的配置
    GITHUB_NAME: SylverQG
    GITHUB_EMAIL: doublc_qluv@163.com
    
    jobs:
    sync:
        name: Generate README
        runs-on: ubuntu-latest
        steps:
        - name: Checkout
            uses: actions/checkout@v3   # 我这里改为了v3,与下面`版本变更`一致,都只加1个大版本
        - name: Set up Python
            uses: actions/setup-python@v2
            with:
            python-version: 3.9
    
        - name: Configure pip cache
            uses: actions/cache@v2
            id: pip-cache
            with:
            path: venv
            key: pip-1-${{ hashFiles('**/requirements.txt') }}
            restore-keys: |
                pip-
        
        - name: Install dependencies
            run: |
            python -m pip install --upgrade pip
            python -m venv venv
            source venv/bin/activate
            pip install -r requirements.txt
            if: steps.pip-cache.outputs.cache-hit != 'true'
        
        - name: Generate new md
            run: |
            source venv/bin/activate
            python main.py ${{ secrets.G_T }} ${{ github.repository }} --issue_number '${{ github.event.issue.number }}'
        
        - name: Push README # 这里使用了egolearner/paper-note 中的yml
                            # 并更新版本到2.9,旧版本似乎会有报错
            uses: github-actions-x/commit@v2.9
            with:
            github-token: ${{ secrets.G_T }}
            commit-message: "UPDATE README"
            files: BACKUP/*.md README.md feed.xml # 注意因为main.py文件将这三类文件都暂存到了缓存里,所以应该是一起进行推送
            rebase: 'true'
            name: SylverQG 
            email: doublc_qluv@163.com
    
  • 警告详情 actions/checkout@v2,actions/setup-python@v1,actions/cache@v1 update to actions/checkout@v3,actions/setup-python@v2,actions/cache@v2

  • Generate README
    Node.js 12 actions are deprecated. Please update the following actions to use Node.js 16: actions/setup-python@v2, actions/cache@v2. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/.
    
    1. 错误详情 github-actions-x/commit@v2.6 update to v2.9 (the latest) the error shows:
    Command line: | /usr/bin/git pull --rebase --autostash origin main
    Stderr:       | fatal: detected dubious ownership in repository at '/github/workspace'
                  | To add an exception for this directory, call:
                  | 
                  | 	git config --global --add safe.directory /github/workspace
    
    1. 错误详情 生成通过但是仓库没有变更 ,此时可以重新生成Token,重新添加到仓库的设置中。[这与本地的错误类似,即没有当前仓库的权限]
    remote: Permission to SylverQG/Blogs.git denied to github-actions[bot].
    fatal: unable to access 'https://github.com/SylverQG/Blogs/': The requested URL returned error: 403
    nothing to push
    
    ]]>
    2023-06-15T12:56:55+00:00
    https://github.com/SylverQG/Blogs/issues/1A New Try as Restart2023-10-11T15:02:17.447112+00:00A New Try

    To make blogs by the issues

    To say goodbye to the old world

    To put the ping in the e-world

    The new ID/github_repository

    • Sylver,即Silver,避免被注册哈哈
      • Silver Bullet: 杀狼人的特效武器,万金油,杀手锏,最强杀招,王牌,a simple solution to a complicated problem
      • 《名侦探柯南》中的两人有此称呼,琴说是赤井秀一,贝尔摩德认为还有江户川柯南
      • 希望我有朝一日可以值此新名
    • QG,名字大写缩写

    put the ping

    You will die but github long live.

    尝试了很多种类的github博客形式。、

    • 从本地编译上传的形式
    • 读取issue并有一套漂亮前端的形式
      • 二次元的 aurora 可惜没有高频维护,我自己还没学过[TypeScript 或者 JavaScript]
      • 简洁的 Marverick 本来想弄这个的,但好像失败了。那就考虑不如直接找到化繁为简
    • 终于本仓库暂时使用 gitblog

    Plan

    之后考虑从原来的GitHub仓库一点一点搬运,还是也把那个github.io也搞成这样,或者再找个好看的主题也不是不行

    ]]>
    2023-06-13T14:09:48+00:00