private void btnExtPolyMult_Click(object sender, EventArgs e) { ExtensionFieldElement[] eltlist1 = new ExtensionFieldElement[7]; for (int i = 0; i < 7; i++) { eltlist1[i] = ExtF.RandomElement; } ExtensionPolynomial extp1 = new ExtensionPolynomial(eltlist1); ExtensionFieldElement[] eltlist2 = new ExtensionFieldElement[4]; for (int i = 0; i < 4; i++) { eltlist2[i] = ExtF.RandomElement; } ExtensionPolynomial extp2 = new ExtensionPolynomial(eltlist2); ExtensionPolynomial result = extp1 * extp2; txtInfo.Clear(); txtInfo.AppendText("Random Extension Polynomial 1\r\n" + extp1.ToString() + "\r\n"); txtInfo.AppendText("\r\nRandom Extension Polynomial 2\r\n" + extp2.ToString() + "\r\n"); txtInfo.AppendText("\r\nPolynomial 1 * Polynomial 2\r\n" + result.ToString() + "\r\n"); }
private void btnLFSR_Click(object sender, EventArgs e) { if (lfsr == null) { ExtensionFieldElement[] eltlist1 = new ExtensionFieldElement[4]; for (int i = 0; i < 4; i++) { eltlist1[i] = ExtF.RandomElement; } ExtensionPolynomial extp1 = new ExtensionPolynomial(eltlist1); ExtensionFieldElement[] eltlist2 = new ExtensionFieldElement[4]; for (int i = 0; i < 4; i++) { eltlist2[i] = ExtF.RandomElement; } lfsr = new ExtensionLFSR(extp1, eltlist2); txtInfo.Clear(); txtInfo.AppendText("LFSR has been created.\r\n"); txtInfo.AppendText("Feedback Polynomial:\r\n" + lfsr.FeedbackPolynomial.ToString() + "\r\n"); txtInfo.AppendText("Initial State:\r\n"); for (int i = 0; i < lfsr.currentState.Length; i++) { txtInfo.AppendText("c_" + i + " = " + lfsr.currentState[i].ToString() + "\r\n"); } btnLFSR.Text = "Clock the LFSR"; return; } // clock time lfsr.Clock(); txtInfo.AppendText("\r\nOutput " + s++ + " : " + lfsr.StreamOutput + "\r\n"); txtInfo.AppendText("Current State:\r\n"); for (int i = 0; i < lfsr.currentState.Length; i++) { txtInfo.AppendText("c_" + i + " = " + lfsr.currentState[i].ToString() + "\r\n"); } }