public String genererCle() {
		long d=new Date().getTime();
		long semiArithmetique=(long)(Math.random()*COEFF_ALEA1);
		long[] suite=new long[TAILLE_ENCODAGE];
		long majorant;
		suite[0]=(long)(Math.random()*COEFF_ALEA1)+1;
		long[] suite2=new long[TAILLE_ENCODAGE];
		for(int i=1;i<suite.length;i++) {
			suite[i]=2*suite[i-1]+semiArithmetique;
		}
		majorant=((long)(Math.random()*COEFF_ALEA2)+2)*suite[suite.length-1]+semiArithmetique;
		long W=1+(long)(Math.random()*(majorant-2));
		while(!Outils.premierAvec(W,majorant)) {
			W=1+(long)(Math.random()*(majorant-2));
		}
		int sigma1=(int)(Math.random()*(TAILLE_ENCODAGE/2));
		int sigma2=(int)(Math.random()*(TAILLE_ENCODAGE/2))+(TAILLE_ENCODAGE/2);
		suite2=suite.clone();
		for(int i=0;i<suite.length;i++) {
			if(i==sigma1) {
				suite2[i]=(suite[sigma2]*W)%majorant;
			}
			else {
				if(i==sigma2) {
					suite2[i]=(suite[sigma1]*W)%majorant;
				}
				else {
					suite2[i]=(suite[i]*W)%majorant;
				}
			}
		}
		String aRetourner="(";
		for(int i=0;i<suite2.length;i++) {
			aRetourner+=suite2[i];
			if(i!=suite2.length-1) {
				aRetourner+=",";
			}
		}
		aRetourner+=")";
		aRetourner+=" (";
		for(int i=0;i<suite.length;i++) {
			aRetourner+=suite[i];
			if(i!=suite.length-1) {
				aRetourner+=",";
			}
		}
		aRetourner+=")";
		aRetourner+="{"+majorant+","+W+"}";
		aRetourner+="["+sigma1+","+sigma2+"]";
		this.time=new Date().getTime()-d;
		return aRetourner;
	}