Слепи потпис

С Википедије, слободне енциклопедије

Слепи потпис у криптографији, како га је увео Дејвид Чом[1], представља облик дигиталног потписа у којем је садржај поруке прикривен (заслепљен) пре него што је потписан. Резултирајући слепи потпис може се јавно верификовати у односу на оригиналну, незаслепљену поруку на начин који је уобичајен за регуларни дигитални потпис. Слепи потписи обично се користе у протоколима који се односе на приватност где су потписник и аутор поруке различите стране. Примери укључују криптографске системе за изборе и шеме дигиталног новца.

Често коришћена аналогија за криптографски слепи потпис је физичко постављање анонимног гласачког листића у посебну коверту обложену карбонским папиром на којој су претходно одштампане акредитације гласача. Службеник проверава акредитације и потписује коверту, чиме преноси свој потпис на гласачки листић унутар коверте помоћу карбонског папира. Када се једном потпише, пакет се враћа гласачу, који преноси сада потписан гласачки листић у нову необележену обичну коверту. На тај начин, потписник не види садржај поруке, али трећа страна касније може верификовати потпис и знати да је потпис важећи у оквиру ограничења основне шеме потписа.

Слепи потписи такође могу бити коришћени ради обезбеђивања неповезаности, што спречава потписника да повеже заслепљену поруку коју потписује са каснијом незаслепљеном верзијом коју може бити позван да верификује. У овом случају, одговор потписника прво се "размазује" пре верификације на начин који чини потпис важећим за незаслепљену поруку. Ово може бити корисно у шемама где је анонимност потребна.

Шема слепог потписа може се имплементирати коришћењем неколико уобичајених шема потписа с јавним кључем, на пример РСА и ДСА. Да би се извео такав потпис, порука се прво "заслепљује", обично комбиновањем са неким насумичним "заслепљујућим фактором". Заслепљена порука се шаље потписнику, који је потом потписује користећи стандардни алгоритам потписа. Резултирајућа порука, заједно са фактором заслепљивања, може се касније верификовати у односу на јавни кључ потписника. У неким шемама слепог потписа, попут РСА, чак је могуће уклонити фактор заслепљивања из потписа пре него што се верификује. У овим шемама, коначни излаз (порука/потпис) шеме слепог потписа идентичан је оном у нормалном протоколу потписа.

Употреба[уреди | уреди извор]

Шеме слепог потписа налазе широку примену у апликацијама где је приватност пошиљаоца важна. То укључује различите "дигиталне новчане" шеме и протоколе гласања.

На пример, интегритет неког електронског система за гласање може захтевати да сваки гласачки листић буде оверен од стране изборне власти пре него што може бити прихваћен за бројање; то омогућава властима да провере акредитације гласача како би се осигурало да имају право гласа, и да не подносе више од једног гласа. Истовремено, важно је да ова власт не сазна изборе гласача. Слеп потпис који се не може повезати пружа ову гаранцију, јер власт неће видети садржај било ког гласачког листића који потписује, и неће моћи повезати заслепљене гласачке листиће које потписује са незаслепљеним листићима које прима ради бројања.

Шеме слепог потписа[уреди | уреди извор]

Шеме слепог потписа постоје за многе протоколе потписа јавног кључа. Формалније, шема слепог потписа је криптографски протокол који укључује две стране - корисника Алис, која жели да добије потписе на својим порукама, и потписника Боба, који поседује свој тајни кључ за потписивање. На крају протокола, Алис добија Бобов потпис на поруци m, а да Боб ништа не сазна о поруци. Ова интуиција да се ништа не сазна је тешко прецизно изразити математичким језиком. Уобичајени приступ је показати да за сваког (нападајућег) потписника постоји симулатор који може избацити исте информације као потписник. Ово је слично начину на који се дефинише нула-знање у системима нула-знања доказа.

Слепи РСА потписи[уреди | уреди извор]

[2]

Један од најједноставнијих шема слепих потписа базиран је на РСA потписивању. Традиционални РСA потпис се рачуна подизањем поруке m на тајни експонент d модула јавног модула N. Слепа верзија користи случајну вредност r, тако да је r релативно просто са N. r се подиже на јавни експонент e модула N и резултујућа вредност remodN се користи као фактор слепења. Аутор поруке рачуна производ поруке и фактора слепења, тј.:

m′ ≡ mre (mod N)

и шаље добијену вредност m′ ауторитету за потписивање. Пошто је r случајна вредност и пресликавање r ↦ r e modN је пермутација, следи да је mоd remodN такође случајно. Ово имплицира да m′ не открива никакве информације о m. Ауторитет за потписивање затим рачуна слепи потпис s′ као:

s′ ≡(m′)d (mod N)

s′ се затим шаље аутору поруке, који затим може уклонити фактор слепења да открије s, важни РСА потпис поруке m:

s≡s⋅ r−1 (mod N)

Ово функционише зато што РСA клучеви задовољавају једначину redr (mod N), а затим

s≡s⋅ r−1≡(m′)dr−1≡mdredr−1≡mdr r−1≡md (mod N)

Дакле s је заиста потпис за m.

У пракси, обично је жељено да потписивање једне слепе поруке произведе највише једну важећу потписану поруку. Ово значи један глас по потписаном гласачком списку на изборима, на пример. Ова особина се не задовољава једноставном шемом описаном горе: оригинална порука и одслепљени потпис су важећи, али и слепа порука и слеп потпис, и вероватно друге комбинације дате паметним нападачем. Решење за ово је слепо потписивање криптографског хеша поруке, а не саме поруке.[3]

Референце[уреди | уреди извор]

  1. ^ Chaum, David (1983). "Blind Signatures for Untraceable Payments" (PDF). Advances in Cryptology. Vol. 82. pp. 199–203
  2. ^ Goldwasser, S. and Bellare, M. "Lecture Notes on Cryptography" Archived 2012-04-21 at the Wayback Machine. Summer course on cryptography, MIT, 1996–2001
  3. ^ The One-More-RSA-Inversion Problems and the Security of Chaum’s Blind Signature Scheme