Gistrec

Cryptography lab3 v1

Dec 6th, 2018
297
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.40 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. using System.Security.Cryptography; // MD5.Create(), SHA256Managed()
  8. using System.IO; // File.OpenRead()
  9.  
  10. namespace Cryptography {
  11.  
  12.     class Program {
  13.  
  14.         //Первое задание
  15.         static void first() {
  16.             string filename = "data.txt";
  17.  
  18.             var md5 = MD5.Create();
  19.             var sha = new SHA256Managed();
  20.  
  21.             var stream = File.OpenRead(filename);
  22.  
  23.             var md5_hash = md5.ComputeHash(stream);
  24.  
  25.             stream.Seek(0, SeekOrigin.Begin); // Перемещаем указатель на начало файла
  26.  
  27.             var sha256_hash = sha.ComputeHash(stream);
  28.  
  29.             Console.WriteLine(BitConverter.ToString(md5_hash).Replace("-", "").ToLowerInvariant());
  30.             Console.WriteLine(BitConverter.ToString(sha256_hash).Replace("-", "").ToLowerInvariant());
  31.             Console.ReadKey();
  32.         }
  33.  
  34.         static void second() {
  35.             var alice = ECDiffieHellman.Create();
  36.             var bob = ECDiffieHellman.Create();
  37.  
  38.  
  39.             var aliceSharedSecret = alice.DeriveKeyMaterial(bob.PublicKey);
  40.             var bobSharedSecret = bob.DeriveKeyMaterial(alice.PublicKey);
  41.  
  42.             Console.WriteLine(BitConverter.ToString(bobSharedSecret).Replace("-", "").ToLowerInvariant());
  43.             Console.WriteLine();
  44.             Console.WriteLine(BitConverter.ToString(aliceSharedSecret).Replace("-", "").ToLowerInvariant());
  45.  
  46.             Console.ReadKey();
  47.         }
  48.  
  49.         static void Main(string[] args) {
  50.             // Алиса и Боб создают пару ключей для использования в операции обмена ключами Диффи-Хелмана
  51.             var alice = ECDiffieHellman.Create();
  52.             var bob = ECDiffieHellman.Create();
  53.  
  54.             // Алиса высылает Бобу свой открытй ключ
  55.             var bobSharedSecret = bob.DeriveKeyMaterial(alice.PublicKey);
  56.             // Боб высылает Алисе свой открытй ключ
  57.             var aliceSharedSecret = alice.DeriveKeyMaterial(bob.PublicKey);
  58.  
  59.             // Алиса и Боб используют открытые ключи друг друга для создания секретного соглашения
  60.             // bobSharedSecret и aliceSharedSecret
  61.  
  62.             Console.WriteLine(BitConverter.ToString(bobSharedSecret).Replace("-", "").ToLowerInvariant());
  63.             Console.WriteLine(BitConverter.ToString(aliceSharedSecret).Replace("-", "").ToLowerInvariant() + "\n");
  64.  
  65.  
  66.             // Получаем подпись сообщения
  67.             string message = "Hello world";
  68.  
  69.             HMACSHA256 alice_hmac = new HMACSHA256(aliceSharedSecret);
  70.             byte[] hash_message = alice_hmac.ComputeHash(Encoding.UTF8.GetBytes(message));
  71.             Console.WriteLine(BitConverter.ToString(hash_message).Replace("-", "").ToLowerInvariant());
  72.  
  73.             // Проверяем подпись сообщения
  74.             HMACSHA256 bob_hmac = new HMACSHA256(bobSharedSecret);
  75.             byte[] computedHash = bob_hmac.ComputeHash(Encoding.UTF8.GetBytes(message));
  76.             Console.WriteLine(BitConverter.ToString(computedHash).Replace("-", "").ToLowerInvariant());
  77.  
  78.             Console.ReadKey();
  79.         }
  80.     }
  81. }
Advertisement
Comments
  • User was banned
Add Comment
Please, Sign In to add comment