自定义博客皮肤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 1025

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

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

2021-11-11 20:34:15 518

原创 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 1224

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

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

2020-07-21 11:32:50 374 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 880 2

空空如也

空空如也

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

TA关注的人

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