I would like to implement a deterministic encryption scheme within .NET. From the following post it is established using AES-SIV mode is appropriate. As AES-SIV mode is not implemented within the System.Security.Cryptography .NET namespace an alternative is to use AES-CTR[k1, nonce, message] where nonce = HMAC[ k2, message] given certain constraints are met. However, AES-CTR is also not implemented within the .NET Framework.
BouncyCastle has a C# API which implements AES-CTR [also known as AES-SIC] mode and is FIPS validated. Documentation is scarce. There are two books written by David Hook and Jon Eaves, two of the original developers. BC Fips in 100 Examples and Java Cryptography: Tools and Techniques are the books. This is the solution I will pursue.
My question is:
Given AES-GCM mode is similar to AES-CTR mode Link 1 Link 2 Link 3 does AES-GCM[ k1, nonce, message] where nonce = HMAC[ k2, message] allow me to safely create a deterministic encryption scheme? Is this also misuse-resistant authenticated encryption MRAE?