Նախագծի սկզբում իմ նպատակն էր ստեղծել դասակարգային մետրային McEliece կրիպտոհամակարգի համար: Ես հենց նոր դրեցի աշխատանքային, թեև ոչ հղկված, տարբերակը Sage trac սերվերի վրա:

Կոդավորման վերջնական ժամանակաշրջան

Իմ GSoC նախագծի վերջին կոդավորման շրջանը ենթադրում էր ավարտին հասցնել, հին ծածկագրի վերագրում և շատ փաստաթղթային աշխատանք:

Խնդիրներից մեկը, որին ես բախվեցի, երբ ստեղծեցի դասակարգման մետրային գծային կոդեր, որոնք ժառանգել էին AbstractCode-ից, այն էր, որ կոդի մեծ մասը համընկնում էր AbstractLinearCode-ի հետ՝ Համինգի մետրիկի վրա գծային կոդերի դաս: Դա լուծելու համար մենք պայմանավորվեցինք ստեղծել ևս մեկ վերացական դաս՝ AbstractLinearCodeNoMetric, որը կպարունակի բոլոր այն մեթոդները, որոնք կիսում են բոլոր գծային կոդերը՝ անկախ դրանց չափագրությունից:

Ամեն ինչ այս նոր դասին տեղափոխելուց հետո ես համապատասխանաբար փոխեցի ընթացիկ վերացական գծային կոդի դասերը: Այնուհետև ես անցա աշխատանքի ավարտին Gabidulin կոդը դասի վրա: Թեև ես դեռ սպասում եմ որոշ վերջնական կոդի հետադարձ կապի, աստիճանի չափման և Gabidulin ծածկագրի դասերը ավարտված են:

Բացի ընդարձակ փաստաթղթերից, SageMath-ը ներառում է նաև մի շարք թեմատիկ ձեռնարկներ: Դրանցից մի քանիսը կենտրոնացած են կոդավորման տեսության վրա: Քանի որ ես նման մեծ փոփոխություններ կատարեցի կոդավորման մոդուլում, դրանք հնացած էին: Ես խմբագրեցի դրանք, ինչպես նաև ավելացրի որոշ նոր բովանդակություն՝ բացատրելով վերացական կոդի նոր կառուցվածքը և այլն։

Ինձնից մնացած մի քանի օրվա ընթացքում ես վերջապես նայեցի McEliece կրիպտոհամակարգի դասին: Մենք պայմանավորվեցինք, որ թեև ես ժամանակ չեմ ունենա ավարտելու այս գործը, բայց լավ կլինի գոնե ծածկագրի կմախք պատրաստել: Ինձ հաջողվեց ստեղծել աշխատանքային տարբերակ, որը կոդավորում և վերծանում է։

Թեև սա ավարտում է իմ աշխատանքը GSoC 2019-ում, ես անպայման կշարունակեմ ներդրում ունենալ SageMath-ում: