7. labor: a Rabin, SAEP rendszerek
|
1. A titkosított file Rabin módszerrel volt rejtjelezve, ahol a titkosítást bájtok felett végezték. Határozzuk meg az eredeti TXT állományt, ha tudjuk, hogy a titkosításhoz használt két prímszám a keys.txt állomány valamelyik két értékével egyezik meg és ha a keys.txt állományban levő számok közül csak kettő prímszám. Tudjuk azt is, hogy az eredeti állomány 182 bájtot tartalmazott. 2. Írjunk programot, amely SAEP-vel titkosít és visszafejt egy tetszőleges 256 bites szekvenciát (SAEP-encrypt). 3. Határozzuk meg egy billentyűzetről beolvasott karakterlánc sha-256, sha-384-es értékeit, illetve egy tetszőleges bináris állomány sha256-os, sha384-es értékeit. C++ kód: #include <sha.h> #include <iostream> USING_NAMESPACE(CryptoPP) using namespace std; int main() { unsigned char *rS = (unsigned char*)"hello sapientia"; long lR = strlen((char*)rS); long lH = 256 / 8; unsigned char h256[SHA256::DIGESTSIZE]; SHA256().CalculateDigest(h256, rS, lR); cout << "hash 256: "; for (int i = 0; i < lH; ++i) cout << hex << (0xFF & h256[i]) << " "; cout << endl << endl; rS = (unsigned char*)"hello sapientia"; lH = 384 / 8; unsigned char h384[SHA384::DIGESTSIZE]; SHA384().CalculateDigest(h384, rS, lR); cout << "hash 384: "; for (int i = 0; i < lH; ++i) cout << hex << (0xFF & h384[i]) << " "; cout << endl << endl; return 0; } Java kód: import java.security.MessageDigest; import javax.xml.bind.DatatypeConverter; import java.nio.charset.StandardCharsets; public class Hash { public static void main(String[] args) throws Exception { String pswd = "hello sapientia"; MessageDigest md = MessageDigest.getInstance("SHA-256"); byte [] digest = md.digest(pswd.getBytes(StandardCharsets.US_ASCII)); String sha256 = DatatypeConverter.printHexBinary(digest).toLowerCase(); System.out.println("hash 256: " + sha256); md = MessageDigest.getInstance("SHA-384"); digest = md.digest(pswd.getBytes(StandardCharsets.US_ASCII)); String sha384 = DatatypeConverter.printHexBinary(digest).toLowerCase(); System.out.println("hash 384: " + sha384); } } |