2024-10-30 23:29:52 +05:30
|
|
|
|
# Question: Easy1
|
|
|
|
|
### Key: picoCTF{CRYPTOISFUN}
|
2024-10-30 23:29:06 +05:30
|
|
|
|
|
2024-10-30 23:45:35 +05:30
|
|
|
|
**Core concept: Vigenere Cypher - Decrypted character=(Encrypted character−Key character+26)mod26**
|
2024-10-30 23:29:06 +05:30
|
|
|
|
|
|
|
|
|
Can be solved by an easy Python script:
|
|
|
|
|
|
|
|
|
|
```py
|
|
|
|
|
def decrypt_vigenere(encrypted_text, key):
|
|
|
|
|
decrypted_text = ""
|
|
|
|
|
key_length = len(key)
|
|
|
|
|
|
|
|
|
|
for i in range(len(encrypted_text)):
|
|
|
|
|
encrypted_char_pos = ord(encrypted_text[i]) - ord('A')
|
|
|
|
|
key_char_pos = ord(key[i % key_length]) - ord('A')
|
|
|
|
|
|
|
|
|
|
decrypted_char_pos = (encrypted_char_pos - key_char_pos + 26) % 26
|
|
|
|
|
|
|
|
|
|
decrypted_char = chr(decrypted_char_pos + ord('A'))
|
|
|
|
|
|
|
|
|
|
decrypted_text += decrypted_char
|
|
|
|
|
|
|
|
|
|
return decrypted_text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
encrypted_flag = "UFJKXQZQUNB"
|
|
|
|
|
key = "SOLVECRYPTO"
|
|
|
|
|
|
|
|
|
|
decrypted_flag = decrypt_vigenere(encrypted_flag, key)
|
|
|
|
|
print("Decrypted Flag:", decrypted_flag)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Output: CRYPTOISFUN
|