diff --git a/e2e/singleUse/mac.go b/e2e/singleUse/mac.go
index 803bde67651c80e3be95dd521ce99b9dcfeb1752..1503bc4e98cacdd2ac874874cda8989d09924a4a 100644
--- a/e2e/singleUse/mac.go
+++ b/e2e/singleUse/mac.go
@@ -17,7 +17,12 @@ const macConstant = "macConstant"
 // MakeMAC generates the MAC used in the cmix message holding the single-use
 // payload.
 func MakeMAC(dhKey *cyclic.Int, encryptedPayload []byte) []byte {
-	return makeHash(dhKey, encryptedPayload, []byte(macConstant))
+	mac := makeHash(dhKey, encryptedPayload, []byte(macConstant))
+
+	// Set the first bit as zero to ensure everything stays in the group
+	mac[0] &= 0b01111111
+
+	return mac
 }
 
 // VerifyMAC determines if the provided MAC is valid for the given key and
diff --git a/e2e/singleUse/mac_test.go b/e2e/singleUse/mac_test.go
index 0a66deaccc9b4da902636bbc8458c5a7aea3f44a..73829a5b656e1148f0ce9542a408f82ae61c1e2f 100644
--- a/e2e/singleUse/mac_test.go
+++ b/e2e/singleUse/mac_test.go
@@ -20,13 +20,13 @@ func TestMAC_Consistency(t *testing.T) {
 	expectedMACs := []string{
 		"D7vXMT3iX/1tvFPjowoz3w5b3PbECB4EFgkR3hNzyCM=",
 		"ffW26eqwyTHERUPHbmFkUitRj7c+c/PQayfwQPLihNs=",
-		"/lyTEnFbzEEmmMjOQhq6qr0jUYE2j22ERcR4CLH9368=",
-		"vPB8eXP8BXWdxSU4a+Lp1pYVWb98COtWtR0sBngGyTs=",
+		"flyTEnFbzEEmmMjOQhq6qr0jUYE2j22ERcR4CLH9368=",
+		"PPB8eXP8BXWdxSU4a+Lp1pYVWb98COtWtR0sBngGyTs=",
 		"BuvhuSO01uM+nVQPwXlOwRzr7xchVM1dRoF9h5TC2HU=",
-		"vF5iYaFdhLtgOO5hWNpAF6jJaW4utF1MLGaz/gYb0TY=",
-		"opI2htMJEqZvvEKHAwWnTSqgvaAempY9//rRxNNFHQU=",
-		"ppGzFglPaLzytF5gJRtSFbYoidsShEBoX1cxkAJY3F4=",
-		"pdzZmlz6qdChwo7B5sChTRUpQ5zLvlH5LgndOhDHAt8=",
+		"PF5iYaFdhLtgOO5hWNpAF6jJaW4utF1MLGaz/gYb0TY=",
+		"IpI2htMJEqZvvEKHAwWnTSqgvaAempY9//rRxNNFHQU=",
+		"JpGzFglPaLzytF5gJRtSFbYoidsShEBoX1cxkAJY3F4=",
+		"JdzZmlz6qdChwo7B5sChTRUpQ5zLvlH5LgndOhDHAt8=",
 		"BHP2yvbUcynr6vM61qt+18YshTsyArJqv0VCq/EI3+o=",
 	}
 	grp := getGrp()
@@ -91,13 +91,13 @@ func TestVerifyMAC(t *testing.T) {
 	expectedMACs := []string{
 		"D7vXMT3iX/1tvFPjowoz3w5b3PbECB4EFgkR3hNzyCM=",
 		"ffW26eqwyTHERUPHbmFkUitRj7c+c/PQayfwQPLihNs=",
-		"/lyTEnFbzEEmmMjOQhq6qr0jUYE2j22ERcR4CLH9368=",
-		"vPB8eXP8BXWdxSU4a+Lp1pYVWb98COtWtR0sBngGyTs=",
+		"flyTEnFbzEEmmMjOQhq6qr0jUYE2j22ERcR4CLH9368=",
+		"PPB8eXP8BXWdxSU4a+Lp1pYVWb98COtWtR0sBngGyTs=",
 		"BuvhuSO01uM+nVQPwXlOwRzr7xchVM1dRoF9h5TC2HU=",
-		"vF5iYaFdhLtgOO5hWNpAF6jJaW4utF1MLGaz/gYb0TY=",
-		"opI2htMJEqZvvEKHAwWnTSqgvaAempY9//rRxNNFHQU=",
-		"ppGzFglPaLzytF5gJRtSFbYoidsShEBoX1cxkAJY3F4=",
-		"pdzZmlz6qdChwo7B5sChTRUpQ5zLvlH5LgndOhDHAt8=",
+		"PF5iYaFdhLtgOO5hWNpAF6jJaW4utF1MLGaz/gYb0TY=",
+		"IpI2htMJEqZvvEKHAwWnTSqgvaAempY9//rRxNNFHQU=",
+		"JpGzFglPaLzytF5gJRtSFbYoidsShEBoX1cxkAJY3F4=",
+		"JdzZmlz6qdChwo7B5sChTRUpQ5zLvlH5LgndOhDHAt8=",
 		"BHP2yvbUcynr6vM61qt+18YshTsyArJqv0VCq/EI3+o=",
 	}
 	grp := getGrp()
diff --git a/e2e/singleUse/transmitFingerprint.go b/e2e/singleUse/transmitFingerprint.go
index bfcccd9d38231fe2613ae8992309b4a1495c9b51..c246063fd73ba216e2c11dbc0163d142990e9f89 100644
--- a/e2e/singleUse/transmitFingerprint.go
+++ b/e2e/singleUse/transmitFingerprint.go
@@ -21,5 +21,8 @@ func TransmitFingerprint(dhKey *cyclic.Int) format.Fingerprint {
 	fp := format.Fingerprint{}
 	copy(fp[:], makeHash(dhKey, []byte(transmitFPConstant)))
 
+	// Set the first bit as zero to ensure everything stays in the group
+	fp[0] &= 0b01111111
+
 	return fp
 }
diff --git a/e2e/singleUse/transmitFingerprint_test.go b/e2e/singleUse/transmitFingerprint_test.go
index bb1a8065a8645c0d976698c7dd9450a1f168bbe3..5d0f382ac8598e37da0b9e99ebc0ade1a0a7997f 100644
--- a/e2e/singleUse/transmitFingerprint_test.go
+++ b/e2e/singleUse/transmitFingerprint_test.go
@@ -20,16 +20,16 @@ import (
 // Tests that the generated fingerprints do not change.
 func TestTransmitFingerprint_Consistency(t *testing.T) {
 	expectedFPs := []string{
-		"8xef7y86YmR6+qVBaVghPYbEd0j7seLUxR1v1dxqiNo=",
+		"cxef7y86YmR6+qVBaVghPYbEd0j7seLUxR1v1dxqiNo=",
 		"LJ1HQ8zZPY3z+6UkKZMSDN2WymMmwuWW3GCjtAGfUlc=",
 		"Fc8CN69uMxT1zBAr3Ed/AOy6Py3XDb3i7LngRsax0K8=",
-		"4mvA+dxgIy/UxRVIvzFgGtEuMoWI8RodF7JMFIO5xcI=",
-		"3YJPhLeI2+RawlSMUTEwTP1iJrFAa5zboCf5fjc/k3o=",
-		"mEOS0pDuNYS5hpNHeJ2IhzlZFf9J5oHRvFpovNwWS7c=",
-		"i3k7dv1Nch1oTT4aOxbBDifmf7+mT34ErFFaWW5LDb8=",
+		"YmvA+dxgIy/UxRVIvzFgGtEuMoWI8RodF7JMFIO5xcI=",
+		"XYJPhLeI2+RawlSMUTEwTP1iJrFAa5zboCf5fjc/k3o=",
+		"GEOS0pDuNYS5hpNHeJ2IhzlZFf9J5oHRvFpovNwWS7c=",
+		"C3k7dv1Nch1oTT4aOxbBDifmf7+mT34ErFFaWW5LDb8=",
 		"ck/wkZ3lv0bcQuW+Z2dw37m+Re0URPw4UsWBPAWBEtw=",
-		"k/YRXaE2dplVPZSiEY+7C0e6GlDeR3jLrIPRWgeL3cI=",
-		"qkT2Hfz8A7jNxOhDYG266b/hvWcQtAx0ay67Az80bAY=",
+		"E/YRXaE2dplVPZSiEY+7C0e6GlDeR3jLrIPRWgeL3cI=",
+		"KkT2Hfz8A7jNxOhDYG266b/hvWcQtAx0ay67Az80bAY=",
 	}
 	grp := getGrp()
 	prng := rand.New(rand.NewSource(42))