自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MbedTLS中的Montgomery算法实现解析(三)

MbedTLS中的Montgomery算法实现解析(三) 在前面的两篇博客中,我们详细讨论了Montgomery算法的数学原理以及MbedTLS中是如何快速求得-N-1(mod n)。在这一篇博客中,我们将探讨MbedTLS中的蒙哥马利约减(Montgomery reduction)和蒙哥马利模乘(Montgomery multiplication)是如何实现的。 在阅读本博客之前,建议先掌握MbedTLS的大数表示方式 蒙哥马利约减Montgomery reduction 在我们的数学推导中,蒙哥马利约减

2021-11-13 15:45:28 1231

原创 MbedTLS中的Montgomery算法实现解析(二)

MbedTLS中的Montgomery函数 Montgomery initialization 在第一篇博客中,我们主要介绍了Montgomery算法的数学原理,下面我们将介绍在代码上要如何实现Montgomery算法。 在MbedTLS中,采用了232作为R,这是为了便于处理大数,在这里我们的mbedtls_mpi_uint类型数据定义的是32位的整数。那么如果涉及到模除**232**的操作,我们只需要针对X->p[0],也就是低32位即可。 \\mm = -N ^-1 mod R static v

2021-11-11 20:34:15 651

原创 MbedTLS中的Montgomery算法实现解析(一)

MbedTLS中的Montgomery算法实现解析(一) 蒙哥马利算法模乘介绍 蒙哥马利模乘算法主要是为了进行大数运算a×b mod n,并且针对CPU进行了并行优化,来快速计算模乘。 在介绍蒙哥马利模乘之前,先让我们来了解蒙哥马利约减(Montgomery reduction) 蒙哥马利约减(Montgomery reduction) 首先,让我们来考虑一个简单的问题: a mod n 如果a是一个2048位的整数,n是一个1024位的整数,那我们要如何来计算结果呢? 如果我们直接采用相除的方式,不论在时

2021-11-11 17:10:01 1449

原创 Leetcode算法-两两交换链表节点(循环法+递归法)

今天做了一条Leetcode的算法题,感觉从一道算法题里学到许多,于是通过这篇博客记录下来。 题目非常简单: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 比如一个链表1->2->3->4 需要你将链表中两两节点互换,输出2->1->4->3。 第一种方法就是循环遍历的方法:直接遍历整个链表,然后两两交换一下 代码如下: class Solution: def swapPairs(self

2020-07-21 11:32:50 457 1

原创 Leetcode算法题二分图Python3解法(88%时间 100%空间)

先放题目: 给定一个无向图graph,当这个图为二分图时返回true。 如果我们能将一个图的节点集合分割成两个独立的子集A和B,并使图中的每一条边的两个节点一个来自A集合,一个来自B集合,我们就将这个图称为二分图。 graph将会以邻接表方式给出,graph[i]表示图中与节点i相连的所有节点。每个节点都是一个在0到graph.length-1之间的整数。这图中没有自环和平行边: graph[i] 中不存在i,并且graph[i]中没有重复的值。 示例 1: 输入: [[1,3], [0,2], [1,3]

2020-07-16 10:33:27 997 2

空空如也

空空如也

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

TA关注的人

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