
Зараз середа ввечері. Два мої сини та дочка готові. Я натискаю гру, і ми починаємо подорож, яка відведе нас усіх далі, ніж ми коли-небудь передбачали.
Ми переглянули перший серіал Gravity Falls. Візуальні ефекти, персонажі, сюжет та гумор є першокласними, і ми точно хотіли більшого, але… ми помітили щось наприкінці титрів. Те, чого ми не очікували. Щось, що зробило перегляд цієї серії набагато цікавішим та цікавішим.
Ан encrypted message
.
Ось як ми розшифрували коди. І нам було дуже цікаво робити це самостійно. Не перевіряючи нічого з цього в Інтернеті. Якщо я зацікавив вас, рекомендую припинити читати і спробувати зробити це самостійно. Тоді ви можете повернутися і прочитати мої рішення та пояснення нижче.
ZHOFRPH WR JUDYLWB ІДОВ
Ми були впевнені, що це повідомлення. За зовнішнім виглядом я здогадувався, що він зашифрований якимсь замінним шифром.
Шифрування за допомогою шифру заміщення в основному замінює літери іншими буквами на основі якогось загального правила. Розшифровка виконується шляхом застосування цього правила в зворотному порядку до зашифрованого тексту. Цей тип шифрів більше не використовується, оскільки їх легко зламати, тобто за допомогою криптоаналізу. Більш детальну інформацію ви можете знайти на цій вікі-сторінці.Спочатку ми були надто схвильовані історією, щоб поки зосередитись на шифрах. Ми просто визнали, що шифри існують, і не знали, як їх розшифрувати. Я думав, ми їх просто зламаємо пізніше, але ...
Після одного епізоду у мого сина з’явилася ідея. Він хотів переглянути вступне шоу. Назад. Я думав why not
? Вгадай що! Коли ви переглядаєте його назад у якийсь момент, ви можете почути приховане повідомлення:
Три листи назад
Хм ... three letters back
. Зазвичай це не має жодного сенсу. Але у нас були шифри, які ми не знали, як розшифровувати. Для нас це мало цілком сенс.
Привіт пане Цезаре
Шифр Цезаря - один із найдавніших відомих і найпростіших шифрів. Це тип замінного шифру, в якому кожна буква в відкритому тексті «зміщується» на певну кількість місць внизу за алфавітом. Наприклад, зі зсувом на 1 А замінюється на В, В стає С тощо. Метод названий на честь Юлія Цезаря, який, очевидно, використовував його для спілкування зі своїми генералами. Детальніше читайте тут.Я надрукував англійський алфавіт для всіх звідси, і почалося розшифрування:
Z
→ W
тому що, якщо ми переносимо 3
літери назад, Z
ми закінчуємоW
H
→ E
...
B
→ Y
тому що якщо ми 1
повернемо літеру назад, ми опинимось далі, A
а наступну 2
ми маємо зробити count
з кінця алфавіту, тож врешті-решт цеY
Через деякий час ми знали, що ZHOFRPH WR JUDYLWB IDOOV насправді ЗАПРОШУЄМО ДО ВАЖЛИВОСТІ.
Мої діти любили це.
Коли вони manually
розшифровували наступні повідомлення, я думав, що це чудова можливість насправді показати їм, що я роблю на роботі. Для них це легше зрозуміти.
Я розпочав нове, Swift Playground
оскільки це пропонує чудовий спосіб роботи з кодом. І приступив до кодування. Я написав це просто для розваги, тому, будь ласка, не судіть?:
Коли було зроблено декодування вручну, я сідаю з дітьми перед комп’ютером. Я пояснив, що мій код робить те саме, що робив при розшифровці повідомлень. Але замість того, щоб робити це вручну, це автоматично і може використовуватися багато разів. Вони не зрозуміли коду, я був би здивований, якщо б зрозуміли, але я майже впевнений, що зрозуміли the idea
.
KZKVI QZN WRKKVI HZBH: “ZFFTSDCJTSTZWHZWFS!”
Все було чудово до епізоду 7
. Ми розпочали декодування першого слова і:
KZKVI
→ HWHSF
О-о, наше щастя просто закінчилося. Було ясно, що шифр змінився. На щастя, clue
у повідомленні ми розшифрували епізод 6
:
МІСТЕР. ЦЕЗАР ІАН БУДЕ ВИХОДЕНИЙ НАСТУПНИЙ ТИЖДЕНЬ Г-Н . Atbash підставить
Ceasar cipher
→ Atbash cipher
Привіт пане Атбаш
Шифр Atbash - це замінний шифр із певним ключем, де букви алфавіту зворотні. Тобто всі "A" замінено на "Z", усі "B" замінено на "Y" тощо. Спочатку він використовувався для єврейського алфавіту, але може використовуватися для будь-якого алфавіту. Детальніше читайте тут. Зашифровані рядки Atbash можна знайти навіть у Біблії. Ви можете прочитати трохи більше про це тут.Цього разу це зайняло трохи більше часу, тому що нам довелося перевіряти індекс символів від початку, а потім знаходити букву з цим індексом, відраховану від кінця алфавіту. Знову мої діти розшифровували це вручну:
K
→ P
тому що індекс K
є, 11
і коли ми відлічуємо 11
від кінця алфавіту, отримуємоP
Z
→ A
K
→ P
V
→ E
I
→ R
KZKVI
→ PAPER
Це знову мало сенс.
Через кілька хвилин дочка підійшла до мене і запитала, чи правильно вона розшифрувала повідомлення. Вона зробила. Але це було не найцікавіше. Я помітив, що вона щось написала на друкованій сторінці алфавіту. Над алфавітними індексами 1, 2, 3, …, 26
вона додала зворотні номери індексів 26, 25, 24, …, 1
.
Завдяки цьому їй більше не довелося рахувати з кінця алфавіту. Ми, програмісти, називаємо це optimization
. Мене вразило, що вона вже почала вдосконалювати свій набір інструментів, щоб полегшити роботу.
Знову я підготував невеликий фрагмент коду, який зміг декодувати повідомлення:
14–5–24–20 21–16: «6–15–15–20–2–15–20 20–23–15: 7–18–21–14–11–12–5’19 7–18– 5–22–5–14–7–5 »
Все було добре до епізоду 14.
Потім з блакитного шифру знову змінився. Цього разу ми не здогадались. А може просто пропустив?
Ну ... можливо, не зовсім без жодного clue
. Найбільша кількість зашифрованого тексту була 24
найменшою 2
. Букви алфавіту мають індекси від 1
до 26
. Виходячи з цього, ми зробили освічене припущення, що:
1
→ A
2
→ B
...
26
→ Z
При 14–5–24–20
декодуванні NEXT
ми знали, що наше припущення було правильним.
Це було трохи більше дратує, тому що я не хотів позбавляти повідомлення будь-яких символів при декодуванні. Якщо у вас це не працює - будь-ласка, видаліть non-aplhanumeric-characters
непідтримувані символи або додайте в них непідтримувані символи .replacingOccurrences
. Як я вже сказав. Не судити?
5–19–23–6–21–16 18–9–6 4–16–19 22–12–15–10–20–19–25–19
Ми знову не вдалися, коли спробували розшифрувати перше слово з повідомлення з епізоду 20
.
5–19–23–6–21–16
→ ESWFUP
Шифр змінено. Але ми не здавались легко. Hint
є, зашифрований clue
, який говорить про те, як декодувати це повідомлення. Але я залишаю це вам. Просто надто весело працювати над цими матеріалами.
Зверніть увагу, що ця серія two seasons
заповнена mysteries and encrypted messages
. Вам не набридне.
Кінець?
Тепер, коли я знаю, що мої діти люблять грати з криптографією, у мене є кілька ідей щодо next step
. Безумовно, це не останній раз, коли вони працювали з шифрами та зашифрованими повідомленнями.
Дякуємо за читання! Сподіваюсь, я зміг вас цим трохи зацікавити. Якщо ви насправді пробуєте це зі своїми дітьми, додайте про це коментар. Мені дуже цікаво, чи тобі це було так само весело, як і нам.