header.png

RSA 说它是 “地球最重要的算法”,应该也不过分。它是 1978 年由 R.Rivest、A.Shamir 和 L.Adleman 提出的一种用数论构造的、也是迄今为止理论上最为成熟、完善的公钥密码体制,它已经得到了广泛的应用。

阅读全文 »

header.png

KMP 算法是由 D.E.Knuth、J,H,Morris 和 V.R.Pratt 一同提出,因此它也被称为 Knuth-Morria-Pratt 算法。该算法在 “ 字符串匹配问题 ” 中,相较于 Brute-Force(暴力)算法有很大的改进。它的核心思想就是通过一个 next() 数组(包含了模式串的局部匹配信息),利用匹配失败后的信息,尽量减少模式串与主串的匹配次数,以达到快速匹配的目的。

阅读全文 »

header.png

(Linear List)是一种比较复杂的数据结构。在树中,节点会存在明显的分层关系,但是图中却不会受到这种限制。它是由顶点和顶点之间的关系组成的集合。通常,图中的顶点数量或者一个顶点与其他顶点之间的连线的个数不会受限制。

阅读全文 »

header.png

2020 遇到了一句很喜欢的话,它出自诗人北岛的《过节》。

“玻璃晴朗,橘子辉煌。”

而我更喜欢在后面加上一句:

“生有热烈,藏与俗藏!”

阅读全文 »

在云计算时代,安全问题可谓是层出不穷。由此而衍生出的同态加密技术可以解决各种保护隐私的计算问题。它通过对数据进行加密处理,并允许任何人直接在加密后数据上进行处理(加减乘除等计算),生成加密结果,但是只有解密密钥的所有者才能进行解密进而得到所需的数据。但是由于 HE 需要进行大量的计算,导致其对性能的要求很高,这也是 HE 方案很大的不足。这篇论文就介绍了一种基于 CUDA 的 SHE (Somewhat Homomorphic Encryption)实现方案。

阅读全文 »

header.png

(tree)是一种抽象数据类型(ADT)或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由 n ($n \geq 0$)个有限节点组成一个具有层次关系的集合。在任意一棵非空树中,它都满足如下特点:

  • 有且仅有一个特定的称为根(Root)的结点;
  • 当 $n >1$ 时,其余结点可分为 m($m >0$)个互不相交的有限集 $T_1,T_2,…,T_m$,其中每一个集合本身又是一棵树,并且称为根的子树(SubTree);
阅读全文 »

header.png

字符串(String)是由零个或多个字符(char)组成的有序序列。学过 C/C++ 的人会有一种固定的思维模式,凡是字符串都是以 \0 结束。但是 java 却不同,要知道 java 里始终秉承的一句话 『everything is object』,字符串也不例外,它也被作为 String 类型的对象处理。

阅读全文 »

这里提到的 linux 版本是 0.11,在当时,操作系统都是存在软盘里的,而 CPU 的逻辑电路被设计为只能运行内存中的程序。电路刚通电时,内存(RAM)里什么都没有,那么计算机是怎样将操作系统运行起来的呢?

阅读全文 »

header.png

线性表(Linear List)是最简单也是最常用的一种数据结构。简言之,线性表是 n 个数据元素的有限序列。每个数据元素可以使一个数或一个符号,也可以是一页书,甚至其他更加复杂的信息。

阅读全文 »

header.png

查找(Searching)是根据给定的某值,在查找表中确定一个其关键字等于给定值的数据或记录元素。若在表中存在这样的记录,则称查找成功,并返回整个记录的值,或指示该记录在查找表中的位置;若表中不存在关键字等于给定值的记录,则称查找失败,这时候一般返回一个 “空” 记录或 “空” 指针。

阅读全文 »