Esempio n. 1
0
  public void szyfrujPlik(BigInteger e, BigInteger n, String sciezkaDoPlikuOdczyt) {
    String sciezkaPlikZapis =
        "resource\\zaszyfrowany"
            + sciezkaDoPlikuOdczyt.substring(sciezkaDoPlikuOdczyt.indexOf('.'));
    PlikiOdczytZapis plikiOdczytZapis =
        new PlikiOdczytZapis(sciezkaDoPlikuOdczyt, sciezkaPlikZapis, false);

    byte[] zPliku = plikiOdczytZapis.odczyt((int) new File(sciezkaDoPlikuOdczyt).length());

    int liczbaZnakow = n.bitLength() / 8;
    byte[] pomoc = new byte[liczbaZnakow];
    byte[] wynik;
    int j = 0;

    for (int i = 0; i < zPliku.length; i++) {
      if (j < liczbaZnakow) {
        pomoc[j] = zPliku[i];
        j++;
      } else {
        j = 0;
        i--;
        wynik = (szyfrujRSA(new BigInteger(pomoc), e, n).toString() + ' ').getBytes();
        plikiOdczytZapis.zapis(wynik);
        if (zPliku.length - i > liczbaZnakow) {
          pomoc = new byte[liczbaZnakow];
        } else {
          pomoc = new byte[zPliku.length % liczbaZnakow];
        }
      }
    }
    wynik = (szyfrujRSA(new BigInteger(pomoc), e, n).toString()).getBytes();
    plikiOdczytZapis.zapis(wynik);
  }
Esempio n. 2
0
  public void deszyfrujPlik(BigInteger d, BigInteger n, String sciezkaDoPlikuOdczyt) {
    String sciezkaPlikZapis =
        "resource\\odszyfrowany"
            + sciezkaDoPlikuOdczyt.substring(sciezkaDoPlikuOdczyt.indexOf('.'));
    PlikiOdczytZapis plikiOdczytZapis =
        new PlikiOdczytZapis(sciezkaDoPlikuOdczyt, sciezkaPlikZapis, false);

    byte[] zPliku = plikiOdczytZapis.odczyt((int) new File(sciezkaDoPlikuOdczyt).length());
    String[] odczytane = new String(zPliku).split(" ");

    for (String o : odczytane) {
      BigInteger wynik = deszyfrujRSA(new BigInteger(o), d, n);
      plikiOdczytZapis.zapis(wynik.toByteArray());
    }
  }
Esempio n. 3
0
  public void generujKlucze(int dlugoscKlucza, int liczbaLiczbPierwszych) {

    List<BigInteger> pierwszeLista = generujPierwsze(dlugoscKlucza, liczbaLiczbPierwszych);
    BigInteger n = modulRSA(pierwszeLista); // moduł RSA
    BigInteger euler = wartoscEulera(pierwszeLista);
    BigInteger e = liczbaWzgledniePierwsza(euler); // klucz publiczny
    BigInteger d = e.modInverse(euler); // klucz prywatny

    PlikiOdczytZapis plikiOdczytZapis =
        new PlikiOdczytZapis(null, "resource\\klucze\\klucze.txt", true);
    plikiOdczytZapis.zapis(("e: " + e.toString() + "\n").getBytes());
    plikiOdczytZapis.zapis(("d: " + d.toString() + "\n").getBytes());
    plikiOdczytZapis.zapis(("n: " + n.toString() + "\n").getBytes());
    plikiOdczytZapis.zapis(("\n\n").getBytes());
    System.out.println("e: " + e + "\nd: " + d + "\nn: " + n);
  }