Шифрування Віженера
Один із найстаріших і найвідоміших методів шифрування — це шифр Віженера. Цей метод був вперше описаний у 1553 році Джованом Баттістою Белласо і вдосконалений у 1586 році Блезом де Віженером.
Шифр Віженера перетворює кожну літеру відкритого тексту на одну літеру зашифрованого тексту, поєднуючи її з відповідною літерою ключа. Якщо ключ коротший за відкритий текст, він повторюється стільки разів, скільки потрібно. Наприклад, для ключа довжиною 3 і відкритого тексту довжиною 7, літери будуть поєднані наступним чином (k[i]
— це літера ключа, p[i]
— це літера тексту, а c[i]
— отримана літера зашифрованого тексту).
Літера ключа визначає, на скільки позицій літера тексту повинна бути "зсунута вперед" в алфавіті. Якщо ключова літера A, відповідна літера відкритого тексту зміщується на одну позицію, B — на дві позиції і так далі. Алфавіт вважається круговим, тому після останньої літери (Z) йде A. Зверніть увагу, що A (ключ) у поєднанні з іншим A (відкритий текст) дає B, що може бути трохи незвично для звичайного шифру Віженера. Квадрат Віженера в кінці умови задачі дає загальне уявлення про те, як літери відкритого тексту поєднуються з літерами ключа для створення зашифрованого тексту.
Ваше завдання — написати програму, яка буде шифрувати повідомлення, використовуючи шифр Віженера з заданим ключем.
Вхідні дані
Містить кілька тестів. Кожен тест складається з двох рядків: перший рядок — це ключ шифрування, а другий — відкритий текст. Ключ і відкритий текст складаються з великих літер англійського алфавіту {A, B, C, ..., Z}. Довжина ключа знаходиться між 1 і 1000, довжина відкритого тексту — між 1 і 10^5
включно.
Вхідні дані завершуються рядком, що містить один нуль.
Вихідні дані
Для кожного тесту виведіть зашифровану версію повідомлення.