An Toàn M NG

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 10

AN TOÀN MẠNG

NT101

LAB1

1. Kickoff: Crack the code:

Task 1.1:

“ 5 7 8 : Nothing is correct” => Ta loại được 5,7,8 (1)

“2 9 1 : One number correct and right place”

“2 4 5: One number correct but in wrong place”

Ở đây ta thấy cả 2 mã đều có 1 số đúng nhưng 1 mã đúng vị trí và 1 mã sai vị trí.

Số 2 không di chuyển nên ta có thể loại được số 2. (2)

“2 4 5” từ (1) và (2) ta biết được rằng số 4 là số chính xác nhưng sai vị trí ( vị trí số 2) (3)

“4 6 3 : Two number correct but in the wrong place”

Có 2 số đúng và 1 trong 2 số đó là số 4 và sai vị trí ( ví trí số 1) và từ (3) => số 4 chỉ có thể nằm ở vị trí số 3

“x x 4” (4)

“2 9 1” từ (2) và (4) ta loại được 2 vị trí còn lại => số 9 là số đúng nằm ở vị trí chính xác “x 9 4”
“5 6 9: One number is correct but in wrong place” => ta loại được số 6

“4 6 3: Two number are correct but in wrong place” => số còn lại là số 3

“3 9 4”

Task 1.2:

Gán cho mỗi ngôi sao là 1 biến:

A B C D E F G H I

A A B C ?

D D E D FF

? ? B G HH

? D E D HI

HD FF HH HF

HH

2B + 2E = HH => H phải là số chẵn (1)

Giả sử 2 số B và E là 2 số lớn nhất (8, 9) => HH < 34

Có 3 TH xảy ra là : 11 , 22 , 33
Từ (1) => H = 2

B + E = 11

A A B C ?

D D E D FF

? ? B G 22

? D E D 2I

2D FF 22 2F

D D E D FF

3D + E = FF

Giả sử D = 9 và E = 8

 FF < 36

Có 2 TH : 11 , 33

TH F = 1 :

 D = 3 và E = 2 : E trùng với H => không hợp lý

TH F = 3 :

Nếu D = 9 thì E = 6:

A A 5 C ?

9 9 6 9 33

? ? 5 G 22

? 9 6 9 2I

29 33 22 23

C + G = 5 => C và G chỉ có thể là 1 hoặc 4

A và I chỉ có thể là 7 hoặc 8

TH C = 1 , G = 4 và A = 7 , I = 8

 A + A + 5 + C = 20 : số 0 không có trong điều kiện => không hợp lệ


TH C = 4 , G = 1 và A = 8, I =7

8 8 5 4 25

9 9 6 9 33

9 7 5 1 22

3 9 6 9 27

29 33 22 23

Nếu D = 8 thì E = 9

A A B C ?

8 8 9 8 33

? ? B G 22

? D 9 D 2I

2D FF 22 2F

9 + 9 + 2B = 22 => B =2 trùng với H => không hợp lệ

Vậy ta tìm được dãy số phù hợp là:

A B C D E F G H I

8 5 4 9 6 3 1 2 7 s

2. Caesar cipher:

Task 2.1:

Encryption: C = E(k, p) = (p + k) mod 26

Decryption: p = D(k,C) = (C - k) mod 26


def caesar_cipher(text, shift):
encrypted_text = ""

for char in text:


if char.isalpha():
is_upper = char.isupper()
char = char.lower() #transfer text to lowercase
shifted = (ord(char) - ord('a') + shift) % 26
char = chr(ord('a') + shifted)
if is_upper: #check if char was uppercase or not
char = char.upper()
encrypted_text += char
return encrypted_text

def brute_force_ceaser(text):
for i in range(26):
print(str(i)+ ": " + caesar_cipher(text,-i)) #decrypt using ~key
plain_text = "Nguyen Van Anh Tuan"
key = 24
cypher_text = caesar_cipher(plain_text, key) #Leswcl Tyl Ylf Rsyl
print(cypher_text)
brute_force_ceaser(cypher_text)
Kết quả :
Cypher_Text : Gurer ner gjb xvaqf bs crbcyr va guvf jbeyq: gubfr jub ner ybbxvat

sbe n ernfba naq gubfr jub ner svaqvat fhpprff. Gubfr jub ner

ybbxvat sbe n ernfba nyjnlf frrxvat gur ernfbaf jul gur jbex vf

abg svavfurq. Naq crbcyr jub svaq fhpprff ner nyjnlf ybbxvat sbe

ernfbaf jul gur jbex pna or pbzcyrgrq.

Kết quả chạy: Key: {plain_text}

Kết quả khi sử dụng tool dCode:

3. Mono-alphabetic substitution cipher and frequency analysis:

Task 3.1:

Sử dụng trang 101computing để tính toán tần suất xuất hiện của các chữ cái của cypherText và thay thế
Thay thế các chữ cái dựa vào trang web norvig.com (thống kê số lần xuất hiện của các chữ cái trong
tiếng anh)

Thay thế các chữ cái theo thứ tự đã sắp xếp ở trên:
Dựa vào trang web cryptool biết được số lần xuất hiện theo n-grams

Từ có 3 chữ cái xuất hiện nhiều trong tiếng anh theo thống kê là : the , and , ing, …

Và thống kê từ văn bản có được theo thứ tự là : ytn, vup, nqy, …

Ta thử thay thế các chữ cái trên theo thứ tự và có được:

Ytn = the

Vup = and

Nqy = ent

Tiếp tục tìm kiếm và thay thế các từ thành từ có nghĩa, ví dụ : -> AFTER THIS
-> LIKE -> WEEKEND -> LONG -> PRESIDENT

Kết quả:

Task 3.2:

Task 5.1

Task 5.2

Xác định độ dài khóa: Bước đầu tiên là xác định độ dài của khóa được sử dụng trong Vigenere cipher.
Điều này có thể được thực hiện bằng cách phân tích các mẫu lặp lại trong văn bản đã mã hóa. Một kỹ
thuật thông thường là tính toán Chỉ số Tình ngẫu nhiên (Index of Coincidence - IOC) cho các độ dài khóa
khác nhau và tìm các đỉnh trong các giá trị IOC. Giá trị IOC cao hơn cho thấy khả năng cao về độ dài khóa
chính xác.
cv vvobobxy uocmgjg, olgiaqsliioa dynxyu fi axjwdy qgmqdgimpqz uvw jqygcgpemnqhu vqwpgpsgya
wltupmw mtag utajqgimpemf khueqjbl hpp u axa qr lcel-dmmmw jcxwcehvuivl jcxfmw hnsizbajym bh
atmhayvty gmlzcsya bu ymsa mocf uzx ocdx bh kgocxalt. fbmll fqnmktkzcampe mfohykfbul htq oaxk hal
kkfrfiokhrtck dla syvxycfcwg hpp xqzpvmf abnpuho tuf hyzbmkoubbvp fi xkvvqwb whvm jzbccos, exi
ddielpps iv mog uhbxypqn igk eahnbkgznqts eagunukoubbvpe mcvo ce wzxkkf wikk vduvlhefcwgz czx
mfhkx

c = ca/ bb / ac

v = va/ ub/

You might also like