1.
(2021·嵊州模拟)
小明和小红喜欢传纸条,为防同学偷看,约定使用Diffie-Hellman算法来加密,该算法的简化模型如下:二人先约定两个正整数g和n,然后小明私下随机生成一个数x,并计算U=gx Mod n;小红也私下生成一个数y,并计算V=gy Mod n。随后二人交换计算出的U,V。接着小明独自计算出自己的密码mkey=Vx Mod n,小红也独自计算出自己的密码hkey=Uy Mod n,且mkey=hkey。
事实上,依上述算法,即便同学们知道g,n,U,V的值,也无法计算出二人的密码,必须再取得x或y才可以,而x,y仅他俩各自保留,外人无从知晓。
已知消息加密的步骤(该步骤可逆)为:①将消息字符串倒序→②将各个字符转换为ASCII码数值→③对各个数值用密码进行异或操作(已知异或运算可逆,即a Xor k=b, b Xor k=a)→④用逗号间隔各异或运算后的结果。
小红依加密的步骤可逆,编制了一个如下的VB程序,该程序用于解密小明的密文,程序运行界面如图所示。回答下列问题:
Private Sub decrypt_ Click()
Dim g,n,U,y,hkey As Integer
Dim mw, xx As string
Dim a(1 To 100) As Integer
Dim i, L As Integer, c As String
'经与小明的协商,小红已获得g,n,U,y的值
g=2:n=7 '约定两个数g和n的值分别为2和7
U=2:y=5 '小红随机生成的数y的值为5
mw = Text1.Text '小明的密文,由数字和逗号组成
hkey = ①
L=1
For i = 1 To Len(mw)
c = Mid(mw, i, 1)
If Then
a(L)=a(L)*10+Val(c)
Else
L= ②
End If
Next i
For i=1 To L
a(i) = a(i) Xor hkey
③
Next i
Text2.Text = xx
End Sub
-
-
-
(2)
在程序划线处填入合适代码,使程序完整。
① ② ③
-