Generando un hash de documento XML en C #

¿Cuál es la mejor manera de procesar un documento XML en C #? Me gustaría hacer un hash de un documento XML para saber si se cambió manualmente desde el momento en que se generó. No estoy usando esto por seguridad, está bien si alguien cambia el XML y cambia el hash para que coincida.

Por ejemplo, puse los nodos secundarios de la raíz y almacené el hash como un atributo de la raíz:

<RootNode Hash="abc123">
    <!-- Content to hash here -->
</RootNode>