public ShamirsSecretSharing(IExtendedGcdAlgorithm <TNumber> extendedGcd, int securityLevel)
 {
     this.extendedGcd = extendedGcd ?? throw new ArgumentNullException(nameof(extendedGcd));
     try
     {
         this.SecurityLevel = securityLevel;
     }
     catch (ArgumentOutOfRangeException e)
     {
         throw new ArgumentOutOfRangeException(nameof(securityLevel), securityLevel, e.Message);
     }
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ShamirsSecretSharing{TNumber}"/> class.
 /// </summary>
 /// <param name="extendedGcd">Extended greatest common divisor algorithm</param>
 /// <exception cref="T:System.ArgumentNullException">The <paramref name="extendedGcd"/> parameter is <see langword="null"/>.</exception>
 public ShamirsSecretSharing(IExtendedGcdAlgorithm <TNumber> extendedGcd)
 {
     this.extendedGcd   = extendedGcd ?? throw new ArgumentNullException(nameof(extendedGcd));
     this.SecurityLevel = 13;
 }