当前位置: 高中信息技术 / 综合题
  • 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

    1. (1) 加框处代码有错,请改正。
    2. (2) 在程序划线处填入合适代码,使程序完整。

       ② ③ 

微信扫码预览、分享更方便