eolymp
bolt
Try our new interface for solving problems
Məsələlər

Шифрование Виженера

Шифрование Виженера

Один из самых старых и распространенных алгоритмов шифрования - шифр Виженера. Это довольно старая штука - подобное шифрование было впервые описано в 1553 году Джованом Баттистой Белласо и улучшено в 1586 году Блезом де Виженером.

Шифр Виженера каждую букву открытого текста преобразовывает в одну букву зашифрованного текста, комбинируя одну букву открытого текста с одной буквой ключа в соответствующей позиции. Если ключ короче открытого текста, он просто повторяется при необходимости, например, для ключа длины 3 и открытого текста длины 7 буквы будут объединены следующим образом (ki - это ключевая буква, pi - это текстовая буква, и ci - полученная буква зашифрованного текста).

prb9796.gif

Буква ключа указывает, на сколько позиций буква текста должна быть "сдвинута вперед"» в алфавите. Если ключевая буква A, соответствующая буква открытого текста будет смещена на один символ, B - на две позиции и так далее. Алфавит считается круглым, поэтому за последней буквой (Z) идет A. Обратите внимание, что A (ключ) в сочетании с другим A (открытым текстом) приведет к B, что может быть немного необычно для обычного шифра Виженера. Квадрат Виженера в конце условия задачи дает общее представление о том, как буквы открытого текста объединяются с буквами ключа для создания зашифрованного текста.

Ваша задача - написать программу, которая будет шифровать сообщения с использованием шифра Виженера с заданным ключом.

Входные данные

Содержит несколько тестов. Каждый тест состоит из двух строк, первая строка - это ключ шифрования, а вторая - открытый текст. Ключ и открытый текст состоят из заглавных букв английского алфавита {A, B, C, ..., Z}. Длина ключа находится между 1 и 1000, длина открытого текста между 1 и 105 включительно.

Входные данные завершаются строкой, содержащей один ноль.

Выходные данные

Для каждого теста выведите зашифрованную версию сообщения.

prb9796_1.gif

Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 128 MiB
Giriş verilənləri #1
ICPC
THISISSECRETMESSAGE
ACM
CENTRALEUROPEPROGRAMMINGCONTEST
LONGKEY
CERC
0
Çıxış verilənləri #1
CKYVRVIHLUUWVHIVJJU
DHAUUNMHHSRCFSEPJEBPZJQTDRAUHFU
OTFJ
Mənbə 2011 ACM Central Europe (CERC), Прага, Ноябрь 11 - 13, Задача B