HÒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN MA HOA VIGENER + RSA Hoc phan: Bao mat va an ninh mang Thanh Phố Hỗ Chí Minh, ngày 14 tháng 04 năm 2023... Ma héa Vigener ® Nhap van ban can ma héa:
Trang 1Thanh Phố Hỗ Chí Minh, ngày 11 tháng 04 năm 2023
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM TP HÒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN
MA HOA VIGENER + RSA
Hoc phan: Bao mat va an ninh mang
Thanh Phố Hỗ Chí Minh, ngày 14 tháng 04 năm 2023
Trang 2BO GIAO DUC VA DAO TAO TRUONG DAI HOC SU PHAM TP HO CHi MINH KHOA CONG NGHE THONG TIN
MA HOA VIGENER + RSA
Hoc phan: Bao mat va an ninh mang
Nhóm sinh viên thực hiện: NHÓM Zero9
46.01.104.179 Mạc Đỉnh Thy
46.01.104.029 Chống Chí Dinh
46.01.104.057 Nguyễn Thế Hoàng
46.01.104.131 Nguyễn Ngọc Yến Nhi
46.01.104.150 Mai Tứ Quý
Mã lớp: 2221COMPL04901
Giảng viên hướng dẫn: ThS Lương Trần Hy Hiến
Thanh Phố Hỗ Chí Minh, ngày 14 tháng 04 năm 2023
Trang 3I Ma héa Vigener
® Nhap van ban can ma héa:
Kết quả giải mã:
® Nhập Key để mã hóa:
Văn bản cân mã hóa: bảo mật an ninh mạng Mã hóa
Kết quả giải mã:
e Bắt dầu mã hóa:
e Nếu không nhập key thì sẽ hiện thông báo:
Trang 4Key mã hóa:
Kết quả mã hóa:
Kết quả giải mã:
A Please enter a key
® Sau khi nhập đúng key mã hóa:
sử) Mã hóa Vigener
Văn bản cần mã hóa: bảo mật an ninh mạng
Key mã hóa: bmanm
Kết quả mã hóa: ioo ady mn audd méad
Kết quả giải mã:
® Bat dau giai ma:
e Nếu không nhập key thì sẽ hiện thông báo:
Giải mã
Xóa
Giải mã
Trang 5BS Mã hóa Vigener n
Văn bản cần mã hóa: bảomậtannnhmag =- Mã hóa
Kêt quả mã hóa: foo adymnaygdmoad —
Kết quả giải mã:
A Please enter a key
se Nếu không nhập đúng key thì sẽ cho ra kết quả khác:
Văn bản cần mã hóa: bảomậtannnhmag - Mã hóa
Kết quả giải mã: ìòò àđý no ảvpự noàö
¢ Nếu nhập đúng key:
Trang 6sử) Mã hóa Vigener
Văn bản cần mã hóa: bảo mật an ninh mạng Mã hóa
Kết quả mã hóa: ioo aðỹ mn àwđứ móaô
Kết quả giải mã: bảo mật an ninh mạng
Code phần mã hóa Vigener:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Ling;
using System Text;
using System.Windows.Forms;
namespace VidVigener
public partial class Vigener : Form
public VigenerQ)
InitializeComponent();
}
private string[] alphabet = — {"a HH "à " a", wan wan "a", wan "nàn, wan wan wan "a", wan wan
"ẩn nặn, nấu, mg"
"b", "ch", "q", "8", "nen, nàn, "êm, "en wen "e", nen nen wen neu wen "ệ",
"g", "h", ue tì, oe 7H ue "ị, "kh", Nà "m", "nh", "oO", tò", "en "6B", "6", nan QO,
‘ nen "ồ", ugu ux 6", 6", 6", "ộ", to" tờ", nen "tố", "ớ", "og", nan Hàn H p", "gq", r", Mgt
me
- „ "on, "ù", "ủ", "ũ", "ú", "ụ", "ự", "ừ", "ử", "ữ", "ứ", "uo "vu", "X", "y", "yy",
"ở", yy", "ý", "yt };
private string Vigenere(string text, string key, bool encrypt)
text = text.ToLower();
key = key.ToLower();
int keylndex = 0;
StringBuilder result = new StringBuilder();
for (inti = 0; ¡ < text.Length; i++)
char c = text[il;
if (Ichar.IsLetter(C))
{
Trang 7result.Append(c);
continue;
int x = Array.IndexOf(alphabet, c.ToString());
int y = Array.IndexOf(alphabet, key[keylndex].ToString());
int Z;
if (encrypt)
‘ z= (x + y) % alphabet.Length:
else
z = (x- y + alphabet.Length) % alphabet.Length;
result Append(alphabet[z]);
keylndex = (keylndex + 1) % key.Length;
}
return result.ToString();
}
private void btnEncrypt_Click(object sender, EventArgs e)
string plainText = txtlnput Iext;
string key = txtKey.Text;
if (string.IsNullOrEmpty(key))
MessageBox.Show("Please enter a key.", "Warning", MessageBoxButtons.OK, MessageBoxlcon.Warning);
return;
string cipherText = Vigenere(plainText, key, true);
txtKQMaHoa.Text = cipherText;
private void btnGiaiMa_Click(object sender, EventArgs e)
string cipherText = txtKQMaHoa Text;
string key = txtKey.Text;
if (string.IsNullOrEmpty(key))
MessageBox.Show("Please enter a key.", "Warning", MessageBoxButtons.OK, MessageBoxlcon.Warning);
return;
string plaintext = Vigenere(cipherText, key, false);
IbKQGiaiMa.Text = plainText;
private void btnXoa_Click(object sender, EventArgs e)
Trang 8txtlnput.Text = "";
txtInput.Focus();
txtKey.Text = "";
txtKQMaHoa Text = "";
IbKQGiaiMa.Text = "";
H Mã hóa RSA
©_ Nhập văn bản cần mã hóa:
sử Mã hóa RSA
Văn bản cần mã hóa: bảo mật an ninh mạng
Kết quả mã hóa:
Kết quả giải mã:
e Bắt đầu mã hóa:
a! Ma héa RSA
Văn bản cần mã hóa: bảo mật an ninh mang
Kết quả mã hóa: h2mZEFksgyav/nTE94E9NS4qLNcN3'
Kết quả giải mã:
Kết quả mã hóa:
Mã hóa
Giải mã
Xóa
Giải mã
Xóa
h2mZEFkseyav/nTE94E9NS4qLNcN3vu8§ZXctALSq5ow+45fOYNY77TCY+cbL74 MIVL9RtFKKuqVkwJDnp54CGfVxTIrDWo/kA7§8aMWWmAgqrcQqQcV/l6Ksz4IKPf I9hKqYggzZu2RPF0OtLCUqL+DXzPNz2L0ZzFdePL6RflebYY=
Trang 9e Bat dâu giải mã:
Văn bản cân mã hóa: bảo mật an ninh mạng Mã hóa
Kết quả mã hóa: CUqL+DXzPNz2L0ZzF dePL6RfiebY Y=
Kết quả giải mã: bảo mật an ninh mạng Xóa
Code phần mã hóa RSA:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Ling;
using System.Security.Cryptography;
using System Text;
using System.Windows.Forms;
namespace VidVigener
public partial class RSA : Form
public RSA()
InitializeComponent();
static public byte[] Encryption(byte[] Data, RSAParameters RSAKey, bool DoOAEPPadding)
{
try
byte[] encryptedData;
using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider()) RSA.ImportParameters(RSAKey);
encryptedData = RSA.Encrypt(Data, DoOAEPPadding);
return encryptedData;
}
catch (CryptographicException e)
Console.WriteLine(e.Message);
return null;
Trang 10}
static public byte[] Decryption(byte[] Data, RSAParameters RSAKey, bool DoOAEPPadding)
{
try
byte[] decryptedData;
using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider()) RSA.ImportParameters(RSAKey);
decryptedData = RSA.Decrypt(Data, DoOAEPPadding);
return decryptedData;
}
catch (CryptographicException e)
Console.WriteLine(e.ToString());
return null;
}
UnicodeEncoding ByteConverter = new UnicodeEncoding();
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
byte[] plaintext;
byte[] encryptedtext;
#region
private void btnEncrypt_Click(object sender, EventArgs e)
{
//¡ Mã hóa dữ liệu đầu vào sang dạng byte[]
plaintext = Encoding.UTF8.GetBytes(txtInput.Text);
encryptedtext = Encryption(plaintext, rsa.ExportParameters(false), false); /¡ Chuyển đổi kết quả mã hóa sang chuỗi Base64 để hiển thị
txtKetQua.Text = Convert.ToBase64String(encryptedtext);
private void btnGiaiMa_Click(object sender, EventArgs e)
/¡ Chuyển đổi chuỗi đã được mã hóa từ Base64 sang byte[]
byte[] encryptedData = Convert.FromBase64String(txtKetQua.Text);
/J Giải mã dữ liệu đã được mã hóa
byte[] decryptedData = Decryption(encryptedData, rsa.ExportParameters(true), false);
/ƒ Hiển thị kết quả giải mã
IbKetQuaGM.Text = Encoding.UTF8.GetString(decryptedData);
#endregion
private void btnXoa_Click(object sender, EventArgs e)
{
txtInput.Text = "";
txtlnput.Focus();
Trang 11IbKetQuaGM.Text = "";
}
}
}
Link souce code demo: https://bit.ly/VigenerRSA