Đồ án Hệ mã DES

MỤC LỤC

I .1 Giới thiệu. 3

I.2 Các Hệ Mã Thông Dụng:. 3

e. Phương pháp Affine. 4

f. Phương pháp Vigenere. 5

I.2 LẬP MÃ DES. 14

I. 3 THÁM MÃ DES. 17

I.3.1. Thám mã hệ DES - 3 vòng. 20

II.3.2. Thám mã hệ DES 6-vòng . 24

II.3. 3 Các thám mã vi sai khác . 28

III. CÀI ĐẶT THÁM MÃ DES 3 VÒNG. 28

III.1 Giao Diện . 28

III.2 XỬ LÝ .

pdf122 trang | Chuyên mục: Lý Thuyết Thông Tin | Chia sẻ: dkS00TYs | Lượt xem: 1624 | Lượt tải: 5download
Tóm tắt nội dung Đồ án Hệ mã DES, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
trimax, 6) 
 Next 
 txtkhoav3.Text = khoav3 
 Return khoav3 
 End Function 
Hàm Xử lý khoá 
 Function xulikhoa() As String 
 Dim khoa As String = khoavong3() 
 If flag = False Then 
 Exit Function 
 End If 
 khoa = hoanvi_pc2tru(khoa) 
 Dim haitambitdau As String = khoa.Substring(0, 28) 
 Dim haitambitcuoi As String = khoa.Substring(28, 28) 
 haitambitdau = dichphai(haitambitdau, 4) 
 haitambitcuoi = dichphai(haitambitcuoi, 4) 
 khoa = haitambitdau + haitambitcuoi 
 Dim i As Integer 
 khoa = hoanvi_pc1tru(khoa) 
 txtkhoa.Text = khoa 
 Return khoa 'khoa 56 bit 
 End Function 
Hàm tạo chuỗi khoá 
 Sub taochuoikhoa(ByVal c As String) 
 If flag = False Then 
 Exit Sub 
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 
NGÔ THỊ TUYẾT HÀ – T012825 
 End If 
 Dim chuoibinary(255) As String 
 Dim i As Integer 
 For i = 0 To 255 
 chuoibinary(i) = binary(i, 8) 
 chuoikhoa(i) = taotungkhoa(c, chuoibinary(i)) 
 Next 
 End Sub 
Hàm tạo từng khoá 
 Function taotungkhoa(ByVal a As String, ByVal b As String) As 
String 
 Dim i As Integer 
 Dim j As Integer = 0 
 Dim tam(63) As Char 
 For i = 0 To 63 
 tam(i) = a.Substring(i, 1) 
 If tam(i) = "?" Then 
 tam(i) = b.Substring(j, 1) 
 j += 1 
 End If 
 Next 
 Return tam 
 End Function 
Hàm dịch phải 
 Function dichphai(ByVal s As String, ByVal n As Integer) As String 
 Return s.Substring(s.Length - n, n) + s.Substring(0, s.Length - n) 
 End Function 
 Function tap_in(ByVal e As String, ByVal ephay As String, ByVal 
cphay As String, ByVal s As DataTable) As String() 
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 
NGÔ THỊ TUYẾT HÀ – T012825 
 Dim tam(63), b, bsao, c, csao, cphaytam As String 
 Dim i As Integer 
 For i = 0 To 63 
 b = bi_so(i) 
 Dim haibitcuoi As String = b.Substring(0, 1) + b.Substring(5, 1) 
 Dim bonbitgiua As String = b.Substring(1, 4) 
 Dim srow = thapphan(haibitcuoi) 
 Dim scol = thapphan(bonbitgiua) 
 Dim sij As Integer = s.Rows(srow).Item(scol) 
 c = binary(sij, 4) 
 bsao = phay(ephay, b) 
 haibitcuoi = bsao.Substring(0, 1) + bsao.Substring(5, 1) 
 bonbitgiua = bsao.Substring(1, 4) 
 srow = thapphan(haibitcuoi) 
 scol = thapphan(bonbitgiua) 
 sij = s.Rows(srow).Item(scol) 
 csao = binary(sij, 4) 
 cphaytam = phay(c, csao) 
 If cphaytam = cphay Then 
 tam(thapphan(phay(e, b))) = 1 
 End If 
 Next 
 Return tam 
 End Function 
Một số Hàm cho xử lý sự kiện 
 Private Sub btthamma_Click(ByVal sender As System.Object, 
ByVal ee As System.EventArgs) Handles btthamma.Click 
 ReDim banro(n) 
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 
NGÔ THỊ TUYẾT HÀ – T012825 
 ReDim banma(n) 
 ReDim e((n - 1) / 2) 
 ReDim esao((n - 1) / 2) 
 ReDim ephay((n - 1) / 2) 
 ReDim cphay((n - 1) / 2) 
 flag = True 
 If gandulieu() = False Then 
 Exit Sub 
 End If 
 If kiemtra() = False Then 
 Exit Sub 
 End If 
 bi_banro_banma() 
 xuli_e_esao_ephay() 
 xuli_cphay() 
 tap_test() 
 taochuoikhoa(xulikhoa()) 
 If flag = False Then 
 Exit Sub 
 End If 
 chonkhoadung() 
 End Sub 
 Private Sub btthoat_Click(ByVal sender As System.Object, ByVal 
ee As System.EventArgs) Handles btthoat.Click 
 Me.Close() 
 End Sub 
 Private Sub thammades_Load(ByVal sender As System.Object, 
ByVal ee As System.EventArgs) Handles MyBase.Load 
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 
NGÔ THỊ TUYẾT HÀ – T012825 
 Dim strbanro As String 
 strbanro += "748502CD38451097" + Chr(13) + Chr(10) 
 strbanro += "3874756438451097" + Chr(13) + Chr(10) 
 strbanro += "486911026ACDFF31" + Chr(13) + Chr(10) 
 strbanro += "375BD31F6ACDFF31" + Chr(13) + Chr(10) 
 strbanro += "357418DA013FEC86" + Chr(13) + Chr(10) 
 strbanro += "12549847013FEC86" 
 txtbanro.Text = strbanro 
 Dim strbanma As String 
 strbanma += "03C70306D8A09F10" + Chr(13) + Chr(10) 
 strbanma += "78560A0960E6D4CB" + Chr(13) + Chr(10) 
 strbanma += "45FA285BE5ADC730" + Chr(13) + Chr(10) 
 strbanma += "134F7915AC253457" + Chr(13) + Chr(10) 
 strbanma += "D8A31B2F28BBC5CF" + Chr(13) + Chr(10) 
 strbanma += "0F317AC2B23CB944" 
 txtbanma.Text = strbanma 
 khoitao() 
 End Sub 
 'des 
Hàm cắt bit cuối 
 Function catbitcuoi(ByVal k As String) As String 'dua vao 64 bit tra 
ra 56 bit 
 Dim i As Integer = 0 
 Dim j As Integer 
 Dim tam As String 
 While i < 63 
 For j = i To i + 6 
 tam += k.Substring(j, 1) 
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 
NGÔ THỊ TUYẾT HÀ – T012825 
 Next 
 i = i + 8 
 End While 
 Return tam 
 End Function 
 Function ls(ByVal s As String, ByVal n As Integer) As String 
 Return s.Substring(n, s.Length - n) + s.Substring(0, n) 
 End Function 
Hàm tạo dãy khoá 
 Sub taodaykhoa(ByVal khoa As String) 
 khoa = hoanvi_pc1(khoa) 
 Dim d(2) As String 
 Dim c(2) As String 
 c(0) = khoa.Substring(0, 28) 
 c(0) = ls(c(0), 1) 
 d(0) = khoa.Substring(28, 28) 
 d(0) = ls(d(0), 1) 
 daykhoa(0) = hoanvi_pc2(c(0) + d(0)) 
 Dim i As Integer 
 For i = 1 To 2 
 If i = 1 Then 
 c(i) = ls(c(i - 1), 1) 
 d(i) = ls(d(i - 1), 1) 
 Else 
 c(i) = ls(c(i - 1), 2) 
 d(i) = ls(d(i - 1), 2) 
 End If 
 daykhoa(i) = hoanvi_pc2(c(i) + d(i)) 
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 
NGÔ THỊ TUYẾT HÀ – T012825 
 Next i 
 End Sub 
Hàm xử lý chuỗi nhập 
 Function bi_acsii(ByVal int As Integer) As String 
 Dim tam(7) As Char 
 Dim i As Integer 
 For i = 0 To 7 
 tam(i) = (int Mod 2).ToString 
 int \= 2 
 Next 
 Array.Reverse(tam) 
 Return tam 
 End Function 
Hàm mã hoá 
 Function mahoa(ByVal x As String) As String 
 Dim i, j As Integer 
 Dim l(2) As String 
 Dim r(2) As String 
 'x = hoanvi_ip(x) 
 Dim l0 As String = x.Substring(0, 32) 
 Dim r0 As String = x.Substring(32, 32) 
 l(0) = r0 
 For i = 0 To 31 
 r(0) += (l0.Substring(i, 1) Xor f(r0, daykhoa(0)).Substring(i, 
1)).ToString 
 Next 
 For i = 1 To 2 
 l(i) = r(i - 1) 
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 
NGÔ THỊ TUYẾT HÀ – T012825 
 Dim a As String = f(r(i - 1), daykhoa(i)) 
 For j = 0 To 31 
 r(i) += (l(i - 1).Substring(j, 1) Xor a.Substring(j, 1)).ToString 
 Next j 
 Next i 
 Dim t As String = l(2) + r(2) 
 Return t 
 'Return hoanvi_iptru(r(2) + l(2)) 
 End Function 
Hàm tạo hàm f 
 Function f(ByVal r As String, ByVal daykhoa_k As String) As String 
 Dim i As Integer 
 Dim e As String 
 Dim hv As String = hoanvi_e(r) 
 For i = 0 To 47 
 e += (hv.Substring(i, 1) Xor daykhoa_k.Substring(i, 
1)).ToString 
 Next 
 Dim b(7) As String 
 Dim c As String 
 For i = 0 To 7 
 b(i) = e.Substring(i * 6, 6) 
 Dim haibitdaucuoi As String = b(i).Substring(0, 1) + 
b(i).Substring(5, 1) 
 Dim bonbitgiua As String = b(i).Substring(1, 4) 
 Dim srow = thapphan(haibitdaucuoi) 
 Dim scol = thapphan(bonbitgiua) 
 Dim sij As Integer = s(i).Rows(srow).Item(scol) 
 c += binary(sij, 4) 
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 
NGÔ THỊ TUYẾT HÀ – T012825 
 Next 
 Return hoanvi_p(c) 
 End Function 
Hàm đổi ra chữ 
 'Function doirachu(ByVal y As String) As String 
 'Dim tam As String = y 
 'Dim tam1 As String = "" 
 'Dim so As Integer 
 'Dim i As Integer 
 'Dim j As Integer 
 'While i < tam.Length - 1 
 'so = 0 
 'For j = i To i + 7 
 'If tam.Substring(j, 1) = 1 Then 
 'so += 2 ^ (7 - (j - i)) 
 'End If 
 'Next 
 'tam1 += Chr(so) 
 'i = i + 8 
 'End While 
 'Return tam1 
 'End Function 
 Function doirachu(ByVal y As String) As String 
 Dim tam As String = y 
 Dim tam1 As String = "" 
 Dim so As Integer 
 Dim i, j As Integer 
 While i < tam.Length - 1 
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 
NGÔ THỊ TUYẾT HÀ – T012825 
 so = 0 
 For j = i To i + 3 
 If tam.Substring(j, 1) = 1 Then 
 so += 2 ^ (3 - (j - i)) 
 End If 
 Next 
 tam1 += chucai(so) 
 i = i + 4 
 End While 
 Return tam1 
 End Function 
Chữ cái 
 Function chucai(ByVal so As Integer) As Char 
 Select Case so 
 Case 0 
 Return "0" 
 Case 1 
 Return "1" 
 Case 2 
 Return "2" 
 Case 3 
 Return "3" 
 Case 4 
 Return "4" 
 Case 5 
 Return "5" 
 Case 6 
 Return "6" 
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 
NGÔ THỊ TUYẾT HÀ – T012825 
 Case 7 
 Return "7" 
 Case 8 
 Return "8" 
 Case 9 
 Return "9" 
 Case 10 
 Return "A" 
 Case 11 
 Return "B" 
 Case 12 
 Return "C" 
 Case 13 
 Return "D" 
 Case 14 
 Return "E" 
 Case 15 
 Return "F" 
 End Select 
 End Function 
Hàm chuyển mã asc 
 Function asc(ByVal a As Char) 
 Select Case a 
 Case "0" 
 asc = 0 
 Case "1" 
 asc = 1 
 Case "2" 
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 
NGÔ THỊ TUYẾT HÀ – T012825 
 asc = 2 
 Case "3" 
 asc = 3 
 Case "4" 
 asc = 4 
 Case "5" 
 asc = 5 
 Case "6" 
 asc = 6 
 Case "7" 
 asc = 7 
 Case "8" 
 asc = 8 
 Case "9" 
 asc = 9 
 Case "A" 
 asc = 10 
 Case "B" 
 asc = 11 
 Case "C" 
 asc = 12 
 Case "D" 
 asc = 13 
 Case "E" 
 asc = 14 
 Case "F" 
 asc = 15 
 End Select 
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 
NGÔ THỊ TUYẾT HÀ – T012825 
 End Function 
Hàm chọn khoá 
 Sub chonkhoadung() 
 Dim i As Integer 
 Dim x As String = banro(0) 
 'For i = 0 To banro(0).Length - 1 
 'x += binary(asc(banro(0).Substring(i, 1)), hebit) 
 'Next 
 For i = 0 To 255 
 taodaykhoa(chuoikhoa(i)) 
 Dim banma1 As String = doirachu(mahoa(x)) 
 If banma1 = doirachu(banma(0)) Then 
 chuoikhoa(i) = chuoikhoa(i).Replace("#", "0") 
 txtkhoa.Text = doirachu(chuoikhoa(i)) 
 Exit Sub 
 End If 
 Next 
 MessageBox.Show("khong tim duoc khoa") 
 End Sub 
 Private Sub txtbanro_TextChanged(ByVal sender As System.Object, 
ByVal e As System.EventArgs) Handles txtbanro.TextChanged 
 btthamma.Enabled = True 
 lbthongbao.Text = "" 
 End Sub 
 Private Sub txtbanma_TextChanged(ByVal sender As 
System.Object, ByVal e As System.EventArgs) Handles 
txtbanma.TextChanged 
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 
NGÔ THỊ TUYẾT HÀ – T012825 
 btthamma.Enabled = True 
 lbthongbao.Text = "" 
 End Sub 
End Class 

File đính kèm:

  • pdfDA_BaoMatCNTT.pdf
Tài liệu liên quan