ComSec4:Diffie-Hellman

在这里插入图片描述

解:

a:
Y A = a X A ( m o d 157 ) = 5 15 ( m o d 157 ) = ( 5 4 ) 3 5 3 ( m o d 157 ) = 79 Y_A = a^{X_A} (mod 157)=5^{15}(mod 157) = (5^4)^3 5^3(mod157)=79 YA=aXA(mod157)=515(mod157)=(54)353(mod157)=79
b:
Y B = a X B ( m o d 157 ) = 5 27 ( m o d 157 ) = 5 16 5 8 5 2 5 ( m o d 157 ) = 65 Y_B = a^{X_B} (mod 157)=5^{27}(mod 157) = 5^{16} 5^8 5^2 5(mod157)=65 YB=aXB(mod157)=527(mod157)=51658525(mod157)=65
c:
K = Y A X B ( m o d 157 ) = Y B X A ( m o d 157 ) = 6 5 15 ( m o d 157 ) = 78 K=Y_A^{X_B}(mod 157)=Y_B^{X_A}(mod157)=65^{15}(mod157)=78 K=YAXB(mod157)=YBXA(mod157)=6515(mod157)=78
在这里插入图片描述

解:

a:
已 知 Y B = a X B m o d q , 即 10 = 5 X B m o d 23 , 将 1 至 22 依 次 代 入 X B 。 当 X B = 3 时 , 满 足 上 式 , 所 以 X B = 3 。 已知Y_B=a^{X_B}modq,即10=5^{X_B}mod23,将1至22依次代入X_B。当X_B = 3时,满足上式,所以X_B=3。 YB=aXBmodq10=5XBmod23122XBXB=3XB=3
b:
K = Y A X B ( m o d q ) = 8 3 ( m o d 23 ) = 6 K=Y_A^{X_B}(mod q)=8^3(mod23)=6 K=YAXB(modq)=83(mod23)=6
c:

def is_primitive_root(a,p):
    factor_list = get_factors(p-1)
    for i in factor_list:
        if pow(a,(p-1)/f,p) == 1:
            return False
    return True
def get_factors(N):
    i= 2
    l = []
	while i<=N:
    	while N % i == 0:
        	N /= i
        	l.append(i)
    	i += 1
    return l

因 为 23 − 1 = 22 的 质 因 子 是 2 和 11 , 同 时 5 2 ( m o d 23 ) = 2 ≠ 1 , 5 1 1 ( m o d 23 ) = 22 ≠ 1 , 以 上 两 数 都 不 等 于 1 , 说 明 5 是 模 23 的 原 根 因为23-1=22的质因子是2和11,同时5^2(mod23)=2\neq1,5^11(mod23)=22\neq1,以上两数都不等于1,说明 5 是模 23 的原根 231=2221152(mod23)=2=1,511(mod23)=22=11523

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值