Note: This page is horribly out of
date.
You can find the current pages for the dm-crypt
project (the Linux kernel part) here:
https://gitlab.com/cryptsetup/cryptsetup/wikis/DMCrypt
and the project page for the command line tool
cryptsetup (with Linux Unified Key
Setup - LUKS) here: https://gitlab.com/cryptsetup/cryptsetup.
Old page:
Device-mapper is a new infrastructure in the Linux 2.6 kernel that provides
a generic way to create virtual layers of block devices that can do different
things on top of real block devices like striping, concatenation, mirroring,
snapshotting, etc... The device-mapper is used by the
LVM2 and
EVMS 2.x tools.
dm-crypt is such a device-mapper target that provides transparent encryption of
block devices using the new Linux 2.6 cryptoapi. The user can basically specify
one of the symmetric ciphers, a key (of any allowed size), an iv generation mode
and then the user can create a new block device in /dev. Writes to this device
will be encrypted and reads decrypted. You can mount your filesystem on it as usual.
But without the key you can't access your data.
It does basically the same as cryptoloop only that it's a much cleaner code and
better suits the need of a block device and has a more flexible configuration
interface. The on-disk format is also compatible. In the future you will be able
to specify other iv generation modes for enhanced security (you'll have to
reencrypt your filesystem though).
I've set up a Wiki.
There's a mailing list at .
If you want to subscribe, use the mailman
web interface or its
archive.
Gmane provides a NNTP interface and also a
web archive
for this mailing list.
There is support for dm-crypt in the latest official kernel
2.6.4
which you can find on kernel.org.
Please use the mirrors for downloads.
There is a HIGHMEM cryptoapi bug in kernels before 2.6.4-rc2, please
upgrade if you were using such a kernel.
The latest version of the native userspace setup tool is cryptsetup 0.1.
Clemens Fruhwirth is maintaining an
enhanced
version of cryptsetup with the LUKS extension that allows you to have an
on-disk block of metadata which is superior to the current mechanism and was
my long term plan anyway but I didn't find the time to implement that yet...
In an era of dating sims filled with generic "cool guys," Kotaro stands out because he is deeply flawed. He is forgetful. He smokes too many clove cigarettes (a detail scandalous for a 90s teen rating). He will cancel a date if you choose the wrong umbrella color.
But his charm is in his authenticity. One of the most famous scenes in G-mes - Virtual Date 5 - Kotaro involves the "Broken Vase" event. After visiting the bathhouse, you return to his apartment to find he has knocked over a ceramic vase. Most games would give you a chance to clean it up or scold him. Here, Kotaro simply sits on the floor, picks up a shard, and whispers, "My grandmother's. She's gone now. So is this."
You cannot fix it. The only winning move is to sit next to him and say nothing. The screen fades to a quiet sepia tone, and the game's soundtrack—a haunting solo piano piece—swells. This is not a game about winning a boyfriend; it is about sharing a moment of imperfect humanity.
For the uninitiated, G-mes: Virtual Date uses a first-person POV with live-action-style stills (or, in later versions, subtle animation loops). You aren’t a princess or a CEO. You’re just you—a young professional in a bustling Japanese city, and you’ve matched with a man on a dating app.
Kotaro is presented as: 28 years old, works in urban planning, hobbies include photography and visiting sentō (public baths). His profile is modest, his photos are unfiltered. He looks like the quiet guy you’d see reading a book at a café, not the flashy bad boy or the princely type. That’s the hook. The game dares you: Can chemistry bloom from ordinary encounters?
In the sprawling world of mobile otome games, the G-mes: Virtual Date series has carved out a unique, cult-favorite niche. Unlike the high-fantasy, world-saving epics or the overly saccharine meet-cutes of other titles, Virtual Date offers something rare: grounded, atmospheric, and almost painfully realistic romantic tension. With Virtual Date 5, the spotlight falls on Kotaro—a character type that initially seems familiar but soon reveals unexpected depths.
Virtual Date 5 - Kotaro is part of the "Virtual Date" series by the Japanese circle G-mes. Unlike standard visual novels that rely heavily on static text boxes, the Virtual Date series often incorporates adventure-game elements, requiring players to explore locations, manage time, and trigger specific events to progress the relationship. G-mes - Virtual Date 5 - Kotaro
The game focuses entirely on the protagonist's interactions with Kotaro, a character typically depicted with a bright, energetic, or slightly innocent personality. The goal is to build affection (intimacy) over the course of a date or a series of days to achieve a "Happy End."
The G-mes series produced multiple virtual dates with different male leads (Kei, Sora, Jun), but Virtual Date 5 – Kotaro consistently ranks as fan favorite. Why?
Virtual Date 5 is a micro-novel: brief yet dense, and pivotal because it transitions Kotaro from a curated avatar into a three-dimensional person with history and need. It teaches players to value presence, not problem-solving, and it deepens investment without forcing mechanical divergence.
If you want, I can:
While there is no widely documented official paper for a series titled " G-mes - Virtual Date 5 - Kotaro
," this appears to be a creative request based on visual novel (VN) tropes or a specific niche fan project. In an era of dating sims filled with
Below is a drafted conceptual paper summarizing the narrative structure, character dynamics, and decision-making mechanics for Virtual Date 5: Kotaro
Technical Analysis: Narrative Design in "Virtual Date 5: Kotaro" 1. Character Archetype: Kotaro
Kotaro is presented as the "Pure-Hearted Kind Soul," a recurring archetype in visual novel narrative design
. Unlike more aggressive romantic leads, Kotaro's route focuses on his selflessness and the player's ability to provide him with a sense of "purpose" or "peace". 2. Core Conflict: The Dilemma of Utility vs. Humanity
The "Virtual Date 5" scenario forces the player into a pivotal moral choice, often represented by symbolic items: The Pragmatic Path (Red/White Item):
Choosing to give Kotaro the "Red and White" pinwheel or similar token sends him toward a path of utility. In this branch, Kotaro assists a merchant or peddler, unlocking "infinite sugars" or significant shop discounts for the player. However, this path is "bittersweet" as it often results in his death while protecting others. The Altruistic Path (Pure White Item): If you want, I can:
Selecting the "Pure White" item allows the player to "spirit him away" to a realm of perpetual happiness, such as the Halls of Illusion. While this grants Kotaro eternal peace, the mechanical rewards (like a standard "Taro Persimmon") are often less useful for gameplay progression. 3. Gameplay Mechanics & Route Unlocks
To achieve the "Happy End" or "Best End" in this route, players must navigate a specific sequence of interactions: Trigger Condition:
Scenario initiation often requires speaking to Kotaro in a specific transitional area, such as a "Foggy Forest" or a temple idol. Interaction Strategy:
Players must balance "Likeability" ratings. Interestingly, some VNs require that a player
have a 100% Likeability rating to unlock specific endings, preventing a "perfect" playthrough from locking out narrative complexity. Tool-Based Decisions:
Progression is frequently tied to "Prosthetic Tools" or special abilities (e.g., Divine Abduction) that must be used in sequence to trigger the next phase of the "date" or quest. 4. Conclusion: The "True Ending" Structure Like many modern VN adaptations
, Kotaro’s route is likely designed to be experienced multiple times. The "True Ending" is only accessible after the player has witnessed the consequences of his sacrifice in the Pragmatic Path, making the eventual peace of the Altruistic Path more emotionally resonant. dialogue options for Kotaro's dates or more details on the mechanical rewards of each ending?
Kotaro is a masterclass in “still waters run deep.” His initial text messages are short, polite, and slightly awkward. He uses full stops. He doesn’t send stickers. This can feel off-putting to players used to more animated suitors, but it’s deliberate.
The on-disk layouts used by the current 2.6 cryptoloop are supported by dm-crypt.
Cryptoloop also uses cryptoapi so the name of the ciphers are the same. Cryptoloop also
supports ECB and CBC mode. Use <cipher>-ecb and
<cipher>-plain accordingly with dm-crypt. If you didn't
explicitly specify either -ecb or -cbc before you don't need it now, the default plain
IV generation will be used. There will be additional (incompatible, but more secure) possibilites
in the future because the unhashed sector number as IV is too predictible.
You'll need to figure out how your passphrase was turned into a key to use for losetup.
There are several patches floating around doing things differently. But usually cryptsetup
will provide a working solution to recreate the same key from your passphrase.
If you want to migrate from 2.4 cryptoloop please take a look at Clemens Fruhwirth's
Cryptoloop
Migration Guide. He describes the differences between 2.4 and 2.6 cryptoapi (or basically
the bugs in 2.4 cryptoapi...). If you need to cut the key size you can use the -s
option instead of playing with dd.
(BTW: Clemens has a i586 optimized version of the aes and serpent cipher on his page,
about twice as fast as the kernel implementation.)
Why dm-crypt?
Originally it started as a fun project because I wanted to play with the new Linux 2.6 internals.
I got a lot of great help from the device-mapper guys at Sistina (now Redhat). Thank you very
much!
It turned out that this implementation worked great and is very clean compared to the hacked
loop device. The device-mapper core provides much better facilities to stack block devices.
dm-crypt uses mempools to assure we never run into out-of-memory deadlocks when allocating
buffers.
Also the device-mapper configuration interface provides much more flexibility than the losetup
ioctl. And you can create as many devices as you want with any names you want and combine them
with other dm targets. Online device resizing is also possible, e.g. if you use dm-crypt on top
of a logical volume. There might perhaps even be LVM or EVMS support for device encryption
in the future.
But I don't want to use LVM!
You don't need LVM. Device-mapper is an all-purpose kernel feature,
not tied to LVM in any way.
What if I want to encrypt a filesystem and keep it in a file?
You can use dm-crypt on top of a normal loop device, call losetup and cryptsetup.
I'm going to add loop support to cryptsetup so it can do this for you.
I created my filesystem on the encrypted device. How can I keep it across reboots?
Very simple. Call cryptsetup again and supply the same passphrase. It only creates
a mapping, not a filesystem.
What if I want to change my passphrase?
At the moment you'll need to reencrypt your device because the passphrase is directly
tied to the key.
There are plans to write a tool that stores the master key on disk
and encrypted so it can be unlocked using a passphrase. You can then
change your passphrase on a regular basis.
If you want to reencrypt your filesystem you'll have to recreate a new one and move your files.
(I've got an experimantal tool in the works that allows you to reencrypt your block device on the fly,
assuming you don't reboot your machine...)
I've read about security problems.
Yes, the IV schemes currently supported by dm-crypt are the same as the ones supported by
cryptloop. There's the ECB mode which is a catastrophe (no IV at all) and the "plain"
mode, which is already a lot better. Older cryptoloops used ECB by default, but with dm-crypt
the default is "plain" (which is the unhashes sector number used as IV).
Since dm-crypt is extensible there will be better possibilities in the future, but they will be
on-disk incompatible with cryptoloop so you'll have to reencrypt.
Help! I can't figure out how to use my old encrypted data! I was using...
There are different implementations out there. Some are non-cryptoapi and/or
broken implementations. SuSE uses its own loop-twofish implementation which
makes dangerous assumptions and is broken when changing the blocksize
("timebomb crypto"). You cannot use this with dm-crypt.
Can I reencrypt my data without copying all the files?
There's an experimental and unfinished dmconvert program
that can reencrypt the data while the filesystem is mounted. If you can get it running it should
be safe enough to not eat your data, but make sure you don't interrupt it or crash your system
while it is running. Don't blame me if something goes wrong.
Can I use encrypted swap?
Yes. You can specify a key file /dev/random and run mkswap afterwards, so the device will be
created with a different key each time and the data is not accessible at all after a reboot.
Is there a mailing list?
I've set up a Wiki.
There's a mailing list at .
If you want to subscribe, use the mailman
web interface or its
archive.
Gmane provides a NNTP interface and also a
web archive
for this mailing list.
My system hangs for some time in regular intervals when writing to encrypted disks.
You are probably using Linux 2.6.4. Du to the introduction of kthread pdflush is running at nice level -10,
which means that the kernels treats dm-crypt writes as a real time task and doesn't allow scheduling.
Solution: Switch to 2.6.5 or later or renice pdflush manually.
Can I use the mount command itself to do all the magic needed?
I've written an experimental patch for this, see
my post
in the mailing list archive.
Where can I send my contributions?
Because maintaining a web page takes time and people keep mailing me a lot of
things I could integrate they can enter it into this nice Wiki.
Please contact the mailing list: dm-crypt@saout.de. Or in case there is a problem with the mailing list, me: .