Anthropic наводи да је истраживачка верзија Claude помогла његовом криптографском тиму да реконструише порекло неколико објављених seed вредности елиптичких кривих. Извештај од 16. октобра повезује пет seed вредности NIST кривих над простим пољима и четири seed вредности NIST бинарних кривих са излазима генератора lrand48, старијег C генератора псеудослучајних бројева, иницијализованог вредностима изведеним из часовника. Извештај даје и код који исписује наведене seed вредности и репродукује одабране координате базних тачака.

Резултат се бави питањем из историје стандардизованих параметара. Anthropic не пријављује нови напад нити криптографски пробој. Реконструкција такође оставља неке изборе необјашњене, укључујући разлог због ког су одређени прихватљиви кандидати за криве прескочени.

Велика промена

  • Шта се променило: Anthropic је објавио конкретан поступак генерисања и код за seed вредности NIST P-192, P-224, P-256, P-384 и P-521, четири NIST бинарне криве и пет примера кривих из ANSI X9.62. Његов одвојени поступак за базне тачке поклапа се са P-192 и пет ANSI примера.
  • Како: Тим наводи да је Claude препознао обрасце у битовима објављених seed вредности, реконструисао стање генератора и вратио га уназад до почетних вредности налик вредностима часовника. За шест базних тачака идентификовао је генератор из старијег софтвера за рад са великим целим бројевима.
  • Ограничење: Код омогућава проверу предложених поклапања, али поступак који даје исте вредности не документује сваку историјску одлуку о избору нити доказује безбедност кривих. BIG CHANGE је прегледао јавну објаву и историјски стандард; није извршио независну репродукцију.

Шта објашњава seed вредност криве

NIST-ов архивирани FIPS 186-2, од 27. јануара 2000, наводи 160-битну seed вредност за сваку од својих пет кривих над простим пољима. Прописани поступак заснован на SHA-1 претвара seed вредност у коефицијент криве. Стандард такође одвојено наводи поље, ред криве и координате базне тачке. У њему пише да дата seed вредност омогућава читаоцу да провери да ли коефицијент следи прописани поступак; не описује како је сама seed вредност одабрана. Seed вредност не одређује ни базну тачку, фиксну тачку која се користи за формирање јавних кључева.

Та разлика одређује домет Anthropic-овог налаза. Праћење seed вредности може да објасни један улаз у стандардизовану криву. За објашњење базне тачке потребан је други приказ, а поклапање излаза не може да открије сваку одлуку људи који су бирали параметре.

Како је Anthropic пратио seed вредности

Према Anthropic-у, Claude је најпре у објављеним вредностима тражио трагове старијих C генератора псеудослучајних бројева. У неким seed вредностима бинарних кривих највиши бит сваке 32-битне речи био је нула. Anthropic наводи да је образац указао на lrand48, који враћа 31 бит из унутрашњег 48-битног стања. Модел је затим реконструисао могућа стања и проверио да ли се узастопни излази поклапају са seed вредностима. Код кривих над простим пољима задржано је мање битова сваког излаза, па је Claude, према Anthropic-у, употребио методу решетки да реконструише скривено стање.

Сам код у Anthropic-овој објави полази од стања у стилу srand48, наставља рекурентни поступак генератора lrand48 и исписује кандидатске seed вредности од 20 бајтова. Његова табела задаје временске ознаке и бројеве кандидата за P-192, P-224, P-256, P-384 и P-521, као и ANSI примере prime192v2, prime192v3 и prime239v1 до prime239v3. За P-256 задато извршавање стиже до објављене seed вредности код кандидата 1.842. Вредност P-256 исписана у Anthropic-овом примеру поклапа се са seed вредношћу у FIPS 186-2.

Anthropic пријављује сродно поклапање за B-233, B-283, B-409 и B-571. Њихов код пре иницијализације генератора користи вредност часовника подељену са два. Anthropic ово тумачење преполовљеног часовника описује као могућност: враћање реконструисаног стања уназад дало је датуме у фебруару 1984, док удвостручене вредности одговарају 17. априлу 1998. Објављено поклапање подржава поступак генератора; не доказује који су начин обраде часовника изабрали првобитни аутори.

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

Шест базних тачака и преостале празнине

Anthropic наводи да други стари генератор, из пакета FreeLIP за велике целе бројеве Арјена Ленстре и раних верзија NTL-а Виктора Шоупа, даје поклапање са x-координатама базних тачака за P-192 и пет ANSI примера. Његов други листинг кода иницијализује тај генератор малим целим бројевима, одбацује седам излаза, а затим извлачи кандидатске x-координате док једна не буде на кривој. Шест примера су P-192, prime192v2, prime192v3 и prime239v1 до prime239v3. Anthropic исписује поклапање за сваку објављену x-координату. NIST-ов историјски запис за P-192 даје вредност употребљену у том поређењу.

У самом Anthropic-овом приказу остаје више ограничења. Није успео да реконструише seed вредност B-163. Није објаснио базне тачке P-224, P-256, P-384 или P-521, нити базне тачке NIST бинарних кривих. Извршавања су такође прескакала кандидате који би, према Anthropic-у, задовољили наведене услове величине и простог реда. Један пример је кандидат 876 за P-256, пре објављеног кандидата 1.842; Anthropic наводи три прескочена прихватљива кандидата у извршавању за P-224 и укупно седам у два извршавања ANSI примера. Тим не зна критеријум избора нити да ли су та прескакања била артефакт.

За безбедносне инжењере користан нови резултат је проверљив приказ начина на који су многе параметарске вредности, по свему судећи, генерисане. Он сужава једно дуготрајно питање о нетранспарентним seed вредностима, али не одговара на сва питања о избору кривих. Сам Anthropic наводи да налаз није разлог да корисници мењају криптографску праксу.

Извори и додатна литература