Đồ án về bảo mật thông tin - Hệ mã DES
1.Giới thiệu
2.Các hệ mã thông dụng.
3.Lập mã DES
4.Thám mã DES
5.Cài đặc thám mã DES 3 vòng
6.Xử lý
122 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2634 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đồ án Về bảo mật thông tin - Hệ mã DES, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
(j, 1)))
Next
daynhap(i) = y
Next
End Sub
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
Moät soá haøm maõ hoaù
Haøm hoaùn vò ip
Function hvip(ByVal x As String) As String
Dim tam(63) As Char
Dim i As Integer
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
For i = 0 To 63
tam(i) = x.Substring(ip(i) - 1, 1)
Next
Return tam
End Function
Haøm hoaùn vò e
Function hve(ByVal r As String) As String
Dim tam(47) As Char
Dim i As Integer
For i = 0 To 47
tam(i) = r.Substring(e(i) - 1, 1)
Next
Return tam
End Function
Function hvp(ByVal c As String) As String
Dim tam(31) As Char
Dim i As Integer
For i = 0 To 31
tam(i) = c.Substring(p(i) - 1, 1)
Next
Return tam
End Function
Haøm hoaùn vò ip tröø
Function hviptru(ByVal c As String) As String
Dim tam(63) As Char
Dim i As Integer
For i = 0 To 63
tam(ip(i) - 1) = c.Substring(i, 1)
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
Next
Return tam
End Function
Maõ hoaù
Function mahoa() As String
binarynhap()
Dim k As Integer
Dim y As String
For k = 0 To daynhap.Length - 1
'x +=
"0000000100100011010001010110011110001001101010101100110111101111"
x = daynhap(k)
Dim x0 As String = hvip(x)
Dim l(15) As String
Dim r(15) As String
Dim i, j As Integer
Dim l0 As String = x0.Substring(0, 32)
Dim r0 As String = x0.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 15
l(i) = r(i - 1)
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
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
Next i
Dim v As String = hviptru(r(15) + l(15))
y += v
Next k
Return y
End Function
Haøm f
Function f(ByVal r As String, ByVal k As String) As String
Dim i As Integer
Dim e As String
Dim hv As String = hve(r)
For i = 0 To 47
e += (hv.Substring(i, 1) Xor 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 haibitcuoi As String = b(i).Substring(0, 1) + b(i).Substring(5, 1)
Dim bonbitgiua As String = b(i).Substring(1, 4)
Dim srow = thapphan(haibitcuoi)
Dim scol = thapphan(bonbitgiua)
Dim sij As Integer = s(i).Rows(srow).Item(scol)
c += binary(sij)
Next
c = hvp(c)
Return c
End Function
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
Haøm thaäp phaân
Function thapphan(ByVal b As String) As Integer
Dim i As Integer
Dim tam As Integer = 0
For i = 0 To b.Length - 1
If b.Substring(i, 1) = 1 Then
tam += 2 ^ (b.Length - 1 - i)
End If
Next
Return tam
End Function
Haøm nhò phaân
Function binary(ByVal a As Integer) As String
Dim i As Integer
Dim tam(3) As Char
For i = 0 To 3
tam(i) = (a Mod 2).ToString
a = a \ 2
Next
Array.Reverse(tam)
Return tam
End Function
Haøm ñoå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
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
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
#End Region
moät soá haøm duøng ñeå giaûi maõ
taïo baûn maõ nhò phaân
Sub binaybanma()
Dim sodaybanma = txtbanma.Text.Length \ 8
Dim i, j As Integer
Dim tam As String
ReDim daybanma(sodaybanma - 1)
For i = 0 To sodaybanma - 1
daybanma(i) = txtbanma.Text.Substring(i * 8, 8)
tam = ""
For j = 0 To daybanma(i).Length - 1
tam += bi_acsii(Asc(daybanma(i).Substring(j, 1)))
Next
daybanma(i) = tam
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
Next i
End Sub
Haøm giaûi maõ
Function giaima() As String
binaybanma()
Dim k As Integer
x = ""
For k = 0 To daybanma.Length - 1
Dim y0 As String = hvip(daybanma(k))
Dim rr As String = y0.Substring(0, 32)
Dim ll As String = y0.Substring(32, 32)
Dim i, j As Integer
Dim l(15) As String
Dim r(15) As String
r(15) = ll
For i = 0 To 31
l(15) += (rr.Substring(i, 1) Xor f(ll, daykhoa(15)).Substring(i,
1)).ToString
Next
For i = 14 To 0 Step -1
r(i) = l(i + 1)
Dim a As String = f(l(i + 1), daykhoa(i))
For j = 0 To 31
l(i) += (r(i + 1).Substring(j, 1) Xor a.Substring(j, 1)).ToString
Next j
Next i
x += hviptru(l(0) + r(0))
Next k
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
Return x
End Function
Moät soá söï kieän giuùp cho vieäc thöïc thi
Private Sub des_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
khoitao()
End Sub
Private Sub btlapma_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btlapma.Click
khoitao()
If txtchuoinhap.Text = "" Then
MessageBox.Show("Bn hãy nhp vào chui cn mã hoá")
txtchuoinhap.Focus()
Return
End If
If txtkhoak.Text = "" Or txtkhoak.Text.Length < 8 Then
MessageBox.Show("Bn hãy nhp vào khóa :8 kí t")
txtkhoak.Focus()
Return
End If
txtdaykhoa.Text = ""
taodaykhoa()
txtbanmabit.Text = mahoa()
txtbanma.Text = doirachu(mahoa())
End Sub
Private Sub btthoat_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btthoat.Click
Me.Close()
End Sub
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
Private Sub btgiaima_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btgiaima.Click
If txtkhoak.Text = "" Or txtkhoak.Text.Length < 8 Then
MessageBox.Show("Bn hãy nhp khóa : 8 kí t")
txtkhoak.Focus()
Return
End If
If txtbanma.Text = "" Then
MessageBox.Show("Bn hãy nhp vào chui cn gii mã")
txtbanma.Focus()
Return
End If
txtdaykhoa.Text = ""
taodaykhoa()
txtbanrobit.Text = giaima()
txtbanro.Text = doirachu(giaima())
End Sub
End Class
Form thaùm maõ Des (thamma.vb)
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
Imports System.Windows.Forms
Public Class thammades Inherits System.Windows.Forms.Form
Khai baùo moät soá bieán vaø haøm
Dim banro() As String
Dim banma() As String
Dim hve(47) As Integer
Dim hvp(31) As Integer
Dim hvpc2(47) As Integer
Dim hvpc1(55) As Integer
Dim hvip(63) As Integer
Dim e() As String
Dim esao() As String
Dim ephay() As String
Dim cphay() As String
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
Dim jhop(7, 63) As Integer
Dim s(7) As DataTable
Dim chuoikhoa(255) As String
Dim daykhoa(2) As String
Dim n As Integer '6 ban ro va 6 ban ma
Const m = 16 '8 ki tu
Const hebit = 4 'he 256
Dim flag As Boolean
Khôûi taïo
Sub khoitao_s0()
Dim i As Integer
s(0) = New DataTable
For i = 0 To 15
Dim col As DataColumn = New DataColumn
s(0).Columns.Add(col)
Next
For i = 0 To 3
Dim row As DataRow = s(0).NewRow
s(0).Rows.Add(row)
Next
s(0).Rows(0).Item(0) = 14
s(0).Rows(0).Item(1) = 4
s(0).Rows(0).Item(2) = 13
s(0).Rows(0).Item(3) = 1
s(0).Rows(0).Item(4) = 2
s(0).Rows(0).Item(5) = 15
s(0).Rows(0).Item(6) = 11
s(0).Rows(0).Item(7) = 8
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
s(0).Rows(0).Item(8) = 3
s(0).Rows(0).Item(9) = 10
s(0).Rows(0).Item(10) = 6
s(0).Rows(0).Item(11) = 12
s(0).Rows(0).Item(12) = 5
s(0).Rows(0).Item(13) = 9
s(0).Rows(0).Item(14) = 0
s(0).Rows(0).Item(15) = 7
s(0).Rows(1).Item(0) = 0
s(0).Rows(1).Item(1) = 15
s(0).Rows(1).Item(2) = 7
s(0).Rows(1).Item(3) = 4
s(0).Rows(1).Item(4) = 14
s(0).Rows(1).Item(5) = 2
s(0).Rows(1).Item(6) = 13
s(0).Rows(1).Item(7) = 1
s(0).Rows(1).Item(8) = 10
s(0).Rows(1).Item(9) = 6
s(0).Rows(1).Item(10) = 12
s(0).Rows(1).Item(11) = 11
s(0).Rows(1).Item(12) = 9
s(0).Rows(1).Item(13) = 5
s(0).Rows(1).Item(14) = 3
s(0).Rows(1).Item(15) = 8
s(0).Rows(2).Item(0) = 4
s(0).Rows(2).Item(1) = 1
s(0).Rows(2).Item(2) = 14
s(0).Rows(2).Item(3) = 8
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
s(0).Rows(2).Item(4) = 13
s(0).Rows(2).Item(5) = 6
s(0).Rows(2).Item(6) = 2
s(0).Rows(2).Item(7) = 11
s(0).Rows(2).Item(8) = 15
s(0).Rows(2).Item(9) = 12
s(0).Rows(2).Item(10) = 9
s(0).Rows(2).Item(11) = 7
s(0).Rows(2).Item(12) = 3
s(0).Rows(2).Item(13) = 10
s(0).Rows(2).Item(14) = 5
s(0).Rows(2).Item(15) = 0
s(0).Rows(3).Item(0) = 15
s(0).Rows(3).Item(1) = 12
s(0).Rows(3).Item(2) = 8
s(0).Rows(3).Item(3) = 2
s(0).Rows(3).Item(4) = 4
s(0).Rows(3).Item(5) = 9
s(0).Rows(3).Item(6) = 1
s(0).Rows(3).Item(7) = 7
s(0).Rows(3).Item(8) = 5
s(0).Rows(3).Item(9) = 11
s(0).Rows(3).Item(10) = 3
s(0).Rows(3).Item(11) = 14
s(0).Rows(3).Item(12) = 10
s(0).Rows(3).Item(13) = 0
s(0).Rows(3).Item(14) = 6
s(0).Rows(3).Item(15) = 13
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
End Sub
Khôûi taïo haøm s1
Sub khoitao_s1()
Dim i As Integer
s(1) = New DataTable
For i = 0 To 15
Dim col As DataColumn = New DataColumn
s(1).Columns.Add(col)
Next
For i = 0 To 3
Dim row As DataRow = s(1).NewRow
s(1).Rows.Add(row)
Next
s(1).Rows(0).Item(0) = 15
s(1).Rows(0).Item(1) = 1
s(1).Rows(0).Item(2) = 8
s(1).Rows(0).Item(3) = 14
s(1).Rows(0).Item(4) = 6
s(1).Rows(0).Item(5) = 11
s(1).Rows(0).Item(6) = 3
s(1).Rows(0).Item(7) = 4
s(1).Rows(0).Item(8) = 9
s(1).Rows(0).Item(9) = 7
s(1).Rows(0).Item(10) = 2
s(1).Rows(0).Item(11) = 13
s(1).Rows(0).Item(12) = 12
s(1).Rows(0).Item(13) = 0
s(1).Rows(0).Item(14) = 5
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
s(1).Rows(0).Item(15) = 10
s(1).Rows(1).Item(0) = 3
s(1).Rows(1).Item(1) = 13
s(1).Rows(1).Item(2) = 4
s(1).Rows(1).Item(3) = 7
s(1).Rows(1).Item(4) = 15
s(1).Rows(1).Item(5) = 2
s(1).Rows(1).Item(6) = 8
s(1).Rows(1).Item(7) = 14
s(1).Rows(1).Item(8) = 12
s(1).Rows(1).Item(9) = 0
s(1).Rows(1).Item(10) = 1
s(1).Rows(1).Item(11) = 10
s(1).Rows(1).Item(12) = 6
s(1).Rows(1).Item(13) = 9
s(1).Rows(1).Item(14) = 11
s(1).Rows(1).Item(15) = 5
s(1).Rows(2).Item(0) = 0
s(1).Rows(2).Item(1) = 14
s(1).Rows(2).Item(2) = 7
s(1).Rows(2).Item(3) = 11
s(1).Rows(2).Item(4) = 10
s(1).Rows(2).Item(5) = 4
s(1).Rows(2).Item(6) = 13
s(1).Rows(2).Item(7) = 1
s(1).Rows(2).Item(8) = 5
s(1).Rows(2).Item(9) = 8
s(1).Rows(2).Item(10) = 12
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
s(1).Rows(2).Item(11) = 6
s(1).Rows(2).Item(12) = 9
s(1).Rows(2).Item(13) = 3
s(1).Rows(2).Item(14) = 2
s(1).Rows(2).Item(15) = 15
s(1).Rows(3).Item(0) = 13
s(1).Rows(3).Item(1) = 8
s(1).Rows(3).Item(2) = 10
s(1).Rows(3).Item(3) = 1
s(1).Rows(3).Item(4) = 3
s(1).Rows(3).Item(5) = 15
s(1).Rows(3).Item(6) = 4
s(1).Rows(3).Item(7) = 2
s(1).Rows(3).Item(8) = 11
s(1).Rows(3).Item(9) = 6
s(1).Rows(3).Item(10) = 7
s(1).Rows(3).Item(11) = 12
s(1).Rows(3).Item(12) = 0
s(1).Rows(3).Item(13) = 5
s(1).Rows(3).Item(14) = 14
s(1).Rows(3).Item(15) = 9
End Sub
Khôûi taïo haøm s2
Sub khoitao_s2()
Dim i As Integer
s(2) = New DataTable
For i = 0 To 15
Dim col As DataColumn = New DataColumn
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
s(2).Columns.Add(col)
Next
For i = 0 To 3
Dim row As DataRow = s(2).NewRow
s(2).Rows.Add(row)
Next
s(2).Rows(0).Item(0) = 10
s(2).Rows(0).Item(1) = 0
s(2).Rows(0).Item(2) = 9
s(2).Rows(0).Item(3) = 14
s(2).Rows(0).Item(4) = 6
s(2).Rows(0).Item(5) = 3
s(2).Rows(0).Item(6) = 15
s(2).Rows(0).Item(7) = 5
s(2).Rows(0).Item(8) = 1
s(2).Rows(0).Item(9) = 13
s(2).Rows(0).Item(10) = 12
s(2).Rows(0).Item(11) = 7
s(2).Rows(0).Item(12) = 11
s(2).Rows(0).Item(13) = 4
s(2).Rows(0).Item(14) = 2
s(2).Rows(0).Item(15) = 8
s(2).Rows(1).Item(0) = 13
s(2).Rows(1).Item(1) = 7
s(2).Rows(1).Item(2) = 0
s(2).Rows(1).Item(3) = 9
s(2).Rows(1).Item(4) = 3
s(2).Rows(1).Item(5) = 4
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
s(2).Rows(1).Item(6) = 6
s(2).Rows(1).Item(7) = 10
s(2).Rows(1).Item(8) = 2
s(2).Rows(1).Item(9) = 8
s(2).Rows(1).Item(10) = 5
s(2).Rows(1).Item(11) = 14
s(2).Rows(1).Item(12) = 12
s(2).Rows(1).Item(13) = 11
s(2).Rows(1).Item(14) = 15
s(2).Rows(1).Item(15) = 1
s(2).Rows(2).Item(0) = 13
s(2).Rows(2).Item(1) = 6
s(2).Rows(2).Item(2) = 4
s(2).Rows(2).Item(3) = 9
s(2).Rows(2).Item(4) = 8
s(2).Rows(2).Item(5) = 15
s(2).Rows(2).Item(6) = 3
s(2).Rows(2).Item(7) = 0
s(2).Rows(2).Item(8) = 11
s(2).Rows(2).Item(9) = 1
s(2).Rows(2).Item(10) = 2
s(2).Rows(2).Item(11) = 12
s(2).Rows(2).Item(12) = 5
s(2).Rows(2).Item(13) = 10
s(2).Rows(2).Item(14) = 14
s(2).Rows(2).Item(15) = 7
s(2).Rows(3).Item(0) = 1
s(2).Rows(3).Item(1) = 10
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
s(2).Rows(3).Item(2) = 13
s(2).Rows(3).Item(3) = 0
s(2).Rows(3).Item(4) = 6
s(2).Rows(3).Item(5) = 9
s(2).Rows(3).Item(6) = 8
s(2).Rows(3).Item(7) = 7
s(2).Rows(3).Item(8) = 4
s(2).Rows(3).Item(9) = 15
s(2).Rows(3).Item(10) = 14
s(2).Rows(3).Item(11) = 3
s(2).Rows(3).Item(12) = 11
s(2).Rows(3).Item(13) = 5
s(2).Rows(3).Item(14) = 3
s(2).Rows(3).Item(15) = 12
End Sub
Khôûi taïo haøm s3
Sub khoitao_s3()
Dim i As Integer
s(3) = New DataTable
For i = 0 To 15
Dim col As DataColumn = New DataColumn
s(3).Columns.Add(col)
Next
For i = 0 To 3
Dim row As DataRow = s(3).NewRow
s(3).Rows.Add(row)
Next
s(3).Rows(0).Item(0) = 7
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
s(3).Rows(0).Item(1) = 13
s(3).Rows(0).Item(2) = 14
s(3).Rows(0).Item(3) = 3
s(3).Rows(0).Item(4) = 0
s(3).Rows(0).Item(5) = 6
s(3).Rows(0).Item(6) = 9
s(3).Rows(0).Item(7) = 10
s(3).Rows(0).Item(8) = 1
s(3).Rows(0).Item(9) = 2
s(3).Rows(0).Item(10) = 8
s(3).Rows(0).Item(11) = 5
s(3).Rows(0).Item(12) = 11
s(3).Rows(0).Item(13) = 12
s(3).Rows(0).Item(14) = 4
s(3).Rows(0).Item(15) = 15
s(3).Rows(1).Item(0) = 13
s(3).Rows(1).Item(1) = 8
s(3).Rows(1).Item(2) = 11
s(3).Rows(1).Item(3) = 5
s(3).Rows(1).Item(4) = 6
s(3).Rows(1).Item(5) = 15
s(3).Rows(1).Item(6) = 0
s(3).Rows(1).Item(7) = 3
s(3).Rows(1).Item(8) = 4
s(3).Rows(1).Item(9) = 7
s(3).Rows(1).Item(10) = 2
s(3).Rows(1).Item(11) = 12
s(3).Rows(1).Item(12) = 1
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
s(3).Rows(1).Item(13) = 10
s(3).Rows(1).Item(14) = 14
s(3).Rows(1).Item(15) = 9
s(3).Rows(2).Item(0) = 10
s(3).Rows(2).Item(1) = 6
s(3).Rows(2).Item(2) = 9
s(3).Rows(2).Item(3) = 0
s(3).Rows(2).Item(4) = 12
s(3).Rows(2).Item(5) = 11
s(3).Rows(2).Item(6) = 7
s(3).Rows(2).Item(7) = 13
s(3).Rows(2).Item(8) = 15
s(3).Rows(2).Item(9) = 1
s(3).Rows(2).Item(10) = 3
s(3).Rows(2).Item(11) = 14
s(3).Rows(2).Item(12) = 5
s(3).Rows(2).Item(13) = 2
s(3).Rows(2).Item(14) = 8
s(3).Rows(2).Item(15) = 4
s(3).Rows(3).Item(0) = 3
s(3).Rows(3).Item(1) = 15
s(3).Rows(3).Item(2) = 0
s(3).Rows(3).Item(3) = 6
s(3).Rows(3).Item(4) = 10
s(3).Rows(3).Item(5) = 1
s(3).Rows(3).Item(6) = 13
s(3).Rows(3).Item(7) = 8
s(3).Rows(3).Item(8) = 9
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
s(3).Rows(3).Item(9) = 4
s(3).Rows(3).Item(10) = 5
s(3).Rows(3).Item(11) = 11
s(3).Rows(3).Item(12) = 12
s(3).Rows(3).Item(13) = 7
s(3).Rows(3).Item(14) = 2
s(3).Rows(3).Item(15) = 14
End Sub
Khôûi taïo haøm s4
Sub khoitao_s4()
Dim i As Integer
s(4) = New DataTable
For i = 0 To 15
Dim col As DataColumn = New DataColumn
s(4).Columns.Add(col)
Next
For i = 0 To 3
Dim row As DataRow = s(4).NewRow
s(4).Rows.Add(row)
Next
s(4).Rows(0).Item(0) = 2
s(4).Rows(0).Item(1) = 12
s(4).Rows(0).Item(2) = 4
s(4).Rows(0).Item(3) = 1
s(4).Rows(0).Item(4) = 7
s(4).Rows(0).Item(5) = 10
s(4).Rows(0).Item(6) = 11
s(4).Rows(0).Item(7) = 6
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
s(4).Rows(0).Item(8) = 8
s(4).Rows(0).Item(9) = 5
s(4).Rows(0).Item(10) = 3
s(4).Rows(0).Item(11) = 15
s(4).Rows(0).Item(12) = 13
s(4).Rows(0).Item(13) = 0
s(4).Rows(0).Item(14) = 14
s(4).Rows(0).Item(15) = 9
s(4).Rows(1).Item(0) = 14
s(4).Rows(1).Item(1) = 11
s(4).Rows(1).Item(2) = 2
s(4).Rows(1).Item(3) = 12
s(4).Rows(1).Item(4) = 4
s(4).Rows(1).Item(5) = 7
s(4).Rows(1).Item(6) = 13
s(4).Rows(1).Item(7) = 1
s(4).Rows(1).Item(8) = 5
s(4).Rows(1).Item(9) = 0
s(4).Rows(1).Item(10) = 15
s(4).Rows(1).Item(11) = 10
s(4).Rows(1).Item(12) = 3
s(4).Rows(1).Item(13) = 9
s(4).Rows(1).Item(14) = 8
s(4).Rows(1).Item(15) = 6
s(4).Rows(2).Item(0) = 4
s(4).Rows(2).Item(1) = 2
s(4).Rows(2).Item(2) = 1
s(4).Rows(2).Item(3) = 11
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
s(4).Rows(2).Item(4) = 10
s(4).Rows(2).Item(5) = 13
s(4).Rows(2).Item(6) = 7
s(4).Rows(2).Item(7) = 8
s(4).Rows(2).Item(8) = 15
s(4).Rows(2).Item(9) = 9
s(4).Rows(2).Item(10) = 12
s(4).Rows(2).Item(11) = 5
s(4).Rows(2).Item(12) = 6
s(4).Rows(2).Item(13) = 3
s(4).Rows(2).Item(14) = 0
s(4).Rows(2).Item(15) = 14
s(4).Rows(3).Item(0) = 11
s(4).Rows(3).Item(1) = 8
s(4).Rows(3).Item(2) = 12
s(4).Rows(3).Item(3) = 7
s(4).Rows(3).Item(4) = 0
s(4).Rows(3).Item(5) = 14
s(4).Rows(3).Item(6) = 2
s(4).Rows(3).Item(7) = 13
s(4).Rows(3).Item(8) = 6
s(4).Rows(3).Item(9) = 15
s(4).Rows(3).Item(10) = 0
s(4).Rows(3).Item(11) = 9
s(4).Rows(3).Item(12) = 10
s(4).Rows(3).Item(13) = 4
s(4).Rows(3).Item(14) = 5
s(4).Rows(3).Item(15) = 3
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
End Sub
Khôûi taïo haøm s5
Sub khoitao_s5()
Dim i As Integer
s(5) = New DataTable
For i = 0 To 15
Dim col As DataColumn = New DataColumn
s(5).Columns.Add(col)
Next
For i = 0 To 3
Dim row As DataRow = s(5).NewRow
s(5).Rows.Add(row)
Next
s(5).Rows(0).Item(0) = 12
s(5).Rows(0).Item(1) = 1
s(5).Rows(0).Item(2) = 10
s(5).Rows(0).Item(3) = 15
s(5).Rows(0).Item(4) = 9
s(5).Rows(0).Item(5) = 2
s(5).Rows(0).Item(6) = 6
s(5).Rows(0).Item(7) = 8
s(5).Rows(0).Item(8) = 0
s(5).Rows(0).Item(9) = 13
s(5).Rows(0).Item(10) = 3
s(5).Rows(0).Item(11) = 4
s(5).Rows(0).Item(12) = 14
s(5).Rows(0).Item(13) = 7
s(5).Rows(0).Item(14) = 5
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
s(5).Rows(0).Item(15) = 11
s(5).Rows(1).Item(0) = 10
s(5).Rows(1).Item(1) = 15
s(5).Rows(1).Item(2) = 4
s(5).Rows(1).Item(3) = 2
s(5).Rows(1).Item(4) = 7
s(5).Rows(1).Item(5) = 12
s(5).Rows(1).Item(6) = 9
s(5).Rows(1).Item(7) = 5
s(5).Rows(1).Item(8) = 6
s(5).Rows(1).Item(9) = 1
s(5).Rows(1).Item(10) = 13
s(5).Rows(1).Item(11) = 14
s(5).Rows(1).Item(12) = 0
s(5).Rows(1).Item(13) = 11
s(5).Rows(1).Item(14) = 3
s(5).Rows(1).Item(15) = 8
s(5).Rows(2).Item(0) = 9
s(5).Rows(2).Item(1) = 14
s(5).Rows(2).Item(2) = 15
s(5).Rows(2).Item(3) = 5
s(5).Rows(2).Item(4) = 2
s(5).Rows(2).Item(5) = 8
s(5).Rows(2).Item(6) = 12
s(5).Rows(2).Item(7) = 3
s(5).Rows(2).Item(8) = 7
s(5).Rows(2).Item(9) = 0
s(5).Rows(2).Item(10) = 4
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
s(5).Rows(2).Item(11) = 10
s(5).Rows(2).Item(12) = 1
s(5).Rows(2).Item(13) = 13
s(5).Rows(2).Item(14) = 11
s(5).Rows(2).Item(15) = 6
s(5).Rows(3).Item(0) = 4
s(5).Rows(3).Item(1) = 3
s(5).Rows(3).Item(2) = 2
s(5).Rows(3).Item(3) = 12
s(5).Rows(3).Item(4) = 9
s(5).Rows(3).Item(5) = 5
s(5).Rows(3).Item(6) = 15
s(5).Rows(3).Item(7) = 10
s(5).Rows(3).Item(8) = 11
s(5).Rows(3).Item(9) = 14
s(5).Rows(3).Item(10) = 1
s(5).Rows(3).Item(11) = 7
s(5).Rows(3).Item(12) = 6
s(5).Rows(3).Item(13) = 0
s(5).Rows(3).Item(14) = 8
s(5).Rows(3).Item(15) = 13
End Sub
Khôûi taïo haøm s6
Sub khoitao_s6()
Dim i As Integer
s(6) = New DataTable
For i = 0 To 15
Dim col As DataColumn = New DataColumn
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
s(6).Columns.Add(col)
Next
For i = 0 To 3
Dim row As DataRow = s(6).NewRow
s(6).Rows.Add(row)
Next
s(6).Rows(0).Item(0) = 4
s(6).Rows(0).Item(1) = 11
s(6).Rows(0).Item(2) = 2
s(6).Rows(0).Item(3) = 14
s(6).Rows(0).Item(4) = 15
s(6).Rows(0).Item(5) = 0
s(6).Rows(0).Item(6) = 8
s(6).Rows(0).Item(7) = 13
s(6).Rows(0).Item(8) = 3
s(6).Rows(0).Item(9) = 12
s(6).Rows(0).Item(10) = 9
s(6).Rows(0).Item(11) = 7
s(6).Rows(0).Item(12) = 5
s(6).Rows(0).Item(13) = 10
s(6).Rows(0).Item(14) = 6
s(6).Rows(0).Item(15) = 1
s(6).Rows(1).Item(0) = 13
s(6).Rows(1).Item(1) = 0
s(6).Rows(1).Item(2) = 11
s(6).Rows(1).Item(3) = 7
s(6).Rows(1).Item(4) = 4
s(6).Rows(1).Item(5) = 9
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
s(6).Rows(1).Item(6) = 1
s(6).Rows(1).Item(7) = 10
s(6).Rows(1).Item(8) = 14
s(6).Rows(1).Item(9) = 3
s(6).Rows(1).Item(10) = 5
s(6).Rows(1).Item(11) = 12
s(6).Rows(1).Item(12) = 2
s(6).Rows(1).Item(13) = 15
s(6).Rows(1).Item(14) = 8
s(6).Rows(1).Item(15) = 6
s(6).Rows(2).Item(0) = 1
s(6).Rows(2).Item(1) = 4
s(6).Rows(2).Item(2) = 11
s(6).Rows(2).Item(3) = 13
s(6).Rows(2).Item(4) = 12
s(6).Rows(2).Item(5) = 3
s(6).Rows(2).Item(6) = 7
s(6).Rows(2).Item(7) = 14
s(6).Rows(2).Item(8) = 10
s(6).Rows(2).Item(9) = 15
s(6).Rows(2).Item(10) = 6
s(6).Rows(2).Item(11) = 8
s(6).Rows(2).Item(12) = 0
s(6).Rows(2).Item(13) = 5
s(6).Rows(2).Item(14) = 9
s(6).Rows(2).Item(15) = 2
s(6).Rows(3).Item(0) = 6
s(6).Rows(3).Item(1) = 11
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
s(6).Rows(3).Item(2) = 13
s(6).Rows(3).Item(3) = 8
s(6).Rows(3).Item(4) = 1
s(6).Rows(3).Item(5) = 4
s(6).Rows(3).Item(6) = 10
s(6).Rows(3).Item(7) = 7
s(6).Rows(3).Item(8) = 9
s(6).Rows(3).Item(9) = 5
s(6).Rows(3).Item(10) = 0
s(6).Rows(3).Item(11) = 15
s(6).Rows(3).Item(12) = 14
s(6).Rows(3).Item(13) = 2
s(6).Rows(3).Item(14) = 3
s(6).Rows(3).Item(15) = 12
End Sub
Khôûi taïo haøm s7
Sub khoitao_s7()
Dim i As Integer
s(7) = New DataTable
For i = 0 To 15
Dim col As DataColumn = New DataColumn
s(7).Columns.Add(col)
Next
For i = 0 To 3
Dim row As DataRow = s(7).NewRow
s(7).Rows.Add(row)
Next
s(7).Rows(0).Item(0) = 13
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
s(7).Rows(0).Item(1) = 2
s(7).Rows(0).Item(2) = 8
s(7).Rows(0).Item(3) = 4
s(7).Rows(0).Item(4) = 6
s(7).Rows(0).Item(5) = 15
s(7).Rows(0).Item(6) = 11
s(7).Rows(0).Item(7) = 1
s(7).Rows(0).Item(8) = 10
s(7).Rows(0).Item(9) = 9
s(7).Rows(0).Item(10) = 3
s(7).Rows(0).Item(11) = 14
s(7).Rows(0).Item(12) = 5
s(7).Rows(0).Item(13) = 0
s(7).Rows(0).Item(14) = 12
s(7).Rows(0).Item(15) = 7
s(7).Rows(1).Item(0) = 1
s(7).Rows(1).Item(1) = 15
s(7).Rows(1).Item(2) = 13
s(7).Rows(1).Item(3) = 8
s(7).Rows(1).Item(4) = 10
s(7).Rows(1).Item(5) = 3
s(7).Rows(1).Item(6) = 7
s(7).Rows(1).Item(7) = 4
s(7).Rows(1).Item(8) = 12
s(7).Rows(1).Item(9) = 5
s(7).Rows(1).Item(10) = 6
s(7).Rows(1).Item(11) = 11
s(7).Rows(1).Item(12) = 0
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
s(7).Rows(1).Item(13) = 14
s(7).Rows(1).Item(14) = 9
s(7).Rows(1).Item(15) = 2
s(7).Rows(2).Item(0) = 7
s(7).Rows(2).Item(1) = 11
s(7).Rows(2).Item(2) = 4
s(7).Rows(2).Item(3) = 1
s(7).Rows(2).Item(4) = 9
s(7).Rows(2).Item(5) = 12
s(7).Rows(2).Item(6) = 14
s(7).Rows(2).Item(7) = 2
s(7).Rows(2).Item(8) = 0
s(7).Rows(2).Item(9) = 6
s(7).Rows(2).Item(10) = 10
s(7).Rows(2).Item(11) = 13
s(7).Rows(2).Item(12) = 15
s(7).Rows(2).Item(13) = 3
s(7).Rows(2).Item(14) = 5
s(7).Rows(2).Item(15) = 8
s(7).Rows(3).Item(0) = 2
s(7).Rows(3).Item(1) = 1
s(7).Rows(3).Item(2) = 14
s(7).Rows(3).Item(3) = 7
s(7).Rows(3).Item(4) = 4
s(7).Rows(3).Item(5) = 10
s(7).Rows(3).Item(6) = 8
s(7).Rows(3).Item(7) = 13
s(7).Rows(3).Item(8) = 15
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
s(7).Rows(3).Item(9) = 12
s(7).Rows(3).Item(10) = 9
s(7).Rows(3).Item(11) = 0
s(7).Rows(3).Item(12) = 3
s(7).Rows(3).Item(13) = 5
s(7).Rows(3).Item(14) = 6
s(7).Rows(3).Item(15) = 11
End Sub
Khôûi taïo hoaùn vò e
Sub khoitao_hve()
hve(0) = 32
hve(1) = 1
hve(2) = 2
hve(3) = 3
hve(4) = 4
hve(5) = 5
hve(6) = 4
hve(7) = 5
hve(8) = 6
hve(9) = 7
hve(10) = 8
hve(11) = 9
hve(12) = 8
hve(13) = 9
hve(14) = 10
hve(15) = 11
hve(16) = 12
hve(17) = 13
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
hve(18) = 12
hve(19) = 13
hve(20) = 14
hve(21) = 15
hve(22) = 16
hve(23) = 17
hve(24) = 16
hve(25) = 17
hve(26) = 18
hve(27) = 19
hve(28) = 20
hve(29) = 21
hve(30) = 20
hve(31) = 21
hve(32) = 22
hve(33) = 23
hve(34) = 24
hve(35) = 25
hve(36) = 24
hve(37) = 25
hve(38) = 26
hve(39) = 27
hve(40) = 28
hve(41) = 29
hve(42) = 28
hve(43) = 29
hve(44) = 30
hve(45) = 31
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
hve(46) = 32
hve(47) = 1
End Sub
Khôûi taïo hoaùn vò p
Sub khoitao_hvp()
hvp(0) = 16
hvp(1) = 7
hvp(2) = 20
hvp(3) = 21
hvp(4) = 29
hvp(5) = 12
hvp(6) = 28
hvp(7) = 17
hvp(8) = 1
hvp(9) = 15
hvp(10) = 23
hvp(11) = 26
hvp(12) = 5
hvp(13) = 18
hvp(14) = 31
hvp(15) = 10
hvp(16) = 2
hvp(17) = 8
hvp(18) = 24
hvp(19) = 14
hvp(20) = 32
hvp(21) = 27
hvp(22) = 3
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
hvp(23) = 9
hvp(24) = 19
hvp(25) = 13
hvp(26) = 30
hvp(27) = 6
hvp(28) = 22
hvp(29) = 11
hvp(30) = 4
hvp(31) = 25
End Sub
Khôûi taïo hoaùn vò pc2
Sub khoitao_hvpc2()
hvpc2(0) = 14
hvpc2(1) = 17
hvpc2(2) = 11
hvpc2(3) = 24
hvpc2(4) = 1
hvpc2(5) = 5
hvpc2(6) = 3
hvpc2(7) = 28
hvpc2(8) = 15
hvpc2(9) = 6
hvpc2(10) = 21
hvpc2(11) = 10
hvpc2(12) = 23
hvpc2(13) = 19
hvpc2(14) = 12
hvpc2(15) = 4
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
hvpc2(16) = 26
hvpc2(17) = 8
hvpc2(18) = 16
hvpc2(19) = 7
hvpc2(20) = 27
hvpc2(21) = 20
hvpc2(22) = 13
hvpc2(23) = 2
hvpc2(24) = 41
hvpc2(25) = 52
hvpc2(26) = 31
hvpc2(27) = 37
hvpc2(28) = 47
hvpc2(29) = 55
hvpc2(30) = 30
hvpc2(31) = 40
hvpc2(32) = 51
hvpc2(33) = 45
hvpc2(34) = 33
hvpc2(35) = 48
hvpc2(36) = 44
hvpc2(37) = 49
hvpc2(38) = 39
hvpc2(39) = 56
hvpc2(40) = 34
hvpc2(41) = 53
hvpc2(42) = 46
hvpc2(43) = 42
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
hvpc2(44) = 50
hvpc2(45) = 36
hvpc2(46) = 29
hvpc2(47) = 32
End Sub
Khôûi taïo hoaù vò pc1
Sub khoitao_hvpc1()
hvpc1(0) = 57
hvpc1(1) = 49
hvpc1(2) = 41
hvpc1(3) = 33
hvpc1(4) = 25
hvpc1(5) = 17
hvpc1(6) = 9
hvpc1(7) = 1
hvpc1(8) = 58
hvpc1(9) = 50
hvpc1(10) = 42
hvpc1(11) = 34
hvpc1(12) = 26
hvpc1(13) = 18
hvpc1(14) = 10
hvpc1(15) = 2
hvpc1(16) = 59
hvpc1(17) = 51
hvpc1(18) = 43
hvpc1(19) = 35
hvpc1(20) = 27
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
hvpc1(21) = 19
hvpc1(22) = 11
hvpc1(23) = 3
hvpc1(24) = 60
hvpc1(25) = 52
hvpc1(26) = 44
hvpc1(27) = 36
hvpc1(28) = 63
hvpc1(29) = 55
hvpc1(30) = 47
hvpc1(31) = 39
hvpc1(32) = 31
hvpc1(33) = 23
hvpc1(34) = 15
hvpc1(35) = 7
hvpc1(36) = 62
hvpc1(37) = 54
hvpc1(38) = 46
hvpc1(39) = 38
hvpc1(40) = 30
hvpc1(41) = 22
hvpc1(42) = 14
hvpc1(43) = 6
hvpc1(44) = 61
hvpc1(45) = 53
hvpc1(46) = 45
hvpc1(47) = 37
hvpc1(48) = 29
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
hvpc1(49) = 21
hvpc1(50) = 13
hvpc1(51) = 5
hvpc1(52) = 28
hvpc1(53) = 20
hvpc1(54) = 12
hvpc1(55) = 4
End Sub
Khôûi taïo hoaù vò ip
Sub khoitao_hvip()
hvip(0) = 58
hvip(1) = 50
hvip(2) = 42
hvip(3) = 34
hvip(4) = 26
hvip(5) = 18
hvip(6) = 10
hvip(7) = 2
hvip(8) = 60
hvip(9) = 52
hvip(10) = 44
hvip(11) = 36
hvip(12) = 28
hvip(13) = 20
hvip(14) = 12
hvip(15) = 4
hvip(16) = 62
hvip(17) = 54
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
hvip(18) = 46
hvip(19) = 38
hvip(20) = 30
hvip(21) = 22
hvip(22) = 14
hvip(23) = 6
hvip(24) = 64
hvip(25) = 56
hvip(26) = 48
hvip(27) = 40
hvip(28) = 32
hvip(29) = 24
hvip(30) = 16
hvip(31) = 8
hvip(32) = 57
hvip(33) = 49
hvip(34) = 41
hvip(35) = 33
hvip(36) = 25
hvip(37) = 17
hvip(38) = 9
hvip(39) = 1
hvip(40) = 59
hvip(41) = 51
hvip(42) = 43
hvip(43) = 35
hvip(44) = 27
hvip(45) = 19
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
hvip(46) = 11
hvip(47) = 3
hvip(48) = 61
hvip(49) = 53
hvip(50) = 45
hvip(51) = 37
hvip(52) = 29
hvip(53) = 21
hvip(54) = 13
hvip(55) = 5
hvip(56) = 63
hvip(57) = 55
hvip(58) = 47
hvip(59) = 39
hvip(60) = 31
hvip(61) = 23
hvip(62) = 15
hvip(63) = 7
End Sub
Khôûi taïo caùc haøm
Sub khoitao()
khoitao_s0()
khoitao_s1()
khoitao_s2()
khoitao_s3()
khoitao_s4()
khoitao_s5()
khoitao_s6()
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
khoitao_s7()
khoitao_hve()
khoitao_hvp()
khoitao_hvpc2()
khoitao_hvpc1()
khoitao_hvip()
End Sub
caùc haøm hoaùn vò
Haøm hoaùn vò ip
Function hoanvi_ip(ByVal x As String) As String
Dim tam(63) As Char
Dim i As Integer
For i = 0 To 63
tam(i) = x.Substring(hvip(i) - 1, 1)
Next
Return tam
End Function
Haøm hoaùn vò iptru
Function hoanvi_iptru(ByVal c As String) As String
Dim tam(63) As Char
Dim i As Integer
For i = 0 To 63
tam(hvip(i) - 1) = c.Substring(i, 1)
Next
Return tam
End Function
Haøm hoaùn vò e
Function hoanvi_e(ByVal r As String) As String
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
Dim tam(47) As Char
Dim i As Integer
For i = 0 To 47
tam(i) = r.Substring(hve(i) - 1, 1)
Next
Return tam
End Function
Haøm hoaùn vò p
Function hoanvi_p(ByVal c As String) As String
Dim tam(31) As Char
Dim i As Integer
For i = 0 To 31
tam(i) = c.Substring(hvp(i) - 1, 1)
Next
Return tam
End Function
Haøm hoaùn vò ptru
Function hoanvi_ptru(ByVal c As String) As String
Dim tam(31) As Char
Dim i As Integer
For i = 0 To 31
tam(hvp(i) - 1) = c.Substring(i, 1)
Next
Return tam
End Function
Haøm hoaùn vò pc1
Function hoanvi_pc1(ByVal k As String) As String
Dim tam(63) As Char
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
Dim i As Integer
For i = 0 To 63
tam(i) = k.Substring(i, 1)
Next
tam = catbitcuoi(tam)
For i = 0 To 55
tam(i) = k.Substring(Integer.Parse(hvpc1(i) - 1), 1)
Next
Return tam
End Function
Haøm hoaùn vò pc1tru
Function hoanvi_pc1tru(ByVal c As String) As String
Dim tam(63) As Char
Dim i As Integer
For i = 0 To 63
tam(i) = "#"
Next
For i = 0 To 55
tam(hvpc1(i) - 1) = c.Substring(i, 1)
Next
Dim tam1 As String
Return tam
End Function
Haøm hoaùn vò pc2
Function hoanvi_pc2(ByVal str As String) As String
Dim tam(47) As Char
Dim i As Integer
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
For i = 0 To 47
tam(i) = str.Substring(Integer.Parse(hvpc2(i) - 1), 1)
Next
Return tam
End Function
Haøm hoaùn vò pc2tru
Function hoanvi_pc2tru(ByVal c As String) As String
Dim tam(55) As Char
Dim i As Integer
For i = 0 To 55
tam(i) = "?"
Next
For i = 0 To 47
tam(hvpc2(i) - 1) = c.Substring(i, 1)
Next
Return tam
End Function
gan va kiem tra du lieu nhap
haøm gaùn döõ lieäu
Function gandulieu() As Boolean
Try
Dim i As Integer = 0
Dim j As Integer
Dim strbanro As String = txtbanro.Text.Replace(Chr(10), "")
Dim strbanma As String = txtbanma.Text.Replace(Chr(10), "")
banro = strbanro.Split(Chr(13))
banma = strbanma.Split(Chr(13))
n = banro.Length - 1
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
ReDim e((n - 1) / 2)
ReDim esao((n - 1) / 2)
ReDim ephay((n - 1) / 2)
ReDim cphay((n - 1) / 2)
If (banro.Length - 1 < n Or banma.Length - 1 < n) Then
MessageBox.Show("thiu bn rõ hay bn mã")
Return False
Else
Return True
End If
Catch ex As Exception
MessageBox.Show("D liu nhp không hp l")
Return False
End Try
End Function
Haøm kieåm tra
Function kiemtra() As Boolean
Dim i As Integer
For i = 0 To n
If banro(i) = "" Then
MessageBox.Show("baïn nhaäp chöa ñuû " & (i + 1))
Return False
End If
If banro(i).Length m Then
MessageBox.Show( (i + 1) & m )
Return False
End If
Next
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
For i = 0 To n
If banma(i) = "" Then
MessageBox.Show("Bn hãy nhp vào bn mã th " & (i +
1))
Return False
End If
If banma(i).Length m Then
MessageBox.Show("Bn mã " & (i + 1) & " phi có " & m
& " kí t")
Return False
End If
Next
i = 0
While i <= n
If banro(i).Substring(m / 2, m / 2) banro(i + 1).Substring(m / 2, m / 2)
Then
MessageBox.Show("D liu bn rõ " & (i + 1) & " , " & (i + 2) & "
nhp không hp l")
Return False
End If
i = i + 2
End While
Return True
End Function
xu li e_esao_ephay_cphay
xöû lyù e, e sao, e phaåy
Sub xuli_e_esao_ephay()
Dim i As Integer
'e(0)=
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
"000000000111111000001110100000000110100000001100"
'e(1)=
"101000001011111111110100000101010000001011110110"
'e(2)=
"111011110001010100000110100011110110100101011111"
'esao(0)="101111110000001010101100000001010100000001010010"
'esao(1)="100010100110101001011110101111110010100010101010"
'esao(2) = "000001011110100110100010101111110101011000000100"
For i = 0 To (n - 1) / 2
Dim l3 = banma(i * 2).Substring(0, 32)
Dim l3sao = banma(i * 2 + 1).Substring(0, 32)
e(i) = hoanvi_e(l3)
esao(i) = hoanvi_e(l3sao)
ephay(i) = phay(e(i), esao(i))
Next
End Sub
Function phay(ByVal a As String, ByVal b As String) As String
Dim i As Integer
Dim c As String
For i = 0 To a.Length - 1
c += (a.Substring(i, 1) Xor b.Substring(i, 1)).ToString
Next
Return c
End Function
Xöû lyù c phaåy
Sub xuli_cphay()
Dim i, j As Integer
For i = 0 To (n - 1) / 2
Dim r3 As String = banma(i * 2).Substring(32, 32)
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
Dim r3sao As String = banma(i * 2 + 1).Substring(32, 32)
Dim l0 As String = banro(i * 2).Substring(0, 32)
Dim l0sao As String = banro(i * 2 + 1).Substring(0, 32)
Dim r3phay As String = ""
Dim l0phay As String = ""
For j = 0 To 31
r3phay += (r3.Substring(j, 1) Xor r3sao.Substring(j, 1)).ToString
l0phay += (l0.Substring(j, 1) Xor l0sao.Substring(j, 1)).ToString
cphay(i) += (r3phay.Substring(j, 1) Xor l0phay.Substring(j,
1)).ToString
Next
cphay(i) = hoanvi_ptru(cphay(i))
Next
'cphay(0) = "10010110010111010101101101100111"
'cphay(1) = "10011100100111000001111101010110"
'cphay(2) = "11010101011101011101101100101011"
End Sub
cac ham chuyen doi
Function bi_str(ByVal a As String) As String
Dim i As Integer
Dim b As String
For i = 0 To a.Length - 1
b += binary(asc(a.Substring(i, 1)), hebit)
Next
Return b
End Function
Sub bi_banro_banma()
Dim i As Integer
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
For i = 0 To n
banro(i) = bi_str(banro(i))
banma(i) = bi_str(banma(i))
Next
End Sub
Function bi_so(ByVal a As Integer) As String
Dim i As Integer
Dim tam(5) As Char
For i = 0 To 5
tam(i) = (a Mod 2).ToString
a \= 2
Next
Array.Reverse(tam)
Return tam
End Function
Function thapphan(ByVal b As String) As Integer
Dim i As Integer
Dim tam As Integer = 0
For i = 0 To b.Length - 1
If b.Substring(i, 1) = 1 Then
tam += 2 ^ (b.Length - 1 - i)
End If
Next
Return tam
End Function
Function binary(ByVal a As Integer, ByVal n As Integer) As String
Dim i As Integer
Dim tam(n - 1) As Char
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
For i = 0 To n - 1
tam(i) = (a Mod 2).ToString
a = a \ 2
Next
Array.Reverse(tam)
Return tam
End Function
Haøm taïo taäp test
Function tap_test() As String()
Dim i, j, k As Integer
Dim ee(7) As String
Dim eephay(7) As String
Dim ccphay(7) As String
Dim test(63) As String
For i = 0 To (n - 1) / 2
For j = 0 To 7
ee(j) = e(i).Substring(j * 6, 6)
eephay(j) = ephay(i).Substring(j * 6, 6)
ccphay(j) = cphay(i).Substring(j * 4, 4)
test = tap_in(ee(j), eephay(j), ccphay(j), s(j))
For k = 0 To 63
If test(k) = 1 Then
jhop(j, k) += 1
End If
Next
Next
Next
End Function
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
Haøm taïo khoaù voøng 3
Function khoavong3() As String
Dim khoav3 As String
Dim i, j As Integer
Dim count As Integer = 0
Dim vitrimax As Integer
For i = 0 To 7
count = 0
Dim max As Integer = (n + 1) / 2
For j = 0 To 63
If jhop(i, j) = max Then
count += 1
vitrimax = j
End If
Next
If count > 1 Then
lbthongbao.Text = "Nhp thêm bn mã và bn rõ, vì cha xác
đnh đc phn t max trong jhp"
btthamma.Enabled = False
txtbanro.Focus()
n += 2
ReDim banro(n)
ReDim banma(n)
ReDim e((n - 2) / 2)
ReDim esao((n - 2) / 2)
ReDim ephay((n - 2) / 2)
ReDim cphay((n - 2) / 2)
flag = False
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
Exit Function
End If
khoav3 += binary(vitrimax, 6)
Next
txtkhoav3.Text = khoav3
Return khoav3
End Function
Haøm Xöû lyù khoaù
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
Haøm taïo chuoãi khoaù
Sub taochuoikhoa(ByVal c As String)
If flag = False Then
Exit Sub
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – 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
Haøm taïo töøng khoaù
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
Haøm dòch phaû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()
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – 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
Moät soá Haøm cho xöû lyù söï kieän
Private Sub btthamma_Click(ByVal sender As System.Object,
ByVal ee As System.EventArgs) Handles btthamma.Click
ReDim banro(n)
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – 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
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – 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
Haøm caét bit cuoá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)
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – 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
Haøm taïo daõy khoaù
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))
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
Next i
End Sub
Haøm xöû lyù chuoãi nhaä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
Haøm maõ hoaù
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)
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – 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
Haøm taïo haø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)
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
Next
Return hoanvi_p(c)
End Function
Haøm ñoå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
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – 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öõ caù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"
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – 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
Haøm chuyeån maõ asc
Function asc(ByVal a As Char)
Select Case a
Case "0"
asc = 0
Case "1"
asc = 1
Case "2"
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – 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
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
End Function
Haøm choïn khoaù
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
ÑOÀ AÙN BAÛO MAÄT THOÂNG TIN HEÄ MAÕ DES
NGOÂ THÒ TUYEÁT HAØ – T012825
btthamma.Enabled = True
lbthongbao.Text = ""
End Sub
End Class
Các file đính kèm theo tài liệu này:
- Đồ án về bảo mật thông tin - Hệ mã DES.pdf