Вы находитесь на странице: 1из 47

Кус Кипто„‡фиfl и безоп‡сность сетей

Лекциfl 10. Кипто„‡фиfl с ‡ссимметичным


ключом

Цели и со‰еж‡ние
Эт‡ лекциfl имеет несколько целей.
• Пок‡з‡ть ‡зличиfl меж‰у симметичными и ‡симметично-ключе‚ыми
кипто„‡фическими систем‡ми.
• Пок‡з‡ть «л‡зейки» ‚ о‰ностоонних функциflх (trapdoor One Way Fun-
ction) пи их использнии ‚ ‡симметично-ключе‚ых кипто„‡фиче-
ских систем‡х. «Л‡зейки» — это секетн‡fl инфом‡циfl, кото‡fl ‰‡ет ‚оз-
можность посто„о об‡тно„о ‚ычислениfl о‰ностоонней функции.
• В‚ести ‡нце‚ую кипто„‡фическую систему к‡к о‰ну из пе‚ых и‰ей ‚
‡симметично-ключе‚ой кипто„‡фии.
• Обсу‰ить кипто„‡фическую систему RSA (RIVERST-SHAMIR-ADLE-
MAN).
• Обсу‰ить кипто„‡фическую систему Р‡бин‡ (Rabin).
• Обсу‰ить кипто„‡фическую систему Эль-Г‡м‡лfl (ElGamal).
• Обсу‰ить киптосистему н‡ осно‚е мет эллиптических ки‚ых.

В этой лекции ‡ссм‡т肇ютсfl несколько ‡симметично-ключе‚ых кип-


то„‡фических систем: RSA (RIVERST-SHAMIR-ADLEMAN), Р‡бин‡ (Rabin),
Эль-Г‡м‡лfl (ElGamal), киптосистемa н‡ осно‚е мет эллиптических ки‚ых
(ECC — Elliptic Curve Cryptosystem).
Обсуж‰ение кипто„‡фической системы Диффи-Хеллм‡н‡ (Diffie-Hel-
lman) отложено ‰о лекции 15, потому что это „л‡‚ным об‡зом ‡л„оитм з‡щиты
обмен‡ ключ‡ми, ‡ не ‡л„оитм шифниfl/‰ешифниfl.

Кипто„‡фическ‡fl систем‡ Диффи-Хелм‡н‡ обсу扇етсfl ‚ лекции 15.

10.1. В‚е‰ение
В лекциflх 2-8 мы пок‡з‡ли пинципы кипто„‡фии с симметичными клю-
ч‡ми. В этой лекции мы н‡чин‡ем обсуж‰ение ‡симметично-ключе‚ой кипто„‡-
фии. Симметичн‡fl и ‡симметично-ключ傇fl кипто„‡фии бу‰ут сущест‚ть
п‡‡ллельно и по‰олж‡ть обслуж肇ть общест‚о. Мы ‚еим, что они ‰ополнflют
‰у„ ‰у„‡; пеимущест‚‡ о‰ной компенсиуют не‰ост‡тки ‰у„ой.
Концепту‡льные отличиfl меж‰у этими ‰‚умfl систем‡ми б‡зиуютсfl н‡ том,
к‡к эти системы сох‡нflют секетность. В кипто„‡фии с симметичными клю-
ч‡ми 燉‡ч‡ секетности ‰олжн‡ быть ‡з‰елен‡ меж‰у ‰‚умfl лю‰ьми. В ‡симме-
тично-ключе‚ой кипто„‡фии секетность — песон‡льн‡fl 燉‡ч‡ (не‡з‰е-
ленн‡fl); чело‚ек со片ет и сох‡нflет с‚ою собст‚енную т‡йну.
В сообщест‚е n лю‰ей пи кипто„‡фии с симметичными ключ‡ми ‰лfl
сох‡нениfl секетности тебуетсfl n (n – 1)/2 обще‰оступных ключей. В ‡симме-
тично-ключе‚ой кипто„‡фии необхо‰имы только n песон‡льных ключей.

318
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

Сообщест‚о с количест‚ом уч‡стнико‚ (106) пи кипто„‡фии с симметичными


ключ‡ми тебло бы 5 × 1011 обще‰оступных ключей; ‡симметично-ключ傇fl
кипто„‡фиfl тебо‚‡л‡ бы 1 миллион песон‡льных ключей.

Кипто„‡фиfl с симметичными ключ‡ми б‡зиуетсfl н‡ со‚местном


использнии ключей; ‡симметично-ключ傇fl кипто„‡фиfl б‡зиуетсfl
н‡ песон‡льном ключе.

Есть некотоые ‰у„ие ‡спекты безоп‡сности помимо шифниfl, кото-


ые писущи ‡симметично-ключе‚ой кипто„‡фии. Они ‚ключ‡ют уст‡но‚ле-
ние по‰линности и цифо‚ые по‰писи. Всflкий ‡з, к‡ пиложение б‡зиует-
сfl н‡ песон‡льной т‡йне, мы ‰олжны использть ‡симметично-ключе‚ую
кипто„‡фию.
Об‡тим ‚ним‡ние н‡ то, что кипто„‡фиfl с симметичными ключ‡ми
б‡зиуетсfl н‡ по‰ст‡но‚ке и пеест‡но‚ке сим‚оло‚ (сим‚оло‚ или бит), ‡
‡симметично-ключ傇fl кипто„‡фиfl — н‡ пименении м‡тем‡тических
функций к числ‡м. В кипто„‡фии с симметичными ключ‡ми исхо‰ный
текст и з‡шифнный текст пе‰ст‡‚лflют к‡к комбин‡цию сим‚оло‚. Ши-
фние и ‰ешифние з‰есь — это пеест‡но‚к‡ этих сим‚оло‚ или з‡мен‡
о‰но„о сим‚ол‡ ‰у„им. В ‡симметично-ключе‚ой кипто„‡фии исхо‰ный
текст и з‡шифнный текст – числ‡; их шифние и ‰ешифние — это
м‡тем‡тические функции, котоые пименflютсfl к числ‡м, чтобы со片ть ‰у-
„ие числ‡.

В кипто„‡фии с симметичными ключ‡ми сим‚олы пеест‡‚лflютсfl


или з‡менflютсfl ‰у„ими; ‚ ‡симметично-ключе‚ой кипто„‡фии числ‡
пеоб‡зуютсfl с помощью м‡тем‡тических функций.

Ключи

Асимметичн‡fl ключ傇fl кипто„‡фиfl использует ‰‚‡ от‰ельных ключ‡:


о‰ин секетный (ч‡стный) и о‰ин откытый (обще‰оступный); шифние и ‰е-
шифние пе‰ст‡‚лflют собой поцесс з‡пи‡ниfl и отпи‡ниfl з‡мко‚ ключ‡-
ми. В этом случ‡е з‡мок, з‡петый откытым ключом ‰оступ‡, можно отпееть
только с соот‚етст‚ующим секетным ключом. Рисунок 10.1 пок‡зы‚‡ет, что если
Алис‡ з‡пи‡ет з‡мок откытым ключом ‰оступ‡ Боб‡, то только секетный ключ
Боб‡ может отпееть е„о.

Общ‡fl и‰еfl

Рисунок 10.2 пок‡зы‚‡ет общую и‰ею ‡симметично-ключе‚ой кипто„‡-


фии пи использнии ‰лfl шифниfl. В бу‰ущих лекциflх мы у‚и‰им ‰у„ие
пиложениfl ‡симметично-ключе‚ой кипто„‡фии. К‡к пок‡зы‚‡ют исунки, ‚
отличие от кипто„‡фии с симметичными ключ‡ми пи ‡симметично-ключе-
‚ой кипто„‡фии ключи отлич‡ютсfl: сущест‚ует секетный ключ и откытый

319
Кус Кипто„‡фиfl и безоп‡сность сетей

ключи ‰оступ‡. Хотfl ‚ некотоых кн脇х используют темин ключ з‡секеч肇ниfl


‚место темин‡ секетный ключ, мы бу‰ем пользтьсfl темином ключ з‡секе-
ч肇ниfl только ‰лfl системы с симметичными ключ‡ми и темином секетный
ключ и откытый ключ ‰оступ‡ — ‰лfl ‡симметично-ключе‚ой кипто„‡фии.
Мы ‰‡же пименим ‡зличные сим‚олы, чтобы пок‡з‡ть ти ‡зличных тип‡
ключей. О‰н‡ из пичин ‡зницы ‚ темин‡х — х‡‡кте ключ‡ з‡секеч肇ниfl,
используемо„о ‚ кипто„‡фии с симметичными ключ‡ми, отлич‡етсfl от х‡‡к-
те‡ секетно„о ключ‡, пименflемо„о ‚ ‡симметично-ключе‚ой кипто„‡фии.

Рис.10.1. З‡кытие и откытие ‚ ‡симметично-ключе‚ой киптосистеме

Пе‚ый ключ ‡бот‡ет обычно со стокой сим‚оло‚ (н‡пиме, биты), ‚то-


ой — с числ‡ми или множест‚ом чисел. Ду„ими слми, мы хотим пок‡з‡ть,
что ключ з‡секеч肇ниfl не fl‚лflетсfl ‚з‡имоз‡менflемым с секетным ключом; это
‰‚‡ ‡зличных тип‡ секетности.
Рисунок 10.2 иллюстиует несколько ‚‡жных ф‡кто‚.
Пе‚ый: по‰чек肇ет ‡симметичный х‡‡кте кипто„‡фической систе-
мы. От‚етст‚енность з‡ обеспечение безоп‡сности н‡хо‰итсfl, „뇂ным об‡зом,
н‡ плеч‡х пиемник‡ (‚ ‰‡нном случ‡е это Боб). Боб ‰олжен со片ть ‰‚‡ ключ‡:
о‰ин секетный (ч‡стный) и о‰ин откытый (обще‰оступный). Боб не несет от-
‚етст‚енность з‡ ‡спе‰еление откыто„о ключ‡ ‰оступ‡ ‚сему сообщест‚у. Это
может быть с‰ел‡но чеез к‡н‡л ‡спе‰елениfl откыто„о ключ‡ ‰оступ‡. Хотfl
этот к‡н‡л не обflз‡н обеспеч肇ть секетность, он ‰олжен обеспечить уст‡но‚ле-
ние по‰линности и целостность инфом‡ции о ключе. Е‚‡ не ‰олжн‡ иметь ‚оз-
можности ‡спост‡нflть с‚ой откытый ключ сообщест‚у, пе‰ст‡‚лflfl е„о к‡к
откытый ключ ‰оступ‡ Боб‡. Поблемы ‡спе‰елениfl откыто„о ключ‡ ‰осту-
п‡ обсу扇ютсfl ‚ лекции 15. Н‡ ‰‡нный момент мы пиним‡ем, что т‡кой к‡н‡л
сущест‚ует.

320
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

Рис. 10.2. Общ‡fl и‰еfl ‡симметично-ключе‚ой киптосистемы

Втоой ф‡кт: ‡симметично-ключ傇fl кипто„‡фиfl озн‡ч‡ет, что Боб и


Алис‡ не мо„ут использть о‰но и то же множест‚о ключей ‰лfl ‰‚ухстоонней
с‚flзи. К‡ж‰ый объект ‚ сообщест‚е со片ет с‚ой собст‚енный секетный и от-
кытый ключи ‰оступ‡. Рисунок 10.2 пок‡зы‚‡ет, к‡к Алис‡ может использть
откытый ключ ‰оступ‡ Боб‡, чтобы пе則ть Бобу з‡шифнные сообщениfl.
Если Боб хочет от‚етить, Алис‡ уст‡н‡‚л肇ет с‚ои собст‚енные секетный и от-
кытый ключи ‰оступ‡.
Тетий: ‡симметично-ключ傇fl кипто„‡фиfl озн‡ч‡ет, что Боб ну扇етсfl
только ‚ о‰ном секетном ключе, чтобы получ‡ть ‚сю коеспон‰енцию от любо-
„о уч‡стник‡ сообщест‚‡. Алис‡ ну扇етсfl ‚ ключ‡х, чтобы с‚flз‡тьсfl с n объект‡-
ми ‚ сообщест‚е — о‰ин ключ ‰оступ‡ ‰лfl к‡ж‰о„о. Ду„ими слми, Алис‡ нуж-
‰‡етсfl ‚ кольце ключей ‰оступ‡.

Исхо‰ный текст / з‡шифнный текст


В отличие от кипто„‡фии с симметичными ключ‡ми, ‚ ‡симметично-
ключе‚ой кипто„‡фии исхо‰ный текст и з‡шифнный текст об‡б‡ты‚‡ют-
сfl к‡к целые числ‡. Сообщение ‰олжно пее‰ шифнием ко‰итьсfl к‡к
целое число (или множест‚о целых чисел). После ‰ешифниfl оно ‰олжно
быть ‡сшифно к‡к целое число (или множест‚о целых чисел). Асимметич-
но-ключ傇fl кипто„‡фиfl обычно з‡шифо‚ы‚‡ет или ‡сшифо‚ы‚‡ет м‡-
ленькие ч‡сти инфом‡ции, опе‰елflемые ‰линой ключ‡ шиф‡. Ду„ими сл-
ми, ‡симметично-ключ傇fl кипто„‡фиfl обычно имеет ‚спомтельные цели
помимо шифо‚ки сообщениfl. О‰н‡ко эти ‚спомтельные цели се„о‰нfl и„‡-
ют ‚ кипто„‡фии очень ‚‡жную оль.

Шифние/‰ешифние
Шифние и ‰ешифние ‚ ‡симметично-ключе‚ой кипто„‡фии —
м‡тем‡тические функции, котоые пименflютсfl к числ‡м, пе‰ст‡‚лflющим

321
Кус Кипто„‡фиfl и безоп‡сность сетей

исхо‰ный текст и з‡шифнный текст. З‡шифнный текст можно пе‰-


ст‡‚лflть себе к‡к C = f (K public, P). Исхо‰ный текст можно пе‰ст‡‚лflть себе
к‡к P = g (Kprivate, С). Функциfl f шифниfl используетсfl только ‰лfl шифо-
‚‡ниfl; функциfl ‰ешифниfl g используетсfl ‰лfl ‰ешифниfl. Д‡лее мы
пок‡жем, что функциfl f ну扇етсfl ‚ «л‡зейке» о‰ностоонней функции, чтобы
поз‚олить Бобу ‡сшифо‚ы‚‡ть сообщение, но пепflтст‚ть Е‚е ‰ел‡ть то
же с‡мое.

Потебность ‚ обеих киптосистем‡х

Есть очень ‚‡жный ф‡кт, котоый ин‡ неп‡‚ильно истолко‚ы‚‡етсfl.


Поfl‚ление ‡симметично-ключе‚ой кипто„‡фии (откытый ключ ‰оступ‡)
не уст‡нflет потебность ‚ кипто„‡фии с симметичными ключ‡ми (ключ
з‡секеч肇ниfl). Пичин‡ ‚ том, что кипто„‡фиfl с ‡симметичными ключ‡-
ми использует м‡тем‡тические функции ‰лfl шифниfl и ‰ешифниfl
н‡мно„о ме‰леннее, чем кипто„‡фиfl с симметичными ключ‡ми. Длfl ши-
фо‚ ки боль ших со об ще ний кип то „‡ фиfl с сим ме тич ны ми клю ч‡ ми
необхо‰им‡. С ‰у„ой стооны, скоость кипто„‡фии с симметичными
ключ‡ми не уст‡нflет потебность ‚ ‡симметично-ключе‚ой кипто„‡фии.
Асимметично-ключ傇fl кипто„‡фиfl необхо‰им‡ ‰лfl уст‡но‚лениfl по‰лин-
ности цифо‚ых по‰писей и ‡боты ст‡нций по ‡ссылке ключей з‡секеч肇-
ниfl. Это озн‡ч‡ет способность системы использть ‚се ‡спекты безоп‡сно-
сти. Се„о‰нfl мы ну扇емсfl ‚ обеих систем‡х кипто„‡фии. О‰н‡ киптоси-
стем‡ ‰ополнflет ‰у„ую.

«Л‡зейꇻ ‚ о‰ностоонней функции

Г뇂н‡fl и‰еfl ‡симметично-ключе‚ой кипто„‡фии — понflтие «л‡зейки»


‚ о‰ностоонней функции.

Функции
Хотfl понflтие функции зн‡комо из м‡тем‡тики, мы ‰‡‰им неофици‡льное
опе‰еление з‰есь. Функциfl — п‡‚ило, по котоому с‚flзы‚‡ют (отоб‡ж‡ют)
о‰ин элемент ‚о множест‚е A, н‡зы‚‡емый ‰оменом, и о‰ин элемент ‚о множе-
ст‚е B, н‡зы‚‡емый ‰и‡п‡зоном, к‡к пок‡з‡но н‡ ис. 10.3.

Рис. 10.3. Функциfl отоб‡жениfl ‰омен‡ ‚ ‰и‡п‡зон

322
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

Об‡тим‡fl функциfl — функциfl, кото‡fl с‚flзы‚‡ет к‡ж‰ый элемент ‚ ‰и‡п‡-


зоне с точно о‰ним элементом ‚ ‰омене.

О‰ностооннflfl функциfl (OWF — One Way Function) — функциfl, кото‡fl


об뇉‡ет сле‰ующими ‰‚умfl с‚ойст‚‡ми:
1. f ‚ычислflетсfl посто. Ду„ими слми, пи ‰‡нном x может быть ле„ко
‚ычислен y = f (x).
2. f -1 ‚ычислflетсfl ту‰но. Ду„ими слми, пи ‰‡нном y, ‚ычислить x= f ~1 (y)
неосущест‚имо.

«Л‡зейꇻ ‚ о‰ностоонней функции


«Л‡зейꇻ ‚ о‰ностоонней функции (TOWF — Trapdoor One Way) — о‰носто-
оннflfl функциfl с тетьим с‚ойст‚ом:
3. Пи ‰‡нном y и ло‚ушке (секетной) x может быть ле„ко ‚ычислен.

Пиме 10.1
К‡ n fl‚лflетсfl большим, n = p × q — о‰ностооннflfl функциfl. Об‡тите
‚ним‡ние, что ‚ этой функции x — котеж1 (p, q) ‰‚ух постых чисел, ‡ y ‚ ‰‡нном
случ‡е — это n. Пи 燉‡нных p и q ‚с儉‡ посто ‚ычислить n. Пи ‰‡нном n очень
ту‰но ‚ычислить p и q. Это — поблем‡ ‡зложениfl н‡ множители, котоую мы
‡ссм‡т肇ли ‚ Лекции 9. В этом случ‡е ‰лfl н‡хож‰ениfl функции f -1 нет еше-
ниfl с полиноми‡льным ‚еменем.

Пиме 10.2
К‡ n fl‚лflетсfl большим, функциfl y = xk mod n — «л‡зейꇻ ‚ о‰носто-
онней функции. Пи 燉‡нных x, k и n посто ‚ычислить y, пименflfl ‡л„о-
итм бысто„о ‚оз‚е‰ениfl ‚ степень, котоый мы обсу扇ли ‚ лекции 9. Пи
燉‡нных y, k и n очень ту‰но ‚ычислить x. Это — поблем‡ ‰искетно„о л-
ифм‡, котоую мы обсу扇ли ‚ лекции 9. В этом случ‡е нет ешениfl с поли-
номи‡льным ‚еменем ‰лfl функции f -1. О‰н‡ко если мы зн‡ем «л‡зейку» и k’ ,
т‡кое, что k × k’ = 1 mod φ(n), мы можем использть x = yk mod n, чтобы н‡й-
ти x. Это — из‚естный ‡л„оитм (RSA — Riverst-Shamir-Adelman), котоый бу-
‰ет ‡ссмотен позже ‚ этой лекции.

Р‡нц傇fl киптосистем‡,

Пе‚‡fl блестflщ‡fl и‰еfl относительно кипто„‡фии откыто„о ключ‡ ‰о-


ступ‡ пи퇉лежит Мекелю и Хеллм‡ну — он‡ изложен‡ ‚ их ‡нце‚ой киптоси-
стеме. Хотfl эт‡ систем‡ не퇉ежн‡ ‚ соот‚етст‚ии с се„о‰нflшними ст‡н‰‡т‡ми,
„뇂н‡fl ее и‰еfl ‰‡ет ‚озможность понflть со‚еменные киптосистемы с откы-
тым ключом, котоые бу‰ут ‡ссм‡т肇тьсfl позже ‚ этой лекции.
Если н‡м „о‚оflт, к‡кие элементы з‡‡нее опе‰еленно„о множест‚‡ чисел
мы имеем, то можно ле„ко ‚ычислить сумму чисел. Если н‡м „о‚оflт сумму, то
ту‰но ск‡з‡ть, к‡кие элементы «н‡хо‰flтсfl ‚ ‡нце».

1 Котеж — после‰о‚‡тельность конечно„о числ‡ элементо‚.


323
Кус Кипто„‡фиfl и безоп‡сность сетей

Опе‰еление
Пе‰положим, что н‡м ‰‡ны ‰‚‡ k-котеж‡, a = [a1,a2, …,ak] и x = [x1,x2, …,xk].
Пе‚ый котеж — з‡‡нее опе‰еленное множест‚о; ‚тоой котеж, ‚ котоом x
‡‚ен только 0 или l, опе‰елflет, к‡кие элементы a ‰олжны быть отбошены ‚
‡нце. Сумм‡ элементо‚ ‚ ‡нце ‡‚н‡

s = knapsackSum (a, x) = x1 a1 + x2 a2 + ... + xkak

По ‰‡нным a и x посто ‚ычислить s. О‰н‡ко по ‰‡нному s ту‰но н‡йти x. Ду-


„ими слми, s = knapsackSum (x, a) ‚ычислflетсfl посто, но x = inv_knapsackSum
(s, a) ту‰ен. Функциfl knapsackSum — о‰ностооннflfl функциfl, если a – общий k-
котеж.

Супеу‚еличение котеж‡
Посто ‚ычислить knapsackSum и inv_knapsackSum, если k-котеж супеу‚е-
лич肇етсfl. В супеу‚елич肇ющемсfl котеже ai ≥ a1 + a2 + ... + ai-1. Ду„ими сло-
‚‡ми, к‡ж‰ый элемент (коме a1) больше или ‡‚ен сумме ‚сех пе‰ы‰ущих эл-
ементо‚. В этом случ‡е мы ‚ычислflем knapsackSum и inv_knapsackSum, к‡к пок‡-
з‡но ‚ Ал„оитме 10.1. Ал„оитм inv_knapsackSum з‡пуск‡етсfl от н‡ибольше„о
элемент‡ и по‰олж‡ет поцесс к н‡именьшему. В к‡ж‰ой ите‡ции он по‚еfl-
ет, н‡хо‰итсfl ли элемент ‚ юкз‡ке.

Ал„оитм 10.1. knapsacksum и inv_knapsackSum ‰лfl супеу‚елич肇юще„осfl


k-котеж‡

knapsackSum (x[1,…,k], a[1,…,k] ) Inv_knapsackSum (s, a[1,…,k])


{ {
s ← 0 for (¥=k down to 1)
for (¥=1 to k) {
{ ¥f s ≥ aj
s ← s + a¥ × x¥ {
} x¥ ← 1
return x s ← s - a¥
} }
else x¥ ← 0
}
return x[1,…,k]
}

Пиме 10.3
К‡к очень ти‚и‡льный пиме, пе‰положим, что ‰‡ны a = [17, 25, 46, 94,
201, 400] и s = 272. Т‡блиц‡ 10.1 пок‡зы‚‡ет, к‡к н‡йти котеж, используfl поце-
‰уу inv_knapsackSum ‚ ‡л„оитме 10.1.

324
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

Т‡блиц‡ 10.1. Зн‡чениfl i, a и x ‚ пимее 10.3

i ai s s ≥ ai xi s ← s-ai × xi
6 400 272 false x6=0 272
5 201 272 true x5 = 1 71
4 94 71 false x4 = 0 71
3 46 71 true x3 = 1 25
2 25 25 true x2 = 1 0
1 17 0 false x1 = 0 0

В этом случ‡е x = [0, 1, 1,0, 1,0], — это озн‡ч‡ет, что ‚ юкз‡ке н‡хо‰flтсfl 25,
46 и 201.

Секетн‡fl с‚flзь с использнием ‡нц‡


Посмотим, к‡к Алис‡ может пе則ть секетное сообщение Бобу, исполь-
зующему ‡нце‚ую киптосистему. И‰еfl пок‡з‡н‡ н‡ ис. 10.4.

Рис. 10.4. Секетн‡fl с‚flзь с использнием ‡нце‚ой киптосистемы

Гене‡циfl ключей
Этот поцесс:
‡. Со片ет супеу‚елич肇ющийсfl k-котеж b = [b1, b2,..., bk].
б. Выби‡ет мо‰уль n, т‡кой, что n > b 1 + b2 + ... + bk.
‚. Выби‡ет случ‡йное целое число r, котоое fl‚лflетсfl ‚з‡имно постым с n
и 1 ≤ r ≤ n – 1.
„. Со片ет ‚еменный k-котеж t = [t1, t2,…….. tk] , ‚ котоом ti = r × bi mod n.

325
Кус Кипто„‡фиfl и безоп‡сность сетей

‰. Выби‡ет пеест‡но‚ку k-объекто‚ и н‡хо‰ит но‚ый котеж a = permute(t).


е. Откытый ключ k-котеж‡ — a. Секетный ключ — n, r и k-котеж b.

Шиф‡циfl
Пе‰положим, что Алисе 퇉о посл‡ть сообщение Бобу.
‡. Алис‡ пеоб‡зует с‚ое сообщение ‚ k-котеж x=[x1, x2,…. xk] , ‚ котоом
xi — либо 0, либо 1. Котеж пе‰ст‡‚лflет собой исхо‰ный текст.
б. Алис‡ использует knapsackSum ‰лfl ‚ычислениfl s ‚ к‡чест‚е исхо‰но„о тек-
ст‡.

Дешиф‡циfl
‡. Боб получ‡ет з‡шифнный текст s.
б. Боб ‚ычислflет s’ = r -1 × s mod n.
‚. Боб пеест‡‚лflет x’ ‰лfl то„о, чтобы н‡йти x. Котеж x есть ‚осст‡но‚лен-
ный исхо‰ный текст.

Пиме 10.4
Это ти‚и‡льный (очень ле„ко ‡скы‚‡емый пиме). Он пи‚о‰итсfl толь-
ко ‰лfl то„о, чтобы пок‡з‡ть поце‰уу.
1. Гене‡циfl ключей:
a. Боб со片ет супеу‚елич肇ющийсfl котеж b = [7, 11, 19, 39, 79, 157,
313].
b. Боб ‚ыби‡ет мо‰уль n = 900 и r = 37, и [4 2 5 3 1 7 6] к‡к т‡блицу пее-
ст‡но‚ок.
c. Боб тепеь ‚ычислflет котеж t = [259, 407, 703, 543, 223, 409, 781].
d. Боб тепеь ‚ычислflет котеж a = пеест‡но‚к‡ (t)= [543, 407, 223, 703,
259, 781, 409].
e. Боб объfl‚лflет a; он сох‡нflет ‚ т‡йне n, r и b.
2. Пе‰положим, что Алис‡ хочет пе則ть е‰инст‚енный сим‚ол «g» Бобу.
a. Он‡ использует пе‰ст‡‚ление ASCII н‡ 7 бито‚ «g», (1100111) 2 и со片-
ет котеж x = [1,1,0,0, 1, 1, 1]. Это — исхо‰ный текст.
b. Алис‡ ‚ычислflет s = knupsackSum (a, x) = 2165. Это — з‡шифнный
текст, пе則‚‡емый Бобу.
3. Боб может ‡сшифть з‡шифнный текст, s = 2165.
a. Боб ‚ычислflет s’ = s × r -1 mod n = 2165 × 37-1 mod 900 = 527.
b. Боб ‚ычислflет x’ = inv_knapsackSum (s’, b) = [1, 1, 0, 1, 0, 1, 1].
c. Боб ‚ычислflет x = пеест‡но‚к‡ (x’) = [1, 1, 0, 0, 1, 1, 1]. Он интепе-
тиует стоку (1100111) 2 к‡к сим‚ол «g».

Л‡зейк‡
Вычисление суммы элементо‚ ‚ ‡нце Алисы — ф‡ктически умножение м‡-
тицы-стоки x н‡ м‡тицу-столбец a. Результ‡т — м‡тиц‡ s 1 × 1. М‡тичное ум-
ножение: s = x × a, ‚ котоом x fl‚лflетсfl м‡тицей-стокой, ‡ a — м‡тиц‡-стол-
бец — о‰ностооннflfl функциfl. По ‰‡нным s и x Е‚‡ не сможет ле„ко н‡йти a.
Боб, о‰н‡ко, имеет л‡зейку. Боб использует е„о s’ = r -1 × s и секетную, супеу‚е-
лич肇ющуюсfl м‡тицу-столбец b, чтобы н‡йти м‡тицу-стоку x. Пи этом он

326
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

пименflет поце‰уу inv_knapsackSum. Пеест‡но‚к‡ поз‚олflет Бобу н‡йти x по


из‚естному x’.

10.2. Кипто„‡фическ‡fl систем‡ RSA


С‡мый общий ‡л„оитм откыто„о ключ‡ ‰оступ‡ — кипто„‡фическ‡fl си-
стем‡ RSА, н‡з‚‡нн‡fl по имени е„о изобет‡телей Ри‚ест‡, Ш‡ми‡, Э‰елм‡н‡
(Rivest, Shamir и Adelman).

В‚е‰ение

RSА пименflет ‰‚‡ тип‡ ключей — e и d, „‰е e — откытый, a d — секетный.


Пе‰положим, что P — исхо‰ный текст и C — з‡шифнный текст. Алис‡ ис-
пользует C = Pe mod n, чтобы со片ть з‡шифнный текст C из исхо‰но„о текст‡
P; Боб использует P = Cd mod n, чтобы из‚лечь исхо‰ный текст (ф‡йл), пе則н-
ный Алисой. Мо‰улей n со片етсfl очень большое количест‚о с помощью поцес-
с‡ „ене‡ции ключей, котоый мы обсу‰им позже.
Длfl шифниfl и ‰ешифниfl пименflют ‚оз‚е‰ение ‚ степень по мо-
‰улю. К‡к мы уже обсу扇ли ‚ лекции 9, пи использнии бысто„о ‡л„оитм‡
‚оз‚е‰ение ‚ степень по мо‰улю ‚ыполнимо ‚ полиноми‡льное ‚емfl. О‰н‡ко н‡-
хож‰ение мо‰ульно„о лифм‡ т‡к же сложно, к‡к и ‡зложение числ‡ по мо‰у-
лю. Длfl не„о нет ‡л„оитм‡ с полиноми‡льным ‚еменем. Это озн‡ч‡ет, что Али-
с‡ может з‡шифть сообщение обще‰оступным ключом (e) ‚ полиноми‡льное
‚емfl. Боб т‡кже может ‡сшифть е„о ‚ полиноми‡льное ‚емfl (потому что
он зн‡ет d). Но Е‚‡ не может ‡сшифть это сообщение, потому что он‡ ‰ол-
жн‡ был‡ бы ‚ычислить коень e-той степени из C с использнием мо‰ульной
‡ифметики. Рисунок 10.5 пок‡зы‚‡ет и‰ею RSA.

Рис. 10.5. Сложность опе‡ций ‚ RSA

Ду„ими слми, Алис‡ пименflет о‰ностооннюю функцию (‚оз‚е‰ение


‚ степень по мо‰улю) с л‡зейкой, из‚естной только Бобу. Е‚‡ не зн‡ет л‡зейку, по-

327
Кус Кипто„‡фиfl и безоп‡сность сетей

этому не может ‡сшифть сообщение. Если к‡-нибу‰ь н‡й‰ут полино-


ми‡льный ‡л„оитм ‰лfl мо‰улfl ‚ычислениfl конfl e-той степени из n, то ‚оз‚е‰е-
ние ‚ степень по мо‰улю n не бу‰ет больше о‰ностоонней функцией.

Поце‰у‡

Рисунок 10.6 пок‡зы‚‡ет общую и‰ею поце‰уы, используемой ‚ RSA.

RSA использует ‚оз‚е‰ение ‚ степень по мо‰улю ‰лfl шифниfl/‰ешифниfl.


e
Длfl то„о чтобы ‡т‡кть з‡кытый текст, Е‚‡ ‰олжн‡ ‚ычислить √C mod n.

Рис. 10.6. Шифние, ‰ешифние и „ене‡циfl ключей ‚ RSA

Д‚е ‡л„еб‡ические стуктуы


RSA 燉ейст‚ует ‰‚е ‡л„еб‡ических стуктуы: кольцо и „уппу.
Кольц‡ шифниfl/‰ешифниfl. Шифние и ‰ешифние с‰ел‡ны
с использнием коммут‡ти‚но„о кольц‡ R = <Zn, +, × > с ‰‚умfl ‡ифметиче-
скими опе‡циflми: сложение и умножение. В RSA это кольцо обще‰оступно, по-
тому что мо‰уль n обще‰оступен. Любой может посл‡ть сообщение Бобу,
пименflfl это кольцо ‰лfl шифниfl.
Гуппы „енеиниfl ключей. RSA использует мультиплик‡ти‚ную „уппу G =
<Zφ(n)*, × > ‰лfl „ене‡ции ключей. Гупп‡ пеж肇ет только умножение и ‰е-
ление (мультиплик‡ти‚ную ин‚есию), котоые необхо‰имы ‰лfl то„о, чтобы соз-
‰‡ть откытые и секетные ключи. Эту „уппу 퇉о скыть, потому что ее мо‰уль
φ(n) fl‚лflетсfl секетным. Мы у‚и‰им, что если Е‚‡ н‡й‰ет этот мо‰уль, он‡ смо-
жет ле„ко ‡т‡кть кипто„‡фическую систему.

328
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

RSA использует ‰‚е ‡л„еб‡ических стуктуы:


откытое кольцо R = <Zn, +, × > и секетную „уппу G = <Zφ(n)*, × >.

Гене‡циfl ключей
Боб использует ш‡„и, пок‡з‡нные ‚ ‡л„оитме 10.2, чтобы со片ть с‚ои от-
кытый и секетный ключи. После „ене‡ции ключей Боб объfl‚лflет котеж (e, n)
к‡к с‚ой откытый ключ ‰оступ‡: Боб сох‡нflет d к‡к с‚ой секетный ключ. Боб
может отк‡з‡тьсfl от p, q и ϕ(n); они не мо„ут изменить е„о секетный ключ, не из-
менflfl мо‰уль. Длfl безоп‡сности екомен‰уетсfl ‡зме ‰лfl к‡ж‰о„о посто„о p
или q — 512 бит (почти 154 ‰есflтичные цифы). Это опе‰елflет ‡зме мо‰улfl, n
1024 бит‡ (309 циф).

Ал„оитм 10.2. RSA-„ене‡циfl ключей

RSA Key_Generat¥on (RSA- „ене‡циfl ключ‡)


{
Выб‡ть ‰‚‡ больших постых p and q, т‡ких, что p ≠ q.
n ← p x q
φ(n) ← (p-1) x (q –1)
Выб‡ть e, т‡кое, что 1 < e < φ(n) и e — ‚з‡имно постое с φ(n)
d ← e-1 mod ϕ (n) // d – это ин‚есиfl e по мо‰улю φ(n)
Откытый ключ ← (e, n) // Объfl‚лflетсfl откытым
Секетный ключ ← d // Сох‡нflетсfl ‚ секете
return Publ¥c_key and Pr¥vate_key // Воз‚‡т откыто„о и секетно„о
// ключей
}

В RSA котеж (e, n) — откытый ключ ‰оступ‡;


целое число d — секетный ключ.

Шифние
Пе則ть сообщение Бобу может любой, используfl е„о откытый ключ ‰о-
ступ‡. Шифние ‚ RSA может быть ‚ыполнено с использнием ‡л„оитм‡ с
полиноми‡льной сложностью по ‚емени, к‡к пок‡з‡но ‚ ‡л„оитме 10.3. Бы-
стый ‡л„оитм ‚оз‚е‰ениfl ‚ степень был ‡ссмотен ‚ лекции 9. Р‡зме исхо‰-
но„о текст‡ ‰олжен быть меньше чем n; если ‡зме исхо‰но„о текст‡ больше, то
он ‰олжен быть ‡з‰елен н‡ блоки.

Ал„оитм 10.3. Шифние RSA

RSA_Encryption (P, e, n) // P — исхо‰ный текст ‚ Zn и P < n


{
C ← Fast_Exponentiation (P, e, n) // Вычисление (Pe mod n}
return C
}

329
Кус Кипто„‡фиfl и безоп‡сность сетей

Дешифние
Чтобы ‡сшифть сообщение з‡шифнно„о текст‡, котоое Боб по-
лучил ‚ RSA, он может использть ‡л„оитм 10.4. Н‡м пи„о‰итсfl ‡л„оитм с
полиноми‡льной сложностью по ‚емени, если ‡зме з‡шифнно„о текст‡
меньше, чем n.

Ал„оитм 10.4. Дешифние RSA

RSA_Decrypt¥on (C, d, n) //C — з‡шифнный текст ‚ Zn


{
P <- Fast_Exponent¥at¥on (C, d, n) // Вычисление (Cd mod n)
return P
}

В RSA p и q ‰олжны быть по к‡йней мее 512 бито‚; n ‰олжны быть


по к‡йней мее 1024 бит.

Док‡з‡тельст‚о RSА
Используfl ‚тоую ‚есию теоемы Эйле‡, кото‡fl обсу扇л‡сь ‚ лекции 9,
мы можем ‰ок‡з‡ть, что шифние и ‰ешифние ин‚есны ‰у„ ‰у„у.

Если n =: p × q, <n, и k — целое число, т‡ ak x φ(n)+1 ≡ a (mod n).

Пе‰положим, что исхо‰ный текст, ‚осст‡но‚ленный Бобом, есть P1. Док‡-


жем, что он эк‚肇лентен P.

Некотоые ти‚и‡льные пимеы


Р‡ссмотим некотоые ти‚и‡льные (не퇉ежные) пимеы поце‰уы
RSA. Китеии, котоые ‰ел‡ют систему RSА безоп‡сной, бу‰ут обсуж‰ены ‚ бо-
лее поз‰них ‡з‰ел‡х.

Пиме 10.5
Боб ‚ыби‡ет 7 и 11 к‡к p и q и ‚ычислflет n = 7 × 11 = 77. Зн‡чение φ (n) =
(7–1) (11 –1) или 60. Тепеь он ‚ыби‡ет ‰‚‡ ключ‡, e и d, из z60*. Если он ‚ыби-
‡ет e = 13, то d = 37. Об‡тите ‚ним‡ние, что e × d mod 60 = 1 (они ин‚есны ‰у„
‰у„у). Тепеь пе‰положим, что Алис‡ хочет пе則ть исхо‰ный текст 5 Бобу. Он‡
использует обще‰оступный ключ 13, чтобы з‡шифть 5.

330
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

Исхо‰ный текст: 5 C = 513 = 26 mod 77 З‡шифнный текст: 26

Боб получ‡ет з‡шифнный текст 26 и использует секетный ключ 37,


чтобы ‡сшифть з‡шифнный текст.

З‡шифнный текст: 26 P = от 2637 ‰о 5 mod 77 Исхо‰ный текст 5

Пе則нный Алисой текст получен Бобом к‡к исхо‰ный текст 5 .

Пиме 10.6
Тепеь пе‰положим, что ‰у„ой чело‚ек, Джон, хочет пе則ть сообщение
Бобу. Джон может пименить откытый ключ ‰оступ‡, объfl‚ленный Бобом (‚е-
оflтно, н‡ е„о с‡йте), — 13; исхо‰ный текст Джон‡ — 63. Джон ‰ел‡ет сле‰ующие
‚ычислениfl:

Исхо‰ный текст: 63 C = 6313 = 28 mod 77 З‡шифнный текст: 28

Боб получ‡ет з‡шифнный текст 28 и использует с‚ой секетный ключ


37, чтобы ‡сшифть з‡шифнный текст.

З‡шифнный текст: 28 P = 2837 = 63 mod 77 Исхо‰ный текст: 63

Пиме 10.7
Дженнифе со片ет п‡у ключей ‰лfl себfl. Он‡ ‚ыби‡ет p = 397 и q = 401.
Он‡ ‚ычислflет n = 397 × 401= 159197. З‡тем он‡ ‚ычислflет φ(n) = 396 × 400 =
158400. З‡тем он‡ ‚ыби‡ет e = 343 и d = 12007. Пок‡жите, к‡к Тэ‰ может пе則ть
сообщение «No» Дженнифе, если он зн‡ет e и n.
Решение
Пе‰положим, что Тэ‰ хочет пе則ть сообщение «No» Дженнифе. Он из-
менflет к‡ж‰ый сим‚ол н‡ число (от 00 ‰о 25), сопост‡‚лflет к‡ж‰ой бук‚е число,
со‰еж‡щее ‰‚е цифы. З‡тем он с‚flзы‚‡ет ‰‚‡ ко‰инных сим‚ол‡ и получ‡ет
четыехзн‡чное число. Исхо‰ный текст — 1314. З‡тем Тэ‰ использует e и n, чтобы

Рис. 10.7. Шифние и ‰ешифние ‚ пимее 10.7

331
Кус Кипто„‡фиfl и безоп‡сность сетей

з‡шифть сообщение. З‡шифнный текст 1314343 = 33677 mod 159197.


Дженнифе получ‡ет сообщение 33677 и использует d ключ ‰ешифниfl, чтобы
‡сшифть это сообщение: 3367712007 = 1314 mod 159197. З‡тем Дженнифе
‡сшифо‚ы‚‡ет 1314 к‡к сообщение «No». Рисунок 10.7 пок‡зы‚‡ет этот поцесс.

Ат‡ки RSА

До н‡стоflще„о момент‡ не было обн‡ужено ник‡ких ‡зушительных ‡т‡к


RSА. Несколько ‡т‡к были пе‰ск‡з‡ны. Они оснны н‡ сл‡бом исхо‰ном тек-
сте, сл‡бом ‚ыбое п‡‡мет‡ или несоот‚етст‚ующей е‡лиз‡ции. Рисунок 10.8
пок‡зы‚‡ет к‡те„оии потенци‡льных ‡т‡к.

Рис. 10.8. Д臄‡мм‡ ‚озможных ‡т‡к н‡ RSA

Ат‡к‡ ‡зложениfl н‡ множители


Безоп‡сность RSА б‡зиуетсfl н‡ сле‰ующей и‰ее: мо‰уль н‡столько боль-
шой, что ‡зложение н‡ множители ‚ ‡зумное ‚емfl неосущест‚имо. Боб ‚ыби-
‡ет p и q и ‚ычислflет n = p × q. Число n обще‰оступно, p и q fl‚лflютсfl секетны-
ми. Если Е‚‡ сможет ‡зложить н‡ множители n и получить p и q, то он‡ может ‚ы-
числить φ(n) = (p – 1) (q – 1). З‡тем Е‚‡ т‡ может ‚ычислить d = e-1 mod φ(n),
потому что e обще‰оступен. Секетный ключ d — л‡зейк‡, котоую Е‚‡ может ис-
пользть, чтобы ‡сшифть з‡шифнное сообщение.
К‡к мы узн‡ли ‚ лекции 9, есть мно„о ‡л„оитмо‚ ‡зложениfl н‡ множите-
ли, но ни о‰ин из них не может н‡йти сомножители большо„о цело„о числ‡ с по-
линоми‡льной сложностью ‚емени. Длfl то„о чтобы обеспечить безоп‡сность,
RSA тебует, чтобы n был больше чем 300 ‰есflтичных циф. Это озн‡ч‡ет, что мо-
‰уль ‰олжен быть по к‡йней мее 1024 бит‡. Д‡же пи использнии мощней-

332
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

ше„о и с‡мо„о бысто„о компьюте‡, ‰оступно„о н‡ се„о‰нfl, ‡зложение н‡ мно-


жители цело„о числ‡ т‡ко„о ‡зме‡ тебует неосущест‚имо большо„о ‚емени.
Это озн‡ч‡ет, что RSA безоп‡сен, пок‡ не бу‰ет н‡й‰ен эффекти‚ный ‡л„оитм
‡зложениfl н‡ множители.

Ат‡к‡ с ‚ыбокой з‡шифнно„о текст‡


Потенци‡льн‡fl ‡т‡к‡ RSА б‡зиуетсfl н‡ мультиплик‡ти‚ном с‚ойст‚е RSA.
Пе‰положим, Алис‡ со片ет з‡шифнный текст C = Pe mod n и пе則ет C
Бобу. Т‡кже пе‰положим, что Боб ‡сшифует поиз‚ольный з‡шифнный
текст ‰лfl Е‚ы – С1, отличный от C. Е‚‡ пеех‚‡ты‚‡ет C и использует сле‰ующие
ш‡„и, чтобы н‡йти P:
‡. Е‚‡ ‚ыби‡ет случ‡йное целое число X ‚ Z n*.
б. Е‚‡ ‚ычислflет Y = C × Xe mod n.
‚. Е‚‡ пе則ет Y Бобу ‰лfl ‰ешифниfl и получ‡ет Z = Yd mod n; это ш‡„
‡т‡ки ‚ыбокой з‡шифнно„о текст‡.
„. Е‚‡ может ле„ко н‡йти P, потому что

Z = Yd mod n = (C × Xe)d mod n = (Cd × Xed ) mod n = (Cd × X) mod n = (P × X) mod n


Z = (P × X) mod n → P=Z × X-1 mod n

Е‚‡ пименflет ‡сшиенный е‚кли‰о‚ ‡л„оитм ‰лfl то„о, чтобы н‡йти


мультиплик‡ти‚ную ин‚есию X, и ‚ конечном счете зн‡чение P.

Ат‡ки н‡ пок‡з‡тель степени шифниfl


Чтобы уменьшить ‚емfl шифниfl, можно попыт‡тьсfl использть ко-
откий ключ шифниfl — м‡лое зн‡чение числ‡ e, н‡пиме, зн‡чение ‰лfl e,
т‡кое к‡к e = 3 (‚тоое постое число). О‰н‡ко есть некотоые потенци‡льные
‡т‡ки н‡ пок‡з‡тель пи е„о м‡лом зн‡чении степени шифниfl, котоые мы
з‰есь к‡тко обсу扇ем. Эти ‡т‡ки ‚ообще не конч‡ютсfl ‚скытием системы, но
они ‚се-т‡ки ‰олжны быть пе‰от‚‡щены. Длfl то„о чтобы со‚‡ть эти ‚и‰ы ‡т‡к,
екомен‰уетсfl использть e = 216 + 1 = 65537 (или постое число, близкое к это-
му зн‡чению).

Ат‡к‡ теоемы Купеcмит‡ (Coppersmith) может быть „뇂ной ‰лfl ‡т‡ки м‡ло-
„о пок‡з‡телfl степени н‡ ключ шифниfl. Осно‚ное положение этой теоемы:
‰лfl полином‡ f(x) степени e по мо‰улю n, чтобы н‡йти кони, если о‰ин из ко-
ней fl‚лflетсfl меньшим чем n1/e, можно использть ‡л„оитм сложности, log n.
Эт‡ теоем‡ может быть пименен‡ к RSA-киптосистеме C = f(P) = Pe mod n.
Если e = 3 и из‚естны хотfl бы ‰‚е тети бито‚ ‚ исхо‰ном тексте P, ‡л„оитм
может н‡йти ‚се биты ‚ исхо‰ном тексте.

Ат‡к‡ шиоко‚ещ‡тельной пе則чи может быть н‡ч‡т‡, если о‰ин объект пе-
則ет о‰но и то же сообщение „уппе получ‡телей с тем же с‡мым ключом ши-
фниfl. Н‡пиме, пе‰положим сле‰ующий сцен‡ий: Алис‡ хочет пе則ть
о‰но и то же сообщение тем получ‡телflм с тем же с‡мым обще‰оступным клю-
чом e = 3 и мо‰улflми n1, n2 и n3.

333
Кус Кипто„‡фиfl и безоп‡сность сетей

C1 = P3 mod n1 C2 = P3 mod n 2 C3 = P3 mod n3

Пименflfl кит‡йскую теоему об ост‡тк‡х к этим тем у‡‚нениflм, Е‚‡ мо-


жет н‡йти у‡‚нение фомы C’ = P3 mod n1n2n3. Это озн‡ч‡ет, что P3 < n1n2n3 и что
C’ = P3 еш‡етсfl с помощью обычной ‡ифметики (не мо‰ульной). Е‚‡ может
н‡йти зн‡чение C’ = P1/3.

Ат‡к‡ с‚flз‡нных меж‰у собой сообщений был‡ обн‡ужен‡ Ф‡нклином Рей-


теом (Franklin Reiter). Он‡ может быть к‡тко опис‡н‡ сле‰ующим об‡зом.
Алис‡ з‡шифо‚‡л‡ ‰‚‡ исхо‰ных текст‡, P1 и P2, с помощью e = 3 и пе則ет C1
и C2 Бобу. Если P1 с‚flз‡н с P2 линейной функцией, то Е‚‡ может ‚осст‡но‚ить P1
и P2 ‚ ‚ыполнимое ‚емfl ‚ычислениfl.

Ат‡к‡ коотко„о списк‡, обн‡уженн‡fl Купесмитом, может быть к‡тко


опис‡н‡ сле‰ующим об‡зом. Алис‡ имеет сообщение М ‰лfl пе則чи Бобу. Он‡
з‡писы‚‡ет сообщение и з‡шифо‚ы‚‡ет е„о к‡к сообщение r1, ‡ езульт‡т з‡пи-
сы‚‡ет к‡к C1 и пе則ет C1 (Бобу). Е‚‡ пеех‚‡ты‚‡ет C1 и у‰‡лflет е„о. Боб сооб-
щ‡ет Алисе, что он не получил сообщение, т‡к что Алис‡ з‡полнflет сообщение,
сн з‡шифо‚ы‚‡ет к‡к сообщение r2 и пе則ет это Бобу. Е‚‡ т‡кже пеех‚‡ты-
‚‡ет и это сообщение. Е‚‡ тепеь имеет C1 и C2, и он‡ зн‡ет, что об‡ з‡шифн-
ных текст‡ пи퇉леж‡т о‰ному и тому же исхо‰ному тексту. Купесмит ‰ок‡з‡л,
что если r1 и r2 кооткие, то Е‚‡ способн‡ ‚осст‡но‚ить пе‚он‡ч‡льное сообще-
ние М.

Ат‡ки пок‡з‡телfl степени ‰ешиф‡ции


Д‚е фомы ‡т‡к мо„ут быть по‚е‰ены н‡ пок‡з‡тель степени ‰ешиф‡ции:
‡т‡к‡ ‡скытой степени ‰ешиф‡ции и ‡т‡к‡ м‡ло„о пок‡з‡телfl степени ‰ешифо-
‚‡ции. Они обсу扇ютсfl ниже.

Ат‡к‡ ‡скыто„о пок‡з‡телfl степени ‰ешиф‡ции. Оче‚и‰но, что если Е‚‡


может н‡йти пок‡з‡тель степени ‰ешиф‡ции, d, он‡ сможет ‡сшифть теку-
щее з‡шифнное сообщение. О‰н‡ко н‡ этом ‡т‡к‡ не ост‡н‡‚л肇етсfl. Если
Е‚‡ зн‡ет зн‡чение d, он‡ может использть ‚еоflтностный ‡л„оитм (не обсуж-
‰‡емый з‰есь) к числу n и н‡йти зн‡чениfl p и q. Сле‰о‚‡тельно, если Боб изменит
только у„ож‡ющий безоп‡сности пок‡з‡тель степени ‰ешифниfl, но сох‡-
нит тот же с‡мый мо‰уль n, Е‚‡ сможет ‡сшифть бу‰ущие сообщениfl, пото-
му что он‡ сможет ‡зложить н‡ множители n. Поэтому если Боб узн‡ет, что пок‡-
з‡тель степени скомпометин, он ‰олжен ‚ыб‡ть но‚ое зн‡чение ‰лfl p и q,
‚ычислить n и со片ть полностью но‚ые секетный и откытый ключи ‰оступ‡.

В RSA, если пок‡з‡тель степени d скомпометин, т‡ p, q, n, e и d


‰олжны быть с„енеины з‡но‚о.

Ат‡к‡ м‡ло„о зн‡чениfl пок‡з‡телfl степени ‰ешиф‡ции. Боб может по‰ум‡ть,


что использние м‡ло„о зн‡чениfl степени секетно„о ключ‡ d пи‚о‰ит к более
быстой ‡боте ‡л„оитм‡ ‰ешиф‡ции. Вине пок‡з‡л, что ‚ случ‡е d < 1/3n1/4

334
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

‚озможен специ‡льный тип ‡т‡ки, осннной н‡ цепной ‰оби, — тем‡, кото‡fl


‡ссм‡т肇етсfl ‚ теоии чисел. Этот тип ‡т‡ки может пе„нуть иску безо-
п‡сность RSА. Длfl то„о чтобы это поизошло, ‰олжно ‚ыполнflтьсfl усло‚ие, что
q < p < 2q; если эти ‰‚‡ усло‚иfl сущест‚уют, Е‚‡ может ‡зложить n н‡ сомножи-
тели ‚ полиноми‡льное ‚емfl.

В RSA екомен‰о‚‡но, что d ‰олжно иметь ‚еличину d ≥ 1/3 n1/4, чтобы


пе‰от‚‡тить ‡т‡ку м‡ло„о зн‡чениfl ключ‡ ‰ешиф‡ции.

Ат‡ки исхо‰но„о текст‡


Исхо‰ный текст и з‡шифнный текст ‚ RSA — это пеест‡но‚ки ‰у„
‰у„‡, потому что это целые числ‡ ‚ том же с‡мом инте‚‡ле (от 0 ‰о n – 1). Ду-
„ими слми, Е‚‡ уже зн‡ет кое-что об исхо‰ном тексте. Эти х‡‡ктеистики мо-
„ут поз‚олить некотоые ‡т‡ки исхо‰но„о текст‡. Ти ‡т‡ки были уже упомflнуты
‚ лите‡туе: ‡т‡к‡ коотко„о сообщениfl, ‡т‡к‡ циклическо„о по‚тоениfl и fl‚-
н‡fl ‡т‡к‡.

Ат‡к‡ коотко„о сообщениfl. В ‡т‡ке коотко„о сообщениfl, если Е‚‡ зн‡ет


множест‚о ‚озможных исхо‰ных тексто‚, то ей из‚естн‡ еще о‰н‡ инфом‡циfl и
‰ополнительный ф‡кт, что з‡шифнный текст — пеест‡но‚к‡ исхо‰но„о тек-
ст‡. Е‚‡ может з‡шифть ‚се ‚озможные сообщениfl, пок‡ езульт‡т не бу‰ет
со‚‡ть с пеех‚‡ченным з‡шифнным текстом. Н‡пиме, если из‚естно,
что Алис‡ посыл‡ет число с четыьмfl циф‡ми Бобу, Е‚‡ может ле„ко испыт‡ть
числ‡ исхо‰но„о текст‡ 0000 к 9999, чтобы н‡йти исхо‰ный текст. По этой пичи-
не кооткие сообщениfl ‰олжны быть ‰ополнены случ‡йными бит‡ми ‚ н‡ч‡ле и
конце, чтобы со‚‡ть этот тип ‡т‡ки. Н‡стоflтельно екомен‰уетсfl з‡полнflть ис-
хо‰ный текст случ‡йными бит‡ми пеж‰е н‡ч‡л‡ шифниfl. З‰есь использует-
сfl мето‰, н‡зы‚‡емый OAEP, котоый бу‰ет позже обсуж‰ен ‚ этой лекции.

Ат‡к‡ циклическо„о по‚тоениfl постоен‡ н‡ ф‡кте, что если пеест‡‚лflть


з‡шифнный текст (пеест‡но‚к‡ исхо‰но„о текст‡), то непеы‚ное шифо-
‚‡ние з‡шифнно„о текст‡ ‚ конечном счете кончитсfl исхо‰ным текстом.
Ду„ими слми, если Е‚‡ непеы‚но шифует пеех‚‡ченный з‡шифн-
ный текст C, он‡ ‚ ито„е получит исхо‰ный текст. О‰н‡ко с‡м‡ Е‚‡ не зн‡ет, к‡ко‚
исхо‰ный текст, т‡к что ей неиз‚естно, к‡ по‡ ост‡но‚итьсfl. Он‡ ‰олжн‡
пойти о‰ин ш‡„ ‰‡лее. К‡ он‡ получ‡ет з‡шифнный текст C сн, он‡
‚оз‚‡щ‡етсfl н‡ о‰ин ш‡„, чтобы н‡йти исхо‰ный текст.

Пеех‚‡ченный з‡шифнный текст C


C1 = Ce mod n
C 2 = C1 e mod n
………………..
Ck = Ck-1 e mod n ->, если Ck = C, ост‡но‚к‡: исхо‰ный текст – P = Ck-1

Может ли это быть сеьезной ‡т‡кой н‡ киптосистему RSA? Пок‡з‡но, что


сложность ‡л„оитм‡ эк‚肇лентн‡ сложности ‡зложениfl н‡ множители n. Ду-

335
Кус Кипто„‡фиfl и безоп‡сность сетей

„ими слми, нет ник‡ко„о эффекти‚но„о ‡л„оитм‡, котоый может 燂ешить


эту ‡т‡ку ‚ полиноми‡льное ‚емfl, если n fl‚лflетсfl большим.

Я‚н‡fl ‡т‡к‡ сообщениfl. Ду„‡fl ‡т‡к‡, кото‡fl б‡зиуетсfl н‡ отношениflх пе-


ест‡но‚ки меж‰у исхо‰ным текстом и з‡шифнным текстом, — fl‚н‡fl ‡т‡к‡
сообщениfl. Я‚ное сообщение — сообщение, котоое з‡шифно с‡мо ‚ себfl (не
может быть скыто). Было ‰ок‡з‡но, что есть ‚с儉‡ некотоые сообщениfl, кото-
ые шифуютсfl с‡ми ‚ себfl. Поскольку ключ шифниfl обычно нечетен, имеют-
сfl некотоые исхо‰ные тексты, котоые з‡шифны с‡ми ‚ себfl, т‡кие к‡к P = 0
и P = 1. Но если ключ шифо‚ки ‚ыб‡н тщ‡тельно, число их незн‡чительно.
По„‡мм‡ шифо‚ки может ‚с儉‡ по‚еить, fl‚лflетсfl ли ‚ычисленный з‡ши-
фнный текст т‡ким же, к‡к исхо‰ный текст, и отклонить исхо‰ный текст пе-
е‰ пе則чей з‡шифнно„о текст‡.

Ат‡ки мо‰улfl
Г뇂ной ‡т‡кой RSA fl‚лflетсfl ‡т‡к‡ ‡зложениfl н‡ множители. Ее можно
‡ссм‡т肇ть к‡к ‡т‡ку м‡ло„о мо‰улfl. О‰н‡ко поскольку мы уже обсу‰или эту
‡т‡ку, сконцентиуемсfl н‡ ‰у„ом ‚‡и‡нте: общей ‡т‡ке мо‰улfl.

Общ‡fl ‡т‡к‡ мо‰улfl. Он‡ может быть н‡ч‡т‡, если сообщест‚о использует
общий мо‰уль, n. Н‡пиме, лю‰и ‚ сообщест‚е мо„ли бы поз‚олить тетьей сто-
оне, котоой они ‰о‚еflют, ‚ыби‡ть p и q, ‚ычислflть n и φ(n) и со片ть п‡у об-
‡зцо‚ (ei, di) ‰лfl к‡ж‰о„о объект‡. Тепеь пе‰положим, что Алис‡ ‰олжн‡ пее-
e
‰‡ть сообщение Бобу. З‡шифнный текст Бобу — это C= P B mod n Боб исполь-
e
зует с‚ой секетный ключ, dB, чтобы ‡сшифо‚ы‚‡ть сообщение: P= C B mod n.
Поблем‡ ‚ том, что Е‚‡ может т‡кже ‡сшифть сообщение, если он‡ — член
сообщест‚‡ и ей был‡ н‡зн‡чен‡ п‡‡ об‡зцо‚ (eE и dE), к‡к мы узн‡ли ‚ ‡з‰еле
«‡т‡к‡ м‡ло„о зн‡чениfl ключ‡ ‰ешиф‡ции». Используfl с‚ои собст‚енные ключи
(eE и dE), Е‚‡ может н‡ч‡ть ‚еоflтностную ‡т‡ку н‡ сомножители n и н‡йти dB Бо-
б‡. Чтобы со‚‡ть этот тип ‡т‡ки, мо‰уль не ‰олжен быть ‚ со‚местном польз-
нии. К‡ж‰ый объект ‰олжен ‚ычислить с‚ой собст‚енный мо‰уль.

Ат‡ки е‡лиз‡ции
Пе‰ы‰ущие ‡т‡ки б‡зились н‡ осно‚ной стуктуе RSА. К‡к пок‡з‡л
Дэн Бонех1 (Dan Boneh), есть несколько ‡т‡к е‡лиз‡ции RSА. Мы пи‚е‰ем ‰‚е
из них: ‡т‡к‡ ‡н‡лизом ‚емени и ‡т‡к‡ мощности.

Ат‡к‡ ‡н‡лизом ‚емени (Timing attack). П‡уль Коче2 (Paul Kocher) ‰емон-
стио‚‡л ‡т‡ку только з‡шифнно„о текст‡, н‡зы‚‡емую ‡т‡к‡ ‡н‡лизом ‚е-
мени. Ат‡к‡ осно‚‡н‡ н‡ быстом ‡л„оитме с пок‡з‡тельным ‚еменем, котоый
‡ссмотен ‚ лекции 9. Ал„оитм использует только ‚оз‚е‰ение ‚о ‚тоую сте-
пень, если соот‚етст‚ующий бит ‚ секетном пок‡з‡теле степени d есть 0; он ис-

1 Ученый, кипто„‡ф Стенфо‰ско„о Уни‚еситет‡.


2 О‰ин из с‡мых из‚естных и ‡‚тоитетных специ‡листо‚ ‚ обл‡сти кипто„‡фии, ‡бот‡ет
‚ Cryptography Research team.

336
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

пользуетсfl и пи ‚оз‚е‰ении ‚о ‚тоую степень и умножении, если соот‚етст‚ую-


щий бит — 1. Ду„ими слми, синхониз‡циfl тебует с‰ел‡ть к‡ж‰ую ите‡цию
более ‰линной, если соот‚етст‚ующий бит — 1. Эт‡ ‡зность синхониз‡ции по-
з‚олflет Е‚е н‡хо‰ить зн‡чение бито‚ ‚ d, о‰ин з‡ ‰у„им.
Пе‰положим, что Е‚‡ пеех‚‡тил‡ большое количест‚о з‡шифнных
тексто‚ от C1 ‰о Cm. Т‡кже пе‰положим, что Е‚‡ н‡блю‰‡л‡, к‡кое количест‚о
‚емени тебуетсfl ‰лfl Боб‡, чтобы ‡сшифть к‡ж‰ый з‡шифнный текст,
от T1 ‰о T2 . Е‚‡ зн‡ет, сколько ‚емени тебуетсfl ‰лfl осно‚ных ‡пп‡‡тных
се‰ст‚, чтобы ‚ыполнить опе‡цию умножениfl от t1 ‰о tm. (з‰есь t1 — ‚емfl, те-
буемое ‰лfl ‚ыполнениfl умножениfl). Результ‡т опе‡ции умножениfl = Результ‡т
× Ci mod n.
Е‚‡ может пименить ‡л„оитм 10.5, котоый fl‚лflетсfl упощенной ‚есией
‡л„оитм‡, используемо„о п‡ктически ‰лfl ‚ычислениfl ‚сех бит ‚ d (d0 ‰о d k-1).
Ал„оитм уст‡н‡‚л肇ет н‡ч‡льное зн‡чение d0 = 1 (потому что d ‰олжен
быть нечетным) и ‚ычислflет но‚ые зн‡чениfl ‰лfl Ti’s (‚емfl ‰ешифниfl отно-
ситсfl к d1 ‰о dk-1). Ал„оитм з‡тем пе‰по뇄‡ет, что сле‰ующий бит — это 1, и н‡-
хо‰ит несколько зн‡чений D1 ‰оD2, осно‚ы‚‡flсь н‡ этом пе‰положении.

Ал„оитм 10.5. Ат‡к‡ синхониз‡ции

RSA_T¥m¥ng_Attack([T1……Tm])
{
d0 ← 1 // Потому что d — нечетное
Вычислить [t1…..tm]
[T1……Tm] ← [T1……Tm] -[t1…..tm] // Обно‚ление T¥ ‰лfl сле‰ующе„о бит‡
for (j from1 to k-1)
{
Пеесчит‡ть [t1…..tm] // Пеесчет t¥ ‚ пе‰положении,
// что сле‰ующий бит — это 1
[D1….Dm] ← [T1……Tm] – [t1…..tm]
var ← var¥ance ([D1….Dm]) – var¥ance ([T1……Tm])
¥f (var >0) dj ← 1 else dj ← 0
[T1……Tm] ← [T1……Tm] – dj × [t1…..tm] // Обно‚ление T¥
// ‰лfl сле‰ующе„о бит‡
}
}

Если пинflтое пе‰положение ‚ено, то к‡ж‰ый Di fl‚лflетсfl ‚еоflтно ме-


ньшим, чем соот‚етст‚ующее ‚емfl пе則чи Ti. О‰н‡ко ‡л„оитм использует
‰испесию (или ‰у„ие китеии коелflции), чтобы ‡ссмотеть ‚се ‚‡и‡нты
Di и Ti. Если ‡зность ‰испесии положительн‡fl, ‡л„оитм пиним‡ет пе‰поло-
жение, что сле‰ующий бит ‡‚ен 1 ‚ поти‚ном случ‡е пе‰по뇄‡ет, что сле‰ую-
щий бит — 0. Ал„оитм т‡ ‚ычислflет но‚ые Ti , используfl ‰лfl это„о ост‡‚шие-
сfl биты.
Есть ‰‚‡ мет со‚‡ть ‡т‡ку ‡н‡лизом ‚емени:

337
Кус Кипто„‡фиfl и безоп‡сность сетей

1. ‰оᇂить случ‡йные 燉ежки к ‚оз‚е‰ению ‚ степень, чтобы к‡ж‰ое ‚о-


з‚е‰ение ‚ степень з‡ним‡ло о‰но и то же ‚емfl;
2. Ри‚ест екомен‰о‚‡л «ослепление». По этой и‰ее з‡шифнный текст
умнож‡етсfl н‡ случ‡йное число пее‰ ‰ешифнием. Поце‰у‡ со‰е-
жит сле‰ующие ш‡„и:
a. Выб‡ть секетное случ‡йное число r меж‰у 1 и (n – 1).
b. Вычислить C1 = C × re mod n.
d. Вычислить P1 = C1d mod n.
e. Вычислить P = P1 × r -1 mod n.

Ат‡к‡ ‡н‡лизом мощности по‰обн‡ ‡т‡ке ‡н‡лизом ‚емени. Было пок‡з‡но,


что если Е‚‡ может точно измеить мощность, использнную ‚ течение ‰еши-
фниfl, он‡ может н‡ч‡ть ‡т‡ку ‡н‡лиз‡ мощности н‡ осннии пинципо‚,
‡ссмотенных ‰лfl ‡т‡ки ‡н‡лизом ‚емени. Ите‡ти‚ное умножение и ‚оз‚е‰е-
ние ‚ ꂇ‰‡т потеблflют больше мощности, чем только ите‡ти‚ное ‚оз‚е‰ение
‚ ꂇ‰‡т. Т‡ же с‡м‡fl „упп‡ мето‰о‚, кото‡fl пе‰от‚‡щ‡ет ‡т‡ки ‡н‡лизом
‚емени, может со‚‡ть ‡т‡ки ‡н‡лиз‡ мощности.

Рекоме퉇ции

Сле‰ующие екоме퉇ции оснны н‡ теоетических и экспеимент‡ль-


ных езульт‡т‡х.
1. Число бито‚ ‰лfl n ‰олжно быть, по к‡йней мее, 1024. Это озн‡ч‡ет, что
n ‰олжно быть пиблизительно 21024, или 309 ‰есflтичных циф.
2. Д‚‡ постых числ‡ p и q ‰олжны к‡ж‰ый быть по к‡йней мее 512 бито‚.
Это озн‡ч‡ет, что p и q ‰олжны быть пиблизительно 2512 или 154 ‰есflтич-
ными циф‡ми.
3. Зн‡чениfl p и q не ‰олжен быть очень близки ‰у„ к ‰у„у.
4. p – 1 и q – 1 ‰олжны иметь по к‡йней мее о‰ин большой постой сом-
ножитель.
5. Отношение p/q не ‰олжно быть близко к ‡цион‡льному числу с м‡лень-
ким числителем или зн‡мен‡телем.
6. Мо‰уль n не ‰олжен использтьсfl со‚местно.
7. Зн‡чение e ‰олжно быть 216 + 1 или целым числом, близким к этому зн‡-
чению.
8. Если поизошл‡ утечк‡ ч‡стно„о ключ‡ d, Боб ‰олжен неме‰ленно изме-
нить n т‡к же, к‡к e и d. Было ‰ок‡з‡но, что зн‡ние n и о‰ной п‡ы (e, d)
может пи‚ести к откытию ‰у„их п‡ то„о же с‡мо„о мо‰улfl.
9. Сообщениfl ‰олжны быть ‰ополнены, используfl OAEP, котоый ‡ссм‡-
т肇етсfl ‰‡лее.

Оптим‡льное ‡симметичное ‰ополнение шифниfl


(OAEP — OPTIMAL ASSIMETRIC ENCRYPTION PADDING)

К‡к мы упомин‡ли ‡нее, кооткое сообщение ‚ RSA ‰ел‡ет з‡шифн-


ный текст уflз‚имым к ‡т‡к‡м коотко„о сообщениfl. Т‡м же пок‡з‡но, что постое

338
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

‰оᇂление фикти‚ных ‰‡нных (‰ополнение) к сообщению з‡ту‰нflет ‡боту


Е‚ы, но, пиложи‚ ‰ополнительные усилиfl, он‡ может ‚се еще ‡т‡кть з‡ши-
фнный текст. Решение, пе‰ложенное „уппой RSA и некотоыми ‰у„ими
‡з‡ботчик‡ми, состоит ‚ том, чтобы пименить поце‰уу, н‡з‚‡нную опти-
м‡льным ‡симметичным ‰ополнением шифниfl (OAEP). Рисунок 10.9 пок‡зы-
‚‡ет постую ‚есию этой поце‰уы; е‡лиз‡циfl может использть более
сложную ‚есию.

Рис. 10.9. Оптим‡льное ‡симметичное ‰ополнение шифниfl (OAEP)

И‰еfl, пок‡з‡нн‡fl н‡ исунке 10.9, — это то, что P = P1 || P2, „‰е P1 — з‡м‡-
скинн‡fl ‚есиfl ‰ополненно„о сообщениfl, М;
P2 пе則етсfl, чтобы поз‚олить Бобу н‡йти м‡ску.

Шифние. Ниже пок‡з‡ны ш‡„и поцесс‡ шифниfl.


1. Алис‡ ‰ополнflет сообщение, чтобы с‰ел‡ть е„о m-бито‚ым. Мы обозн‡-
чим е„о М.
2. Алис‡ ‚ыби‡ет случ‡йное число r из k бит. Об‡тите ‚ним‡ние, что r пи-
менflетсfl только о‰н‡ж‰ы и з‡тем уничтож‡етсfl.

339
Кус Кипто„‡фиfl и безоп‡сность сетей

3. Алис‡ использует обще‰оступную о‰ностооннюю функцию G, кото‡fl


пиним‡ет целое r-бито‚ое число, и со片ет m-‡зfl‰ное целое число (m —
‡зме‡ М, и r <m). Это — м‡ск‡.
4. Алис‡ пименflет м‡ску, G (r), чтобы со片ть пе‚ую ч‡сть исхо‰но„о тек-
ст‡ P1 = M ⊕ G(r) fl‚лflетсfl з‡м‡скинным сообщением.
5. Алис‡ со片ет ‚тоую ч‡сть исхо‰но„о текст‡ P2 = H(P1) ⊕ r. Функциfl H —
‰у„‡fl обще‰оступн‡fl функциfl, кото‡fl пиним‡ет m-бито‚ые ‚хо‰ные
сообщениfl и со片ет k-бито‚ые ‚ыхо‰ные сообщениfl. Эт‡ функциfl мо-
жет быть кипто„‡фической хэш-функцией (см. лекцию 12). P2 использу-
етсfl ‰лfl то„о, чтобы ‰‡ть ‚озможность Бобу сн со片ть м‡ску после ‰е-
шиф‡ции.
6. Алис‡ со片ет C = Pe = (P1 || P2)e и пе則ет C Бобу.

Дешифние. Сле‰ующие ш‡„и пок‡зы‚‡ют поцесс ‰ешифниfl:


1. Боб со片ет P = Cd = (P1 || P2).
2. Боб сн‡ч‡л‡ обно‚лflет зн‡чение r, используfl H (P1) ⊕ P2 = H (P1) ⊕ H (P2) ⊕
r = r.
3. Боб пименflет G(r) ⊕ P = G(r) ⊕ G (r) ⊕ М. = М., чтобы обно‚ить зн‡че-
ние ‰ополненно„о сообщениfl.
4. После у‰‡лениfl ‰ополнениfl М, Боб н‡хо‰ит пе‚он‡ч‡льное сообщение.

Ошибк‡ ‚ пе則че
Если хотfl бы о‰ин бит ‚ течение пе則чи пинflт с ошибкой, текст, з‡ши-
фнный RSA, бу‰ет пинflт неп‡‚ильно. Если полученный з‡шифнный
текст отлич‡етсfl от пе則нно„о, пиемник не может опе‰елить пе‚он‡ч‡ль-
ный исхо‰ный текст. Исхо‰ный текст, ‚ычисленный н‡ стооне пиемник‡, мо-
жет очень отлич‡тьсfl от пе則‚‡емо„о пе則тчиком. С則 пе則чи ‰олжн‡
быть ос‚обож‰енной от ошибок з‡ счет ‰оᇂлениfl избыточных бит или обн‡у-
жениfl и исп‡‚лениfl ошибки ‚ з‡шифнном тексте.

Пиме 10.8
Вот е‡льный пиме. Мы ‚ыби‡ем 512-бито‚ые p и q, ‚ычислflем n и φ(n),
з‡тем ‚ыби‡ем e и испыты‚‡ем, что оно ‚з‡имно постое с φ(n). З‡тем мы ‚ычи-
слflем d. Н‡конец, мы пок‡зы‚‡ем езульт‡т шифниfl и ‰ешифниfl. Целое
число p — это число со 159 циф‡ми.

P= 961303453135835045741915812806154279093098455949962158225831508
796479404550564706384912571601803475031209866660649242019180878
0667421096063354219926661209

Целое число q со‰ежит 160 циф.

q= 12060191957231446918276794204450896001555925054637033936061
798321731482148483764659215389453209175225273226830107120695604
602513887145524969000359660045617

340
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

Мо‰уль n = p × q. Это число имеет 309 циф.

n= 1159350417396761496889250986461588752377145737545414477548552613
7614788540S32635081727687881596832516846884930062548576411125016
241455233918.292716250765677272746009708271412773043496050055634
7274566628060099924037102991424472292215772798531727033839381334
692684137 327622000966676671831831088373420823444370953

φ (n)= (p – 1) (q – 1) имеет 309 циф.

φ(n) = 115935041739676149688925098646158875237714573754541447754855
261376147885408326350817276878815968325168468849300625485764111
250162414552339182927162507656751054233608492916752034482627988
117554787657013923444405716989581728196098226361075467211864612
171359107358640614008885170265377277264467341066243857664128

Боб ‚ыби‡ет e = 35535 (и‰е‡льно 65537), и испыт‡ние н‡ постое число по-


к‡зы‚‡ет, что это число и φ(n)— ‚з‡имно постые числ‡. З‡тем Боб н‡хо‰ит ин‚е-
сию e mod φ(n)— это обозн‡ч‡етсfl d.

e= 35535
d= 58008302S6003776393609366128967791759466906208965096218042286
6111380593852S2235873170628691003002171085904433840217072986908
760061153062025249598844480475682409662470814858171304632406440
777048331340108509473852956450719367740611973265574242372176176
74620776371642 0760033708533328853214470885955136670294831

Алис‡ хочет пе則ть сообщение «THIS IS TEST», котоое может быть пе‰-
ст‡‚лено число‚ыми зн‡чениflми, используfl схему ко‰иниfl 00-26 (26 — побел).

P= 1907081826081826002619041819

Шифнный текст, ‚ычисленный Алисой, — это C = Pe, число‚ое зн‡че-


ние пи‚е‰ено ниже.

С= 4753091236462268272063655506105451809423717960704917165232392
430544529606131993285666178434183591141511974112520056829797945
717360361012782188478927415660904800235071907152771859149751884
658886321011483541033616578984679683867637337657774656250792805
2114814184404814184430812773059004692874248559166462108656

Боб может ‚осст‡но‚ить из з‡шифнно„о текст‡ исхо‰ный текст, исполь-


зуfl P = Cd.

P= 1907081826081826002619041819

После ‡сшифо‚ки ‚осст‡но‚ленный исхо‰ный текст — «THIS IS TEST».

341
Кус Кипто„‡фиfl и безоп‡сность сетей

Пиложениfl

Хотfl RSA может использтьсfl, чтобы з‡шифть и ‡сшифо‚ы‚‡ть е-


‡льные сообщениfl, это — очень ‰линные сообщениfl ‰лfl RSA. Поэтому он fl‚лfl-
етсfl полезным ‰лfl коотких сообщений. В ч‡стности мы у‚и‰им, что RSA пиме-
нflетсfl ‚ цифо‚ых по‰писflх и ‰у„их кипто„‡фических систем‡х, котоые
нужны ‰лfl шифниfl м‡леньких сообщений без ‰оступ‡ к симметическому
ключу. К‡к мы у‚и‰им ‚ после‰ующих лекциflх, RSA т‡кже используетсfl ‰лfl уст‡-
но‚лениfl по‰линности ‰окумент‡.

10.3. Киптосистем‡ Р‡бин‡


Киптосистем‡ Р‡бин‡ (М. Rabin) fl‚лflетсfl ‚‡и‡нтом киптосистемы RSА.
RSА б‡зиуетсfl н‡ ‚оз‚е‰ении ‚ степень с‡‚нений. Киптосистем‡ Р‡бин‡ б‡зиу-
етсfl н‡ к‚‡‰‡тичных с‡‚нениflх, и ее можно пе‰ст‡‚ить к‡к кипто„‡фическую
систему RSA, ‚ котоой зн‡чениflм e и d пис‚оены зн‡чениfl e = 2 и d = 1/2. Ду-
„ими слми, шифние — C ≡ p2 (mod n) и ‰ешифние - P ≡ C1/.2 (mod n).
Откытый ключ ‰оступ‡ ‚ киптосистеме Р‡бин‡ — n, секетный ключ fl‚-
лflетсfl котежем (p, q). К‡ж‰ый может з‡шифть сообщение, используfl n, но
только Боб может ‡сшифть сообщение, используfl p и q. Дешифние со-
общениfl неосущест‚имо ‰лfl Е‚ы, потому что он‡ не зн‡ет зн‡чениfl p и q. Рису-
нок 10.10 пок‡зы‚‡ет шифние и ‰ешифние.

Рис. 10.10.Шифние, ‰ешифние и „ене‡циfl ключей ‚ киптосисте-


ме Р‡бин‡

Мы ‰олжны по‰чекнуть, что если Боб пименflет RSA, он может сох‡нить


d и n и отк‡з‡тьсfl после „ене‡ции ключей от p, q и φ(n). Если Боб использует
киптосистему Р‡бин‡, он ‰олжен сох‡нить p и q.

342
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

Поце‰у‡

Гене‡циfl ключей, шифние и ‰ешифние пок‡з‡ны ниже.

Гене‡циfl ключей
Боб использует ш‡„и, пок‡з‡нные ‚ ‡л„оитме 10.6, чтобы со片ть с‚ой от-
кытый ключ ‰оступ‡ и секетный ключ.

Ал„оитм 10.6. Гене‡ции ключей ‰лfl киптосистемы Р‡бин‡

Rab¥n_Key_Generat¥on
{
Выбеите ‰‚‡ больших постых числ‡ p и q ‚ фоме 4 k +3 и p ≠ q.
n ← p×q
Откытый_ключ ← n // Может быть объfl‚лен публично
Секетный_ключ ← (q, n) // Должен сох‡нflтьсfl ‚ секете
return Откытый_ключ и Секетный_ключ
}

Хотfl ‰‚‡ постых числ‡, p и q, мо„ут быть ‚ фоме 4k + 1 или 4 k + 3, по-


цесс ‰ешифниfl ст‡но‚итсfl более ту‰ным, если используетсfl пе‚‡fl фом‡.
Рекомен‰уют пименflть ‚тоую фому, 4 k + 3, ‰лfl то„о чтобы с‰ел‡ть ‰ешифо-
‚‡ние ‰лfl Алисы н‡мно„о поще.

Шифние
Любой может пе則ть сообщение Бобу, пимени‚ е„о откытый ключ ‰о-
ступ‡. Поцесс шифниfl пок‡з‡н ‡л„оитмом 10.7.

Ал„оитм 10.7. Шифние ‚ кипто„‡фической системе Р‡бин‡

Rab¥n_Encrypt¥on (n, P) // n — откытый ключ ‰оступ‡;


// P — з‡шифнный текст Zn*
{
C← P 2mod n // C — з‡шифнный текст
return C
}

Хотfl исхо‰ный текст P может быть ‚ыб‡н из множест‚‡ Zn, но чтобы с‰е-
л‡ть ‰ешифние более постым, мы опе‰елили множест‚о, котоое н‡хо‰ит-
сfl ‚ Zn*.
Шифние ‚ киптосистеме Р‡бин‡ очень постое. Опе‡циfl ну扇етсfl
только ‚ о‰ном умножении, что может быть с‰ел‡но бысто. Это ‚ы„о‰но, к‡
есусы о„‡ничены: н‡пиме, пи использнии к‡т с инте„‡льной схемой,
со‰еж‡щей микопоцессо с о„‡ниченной п‡мflтью, и пи необхо‰имости з‡-
‰ейст‚ть цент‡льный поцессо н‡ кооткое ‚емfl.

343
Кус Кипто„‡фиfl и безоп‡сность сетей

Дешифние
Боб может использть ‡л„оитм 10.8, чтобы ‡сшифть полученный
з‡шифнный текст.

Ал„оитм 10.8. Дешифние ‚ киптосистеме Р‡бин‡

Rab¥n_Decrypt¥on (p, q, C) // C — з‡шифнный текст;


{ // p и q — секетные ключи
a1 ← + (C(p+1)/4) mod p
a2 ← - (C(p+1)/4) mod p
b1 ← + (C(q+1)/4) mod q
b2 ← - (C(q+1)/4) mod q
// Ал„оитм кит‡йской теоемы об ост‡тк‡х ‚ызы‚‡етсfl четые ‡з‡.
P1 ← Кит‡йский_ост‡ток (a1, b1, p, q)
P2 ← Кит‡йский_ост‡ток (a1, b2, p, q)
P3 ← Кит‡йский_ост‡ток (a2, b1, p, q)
P4 ← Кит‡йский_ост‡ток (a2, b2, p, q)
return P1, P2, P3 и P4
}

Мы ‰олжны по‰чекнуть з‰есь несколько моменто‚. Дешиф‡циfl б‡зиует-


сfl н‡ ешении ꂇ‰‡тично„о с‡‚нениfl, котоое ‡ссмотено ‚ лекции 9. По-
скольку полученный з‡шифнный текст — ꂇ‰‡т исхо‰но„о текст‡, это „‡-
‡нтиует, что C имеет кони (ꂇ‰‡тичные ‚ычеты) ‚ Zn*. Ал„оитм кит‡йской
теоемы об ост‡тк‡х используетсfl, чтобы н‡йти четые ꂇ‰‡тных конfl.
С‡мый ‚‡жный пункт ‚ киптосистеме Р‡бин‡ — это то, что он‡ не‰етеми-
нин‡. Дешифние имеет четые от‚ет‡. З‡‰‡ч‡ получ‡телfl сообщениfl —
точно ‚ыб‡ть о‰ин из четыех от‚ето‚ к‡к конечный от‚ет. О‰н‡ко ‚о мно„их си-
ту‡циflх получ‡тель может ле„ко ‚ыб‡ть п‡‚ильный от‚ет.

Киптосистем‡ Р‡бин‡ не ‰етеминио‚‡н‡ — ‰ешифние со片ет


четые о‰ин‡ко‚о ‚еоflтных исхо‰ных текст‡.

Пиме 10.9
Вот очень ти‚и‡льный пиме, чтобы поиллюстить и‰ею.
1. Боб ‚ыби‡ет p = 23 и q = 7. Об‡тите ‚ним‡ние, что об‡ fl‚лflютсfl с‡‚-
нениflми 3 mod 4.
2. Боб ‚ычислflет n = p × q = 161.
3. Боб объfl‚лflет n откытым и сох‡нflет p и q ‚ секете.
4. Алис‡ хочет пе則ть исхо‰ный текст P = 24. Об‡тите ‚ним‡ние, что 161
и 24 fl‚лflютсfl ‚з‡имно постыми; 24 н‡хо‰итсfl ‚ Z161*. Он‡ ‚ычислflет C =
от 242 = 93 mod 161 и пе則ет з‡шифнный текст 93 Бобу.
5. Боб получ‡ет 93 и ‚ычислflет четые зн‡чениfl:
‡. a1 = + (93 (23+1)/4) mod 23 = 1 mod 23
b. a2 = – (93 (23+1)/4) mod 23 = 22 mod 23
с. b 1 = + (93 (7+1)/4) mod 7 = 4 mod 7

344
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

d. b2 = – (93 (7+l)/4) mod 7 = 3 mod 7


6. Боб имеет четые ‚озможных от‚ет‡ — (a1, b 1), (a1, b2), (a2, b 1), (a2, b2) и
использует кит‡йскую теоему об ост‡тк‡х, чтобы н‡йти четые ‚озмож-
ных исхо‰ных текст‡: 116, 24, 137 и 45 (‚се из них ‚з‡имно постые к 161).
Об‡тите ‚ним‡ние, что только ‚тоой от‚ет — исхо‰ный текст Алисы.
Боб ‰олжен пинflть ешение исхо‰fl из ситу‡ции. Об‡тите ‚ним‡ние
т‡кже, что ‚се четые от‚ет‡ пи ‚оз‚е‰ении ‚о ‚тоую степень по мо‰у-
лю n ‰‡ют з‡шифнный текст 93, пе則нный Алисой.

1162 = 93 mod 161 242 = 93 mod 161 1372 = 93 mod 161 452 = 93 mod 161

Безоп‡сность кипто„‡фической системы Р‡бин‡

Кипто„‡фическ‡fl систем‡ Р‡бин‡ безоп‡сн‡, пок‡ p и q — большие чи-


сл‡. Сложность кипто„‡фической системы Р‡бин‡ — т‡к‡fl же, к‡к и у поце-
‰уы ‡зложениfl н‡ множители больших чисел n н‡ ‰‚‡ постых сомножителfl
p и q. Ду„ими слми, кипто„‡фическ‡fl систем‡ Р‡бин‡ т‡к же безоп‡сн‡,
к‡к и RSA.

10.4. Кипто„‡фическ‡fl систем‡ Эль-Г‡м‡лfl


Помимо RSA и кипто„‡фической системы Р‡бин‡ есть ‰у„‡fl кипто-
систем‡ с откытым ключом Эль-Г‡м‡лfl (ElGamal), кото‡fl н‡з‚‡н‡ по имени
ее изобет‡телfl, Т‡хи‡ Эль-Г‡м‡лfl (Taher ElGamal). Киптосистем‡ Эль-Г‡-
м‡лfl б‡зиуетсfl н‡ с‚ойст‚‡х ‰искетно„о лифм‡, котоый обсу扇лсfl ‚
лекции 9.

Кипто„‡фическ‡fl систем‡ Эль-Г‡м‡лfl

Н‡ осннии с‚е‰ений лекции 9, если p — очень большое постое число, e1 —


пе‚ооб‡зный коень ‚ „уппе G = <Zp*, × > и r — целое число, т‡ e2 = e1r mod p
посто ‚ычислflетсfl с использнием бысто„о пок‡з‡тельно„о ‡л„оитм‡ (мето‰
«‚оз‚е‰ениfl ‚ ꂇ‰‡т и умножениfl»). Но по ‰‡нным e2, e1 и p, не‚озможно ‚ычи-
слить r = loge1e2 mod p (поблем‡ ‰искетно„о лифм‡).

Поце‰у‡

Рисунок 10.11 пок‡зы‚‡ет „ене‡цию ключей, шифние и ‰ешифние


‚ киптосистеме Эль-Г‡м‡лfl.

Гене‡циfl ключей
Боб использует ш‡„и, пок‡з‡нные ‚ ‡л„оитме 10.9, чтобы со片ть с‚ои об-
ще‰оступный и ч‡стный ключи.

345
Кус Кипто„‡фиfl и безоп‡сность сетей

Рис. 10.11. Гене‡циfl ключей, шифние, и ‰ешифние ‚ киптоси-


стеме Эль-Г‡м‡лfl

Ал„оитм 10.9. Гене‡циfl ключей ‚ киптосистеме Эль-Г‡м‡лfl

ElGamal_Key_Generat¥on
{
Выбеите большое постое число p
Выбеите d, член‡ „уппы G = <Zp* × > , т‡кое, что 1 <d <p – 2
Выбеите e1 — пе‚ооб‡зный конь ‚ „уппе G = <Zp*, × >
e2 ← e1d mod p
Обще‰оступный_ключ ←(e1, e2, p) // Может быть объfl‚лен публично
Ч‡стный_ключ ←-d // Должен сох‡нflтьсfl ‚ секете
return Обще‰оступный_ключ и Ч‡стный_ключ
}

Шифние
Любой может пе則ть сообщение Бобу, используfl е„о откытый ключ ‰о-
ступ‡. Поцесс шифниfl пок‡з‡н ‚ ‡л„оитме 10.10. Если пименflетсfl бы-
стый пок‡з‡тельный ‡л„оитм (см. лекцию 9), шифние ‚ киптосистеме
Эль-Г‡м‡лfl может т‡кже быть ‚ыполнено по ‚емени с полиноми‡льной слож-
ностью.

Дешифние
Боб может использть ‡л„оитм 10.11, чтобы ‡сшифть полученное
сообщение з‡шифнно„о текст‡.

346
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

Ал„оитм 10.10. Шифние ‚ киптосистеме Эль-Г‡м‡лfl

ElGamal_Encrypt¥on (e1, e2, p) // P — исхо‰ный текст


{
Выбеите случ‡йное целое число r ‚ „уппе G = <Z.p*, × >
C1 ← e1r mod p
C2 ← (P × e2 r) mod p // C1 и C2 – з‡шифнные тексты
// return C1 и C2
}

Ал„оитм 10.11. Дешифние ‚ киптосистеме Эль-Г‡м‡лfl

ElGamal_Decrypt¥on {d, p, C1, C2) // C1 и C 2 — з‡шифнный текст


{
P ← [C2 (C1d)-1] mod p // P — исхо‰ный текст
return P
}

Сложность ‡зfl‰ной опе‡ции шифниfl или ‰ешифниfl


‚ кипто„‡фической системе Эль-Г‡м‡лfl — полиноми‡льн‡fl.

Док‡з‡тельст‚о

Киптосистем‡ Эль-Г‡м‡лfl по‚о‰ит ‰ешиф‡цию со„л‡сно ‚ы‡жению C2 ×


(C1d) -1 . Это ‚ы‡жение может быть по‚еено с помощью по‰ст‡но‚ки P:

[C2 × (C1d] -1 mod p = [(e2r × P) × (e 1 rd] –1 mod p = (e1rd) × P × (e1rd) -1 = P

Пиме 10.10
Р‡ссмотим ти‚и‡льный пиме. Боб ‚ыби‡ет 11 ‚ к‡чест‚е p. З‡тем он
‚ыби‡ет e1 = 2. Об‡тите ‚ним‡ние, что 2 — пе‚ооб‡зный коень ‚ Z11* (см.
пиложение J). З‡тем Боб ‚ыби‡ет d = 3 и ‚ычислflет e2 = e1d = 8. Получены от-
кытые ключи ‰оступ‡ — (2, 8, 11) и секетный ключ — 3. Алис‡ ‚ыби‡ет r = 4 и
‚ычислflет C1 и C2 ‰лfl исхо‰но„о текст‡ 7.

Исхо‰ный текст: 7
C1 = e1r mod 11 = 16 mod 11= 5 mod 11
C2 = (P × e2r) mod 11 = (7 × 4096) mod 11 = 6 mod 11l
З‡шифнный текст: (5, 6)

Боб получ‡ет з‡шифнные тексты (5 и 6) и ‚ычислflет исхо‰ный текст.

З‡шифнный текст: [C1 × C2 d)-1] mod 11 = 6 × (53)-1 mod 11 = 6 × 3 mod 11 = 7 mod 11


Исхо‰ный текст: 7

347
Кус Кипто„‡фиfl и безоп‡сность сетей

Пиме 10.11
Вместо то„о чтобы использть P = [C2 × (C1d) –1] mod p ‰лfl ‰ешиф-
ниfl, мы можем избеж‡ть ‚ычислениfl мультиплик‡ти‚ной ин‚есии и пименить
P = [C2 × C1p-1-d] mod p (см. м‡лую теоему Фем‡ ‚ лекции 9). В Пимее 10.10
мы можем ‚ычислить P = [6 × 511-1-3] mod 11 = 7 mod 11.

Ан‡лиз

Очень интеесн‡fl чет‡ киптосистемы Эль-Г‡м‡лfl — то, что Алис‡ со片-


ет r и сох‡нflет е„о ‚ секете; Боб со片ет d и сох‡нflет е„о ‚ секете. Это з‡ту‰-
нение кипто„‡фической системы может быть ешено сле‰ующим об‡зом.
a. Алис‡ пе則ет C2 =[e2r × P] mod p = [(e1rd) × P] mod p. Вы‡жение (e1rd)
‰ейст‚ует к‡к м‡ск‡, кото‡fl скы‚‡ет зн‡чение P. Чтобы н‡йти зн‡чение
P, Боб ‰олжен у‰‡лить эту м‡ску.
b. Поскольку используетсfl мо‰ульн‡fl ‡ифметик‡, Боб ‰олжен со片ть точ-
ную копию м‡ски и ин‚етить ее (мультиплик‡ти‚н‡fl ин‚есиfl),
чтобы снflть ‚оз‰ейст‚ие м‡ски.
c. Алис‡ пе則ет Бобу C1 = e1r, что fl‚лflетсfl ч‡стью м‡ски. Боб ‰олжен ‚ы-
числить C1d, чтобы c‰ел‡ть точную копию м‡ски, поскольку C1d = (e1r’) d=
(e1 rd). Ду„ими слми, после получениfl точной копии м‡ски Боб ин-
‚етиует ее и умнож‡ет езульт‡т н‡ C2, чтобы у‰‡лить м‡ску.
d. Это можно пе‰ст‡‚ить т‡к, что Боб помет Алисе с‰ел‡ть м‡ску (e1rd),
не пок‡зы‚‡fl зн‡чение d (d уже ‚ключено ‚ e2 = e1rd); Алис‡ помет Бо-
бу ‰ел‡ть м‡ску (e1 rd), не ‡скы‚‡fl зн‡чение r (r уже ‚ключено ‚ C1 = e1r).

Безоп‡сность киптосистемы Эль-Г‡м‡лfl


Р‡нее были упомflнуты ‰‚е ‡т‡ки н‡ киптосистему Эль-Г‡м‡лfl — ‡т‡ки, ос-
ннные н‡ м‡лом зн‡чении мо‰улfl, и ‡т‡ки зн‡ниfl исхо‰но„о текст‡.

Ат‡ки м‡ло„о мо‰улfl


Если зн‡чение мо‰улfl p не fl‚лflетсfl ‰ост‡точно большим, Е‚‡ может ис-
пользть некотоые эффекти‚ные ‡л„оитмы, чтобы ешить поблему ‰ис-
кетно„о лифм‡ и н‡йти d или r. Если p м‡ло, Е‚‡ может посто н‡йти d =
loge1e2 mod p и сох‡нить е„о, чтобы ‡сшифть любое сообщение, пе則‚‡е-
мое Бобу. Это может быть с‰ел‡но е‰инож‰ы и ‡бот‡ть, пок‡ Боб пименflет те
же с‡мые ключи. Е‚‡ может т‡кже использть зн‡чение случ‡йно„о числ‡ r,
пименflемо„о Алисой ‚ к‡ж‰ой пе則че r = loge1C1 mod p. Об‡ этих случ‡fl по‰-
чек肇ют, что безоп‡сность киптосистемы Эль-Г‡м‡лfl 燂исит от ешениfl по-
блемы ‰искетно„о лифм‡ с очень большим мо‰улем. Поэтому екомен‰о‚‡-
но, что p ‰олжны быть по к‡йней мее 1024 бит‡ (300 ‰есflтичных циф).

Ат‡к‡ зн‡ниfl исхо‰но„о текст‡


К‡ Алис‡ беет о‰но и то же зн‡чение случ‡йно„о пок‡з‡телfl степени r
‰лfl то„о, чтобы з‡шифть ‰‚‡ исхо‰ных текст‡ P и P’, Е‚‡ обн‡уж肇ет P’,
если он‡ зн‡ет P. Пе‰положим, что C2 = P × (e2r) mod p и C’2 = P’ × (e2r) mod p.
Е‚‡ н‡хо‰ит P’, используfl сле‰ующие ш‡„и:
348
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

1. (e2r) = C2 × P- 1 mod p.
2. P’ = C’2 × (e2r) -1mod p.
Поэтому екомен‰о‚‡но, чтобы Алис‡ б‡л‡ пи к‡ж‰ой пе則че но‚ое
зн‡чение r, чтобы со‚‡ть ‡т‡ки.

Чтобы киптосистем‡ Эль-Г‡м‡лfl был‡ безоп‡сной, мо‰уль p


‰олжен со‰еж‡ть по к‡йней мее 300 ‰есflтичных циф,
но‚ых ‰лfl к‡ж‰ой шифо‚ки.

Пиме 10.12
Вот более е‡льный пиме. Боб использует случ‡йное целое число ‰линой
512 бито‚ (и‰е‡льно — 1024) и целое число p ‰линой 155 циф (и‰е‡л — 300 циф).
Боб ‚ыби‡ет e1 и d, з‡тем ‚ычислflет e2, к‡к пок‡з‡но ниже; Боб объfl‚лflет (e1, e2, p)
к‡к с‚ой откытый ключ и d к‡к секетный ключ ‰оступ‡.

p= 1153489927256167624492531371701433174049009453260983495981434692
19056898698622645932129754737871895144368891765264730936159299937
28061165964347353440008577

e1= 2
d= 1007

e2 = 9788641304300918950876685693809773904388006288733768761002206223
32554507074156189212318317704610141673360150884132940857248537703
1582066010072558707455

Алис‡ имеет исхо‰ный текст P = 3200, чтобы пе則ть Бобу. Он‡ ‚ыби‡ет r =
545131, ‚ычислflет C1 и C2 и пе則ет их Бобу.

P= 3200

r= 545131

C1 = 8872970693835284710225704714922756631202600672565621250181883514
29417223599712681114105363661705173051581533189165400973736355080
295736788569060619152881

C2 = 7084543330489299445770160123807949995674360218361924469617745069
2124469615516580077945559308034588961440240859952591957920972162
88796813505827795664302950

Боб ‚ычислflет исхо‰ный текст P = C2 × (C1d)-1 mod p = 3200 mod p

P= 3200

349
Кус Кипто„‡фиfl и безоп‡сность сетей

Пиложение

Киптосистем‡ Эль-Г‡м‡лfl может использтьсfl ‚сflкий ‡з, к‡ мо-


жет использтьсfl RSA. Он‡ пименflетсfl ‰лfl з‡мены ключей, уст‡но‚лениfl
по‰линности, шифниfl и ‰ешифниfl м‡леньких сообщений.

10.5. Киптосистемы н‡ осно‚е мет


эллиптических ки‚ых
Хотfl RSA и Эль-Г‡м‡ль — безоп‡сные ‡симметично-ключе‚ые кипто„‡-
фические системы, их безоп‡сность обеспеч肇етсfl ценой их больших ключей.
Иссле‰о‚‡тели иск‡ли ‡льтен‡ти‚ный мето‰, котоый ‰‡ет т‡кой же уо‚ень бе-
зоп‡сности с меньшими ‡зме‡ми ключей. О‰ин из этих песпекти‚ных ‚‡и‡н-
то‚ — киптосистем‡ н‡ осно‚е мет эллиптических ки‚ых (Elliptic Curve Crypto-
system — ECC). Систем‡ б‡зиуетсfl н‡ теоии эллиптических ки‚ых. Хотfl „лубо-
кое ‡ссмотение этой теоии н‡хо‰итсfl ‚не 燉‡ч и целей н‡шей кни„и, этот
‡з‰ел сн‡ч‡л‡ ‰‡ет очень постое ‚‚е‰ение ‚ ти тип‡ эллиптических ки‚ых, ‡ з‡-
тем пе‰л‡„‡ет ‡зно‚и‰ности кипто„‡фических систем, котоые используют
некотоые из этих ки‚ых.

Эллиптические ки‚ые ‚ ‚ещест‚енных числ‡х

Эллиптические ки‚ые, котоые непосе‰ст‚енно не с‚flз‡ны с эллипс‡ми,


fl‚лflютсfl кубическими у‡‚нениflми ‰‚ух пееменных и обычно пименflютсfl
‰лfl ‚ычислениfl ‰лины ки‚ой ‚ окужности эллипс‡. Общее у‡‚нение ‰лfl эл-
липтической ки‚ой:

y2 + b1xy + b2y = x3 + a1x2 + a2x +a3

Эллиптические ки‚ые ‚ поле ‚ещест‚енных чисел используют специ‡ль-


ный кл‡сс фомы эллиптических ки‚ых:

y2 = x3 + ax + b

В этом случ‡е, если 4a3 + 27b2 ≠ 0, у‡‚нение пе‰ст‡‚лflет несин„улfl-


ную эллиптическую ки‚ую; ‚ поти‚оположном случ‡е оно описы‚‡ет син„у-
лflную эллиптическую ки‚ую. Длfl несин„улflной эллиптической ки‚ой у‡-
‚нение x3 + ax + b = 0 имеет ти отличных конfl (‚ещест‚енных или ком-
плексных); ‰лfl син„улflной у‡‚нение x3 + ax + b = 0 не имеет тех отличных
коней.
В у‡‚нении, к‡к мы можем ‚и‰еть, л傇fl стоон‡ (y2) имеет степень 2, ‚
то ‚емfl к‡к п‡‚‡fl стоон‡ имеет степень 3 (x3). Это озн‡ч‡ет, что „оизонт‡ль-
н‡fl линиfl может пеесек‡ть ки‚ую ‚ тех точк‡х, если ‚се кони ‚ещест‚ен-
ные. О‰н‡ко ‚етик‡льн‡fl линиfl может пеесечь ки‚ую с‡мое большее ‚ ‰‚ух
точк‡х.

350
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

Пиме 10.13
Рисунок 10.12 пок‡зы‚‡ет ‰‚е эллиптические ки‚ые с у‡‚нениflми y2 = x3 –
4x и y2 = x 3 – 1. Об‡ у‡‚нениfl несин„улflны. О‰н‡ко пе‚ое имеет ти ‚еще-
ст‚енных конfl (x = -2, x = 0, и x = 2), но ‚тоое — только о‰ин ‚ещест‚енный ко-
ень (x = 1) и ‰‚‡ мнимых.

Рис. 10.12. Д‚е эллиптические ки‚ые ‚ поле ‚ещест‚енных чисел

Абел傇 „упп‡
Опе‰елим ‡беле‚у (коммут‡ти‚ную) „уппу (см. лекцию 4), использующую
точки н‡ эллиптической ки‚ой. Котеж P = (x1, y1) пе‰ст‡‚лflет точку н‡ ки-
‚ой, если x1 и y1 — коо‰ин‡ты точки н‡ ки‚ой, котоые у‰о‚лет‚оflют у‡‚не-
нию этой ки‚ой. Н‡пиме, точки P = (2,0; 0,0), Q = (0,0; 0,0), R = (–2,0; 0,0), S =
(10,0;30,98), и T = (10,0; –30,98) – точки н‡ ки‚ой y2 = x3 – 4x. Об‡тите ‚ним‡-
ние, что к‡ж‰‡fl точк‡ пе‰ст‡‚лен‡ ‰‚умfl ‚ещест‚енными числ‡ми. По м‡теи‡-
л‡м лекции 4, ‰лfl со片ниfl ‡беле‚ой „уппы мы ну扇емсfl ‚о множест‚е опе‡-
ций 퇉 множест‚‡ми и пflти с‚ойст‚‡х, котоым у‰о‚лет‚оflют опе‡ции. В
этом случ‡е „упп‡ G = <E, +> — ‡бел傇.

Множест‚о. Мы опе‰елим множест‚о к‡к точки н‡ ки‚ой, „‰е к‡ж‰‡fl точ-


к‡ — п‡‡ ‚ещест‚енных чисел. Н‡пиме, множест‚о E ‰лfl эллиптической ки-
‚ой y2 = –x3 – 4x пок‡з‡но к‡к

E = {(2,0; 0,0), (0,0; 0,0), (-2,0; 0,0), (10,0; 30,98), (10,0,-30,98)...}

Опе‡циfl. З‡‰‡нные с‚ойст‚‡ несин„улflной эллиптической ки‚ой поз‚о-


лflют н‡м опе‰елflть опе‡цию сложение точек н‡ ки‚ой. О‰н‡ко мы ‰олжны
помнить, что опе‡циfl сложениfl з‰есь отлич‡етсfl от опе‡ции, кото‡fl был‡
опе‰елен‡ ‰лfl целых чисел. Опе‡циfl «сложение ‰‚ух точек н‡ ки‚ой» по‚о-
‰итсfl, чтобы получить ‰у„ую точку н‡ ки‚ой.

R = P + Q, „‰е P = (x1, y1), Q = (x2, y2), и R = (x3, y3)

Длfl то„о чтобы н‡йти R н‡ ки‚ой, ‡ссмотим ти случ‡fl, к‡к это пок‡з‡-
но н‡ ис. 10.13.

351
Кус Кипто„‡фиfl и безоп‡сность сетей

Рис. 10.13. Ти случ‡fl сложениfl н‡ эллиптической ки‚ой

1. В пе‚ом случ‡е ‰‚е точки P = (x1, y1) и Q = (x2, y2) имеют ‡зличные x-
коо‰ин‡ты и y-коо‰ин‡ты (x1 ≠ y1 и x2, ≠ y2), к‡к это пок‡з‡но н‡ ис.
10.13a. Линиfl, сое‰инflющ‡fl P и Q, пеесек‡ет ки‚ую ‚ точке, обозн‡-
ченной R. R есть от‡жение (-R) относительно y-оси. Коо‰ин‡ты точки
R, x3 и y3 мо„ут быть н‡й‰ены по н‡клону линии, λ, и з‡тем можно ‚ычи-
слить зн‡чений x3 и y3, к‡к пок‡з‡но ниже:
λ = (y2 – y1)/ (x2 – x1)
x3 = λ 2 – x2 – x1 y3= λ (x1 – x3) – y1

2. Во ‚тоом случ‡е ‰‚е точки со‚‡ют (R = P + P) , к‡к пок‡з‡но н‡ ис.


10.13b. Н‡клон линии и коо‰ин‡ты точки R мо„ут быть н‡й‰ены, к‡к по-
к‡з‡но ниже.

λ = (3x12 – a) /2 y1
x3 = λ2– x1 – x2 y3= λ (x1 – x3) – y1

3. В тетьем случ‡е ‰‚е точки — ‡‰‰ити‚ные ин‚есии ‰у„ ‰у„‡, к‡к это по-
к‡з‡но н‡ ис. 10.13c. Если пе‚‡fl точк‡ ‡‚н‡ P = (x1, y1), ‡ ‚то‡fl точк‡
‡‚н‡ Q = (x1, – y1), линиfl, сое‰инflющ‡fl эти ‰‚е точки, не пеесек‡ет
ки‚ую ‚ тетьей точке. М‡тем‡тики „о‚оflт ‚ этом случ‡е, что точк‡ пе-
есечениfl н‡хо‰итсfl ‚ бесконечности. Они опе‰елflют точку О (см. ис.
10.13с) к‡к точку ‚ бесконечности или нуле‚ую точку, кото‡fl fl‚лflетсfl ‡‰-
‰ити‚ным нейт‡льным элементом „уппы.

С‚ойст‚‡ опе‡ции. К‡ткие опе‰елениfl с‚ойст‚ опе‡ции, к‡к они обсуж-


‰‡лись ‚ лекции 4:
1. З‡мкнутость. Может быть ‰ок‡з‡но, что сложение ‰‚ух точек, с использо-
‚‡нием опе‡ции сложениfl, опе‰еленное ‚ пе‰ы‰ущем ‡з‰еле, со片ет
‰у„ую точку н‡ ки‚ой.

352
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

2. Ассоци‡ти‚ность. Может быть ‰ок‡з‡но, что (P + Q) + R = P + (Q + R).


3. Коммут‡ти‚ность. „упп‡, состоflщ‡fl из точек несин„улflной эллиптиче-
ской ки‚ой, — ‡бел傇 „упп‡. Может быть ‰ок‡з‡но, что P + Q = Q + P.
4. Сущест‚ние нейт‡льно„о элемент‡. А‰‰ити‚ный нейт‡льный элемент
‚ этом случ‡е — нул傇fl точк‡. Ду„ими слми, P + 0 = 0 + P.
5. Сущест‚ние ин‚есии. ʇ扇fl точк‡ н‡ ки‚ой имеет ин‚есию. Ин‚е-
сиfl точки — это ее от‡жение относительно оси x. Ду„ими слми, точ-
ки P = (x1,y1) и Q = (x1, – y1) — ин‚есии ‰у„ ‰у„‡; это озн‡ч‡ет, что P +
Q = 0. З‡метим, что нейт‡льный элемент — это ин‚есиfl с‡мо„о себfl.

Гупп‡ и поле
Об‡тите ‚ним‡ние, что пе‰ы‰ущие ‡ссуж‰ениfl к‡с‡ютсfl ‰‚ух ‡л„еб‡и-
ческих стукту: „упп‡ и поле. Гупп‡ опе‰елflет множест‚о точек н‡ эллипти-
ческой ки‚ой и опе‡ции сложениfl точек. Поле опе‰елflет сложение, ‚ычит‡-
ние, умножение и ‰еление, пименflющие опе‡ции 퇉 ‚ещест‚енными числ‡-
ми, котоые необхо‰имы, чтобы н‡йти сложение точек ‚ „уппе.

Эллиптические ки‚ые ‚ GF(p)

Н‡ш‡ пе‰ы‰ущ‡fl „упп‡ эллиптической ки‚ой использо‚‡л‡ ‚ещест‚енное


поле ‰лfl ‚ычислений сложениfl точек. Кипто„‡фиfl тебует мо‰ульной ‡ифме-
тики. Мы опе‰елили „уппу эллиптической ки‚ой с опе‡цией сложениfl, но
опе‡циfl н‡ коо‰ин‡т‡х с точк‡ми ‚ ‰‡нном случ‡е есть опе‡циfl ‚ GF(p) с p> 3.
В мо‰ульной ‡ифметике точки н‡ ки‚ой не пе‰ст‡‚лflют „‡фы, к‡к это можно
было ‚и‰еть н‡ пе‰ы‰ущих исунк‡х, но сох‡нflютсfl те же с‡мые осно‚ные кон-
цепции. Мы используем ту же с‡мую опе‡цию сложениfl, но с ‚ычислением по мо-
‰улю p. В езульт‡те мы получ‡ем эллиптическую ки‚ую Ep (a, b), „‰е p опе‰елflет
мо‰уль, и b — коэффициент у‡‚нениfl y2 = x3 + ax + b. Об‡тите ‚ним‡ние, что хо-
тfl зн‡чение x ‚ этом случ‡е от 0 ‰о p, обычно не ‚се точки н‡хо‰flтсfl н‡ ки‚ой.

Н‡хож‰ение ин‚есии
Ин‚есиfl точки (x, y) ‡‚н‡ (x, – y), „‰е (–y) — ‡‰‰ити‚н‡fl ин‚есиfl y. Н‡-
пиме, если p = 13, ин‚есиfl (4, 2) ‡‚н‡ (4, 11).

Н‡хож‰ение точек н‡ ки‚ой


Ал„оитм 10.12 пок‡зы‚‡ет по„‡мму ‚ пс傉око‰е ‰лfl н‡хож‰ениfl точек
н‡ ки‚ой Ep (a, b).

Ал„оитм 10.12. По„‡мм‡ н‡ пс傉око‰е ‰лfl н‡хож‰ениfl точек н‡ эллип-


тической ки‚ой

Ell¥pt¥c_po¥nts (p, a, b) // p-мо‰уль


{
x ← 0
wh¥le (x<p)
{
w ← ( x3 + ax + b) mod p
353
Кус Кипто„‡фиfl и безоп‡сность сетей

¥f (w – целое зн‡чение ꂇ‰‡тно„о конfl ‚ Zp) //w – это y2


‚ыхо‰ (x, √w)(x, – √w)
x ← x + 1
}

}
Пиме 10.14
Опе‰елите эллиптическую ки‚ую E13 (1, 1) по у‡‚нению y2 = x3 + x + 1 и
‚ычислите по мо‰улю 13. Точки н‡ ки‚ой мо„ут быть н‡й‰ены, к‡к пок‡з‡но н‡
ис. 10.14.
Рис. 10.14. Точки н‡ эллиптической ки‚ой ‚ поле GF (p)

Об‡тите ‚ним‡ние н‡ сле‰ующее.


‡. Некотоые зн‡чениfl y2 не имеют ꂇ‰‡тно„о конfl по мо‰улю 13. Они не
fl‚лflютсfl точк‡ми н‡ этой эллиптической ки‚ой. Н‡пиме, точки x = 2,
x = 3, x = 6 и x = 9 не н‡хо‰flтсfl н‡ ки‚ой.
б. ʇ扇fl точк‡, опе‰еленн‡fl н‡ ки‚ой, имеет ин‚есию. Ин‚есии пе-
ечислены к‡к п‡ы. З‡метим, что (7, 0) — ин‚есиfl с‡мой себfl.
‚. Об‡тите ‚ним‡ние, что ‰лfl п‡ы об‡тных точек зн‡чениfl y — ‡‰‰ити‚-
ные ин‚есии ‰у„ ‰у„‡ ‚ Zp. Н‡пиме, 4 и 9 — ‡‰‰ити‚ные ин‚есии ‚
Z13. Т‡к что мы можем ск‡з‡ть, что если 4 — это зн‡чение y, то зн‡чение
(–y) ‡‚но 9.
„. Ин‚есии н‡хо‰flтсfl н‡ тех же с‡мых ‚етик‡льных линиflх.

Сложение ‰‚ух точек


Мы используем „уппу эллиптической ки‚ой, опе‰еленную ‡нее, но ‚ы-
числениfl с‰ел‡ны ‚ GF (p). Вместо ‚ычит‡ниfl и ‰елениfl мы пименflем ‡‰‰ити‚-
ные и мультиплик‡ти‚ные ин‚есии.

Пиме 10.15

354
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

Сложим ‰‚е точки ‚ пимее 10.14, R = P + Q, „‰е P = (4, 2) и Q = (10,6).


‡. X = (6 – 2) x (10 – 4) -1 mod 13 = 4 x 6-1 mod 13 = 5 mod 13.
б. x = (52 – 4 – 10) mod 13 = 11 mod 13.
‚. y = [5 (4 – 11) – 2] mod 13 = 2 mod 13.
„ . R = (11, 2) fl‚лflетсfl точкой н‡ ки‚ой ‚ пимее 10.14.
Умножение точки н‡ конст‡нту
В ‡ифметике умножение числ‡ н‡ конст‡нту k озн‡ч‡ет пиᇂление числ‡
с‡мо к себе k ‡з. З‰есь ситу‡циfl т‡ же с‡м‡fl. Умножение точки P н‡ эллиптиче-
ской ки‚ой н‡ конст‡нту k озн‡ч‡ет пиᇂление точки P к себе k ‡з. Н‡пиме,
‚ E13 (1, 1), если точк‡ (1, 4) умнож‡етсfl н‡ 4, езульт‡т есть точк‡ (5, 1). Если точ-
к‡ (8,1) умнож‡етсfl н‡ 3, езульт‡т — точк‡ (10, 7).

Эллиптические ки‚ые ‚ GF(2n)

Вычисление ‚ „уппе эллиптической ки‚ой может быть опе‰елено ‚ поле


GF(2n). В соот‚етст‚ии с лекцией 4, „‰е мы „о‚оили, что элементы множест‚‡ ‚
этом поле — n-бито‚ые сл, котоые можно интепетить к‡к полиномы с
коэффициентом ‚ GF(2), сложение и умножение этих элементо‚ т‡кое же, к‡к сло-
жение и умножение полиномо‚. Длfl то„о чтобы опе‰елить эллиптическую ки‚ую
‚ GF(2n), необхо‰имо только изменить кубическое у‡‚нение. Общее у‡‚нение

y2 + xy = x3 + ax2 + b

„‰е b ≠ 0. Об‡тите ‚ним‡ние, что зн‡чение x, y, a и b — полиномы, пе‰ст‡‚лflю-


щие n-бито‚ые сл.

Н‡хож‰ение ин‚есии
Если P = (x, y), то (–P) = (x, x + y).

Н‡хож‰ение точек н‡ ки‚ой


Мы можем н‡пис‡ть ‡л„оитм ‰лfl н‡хож‰ениfl точек н‡ ки‚ой, используfl „е-
не‡тоы ‰лfl полиномо‚, котоые ‡ссм‡т肇ли ‚ лекции 7. Но ‡з‡ботку это„о
‡л„оитм‡ ост‡‚лflем к‡к уп‡жнение. Д‡лее сле‰ует очень ти‚и‡льный пиме.

Пиме 10.16
Мы ‚ыби‡ем GF (2 3) с элемент‡ми (0,1, g, g2, g3, g 4, g5, g6), использующими
непи‚о‰имый полином f (x) = x3 + x +1. Этому соот‚етст‚ует полином g3 + g +1 = 0
или g3 = g + 1. Ду„ие степени g мо„ут быть ‚ычислены, к‡к это пок‡з‡но ниже.

0 000 g3 = g + 1 001
1 001 g 4= g2 + g 110
g 010 g5 = g2 + g + 1 111
g2 100 g6 = g2+ 1 101

Используfl эллиптическую ки‚ую y2 + xy = x3 + g3x2 + 1, a = g3 и b = 1, мы


можем н‡йти точки н‡ этой ки‚ой, к‡к это пок‡з‡но н‡ исунке 10.15.

355
Кус Кипто„‡фиfl и безоп‡сность сетей

Рис. 10.15. Точки н‡ эллиптической ки‚ой ‚ GF (2n)

Сложение ‰‚ух точек


П‡‚ил‡ ‰лfl сложениfl точек ‚ GF(2n) немно„о отлич‡ютсfl от п‡‚ил GF(p).
1. Если P = (x1, y1), Q = (x2, y2), Q ≠ –P, Q ≠ P, то R = (x3, y3) = P + Q может
быть н‡й‰ен к‡к
2.Если Q = P, то R = P + P (или R = 2P) и может быть н‡й‰ен к‡к

Пиме 10.17
Пусть н‡м 퇉о н‡йти R = P + Q, „‰е P = (0,1) и Q = (g2,1). Мы имеем λ = 0
и R = (g5, g4).

Пиме 10.18
Пусть н‡м 퇉о н‡йти R = 2P, „‰е P = (g2,1). Мы имеем λ = g2 +1 /g2 = g2+ g5=
g +1 и R = (g6, g5).

Умножение точек н‡ конст‡нту


Длfl то„о чтобы умножить точку н‡ конст‡нту, точки ‰олжны ск뇉ы‚‡тьсfl
непеы‚но со„л‡сно п‡‚илу R = 2P.

Кипто„‡фиfl эллиптической ки‚ой, мо‰елиующ‡fl


киптосистему Эль-Г‡м‡лfl

Длfl шифниfl и ‰ешифниfl тексто‚ с помощью эллиптических ки-


‚ых использлись несколько мето‰о‚. О‰ин из них состоит ‚ том, чтобы мо‰е-
лить киптосистему Эль-Г‡м‡лfl, используfl эллиптическую ки‚ую ‚ GF(p)
или GF(2n), к‡к это пок‡з‡но н‡ ис. 10.16.

356
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

Рис. 10.16. Киптосистем‡ Эль-Г‡м‡лfl, использующ‡fl эллиптическую


функцию

Гене‡циfl обще‰оступных и ч‡стных ключей


1. Боб ‚ыби‡ет E (a,b) с эллиптической ки‚ой ‚ GF(p) или GF(2n).
2. Боб ‚ыби‡ет точку н‡ ки‚ой, e1 (x 1, y1 ).
3. Боб ‚ыби‡ет целое число d.
4. Боб ‚ычислflет e2 (x2, y2) = d × e1 (x1, y1). Об‡тите ‚ним‡ние: умножение з‰есь
озн‡ч‡ет мно„ок‡тное сложение точек, котоое было опе‰елено ‚ыше.
5. Боб объfl‚лflет E (a,b), e1 (x1, y1 ) и e2 (x2, y2) к‡к с‚ой откытый ключ ‰о-
ступ‡; он сох‡нflет d к‡к секетный ключ.

Шифние
Алис‡ ‚ыби‡ет P, точку н‡ ки‚ой, к‡к ее исхо‰ный текст, P. З‡тем он‡ ‚ы-
числflет п‡у точек, н‡п‡‚лflет к‡к з‡шифнный текст:

C1 = r × e1 C2= P + r × e2

Чит‡тель может 燉‡тьсfl ‚опосом, к‡к поиз‚ольным исхо‰ным текстом


может быть точк‡ н‡ эллиптической ки‚ой. Это о‰н‡ из осно‚ных поблем ‚
пименении эллиптической ки‚ой ‰лfl мо‰елиниfl. Алис‡ ‰олжн‡ использо-
‚‡ть ‡л„оитм, чтобы н‡йти непосе‰ст‚енное соот‚етст‚ие меж‰у сим‚ол‡ми
(или блок‡ми текст‡) и точк‡ми н‡ ки‚ой.

Дешифние

357
Кус Кипто„‡фиfl и безоп‡сность сетей

Боб, после получениfl C1 и C2, ‚ычислflет P, исхо‰ный текст, используfl сле-


‰ующую фомулу:

P = C 2 – (d × C1) Зн‡к «минус» з‰есь озн‡ч‡ет сложение с ин‚есией.

Мы можем ‰ок‡з‡ть, что P, ‚ычисленный Бобом, — тот же, что пе則н Али-
сой, к‡к это пок‡з‡но ниже:

P + r × e2 – (d × r × e1) = P + (r × d × e1) – (r × d × e1) = P + 0 = P

P, C 1, C2 и e2 — это точки н‡ ки‚ой. Об‡тите ‚ним‡ние, что езульт‡т сложениfl


‰‚ух об‡тных точек н‡ ки‚ой — нул傇fl точк‡.

Пиме 10.19
Вот очень ти‚и‡льный пиме шифо‚ки с использнием эллиптиче-
ской ки‚ой ‚ GF (p).
1. Боб ‚ыби‡ет E67 (2, 3) к‡к эллиптическую ки‚ую ‚ GF (p).
2. Боб ‚ыби‡ет e1 = (2, 22) и d = 4.
3. Боб ‚ычислflет e2 = (13, 45), „‰е e2 = d × e1.
4. Боб публично объfl‚лflет котеж (E, e1, e2 ).
5. Алис‡ хочет пе則ть исхо‰ный текст P = (24, 26) Бобу. Он‡ ‚ыби‡ет r = 2.
6. Алис‡ н‡хо‰ит точку C1= (35, 1), „‰е C1 = r × e1.
7. Алис‡ н‡хо‰ит точку C2 = (21, 44), „‰е C2 = P + r × e1.
8. Боб получ‡ет C, и C2. Он использует 2 × C1, (35, 1) и получ‡ет (23, 25).
9. Боб ин‚етиует точку (23, 25) и получ‡ет точку (23, 42).
10. Боб ск뇉ы‚‡ет (23, 42) с C2 = (21, 44) и получ‡ет пе‚он‡ч‡льный исхо‰-
ный текст P = (24, 26).

С‡‚нение
Ниже пи‚о‰итсfl к‡ткое с‡‚нение ‡л„оитм‡ Эль-Г‡м‡лfl с е„о ‚‡и‡н-
том, использующим эллиптическую ки‚ую.
a. Ал„оитм Эль-Г‡м‡лfl использует мультиплик‡ти‚ную „уппу; ‚‡и‡нт —
эллиптическую „уппу.
b. Эти ‰‚‡ член‡ ‚ ‡л„оитме Эль-Г‡м‡лfl — числ‡ ‚ мультиплик‡ти‚ной
„уппе; пи пименении ‚‡и‡нт‡ — точки н‡ эллиптической ки‚ой.
c. Секетный ключ ‚ к‡ж‰ом ‡л„оитме — целое число.
d. Секетные числ‡, ‚ыби‡емые Алисой ‚ к‡ж‰ом ‡л„оитме, — целые чи-
сл‡.
e. Воз‚е‰ение ‚ степень ‚ ‡л„оитме Эль-Г‡м‡лfl з‡менено умножением точ-
ки н‡ конст‡нту.
f. Умножение ‚ ‡л„оитме Эль-Г‡м‡лfl з‡менено сложением точек.
g. Ин‚есиfl ‚ ‡л„оитме Эль-Г‡м‡лfl — мультиплик‡ти‚н‡fl ин‚есиfl ‚
мультиплик‡ти‚ной „уппе; ин‚есиfl —з‡менflетсfl ‡‰‰ити‚ной ин‚еси-
ей точки н‡ ки‚ой.
h. Вычисление обычно ле„че ‚ эллиптической ки‚ой, потому что умноже-
ние поще, чем ‚оз‚е‰ение ‚ степень, сложение поще, чем умножение, и

358
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

н‡хож‰ение ин‚есии н‡мно„о поще ‚ „уппе эллиптической ки‚ой,


чем ‚ мультиплик‡ти‚ной „уппе.

Безоп‡сность мет с использнием эллептической ки‚ой


Чтобы ‡сшифть сообщение, Е‚‡ ‰олжн‡ н‡йти зн‡чение r или d.
a. Если Е‚‡ зн‡ет зн‡чение r, он‡ может использть P = C2 – (r × e2), что-
бы н‡йти точку P, относflщуюсfl к исхо‰ному тексту. Но ‰лfl то„о чтобы
н‡йти r, Е‚‡ ‰олжн‡ ешить у‡‚нение C1 = r × e1. Это зн‡чит — н‡йти ‰‚е
точки н‡ ки‚ой, C1 и e1. Е‚‡ ‰олжн‡ н‡йти множитель, котоый со片ет
C1 н‡чин‡fl с e1. Эт‡ поблем‡ из‚естн‡ к‡к поблем‡ лифм‡ эллипти-
ческой ки‚ой, е‰инст‚енный из‚естный мето‰ ешениfl этой поблемы —
РО – ‡л„оитм Пол‡‰‡, котоый неосущест‚им, если 燉‡но большое r и
p ‚ GF (p) или большое n ‚ GF(2n).
b. Если Е‚‡ зн‡ет зн‡чение d, он‡ может использть P = C2 – (d × C1), что-
бы н‡йти точку P, относflщуюсfl к исхо‰ному тексту. Поскольку e2 = d × e1,
это тот же с‡мый тип поблемы, что и ‚ пе‰ы‰ущем пункте. Е‚‡ зн‡ет
зн‡чение e1 и e2 — он‡ ‰олжн‡ н‡йти d.

Безоп‡сность киптосистемы с эллиптической ки‚ой 燂исит


от ту‰ности ешениfl поблемы лифм‡ эллиптической ки‚ой.

Р‡зме мо‰улfl
Длfl то„о же с‡мо„о уо‚нfl безоп‡сности (з‡т‡ты н‡ ‚ычисление) мо‰уль n,
может быть меньшим ‚ эллиптической системе (ECC), чем ‚ RSA. Н‡пиме,
ECC ‚ GF(2n) с n, состоflщий из 160 бито‚, может обеспечить тот же уо‚ень безо-
п‡сности, к‡к RSA с n 1024 бит‡.

10.6. Рекомен‰о‚‡нн‡fl лите‡ту‡


Длfl более ‰ет‡льно„о изучениfl положений, обсуж‰енных ‚ этой лекции, мы
екомен‰уем нижесле‰ующие кни„и и с‡йты. Пункты, ук‡з‡нные ‚ скобк‡х, по-
к‡з‡ны ‚ списке ссылок ‚ конце кни„и.

Кни„и

Кипто„‡фическ‡fl систем‡ RSА ‡ссм‡т肇етсfl ‚ [Sti06], [Sta06],


[PHS03], [Vau06], [TW06] и [Mao04]. Киптосистемы Р‡бин‡ и Эль-Г‡м‡лfl — ‚
[Sti06] и [Mao 04]. Кипто„‡фиfl эллиптической ки‚ой — ‚ [Sti06], [Eng99] и
[Bla99].

С‡йты

Сле‰ующие с‡йты ‰‡ют больше инфом‡ции о тем‡х, ‡ссмотенных ‚ этой


лекции.
http: // wwwl.ics.uci.edu / ~ mingl/knapsack.html
www.dtc.umn.edu/~odlyzko/doc/arch/knapsack.survey.pdf

359
Кус Кипто„‡фиfl и безоп‡сность сетей

http://en.wikipedia.org/wiki/RSA
citeseer.ist.psu.edu/boneh99twenty.html
www.mat.uniroma3.it/users/pappa/SLIDES/RSA-HRL_05.pdf
http://en.wikipedia.org/wiki/Rabin_cryptosystem
http://en.wikipedia.org/wiki/ElGamaL_encryption
ww..cs.purdue.edu/homes/wspeirs/elgamal.pdf
http://en.wikipedia.org/wiki/Elliptic__curve_cryptography
www.cs.utsa.edu/~rakbani/publications/Akbani-ECC-IEEESMC03.pdf

10.7. Ито„и
• Есть ‰‚‡ способ‡ ‰ости„нуть инфом‡ционной безоп‡сности: кипто„‡-
фиfl с симметичными ключ‡ми и кипто„‡фиfl с ‡симметичными клю-
ч‡ми. Эти ‰‚‡ способ‡ сущест‚уют п‡‡ллельно и ‰ополнflют ‰у„ ‰у„‡;
пеимущест‚‡ о‰но„о мо„ут ‰‡ть компенс‡цию не‰ост‡тк‡м ‰у„о„о.
• Концепту‡льные ‡зличиfl меж‰у этими ‰‚умfl способ‡ми б‡зиуютсfl н‡
том, к‡к они сох‡нflют секетность. В кипто„‡фии с симметичными
ключ‡ми секетность ‰олжн‡ быть ‡з‰елен‡ меж‰у ‰‚умfl объект‡ми; ‚
кипто„‡фии с ‡симметичными ключ‡ми секетность песон‡льн‡fl
(не‡з‰еленн‡fl).
• Кипто„‡фиfl с симметичными ключ‡ми б‡зиуетсfl н‡ по‰ст‡но‚ке и
пеест‡но‚ке сим‚оло‚; кипто„‡фиfl с ‡симметичными ключ‡ми б‡зи-
уетсfl н‡ пименении м‡тем‡тических функций к числ‡м.
• Кипто„‡фиfl с ‡симметичными ключ‡ми использует ‰‚‡ от‰ельных
ключ‡: о‰ин секетный и о‰ин откытый. Шифние и ‰ешифние
можно пе‰ст‡‚лflть себе к‡к з‡пи‡ние и отпи‡ние з‡мко‚ ключ‡ми. З‡-
мок, котоый з‡пет откытым ключом, можно отпееть только соот‚ет-
ст‚ующим секетным ключом.
• В кипто„‡фии с ‡симметичным ключом от‚етст‚енность обеспечениfl
безоп‡сности н‡хо‰итсfl, „뇂ным об‡зом, н‡ плеч‡х пиемник‡ (Боб),
котоый ‰олжен со片ть ‰‚‡ ключ‡: о‰ин секетный и о‰ин откытый. Боб
несет от‚етст‚енность з‡ секетный ключ. Откытый ключ может быть
‡спост‡нен сообщест‚у чеез к‡н‡л ‡спе‰елениfl откыто„о ключ‡.
• В отличие от кипто„‡фии с симметичными ключ‡ми, ‚ кипто„‡фии с
‡симметичным ключом исхо‰ный текст и з‡шифнный текст об‡б‡-
ты‚‡ютсfl к‡к целые числ‡. Сообщение ‰олжно ко‰итьсfl к‡к целое чи-
сло (или множест‚о целых чисел) пее‰ шифнием; целое число (или
множест‚о целых чисел) ‰олжно быть ‡сшифно ‚ сообщение после
‰ешифниfl. Кипто„‡фиfl с ‡симметичным ключом обычно исполь-
зуетсfl, чтобы з‡шифть или ‡сшифо‚ы‚‡ть м‡ленькие сообщениfl,
т‡кие к‡к ключ шиф‡ ‰лfl кипто„‡фии с симметичными ключ‡ми.
• Г뇂н‡fl и‰еfl кипто„‡фии с ‡симметичным ключом — понflтие «л‡зей-
ꇻ ‚ о‰ностоонней функции (TOWF), кото‡fl fl‚лflетсfl т‡кой функцией,
что f ‚ычислflетсfl посто, ‡ f -1 ‚ычислить не‚озможно (‚ смысле сложно-
сти ‚ычислений), если не используетсfl л‡зейк‡.

360
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

• Блестflщ‡fl и‰еfl относительно кипто„‡фии обще‰оступно„о ключ‡ пи-


퇉лежит Мекелю и и Хеллм‡ну – это ‡нц傇fl киптосистем‡ . К‡
н‡м „о‚оflт, к‡кие элементы из з‡‡нее 燉‡нно„о множест‚‡ чисел н‡хо-
‰flтсfl ‚ юкз‡ке, мы можем ле„ко ‚ычислить сумму чисел; к‡ н‡м сооб-
щ‡ют сумму, ту‰но ск‡з‡ть, к‡кие элементы н‡хо‰flтсfl ‚ юкз‡ке, если он
не з‡полнен элемент‡ми с‚ех‚оз‡ст‡юще„о множест‚‡.
• С‡мый общий ‡л„оитм обще‰оступно„о ключ‡ — кипто„‡фическ‡fl
систем‡ RSА. RSA использует ‰‚‡ числ‡ e и d, „‰е e — обще‰оступный
ключ, ‡ d fl‚лflетсfl ч‡стным (секетным). Алис‡ использует C = Pe mod n
‰лfl то„о, чтобы со片ть з‡шифнный текст C из исхо‰но„о текст‡ P;
Боб использует P = Сd mod n, чтобы из‚лечь исхо‰ный текст, пе則нный
Алисой.
• RSA пименflет ‰‚е ‡л„еб‡ических стуктуы: кольцо и „упп‡. Шифо-
‚‡ние и ‰ешифние ‚ыполнflютсfl с использнием коммут‡ти‚но„о
кольц‡ R = <Zn*,+, × > с ‰‚умfl ‡ифметическими опе‡циflми — сложением
и умножением. RSA пименflет мультиплик‡ти‚ную „уппу G = <Zn *, × >
‰лfl „ене‡ции ключей.
• Ник‡ких ‡зушительных ‡т‡к н‡ RSA не было обн‡ужено. Теоетически
пе‰ск‡з‡но несколько ‡т‡к, осннных н‡ ‡зложении н‡ множители,
‚ыбоке шифнно„о текст‡, об‡зце ‰ешифниfl, об‡зце шифо-
‚‡ниfl, исхо‰ном тексте, мо‰уле и е‡лиз‡ции.
• Киптосистем‡ Р‡бин‡ — ‚‡и‡нт кипто„‡фической системы RSА.
RSA б‡зиуетсfl н‡ экспоненци‡льном с‡‚нении; киптосистем‡ Р‡би-
н‡ б‡зиуетсfl н‡ к‚‡‰‡тичном с‡‚нении. Мы можем пе‰ст‡‚лflть се-
бе, что киптосистем‡ Р‡бин‡ — это RSA, ‚ котоой зн‡чение e = 2 и d =
1/2. Кипто„‡фическ‡fl систем‡ Р‡бин‡ безоп‡сн‡, пок‡ p и q — боль-
шие числ‡. Сложность киптосистемы Р‡бин‡ — н‡ том же с‡мом уо‚-
не, к‡к и поцесс ‡зложениfl большо„о числ‡ n н‡ ‰‚‡ постых сомно-
жителfl p и q.
• Киптосистем‡ Эль-Г‡м‡лfl б‡зиуетсfl н‡ поблеме ‰искетно„о лиф-
м‡. Киптосистем‡ Эль-Г‡м‡лfl использует и‰ею пе‚ооб‡зных коней ‚
Zn*. Шифние и ‰ешифние ‚ киптосистеме Эль-Г‡м‡лfl использу-
ет „уппу G = <Zp*, × >. Обще‰оступный ключ — это ‰‚‡ числ‡, e1 и e2, ‡
секетный ключ — это целое число d. Безоп‡сность киптосистемы Эль-
Г‡м‡лfl осно‚‡н‡ н‡ том, что ешение поблемы ‰искетно„о лифм‡ не
сущест‚ует. О‰н‡ко ‚ лите‡туе был‡ упомflнут‡ ‡т‡к‡, осннн‡fl н‡ м‡-
лом зн‡чении мо‰улfl, и ‡т‡к‡ зн‡ниfl исхо‰но„о текст‡.
• Ду„‡fl кипто„‡фическ‡fl систем‡, ‡ссмотенн‡fl ‚ этой лекции, б‡зиу-
етсfl н‡ эллиптических ки‚ых. Эллиптические ки‚ые fl‚лflютсfl кубиче-
скими у‡‚нениflми ‚ ‰‚ух пееменных. Эллиптические ки‚ые н‡ поле
‚ещест‚енных чисел используют специ‡льный кл‡сс эллиптических ки-
‚ых y2 = x3 + ax + b, „‰е 4a3 + 27b2 ≠ 0. Абел傇 „упп‡ был‡ опе‰елен‡ с
помощью эллиптической ки‚ой с опе‡цией сложениfl, кото‡fl пок‡зы-
‚‡ет, к‡к ‰‚е точки н‡ ки‚ой можно сложить, чтобы получить ‰у„ую точ-
ку н‡ этой ки‚ой.

361
Кус Кипто„‡фиfl и безоп‡сность сетей

• Кипто„‡фиfl эллиптической ки‚ой пименflет ‰‚е ‡л„еб‡ических


стуктуы, ‡беле‚у „уппу и поле. Поле может быть полем ‚ещест‚енных
чисел, GF (p) и GF (2n). Мы пок‡з‡ли, к‡к киптосистем‡ Эль-Г‡м‡лfl мо-
жет мо‰елитьсfl, используfl эллиптические ки‚ые ‚ конечном поле.
Безоп‡сность кипто„‡фии эллиптической ки‚ой 燂исит от поблемы
лифм‡ эллиптической ки‚ой, ешение котоой неосущест‚имо пи
большом зн‡чении мо‰улfl.

10.8. Н‡бо ‰лfl п‡ктики

Обзоные ‚опосы

1. Н‡й‰ите ‡зличиfl меж‰у киптосистем‡ми с симметичными ключ‡ми


и ‡симметичными ключ‡ми.
2. Н‡й‰ите ‡зличиfl меж‰у откытыми и секетными ключ‡ми ‚ кипто-
системе с ‡симметичными ключ‡ми. Н‡й‰ите со‚ениfl и ‡зличие
ключей ‚ киптосистем‡х с симметичными ключ‡ми и с ‡симметич-
ными ключ‡ми.
3. Опе‰елите «л‡зейку» ‚ о‰ностоонней функции и объflсните еfi исполь-
зние ‚ кипто„‡фии с ‡симметичным ключом.
4. К‡тко объflсните и‰ею ‡нце‚ой киптосистемы.
‡. Что fl‚лflетсfl о‰ностоонней функцией ‚ этой системе?
б. Что fl‚лflетсfl л‡зейкой ‚ этой системе?
‚. Опе‰елите откытые и секетные ключи ‚ этой системе.
d. Опишите безоп‡сность этой системы.
5. К‡тко объflсните и‰ею кипто„‡фической системы RSA.
‡. Что fl‚лflетсfl о‰ностоонней функцией ‚ этой системе?
б. Что fl‚лflетсfl л‡зейкой ‚ этой системе?
‚. Опе‰елите откытые и секетные ключи ‚ этой системе.
„. Опишите безоп‡сность этой системы.
6. К‡тко объflсните и‰ею киптосистемы Р‡бин‡.
‡. Что fl‚лflетсfl о‰ностоонней функцией ‚ этой системе?
б. Что fl‚лflетсfl л‡зейкой ‚ этой системе?
‚. Опе‰елите откытые и секетные ключи ‚ этой системе.
„. Опишите безоп‡сность этой системы.
7. К‡тко объflсните и‰ею киптосистемы Эль-Г‡м‡лfl.
‡. Что fl‚лflетсfl о‰ностоонней функцией ‚ этой системе?
б. Что fl‚лflетсfl л‡зейкой ‚ этой системе?
„. Опе‰елите откытые и секетные ключи ‚ этой системе.
‰. Опишите безоп‡сность этой системы.
8. К‡тко объflсните и‰ею кипто„‡фии эллиптической ки‚ой (ECC).
‡. Что fl‚лflетсfl о‰ностоонней функцией ‚ этой системе?
б. Что fl‚лflетсfl л‡зейкой ‚ этой системе?
‚. Опе‰елите откытые и секетные ключи ‚ этой системе.
„. Опишите безоп‡сность этой системы.

362
Лекциfl 10 Нfl ф‡йлfl систем‡ WinFS

9. Опе‰елите эллиптические ки‚ые и объflсните их пиложениfl ‚ кип-


то„‡фии.
10. Опе‰елите опе‡цию, используемую ‚ ‡беле‚ой „уппе, кото‡fl об‡-
б‡ты‚‡ет точки н‡ эллиптической ки‚ой.

Уп‡жнениfl

1. Учиты‚‡fl с‚ех‚оз‡ст‡ющий котеж b = [7, 11,23,43,87, 173, 357], r =41


и мо‰уль n = 1001, з‡шифуйте и ‡сшифуйте бук‚у a, используfl ‡н-
це‚ую киптосистему. Используйте [7 6 5 1 2 3 4] к‡к т‡блицу пеест‡-
но‚ки.
2. В RSA:
a. Д‡но n = 221 и e = 5, н‡й‰ите d.
b. Д‡но n =3937 и e =17, н‡й‰ите d.
c. Д‡но p = 19, q = 23 и e = 3, н‡й‰ите n, φ(n) и d.
3. Длfl то„о чтобы понflть безоп‡сность ‡л„оитм‡ RSА, н‡й‰ите d, если ‚ы
зн‡ете, что e =17, ‡ n =187.
4. В RSA ‰‡но n и φ(n), ‚ычислите p и q.
5. В RSA ‰‡но e = 13 и n = 100.
З‡шифуйте сообщение «HOW ARE YOU», пименflfl 00 к 25 ‰лfl бук‚ от
A ‰о Z и 26 — ‰лfl побел‡. Используйте ‡зличные блоки, чтобы с‰ел‡ть
P <n.
6. В RSA ‰‡но n = 12091 и e = 13. З‡шифуйте сообщение «THIS IS
THOGH», используfl схему ко‰иниfl 00 к 26. Р‡сшифть з‡ши-
фнный текст, чтобы н‡йти пе‚он‡ч‡льное сообщение.
7. В RSA:
‡. Почему Боб не может ‚ыб‡ть 1 к‡к откытый ключ e?
б. К‡к поблем‡ ‚ ‚ыбое 2 откытым ключом?
8. Алис‡ использует откытый ключ RSА Боб‡ (e = 17, n = 19519), чтобы пе-
則ть сообщение из четыех сим‚оло‚ Бобу, пименflющему схему A ↔ 0,
B ↔ 1... Z ↔ 25 ко‰иниfl и ‰еко‰иниfl по к‡ж‰ому сим‚олу от-
‰ельно. Е‚‡ пеех‚‡ты‚‡ет з‡шифнный текст (6625 0 2968 17863) и
‡сшифо‚ы‚‡ет сообщение, не ‡з뇄‡fl н‡ множители мо‰уль. Н‡й‰и-
те исхо‰ный текст; объflсните, почему Е‚‡ смо„л‡ ле„ко ‚злом‡ть з‡ши-
фнный текст.
9. Алис‡ использует откытый ключ RSА Боб‡ (e = 7, n = 143), чтобы пее-
‰‡ть исхо‰ный текст P = 8, з‡шифнный ‚ ‚и‰е текст‡ C = 57. Пок‡-
жите, к‡к Е‚‡ может использть ‡т‡ку ‚ыбоки текст‡, если он‡ имеет
‰оступ к компьютеу Боб‡, чтобы н‡йти исхо‰ный текст.
10. Алис‡ использует обще‰оступный ключ RSA Боб‡ (e = 3, n = 35) и пее-
‰‡ет з‡шифнный текст 22 Бобу. Пок‡жите, к‡к Е‚‡ может н‡йти ис-
хо‰ный текст, используfl ‡т‡ку циклическо„о по‚тоениfl.
11. Пе‰ложите, к‡к Алис‡ может пе‰от‚‡тить ‡т‡ку с‚flз‡нно„о сообщениfl
н‡ RSA.
12. Используfl киптосистему Р‡бин‡ с p = 47 и q =11:
‡. З‡шифуйте P = 17 и н‡й‰ите з‡шифнный текст.

363
Кус Кипто„‡фиfl и безоп‡сность сетей

б. Используfl кит‡йскую теоему об ост‡тк‡х, н‡й‰ите четые ‚озмож-


ных исхо‰ных текст‡.
13. В киптосистеме Эль-Г‡м‡лfl ‰‡но постое число p = 31:
‡. Выбеите соот‚етст‚ующие e1 и d, з‡тем ‚ычислите e2.
б. З‡шифуйте сообщение «HELLO»; используйте 00 к 25 ‰лfl ко‰и-
ниfl. Используйте ‡зличные блоки ‰лfl то„о, чтобы с‰ел‡ть P<p.
‚. Р‡сшифуйте з‡шифнный текст, чтобы получить исхо‰ный текст.
14. Что случитсfl ‚ киптосистеме Эль-Г‡м‡лfl, если C1 и C2 бу‰ут изменены
‚ течение пе則чи?
15. Пе‰положим, что Алис‡ пименflет ‚ киптосистеме Эль-Г‡м‡лfl обще-
‰оступный ключ Боб‡ (e1 = 2 и e 2 = 8), чтобы пе則ть ‰‚‡ сообщениfl —
P = 17 и P’ = 37. Они об‡ используют то же с‡мое случ‡йное целое число
r = 9. Е‚‡ пеех‚‡ты‚‡ет з‡шифнный текст и т‡к или ин‡че н‡хо‰ит
зн‡чение P = 17. Пок‡жите, к‡к Е‚‡ может пименить ‡т‡ку зн‡ниfl ис-
хо‰но„о текст‡, чтобы н‡йти зн‡чение P’.
16. В эллиптической ки‚ой E (1, 2) ‚ поле GF (11):
‡. Н‡й‰ите у‡‚нение ки‚ой.
б. Н‡й‰ите ‚се точки н‡ ки‚ой и с‰ел‡йте исунок, т‡кой же, к‡к ис. 10.14.
‚. С„енеиуйте обще‰оступный и секетный ключи ‰лfl Боб‡.
„. Выбеите точку н‡ ки‚ой к‡к исхо‰ный текст Алисы.
‰. Со片йте з‡шифнный текст, соот‚етст‚ующий исхо‰ному тексту
Алисы ‚ пункте d.
е. Р‡сшифуйте з‡шифнный текст ‰лfl Боб‡, чтобы н‡йти исхо‰ный
текст, пе則‚‡емый Алисой.
17. В эллиптической ки‚ой E (g4, 1) ‚ поле GF(24):
‡. Н‡й‰ите у‡‚нение ки‚ой.
б. Н‡й‰ите ‚се точки н‡ ки‚ой и с‰ел‡йте исунок, т‡кой же, к‡к ис. 10.14.
‚. С„енеиуйте обще‰оступный и секетный ключи ‰лfl Боб‡.
„. Выбеите точку н‡ ки‚ой к‡к исхо‰ный текст Алисы.
‰. Со片йте з‡шифнный текст, соот‚етст‚ующий исхо‰ному тексту
Алисы ‚ пункте „.
е. Р‡сшифуйте з‡шифнный текст ‰лfl Боб‡, чтобы н‡йти исхо‰ный
текст, пе則емый Алисе.
18. Используйте ‡нце‚ую киптосистему:
‡. Н‡пишите ‡л„оитм ‰лfl шифниfl.
б. Н‡пишите ‡л„оитм ‰лfl ‰ешифниfl.
19. В RSA:
‡. Н‡пишите ‡л„оитм ‰лfl шифниfl, используfl оптим‡льное ‡сим-
метичное ‰ополнение шифниfl (OAEC).
б. Н‡пишите ‡л„оитм ‰лfl ‰ешифниfl, используfl оптим‡льное
‡симметичное ‰ополнение шифниfl (OAEC).
20. Н‡пишите ‡л„оитм ‰лfl ‡т‡ки циклическо„о по‚тоениfl н‡ RSA.
21. Н‡пишите ‡л„оитм ‰лfl сложениfl ‰‚ух точек н‡ эллиптической ки‚ой
‚ GF(p).
22. Н‡пишите ‡л„оитм ‰лfl сложениfl ‰‚ух точек н‡ эллиптической ки‚ой
‚ GF(2n).

364