diff --git a/ekms/internal/kms/kms.go b/ekms/internal/kms/kms.go
index 12691f61f59f670b97e43ddf9ee900f1a7d2f396..fa1ab085d6acbc45f495a9c569318708528586f3 100644
--- a/ekms/internal/kms/kms.go
+++ b/ekms/internal/kms/kms.go
@@ -262,13 +262,13 @@ func (kms *EKMS) GenerateAndSendKSAKey(address string, requestId string, number
 	kms.PKStoreMutex.Lock()
 
 	keys := make([]*pbIC.Key, number)
+	cryptoAlgo := crypto.NewAES()
 	for i := 0; i < number; i++ {
 		// generate ksa key
 		ksaKeyId := uuid.New()
 		ksaKey, err := crypto.Random256BitKey()
 
 		// encrypt the key
-		cryptoAlgo := crypto.NewAES()
 		encryptedKSAKey, err := cryptoAlgo.Encrypt(ksaKey, pk)
 		if err != nil {
 			return err