This highly depends on your file system. If UDF works similar to
9660, I see two options:
a) use the block number of the first block of the file
b) use a hash value of the file name
On a RO file system, both are guaranteed to stay identical between
invocations. In either case, you can't open the file when given
the inode (can you?), but this is currently not a requirement in
the Linux kernel. Ideally, you would choose something that identifies
the file in a way so you can access it when given this identification,
and also fits into 32 bits.
Hope this helps,
Martin