code: func (curve *KoblitzCurve) moduloReduce(k []byte) []byte {
  	// Since the order of G is curve.N, we can use a much smaller number
  	// by doing modulo curve.N
  	if len(k) > curve.byteSize {
  		// Reduce k by performing modulo curve.N.
  		tmpK := new(big.Int).SetBytes(k)
  		tmpK.Mod(tmpK, curve.N)
  		return tmpK.Bytes()
  	}
  
  	return k
  }
docs: // moduloReduce reduces k from more than 32 bytes to 32 bytes and under.  This
  // is done by doing a simple modulo curve.N.  We can do this since G^N = 1 and
  // thus any other valid point on the elliptic curve has the same order.