博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 使用curve25519
阅读量:6419 次
发布时间:2019-06-23

本文共 1866 字,大约阅读时间需要 6 分钟。

hot3.png

解释:

在,Curve25519是一个提供128位的安全性,并设计用于(ECDH)密钥协商方案。它是最快的ECC曲线之一,并没有被任何已知的专利所涵盖。所述的是。

原来的Curve25519论文将其定义为(DH)功能。曾经提出使用Curve25519的名称作为基础曲线,而名称为X25519为DH功能。

数学性质

所使用的曲线是由2 255 - 19定义的场的上的y 2 = x 3 + 486662 x 2 + x,,并且使用基点x = 9。协议使用压缩椭圆点(只有X坐标),因此它允许仅使用XZ坐标有效地使用进行。

Curve25519的构建使得它避免了许多潜在的实施陷阱。通过设计,它免受定时攻击,它接受任何32字节的字符串作为有效的公钥,不需要验证。

曲线与Ed25519签名方案中使用的曲线是。

首先安装

pip install donna25519

 

 

214137_EZvn_2523846.png

代码:

In [116]:

import random# help(random.randrange)import binasciiimport donna25519 as curve25519

In [121]:

bobs_private=curve25519.PrivateKey()bobs_public=bobs_private.get_public()print("BOb's Private Key:",binascii.hexlify(bobs_private.private))print("BOb's Public Key:",binascii.hexlify(bobs_public.public))
BOb's Private Key: b'180b6a7274b2797688d7d7d6e982ad13c49923ba6d52f8ecd93a9a1b2ba60a76'BOb's Public Key: b'f43ae3b47138a406ac72ce599cb5f25e1714922a966861d97775843956dfcd26'

In [122]:

Alis_private=curve25519.PrivateKey()Alis_public=Alis_private.get_public()print("Alis's Private Key:",binascii.hexlify(Alis_private.private))print("Alis's Public Key:",binascii.hexlify(Alis_public.public))
Alis's Private Key: b'f8f699f118a912df27cefad42b247fceb4b11e0b5f77471ebfd67308cf1b5e64'Alis's Public Key: b'cff4d3898bcd945b45391ff79d139064777f3117f732eb26b22a2cc73261ab0f'

In [123]:

# Alis pub --> bobbobs_sharekey=bobs_private.do_exchange(Alis_public)# Bobs pub -->Alisalis_sharekey=Alis_private.do_exchange(bobs_public)print("Bob's Share Key:",binascii.hexlify(bobs_sharekey))print("Alis's Share Key:",binascii.hexlify(alis_sharekey))
Bob's Share Key: b'0457f7dcdbaeb6bc2aa843a431a2117ad0b38568d1c1e3c1adac88da7008ca48'Alis's Share Key: b'0457f7dcdbaeb6bc2aa843a431a2117ad0b38568d1c1e3c1adac88da7008ca48'

In [124]:

if bobs_sharekey == alis_sharekey:    print("ShareKey SAME 100%")else:    print("ShareKey Diff")
ShareKey SAME 100%

转载于:https://my.oschina.net/wangluxunteng/blog/1527207

你可能感兴趣的文章
css清除浮动
查看>>
selenuim webDriver API 16种定位方式
查看>>
ORACLE视频教程笔记 第一天
查看>>
我的友情链接
查看>>
人生最重要的一件事是成长
查看>>
盗用U盘文件小***
查看>>
硬件bypass原理介绍
查看>>
Perl IO:Socket IO:Select server client
查看>>
du df 计算文件系统的差异
查看>>
JAVA语法细节(1)
查看>>
WINE完全安装-----问题详解
查看>>
安装和使用memcached
查看>>
DELL RAID设置
查看>>
open***配置
查看>>
linux字符界面下root用户无法登录成功
查看>>
改变背景 自适应高度
查看>>
js 检查字符串中是否包含中文(正则)
查看>>
hello spring boot neo4j
查看>>
shell与if相关参数
查看>>
通过ipmitool监控机房内服务器温度
查看>>