Режим шифрования — метод применения блочного шифра (алгоритма), позволяющий преобразовать последовательность блоков открытых данных в последовательность блоков зашифрованных данных. При этом для шифрования одного блока могут использоваться данные другого блока.
Обычно режимы шифрования используются для изменения процесса шифрования так, чтобы результат шифрования каждого блока был уникальным вне зависимости от шифруемых данных и не позволял сделать какие-либо выводы об их структуре. Это обусловлено, прежде всего, тем, что блочные шифры шифруют данные блоками фиксированного размера, и поэтому существует потенциальная возможность утечки информации о повторяющихся частях данных, шифруемых на одном и том же ключе.
В 1981 году был принят стандарт FIPS 81. В стандарте были описаны первые режимы работы блочных шифров: ECB, CBC, OFB и CFB. В 2001 году институт NIST (национальный институт стандартов и технологий США) пересмотрел список режимов и добавил в него описание работы блочного шифраAES в режиме CTR (SP800-38A). В январе 2010 года NIST добавил в стандарт описание работы шифра AES в режиме XTS (SP800-38E).
В стандарте описаны не все режимы, а только режимы, одобренные институтом NIST. Например, режим CTS (англ.ciphertext stealing) в стандарте не описан, но реализован во многих популярных криптографических библиотеках.
Режимы шифрования определяются рядом национально и международно признанных организаций. Наиболее влиятельной из них является NIST.
Основные режимы
Ниже приведено описание нескольких режимов шифрования с использованием блочных шифров[1].
В ГОСТ 28147—89 этот режим называется режимом простой замены.
Шифрование:
Пусть дано сообщение (открытый текст, последовательность бит, данные).
Во время шифрования выполняются следующие действия:
Сообщение делится на блоки одинакового размера. Размер (длина) блока равен n и измеряется в битах. В результате получается последовательность блоков . Последний блок при необходимости дополняется до длины [2][3].
Каждый блок шифруется алгоритмом шифрования с использованием ключа k:
Криптограмма, полученная шифрованием в режиме ECB. На изображении видны черты исходного изображения
Криптограмма, полученная шифрованием в режиме, отличном от ECB. Изображение представляет собой псевдослучайную последовательность пикселей
Достоинства ECB:
постоянная скорость обработки блоков (скорость определяется эффективностью реализации шифра);
возможно распараллеливание вычислений (так как блоки не связаны между собой).
Этот режим называется режимом электронной кодовой книги, так как существует возможность создать книгу, в которой каждому блоку открытого текста будет сопоставлен блок зашифрованного текста. Однако создать книгу — нетривиальная задача. Если размер блока равен x бит, то в книге будет содержаться 2x записей, и каждая книга будет соответствовать одному ключу.
Для шифрования некоторого сообщения выполняются следующие действия[4].
Сообщение разбивается на блоки одинакового размера. Размер (длина) блока равен n и измеряется в битах. При необходимости последний блок дополняется до длины [2].
Шифрование очередного (i-го) блока сообщения () выполняется с использованием предыдущего зашифрованного ((i-1)-го) блока (). Для первого блока () зашифрованного блока () не существует, поэтому первый блок шифруют с использованием «вектора инициализации» (англ.initialization vector, IV):
(вектор инициализации — случайное число)
Размер (длина) IV равна размеру блока (n).
В функцию шифрования передаётся сумма по модулю 2 («⊕», «xor») текущего блока сообщения и предыдущего зашифрованного блока :
Расшифровка выполняется функцией с использованием тех же ключа k и вектора инициализации IV:
Недостатки CBC:
возможность определения начала изменения данных по изменению шифротекста (если сравнить шифротексты двух сообщений с одним и тем же ключом, то номер первого блока, в котором шифротексты различаются, будет соответствовать номеру первого блока, в котором различаются исходные сообщения);
возможность изменения открытого текста при перемещении[куда?] блоков[каких?]; (Предыдущий автор, наверное, хотел сказать, о смене порядка блоков шифра. Это скорее недостаток ECB, и да, возможно изменить открытый текст при ECB, просто меняя блоки шифра местами).
невозможность распараллеливания шифрования (поскольку для шифрования каждого i-го блока требуется блок, зашифрованный на предыдущем шаге (блоки связаны между собой))[1].
Достоинства CBC:
постоянная скорость обработки блоков (скорость определяется эффективностью реализации шифра; время выполнения операции «xor» пренебрежимо мало);
отсутствие статистических особенностей, характерных для режима ECB (поскольку каждый блок открытого текста «смешивается» с блоком шифротекста, полученным на предыдущем шаге шифрования);
Недостатки режима CBC привели к созданию усовершенствованного режима распространяющегося сцепления блоков шифра (Propagating Cipher Block Chaining, РСВС)[4]. Естественно, этот режим похож на CBC за исключением того, что предыдущий блок открытого текста и предыдущий блок шифротекста подвергается операции XOR с текущим блоком открытого текста перед шифрованием или после него.[1] Соответственно расшифрование: где — вектор инициализации
Режим шифрования РСВС применяется в протоколе Kerberos 4 версии и позволяет обнаруживать ошибки. Данный режим шифрования не является федеральным или международным стандартом. Режим РСВС — вариант режима СВС, обладающий специфическим свойством — ошибка шифротекста приводит к неправильному дешифрированию всех последующих блоков. Это соответственно означает, что проверка стандартного блока в конце сообщения обеспечивает целостность всего сообщения.
Конечно, этот режим не лишён недостатков, так перестановка двух блоков шифротекста приводит к неправильной расшифровке двух соответствующих блоков открытого текста, но из-за XOR над открытым текстом и шифротекстом дальнейшие ошибки компенсируются. Поэтому, если при проверке целостности проверяются только несколько последних блоков расшифрованного текста, можно получить частично испорченное сообщение. Хотя никто ещё не воспользовался этой уязвимостью в Kerberos, но в 5 версии уже перешли на режим CBC.
Криптостойкость CFB определяется криптостойкостью используемого шифра. Блоки открытого текста «смешиваются» («маскируются») с блоками шифротекста. Если в режиме CFB с полноблочной обратной связью имеется два идентичных блока шифротекста, результат, например, шифрования алгоритмом DES на следующем шаге будет тем же. Скорость шифрования режима CFB с полноблочной обратной связью та же, что и у блочного шифра, причём возможности распараллеливания процедуры шифрования ограничены[1].
Режим (OFB)[4] обратной связи вывода превращает блочный шифр в синхронный шифр потока: он генерирует ключевые блоки, которые являются результатом сложения с блоками открытого текста, чтобы получить зашифрованный текст. Так же, как с другими шифрами потока, зеркальное отражение в зашифрованном тексте производит зеркально отражённый бит в открытом тексте в том же самом местоположении. Это свойство позволяет многим кодам с исправлением ошибок функционировать как обычно, даже когда исправление ошибок применено перед кодированием.
Из-за симметрии операции сложения, шифрование и расшифрование похожи:
Каждая операция блочного шифра обратной связи вывода зависит от всех предыдущих и поэтому
не может быть выполнена параллельно. Однако, из-за того, что открытый текст или
зашифрованный текст используются только для конечного сложения, операции блочного
шифра могут быть выполнены заранее, позволяя выполнить заключительное шифрование
параллельно с открытым текстом.
Обратная связь по выходу на k разрядов не рекомендуется из соображений криптостойкости. Режим OFB имеет следующее преимущество по сравнению с режимом CFB: ошибки, возникающие в результате передачи по каналу с шумом, при дешифровании не «размазываются» по всему шифротексту, а локализуются в пределах одного блока. Однако открытый текст может быть изменён путём определённых манипуляций с блоками шифротекста. Несмотря на то, что OFB-шифрование не поддаётся распараллеливанию, эффективность процедуры может быть повышена за счёт предварительной генерации независимой последовательности блоков.[1]
OFB также предполагает некое усовершенствование, касающееся метода генерации независимой последовательности блоков: для получения очередного блока предлагается шифровать не с , а c , где некоторый вектор инициализации.
Counter mode (CTR)
Режим счётчика (counter mode, CTR)[4] предполагает возврат на вход соответствующего алгоритма блочного шифрования значения некоторого счётчика, накопленного с момента старта. Режим делает из блочного шифра потоковый, то есть генерирует последовательность, к которой применяется операция XOR с текстом сообщения. Исходный текст и блок зашифрованного текста имеют один и тот же размер блока, как и основной шифр (например, DES или AES).[5] Режим CTR предусматривает следующие операции.
Шифрование в режиме CTR
Расшифровка в режиме CTR
— значение счётчика для i-го блока.
Очевидно, что значения счётчика должны быть уникальными для каждого блока открытого текста, кодируемого данным шифром при данном ключе (в противном случае блоки шифротекста, зашифрованные с помощью идентичных значений счётчика, оказываются под угрозой). Это требование удовлетворяется в два этапа.
Во-первых, значения счётчика для шифрования блоков в пределах одного сообщения получаются из начального значения счётчика использованием функции приращения. Чтобы обеспечивать случайность, величина приращения может зависеть от номера блока. Стандартная функция приращения может быть применена как ко всему блоку счётчика, так и к его части. Пусть значение счётчика представляет блок из b битов, а функцию приращения мы применяем к m младшим разрядам.
— функция конкатенации; — младшие битов; — старшие битов. Уникальность значений счётчика обеспечивается для всех блоков сообщения при условии, что . Где — количество блоков, на которое разбивается сообщение.
Во-вторых, начальные значения счётчика для каждого сообщения выбираются таким образом, чтобы обеспечить уникальность всех используемых значений счётчика. Этого можно достичь разными способами. Например, если сообщения шифруются последовательно, то в качестве начального значения счётчика для данного сообщения можно использовать результат применения функции приращения к последнему значению счётчика предыдущего сообщения. При этом если функция приращения использует m битов, общее количество блоков открытого текста не должно превышать . Другой подход предлагает разбить двоичное представление счётчика на две части. Старшие разряды назначаются одноразовым номером сообщения, а к оставшимся будет применяться функция приращения[6].
При отсутствии обратной связи алгоритмы шифрования и расшифровки в режиме CTR могут выполняться параллельно. Более того, большие объёмы вычислений, связанные с шифрованием значений счётчика, могут быть выполнены заранее, до того, как открытый текст или шифротекст окажутся доступными. Это обеспечивает режиму CTR преимущество перед режимами CFB и OFB.
Random Delta (RD)
Режим Random Delta используется для устранения предсказуемости изменения счётчика в режиме CTR. К примеру, это AES, и размер блока 16 байт. Берётся случайный Initialization Vector (например, с помощью RdRand). Его младшие 8 байт считаются случайной дельтой — Random Delta (RD):
Initial (Initialization Vector) шифруется и передаётся в начале сообщения. Блок 0 перед шифрованием XOR-ится с Initial. Для каждого последующего блока величина Initial увеличивается на Delta (в беззнаковом целочисленном представлении — uint128 += uint64):
Таким образом устраняется предсказуемость изменения счётчика в режиме CTR. Если там дельта — всегда единица, здесь дельта — случайное число, одно из 2^64. Злоумышленнику оно, как и Initial, неизвестно.
Также, CTR настораживает непосредственным соседством открытого текста с шифротекстом через XOR. В Random Delta между открытым текстом и шифротекстом лежит AES.
Открытость передачи Initial также вызывает вопросы. Чем меньше атакующий видит — тем лучше. Чем более открытый текст отдалён от шифротекста — тем лучше. Все известные режимы — ECB, CBC, OFB, CTR — обладают какими-то из этих недостатков. В Random Delta всё лежит за AES'ом, а Initial и Delta — случайные величины, которые злоумышленнику неизвестны.
Впрочем, один из недостатков CTR в RD присутствует. Знание формата передаваемых данных позволяет вбрасывать в определённые места этих данных случайные искажения, что может быть использовано для атаки. Для проверки целостности в блочную последовательность может быть добавлен хэш:
Похоже, что Random Delta + Hash указанных недостатков лишён. Передано в общественное достояние.
Важный момент: между закрытым текстом и открытым должно лежать множество пермутаций AES'а, иное ослабляет глубину шифрования. Закрытый текст как функция от открытого посредством одной лишь XOR сводит на нет глубину шифрования, которую даёт AES (а именно такой способ используют режимы OFB, CFB, CTR).
Криптостойкость Random Delta не намного ниже криптостойкости самого AES'а.
Если требуется более высокая степень случайности дельты (например, 128-битная), она может генерироваться отдельно и передаваться в начале сообщения вместе с Initial.
Как и CTR, Random Delta позволяет осуществлять шифрование/дешифрование блоков параллельно, с большей производительностью, не дожидаясь шифрования/дешифрования предыдущего блока (что является необходимостью в CBC, PCBC, CFB, OFB).
Режим "Random Delta 128" отличается использованием отдельных 128-битных Initial и Delta. Даёт бОльшую случайность тени.
В криптографии вектор инициализации[англ.] () представляет собой некоторое число, как правило, оно должно быть случайным или псевдослучайным. Случайность имеет решающее значение для достижения семантической безопасности, которая при повторном использовании схемы под тем же ключом не позволит злоумышленнику вывести отношения между сегментами зашифрованных сообщений. Для блочных шифров использование описывается режимами работы. Рандомизация требуется также для других примитивов, таких как универсальные хеш-функции и коды аутентификации сообщений на их основе.
В таких режимах шифрования, как CBC, CFB и OFB на вход подаётся вектор инициализации (). Причём как отправитель, так и получатель в начале сеанса связи должны иметь один и тот же . Значение вовсе не обязано быть секретным и вполне может быть передано вместе с первым блоком шифротекста. Что действительно важно, так это то, что в режимах CBC и CFB это значение должно быть непредсказуемым, а в режиме OFB — уникальным[2].
Непредсказуемости в режимах CBC и CFB можно достичь несколькими способами. Например, можно подвергнуть преобразованию той же функцией значение какого-либо счётчика (скажем, счётчика сообщений). Или использовать ГПК для генерации псевдослучайной последовательности нужной длины.
В режиме OFB вектор инициализации не обязан быть непредсказуемым, зато он должен быть уникален для всех сеансов связи, в которых в OFB используется один и тот же секретный ключ шифрования . Этого можно достичь, опять же используя счётчик сообщений. Если же не следовать этому требованию, то секретность сообщения в режиме OFB может быть легко скомпрометирована. Одним из следствий этого требования является то, что очередной вектор инициализации для режима OFB нельзя генерировать путём применения функции с тем же ключом .
Padding (набивка)
Режимы ECB, CBC и PCBC работают с сообщениями открытого текста, длина которых должна быть кратна длине одного блока. Если это свойство не выполняется, то к сообщению необходимо добавить необходимое количество битов, называемых дополнением (англ.padding). Например, «padding method 2» ISO/IEC 9797-1 предлагает добавлять в конец сообщения единичный бит, а оставшиеся заполнять нулями[7].
При данном методе получатель шифротекста должен точно знать, что в сообщении содержится дополнение. Это можно обеспечить, прикрепляя дополнение к каждому сообщению, даже если оно не требуется (в этом случае его посылают отдельным блоком). Это не единственное решение — можно, к примеру, посылать с каждым сообщением информацию о его длине[6].
Распространение ошибок
Для любого режима бит ошибки в блоке шифротекста приводит к тому, что результат его расшифрования оказывается испорченным. В режимах CFB, OFB и CTR испорченный бит будет иметь ту же позицию в расшифрованном блоке, что и бит ошибки в блоке шифротекста, на остальные биты блока ошибка не распространится. В режимах ECB и CBC же испорченным может оказаться любой бит блока, с вероятностью около 50 % (зависит от прочности самого шифра). При этом в режимах ECB, OFB и CTR испорченным оказывается исключительно блок, получающийся в результате расшифровки испорченного блока. В режиме CBC ошибочному расшифрованию подвержен также и следующий блок, при этом испорченные биты будут соответствовать битам ошибки в шифротексте предыдущего блока. В режиме CFB бит ошибки в сегменте шифротексте влияет на следующие b/s (округляя до целого, b — длина блока, s — длина сегмента) сегментов, а ошибочным может оказаться любой из битов расшифрованного текста[6].
Наличие битов ошибок в векторе инициализации также наносит ущерб процессу расшифровки. В режиме OFB бит ошибки в IV поражает каждый блок шифротекста в соответствующем сообщении. В режиме CFB при ошибках в векторе инициализации испорченным окажется, по крайней мере, первый сегмент шифротекста. Будут ли испорчены остальные сегменты зависит от положения самого правого бита в IV (в худшем случае пострадают b/s сегментов шифротекста). При использовании режимов OFB и CFB в результате появления бита ошибки в IV испорченным может оказаться любой бит повреждённого шифротекста. В режиме CBC испорчены будут исключительно биты первого блока шифротекста, стоящие на позициях, соответствующих битам ошибки в векторе инициализации.
Для режима CTR бит ошибки в значении счётчика приводит к тому, что любой бит в расшифровке соответствующего шифротекста может оказаться испорченным с вероятностью около 50 %.
Помимо возникновения бита ошибки в блоке шифротекста может произойти стирание или вставка бита. Это приводит к нарушению границ всех последующих блоков шифротекста, а результаты расшифровки будут абсолютно неверными, пока синхронизация границ не восстановится. При использовании режима 1-битного CFB синхронизация восстанавливается автоматически спустя b+1 позиций после появившегося или исчезнувшего бита. В остальных режимах автоматического восстановления синхронизации не происходит[6].
Выбор режима шифрования
Выбор режима шифрования зависит от поставленной вами цели.
Для обычного открытого текста можно использовать CBC, CFB или OFB. Для шифрования файлов лучше пользоваться CBC: значительно увеличивается безопасность, при появлении ошибок в хранимых данных почти никогда не бывает сбоев синхронизации. Конкретный режим зависит от ваших требований. В целом выбор метода шифрования - это поиск компромисса между эффективностью и производительностью[8].
Final Piala Champions Eropa 1978TurnamenPiala Champions Eropa 1976–77 Liverpool Club Brugge 1 0 Tanggal10 Mei 1978StadionWembley Stadium, LondonWasitCharles Corver (Belanda)Penonton92.000← 1977 1979 → Final Piala Champions Eropa 1978 adalah final pertandingan sepak bola Piala Champions Eropa 1977–78, yang diselenggarakan pada tanggal 10 Mei 1978, antara Liverpool melawan Club Brugge di final ke-23 sepanjang sejarah. Pertandingan dimainkan di Wembley Stadium, London, dan dimena...
1765 war between France and Morocco Expedition of LaracheDate25–28 June 1765LocationLarache, MoroccoResult Moroccan victoryBelligerents Kingdom of France Sultanate of MoroccoCommanders and leaders Duchaffault de Besné Mohammed IIIStrength 16 warships[1]Several vessels[2] UnknownCasualties and losses 200 killed[3]49 captured[3]300 lost[4]7 ships captured[5] 30 killed[6] vteFranco–Moroccan conflicts First French colonial empire er...
Wilayah Distrik Nakagawa (Teshio) yang berada di Subprefektur Kamikawa. Nakagawa (Teshio) (中川郡 (天塩国)code: ja is deprecated , Nakagawa-gun (Teshio no kuni)) adalah sebuah distrik yang berada di wilayah Subprefektur Kamikawa, Hokkaido, Jepang. Distrik ini memiliki kesamaan nama dengan Distrik Nakagawa (Tokachi) yang berada di Subprefektur Tokachi. Per 31 Januari 2024, distrik ini memiliki estimasi jumlah penduduk sebesar 5.725 jiwa dan kepadatan penduduk sebesar 3,71 orang per km2. ...
Military occupation by Russia Russian occupation of Chernihiv OblastPart of the 2022 Russian invasion of UkraineChernihiv Oblast: Ukrainian territory never occupied Ukrainian territory liberated from occupation Date24 February 2022–3 April 2022 (1 month, 1 week and 3 days)LocationChernihiv Oblast, Ukraine The Russian occupation of Chernihiv Oblast was a military occupation that began on 24 February 2022, the start of the Russian invasion of Ukraine. Ste...
You can help expand this article with text translated from the corresponding article in Mongolian. (January 2024) Click [show] for important translation instructions. Machine translation, like DeepL or Google Translate, is a useful starting point for translations, but translators must revise errors as necessary and confirm that the translation is accurate, rather than simply copy-pasting machine-translated text into the English Wikipedia. Do not translate text that appears unreliable or ...
XMMS Tipeperangkat lunak bebas dan sumber terbuka dan audio player software Versi pertamaNovember 1997Versi stabil 1.2.11 (16 November 2007) GenreAudio playerLisensiGNU General Public LicenseBahasaDaftar bahasa ? Karakteristik teknisSistem operasiUnix-likeBahasa pemrogramanC++ dan C Antarmuka BibliotecaGTK Sumber kode Kode sumberPranala Fedoraxmms Informasi tambahanSitus weblegacy.xmms2.orgPelacakan kesalahanLaman pelacakan Bagian dari Sunting di Wikidata • Sunting kotak info •...
This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Bristol 408 – news · newspapers · books · scholar · JSTOR (May 2018) (Learn how and when to remove this message) Motor vehicle Bristol 408OverviewManufacturerBristol CarsProduction1963–196683 unitsBody and chassisClassSport saloonLayoutFR layoutPowertrai...
This article is about the district. For its eponymous headquarters, see Anand, Gujarat. District of Gujarat in IndiaAnand districtDistrict of GujaratClockwise from top-left: Borsad Stepwell, Jamia Masjid in Khambhat, Kshemkalyani Mata Temple in Sojitra, GCET college, Amul factory in AnandInteractive Map Outlining Anand DistrictLocation of district in GujaratCoordinates: 22°34′N 72°58′E / 22.567°N 72.967°E / 22.567; 72.967Country IndiaStateGujaratHeadquarte...
Belgian one-day road cycling race Dwars door VlaanderenRace detailsDateLate March, begin AprilRegionFlanders, BelgiumEnglish nameAcross FlandersLocal name(s)Dwars door Vlaanderen (in Dutch)DisciplineRoadCompetitionUCI World TourTypeSemi-classic one-day raceOrganiserFlanders ClassicsWeb sitewww.ddvl.eu Men's historyFirst edition1945 (1945)Editions78 (as of 2024)First winner Rik Van Steenbergen (BEL)Most wins14 riders with 2 wins eachMost recent...
Person who works within the employer's household Servant redirects here. For other uses, see Servant (disambiguation). The help redirects here. For other uses, see The Help (disambiguation). This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Domestic worker – news · newspapers · books · scholar · JSTOR (Decembe...
Bag with a long strap worn across the body This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Messenger bag – news · newspapers · books · scholar · JSTOR (April 2014) (Learn how and when to remove this message) Messenger bag London bicycle messenger A messenger bag (also called a courier bag) is a type of sack,...
Chung Ling SooThe Old and New Magic pub. 1906LahirWilliam Ellsworth Robinson(1861-04-02)2 April 1861Westchester County, New York, ASMeninggal24 Maret 1918(1918-03-24) (umur 56)London, Inggris, Britania RayaSebab meninggalKecelakaan tembakMakamEast Sheen CemeteryPekerjaanPesulap panggungAnak5 William Ellsworth Robinson (2 April 1861 – 24 Maret 1918) adalah seorang pesulap asal Amerika Serikat yang memiliki nama panggung Chung Ling Soo (Hanzi: 程連蘇; Pinyin...
Medical conditionPotassium-aggravated myotoniaOther namesPAM[1]This condition is inherited in an autosomal dominant manner myotonia figure.png Potassium-aggravated myotonia is a rare genetic disorder that affects skeletal muscle.[2] Beginning in childhood or adolescence, people with this condition experience bouts of sustained muscle tensing (myotonia) that prevent muscles from relaxing normally. Myotonia causes muscle stiffness, often painful, that worsens after exercise and ...
Structured-illumination light sheet microscopy Structured illumination light sheet microscopy (SI-LSM) is an optical imaging technique used for achieving volumetric imaging with high temporal and spatial resolution in all three dimensions. It combines the ability of light sheet microscopy to maintain spatial resolution throughout relatively thick samples with the higher axial and spatial resolution characteristic of structured illumination microscopy. SI-LSM can achieve lateral resolution bel...
Questa voce sull'argomento Calciatori tedeschi è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. Ben ZolinskiNazionalità Germania Altezza181 cm Peso78 kg Calcio RuoloCentrocampista Squadra Kaiserslautern CarrieraGiovanili -2006 Neubrandenburg2006-2011 Hansa Rostock Squadre di club1 2011 Hansa Rostock II0 (0)2011-2012→ Carl Zeiss Jena II12 (0)2012-2013 Hansa Rostock ...
2005 single by Craig David All the WaySingle by Craig Davidfrom the album The Story Goes... Released8 August 2005 (2005-08-08)Length3:55 (album version)3:35 (radio edit)LabelWarner Bros.Songwriter(s)Craig DavidMark HillProducer(s)Mark HillCraig David singles chronology You Don't Miss Your Water ('Til the Well Runs Dry) (2003) All the Way (2005) Don't Love You No More (I'm Sorry) (2005) All the Way is a song recorded by the British singer Craig David. It was written by David and...
Series of islands in the Venetian Lagoon, Italy For other uses, see Murano (disambiguation). This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Murano – news · newspapers · books · scholar · JSTOR (November 2013) (Learn how and when to remove this message) MuranoRio dei Vetrai, Murano (2015)MuranoGeographyCoord...