⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 Crypto code for the Elliptic Curce Cryptography
💻 C
字号:
#include <stdio.h>#include "field2n.h"#include "poly.h"#include "eliptic.h"extern FIELD2N poly_prime; extern unsigned long random_seed;      CURVE ncrv = {1,	     {0x00000002,0x00000000,0x00000000,0x00000000,0x00000000,0x000000C9},	     {0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000002},	     };CURVE ncrv1 = {1,	     {0x00000002,0x00000000,0x00000000,0x00000000,0x00000000,0x000000C9},	     {0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001},	     };void put_nr(FIELD2N *cislo,FILE *f) {int i;for(i=161;i>-1;i--) fprintf(f,"%1d",(cislo->e[5-(i/32)]&(1<<(i%32))) ? 1 : 0  );fprintf(f,"\n");}void get_nr(FIELD2N *cislo) {int bit;INDEX i;SUMLOOP(i) cislo->e[i] = 0L;      for(i=161;i>-1;i--) { //pro 163 bit cislascanf("%1d",&bit);//printf("i:%2d i/32 %2d i%32 %2d BIT:%1d\n",i,5-i/32,i%32,bit);cislo->e[5-(i/32)]|=bit<<(i%32);}}//extern	CURVE  crv;//parametr a ma jednicky na//161., 7., 6., 3., a 0. miste^/*  coordinates for a point  */// Nejdriv nejake includy// #include ...  /*tahle main funkce je kuchnuta main ze souboru eliptic_poly.c Odstranil jsem nadbytecnosti a pridal pocitanis nahodnymi body na konec*/int main(){//	FIELD2N	t1, t2, test;//	FIELD2N q, r, y, x, y2, xy, g[3];//	INDEX	i, error, j, order, k, m, n;//	ELEMENT index, check;//	FILE *del;//	POINT   p2, p3, p4, p5, p6, p7;//	  POINT Base;//CURVE rnd_crv;FILE *soucty,*body;POINT   p2, p3, p4;int i,error;	/*	del = fopen("curves_points_5","w");	if (!del) return(0);*///	print_field("poly_prime = ", &poly_prime);//printf("%d\n",sizeof(unsigned long));if (!irreducible(&poly_prime)) return(0);  // overeni ireducibilniho polynomu. Polynom je definovan v polymain.c	print_field("poly_prime = ", &poly_prime);			if (error = init_poly_math())	{		printf("Can't initialize S matrix, row = %d\n", error);		return(-1);	}//	get_nr(&t1);//	put_nr(&t1);//	print_field("Moje cislo = ", &t1);	print_curve("Curve = ", &ncrv);random_seed = 0xDEADBEEF;body=fopen("body","w+");  soucty=fopen("soucty","w+");  	for(i=1;i<1000;i++){			//cyklus podle potreby	rand_point( &p2, &ncrv);	rand_point( &p3, &ncrv);	poly_esum( &p2, &p3, &p4, &ncrv);	print_point("Point1 ", &p2);	print_point("Point2 ", &p3);	print_point("Sum: ", &p4);	put_nr(&p2.x,body);	put_nr(&p2.y,body);	put_nr(&p3.x,body);	put_nr(&p3.y,body);	put_nr(&p4.x,soucty);	put_nr(&p4.y,soucty);}		fclose(body);fclose(soucty);//printf("%d",UPRMASK);//exit(255);/* zadani krivky - viz. eliptic.h*///        crv.form = 0;//        null(&crv.a2);//        null(&crv.a6);/*      crv.a2.e[NUMWORD] = 5;*/        //crv.a6.e[] = 9;//        null(&test);		//        test.e[NUMWORD] = 5;//        poly_embed( &test, &crv, NUMWORD, 0, &p2);      //definovano v eliptic_poly.c.							//	for(i=1;i<100;i++){			//cyklus podle potreby//	rand_point( &p2, &ncrv);//	rand_point( &p3, &ncrv);//	poly_esum( &p2, &p3, &p4, &ncrv);//	poly_esum( &p2, &p3, &p5, &ncrv1);//	print_point("Point1 ", &p2);//	print_point("Point2 ", &p3);//	//	print_point("Point1 + Point2 ", &p4);//	print_point("Point1 + Point2 ", &p5);//	}// printf("create Base curve and point\n\n");                                                                           //                                                                                                                             //        rand_curve(&rnd_crv);                                                                                                //        print_curve("random curve", &rnd_crv);                                                                               //        rand_point(&Base, &rnd_crv);                                                                                         //        print_point("Base point", &Base);      	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -