Նախագծի սկզբում իմ նպատակն էր ստեղծել դասակարգային մետրային McEliece կրիպտոհամակարգի համար: Ես հենց նոր դրեցի աշխատանքային, թեև ոչ հղկված, տարբերակը Sage trac սերվերի վրա:
Կոդավորման վերջնական ժամանակաշրջան
Իմ GSoC նախագծի վերջին կոդավորման շրջանը ենթադրում էր ավարտին հասցնել, հին ծածկագրի վերագրում և շատ փաստաթղթային աշխատանք:
Խնդիրներից մեկը, որին ես բախվեցի, երբ ստեղծեցի դասակարգման մետրային գծային կոդեր, որոնք ժառանգել էին AbstractCode
-ից, այն էր, որ կոդի մեծ մասը համընկնում էր AbstractLinearCode
-ի հետ՝ Համինգի մետրիկի վրա գծային կոդերի դաս: Դա լուծելու համար մենք պայմանավորվեցինք ստեղծել ևս մեկ վերացական դաս՝ AbstractLinearCodeNoMetric
, որը կպարունակի բոլոր այն մեթոդները, որոնք կիսում են բոլոր գծային կոդերը՝ անկախ դրանց չափագրությունից:
Ամեն ինչ այս նոր դասին տեղափոխելուց հետո ես համապատասխանաբար փոխեցի ընթացիկ վերացական գծային կոդի դասերը: Այնուհետև ես անցա աշխատանքի ավարտին Gabidulin կոդը դասի վրա: Թեև ես դեռ սպասում եմ որոշ վերջնական կոդի հետադարձ կապի, աստիճանի չափման և Gabidulin ծածկագրի դասերը ավարտված են:
Բացի ընդարձակ փաստաթղթերից, SageMath-ը ներառում է նաև մի շարք թեմատիկ ձեռնարկներ: Դրանցից մի քանիսը կենտրոնացած են կոդավորման տեսության վրա: Քանի որ ես նման մեծ փոփոխություններ կատարեցի կոդավորման մոդուլում, դրանք հնացած էին: Ես խմբագրեցի դրանք, ինչպես նաև ավելացրի որոշ նոր բովանդակություն՝ բացատրելով վերացական կոդի նոր կառուցվածքը և այլն։
Ինձնից մնացած մի քանի օրվա ընթացքում ես վերջապես նայեցի McEliece կրիպտոհամակարգի դասին: Մենք պայմանավորվեցինք, որ թեև ես ժամանակ չեմ ունենա ավարտելու այս գործը, բայց լավ կլինի գոնե ծածկագրի կմախք պատրաստել: Ինձ հաջողվեց ստեղծել աշխատանքային տարբերակ, որը կոդավորում և վերծանում է։
Թեև սա ավարտում է իմ աշխատանքը GSoC 2019-ում, ես անպայման կշարունակեմ ներդրում ունենալ SageMath-ում: